Subversion Repositories FlightCtrl

Compare Revisions

Ignore whitespace Rev 1075 → Rev 1178

/tags/V0.72p/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>
/tags/V0.72p/GPS.c
0,0 → 1,32
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Copyright (c) 04.2007 Holger Buss
// + 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;
}
 
 
 
 
/tags/V0.72p/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
/tags/V0.72p/Hex-Files/Flight-Ctrl_MEGA644_V0_72p.hex
0,0 → 1,2855
:100000000C9491020C94AC020C94AC020C94AC02D3
:100010000C94AC020C94AC020C94AC020C94AC02A8
:100020000C94AC020C9451120C94AC020C94AC02E3
:100030000C94D0220C94AC020C94AC020C94AC0244
:100040000C94AC020C94AC020C94EB100C94AC022B
:100050000C9477060C94AC020C943E060C94AC0203
:100060000C9478160C94AC020C94B5210C94AC0250
:100070000C94B6540C94AC020C94AC0224171717D1
:100080000B17F116D716B316C516F319271924192D
:10009000B3161119F718D718B718651813183017B1
:1000A0000E22212215225B226B2251223D22DC21CD
:1000B000FA2162228222F621FE21FA217E220922E1
:1000C000F621FE21FA217A226622F621EB210A0D81
:1000D000466C69676874436F6E74726F6C0A0D4882
:1000E000617264776172653A25642E25640A0D5346
:1000F0006F6674776172653A5625642E25642563B0
:1001000020000A0D3D3D3D3D3D3D3D3D3D3D3D3DDC
:100110003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D0F
:100120003D3D000A0D496E69742E20454550524FE1
:100130004D003A2047656E65726174696E672044B0
:10014000656661756C742D506172616D6574657260
:10015000207573696E67206F6C6420537469636BDC
:100160002053657474696E6773000A0D4143432020
:100170006E696368742061626765676C696368654E
:100180006E21000A0D42656E75747A6520506172A9
:10019000616D657465727361747A202564000A0D5F
:1001A0004162676C65696368204C7566746472753A
:1001B000636B73656E736F722E2E004F4B0A0D00CA
:1001C0000A0D537465756572756E673A200048654F
:1001D0006164696E67486F6C64004E657574726126
:1001E0006C000A0A0D002E005B25695D005B256925
:1001F0005D002B204D696B726F4B6F7074657220C0
:100200002B0048573A5625642E25642053573A252B
:10021000642E256425630053657474696E673A2003
:100220002564200028632920486F6C67657220428E
:1002300075737300486F6568653A2020202020257B
:10024000356900536F6C6C486F6568653A202535D9
:1002500069004C756674647275636B3A2025356964
:10026000004F66662020202020203A202535690096
:100270004B65696E65200048F668656E7265676556
:100280006C756E6700616B742E204C616765004E63
:1002900069636B3A20202020202025356900526FA9
:1002A0006C6C3A202020202020253569004B6F6D92
:1002B000706173733A202020253569004B313A254F
:1002C000346920204B323A25346920004B333A25DB
:1002D000346920204B343A25346920004B353A25C7
:1002E000346920204B363A25346920004B373A25B3
:1002F000346920204B383A25346920004E693A256C
:1003000034692020526F3A253469200047733A251A
:100310003469202047693A253469200050313A2554
:100320003469202050323A253469200050333A2570
:100330003469202050343A25346920004779726F9F
:10034000202D2053656E736F72004E69636B2025FC
:10035000346920282533692E25692900526F6C6C79
:100360002025346920282533692E2569290047690D
:10037000657220253469202825336929004E696378
:100380006B2025346920282533692E2578290052D1
:100390006F6C6C2025346920282533692E25782937
:1003A00000476965722025346920282533692900B2
:1003B0004E69636B20253469202825336929282557
:1003C00033692900526F6C6C20253469202825334D
:1003D0006929282533692900476965722025346910
:1003E00020282533692928253369290041434320E2
:1003F0002D2053656E736F72004E69636B20253438
:100400006920282533692900526F6C6C20253469D6
:1004100020282533692900486F6368202534692026
:100420002825336929005370616E6E756E673A2016
:100430002025356900456D70662E506567656C3AFC
:10044000253569004B6F6D7061737320202020206B
:100450002020005269636874756E673A2020253544
:1004600069004D657373776572743A20202535698C
:100470000053746172743A202020202025356900D1
:10048000506F7469313A202025336900506F7469C8
:10049000323A202025336900506F7469333A2020A6
:1004A00025336900506F7469343A20202533690080
:1004B000536572766F202000536574706F696E7497
:1004C0002020253369005374656C6C756E673A2083
:1004D0002533690052616E67653A2533692D2533EE
:1004E000690045787465726E436F6E74726F6C202C
:1004F00020004E693A2534692020526F3A2534692C
:10050000200047733A253469202047693A25346929
:10051000200048693A253469202043663A25346929
:10052000200011241FBECFEFD0E1DEBFCDBF13E00E
:10053000A0E0B1E0EAE8FFEA02C005900D92A23C1B
:10054000B107D9F718E0A2ECB3E001C01D92A43FB7
:10055000B107E1F70C944F030C940000282FFB0126
:100560008150853008F023E0842F992733272150CC
:100570003040829FD001839FB00D929FB00D112417
:10058000AC59BF4F019724F00E94AC570192FACFAB
:100590000E94D1530895863038F085E0A2E0B0E0A3
:1005A000082E0E94B45708958823C1F70895582F44
:1005B000863048F155E0842F9927252F3327215085
:1005C0003040829FD001839FB00D929FB00D1124C7
:1005D000AC59BF4FFB01019724F001900E94B45722
:1005E000FACFA2E6B0E0042E0E94B457A0E5B0E036
:1005F00088E0FB01182E0E94C057852F0E94CB0275
:100600000E94D15308958823B1F60895CF93A2E0B4
:10061000B0E00E94AC57802DC82F8150853020F06B
:10062000C3E08C2F0E94CB028C2F9927CF91089585
:100630008091E007E82FFF27EE0FFF1FE255F84FEC
:10064000808191818D5E9F4F14F010920201808114
:1006500091818A5B9F4F24F480910201882319F0D5
:100660002091A30615C081E0809302012091A3068A
:10067000280F2093A306253038F088EE93E090935E
:10068000E9038093E80304C0822F0E940826E8CF84
:10069000822F992790937107809370070895CFEF69
:1006A000D0E1DEBFCDBF14B815B8C7EED3E0E297F6
:1006B000D7FFFDCFC8EED3E0189BD4C2199BD0C2A0
:1006C0002DE02093010181E887B93E9A8FEF88B928
:1006D0008BE184B981E085B98EE38AB9579A87E4C2
:1006E0008BB9469A84B7877F84BF80916000886108
:1006F000809360001092600080ED97E09093E90392
:100700008093E80310925604109255041092B30798
:100710001092B207109258041092570410925A0483
:1007200010925904243108F496C288E894E0A0E0BD
:10073000B0E080937A0390937B03A0937C03B09303
:100740007D032A3009F485C2243109F482C2289A33
:100750000E943A120E940A120E942C0B0E94BB2295
:100760000E9462150E947E210E946650789480E764
:1007700090E09F938F9388E490E09F938F931F92D4
:100780001F92809101016AE00E943C57892F9927AE
:100790009F938F93809101010E943C5799279F93CB
:1007A0008F938EEC90E09F938F931F920E94560E32
:1007B0008091C8002DB73EB7235F3F4F0FB6F89426
:1007C0003EBF0FBE2DBF803209F43BC282E091E0F4
:1007D0009F938F931F920E94560E809101010F905C
:1007E0000F900F908C3008F02AC2299A49E060EEF1
:1007F00077E083E00E94AE0201E010E0D8010E94A1
:10080000AC57802D8A3409F02EC1A4E0B0E00E94DC
:10081000AC57802D853008F007C20E9406034CE5D6
:1008200060EE77E00E94AE020E94060399279F9334
:100830008F9383E891E09F938F931F920E94560EAF
:100840008091E8070F900F900F900F900F9080FD10
:10085000C7C10E943431809101018A3009F4BEC1C0
:10086000843109F4BBC1289A80ED97E09093E903A5
:100870008093E80385E58093A50680EC91E09F9343
:100880008F931F920E94560E8091E8070F900F9051
:100890000F9082FFC6C18EEC91E09F938F931F92C1
:1008A0000E94560E0F900F900F9082EE91E09F9352
:1008B0008F931F920E94560E0E94BF1A88E893E100
:1008C00090939D0380939C0381E08093A4060F90F6
:1008D0000F900F908091EC03882309F471C08091F0
:1008E0000E03882309F46CC01092EC038091A306D8
:1008F000882309F47CC00E9418030E94D8332091F9
:1009000001012A3009F47CC0243109F479C0289A05
:1009100080910603882309F45BC08150809306030D
:1009200080915B04882329F080915B04815080933F
:100930005B0480919C0390919D03892B09F464C012
:1009400080919C0390919D03019790939D038093C8
:100950009C032A3009F456C0243109F453C0289A64
:100960008091EC03882321F080915204882311F4B4
:100970000E94670B0E94D608CE010E94D7118823DF
:10098000E9F08091F907282F332780911C0390917B
:100990001D038217930744F48091090390910A0381
:1009A0008F5F9F4F09F452C00E94F85284E08093F9
:1009B000E70384E190E00E94CE11EC010E94E05335
:1009C0008091E703882309F085CF0E943C5382CFB2
:1009D0008093AF0610923B0410923A0410923904AF
:1009E00010923804109237041092360499CF0E9466
:1009F00076370E94D833209101012A3009F084CF44
:100A0000289886CF2898ACCF85E090E090939D03FE
:100A100080939C030E9498218091090390910A037E
:100A20008F5F9F4F09F09CCF80915204882309F477
:100A300097CF80E197E29093E9038093E80380E801
:100A400090E090930A03809309038ACF80E797E1AF
:100A50009093E9038093E80380E093E090930A0386
:100A600080930903A1CF0E94E12383E291E09F9349
:100A70008F931F920E94560E61E0762E0F900F907A
:100A80000F905FE4E52EF12CE00EF11E40E5C42E40
:100A9000D12CC00ED11E31E5A32EB12CA00EB11E5B
:100AA00022E5822E912C800E911E95E5492E512C27
:100AB000400E511E86E5282E312C200E311E32E0CC
:100AC000731609F4D5C083E0781609F4D4C093E016
:100AD000971508F4CDC080910101843168F085E05C
:100AE0008093F807109210088BE18093F4078EE44E
:100AF00080930D0880930E08D7010E94AC57802D7B
:100B00008C3008F068C0D6010E94AC57802D8C3024
:100B100008F061C0D5010E94AC57802D8C3008F0E0
:100B20005AC0D4010E94AC57802D8C3008F053C0BD
:100B3000D7010E94AC57802D8093E007D6010E9418
:100B4000AC57802D8093E107D5010E94AC57802DD2
:100B50008093E207D4010E94AC57802D8093E30775
:100B6000A4E5B0E00E94AC57802D8093E407A5E592
:100B7000B0E00E94AC57802D8093E507D2010E941F
:100B8000AC57802D8093E607D1010E94AC57802D91
:100B90008093E70721E0721651F482E391E09F937E
:100BA0008F931F920E94560E0F900F900F904CE55E
:100BB00060EE77E0872D0E94D702739495E0971539
:100BC00008F07DCF83E00E94CB028AE4D801082E92
:100BD0000E94B4571ACE0E94C823E9CF289844CE69
:100BE0008EE991E09F938F931F920E94560E88EE9C
:100BF00093E00E94CE11EC010E9468150F900F90B7
:100C00000F90CE010E94D7118823D9F38BEB91E08E
:100C10009F938F931F920E94560E0F900F900F90EC
:100C200018CE8AED91E039CE8AE691E09F938F93BA
:100C30001F920E94560E0F900F900F90EECD2998A4
:100C4000D5CD8091CA00863009F0C0CD0E9459549C
:100C5000BDCD28987DCD8BE095E0A0E0B0E069CDDA
:100C60002BE02FCD199B02C024E12BCD2AE029CD0A
:100C70000E94912430CF0E9443252DCF1F920F92C6
:100C80000FB60F9211248F939F93EF93FF93809150
:100C900008038823A9F48091D8039091D903019681
:100CA000FC01EB59FA4FE081ED3079F0863991057E
:100CB00061F09093D9038093D803E093C6000EC0EF
:100CC0001092D9031092D80309C01092D903109240
:100CD000D80381E080930803E093C600FF91EF9171
:100CE0009F918F910F900FBE0F901F9018951F929C
:100CF0000F920FB60F9211242F933F934F935F9350
:100D00008F939F93AF93BF93EF93FF9390E0809166
:100D1000C6008093D0035091DE03563910F09093B3
:100D2000DF038091D0038D3091F02091DF03822F7B
:100D300099278130910509F46AC0823091050CF43D
:100D40008CC0029709F47DC01092DF03A6C02091E9
:100D5000DF03223061F79093DF03852F99278E54AC
:100D6000994FFC01329740812091DA033091DB03E7
:100D7000241B3109DC0111978C91281B3109C90111
:100D80009F709093DB038093DA030024880F991FF0
:100D9000001C880F991F001C892F902D982F935CA1
:100DA0009093DC032F733070235C2093DD038081EC
:100DB000891709F46CC090E08091CD038F5F809318
:100DC000CD038091CF03882309F067C0992309F4EC
:100DD00064C081E08093CF03580F5093CC035150EF
:100DE000E52FFF27EE54F94F8DE080838091B40604
:100DF000823509F052C088E190E02CE00FB6F894FB
:100E0000A895809360000FBE2093600046C02F5FBE
:100E10002093DF03E52FFF27EE54F94F8091D00395
:100E200080835F5F5093DE032091D0038091DA03CB
:100E30009091DB03820F911D9093DB038093DA0383
:100E40002CC0E52FFF27EE54F94F8091D00380830B
:100E5000563938F31092DF03E7CF892B09F074CFAE
:100E60008091D003833259F08091D0038093B206F1
:100E700081E08093DE038091D0039927DDCF8091BC
:100E8000CF03882389F781E08093DF03EDCF8C9136
:100E9000821709F090CF91E094CFFF91EF91BF912D
:100EA000AF919F918F915F914F913F912F910F90B3
:100EB0000FBE0F901F901895AC01A0E0B0E09D010F
:100EC000A817B90748F4E5E6F5E08191280F311D30
:100ED0001196A417B507C8F33F70FD01EB59FA4FFF
:100EE000C9010024880F991F001C880F991F001C3E
:100EF000892F902D835C80831196FD01EB59FA4F69
:100F00002F733070822F835C8083AA59BA4F8DE093
:100F10008C9310920803809165058093C600089514
:100F2000BF92CF92DF92EF92FF920F931F93CF93D6
:100F3000DF93CDB7DEB72C859D857E85BB2483E20C
:100F4000809365059F59909366052093670503E09C
:100F500010E0772309F4ADC0CF84D88843E1E42EB4
:100F6000F12CEC0EFD1EA989BA897150109709F475
:100F7000A0C0109709F43CC0F601EB0DF11DB3942D
:100F80009081119789F47723A1F1F70122E030E0F5
:100F9000E20EF31ED701C080D180E20EF31E0D9049
:100FA000BC91A02DBB247150109719F1F601EB0DE7
:100FB000F11DB3944081119709F466C01097D1F0E8
:100FC000F601EB0DF11DB39460811197A1F4772325
:100FD00091F0F7013296D701CD90DC9032E0E32E0C
:100FE000F12CEE0EFF1EA081B181BB24715003C015
:100FF00090E040E060E0F801EB59FA4F892F8695C8
:101000008695835C80830F5F1F4FF801EB59FA4F81
:10101000892F99278370907082959295907F982759
:10102000807F982755279A01329522952F70232784
:101030003F702327822B835C80830F5F1F4FF80153
:10104000EB59FA4F4F705070440F551F440F551F06
:10105000862F99270024880F991F001C880F991F3D
:10106000001C892F902D842B835C80830F5F1F4F82
:10107000F801EB59FA4F6F73635C60830F5F1F4F8A
:10108000109709F076CF15C0772309F4B3CFF70195
:10109000A2E0B0E0EA0EFB1ED701C080D18022E0C2
:1010A00030E0E20EF31E0D90BC91A02DBB247150D8
:1010B00085CFC8010E945C07DF91CF911F910F91EE
:1010C000FF90EF90DF90CF90BF900895A3E07A2F2C
:1010D0004091CC03465009F45FC0E72FFF27EE5440
:1010E000F94F80818D537F5FE72FFF27EE54F94F33
:1010F00020812D537F5FE72FFF27EE54F94F30817A
:101100003D537F5FE72FFF27EE54F94F60816D530A
:101110007F5F9927880F991F880F991F522F52952B
:101120005F70582B822F99278F70907082959295BF
:10113000907F9827807F9827232F26952695282B08
:10114000832F992783709070002496958795079434
:10115000969587950794982F802D682B41504F3F87
:10116000D9F0EA2FFF27EE54F94F5083AF5F41507B
:101170004F3F91F0EA2FFF27EE54F94F2083AF5FE6
:1011800041504F3F49F0EA2FFF27EE54F94F60835B
:10119000AF5F442309F0A1CF85EB96E09093CB039A
:1011A0008093CA03A350A093C9030895CF93DF93FC
:1011B000CDB7DEB722970FB6F894DEBF0FBECDBF16
:1011C0008091CF03882309F42AC20E946608809187
:1011D000B306823609F471C08091B406992784362B
:1011E000910509F457C08536910584F5813691053E
:1011F00009F4D0C0823691050CF475C08236910591
:1012000009F451C183369105C1F48091C2039091D4
:10121000C303892B09F0F2C1E091CA03F091CB031B
:101220009081992309F0E0C190818AE0989FC001E4
:1012300011249093C3038093C2031092CF031092A2
:10124000CB031092CA031092C903E9C18C369105F1
:1012500009F492C08D3691050CF066C08736910571
:1012600009F4FAC08836910541F78FEF80930603A1
:10127000E091CA03F091CB03808190912304892BE4
:1012800080932304882311F01092D10381E080938E
:10129000D503D3CFE091CA03F091CB0390818AE0CC
:1012A000989FC00111249093040380930303892B1A
:1012B00021F281E08093D403C0CF8091B4069927B6
:1012C0008137910509F475C082379105CCF58B34CF
:1012D000910509F46CC18037910509F07DCF81E05B
:1012E0008093D20379CF8B34910509F0A6CFE0919A
:1012F000CA03F091CB038081918190936E04809317
:101300006D0420916B0430916C04821B930B845EFE
:101310009D4F68E671E00E945C57845B904090931B
:101320006A048093690489CF8437910509F498C0D1
:101330008637910509F081CF81E08093D3037DCF7B
:101340008337910509F4BFC08437910509F044CF74
:10135000E091CA03F091CB0380819181A281B38196
:101360008093C4039093C503A093C603B093C703AF
:101370008FEF8093060330CF8FEF80930603E091C9
:10138000CA03F091CB0380818093240481E0809391
:10139000D60353CFE091CA03F091CB03E081E03252
:1013A00008F453C08FE1809307038FEF8093060307
:1013B00044CFE091CA03F091CB0380818F3F09F4C1
:1013C00022C18081882309F043C081E08083E091BD
:1013D000CA03F091CB034CE560EE77E080810E9478
:1013E000AE02809108038823E1F3E091CA03F091F3
:1013F000CB0380818A838AE489838CE590E09F9384
:101400008F9380EE97E09F938F9321E030E03F939E
:101410002F93CE01820F931F9F938F933F932F9310
:10142000CE0102969F938F9383E08F9381E08F93F9
:1014300081E58F930E9490078DB79EB70F960FB6E8
:10144000F8949EBF0FBE8DBFC7CEE0930703ADCF0C
:10145000863008F285E0BACF81E08093D703EDCEE5
:10146000E091CA03F091CB0380819181A281B38185
:101470008093C4039093C503A093C603B093C7039E
:10148000809108038823E1F31F92809105038F93D5
:1014900084E58F930E9490078FEF809306030F904F
:1014A0000F900F90CACEA091CA03B091CB038BE0EE
:1014B000E5EAF6E00D9001928A95E1F78091AE069B
:1014C00080938A0772CF2091CA033091CB03D90150
:1014D0008C918150853020F4F90181818A34E9F0C2
:1014E0001A82809108038823E1F381E090E09F93C2
:1014F0008F93CE0102969F938F9381E08F938F936A
:1015000083E58F930E949007EDB7FEB737960FB62D
:10151000F894FEBF0FBEEDBF5FCE60EE77E08CE5C6
:101520002E5F3F4FDB01F901982F01900D929A95A4
:10153000E1F722503040482FD9018C910E94D70208
:1015400080910D089927AA27BB27BC01CD0124EC67
:1015500039E040E050E00E941D57DC01CB01809350
:10156000960390939703A0939803B0939903809167
:101570000E089927AA27BB27BC01CD010E941D5741
:10158000DC01CB018093920390939303A093940387
:10159000B0939503E091CA03F091CB0380810E9440
:1015A000CB020E9406038A830E9408269ACFE0910C
:1015B000CA03F091CB038081918190936E04809354
:1015C0006D0420916B0430916C04821B930B845E3C
:1015D0009D4F68E671E00E945C57845B9040909359
:1015E0006A0480936904F8CD8AE0989FC0011124B1
:1015F0000E94CE119093640580936305E091CA0325
:10160000F091CB0311CE0E940603E091CA03F09142
:10161000CB038083E091CA03F091CB03D2CE229614
:101620000FB6F894DEBF0FBECDBFDF91CF91089506
:10163000CF93C82F8A3029F08091C00085FFFCCF5E
:1016400004C08DE00E94180BF7CFC093C60080E065
:1016500090E0CF910895089588E18093C100809132
:10166000C00082608093C0008091C1008068809338
:10167000C1008091C10080648093C1008AE28093A0
:10168000C40080910303909104030E94CE119093B3
:101690009206809391068CED90E00E94CE1190937B
:1016A000B1068093B0061092930688E48093940666
:1016B0008FE0809397068AE08093950610929606B5
:1016C0001092CB031092CA031092C9030895EF92AF
:1016D000FF920F931F9380910803882309F478C227
:1016E0008091D503882309F082C08091D603882396
:1016F00029F080910803882309F07FC18091D303EA
:10170000882329F080910803882309F05BC1809128
:10171000D703882329F080910803882309F036C174
:101720008091B0069091B1060E94D711882329F0CC
:1017300080910803882309F0C8C080910303909129
:101740000403892B09F084C18091D403882329F0F4
:1017500080910803882309F00FC28091C203909101
:10176000C303892B09F07EC1209107032F3F59F154
:1017700080E190E09F938F93822F99278295929595
:10178000907F9827807F98278D5F9E4F9F938F93A0
:1017900081E090E09F938F9387E093E09F938F93F6
:1017A00082E08F9381E08F9381E48F930E94900772
:1017B0008FEF809307038DB79EB70B960FB6F89403
:1017C0009EBF0FBE8DBF80918A07882329F080912C
:1017D0000803882309F05EC08091D203882309F4AE
:1017E000F7C180910803882309F4F2C139C08091C0
:1017F0000803882309F479CF0E94C81A84E190E095
:101800009F938F939091D10384E1989FC0011124FD
:10181000815E9C4F9F938F9381E090E09F938F9385
:1018200081ED93E09F938F9382E08F9381E08F937C
:1018300088E48F930E9490078091D1038F5F2DB72A
:101840003EB7255F3F4F0FB6F8943EBF0FBE2DBF8A
:10185000843008F4B8C11092D1031092D50345CF5B
:1018600086E190E09F938F938EEA97E09F938F930A
:1018700081E08F938F9380E58F930E949007109261
:10188000D2038DB79EB707960FB6F8949EBF0FBED2
:101890008DBF9EC181E090E09F938F938AE897E08F
:1018A0009F938F9381E08F938F9382E48F930E9415
:1018B000900710928A072DB73EB7295F3F4F0FB6AA
:1018C000F8943EBF0FBE2DBF87CF8091F4079927B4
:1018D000880F991F880F991F7C010027F7FC00953E
:1018E000102F8091A7049091A804A091A904B09111
:1018F000AA04BC01CD01A80197010E949157309321
:101900009E0620939D0680919F049091A004A09133
:10191000A104B091A204BC01CD01A80197010E94CD
:1019200091573093A00620939F06809143048093A3
:10193000A106809142048093A20688E090E09F93E4
:101940008F938DE996E09F938F9381E08F9383E04F
:101950008F9387E78F930E9490078091A3062DB7FE
:101960003EB7295F3F4F0FB6F8943EBF0FBE2DBF65
:10197000853018F086E08093A30683E690E00E940D
:10198000CE119093B1068093B006D7CE8BE090E055
:101990009F938F9385EA96E09F938F9381E08F9337
:1019A000809105038F9387E48F930E949007109294
:1019B000D7038DB79EB707960FB6F8949EBF0FBE9C
:1019C0008DBFAECE8AE090E09F938F9383E996E03F
:1019D0009F938F9381E08F938F9386E58F930E94DF
:1019E00090071092D3032DB73EB7295F3F4F0FB634
:1019F000F8943EBF0FBE2DBF8ACE0E94C81A80E564
:101A000090E09F938F938FE193E09F938F9321E0DA
:101A100030E03F932F938EE193E09F938F933F931A
:101A20002F9384E294E09F938F9383E08F9381E0E0
:101A30008F938CE48F930E9490071092D6038DB7FA
:101A40009EB70F960FB6F8949EBF0FBE8DBF56CEB1
:101A500080919106909192060E94D711882309F0F7
:101A600077CE72CE80916305909164050E94D71164
:101A7000882309F479CE80910803882309F474CE71
:101A80008091F4079927880F991F880F991F7C016F
:101A90000027F7FC0095102F8091A7049091A804CF
:101AA000A091A904B091AA04BC01CD01A80197019D
:101AB0000E949157309356052093550580919F04BD
:101AC0009091A004A091A104B091A204BC01CD0109
:101AD000A80197010E94915730935805209357050C
:101AE00020918708309188084091890850918A0890
:101AF000DA01C90103E0880F991FAA1FBB1F0A95CD
:101B0000D1F7820F931FA41FB51F820F931FA41F2D
:101B1000B51F20917A0330917B0340917C03509153
:101B20007D03BC01CD010E94915730935A0520934B
:101B300059058EE090E09F938F9385E595E09F9304
:101B40008F9381E08F938F9383E48F930E9490070C
:101B50008091C2039091C3030E94CE1190936405BB
:101B6000809363052DB73EB7295F3F4F0FB6F894BA
:101B70003EBF0FBE2DBFF8CD82E490E09F938F93C0
:101B800088E497E09F938F9381E08F938F9384E411
:101B90008F930E9490071092D4038DB79EB707963B
:101BA0000FB6F8949EBF0FBE8DBF80910303909136
:101BB0000403009709F4D1CD0E94CE1190939206B0
:101BC00080939106CACD8093D1031092D5038DCD19
:101BD0001F910F91FF90EF900895982F80918B07A0
:101BE000813031F0892F0E94180B282F33270CC029
:101BF00080912504E82FFF27E15EFC4F90838F5FE3
:101C00008093250421E030E0C90108950F931F93CC
:101C1000CF93DF938C01EB01672B71F0F801819179
:101C20008F010E94ED0D219739F0F80181918F010C
:101C30000E94ED0D219791F7DF91CF911F910F91A8
:101C400008950F931F93CF93DF938C01EB01672BC4
:101C500081F0F8010F5F1F4F84910E94ED0D2197D5
:101C600041F0F8010F5F1F4F84910E94ED0D219705
:101C700081F7DF91CF911F910F910895CF93C82FD6
:101C8000181634F480E20E94ED0DC1501C16D4F3F6
:101C9000CF910895CF93C82F181634F480E30E9493
:101CA000ED0DC1501C16D4F3CF9108952F923F92A1
:101CB0004F925F926F927F928F929F92AF92BF925C
:101CC000CF92DF92EF92FF920F931F93CF93DF9308
:101CD000CDB7DEB7E0970FB6F894DEBF0FBECDBF2D
:101CE00026968FAD26972896EEADFFAD28978824CF
:101CF0009924540180938B0748E4C42ED12CCC0E38
:101D0000DD1E7F01C701F7011491112331F0153257
:101D100021F00894E11CF11CF6CFB701681B790B88
:101D200009F095C0112309F43DC20894E11CF11C8F
:101D30001FA63FA4232C0FEF39A6F7010894E11C3E
:101D4000F11C14911537C9F1812F80628837A9F1F0
:101D5000103209F440C0133209F48DC01A3209F46C
:101D600079C01D3209F476C01B32C9F11E32C9F1A7
:101D7000103309F48AC0812F8153893008F07EC066
:101D800060E070E0CB01880F991F880F991F880FC2
:101D9000991F860F971F680F791F610F711D605380
:101DA0007040F7010894E11CF11C1491812F8053BD
:101DB0008A3040F3262E153739F630FE3DC0F60145
:101DC00084E090E0C80ED91E80809180A280B3800C
:101DD000103209F0C0CF89A5882309F0AECF19A72A
:101DE000ACCFF7010894E11CF11C14911A3209F4EC
:101DF00051C060E070E014C0CB01880F991F880FBC
:101E0000991F880F991F860F971F680F791F610F01
:101E1000711D60537040F7010894E11CF11C14918E
:101E2000812F80538A3040F3EFEF6F3F7E0714F429
:101E30006FEF7FEF062F86CFF60182E090E0C80EAD
:101E4000D91E808191814C01AA24BB2481CF0E949C
:101E5000210E68CF1A3251F4F60182E090E0C80EEC
:101E6000D91E208022200CF068CF219490E1392ADD
:101E7000EFED3E2262CF98E0392A5FCF1836C9F0E5
:101E80001C36D1F481E0382A58CF34FC56CFF0E22A
:101E90003F2A53CFF60182E090E0C80ED91E608140
:101EA00071819FEF6F3F790714F46FEF7FEF062F7B
:101EB00044CF24E0322A41CF133609F44DC1143403
:101EC00009F41FC1143609F41CC1193609F419C1EB
:101ED0001F3409F40FC11F3609F40CC1103709F47F
:101EE000F9C0133709F4B2C0153509F4ECC0153741
:101EF00009F4E9C0183509F444C0183709F441C0A1
:101F0000112309F44FC1CE0101969DA78CA7198317
:101F100081E0482E19A6632C7724042D5FA4541861
:101F200057FC2DC029A5222331F10F5F050DC301F8
:101F300080739070892B09F42FC1222309F027C1E7
:101F400066FC1BC1C30180739070809709F410C1B7
:101F5000852D0E944A0E842D992787FD9095BC01FE
:101F60008CA59DA50E94060E64FECCCE822D801B02
:101F70000E943E0EC7CE66FED9CF0E5FD7CF552446
:101F8000D1CFE0E1EEA733FE07C081149104A10494
:101F9000B10411F0F0E43F2A19A60FA707FD02C013
:101FA0002FED3222CE0189969DA78CA78114910432
:101FB000A104B10419F49FA5992361F1EEA54E2E59
:101FC00055246624772418AA84149504A604B7041B
:101FD00010F0F1E0F8ABC501B401A30192010E9439
:101FE0006F57DC01CB01082F8A30F0F4005DECA5BF
:101FF000FDA50293FDA7ECA7C501B401A3019201C1
:102000000E946F5749015A01F8A9FF23E1F62EA556
:10201000283079F0632C7724CE010196482EFCA558
:102020004F1A28E2420E79CF095A183501F70F7D71
:10203000DECF632C772463FEEFCF003369F380E3B8
:10204000ECA5FDA58293FDA7ECA7E6CFF60182E003
:1020500090E0C80ED91E0190F081E02DFDA7ECA7FD
:10206000EF2B81F4FE013196FDA7ECA788E289836E
:102070008EE6818385E78B838CE68C838D8389E272
:102080008E831F8207FD15C0802F992787FD9095AD
:10209000AC0160E070E08CA59DA50E9436560097CB
:1020A00031F0482EFCA54F1A04150CF033CF402E0A
:1020B00031CFECA5FDA501900020E9F731974E2E18
:1020C0002CA5421A27CF153511F481E0382A9AE061
:1020D0009EA762CFF60182E090E0C80ED91E8081F3
:1020E00091814C01AA24BB2490E19EA7E0E43E2A02
:1020F00018E752CF1F3411F4E1E03E2AF8E0FEA7C2
:102100004BCF143411F491E0392A30FE18C0F60197
:1021100084E090E0C80ED91E80809180A280B380B8
:10212000B7FE0AC0B094A09490948094811C911C36
:10213000A11CB11C8DE289A79AE09EA72ECFF601C3
:1021400082E090E0C80ED91E808191814C01AA24C2
:1021500097FCA094BA2CE4CFFE013196FDA7ECA722
:10216000F60182E090E0C80ED91E80818983D0CE2E
:10217000822D801B0E944A0EEBCE80E38AA71BA70C
:1021800062E070E0CE018A960E94060EDBCE61E02E
:1021900070E0CE018996F8CF822D801B0E943E0E02
:1021A00029A5CBCEE0960FB6F894DEBF0FBECDBF0B
:1021B000DF91CF911F910F91FF90EF90DF90CF9023
:1021C000BF90AF909F908F907F906F905F904F9057
:1021D0003F902F9008951F920F920FB60F921124E7
:1021E0002F933F935F936F937F938F939F93AF93BF
:1021F000BF93EF93FF938091E703882329F08091A9
:10220000E70381508093E7038091EF0381508F3F74
:1022100009F493C08093EF038091E8039091E90360
:10222000029700F18091E8039091E9030197909360
:10223000E9038093E8038091E8039091E9032091FA
:10224000090330910A0382239323892B89F080911B
:1022500001018A3009F48BC0479A8091E80783FF17
:102260008DC010C08FEF9FEF90930A0380930903F6
:10227000809101018A3009F478C047988091E8077D
:1022800083FF7CC086B19927FC01E071F07084FF68
:102290000AC08091EA039091EB0301969093EB03BF
:1022A0008093EA036BC08091EA039091EB03892B42
:1022B00049F18091EA039091EB038A56914010F521
:1022C0008091EA039091EB0369E270E00E94485725
:1022D0008091EA039091EB03860F971F9093EB0395
:1022E0008093EA038091EA039091EB030B9708F443
:1022F00040C08091EA039091EB030A9790936E049B
:1023000080936D0480916D0490916E0420916B0414
:1023100030916C04821B930B845E9D4F68E671E0E4
:102320000E945C57845B904090936A048093690498
:102330001092EB031092EA0321C089E08093EF032F
:1023400080910B038F5F817080930B03882319F4B6
:1023500081E08093EC038091ED039091EE03019670
:102360009093EE038093ED0357CF5A9887CF5A9AF4
:1023700085CFF0936E04E0936D04C4CFFF91EF918D
:10238000BF91AF919F918F917F916F915F913F919D
:102390002F910F900FBE0F901F9018952091ED0375
:1023A0003091EE03280F391FC9010196089520913D
:1023B000ED033091EE03821B930B892F99278695AD
:1023C000807490700895CF93DF930E94CE11EC013A
:1023D000CE010E94D7118823D9F3DF91CF910895C0
:1023E0001F93CF93DF930E94CE11EC011FEC08C026
:1023F00080910E03882321F090930E0310937A00AE
:10240000CE010E94D711982F882391F3DF91CF91AD
:102410001F9108959FB7F894579A5F983E9A469AED
:102420008091B0008F708093B0008091B000836085
:102430008093B0008091B1008B738093B100809144
:10244000B1008B608093B1001092B2008FEF809347
:10245000B3008091B00080688093B00080917000DC
:102460008A7F8093700080917000826080937000FA
:102470009FBF08958AE090E00E94CE119093F703E9
:102480008093F60382E085BD83EA84BD17BC88E7AC
:1024900088BD86E086BD80916E00816080936E006D
:1024A00008951F920F920FB60F9211242F933F930E
:1024B0004F935F936F937F938F939F93AF93BF934C
:1024C000EF93FF93809101018431C0F48091F00378
:1024D000882309F446C02091F1033091F20341E0D2
:1024E0002F37340708F49CC08FEF8093B3002F5F21
:1024F00030403093F2032093F103D3C28091F00374
:10250000882349F78091B00086FFADC08091B0006C
:102510008F7B8093B0008091F503882309F0EEC093
:1025200080910608282F33278DED96E0289FA00183
:10253000299F500D389F500D1124CA012091F3039B
:102540003091F403821B930B9093F2038093F10379
:102550001092F4031092F303469A81E08093F00303
:10256000BACF8091B00086FFA7C08091B0008F7B6A
:102570008093B00089EA93E09093F2038093F10393
:1025800080910C0390910D039C01220F331F280FA3
:10259000391F809185039927880F991F880F991FEC
:1025A000280F391F37FD2AC2C90195958795959542
:1025B000879590930D0380930C039093E30380938E
:1025C000E20380912C0880FFD0C080910308682F1F
:1025D0007727882799272091A7043091A804409154
:1025E000A9045091AA0457FDF0C1E7E0559547951D
:1025F00037952795EA95D1F70E941D579B01AC01AD
:1026000097FD06C2B6E05595479537952795BA953B
:10261000D1F78091E2039091E303820F931FCFC023
:102620002F3F310569F060F0A9014F5F50404F37EF
:10263000510588F480E88093B3002058304059CF8A
:102640008091F1038093B3001092F2031092F10392
:102650001092F00326C28FEF8093B3005093F203E1
:102660004093F1031EC28091B00080648093B0005B
:102670008CEB90E09093F2038093F1038091F3034D
:102680009091F40384549F4F9093F4038093F30349
:102690008091E603882329F080915B04853B08F054
:1026A000EDC09091F5039F5F80910608891708F0AF
:1026B000E2C01092F50351CF8091B0008064809306
:1026C000B00080910608282F33278DED96E0289FD3
:1026D000A001299F500D389F500D1124CA0120914F
:1026E000F3033091F403821B930B9093F2038093D6
:1026F000F1039C0181E08093F003F1CE29EA33E0FD
:10270000E82FFF27E130F10509F4BAC0EE0FFF1FF3
:10271000E255F84F80819181880F991F87559C4F12
:102720009093F2038093F1032091F1033091F2032F
:1027300055E02D3D350708F454C18CED95E090939C
:10274000F2038093F1039C012C5B30403093F20341
:102750002093F1038091F3039091F403820F931F70
:102760009093F4038093F303F8CE80910308682FCD
:102770007727882799272091A7043091A8044091B2
:10278000A9045091AA0457FD1BC1A7E05595479590
:1027900037952795AA95D1F70E941D579B01AC014B
:1027A00097FD31C1F6E05595479537952795FA95F0
:1027B000D1F78091E2039091E303821B930B9093F6
:1027C000E3038093E20380910408282F3327220F2C
:1027D000331F220F331F8091E2039091E30382178E
:1027E00093077CF080910508282F3327220F331F91
:1027F000220F331F8091E2039091E30328173907DA
:1028000024F43093E3032093E2032091E203309118
:10281000E3038091F1039091F203280F391F2050B8
:1028200032408091E2039091E30397FDEAC09595D1
:102830008795959587959093E3038093E203809124
:10284000E2039091E303909373078093720745E04E
:102850002D3D340708F4BEC08CED95E09093F20353
:102860008093F1032091F1033091F2033093F4034C
:102870002093F3033FCF9093F5036FCE469811CF8B
:102880003093F2032093F10380910C0390910D0398
:102890009C01220F331F280F391F80918503992730
:1028A000880F991F880F991F280F391F37FDE2C025
:1028B000C901959587959595879590930D0380937C
:1028C0000C039093E3038093E20380912C0880FF34
:1028D000A4C080910308682F772788279927209123
:1028E000A7043091A8044091A9045091AA0457FD6F
:1028F000C4C0A7E05595479537952795AA95D1F778
:102900000E941D579B01AC0197FDBCC0F6E0559598
:10291000479537952795FA95D1F78091E2039091E5
:10292000E303820F931F9093E3038093E20380916C
:102930000408282F3327220F331F220F331F8091C3
:10294000E2039091E303821793077CF080910508DE
:10295000282F3327220F331F220F331F8091E203CA
:102960009091E3032817390724F43093E30320936D
:10297000E2038091E2039091E3032091F10330910F
:10298000F203820F931F805092409093F203809342
:10299000F1038091E2039091E30397FD69C095955F
:1029A0008795959587959093E3038093E2038091B3
:1029B000E2039091E3039093730780937207B4CE80
:1029C00021583F4F4F4F5F4FE0CE21583F4F4F4F61
:1029D0005F4F0BCE51E02737350758F487E791E07A
:1029E0003DCF81E02737380708F0AECE87E791E08A
:1029F000A6CE3093F2032093F10334CF2D5F3F4FE7
:102A0000D3CD039614CF215C3F4F4F4F5F4FCACEBB
:102A1000215C3F4F4F4F5F4FF5CD80910308682FEA
:102A20007727882799272091A7043091A8044091FF
:102A3000A9045091AA0457FD2FC0E7E0559547958A
:102A400037952795EA95D1F70E941D579B01AC0158
:102A500097FD1DC066E055954795379527956A9572
:102A6000D1F78091E2039091E303821B930B5BCF3C
:102A7000039695CF2D5F3F4F1BCF21583F4F4F4FB0
:102A80005F4F37CF215C3F4F4F4F5F4F3FCF215CB0
:102A90003F4F4F4F5F4FDECF21583F4F4F4F5F4F5C
:102AA000CCCFFF91EF91BF91AF919F918F917F918B
:102AB0006F915F914F913F912F910F900FBE0F90AB
:102AC0001F90189510927C008FEC80937A000895E7
:102AD000EF92FF920F931F93CF93DF9303E010E0E9
:102AE000D8010E94AC57802DC82FDD27C531D105F4
:102AF00008F02A97C7BD1092FF0384E690E00E9479
:102B0000F01180911203909113038255934010F4B9
:102B1000C0E0D0E0CA3FD105E0F486EEE82E81E0C7
:102B2000F82EC7BD82E390E00E94F011FF92EF9271
:102B30001F920E94560E80911203909113030F90E2
:102B40000F900F908255934020F02196CA3FD105F7
:102B500040F3D8010C2E0E94B457C09399078CE221
:102B600091E00E94F011DF91CF911F910F91FF90A2
:102B7000EF900895FF920F931F93CF9310E010935F
:102B8000FA031093F9031093F803CCE801E095EFF2
:102B9000F92E133009F499C010E080910B04909144
:102BA0000C048C5F93400CF07FC080911103815026
:102BB000809311038091090490910A048C5F9340E3
:102BC0000CF067C0809110038150809310038091B6
:102BD0000704909108048C5F9340D4F580910F0313
:102BE000815080930F0388E080932A040E948421FF
:102BF000809111038A3008F044C00093FA038AE000
:102C000080931103809110038A30A0F50093F9039B
:102C10008AE08093100380910F038A3020F500939F
:102C2000F8038AE080930F0380912A048823E1F758
:102C3000809394078FEC80937A0080919407882387
:102C4000E1F3CA3008F446C0C15009F0A2CF47C032
:102C500080910704909108048750944084F18091FA
:102C60000F038F5FBECF863FF8F20093F803F09218
:102C70000F03DACF863F78F20093F903F092100346
:102C8000CACF863F08F4BECF0093FA03F092110337
:102C9000B9CF8091090490910A04875094408CF038
:102CA000809110038F5F91CF80910B0490910C0461
:102CB0008750944044F0809111038F5F79CF1F5F5C
:102CC00092CF1F5F84CF11E075CFCB3008F464CF73
:102CD000C9E062CF8AE090E00E94F011B5CF86E4AF
:102CE00090E00E94F011CF911F910F91FF900895F5
:102CF0001F920F920FB60F921124EF92FF920F9333
:102D00001F932F933F934F935F936F937F938F9373
:102D10009F93AF93BF93CF93DF93EF93FF93209154
:102D20001404822F9927AA27BB272F5FFC01429703
:102D300040F4E25CFF4FEE0FFF1F0590F491E02D91
:102D400009941092140482E0809313048091130478
:102D500080937C0080911404882309F4F9C38FECDC
:102D600080937A00F5C320931404809178009091A9
:102D700079002091190430911A04820F931F9093C7
:102D80001A048093190481E0DFCF2093140480910A
:102D90007800909179002091170430911804820FE7
:102DA000931F909318048093170484E0CDCF209351
:102DB000140480917800909179002091B5043091AD
:102DC000B604821B930B909398078093970780918A
:102DD000970790919807909322048093210482E0B2
:102DE000B3CF209314048091B3049091B404209144
:102DF000780030917900821B930B90938D0780931C
:102E00008C0780918C0790918D079093200480937C
:102E10001F0487E099CF209314048091780090914B
:102E20007900909316048093150486E08DCF20934B
:102E30001404209178003091790030931804209385
:102E400017041092130482CF209314042091780069
:102E50003091790030931A042093190481E074CFE3
:102E60001092140481E080930E038091FB039091F3
:102E7000FC0301969093FC038093FB038091780000
:102E80009091790020919C0730919D07820F931FAC
:102E900090939D0780939C07809194078F5F809308
:102EA000940780919407853008F44DCF80919C075A
:102EB00090919D0797FD36C39595879590939D07B3
:102EC00080939C07809178009091790090931303F0
:102ED00080931203109294078091FD039091FE035A
:102EE000BC01660F771F62957295707F7627607FB1
:102EF0007627681B790B80918F03482F5527809187
:102F0000FF03282F332727FD30958FEF90E0289F70
:102F10008001299F100D389F100D1124809190077A
:102F200090919107800F911F20919C0730919D07F0
:102F3000821B930B2091500430915104821B930B00
:102F4000489F9001499F300D589F300D1124620F0A
:102F5000731F77FDE4C275956795759567957595AF
:102F6000679575956795759567957093FE03609362
:102F7000FD0380919C0790919D07EC01EE27D7FD02
:102F8000E095FE2F20911403309115034091160314
:102F900050911703DA01C90163E0880F991FAA1F36
:102FA000BB1F6A95D1F7821B930BA40BB50BC80FFF
:102FB000D91FEA1FFB1FCE01DF010496A11DB11D21
:102FC000B7FDA7C233E0B595A795979587953A9534
:102FD000D1F78093140390931503A0931603B09335
:102FE00017038091900790919107800F911F209176
:102FF0001403309115034091160350911703821B5F
:10300000930B909351048093500480919C0790916E
:103010009D0797FD7CC29595879590939D0780931A
:103020009C0782E091CE2093140420917800309187
:1030300079008091170490911804280F391F80910E
:1030400001018A3009F44DC2220F331F220F331FB2
:103050003093180420931704C90137FD51C2959588
:103060008795959587959595879590930A04809374
:10307000090480911D0490911E04820F931F97FDF7
:1030800044C29595879590931E0480931D042091CA
:10309000BD043091BE04821B930B9093190380935F
:1030A000180320910F04309110048091180390911F
:1030B0001903280F391F37FD25C235952795309301
:1030C000100420930F0483E03FCE2093140420913A
:1030D0007800309179008091190490911A04280F9A
:1030E000391F809101018A3009F4F8C1220F331F82
:1030F000220F331F30931A0420931904C90137FD9E
:10310000FDC195958795959587959595879590930C
:103110000C0480930B0480911B0490911C04820F7B
:10312000931F97FDE9C19595879590931C04809313
:103130001B042091BF043091C004821B930B909319
:103140001B0380931A032091110430911204809183
:103150001A0390911B03280F391F37FDCAC13595FB
:103160002795309312042093110481E0EDCD209334
:10317000140480917800909179002091B5043091E9
:10318000B604821B930B90939807809397078091C6
:103190009707909198072091210430912204820F83
:1031A000931F909304048093030482E0CDCD209379
:1031B00014048091B3049091B4042091780030916C
:1031C0007900821B930B90938D0780938C078091DD
:1031D0008C0790918D0720911F0430912004820F5D
:1031E000931F909306048093050487E0ADCD209350
:1031F0001404809101018A3009F462C1843109F418
:1032000093C18091780090917900209115043091BC
:103210001604820F931F909308048093070486E09E
:1032200093CD20931404809178009091790020919F
:10323000170430911804820F931F90931804809301
:1032400017041092130482CD2093140417CE2093F8
:1032500014048091780090917900AA2797FDA09599
:10326000BA2FBC01CD010E94A3567B018C01809135
:10327000AD049091AE04A091AF04B091B0049C0154
:10328000AD01C801B7010E944356DC01CB01BC016E
:10329000CD010E948656DC01CB01909302048093FD
:1032A0000104809101049091020402970CF4BAC0C9
:1032B0008091AD049091AE04A091AF04B091B004A0
:1032C00020E030E84BE354E4BC01CD010E94AD5650
:1032D0008823DCF58091AD049091AE04A091AF04F9
:1032E000B091B0042AE037ED43EA5CE3BC01CD01C4
:1032F0000E944456DC01CB018093AD049093AE0450
:10330000A093AF04B093B004809130049091310445
:10331000845F9140D0F48091AD049091AE04A0916F
:10332000AF04B091B0042DEC3CEC4CEC5DE3BC017F
:10333000CD010E944456DC01CB018093AD049093F3
:10334000AE04A093AF04B093B00481E08093000476
:10335000809178009091790090938F0780938E07E9
:103360008091010490910204AA2797FDA095BA2F9D
:1033700020916F0430917004409171045091720457
:10338000820F931FA41FB51F80936F049093700446
:10339000A0937104B093720420916F043091700473
:1033A000409171045091720457FD9EC07AE055958A
:1033B0004795379527957A95D1F780916F0490912D
:1033C0007004A0917104B0917204821B930BA40B42
:1033D000B50B80936F0490937004A0937104B09325
:1033E000720483E0B1CC2093140480911C0390916B
:1033F0001D039C01220F331F280F391F8091780075
:103400009091790063E070E00E944857260F371FC3
:10341000369527953695279530931D0320931C03E9
:1034200085E092CC80910104909102048F5F9F4FC0
:103430000CF08BCF8091AD049091AE04A091AF04BD
:10344000B091B00420E030E849E054E4BC01CD0183
:103450000E94B05618160CF078CF8091AD04909170
:10346000AE04A091AF04B091B0042AE037ED43EA76
:103470005CE3BC01CD010E944356DC01CB0180938B
:10348000AD049093AE04A093AF04B093B0048091C8
:10349000300490913104845F914008F056CF8091C0
:1034A000AD049091AE04A091AF04B091B0042DECA6
:1034B0003CEC4CEC5DE3BC01CD010E9443563BCF9C
:1034C0008091780090917900209115043091160434
:1034D000820F931F0196969587959DCE220F331FDD
:1034E00009CE220F331FB4CD21503C4F4F4F5F4FB9
:1034F0005DCF2F5F3F4F33CE019615CE079601CE9D
:103500000796ADCD2F5F3F4FD8CD0196BACD01962E
:1035100082CDCE01DF010B96A11DB11D53CD615EA1
:103520007F4F19CD0196C8CC809178009091790099
:103530002091150430911604820F931F2FEF37E06E
:10354000281B390B309308042093070486E0FCCB3A
:10355000FF91EF91DF91CF91BF91AF919F918F91AB
:103560007F916F915F914F913F912F911F910F919B
:10357000FF90EF900F900FBE0F901F90189590E264
:10358000EFE1F3E08FE49193815087FFFCCF089542
:103590001F93CF93DF938091240420911E0328175B
:1035A00010F4209324049091230490FF08C080918C
:1035B0002404882309F4D8C081508093240491FF07
:1035C00008C080912404821709F44DC18F5F809355
:1035D0002404892F992780FF02C081FDC2C00E9468
:1035E000BF1A909124049A30A0F581E180932504BC
:1035F000892F99279F938F9388EE91E09F938F93C4
:1036000081E08F930E94560E0F900F900F900F90B5
:103610000F9080912404C82FDD27C530D10509F40F
:1036200025C1C630D105FCF4C230D10509F424C24D
:10363000C330D1050CF49BC0C330D10509F40EC5CD
:10364000249709F478C5815080931E0310922404B6
:103650004FC680E180932504892F99279F938F93EC
:103660008DEE91E0CBCFC830D10509F4B8C1C93097
:10367000D1050CF4D0C0CA30D10509F4A6C4CA30B3
:10368000D1050CF468C32B97F1F61092250482EE55
:1036900094E09F938F9311E01F930E94560E84E154
:1036A000809325040F900F900F908091A906992781
:1036B00087FD90959F938F938091A806992787FD0A
:1036C00090959F938F9382EF94E09F938F931F9396
:1036D0000E94560E88E2809325046DB77EB7695F1D
:1036E0007F4F0FB6F8947EBF0FBE6DBF8091AA06C4
:1036F000992787FD90959F938F938091AB0699278B
:103700009F938F9382E095E09F938F931F930E94E6
:10371000560E8CE3809325048DB79EB707960FB69F
:10372000F8949EBF0FBE8DBF8091AF0699279F93DF
:103730008F938091AC06992787FD90959F938F93E7
:1037400082E195E09F938F931F930E94560E6DB771
:103750007EB7695F7F4F0FB6F8947EBF0FBE6DBF17
:10376000C7C5109224043BCF2093240428CF209770
:1037700009F4EDC1219709F066CF8091E80780FF39
:1037800077C51092250480915004909151049F9325
:103790008F9384E392E09F938F9311E01F930E9495
:1037A000560E84E1809325040F900F900F900F9098
:1037B0000F9080914E0490914F049F938F9383E4D8
:1037C00092E09F938F931F930E94560E88E28093FE
:1037D00025040F900F900F900F900F90809112037F
:1037E000909113039F938F9382E592E09F938F9321
:1037F0001F930E94560E8CE3809325040F900F9028
:103800000F900F900F908091990799279F938F9316
:1038100081E692E026C1C630D10509F470C327972E
:1038200009F011CF84E18093250480911C039091CD
:103830001D039F938F9386E294E09F938F9311E0F3
:103840001F930E94560E88E2809325040F900F90DC
:103850000F900F900F9080915B0499279F938F9307
:1038600085E394E0FEC010922404B3CE10922504A8
:103870008CE393E09F938F93C1E0CF930E94560E09
:10388000809101010F900F900F908A3009F4AEC221
:103890008B3009F4B8C1843109F4B5C18D3009F019
:1038A00027C584E1809325048091110399279F9374
:1038B0008F934091BF045091C004CA0157FD16C5B3
:1038C00095958795959587959595879595958795E0
:1038D0009F938F939A0157FD06C53595279535958A
:1038E00027953595279580910B0490910C04821BA8
:1038F000930B9F938F9380EB93E09F938F93CF9342
:103900000E94560E88E2809325048DB79EB70996D3
:103910000FB6F8949EBF0FBE8DBF809110039927FC
:103920009F938F934091BD045091BE04CA0157FDEF
:10393000D8C49595879595958795959587959595EF
:1039400087959F938F939A0157FDC8C43595279506
:1039500035952795359527958091090490910A040E
:10396000821B930B9F938F9384EC93E09F938F9391
:10397000CF930E94560E8CE3809325046DB77EB7DB
:10398000675F7F4F0FB6F8947EBF0FBE6DBF80910B
:103990000F0399279F938F932091BB043091BC0410
:1039A000C90137FD99C4959587959F938F93809111
:1039B000070490910804281B390B3F932F9388ED3F
:1039C00093E09F938F93CF930E94560E8DB79EB72F
:1039D00009960FB6F8949EBF0FBE8DBF89C4109292
:1039E000250484E494E09F938F9311E01F930E9439
:1039F000560E84E1809325040F900F900F908091D4
:103A0000690490916A049F938F9383E594E09F9358
:103A10008F931F930E94560E88E2809325040F9087
:103A20000F900F900F900F9080916D0490916E0405
:103A30009F938F9382E694E09F938F931F930E94AE
:103A4000560E8CE3809325040F900F900F900F90EB
:103A50000F9080916B0490916C049F938F9381E7FA
:103A600094E09F938F931F930E94560E0F900F9098
:103A70000F900F900F903CC41092250485E892E0BF
:103A80009F938F93C1E0CF930E94560E84E1809361
:103A900025040F900F900F908091A7049091A80497
:103AA000A091A904B091AA04B7FDFBC33AE0B59573
:103AB000A795979587953A95D1F7BF93AF939F9325
:103AC0008F938FE892E09F938F93CF930E94560E2F
:103AD00088E2809325048DB79EB707960FB6F894B9
:103AE0009EBF0FBE8DBF80919F049091A004A091B6
:103AF000A104B091A204B7FDCFC32AE0B595A79564
:103B0000979587952A95D1F7BF93AF939F938F93FE
:103B10008EE992E09F938F93CF930E94560E8CE391
:103B2000809325046DB77EB7695F7F4F0FB6F89419
:103B30007EBF0FBE6DBF80916D0490916E049F9308
:103B40008F938DEA92E09F938F93CF938DCF1092B6
:103B5000250482EF91E09F938F9311E01F930E94C1
:103B6000560E84E1809325040F900F900F9080E70C
:103B700090E09F938F9388E490E09F938F93DF93DF
:103B8000CF93809101016AE00E943C57892F9927C9
:103B90009F938F93809101010E943C5799279F9397
:103BA0008F9382E092E09F938F931F930E94560E13
:103BB00088E2809325046DB77EB7635F7F4F0FB6B1
:103BC000F8947EBF0FBE6DBF0E94060399279F9396
:103BD0008F9387E192E09F938F931F930E94560EDD
:103BE0008CE3809325040F900F900F900F900F900F
:103BF00084E292E09F938F931F930E94560E0F9042
:103C00000F900F9075C384E1809325044091BF0409
:103C10005091C004CA0157FD55C39C0135952795A5
:103C2000359527953595279535952795C901829521
:103C30009295907F9827807F9827BA01681B790B0F
:103C4000CB0177FD3DC3959587959F938F933F93C8
:103C50002F939A0157FD31C33595279535952795B3
:103C60003595279580910B0490910C04821B930B42
:103C70009F938F938DE793E09F938F93CF930E94B1
:103C8000560E88E2809325048DB79EB709960FB62D
:103C9000F8949EBF0FBE8DBF4091BD045091BE04ED
:103CA000CA0157FD08C39C01359527953595279581
:103CB0003595279535952795C90182959295907FE1
:103CC0009827807F9827BA01681B790BCB0177FD75
:103CD000F0C2959587959F938F933F932F939A0169
:103CE00057FDE4C235952795359527953595279548
:103CF0008091090490910A04821B930B9F938F93E8
:103D00008FE893E09F938F93CF930E94560E8CE39E
:103D1000809325048DB79EB709960FB6F8949EBF81
:103D20000FBE8DBF2091BB043091BC04C90137FD8B
:103D3000CBC2959587959F938F938091070490911F
:103D40000804281B390B3F932F9381EA93E09F933C
:103D50008F93CF93FACC10922504809162049091B6
:103D600063049F938F9380E894E09F938F9311E077
:103D70001F930E94560E84E1809325040F900F90AC
:103D80000F900F900F9080916004909161049F9329
:103D90008F938CE894E09F938F931F930E94560E0D
:103DA00088E2809325040F900F900F900F900F9052
:103DB00080915E0490915F049F938F9388E994E0D3
:103DC0009F938F931F930E94560E8CE3809325043C
:103DD0000F900F900F900F900F9080915C04909136
:103DE0005D049F938F9384EA94E03BCE84E18093BB
:103DF00025044091BF045091C0049A0157FD69C247
:103E0000359527953595279535952795C901880FBF
:103E1000991F880F991F880F991F481B590B5F9393
:103E20004F933F932F9380910B0490910C04821B2E
:103E3000930B9F938F938AE493E09F938F93CF93F9
:103E40000E94560E88E2809325048DB79EB709968E
:103E50000FB6F8949EBF0FBE8DBF4091BD04509128
:103E6000BE049A0157FD32C23595279535952795A1
:103E700035952795C901880F991F880F991F880FBD
:103E8000991F481B590B5F934F933F932F9380913A
:103E9000090490910A04821B930B9F938F938CE5E6
:103EA00093E09F938F93CF930E94560E8CE3809361
:103EB00025046DB77EB7675F7F4F0FB6F8947EBF5E
:103EC0000FBE6DBF8091BB049091BC049F938F93F4
:103ED0008091BB049091BC042091070430910804A8
:103EE000821B930B9F938F938EE693E09F938F9308
:103EF000CF930E94560E8DB79EB707966ACD10924B
:103F000025048CEE93E09F938F9311E01F930E9402
:103F1000560E84E1809325040F900F900F908091AE
:103F2000B5049091B6049F938F9380910304909170
:103F300004049F938F9389EF93E09F938F931F9334
:103F40000E94560E88E2809325046DB77EB7695FA4
:103F50007F4F0FB6F8947EBF0FBE6DBF8091B30444
:103F60009091B4049F938F938091050490910604DF
:103F70009F938F9388E094E09F938F931F930E9469
:103F8000560E8CE3809325048DB79EB707960FB627
:103F9000F8949EBF0FBE8DBF8091AD049091AE048A
:103FA000A091AF04B091B004BC01CD010E9486562F
:103FB000DC01CB019F938F9380915D0890915E0807
:103FC0009F938F9387E194E0BDCB1092250480EB03
:103FD00094E09F938F9311E01F930E94560E84E10B
:103FE000809325040F900F900F908091850399275F
:103FF0009F938F9388EB94E09F938F931F930E94DE
:10400000560E88E2809325040F900F900F900F902A
:104010000F908091E4039091E5039F938F9386EC3A
:1040200094E09F938F931F930E94560E8CE380938E
:1040300025040F900F900F900F900F90809105081E
:1040400099279F938F938091040899279F938F932B
:1040500084ED94E09F938F931F934BCF1092250490
:104060008091B2079091B3079F938F938091B0078F
:104070009091B1079F938F938CEB92E09F938F93D6
:1040800011E01F930E94560E84E1809325048DB7A2
:104090009EB707960FB6F8949EBF0FBE8DBF809156
:1040A000B6079091B7079F938F938091B407909133
:1040B000B5079F938F938CEC92E09F938F931F9300
:1040C0000E94560E88E2809325046DB77EB7695F23
:1040D0007F4F0FB6F8947EBF0FBE6DBF8091BA07B9
:1040E0009091BB079F938F938091B8079091B907E8
:1040F0009F938F938CED92E09F938F931F930E94D9
:10410000560E8CE3809325048DB79EB707960FB6A5
:10411000F8949EBF0FBE8DBF8091BE079091BF07E0
:104120009F938F938091BC079091BD079F938F932E
:104130008CEE92E007CB109225048091E107E82FE6
:10414000FF27EE0FFF1FE255F84F808191819F936B
:104150008F938091E007E82FFF27EE0FFF1FE255B6
:10416000F84F808191819F938F938CEF92E09F9382
:104170008F9311E01F930E94560E84E180932504D3
:104180008DB79EB707960FB6F8949EBF0FBE8DBF32
:104190008091E307E82FFF27EE0FFF1FE255F84F4E
:1041A000808191819F938F938091E207E82FFF2771
:1041B000EE0FFF1FE255F84F808191819F938F93FF
:1041C0008CE093E09F938F931F930E94560E88E29A
:1041D000809325046DB77EB7695F7F4F0FB6F89463
:1041E0007EBF0FBE6DBF8091E507E82FFF27EE0F62
:1041F000FF1FE255F84F808191819F938F938091AB
:10420000E407E82FFF27EE0FFF1FE255F84F8081EC
:1042100091819F938F938CE193E09F938F931F9352
:104220000E94560E8CE3809325048DB79EB70796A7
:104230000FB6F8949EBF0FBE8DBF8091E707E82FA1
:10424000FF27EE0FFF1FE255F84F808191819F936A
:104250008F938091E607E82FFF27EE0FFF1FE255AF
:10426000F84F808191819F938F938CE293E06ACA8B
:1042700084E18093250480E792E09F938F9311E07F
:104280001F930E94560E88E2809325040F900F9092
:104290000F9087E792E0AECC81509C4FAF4FBF4F5D
:1042A0002CCC81509C4FAF4FBF4F00CC295F3F4F6C
:1042B00019CD01960ECD0F96F6CC295F3F4FCCCC91
:1042C0000196C1CC0F96A9CC019633CD295F3F4F03
:1042D000CBCD295F3F4F94CD019665CB295F3F4FF2
:1042E00035CB0F9626CB295F3F4FF7CA0F96E8CA0A
:1042F00010922304DF91CF911F9108951092B9007D
:104300008AE28093B800089585EA8093BC0080E03B
:1043100090E0089584E98093BC0008951092B9005C
:104320008093BB0085E88093BC0080E090E0089516
:104330000E948A2110922A048091BB0010922904C5
:1043400080E88093BC001092BD001092BA001092D9
:10435000BB001092B9001092B8000E947E210E940A
:10436000842180E00E948E2108951F920F920FB643
:104370000F9211242F933F934F935F936F937F93EB
:104380008F939F93AF93BF93EF93FF9380912A04F2
:10439000282F3327442755278F5F80932A04F9015C
:1043A0002731310508F0D1C0E05BFF4FEE0FFF1F52
:1043B0000590F491E02D099480912804E82FFF27BF
:1043C000E256F84F9091BB0094838F5F843008F4DD
:1043D000A8C0109228040E948A218AE090E090935D
:1043E0009D0380939C0310922A04AFC080E80E9432
:1043F0008E21ABC088E90E948E21A7C00E948A212D
:104400008AE090E090939D0380939C030E94842116
:104410009CC0809110030E948E2197C08091290436
:10442000880F8E5A0E948E2190C00E948A2180910E
:104430002904843008F070C010922A040E9484215C
:1044400084C080912904282F33278F5F809329040B
:104450002130310509F45BC0223031050CF470C005
:104460002230310509F460C02330310509F06DC0F8
:10447000809177080E948E2168C090912804E92FCE
:10448000FF27E130F10509F442C0E230F1050CF4F8
:1044900050C0E230F10509F447C0339709F055C028
:1044A000E7CF90912804E92FFF27E256F84F80913B
:1044B000BB008083E4CF80912804880F8D5A0E942E
:1044C0008E2143C080E10E948E213FC080910F0366
:1044D0000E948E213AC0809128049927813091054D
:1044E000B1F0823091057CF182309105E9F00397BB
:1044F00061F5BECF84E10E948E2127C082E10E9437
:104500008E2123C0809111030E948E211EC08091B4
:104510004E080E948E2119C0109229040E94842105
:1045200014C08093280457CF809172080E948E2176
:104530000CC0EF2B51F4809141080E948E2105C0E0
:10454000232B19F4F8CF892BB1F38091BC0080683C
:104550008093BC00FF91EF91BF91AF919F918F919C
:104560007F916F915F914F913F912F910F900FBE6F
:104570000F901F90189583EC8093810080916F00BD
:10458000806280936F001092BC041092BB04109262
:10459000BE041092BD041092C0041092BF0408958E
:1045A0001F920F920FB60F921124EF92FF920F936A
:1045B0001F932F933F934F935F936F937F938F93AB
:1045C0009F93AF93BF93CF93DF93EF93FF9320918C
:1045D00086003091870080912B0490912C04281B39
:1045E000390B809186009091870090932C048093E2
:1045F0002B04C9018D549440835F9A4178F48091D3
:104600002D0490912E04049714F010927903C1E0C8
:10461000D0E0D0932E04C0932D04A3C0C0912D04EC
:10462000D0912E04CA30D1050CF09BC0C9018B5F1C
:104630009040845B9140A8F0FE013196F0932E04E7
:10464000E0932D04E530F10509F46DC05D98E63086
:10465000F10509F466C05C98379709F460C05B986F
:1046600080C0225D3140FE01EC0FFD1FE255F84F86
:1046700080819181F901E81BF90BCF01F7FD6DC035
:10468000069754F480915B04883C08F05FC08091E9
:104690005B04865F80935B04FE01EC0FFD1FE25517
:1046A000F84F80819181AC01440F551F480F591F6D
:1046B000420F531F57FD4EC07A01F594E794F594CD
:1046C000E794C90101968E159F05BCF50894E10891
:1046D000F10880915B04833C40F18E010C0F1D1F9B
:1046E000F801E255F84F808191819701281B390B21
:1046F000C90163E070E00E945C57CB01880F991FED
:10470000860F971F0C53184FF80191838083FE0189
:10471000EC0FFD1FE255F84FF182E0828DCF5B9ADE
:1047200020C05C9A99CF5D9A92CFFE01EC0FFD1FDD
:10473000EC53F84F11821082EACF21503040E2163C
:10474000F3063CF60894E11CF11CC3CF88EC80937F
:104750005B04A2CF4D5F5F4FAFCF909581959F4F88
:104760008FCFFF91EF91DF91CF91BF91AF919F914B
:104770008F917F916F915F914F913F912F911F91F9
:104780000F91FF90EF900F900FBE0F901F90189514
:1047900081E08093E00782E08093E10783E08093EB
:1047A000E20784E08093E30785E08093E40786E0F6
:1047B0008093E50787E08093E60788E08093E7072A
:1047C00008951F9388E68093E8073EE13093E90758
:1047D0008BEF8093EB078AE08093EC073093EA0736
:1047E0003093EE07E4E0E093ED075FE05093EF07CE
:1047F0003093F0071CE01093F10778E07093F20714
:1048000086EE8093F3073093F40780E88093F507F2
:1048100080E58093F60726E92093F70783E08093ED
:10482000F8078EE58093F90783E28093FA073093C7
:10483000FB071092FC0760E26093FD071092FE07F1
:104840001092FF07109200081092010810921208AF
:1048500010921308109214081092150844E6409321
:10486000020888E28093030810922C0892E3909348
:1048700004082093050885E08093060890930708B4
:104880002AE5209308089093090810922B0820939A
:104890000A0883E480930B0810920C0885E5809346
:1048A0000D0880930E0880E180930F086093100834
:1048B000409311088FE58093160883EF80931808C2
:1048C00050931708509319088DEF80931A0840935E
:1048D0001B0820931C0820931D0820931E088BE4BE
:1048E00080931F088093200880932108109222084B
:1048F00086E0809323087093240820932508309342
:1049000026084093270840932808E0932908AEE939
:10491000B3E0E1E3F8E00D9001921A95E1F71F9101
:1049200008951F9388E68093E8075EE15093E907B6
:104930008BEF8093EB078AE08093EC075093EA07B4
:104940005093EE0793E09093ED071CE01093EF0770
:1049500080E18093F00776E07093F10768E0609360
:10496000F20786EE8093F3075093F40780E8809374
:10497000F50780E58093F60788E78093F707909323
:10498000F8078EE58093F90783E28093FA07509346
:10499000FB071092FC0730E23093FD071092FE07F0
:1049A0001092FF071092000810920108109212084E
:1049B00010921308109214081092150844E64093C0
:1049C000020888E28093030810922C0892E39093E7
:1049D000040886E98093050885E080930608909393
:1049E00007082AE5209308089093090810922B08DD
:1049F00020930A0883E480930B088CE380930C08CF
:104A000085E580930D0880930E0830930F0830934E
:104A100010089BE4909311088FE58093160883EFAC
:104A20008093180884E180931708809319088DEF0C
:104A300080931A0840931B0820931C0820931D089C
:104A400020931E0890931F089093200890932108AC
:104A5000109222087093230860932408209325085D
:104A600050932608409327084093280884E08093B9
:104A70002908A5EAB3E0E1E3F8E00D9001921A9568
:104A8000E1F71F91089588EE8093E8073EE13093A7
:104A9000E9078BEF8093EB078AE08093EC07309374
:104AA000EA073093EE0793E09093ED0758E05093B8
:104AB000EF0720E12093F00766E06093F107509341
:104AC000F20786EE8093F3073093F40780E8809333
:104AD000F50744E64093F60788E78093F70790933D
:104AE000F8078EE58093F90783E28093FA0784E163
:104AF0008093FB071092FC072093FD071092FE079E
:104B00001092FF07109200081092010810921208EC
:104B1000109213081092140810921508409302087E
:104B200088E28093030810922C0892E39093040883
:104B300086E98093050885E080930608909307082E
:104B40002AE5209308089093090810922B082093D7
:104B50000A0883E480930B0886E480930C0885E5BB
:104B600080930D0880930E0880E280930F08809355
:104B70001008909311088FE58093160883EF8093B7
:104B8000180830931708309319088DEF80931A088E
:104B900040931B0820931C0820931D0820931E0897
:104BA0008BE480931F088093200880932108109243
:104BB00022086093230850932408209325083093FB
:104BC0002608409327084093280884E0809329080A
:104BD0008CE0ADEAB3E0E1E3F8E00D9001928A9554
:104BE000E1F708956817790744F4680F791F77FD96
:104BF00009C0CB01959587950895681B790B861B95
:104C0000970B08956F5F7F4FCB019595879508951A
:104C10000F931F93CF93C82FC150CF3F81F004E66D
:104C200010E080915204882351F41093E90300931B
:104C3000E8038AEF90E00E94E311C15090F7CF9112
:104C40001F910F9108952F923F924F925F926F9212
:104C50007F928F929F92AF92BF92CF92DF92EF920C
:104C6000FF920F931F93CF93DF93CDB7DEB7E997F2
:104C70000FB6F894DEBF0FBECDBF2091BB043091BC
:104C8000BC048091070490910804281B390B3A87D3
:104C90002987309381082093800820911104309156
:104CA000120437FDD4C73595279535952795359549
:104CB00027953AA729A73C872B87790120910F04D4
:104CC0003091100437FDC0C7359527953595279548
:104CD000359527953DA72CA73E872D87F092600834
:104CE000E0925F08309354082093530880917B082A
:104CF00090917C08AA2797FDA095BA2F7C018D0181
:104D0000EE0CFF1C001F111FE80EF91E0A1F1B1FCF
:104D100080910304909104049C01442737FD409541
:104D2000542FDA01C901880F991FAA1FBB1F880FD2
:104D3000991FAA1FBB1F820F931FA41FB51F820FAD
:104D4000931FA41FB51FE80EF91E0A1F1B1F17FD96
:104D50009CC715950795F794E79415950795F794D3
:104D6000E794F0927C08E0927B0880918B08909108
:104D70008C08AA2797FDA095BA2F7C018D01EE0C17
:104D8000FF1C001F111FE80EF91E0A1F1B1F809138
:104D90000504909106049C01442737FD4095542F4B
:104DA000DA01C901880F991FAA1FBB1F880F991F1D
:104DB000AA1FBB1F820F931FA41FB51F820F931F33
:104DC000A41FB51FE80EF91E0A1F1B1F17FD54C7AD
:104DD00015950795F794E79415950795F794E7943B
:104DE000F0928C08E0928B0880915D0890915E08AB
:104DF000AA2797FDA095BA2F9C01AD01220F331F62
:104E0000441F551F280F391F4A1F5B1F8091010443
:104E100090910204AA2797FDA095BA2F280F391F59
:104E20004A1F5B1F57FD16C7559547953795279520
:104E3000559547953795279530935E0820935D08E3
:104E40002091030430910404C901880F991F880F31
:104E5000991F820F931F820F931FAA2797FDA0957A
:104E6000BA2F209197043091980440919904509161
:104E70009A04820F931FA41FB51F809397049093E9
:104E80009804A0939904B0939A042091050430915A
:104E90000604C901880F991F880F991F820F931F5D
:104EA000820F931FAA2797FDA095BA2F20919304F4
:104EB000309194044091950450919604820F931F71
:104EC000A41FB51F8093930490939404A09395041A
:104ED000B09396048091680890916908209103042A
:104EE00030910404820F931F90936908809368089F
:104EF00080918308909184082091050430910604E4
:104F0000820F931F90938408809383088091B1044B
:104F10009091B20401969093B2048093B104809171
:104F20008F0490919004A0919104B0919204BC01DF
:104F3000CD010E94A3565B016C0180918E07909178
:104F40008F07AA2797FDA095BA2FBC01CD010E941B
:104F5000A3567B018C018091AD049091AE04A09189
:104F6000AF04B091B0049C01AD01C801B7010E942B
:104F70004356DC01CB019C01AD01C601B5010E9485
:104F80004456DC01CB01BC01CD010E948656DC01F8
:104F9000CB0180938F0490939004A0939104B093DD
:104FA00092048FEC80937A0010920E0320907F047D
:104FB00030908004409081045090820439E423169C
:104FC0003BE6330631E0430630E053060CF414C1EF
:104FD00088E49BE6A1E0B0E08D839E83AF83B88731
:104FE00060908704709088048090890490908A046F
:104FF00039E463163BE6730631E0830630E093063E
:105000000CF4DCC488E49BE6A1E0B0E089839A83D9
:10501000AB83BC8349855A85CA01AA2797FDA09511
:10502000BA2F2091770430917804409179045091FF
:105030007A04280F391F4A1F5B1F2CA33DA34EA3E0
:105040005FA3A0908708B0908808C0908908D0908E
:105050008A08A80EB91ECA1EDB1E86017501309192
:1050600049043BA7332309F0DAC080914804882320
:1050700009F0C2C44091E80748A746FF13C6ECA553
:10508000FDA5CF01AA2797FDA095BA2FBC01CD01A0
:1050900029813A814B815C810E941D579B01AC01A3
:1050A00097FD01C7BBE05595479537952795BA956C
:1050B000D1F780918203E82EFF2400271127C80131
:1050C000B7010E941D5797FDE9C6ACE095958795FD
:1050D00077956795AA95D1F76F87788B898B9A8B8F
:1050E0006093C9047093CA048093CB049093CC045A
:1050F00029A53AA5C901AA2797FDA095BA2FBC01F9
:10510000CD012D813E814F8158850E941D579B0105
:10511000AC0197FDF9C6FBE0559547953795279566
:10512000FA95D1F7C801B7010E941D5797FDE7C650
:10513000DC01CB01ECE0B595A79597958795EA95AD
:10514000D1F78093CD049093CE04A093CF04B09375
:10515000D0042091C9043091CA043093DB07209316
:10516000DA072091CD043091CE043093DF072093ED
:10517000DE072F85388949895A89821B930BA40B36
:10518000B50B8EAB9FABA8AFB9AF8093CD04909316
:10519000CE04A093CF04B093D004A80EB91ECA1EAB
:1051A000DB1E86017501309181033BA3332309F097
:1051B000A3C58EA79FA7A8ABB9ABB7FD4DC62EA5BB
:1051C0003FA548A959A955954795379527958CA18D
:1051D0009DA1AEA1BFA1821B930BA40BB50B8CA309
:1051E0009DA3AEA3BFA38093770490937804A0936C
:1051F0007904B0937A048CC598EB291694E93906A2
:105200009EEF49069FEF59060CF0F1C328EB34E9F5
:105210004EEF5FEF2D833E834F835887E1CE2CA165
:105220003DA14EA15FA12093770430937804409371
:10523000790450937A043091E80738A71092DF0779
:105240001092DE071092DB071092DA071092C50465
:105250001092C6041092C7041092C8041092C104A0
:105260001092C2041092C3041092C40430918103BE
:105270003BA38091C5049091C604A091C704B0914E
:10528000C804BC01CD0124E630E040E050E00E94BB
:105290009157DA01C9014091C1045091C204481BE1
:1052A000590B58A34F8F8091C1049091C204A091D3
:1052B000C304B091C404BC01CD0124E630E040E059
:1052C00050E00E949157DA01C9012091C504309144
:1052D000C604821B930B9AA389A380917A039091B1
:1052E0007B03A0917C03B0917D03BC01CD0128E636
:1052F00031E040E050E00E941D57E616F70608072F
:10530000190744F057016801A61AB70AC80AD90A52
:105310008601750117FDA3C4A0928708B092880882
:10532000C0928908D0928A082CA53DA58F8D98A19E
:10533000280F391F79010027F7FC0095102F809165
:105340007B0490917C04A0917D04B0917E04E80ED2
:10535000F91E0A1F1B1F5701680180914C04909190
:105360004D04281B390BC901AA2797FDA095BA2F18
:10537000280E391E4A1E5B1E209192033091930322
:10538000409194035091950322153305440555052A
:1053900074F4A8EAEA2EA1E6FA2E012D112DE21AE4
:1053A000F30A040B150B1701280157016801882720
:1053B0009927DC01821B930BA40BB50B2816390629
:1053C0004A065B060CF0E9C2F8E52F2EFEE93F2EF7
:1053D000FFEF4F2EFFEF5F2E220E331E441E551E91
:1053E00020927F0430928004409281045092820483
:1053F0008201710120927B0430927C0440927D04F2
:1054000050927E0429A53AA5A9A1BAA12A0F3B1F53
:10541000A901662757FD6095762F809183049091AE
:105420008404A0918504B0918604480F591F6A1F17
:105430007B1F5A016B0180914A0490914B04281BF9
:10544000390BC901AA2797FDA095BA2F680E791EBE
:105450008A1E9B1E8091960390919703A0919803BA
:10546000B09199038AAB9BABACABBDAB86159705EE
:10547000A805B90564F448EA51E660E070E0481B0D
:10548000590B6A0B7B0B3A014B015A016B018AA93C
:105490009BA9ACA9BDA9B095A095909581959F4F6A
:1054A000AF4FBF4F681679068A069B060CF064C2A0
:1054B000E8E56E2EEEE97E2EEFEF8E2EEFEF9E2EBC
:1054C0002AA93BA94CA95DA9620E731E841E951ED4
:1054D00060928704709288048092890490928A0472
:1054E000B401A301609283047092840480928504C5
:1054F000909286048CA19DA1AEA1BFA180938B0444
:1055000090938C04A0938D04B0938E046092A704B2
:105510007092A8048092A9049092AA0420929F04F9
:105520003092A0044092A1045092A2044093A3049C
:105530005093A4046093A5047093A604E0929B0486
:10554000F0929C0400939D0410939E0480911A0392
:1055500090911B0397FDA4C37C01F594E794F59407
:10556000E794F594E794FAA6E9A680911803909140
:10557000190397FD93C38C0115950795159507950C
:10558000159507951DA70CA780910B0490910C040D
:105590000F9734F458E1E52E5CEFF52EFAA6E9A654
:1055A00080910B0490910C04079734F440E3E42EAF
:1055B00048EFF42EFAA6E9A6209101012A3009F459
:1055C0006BC280910B0490910C04815D97400CF0AC
:1055D00007C280910B0490910C04805E974034F0D8
:1055E00080EDE82E87E0F82EFAA6E9A6809109045E
:1055F00090910A040F9724F408E11CEF1DA70CA753
:105600008091090490910A04079724F400E318EFAD
:105610001DA70CA72A3009F455C280910904909166
:105620000A04815D974024F008EE13E01DA70CA743
:105630008091090490910A04805E974024F000ED67
:1056400017E01DA70CA7A0918A03AA2309F497C00D
:1056500060911A0370911B038091D1049091D20440
:10566000681B790B20911A0330911B03280F391FF7
:1056700037FD3FC3359527953093D2042093D1044D
:10568000613871050CF43AC260E870E07093D80498
:105690006093D7048A2F9927869FF001879FF00D8A
:1056A000969FF00D1124CF01F7FD21C37C01F594E5
:1056B000E794F594E794F594E794F594E79429A595
:1056C0003AA5E20EF31EFAA6E9A6409118035091FE
:1056D00019038091D3049091D404481B590B209155
:1056E000180330911903280F391F37FDFDC2359576
:1056F00027953093D4042093D304413851050CF4FA
:10570000F5C140E850E05093D6044093D5048A2F69
:105710009927849FD001859FB00D949FB00D1124CF
:10572000AD019D01B7FDDDC2890115950795159560
:1057300007951595079515950795ECA5FDA50E0FF1
:105740001F1F1DA70CA7869F9001879F300D969F56
:10575000300D1124C90120911A0330911B03820FCF
:10576000931F90931B0380931A03809118039091C9
:105770001903480F591F50931903409318034D857F
:105780005E85141615060CF0C1C18091DA07909160
:10579000DB0797FDA2C2AA2797FDA095BA2F6BA1A0
:1057A000262F332744275527BC01CD010E941D57C2
:1057B00097FD8EC2E6E09595879577956795EA9572
:1057C000D1F7AF8DB8A1A60FB71FB0934D08A09326
:1057D0004C084B855C85141615060CF0C1C18091F0
:1057E000DE079091DF0797FD6FC2AA2797FDA0956E
:1057F000BA2F6BA1262F332744275527BC01CD0193
:105800000E941D5797FD5BC246E095958795779559
:1058100067954A95D1F7A9A1BAA1A60FB71FB09372
:105820004308A093420838A537FDC1C11093400832
:1058300000933F08F0925008E0924F088091E407EF
:10584000E82FFF27EE0FFF1FE255F84F808191816F
:1058500082599F4FA0916204B0916304A817B907C1
:105860000CF0EEC0CD010196909363048093620426
:10587000DC018091E507E82FFF27EE0FFF1FE255BF
:10588000F84F8081918182599F4F6091600470919F
:105890006104681779070CF0C4C0CB01019690939E
:1058A000610480936004BC018091E607E82FFF2724
:1058B000EE0FFF1FE255F84F8081918182599F4F73
:1058C00040915E0450915F04481759070CF0D5C011
:1058D000CA01019690935F0480935E04AC018091AD
:1058E000E707E82FFF27EE0FFF1FE255F84F8081F3
:1058F000918182599F4F20915C0430915D0428175B
:1059000039070CF0ABC0C901019690935D048093F8
:105910005C049C01B7FD93C1AF3FB10539F034F091
:105920008FEF90E0909363048093620477FD76C1DB
:105930006F3F710539F034F08FEF90E09093610480
:105940008093600457FD70C14F3F510539F034F02A
:105950008FEF90E090935F0480935E0437FD6AC1FF
:105960002F3F310509F00CF4DEC28FEF90E09093E9
:105970005D0480935C04D7C26092870470928804AF
:105980008092890490928A04A0928304B092840445
:10599000C0928504D0928604ADCD20927F043092CF
:1059A00080044092810450928204A0927B04B092C1
:1059B0007C04C0927D04D0927E0424CD98EB6916BD
:1059C00094E979069EEF89069FEF99062CF528EB5E
:1059D00034E94EEF5FEF29833A834B835C831ACB24
:1059E00098EEE92E93E0F92EFAA6E9A6F2CD2D82E3
:1059F0003E824F825886F4CA8CA19DA1AEA1BFA160
:105A00008093770490937804A0937904B0937A04F8
:105A10009091E80798A712CC69827A828B829C8247
:105A2000F9CA8081918182599F4F861797070CF0A0
:105A30003BCF6115710509F437CFCB0101972FCF0B
:105A40008081918182599F4F8A179B070CF011CF5B
:105A5000109709F40ECFCD01019706CF8081918177
:105A600082599F4F821793070CF054CF21153105AF
:105A700009F450CFC901019748CF808191818259A3
:105A80009F4F841795070CF02ACF4115510509F453
:105A900026CFCA0101971ECF80910B0490910C0470
:105AA000835F934034F038EEE32E33E0F32EFAA612
:105AB000E9A680910B0490910C048A5F93400CF44A
:105AC00095CD8ECD8091090490910A04835F934017
:105AD00024F008EE13E01DA70CA780910904909113
:105AE0000A048A5F93400CF4AECDA9CD3FEF403855
:105AF00053070CF008CE40E85FEF05CE8FEF60381B
:105B000078070CF0C3CD60E87FEFC0CD8091DA0755
:105B10009091DB0797FD8FC1AA2797FDA095BA2F1B
:105B2000EBA12E2F332744275527BC01CD010E941E
:105B30001D5797FDA1C156E0959587957795679577
:105B40005A95D1F72F8D38A1261B370B30934D086E
:105B500020934C084B855C85141615060CF43FCE3B
:105B60008091DE079091DF0797FD61C1AA2797FD1D
:105B7000A095BA2FEBA12E2F332744275527BC0120
:105B8000CD010E941D5797FD7CC136E09595879504
:105B9000779567953A95D1F729A13AA1261B370B3E
:105BA000309343082093420838A537FF3FCE4BA5DA
:105BB000442309F03BCE80914804882309F036CE77
:105BC0008B859C85A1E081309A070CF038C12B852C
:105BD0003C854FEF203034070CF09BC189A59AA576
:105BE000280F391F3C872B8720503F4F3093500898
:105BF00020934F08AD85BE85E1E0A130BE070CF4CF
:105C00006BC12CA53DA5A20FB31FBE87AD87A050C9
:105C1000B140B0934008A0933F0810CE10926104A9
:105C20001092600457FF90CE10925F0410925E04B1
:105C300037FF96CE10925D0410925C0474C11092EE
:105C400063041092620472CE295F3F4F3DC8295F02
:105C50003F4F29C82D5F3F4F4F4F5F4FE5C8E60EBE
:105C6000F71E081F191FE0928708F092880800931A
:105C7000890810938A0858CB23E030E040E050E0D8
:105C8000E20EF31E041F151FA3C883E090E0A0E0FE
:105C9000B0E0E80EF91E0A1F1B1F5BC807966BCC0D
:105CA00007965ACC2CA13DA14EA15FA12093770469
:105CB000309378044093790450937A04BFCA615CAE
:105CC0007F4F8F4F9F4FA0CD909581959F4F8DCD4A
:105CD000615C7F4F8F4F9F4F6DCD909581959F4F0A
:105CE0005ACD215F3F4F20CD2F5F3F4F00CD0F9604
:105CF000DDCC2F5F3F4FBECC2CA13DA14EA15FA1BB
:105D000020937704309378044093790450937A0475
:105D100089859A85AA2797FDA095BA2F2EA93FA914
:105D200048AD59AD820F931FA41FB51F8B8B9C8B61
:105D3000AD8BBE8BBC01CD0129813A814B815C8149
:105D40000E941D579B01AC0197FDC1C06BE05595AA
:105D50004795379527956A95D1F760918303862FEC
:105D60009927AA27BB278F8B988FA98FBA8FBC0141
:105D7000CD010E941D5797FDA5C02CE095958795F4
:105D8000779567952A95D1F76B8F7C8F8D8F9E8F36
:105D90006093C1047093C2048093C3049093C404BD
:105DA0006B897C898D899E892D813E814F815885A3
:105DB0000E941D579B01AC0197FD7FC08BE055955C
:105DC0004795379527958A95D1F76F89788D898D75
:105DD0009A8D0E941D5797FD6BC09B01AC01BCE0E2
:105DE0005595479537952795BA95D1F72093C504D2
:105DF0003093C6044093C7045093C8046B8D7C8DC8
:105E00008D8D9E8D97FD42C061387105810591058C
:105E100054F4CA01B90157FD27C0613871058105E5
:105E200091050CF426CA81E08093660422CA9095FD
:105E300081959F4F9BCE909581959F4F6DCEE9A503
:105E4000FAA58E0F9F1F9C878B878050914090935F
:105E5000500880934F08CECE0196A11DB11D8EA78C
:105E60009FA7A8ABB9ABABC990958095709561958C
:105E70007F4F8F4F9F4FD1CF615C7F4F8F4F9F4F91
:105E80005ACE615C7F4F8F4F9F4F7FCE909580950C
:105E9000709561957F4F8F4F9F4FB6CF6150704F78
:105EA0008F4F9F4F12C92150384F4F4F5F4FFAC845
:105EB0006150704F8F4F9F4F90CF2150384F4F4FB1
:105EC0005F4F7CCF6150704F8F4F9F4F56CF215007
:105ED000384F4F4F5F4F3ACF4D855E856FEF403063
:105EE0005607E4F48CA59DA5480F591F5E874D8782
:105EF00040505F4F5093400840933F089FCC615003
:105F0000704F8F4F9F4F14C92150384F4F4F5F4FE5
:105F100002C9F0925008E0924F086CCE10934008EE
:105F200000933F088BCCE9960FB6F894DEBF0FBE06
:105F3000CDBFDF91CF911F910F91FF90EF90DF9038
:105F4000CF90BF90AF909F908F907F906F905F9019
:105F50004F903F902F900895809101018D3009F46A
:105F600055C110927A0080910B0490910C0490938B
:105F7000500880934F088091090490910A049093EF
:105F8000400880933F088091070490910804909303
:105F900081088093800880910304909104049C01FF
:105FA000442737FD4095542FDA01C901880F991F06
:105FB000AA1FBB1F880F991FAA1FBB1F820F931F09
:105FC000A41FB51F820F931FA41FB51F90937C08B9
:105FD00080937B0880910504909106049C014427DE
:105FE00037FD4095542FDA01C901880F991FAA1F68
:105FF000BB1F880F991FAA1FBB1F820F931FA41FCF
:10600000B51F820F931FA41FB51F90938C08809318
:106010008B08809101049091020490935E08809314
:106020005D088FEC80937A008091E407E82FFF27CA
:10603000EE0FFF1FE255F84F8081918182599F4FEB
:10604000A0916204B0916304A817B9070CF085C051
:10605000CD0101969093630480936204DC018091EA
:10606000E507E82FFF27EE0FFF1FE255F84F80816D
:10607000918182599F4F609160047091610468170B
:1060800079070CF096C0CB01019690936104809340
:106090006004BC018091E607E82FFF27EE0FFF1F89
:1060A000E255F84F8081918182599F4F40915E0463
:1060B00050915F04481759070CF06CC0CA01019653
:1060C00090935F0480935E04AC018091E707E82F12
:1060D000FF27EE0FFF1FE255F84F80819181825913
:1060E0009F4F20915C0430915D04281739070CF014
:1060F00042C0C901019690935D0480935C049C01A9
:10610000B7FD7FC0AF3FB10511F00CF061C077FD66
:1061100067C06F3F710539F034F08FEF90E09093D6
:1061200061048093600457FD61C04F3F510539F011
:1061300034F08FEF90E090935F0480935E0437FD1E
:106140005BC02F3F310509F00CF463C08FEF90E086
:1061500090935D0480935C045CC08081918182593E
:106160009F4F8A179B070CF07ACF109709F477CFCF
:10617000CD0101976FCF8081918182599F4F821706
:1061800093070CF0BDCF2115310509F4B9CFC90132
:106190000197B1CF8081918182599F4F84179507D4
:1061A0000CF093CF4115510509F48FCFCA01019727
:1061B00087CF8081918182599F4F861797070CF076
:1061C00069CF6115710509F465CFCB0101975DCFEA
:1061D0008FEF90E0909363048093620477FF99CFF0
:1061E000109261041092600457FF9FCF10925F04D9
:1061F00010925E0437FFA5CF10925D0410925C04EC
:1062000008C0109263041092620481CF0E94BA15F4
:10621000A8CE80910D089927AA27BB27BC01CD01E4
:1062200024EC39E040E050E00E941D57DC01CB0136
:106230008093960390939703A0939803B093990348
:1062400080910E089927AA27BB27BC01CD010E9487
:106250001D57DC01CB018093920390939303A0938D
:106260009403B093950308956F927F928F929F92BB
:10627000AF92BF92CF92DF92EF92FF920F931F9354
:10628000CF93DF93C0E0D0E07E016E011092E60371
:10629000469AD093B604C093B504D093B404C09387
:1062A000B30480E090E0A0E0B0E08093AD04909370
:1062B000AE04A093AF04B093B004D093C004C093D5
:1062C000BF04D093BE04C093BD04D093BC04C0935C
:1062D000BB04D0937008C0936F0810928303109290
:1062E00082031092FF030E94AC2F84E690E00E948C
:1062F000F0110E94AC2F8091E80780FF10C08091C0
:10630000120390911303875B934008F07BC0809148
:106310001203909113038E5E924008F473C01FE144
:106320008AE090E00E94F0118091070490910804A7
:10633000C80FD91F80910B0490910C04E80EF91E30
:106340008091090490910A04C80ED91E115017FFBC
:10635000E7CFA701405F5F4F569547955695479504
:106360005093C0044093BF049601205F3F4F369581
:106370002795369527953093BE042093BD04CE0112
:10638000409696958795929582958F7089279F70F4
:1063900089279093BC048093BB04909370088093EA
:1063A0006F083093BA042093B9045093B804409313
:1063B000B70444E050E0DA010E94AC57802D8530EC
:1063C00020F180918B0890918C0897FD53C06CE070
:1063D00070E00E945C577093B4046093B3048091A2
:1063E0007B0890917C0897FD56C06CE070E00E949D
:1063F0005C577093B6046093B50480918E079091BA
:106400008F074DC00E9468158ACFDA010E94AC57F1
:10641000802D9927982F8827DA0111960E94AC5772
:10642000202D820F911D9093B6048093B504DA015C
:1064300012960E94AC57802D9927982F8827DA0151
:1064400013960E94AC57202D820F911D9093B40497
:106450008093B304DA0114960E94AC57802D9927DB
:10646000982F8827DA0115960E94AC57202D820FAD
:10647000911D15C0909581959F4F6CE070E00E9432
:106480005C577093B4046093B30480917B0890913F
:106490007C0897FFAACF909581959F4FA6CFAA27FA
:1064A00097FDA095BA2FBC01CD010E94A356DC0137
:1064B000CB018093AD049093AE04A093AF04B0934E
:1064C000B0041092500810924F0810924008109299
:1064D0003F08109281081092800884E690E00E94A4
:1064E000F0118091030490910404AA2797FDA095D0
:1064F000BA2F9C01AD01220F331F441F551F220FDD
:10650000331F441F551F280F391F4A1F5B1F280FB9
:10651000391F4A1F5B1F30937C0820937B088091B2
:10652000050490910604AA2797FDA095BA2F7C0137
:106530008D01EE0CFF1C001F111FEE0CFF1C001F35
:10654000111FE80EF91E0A1F1B1FE80EF91E0A1F75
:106550001B1FF0928C08E0928B088091F407682E44
:10656000772488249924C9019C01442737FD40954C
:10657000542FC401B3010E941D575B016C0160934D
:10658000A7047093A8048093A9049093AA04970188
:10659000442737FD4095542FC401B3010E941D5775
:1065A000DC01CB0180939F049093A004A093A104ED
:1065B000B093A204A0928304B0928404C092850494
:1065C000D092860480937B0490937C04A0937D04F6
:1065D000B0937E041092770410927804109279049C
:1065E00010927A048091140390911503A0911603E0
:1065F000B091170390939107809390071092FE0338
:106600001092FD0310926F041092700410927104A6
:106610001092720480916D0490916E0490936C04BA
:1066200080936B040E943C5082E390E09093E903D6
:106630008093E80380910D089927AA27BB27BC0106
:10664000CD0124EC39E040E050E00E941D57DC0110
:10665000CB018856954CAF4FBF4F809396039093D4
:106660009703A0939803B093990380910E089927FC
:10667000AA27BB27BC01CD010E941D57DC01CB011D
:106680008856954CAF4FBF4F8093920390939303DE
:10669000A0939403B093950310927F0310927E030E
:1066A00080916D0490916E04AA2797FDA095BA2F52
:1066B00020917A0330917B0340917C0350917D03BC
:1066C000BC01CD010E941D57DC01CB0180938708DE
:1066D00090938808A0938908B0938A081092650463
:1066E0001092640411E0109300010E94D153809134
:1066F0002F04846080932F048FEF8093F108109211
:10670000F20880E28093F3088091E407E82FFF27E6
:10671000EE0FFF1FE255F84F8081918182599F4F04
:1067200090936304809362048091E507E82FFF272C
:10673000EE0FFF1FE255F84F8081918182599F4FE4
:1067400090936104809360048091E607E82FFF270F
:10675000EE0FFF1FE255F84F8081918182599F4FC4
:1067600090935F0480935E048091E707E82FFF27F2
:10677000EE0FFF1FE255F84F8081918182599F4FA4
:1067800090935D0480935C041093E60384E6809309
:106790005B04DF91CF911F910F91FF90EF90DF90FD
:1067A000CF90BF90AF909F908F907F906F90089503
:1067B00080915204882311F580934E0880934108FC
:1067C00080937208809377088091C4038823D1F462
:1067D0008091C503882311F080934E088091C603F1
:1067E000882311F0809377088091C703882311F0E4
:1067F0008093720880912F048C7F07C080912F04B2
:10680000816003C080934108E3CF80932F0480917F
:1068100041089927909363078093620780914E08FF
:10682000992790936507809364078091770899274B
:1068300090936707809366078091720899279093D9
:1068400069078093680710922A04109229040E9415
:10685000842108958091EB078B3F68F08B3F09F40A
:106860005BC28C3F09F4F1C28D3F09F4B2C28E3F86
:1068700021F480915C0480938E038091EA078B3F22
:1068800008F4EDC18B3F09F4E8C18C3F09F4FBC269
:106890008D3F09F47DC28E3F09F404C380918F03BC
:1068A000882309F0E1C180938F038091EC078B3F2F
:1068B00008F4E1C18B3F09F4DCC18C3F09F4DDC26F
:1068C0008D3F09F468C28E3F09F4E9C280918D03BF
:1068D000882309F0D5C180938D038091EE078B3F0B
:1068E00068F08B3F09F424C28C3F09F4C9C28D3F84
:1068F00009F44BC28E3F21F480915C0480938C0399
:106900008091F5078B3F68F08B3F09F402C28C3F02
:1069100009F483C28D3F09F435C28E3F21F4809182
:106920005C0480938B038091F6078B3F08F4AFC122
:106930008B3F09F4AAC18C3F09F4AEC28D3F09F424
:1069400033C28E3F09F4B7C2809189038B3008F4BB
:10695000A3C18F3F11F4809389038091F7078B3F88
:1069600068F08B3F09F4DBC18C3F09F47DC28D3F99
:1069700009F417C28E3F21F480915C048093880350
:106980008091F8078B3F68F08B3F09F4CBC18C3FB7
:1069900009F467C28D3F09F4F2C18E3F21F4809162
:1069A0005C0480938A032091FD072B3F08F478C193
:1069B0002B3F09F473C12C3F09F444C22D3F09F465
:1069C000EDC12E3F09F47AC2209186038091FE0723
:1069D0008B3F08F06CC1809343048091FF078B3F8D
:1069E00068F08B3F09F4B3C18C3F09F428C28D3F96
:1069F00009F4E9C18E3F21F480915C048093420444
:106A0000809100088B3F68F08B3F09F4A3C18C3F55
:106A100009F412C28D3F09F4E5C18E3F21F4809143
:106A20005C0480934104809101088B3F68F08B3FA8
:106A300009F45DC18C3F09F4E4C18D3F09F4DBC169
:106A40008E3F21F480915C04809340048091120871
:106A50008B3F68F08B3F09F44DC18C3F09F4D4C1E2
:106A60008D3F09F4CBC18E3F21F480915C0480936B
:106A70003F04809113088B3F68F08B3F09F43DC1C0
:106A80008C3F09F4C4C18D3F09F4AFC18E3F21F49E
:106A900080915C0480933E04809114088B3F68F0E1
:106AA0008B3F09F42DC18C3F09F4B4C18D3F09F42B
:106AB0009FC18E3F21F480915C0480933D048091BE
:106AC00015088B3F68F08B3F09F41DC18C3F09F41A
:106AD000BFC18D3F09F480C18E3F21F480915C04D9
:106AE00080933C04809102088B3F68F08B3F09F44F
:106AF0000DC18C3F09F49DC18D3F09F470C18E3FDB
:106B000021F480915C0480938503809107088B3F7A
:106B100068F08B3F09F421C18C3F09F4ABC18D3F74
:106B200009F424C18E3F21F480915C048093840396
:106B300080910A088B3F68F08B3F09F411C18C3FAC
:106B400009F489C18D3F09F414C18E3F21F480916D
:106B50005C048093830380910B088B3F68F08B3F2C
:106B600009F4E9C08C3F09F45EC18D3F09F425C1E9
:106B70008E3F21F480915C048093820380910C0805
:106B80008B3F68F08B3F09F4D9C08C3F09F44EC1AC
:106B90008D3F09F415C18E3F21F480915C048093F0
:106BA0008103809111088B3F68F08B3F09F4C9C0C5
:106BB0008C3F09F46BC18D3F09F4F9C08E3F21F47D
:106BC00080915C0480938003809117088B3F08F4C8
:106BD0007EC08B3F09F479C08C3F09F45AC18D3FC8
:106BE00009F4E8C08E3F09F460C180916A088230E0
:106BF00008F472C08F3F11F480936A0880911908DD
:106C00008B3F08F46DC08B3F09F468C08C3F09F4DA
:106C100025C18D3F09F4B0C08E3F09F449C1809170
:106C20007E08823008F461C08F3F11F480937E08A3
:106C300080912A088B3F70F08B3F09F485C08C3F10
:106C400009F415C18D3F09F48EC08E3F09F039C19A
:106C500080915C0480938F0834C18091620480939A
:106C60008F03882309F41FCE843608F41ECE84E6F1
:106C70001ACE8091620480938D03882309F42BCE71
:106C8000843608F42ACE84E626CE8091620480936E
:106C900089038B3008F05DCE8AE05DCE20916204DE
:106CA000209386038091FE078B3F08F494CE8B3FA0
:106CB000E1F18C3F09F4B4C08D3F09F487C08E3FE9
:106CC00009F08BCE80915C0486CE80916204809323
:106CD0006A08823008F08ECF81E08ECF8091620406
:106CE00080937E08823008F09FCF81E09FCF809113
:106CF0006204AACE80916204BACE80916204CACEA8
:106D000080916204DACE80916204EACE80916204BE
:106D1000FACE8091620405CE80916204ACCD809160
:106D200062042CCE809162043CCE8091620453CEEA
:106D300080916204E3CD809162041ECF8091620451
:106D40002ECF809162043ECF8091620483CF8091E8
:106D5000620454CE8091620464CE80916204E6CED7
:106D600080916204F6CE80915E0474CF80915E04BF
:106D7000DDCE80915E04EDCE80915E04B1CF809136
:106D80005E040FCE80915E04CCCD80915E04B6CDC2
:106D900080915E0464CF80915E046DCF20915E048B
:106DA0007FCF80915E04EACD80915E0470CF8091A8
:106DB0005E0408CF80915E048ACF80915E04DCCEB1
:106DC00080915E04ECCE80915E0418CE80915E04CA
:106DD00002CE80915E044FCD80915E0481CE809181
:106DE0005E0491CE80915E041CCE80915E0452CEF2
:106DF00080915E0462CE80915E0426CE80915E0416
:106E000036CE8091600420CE8091600430CE809197
:106E1000600440CE8091600450CE8091600481CDAA
:106E200080916004D8CD80916004A6CE80916004EA
:106E3000B6CE8091600467CE80916004F2CD8091DF
:106E40006004DCCD209160042BCF8091600413CDD1
:106E50008091600445CE809160047BCE8091600477
:106E60003FCF809160049DCD8091600487CD80915B
:106E70006004F0CE8091600459CE80916004FBCE16
:106E8000809160043BCD80916004E9CE80916004E4
:106E900099CE809160041BCF80916004F8CE8091E0
:106EA0005C04E9CE80915C04DACE80915C040FCF63
:106EB00080915C0415CF80915C04E9CE20915C0444
:106EC000EFCE33272F5F3F4F8CE398E2B9010E944A
:106ED0005C5770939103609390038091F3078093C4
:106EE0007F088091F2078093550808952F923F9272
:106EF0004F925F926F927F928F929F92AF92BF92CA
:106F0000CF92DF92EF92FF920F931F93CF93DF9375
:106F1000CDB7DEB7E6970FB6F894DEBF0FBECDBF94
:106F20000E942326209101012C3008F09FC2299A4B
:106F3000A0905304B0905404BA82A982809155085D
:106F400099270A96A816B90614F49A838983809122
:106F50005B04843608F08CC280910603882309F410
:106F600065C48091F5049091F604009711F40C9497
:106F7000FF4601979093F6048093F5042A3011F4AC
:106F80000C940747243111F40C94074728988091FA
:106F9000300490913104895E934010F40C94FB46C8
:106FA0008091FA07282F33273A83298381E0809341
:106FB00068048091E007A82FBB27AA0FBB1FFD0123
:106FC000EC53F84F118210828091E107282F33276C
:106FD000220F331FC9018C53984FFC01118210827C
:106FE000A255B84F11961C921E922255384FD901C6
:106FF00011961C921E928091E307E82FFF27EE0F57
:10700000FF1FE255F84F1182108280917903815061
:1070100080937903809179038F3F31F0F091680478
:10702000FA8BFF2309F417C40E942A3480911605B5
:1070300090911705AC01440F551F480F591F00913F
:10704000E007A02FBB27AA0FBB1FFD01E255F84F99
:10705000F090EF07CF2CDD24808191818C9D500131
:107060008D9DB00C9C9DB00C11244A0D5B1D57FFEB
:1070700002C00C94E34C5595479555954795AC53F4
:10708000B84F8091F007682F77278D919C91869F4C
:107090009001879F300D969F300D1124240F351FCE
:1070A000309317052093160580913E0590913F057A
:1070B00040913A0550913B05840F951F281B390BD1
:1070C00030935A0420935904809118059091190522
:1070D000AC01440F551F480F591F1091E107A12F14
:1070E000BB27AA0FBB1FFD01E255F84F808191819C
:1070F0008C9D90018D9D300D9C9D300D1124420F73
:10710000531F57FF02C00C94DF4C5595479555957A
:107110004795AC53B84F8D919C91869F9001879F66
:10712000300D969F300D1124240F351F3093190513
:107130002093180580913C0590913D0540913805BC
:1071400050913905840F951F281B390B3093580433
:10715000209357048091E307E82FFF27EE0FFF1FCE
:10716000E255F84F80819181909581959F4F8330B2
:10717000910514F40C9492460297909356048093D0
:1071800055048091E207E82FFF27EE0FFF1FE2551D
:10719000F84FC080D18048E750E0C40ED51E8091E2
:1071A00089039927AA2797FDA095BA2FBC01CD0185
:1071B0000E94A356DC01CB0120E030E040E251E424
:1071C000BC01CD010E944456DC01CB01BC01CD01C4
:1071D0000E948656DC01CB0180938508609188036C
:1071E0008091AF0680FF06C080918F08813810F033
:1071F0000C947747D0925404C09253048091530466
:107200009091540497FF02C00C94E74CB090E807AB
:10721000BCA2B2FC02C00C94D846109271084091F6
:10722000590450915A04CA0157FF02C00C94E34616
:10723000959587959595879597FF02C00C94EC4698
:1072400020913404309135042817390714F00C9438
:107250009A46CA0157FF02C00C94334D97FF02C0F3
:107260000C94384DBC017595679575956795653695
:10727000710514F40C949D4664E670E04091570447
:1072800050915804CA0157FD02C00C94A6460396BB
:10729000959587959595879597FD02C00C94AE4678
:1072A000909581959F4F2091320430913304281797
:1072B000390714F40C94B746C9010197C0906804CB
:1072C000CA8ACC2011F40C94CE4610923504109248
:1072D00034041092330410923204E12FFF27EE0F92
:1072E000FF1FE255F84F40910808242F3327808173
:1072F00091812817390734F480912B0882FF02C04E
:107300000C946C47E12FFF27EE0FFF1FE255F84F5B
:10731000842F992720910908821B910920813181AE
:107320002817390714F410924704E12FFF27EE0FB6
:10733000FF1FE255F84F842F992722273327281B58
:10734000390B808191818217930734F480912B0847
:1073500083FF02C00C94674780914604882391F014
:10736000E12FFF27EE0FFF1FE255F84F809109082C
:107370009927841B9109208131818217930714F486
:107380000C94054CE02FFF27EE0FFF1FE255F84F3E
:10739000242F3327808191812817390734F4809175
:1073A0002B0880FF02C00C94614750914404552380
:1073B00099F0E02FFF27EE0FFF1FE255F84F842FC3
:1073C000992720910908821B910920813181281772
:1073D000390714F40C94004CE02FFF27EE0FFF1F29
:1073E000E255F84F842F992722273327281B390B82
:1073F000808191818217930734F480912B0881FF5B
:1074000002C00C945C4780914504882391F0E02FE2
:10741000FF27EE0FFF1FE255F84F809109089927CB
:10742000841B9109208131818217930714F40C94F5
:10743000FC4B80914704882331F4809146048823D3
:1074400011F40C94594791E0552331F4809145048F
:10745000882311F40C94714781E0809349041092C1
:1074600048041092470410924604F8C1299860CD50
:1074700080915B048D3808F4C8CD10926804909117
:10748000FB0782E3989FC00111249093F604809338
:10749000F504E981FA81B99714F00C94EC478091D6
:1074A0003004909131048F3F910519F010F00C9445
:1074B000D84C1092D9041092DA041092DB04109286
:1074C000DC041092DD041092DE041092DF041092AE
:1074D000E0048A3F910511F40C94434E3091E20789
:1074E000E32FFF27EE0FFF1FE255F84F80819181B8
:1074F000813591050CF4E9C040915204442309F010
:10750000E4C08091E307E82FFF27EE0FFF1FE2554D
:10751000F84F808191818C34910514F40C94B24D14
:107520008091F7048F5F893C10F40C949D4E2C30B1
:1075300010F00C941F4F2998109252041092F704E7
:1075400010923104109230040091E007E02FFF27E1
:10755000EE0FFF1FE255F84F80819181873491052E
:1075600014F00C944C4F1091E107E12FFF27EE0F20
:10757000FF1FE255F84F808191810190F081E02D4D
:10758000F7FF02C00C94C04FE734F1050CF470C053
:1075900021E0A12FBB27AA0FBB1FA255B84F8D9189
:1075A0009C9111978734910544F0E02FFF27EE0F4F
:1075B000FF1FE255F84F808191818D919C91873416
:1075C000910564F0E02FFF27EE0FFF1FE255F84F03
:1075D00080819181873491050CF022E0E12FFF2713
:1075E000EE0FFF1FE255F84F80819181863491059F
:1075F00064F4E02FFF27EE0FFF1FE255F84F808164
:107600009181873491050CF023E0E12FFF27EE0FE5
:10761000FF1FE255F84F808191818A5B9F4F64F490
:10762000E02FFF27EE0FFF1FE255F84F8081918179
:10763000873491050CF024E0E12FFF27EE0FFF1FA8
:10764000E255F84F808191818A5B9F4F64F4E02F6F
:10765000FF27EE0FFF1FE255F84F8081918186349E
:1076600091050CF425E0822F0E94CB021091E107D6
:10767000E12FFF27EE0FFF1FE255F84F8081918128
:107680000190F081E02DF7FF02C00C94984F7E9797
:1076900014F00C94D94E8091E007E82FFF27EE0FED
:1076A000FF1FE255F84F808191818A5B9F4F14F054
:1076B0000C94D94E81E08093A30688EE93E09093DA
:1076C000E9038093E8033091E207E32FFF27EE0FF1
:1076D000FF1FE255F84F808191818B5A9F4F0CF02C
:1076E00094CCD090E307ED2DFF27EE0FFF1FE2555E
:1076F000F84F80819181855B9F4F14F00C94F04C82
:107700008091F8048F5F893C10F40C94904D88ECC4
:107710008093F80481E090E09093310480933004EA
:1077200081E0809352041092E1041092E2041092DE
:10773000E3041092E40410927704109278041092FB
:10774000790410927A0410927304109274041092C7
:107750007504109276048091F407E82EFF24002728
:10776000112780917B0890917C089C01442737FD6C
:107770004095542FC801B7010E941D57DC01CB0171
:107780008093870490938804A0938904B0938A041B
:1077900080918B0890918C089C01442737FD40957F
:1077A000542FC801B7010E941D57DC01CB01809303
:1077B0007F0490938004A0938104B093820480910D
:1077C000A7049091A804A091A904B091AA04809361
:1077D000830490938404A0938504B09386048091DD
:1077E0009F049091A004A091A104B091A204809361
:1077F0007B0490937C04A0937D04B0937E0410924C
:10780000D9041092DA041092DB041092DC04109276
:10781000DD041092DE041092DF041092E0048091E7
:107820002F04886080932F040C94F24C80910903FC
:1078300090910A038F5F9F4F09F093CB88E99AE3F9
:107840009093E9038093E80380E09CE090930A031F
:107850008093090386CBD090E807DCA2009148040E
:107860000DA3002321F480914904882369F08091BD
:107870000708992729813A818217930714F49A837C
:10788000898381E0809366043A893323B9F01092AA
:1078900056041092550410925A04109259041092F2
:1078A0005804109257048AE58093850888E78093EE
:1078B000710810924804109249041DA22091640896
:1078C0003091650840916608509167088091A7043F
:1078D0009091A804A091A904B091AA04888F998FCF
:1078E000AA8FBB8F280F391F4A1F5B1F80916B081F
:1078F00090916C08A0916D08B0916E08A0909F04C3
:10790000B090A004C090A104D090A204A9A6BAA6E9
:10791000CBA6DCA68A0D9B1DAC1DBD1DC0905708D3
:10792000D0905808E0905908F0905A08CDA6DEA6ED
:10793000EFA6F8AAE090A304F090A4040091A50497
:107940001091A604EC8AFD8A0E8B1F8BADA4BEA4F9
:10795000CFA4D8A8AE0CBF1CC01ED11EADA6BEA61B
:10796000CFA6D8AA209047083090480840904908F0
:1079700050904A08C0909B04D0909C04E0909D04D5
:10798000F0909E04CC8EDD8EEE8EFF8E2C0C3D1C76
:107990004E1C5F1CD0904904D8A6DD2009F0AEC370
:1079A0000DA1002309F0AAC380936B0890936C0883
:1079B000A0936D08B0936E08209364083093650817
:1079C000409366085093670880918E0790918F07C7
:1079D000815092400CF40EC19090F1084FEF941634
:1079E00011F40C94094C8091F407A82EBB24CC24EC
:1079F000DD24688D798D8A8D9B8DA60195010E946D
:107A0000915779018A0180917B0890917C08AA277F
:107A100097FDA095BA2FE81AF90A0A0B1B0B69A566
:107A20007AA58BA59CA5A60195010E9491575901A5
:107A30006A0180918B0890918C08AA2797FDA095E8
:107A4000BA2FA81AB90ACA0ADB0A892D992787FD15
:107A50009095A92FB92F8D839E83AF83B887BC01E2
:107A6000CD01A80197010E941D5797FF02C00C94F9
:107A7000634E3B014C01F9E09594879477946794A9
:107A8000FA95D1F76D817E818F819885A601950148
:107A90000E941D5797FF02C00C945D4E5B016C0164
:107AA000E9E0D594C794B794A794EA95D1F780916B
:107AB000340490913504813491053CF48091320472
:107AC0009091330481349105C4F0D401C30197FE31
:107AD00002C00C94884E3C014D0195948794779494
:107AE0006794D601C501D7FE02C00C94834E5C0199
:107AF0006D01D594C794B794A7948091E307E82FBC
:107B0000FF27EE0FFF1FE255F84F80819181019012
:107B1000F081E02DF7FF02C00C94584E7A97A4F044
:107B2000C401B30123E030E040E050E00E949157EF
:107B300039014A01C601B50123E030E040E050E0E0
:107B40000E94915759016A018091F308282F332729
:107B500027FD3095432F532F261537054805590526
:107B600014F439014A01992787FD909590958195E4
:107B70009F4FAA2797FDA095BA2F681679068A0607
:107B80009B0614F43C014D012A153B054C055D058F
:107B900014F459016A01A816B906CA06DB0614F4E2
:107BA0005C016D018091870490918804A091890403
:107BB000B0918A0486199709A809B90980938704A6
:107BC00090938804A0938904B0938A0480917F04E1
:107BD00090918004A0918104B09182048A199B093C
:107BE000AC09BD0980937F0490938004A093810425
:107BF000B09382048091FB039091FC038F3F910529
:107C000009F008F4DFC2F8A5FF2329F40DA1002331
:107C100011F40C94034860E070E06B01109266046C
:107C2000198AE0906408F090650800916608109148
:107C3000670860906B0870906C0880906D08909059
:107C40006E08909171089FA3992311F00C94F1464E
:107C500010924D0410924C0410924B0410924A045E
:107C6000E0922005F0922105009322051093230550
:107C70006092240570922505809226059092270532
:107C800010929704109298041092990410929A04FA
:107C900010929304109294041092950410929604FA
:107CA00010928F04109290041092910410929204FA
:107CB0001092640810926508109266081092670886
:107CC00010926B0810926C0810926D0810926E085A
:107CD00010925708109258081092590810925A089A
:107CE00010924708109248081092490810924A08CA
:107CF0001092FC031092FB0300915504109156045E
:107D0000C80117FD80C2409774F068EE262E63E02C
:107D1000362E30929B0320929A032CA124FD03C09F
:107D200081E080930D05B090F107CB2CDD24EE248B
:107D3000FF24B801882777FD8095982F980117FFB9
:107D400002C00C943F47442737FD4095542F0E94B2
:107D50001D579B01AC01C701B6010E941D5797FF3B
:107D600002C00C94394759E09595879577956795AA
:107D70005A95D1F79B018B2D9927809FA001819F58
:107D8000500D909F500D1124CA0157FF02C00C9452
:107D900036479595879595958795280F391FC90181
:107DA000AA2797FDA095BA2F8093E1049093E2044F
:107DB000A093E304B093E404209177043091780415
:107DC0004091790450917A04281B390B4A0B5B0BC4
:107DD000213563EC360760E0460760E056070CF497
:107DE000E0C680E593ECA0E0B0E080937704909348
:107DF0007804A0937904B0937A04809177049091E9
:107E00007804A0917904B0917A04805B9C43AF4FD1
:107E1000BF4F64F480EB9CE3AFEFBFEF8093770438
:107E200090937804A0937904B0937A04C0906D0481
:107E3000D0906E04C114D10409F4EAC1FCA1F3FF8F
:107E4000E7C1888D998DAA8DBB8DB7FF02C00C94B8
:107E5000D24C09E0B595A795979587950A95D1F7E6
:107E60009CAB8BAB97FF02C00C945B4D89A59AA588
:107E7000ABA5BCA5B7FF02C00C94554D19E0B59554
:107E8000A795979587951A95D1F7BC0197FF02C0E2
:107E90000C94504DEBA8FCA8E616F70614F47CAB46
:107EA0006BAB6BA97CA977FF02C00C944C4D2B01E6
:107EB0005594479455944794559447940894411C7D
:107EC000511C0CE112E0C00ED11E76010027F7FC18
:107ED0000095102F24EE3DEFC20ED31E6090870850
:107EE000709088088090890890908A0880917A0321
:107EF00090917B03A0917C03B0917D0388A399A30B
:107F0000AAA3BBA3C401B30128A139A14AA15BA1C3
:107F10000E949157E21AF30A040B150BC801B7012E
:107F200028E631E040E050E00E949157DC01CB01AF
:107F30008C01045B1040A0908008B0908108C501BE
:107F4000B7FE02C00C943B4D8138910514F000E05F
:107F500010E020909A0330909B0321143104A1F487
:107F6000ABA9BCA9599784F48091640490916504ED
:107F7000800F911F909365048093640480910D0598
:107F8000882311F00C94934DC801880F991F880F16
:107F9000991F880F991FB2010E945C579B014427CB
:107FA00037FD4095542F260D371D481D591D209330
:107FB0008708309388084093890850938A08F09086
:107FC0008B036F2D7727EBA9FCA96E9FC0016F9FD4
:107FD000900D7E9F900D112497FF02C00C94494D87
:107FE0009595879595958795959587959595879579
:107FF00095958795681B790B7CAB6BAB77FF02C0BF
:108000000C94414D2114310411F00C943A4E00911E
:108010003404109135048091320490913304080F98
:10802000191F17FF02C00C948D4E159507951595D5
:10803000079515950795005C1F4FCA01B90128A146
:1080400039A14AA15BA10E949157DA01C90120918F
:108050006B0430916C04442737FD4095542F821BEC
:10806000930BA40BB50B845E9D4FAF4FBF4FBC016C
:10807000CD0128E631E040E050E00E949157DC015C
:10808000CB01845B90404BA95CA9849F9001859FA4
:10809000300D949F300D1124C901B8010E945C5726
:1080A00083E0F89ED0011124BCABABABA617B70799
:1080B00014F40C94644D8BA99CA9909581959F4FC5
:1080C000681779070CF4BC01CB01AA2797FDA0958E
:1080D000BA2F20917704309178044091790450911F
:1080E0007A04820F931FA41FB51F80937704909387
:1080F0007804A0937904B0937A048EC01092970408
:10810000109298041092990410929A041092930479
:1081100010929404109295041092960410926408A0
:1081200010926508109266081092670810926B080A
:1081300010926C0810926D0810926E08222433245D
:1081400021012DA63EA64FA658AA809187049091A2
:108150008804A0918904B0918A0480938304909349
:108160008404A0938504B093860480917F04909149
:108170008004A0918104B091820480937B04909349
:108180007C04A0937D04B0937E041092FC031092B3
:10819000FB0310924B0410924A0410924D0410926B
:1081A0004C0418A5112309F025CD2DA1222309F493
:1081B0000BCC8091FB039091FC038F3F910511F054
:1081C00008F021CDADA4BEA4CFA4D8A8A092570892
:1081D000B0925808C0925908D0925A082092470885
:1081E000309248084092490850924A08B09071086D
:1081F000BFA200916604098B0091550410915604AA
:10820000C80117FF80CD88279927801B910B7BCD54
:10821000A0908008B090810880910C0581508F3F1C
:1082200009F4C8C480930C05B989BB2381F010926E
:10823000DD041092DE041092DF041092E00410922C
:10824000D9041092DA041092DB041092DC04E8A541
:10825000EE2309F0A3C4FFA18F2F9927AA27BB27DC
:10826000BC01CD01288D398D4A8D5B8D0E941D5733
:10827000DC01CB01BC01CD0128EF3AE240E050E047
:108280000E94915719010DA1002309F084C41FA178
:10829000812F9927AA27BB27BC01CD0129A53AA583
:1082A0004BA55CA50E941D57DC01CB01BC01CD0193
:1082B00028EF3AE240E050E00E9491573C832B8344
:1082C0000091420810914308093C11050CF45BC46D
:1082D00008EC10E0109343080093420860904C08AB
:1082E00070904D0839EC631671040CF441C4E8EC4D
:1082F0006E2E712C70924D0860924C0880914F0840
:1083000090915008AA2797FDA095BA2F2091850833
:10831000C22EDD24EE24FF24BC01CD01A70196016D
:108320000E941D579B01AC01C801AA2797FDA0958B
:10833000BA2F67E0880F991FAA1FBB1F6A95D1F754
:10834000280F391F4A1F5B1F57FD64C586E05595EE
:108350004795379527958A95D1F74101820E931E4F
:10836000240180913F0890914008AA2797FDA0958D
:10837000BA2FBC01CD01A70196010E941D579B0198
:10838000AC01C301AA2797FDA095BA2F07E0880F7B
:10839000991FAA1FBB1F0A95D1F7280F391F4A1F23
:1083A0005B1F57FD5EC516E0559547953795279598
:1083B0001A95D1F76B807C80620E731E7CAA6BAA23
:1083C000AA0CBB1CC501AA2797FDA095BA2FBC011A
:1083D000CD01A70196010E941D577B018C0197FDDD
:1083E00037C5B6E015950795F794E794BA95D1F798
:1083F000EFA18E2F9927AA27BB2720918B043091BC
:108400008C0440918D0450918E04BC01CD010E94DA
:108410001D57DC01CB01BC01CD0120EF35E540E06B
:1084200050E00E9491575701A20EB31EC501F1E022
:108430008F16F0E49F0624F0812CA0E49A2E2401EC
:1084400000E0801600EC90060CF08DC3812CF0EC5F
:108450009F2E9092500880924F0811E0611610E410
:1084600071062CF0612CE0E47E2E7CAA6BAA20E041
:10847000621620EC72060CF06FC3612C70EC772E44
:108480007092400860923F0851E0A51650E4B5068E
:1084900024F0A12C60E4B62EC50160E0A61660ECC5
:1084A000B6060CF054C3A12C50ECB52EB092810846
:1084B000A092800889819A81880F991F880F991F3F
:1084C0009A838983ACA18A2F992780FFEBC081FF13
:1084D00018C080912B0899279C012071307084FF6F
:1084E0006DC580918E0381558B3308F067C58091EF
:1084F000B70381508F3F11F40C94674D8093B703FD
:108500001BC020918E0380917E0390917F03820F88
:10851000911D2091ED073327829FF001839FF00D7D
:10852000929FF00D1124CF01449790934F048093B4
:108530004E0481E0809367042091500430915104EF
:10854000FA89FF2321F010924F0410924E04890102
:1085500020914E0430914F04201731070CF0A2C037
:1085600080916704882309F49DC0021B130B80913E
:108570008D039927089F6001099FD00C189FD00C8C
:108580001124C601D7FE02C00C94694E8C011595CA
:10859000079515950795E980FA80E01AF10A870199
:1085A0008091FD039091FE0397FF02C00C94764EDC
:1085B00095958795081B190BC0906F04D090700497
:1085C000E0907104F0907204F7FE02C00C946C4EBF
:1085D00087E0F594E794D794C7948A95D1F7809172
:1085E0008C03282F332744275527C701B6010E9443
:1085F0001D5797FF02C00C947D4EB5E09595879569
:1086000077956795BA95D1F731E06931730714F41E
:108610000C940E4D68E171E0061B170B8091FA0473
:108620009091FB049C0122953295307F3227207F68
:108630003227281B390B200F311F37FF02C00C9443
:10864000794EA90155954795559547955595479567
:1086500055954795BA018091E907282F3327220FB6
:10866000331F220F331F4217530774F489819A81F5
:108670008217930714F0A901B901A981BA81A21741
:10868000B30714F4AD01BD01E981FA81E417F507E0
:1086900014F00C94184DAF01F093FB04E093FA042E
:1086A0005A83498350907F08852D9927880F991FF9
:1086B000880F991F80559040C980DA808C159D05E0
:1086C00014F49A838983E980FA80F0925907E09242
:1086D00058078091E1049091E204A091E304B091E5
:1086E000E404880F991FAA1FBB1F880F991FAA1F98
:1086F000BB1FA81AB90ABAAAA9AA8701013A11058B
:108700000CF411C2C701F7FE02C00C94ED4C959514
:10871000879529A93AA98217930714F49AAB89ABD4
:10872000909581959F4F49A95AA94817590714F464
:108730009AAB89AB252D3327220F331F220F331F0E
:10874000C90149815A81841B950BA9A9BAA98A1725
:108750009B0714F49AAB89AB69817A81621B730B16
:10876000E9A9FAA9E617F70714F47AAB69AB809187
:10877000590490915A048401081B190B1093630843
:1087800000936208FFA1FF2309F4C7C1281A390A20
:10879000C101AA2797FDA095BA2F2091D904309145
:1087A000DA044091DB045091DC04820F931FA41F74
:1087B000B51F8093D9049093DA04A093DB04B0939F
:1087C000DC046091D9047091DA048091DB0490910B
:1087D000DC0461302AEF720720E0820720E0920774
:1087E00074F080E09AEFA0E0B0E08093D904909319
:1087F000DA04A093DB04B093DC04BC01CD0160304B
:1088000036E073073FEF83073FEF930774F480E090
:1088100096E0AFEFBFEF8093D9049093DA04A09372
:10882000DB04B093DC04BC01CD01C0909003D09078
:1088300091039601442737FD4095542F0E9491578C
:108840007801E20EF31EB09080036B2D7727882706
:10885000992729A93AA937FDF7C237FDE0C2359516
:10886000279549815A81240F351F442737FD4095AC
:10887000542F0E941D5797FDE2C2A6E0959587955B
:1088800077956795AA95D1F79B016E157F050CF436
:108890007B0166277727621B730BE616F7060CF43D
:1088A0007B0180915704909158048301081B190B98
:1088B00010933E0800933D085FA1552309F427C19A
:1088C000AB81BC81A81BB90BFD01CF01AA2797FD85
:1088D000A095BA2F2091DD043091DE044091DF0491
:1088E0005091E004820F931FA41FB51F8093DD04F5
:1088F0009093DE04A093DF04B093E0046091DD0464
:108900007091DE048091DF049091E0046130FAEF11
:108910007F07F0E08F07F0E09F0774F080E09AEFA8
:10892000A0E0B0E08093DD049093DE04A093DF0428
:10893000B093E004BC01CD01603026E072072FEF58
:1089400082072FEF920774F480E096E0AFEFBFEF5D
:108950008093DD049093DE04A093DF04B093E004E1
:10896000BC01CD019601442737FD4095542F0E944C
:108970009157020F131F6B2D77278827992729A955
:108980003AA937FD92C237FD8DC2359527954981A9
:108990005A81240F351F442737FD4095542F0E94DC
:1089A0001D5797FD78C2E6E0959587957795679571
:1089B000EA95D1F79B01601771070CF48B016627CC
:1089C0007727621B730B061717070CF48B0189813D
:1089D0009A818E0D9F1D6091FC047091FD04A9A9E0
:1089E000BAA98A0F9B1F0E94F2259093FD048093E1
:1089F000FC0497FD4EC29595879595958795D090E7
:108A000055082D2D3327821793070CF47EC0252D92
:108A10003327281739070CF478C0809341088981DF
:108A20009A818E199F096091FE047091FF04E9A953
:108A3000FAA98E0F9F1F0E94F2259093FF04809346
:108A4000FE0497FD2DC295958795959587952D2DBB
:108A50003327821793070CF456C0252D3327281788
:108A600039070CF450C080934E0889819A81800F99
:108A7000911F6091000570910105A9A8BAA88A19F3
:108A80009B090E94F225909301058093000597FDB4
:108A9000FEC195958795959587952D2D332782173E
:108AA00093077CF1252D33272817390754F180933C
:108AB0007708E980FA80E01AF10A60910205709166
:108AC0000305C70109A91AA9801B910B0E94F22571
:108AD000909303058093020597FDD7C195958795DF
:108AE000959587952D2D3327821793073CF0252DDB
:108AF00033272817390714F00C942150C9010C941E
:108B00002150C901D4CFC901AECFC90186CFC80158
:108B1000AA2797FDA095BA2FDDCEC801AA2797FDF9
:108B2000A095BA2F3ACE89A99AA98135910524F04A
:108B3000A0E5B0E0BAABA9ABE9A9FAA9E05BFF4FA9
:108B40000CF0F8CD20EB3FEF3AAB29ABF3CD90938F
:108B5000810880938008AECC4BA95CA95093400853
:108B600040933F0891CC5092500840924F0875CCEA
:108B700048E364164FEF74060CF0C0CB78E3672E21
:108B80007FEF772EB7CB2FEF083312070CF0A6CB71
:108B900008E31FEF9FCB1C821B8292CB222433243D
:108BA00072CB2093770430937804409379045093E8
:108BB0007A0423C988E180930C058091F4079927F2
:108BC000880F991F880F991F7C010027F7FC0095DB
:108BD000102F688D798D8A8D9B8DA80197010E9439
:108BE000915730934B0720934A0769A57AA58BA527
:108BF0009CA5A80197010E94915730934D0720939F
:108C00004C0780917B0890917C0897FD24C795952F
:108C100087959595879590934F0780934E07809100
:108C20008B0890918C0897FD14C79595879595951D
:108C300087959093510780935007B0925307A09265
:108C400052072091500430915104309355072093DE
:108C5000540780916F0490917004A0917104B091B9
:108C60007204B7FDF1C6F9E0B595A795979587957C
:108C7000FA95D1F79093570780935607D0925B07E8
:108C8000C0925A0780911C0390911D0390935D0739
:108C900080935C078091870890918808A09189084B
:108CA000B0918A0820917A0330917B0340917C0334
:108CB00050917D03BC01CD010E9491573093610713
:108CC0002093600780915B04992790935F078093BE
:108CD0005E078091A3069927909371078093700790
:108CE0008091E4039091E50390937307809372075A
:108CF0008091F208992787FD909590938107809342
:108D0000800780913E0590913F059093870780935F
:108D1000860780913C0590913D059093890780934B
:108D2000880782CA3FEF8E3F93070CF041C102963D
:108D30000C94BD38B9016150704040915704509176
:108D40005804CA0157FF02C00C944739959587957E
:108D50009595879597FF02C00C9450392091320465
:108D6000309133042817390714F00C945C39CA0188
:108D700057FD75C697FD71C695958795959587950D
:108D80008536910514F40C945E3984E690E0C09029
:108D90006804CA8ACC2011F00C946539909333048E
:108DA0008093320470933504609334040C946D39CD
:108DB000609371084091590450915A04CA0157FDBB
:108DC00002C00C94183903969595879595958795CB
:108DD00097FD02C00C942039909581959F4F0C947B
:108DE0002039D0924D04C0924C0470934B04609390
:108DF0004A040C94303E109252040C9405381092A0
:108E00005204109268042A3011F00C94C237289A48
:108E10000C94C737215C3F4F4F4F5F4F97CA2F5F6E
:108E20003F4F3595279549815A81240F351F442797
:108E300037FD4095542F0E941D5797FF1ECD615C52
:108E40007F4F8F4F9F4F19CD309521953F4F05CDC7
:108E50008FE390E0A0E0B0E0E80EF91E0A1F1B1FB0
:108E6000C0CA215C3F4F4F4F5F4F9DCA03960C9481
:108E7000C93E61507E4F8F4F9F4F0C94B33E2227C7
:108E80003327201B310B0C94A33E039627CE039669
:108E900000CE0396B0CD615C7F4F8F4F9F4F83CD47
:108EA0000396D1CD2F5F3F4F70CD309521953F4F29
:108EB0006ACD982F0C94243A81E0809345040C9459
:108EC000193A81E080934404582F0C94EC3981E0E6
:108ED000809346040C94C23981E0809347040C943B
:108EE000953990934804809349040C942E3C8091CA
:108EF000A806992787FD90954F2D5527849FD0016F
:108F0000859FB00D949FB00D1124CD01209159047F
:108F100030915A04820F931F90935A0480935904FE
:108F20008091A906992787FD9095849FF001859FE0
:108F3000F00D949FF00D1124CF0120915704309132
:108F40005804820F931F9093580480935704809184
:108F5000AA06992787FD90952091550430915604D3
:108F6000820F931F90935604809355048091AC0612
:108F7000282F332727FD30958091ED079927289FCB
:108F80005001299FB00C389FB00C1124B0927F0380
:108F9000A0927E038091AB0699278C159D0514F055
:108FA0000C94FA3890935404809353040C94FE3834
:108FB00010925604109255040C94C138232B29F4B6
:108FC00080918E03823308F492CA81E08093670413
:108FD00088EC8093B703B0CA80915204882311F4BF
:108FE0000C944F3A8091300490913104FFEF8F3F01
:108FF0009F0711F40C94533A019690933104809397
:1090000030040C94533A10916604198B112311F01B
:109010000C940B3E209110082EA3222311F40C94E3
:109020000B3E8DA59EA5AFA5B8A980935708909338
:109030005808A0935908B0935A08209247083092D4
:1090400048084092490850924A08809164089091DB
:109050006508A0916608B0916708B7FD26C7292E5C
:109060003A2E4B2E552447FC5A9420926408309295
:109070006508409266085092670880916B0890914D
:109080006C08A0916D08B0916E08B7FD09C7892FD3
:109090009A2FAB2FBB27A7FDBA9589879A87AB87F5
:1090A000BC8780936B0890936C08A0936D08B09375
:1090B0006E088091F407E82EFF24002711272091E5
:1090C0009704309198044091990450919A04C801F2
:1090D000B7010E941D5797FDFCC6672E782E892E7A
:1090E000992487FC9A9420919304309194044091A0
:1090F000950450919604C801B7010E941D5797FD31
:10910000E3C6A72EB82EC92EDD24C7FCDA94D201FF
:10911000C10186199709A809B90920910F08E22E03
:10912000FF2400271127BC01CD01A80197010E944F
:10913000915739014A0119012A0189859A85AB8520
:10914000BC858A199B09AC09BD09BC01CD01A801E8
:1091500097010E949157D401C30197FCB0C6892F93
:109160009A2FAB2FBB27A7FDBA95BC01DA01C90125
:1091700057FDA0C6892F9A2FAB2FBB27A7FDBA9505
:109180006C01809134049091350481349105C4F4CC
:109190008091320490913304813491058CF4809154
:1091A000E307E82FFF27EE0FFF1FE255F84F8081FE
:1091B00091810190F081E02DF7FDDEC67A972CF0C9
:1091C0008091F1088F3F09F412C6EC88FD880E8962
:1091D0001F89288D398D4A8D5B8DE21AF30A040BA5
:1091E000150BEBAAFCAA0DAB1EABE092E504F092C6
:1091F000E6040093E7041093E8048C8D9D8DAE8DFA
:10920000BF8DE9A4FAA40BA51CA58E199F09A00B7C
:10921000B10B8D879E87AF87B88B8093E9049093BD
:10922000EA04A093EB04B093EC040BA91CA92DA9AC
:109230003EA90093ED041093EE042093EF043093C5
:10924000F0048093F1049093F204A093F304B0939C
:10925000F4048091830490918404A0918504B091DA
:109260008604801B910BA20BB30B80938304909315
:109270008404A0938504B093860480917B0490912C
:109280007C04A0917D04B0917E042D853E854F85A0
:109290005889821B930BA40BB50B80937B0490938E
:1092A0007C04A0937D04B0937E043EA1332371F12E
:1092B00020916404309165042138310594F0809147
:1092C000BB049091BC0401969093BC048093BB04B2
:1092D00080916F0890917008019690937008809328
:1092E0006F0820583F4F94F48091BB049091BC04C8
:1092F00001979093BC048093BB0480916F08909178
:10930000700801979093700880936F08109265041D
:109310001092640431E0A32EB12C8091200590912D
:109320002105A0912205B0912305E0906408F090FA
:10933000650800916608109167088E199F09A00BB7
:10934000B10B815E914BAF4FBF4F8F539C49A040F3
:10935000B04008F4FAC48091F2088B8B89310CF488
:1093600071C52BA93CA94DA95EA9213080E1380720
:1093700080E0480780E058070CF4F7C480911C0592
:10938000882309F4ABC570934B0460934A04DA0157
:10939000C90157FD4EC6B7FD47C629E0B595A7954B
:1093A000979587952A95D1F7019690931B05809301
:1093B0001A052BA93CA94DA95EA957FD30C6390154
:1093C0004A01A3E09594879477946794AA95D1F77E
:1093D0001301240199E8691693E1790690E0890662
:1093E00090E0990644F0F8E86F2EF3E17F2E812C8F
:1093F000912C13012401D401C30197FC0BC6892FC2
:109400009A2FAB2FBB27A7FDBA95680F791F2BA901
:109410003CA94DA95EA9203080EF38078FEF48079F
:109420008FEF58070CF0B7C480911D05882309F40D
:109430006DC570934B0460934A04DA01C90157FD6E
:10944000E1C59C01AD01B7FDD8C569E055954795CB
:10945000379527956A95D1F780911A0590911B054C
:10946000820F931F90931B0580931A052BA93CA98B
:109470004DA95EA957FD9BC539014A0143E095946A
:109480008794779467944A95D1F798E769169CEE8C
:1094900079069FEF89069FEF990644F438E7632E1B
:1094A0003CEE732E3FEF832E3FEF932E60920E051E
:1094B00070920F058092100590921105D401C3019E
:1094C00097FC70C5892F9A2FAB2FBB27A7FDBA95A4
:1094D00060914A0470914B04680F791FAEA12A2F46
:1094E000332780911A0590911B052817390724F41A
:1094F00030931B0520931A05BB89BB2379F02B2FD2
:10950000332727FD309580911A0590911B05281768
:10951000390724F430931B0520931A052BA93CA985
:109520004DA95EA9215034404040504074F08091D4
:10953000BF049091C00420911A0530911B05820F41
:10954000931F9093C0048093BF042BA93CA94DA9FD
:109550005EA920503C4F4F4F5F4F74F48091BF0481
:109560009091C00420911A0530911B05821B930B2A
:109570009093C0048093BF04A1E0AA2EB12C20E0F8
:1095800030E040E050E08091240590912505A091C5
:109590002605B091270560906B0870906C0880904C
:1095A0006D0890906E0886199709A809B909815E1F
:1095B000914BAF4FBF4F8F539C49A040B04020F01C
:1095C000FB89F9310CF453C48D859E85AF85B8892C
:1095D00081509041A040B0400CF4CEC380911E0554
:1095E000882309F483C4D0924D04C0924C048D8525
:1095F0009E85AF85B889B7FDCDC4B7FDEFC4F9E04E
:10960000B595A79597958795FA95D1F7019690937B
:109610001B0580931A052D853E854F85588957FD7A
:10962000D8C4E3E05595479537952795EA95D1F746
:109630002938F3E13F07F0E04F07F0E05F070CF453
:109640007CC488E893E1A0E0B0E080931205909399
:109650001305A0931405B093150580911205909100
:109660001305A0911405B0911505B7FD8EC4892F7F
:109670009A2FAB2FBB27A7FDBA95C0904C04D09072
:109680004D04C80ED91E2D853E854F855889203042
:1096900080EF38078FEF48078FEF58070CF086C32D
:1096A00080911F05882309F43DC4D0924D04C092D7
:1096B0004C04DA01C90157FD84C49C01AD01B7FD1A
:1096C0007BC4B9E05595479537952795BA95D1F75D
:1096D00080911A0590911B05820F931F90931B0593
:1096E00080931A052D853E854F85588957FD7BC48B
:1096F000A3E05595479537952795AA95D1F7283733
:109700009CEE39079FEF49079FEF59070CF01EC4E5
:1097100088E79CEEAFEFBFEF80931205909313059F
:10972000A0931405B093150580911205909113052F
:10973000A0911405B0911505B7FD5AC4892F9A2F31
:10974000AB2FBB27A7FDBA95C0904C04D0904D0419
:10975000C80ED91EAEA12A2F332780911A059091E9
:109760001B052817390724F430931B0520931A058D
:10977000BB89BB2379F02B2F332727FD30958091B0
:109780001A0590911B052817390724F430931B05FF
:1097900020931A052D853E854F85588921503440E8
:1097A0004040504074F08091BD049091BE042091DF
:1097B0001A0530911B05820F931F9093BE0480936E
:1097C000BD042D853E854F85588920503C4F4F4F15
:1097D0005F4F14F00C94213E8091BD049091BE0423
:1097E00020911A0530911B05821B930B9093BE04A8
:1097F0008093BD040C94213E109245040C94193AB8
:109800001092440450E00C94EC39109246040C94ED
:10981000C2398091F407E82EFF2400271127688DB4
:10982000798D8A8D9B8DA80197010E9491573901EE
:109830004A0180917B0890917C08AA2797FDA0950A
:10984000BA2F681A790A8A0A9B0A69A57AA58BA594
:109850009CA5A80197010E94915759016A01809126
:109860008B0890918C08AA2797FDA095BA2FA81A6B
:10987000B90ACA0ADB0AD401C30197FC6EC23C01D3
:109880004D0154E095948794779467945A95D1F755
:10989000D601C501D7FC5DC25C016D0144E0D594E1
:1098A000C794B794A7944A95D1F7809134049091C6
:1098B0003504813491050CF426C1C401B30123E0C1
:1098C00030E040E050E00E94915739014A01C60162
:1098D000B50123E030E040E050E00E94915759018B
:1098E0006A018091E307E82FFF27EE0FFF1FE25583
:1098F000F84F808191810190F081E02DF7FD31C218
:109900007A97A4F0C401B30123E030E040E050E0D6
:109910000E94915739014A01C601B50123E030E0A8
:1099200040E050E00E94915759016A0191E26916A6
:109930007104810491042CF030E2632E712C812C8F
:10994000912CA0EE6A16AFEF7A06AFEF8A06AFEF62
:109950009A0644F420EE622E2FEF722E2FEF822E05
:109960002FEF922EB1E2AB16B104C104D1042CF05A
:1099700090E2A92EB12CC12CD12CE0EEAE16EFEF67
:10998000BE06EFEFCE06EFEFDE0614F00C94D23DEC
:1099900080EEA82E8FEFB82E8FEFC82E8FEFD82E27
:1099A0000C94D23D81509E4FAF4FBF4F0C94293F36
:1099B00080912F04826080932F040C946E3A4D5F47
:1099C0005F4F0C9485384D5F5F4F0C943B3810927D
:1099D0005404109253040C94063901960C94874356
:1099E0001092F804ED2DFF27EE0FFF1FE255F84F00
:1099F000808191818C3491051CF18091F9048F5FF5
:109A0000893C08F489C01092520488EC8093F904D0
:109A100010923104109230040C9405384EEF683ED9
:109A2000740714F00C940C4368EE7EEF0C940C4316
:109A30007093FB046093FA045A8349830C94524355
:109A40001092F9040C94053881509E4FAF4FBF4FD0
:109A50000AC90396EAC80396DAC803968DC9909599
:109A600081959F4F87C9909581959F4F0C942E3972
:109A700003960C943239882799278A199B090C94EC
:109A8000A43F84EF91E090939B0380939A030C94FE
:109A90000C414F960C94F03F695F7F4F0C94573FF9
:109AA000709561957F4F0C944A3F81509E4FAF4F08
:109AB000BF4F0C943E3F5C01B094A194B108B394A5
:109AC000BCAAABAA0C94363FBD010C9464408091B3
:109AD000120390911303895E934008F422C1909180
:109AE000FF039A509093FF0380919907891B87BDCC
:109AF0008CE291E09093E9038093E8038AEF8093EE
:109B0000B7030C949C4280913204909133048134C9
:109B100091050CF4E6CED1CE8093F9040C9405386F
:109B20008093F8045FCF88EC90E09093E9038093F2
:109B3000E803C601AA2797FDA095BA2FBC01CD0165
:109B400028A139A14AA15BA10E941D573B014C01EC
:109B50000E94915730936C0420936B0410920D0572
:109B60000C94C43F80819181855B9F4F0CF0E9C0CC
:109B70008091F7048F5F8093F704893C10F40C9474
:109B8000653B2C3008F0D2C12998A4E0B0E08FEFFB
:109B9000082E0E94B457109252041092F7041092AB
:109BA0003104109230040E943431A4E0B0E080917E
:109BB000B5049091B60497FDD9C1892F990F990BDF
:109BC000082E0E94B457A5E0B0E08091B5049091B2
:109BD000B604082E0E94B457A6E0B0E08091B3040A
:109BE0009091B40497FDBFC1892F990F990B082E4E
:109BF0000E94B457A7E0B0E08091B3049091B40400
:109C0000082E0E94B45708E010E08091AD049091B6
:109C1000AE04A091AF04B091B004BC01CD010E948C
:109C20008656DC01CB019C0197FDA3C1832F9927A8
:109C300087FD9A95D801082E0E94B45709E010E0DC
:109C40008091AD049091AE04A091AF04B091B004A6
:109C5000BC01CD010E948656DC01CB01D801082E43
:109C60000E94B4570E9406030E9408263091E20722
:109C70000C94653B08942108310830929B03209294
:109C80009A030C940C4181E080930D051092E1043D
:109C90001092E2041092E3041092E404109277040C
:109CA000109278041092790410927A040C946E3A0F
:109CB000F095E195FF4F0C948E3D61507E4F8F4F94
:109CC0009F4F0C944E3D61507E4F8F4F9F4F0C9491
:109CD000393D03960C94C6422FE730E040E050E057
:109CE000C20ED31EE41EF51E0C94E84201960C949D
:109CF000D842215F3F4F0C942143615E7F4F8F4FCD
:109D00009F4F0C94FD420196A11DB11D0C94773D0F
:109D10000196A11DB11D0C946B3D095F1F4F0C9462
:109D2000154080911203909113038436910508F039
:109D300073C09091FF03965FD5CE8093F7040C9487
:109D4000653B4093F7040C94653B9091F2089B8B24
:109D500008CB0F96A11DB11D9FCD0F96A11DB11D62
:109D60008ECDF095E195FF4FCBCDB0921B05A09223
:109D70001A0510921C054BCB209312053093130546
:109D80004093140550931505B0921B05A0921A0537
:109D900010921E0578CC20920E0530920F0540924D
:109DA00010055092110510921D0598CB10921F05B9
:109DB000D1CC0E9406034CE560EE77E00E94AE0233
:109DC0008091E80780FF10C08091120390911303E7
:109DD000875B934038F480911203909113038E5E59
:109DE000924010F40E9468150E9434313BCF70936A
:109DF0004B0460934A04D0924D04C0924C04CB01B2
:109E000077FDAFC0BC0175956795C601D7FCA7C0AB
:109E10006C01D594C794D9C9209150043091510454
:109E20002451304030934F0420934E042C5E3F4F1A
:109E30001092670481E08093B7030C94A042299AA2
:109E40000C949C3A60920E0570920F05809210055A
:109E50009092110510921B0510921A05B8EE2B2E48
:109E6000B3E03B2E30929B0320929A0337CB209392
:109E70001205309313054093140550931505109265
:109E80001B0510921A05E8EE2E2EE3E03E2E3092CE
:109E90009B0320929A035ECC1091E1070C94C83A80
:109EA00081509F4FAF4FBF4FF2C881509F4FAF4F70
:109EB000BF4FD5C881509F4FAF4FBF4F5BC9815037
:109EC0009F4FAF4FBF4F4BC961507F4F8F4F9F4F39
:109ED00018C961507F4F8F4F9F4FFFC8B0921B052D
:109EE000A0921A0581E080931C0591CA2093120567
:109EF000309313054093140550931505B0921B053C
:109F0000A0921A0581E080931E05BDCB20920E051C
:109F100030920F05409210055092110581E0809318
:109F20001D05DCCA81E080931F0514CC299A2DCE33
:109F3000F095E195FF4F0C94473B20931205309329
:109F40001305409314055093150587CB20931205F4
:109F5000309313054093140550931505E5CB0196F6
:109F600057CF01964FCF81509F4F3ECE81509F4F8C
:109F700024CE21503F4F5ACEF095E195FF4F1EC998
:109F8000F095E195FF4F0C94C43A81509F4FAF4F2D
:109F9000BF4F6DCBB095A095909581959F4FAF4FDA
:109FA000BF4F2BCB81509F4FAF4FBF4F8BCA295F05
:109FB0003F4F4F4F5F4F60CA21503E4F4F4F5F4F53
:109FC00080CBB095A095909581959F4FAF4FBF4F97
:109FD00074CB295F3F4F4F4F5F4F23CB81509E4F34
:109FE000AF4FBF4F0CCB295F3F4F4F4F5F4F80CBE1
:109FF00081509F4FAF4FBF4FA1CB21503E4F4F4F8E
:10A000005F4F23CAB095A095909581959F4FAF4F14
:10A01000BF4F17CA81509F4FAF4FBF4FF0C9295F45
:10A020003F4F4F4F5F4FCBC981509E4FAF4FBF4FF8
:10A03000B4C9B095A095909581959F4FAF4FBF4FF4
:10A04000AAC980937208E6960FB6F894DEBF0FBED9
:10A05000CDBFDF91CF911F910F91FF90EF90DF90D7
:10A06000CF90BF90AF909F908F907F906F905F90B8
:10A070004F903F902F900895809134059091350531
:10A08000A0913605B091370580932C0590932D054E
:10A09000A0932E05B0932F05809130059091310546
:10A0A000A0913205B091330580932805909329053E
:10A0B000A0932A05B0932B05089510923F051092A6
:10A0C0003E0510923D0510923C05089584B1806ACA
:10A0D00084B93D9A82E58CBD1DBC459A81E0809390
:10A0E00092088AEA8093960883E8809397088AE02A
:10A0F0008093980810929A081092990810929C08E0
:10A1000010929B081092B8081092B90888E48093C6
:10A11000BA088FE08093BB0885E08093BC0808955F
:10A12000EF92FF920F931F93F8948091F407992771
:10A13000880F991F880F991F7C010027F7FC009555
:10A14000102F8091A7049091A804A091A904B09128
:10A15000AA04BC01CD01A80197010E949157309338
:10A160009A082093990880919F049091A004A0914F
:10A17000A104B091A204BC01CD01A80197010E94E5
:10A18000915730939C0820939B0820918708309129
:10A1900088084091890850918A08DA01C90173E062
:10A1A000880F991FAA1FBB1F7A95D1F7820F931FA3
:10A1B000A41FB51F820F931FA41FB51F20917A0300
:10A1C00030917B0340917C0350917D03BC01CD0114
:10A1D0000E9491573093A2082093A108E091B10406
:10A1E000F091B2048091680890916908BF010E94C3
:10A1F0005C57CB019B01220F331F220F331F280F07
:10A20000391F280F391F37FDEFC035952795359534
:10A21000279530939E0820939D0880918308909104
:10A220008408BF010E945C579B01220F331F220F3D
:10A23000331F260F371F260F371F37FDD2C0359526
:10A240002795359527953093A00820939F08109265
:10A25000B2041092B104109269081092680810922A
:10A260008408109283088091980899278C30910572
:10A2700009F487C08D3091050CF067C08A309105D4
:10A2800009F42CC10B9709F4B2C078948091B808F6
:10A29000882309F49DC02091BE083091BF08C901F0
:10A2A00081509E4F8F5F9340B0F44091C008509111
:10A2B000C108CA0181509E4F8F5F934060F4809126
:10A2C000E80785FF08C030933F0520933E05509373
:10A2D0003D0540933C058091C4089091C50821E05C
:10A2E000893692070CF0E8C09C0190936E0480932D
:10A2F0006D0480916B0490916C04281B390BC9018B
:10A30000845E9D4F68E671E00E945C57845B9040DC
:10A3100090936A04809369042091C8083091C90819
:10A320008091E8039091E9038217930740F48091AC
:10A33000A306882321F43093E9032093E803809156
:10A34000BD08873609F04FC1BCC08D30910509F4B6
:10A35000FEC00E9709F099CF8091B9088093A908A3
:10A360008091BA088093AA088091BB088093AB08BB
:10A370008091BC088093AC08809101018093AD0866
:10A3800084CF8091A306863018F01092A30685E052
:10A390008093A90880915004909151049093AC0847
:10A3A0008093AB08809129088093AA0880911F08A8
:10A3B0008093AD08809120088093AE088091210899
:10A3C0008093AF0878948091B808882309F063CF10
:10A3D00010923F0510923E0510923D0510923C05EB
:10A3E00002C12D5F3F4F2BCF2D5F3F4F0ECF80918E
:10A3F000E207E82FFF27EE0FFF1FE255F84F01900D
:10A40000F081E02DE038F1050CF0D2C02FEFE138FB
:10A41000F20714F4E1E8FFEFE093A9088091E30765
:10A42000E82FFF27EE0FFF1FE255F84F0190F08154
:10A43000E02DE038F1050CF4CEC0EFE7F0E0E0935A
:10A44000AA088091E107E82FFF27EE0FFF1FE255D2
:10A45000F84F0190F081E02DE038F1050CF4B3C025
:10A46000EFE7F0E0E093AB088091E007E82FFF27EB
:10A47000EE0FFF1FE255F84F0190F081E02DE0381C
:10A48000F1050CF498C0EFE7F0E0E093AC088091A0
:10A4900062048093AD08809160048093AE0880913F
:10A4A0005E048093AF0880915C048093B008809133
:10A4B0005B048093B108E9CE20916D0430916E0465
:10A4C00018CF8091CA088093F1088091CB088093BF
:10A4D000F3088091CC088093F20885C080914304F2
:10A4E0008093A908809142048093AA088091410436
:10A4F0008093AB08809140048093AC0880913F0426
:10A500008093AD0880913E048093AE0880913D0415
:10A510008093AF0880913C048093B00880912F0411
:10A520008093B108837F80932F0480911C039091C6
:10A530001D038093B2088091F9078093B308A2E0CD
:10A54000B0E00E94AC57802D8093B4089ECE8091DD
:10A550001A088093A90880911B088093AA0880910B
:10A560001C088093AB0880911D088093AC088091F3
:10A570001E088093AD08809122088093AE088091D8
:10A5800023088093AF08809124088093B0088091BD
:10A5900027088093B108809125088093B2088091A4
:10A5A00026088093B308809128088093B4086DCE64
:10A5B000EFE7F0E031CF8FEFE138F8070CF065CF2F
:10A5C000E1E8FFEF62CF6FEFE138F6070CF04ACF1A
:10A5D000E1E8FFEF47CF4FEFE138F4070CF02FCF62
:10A5E000E1E8FFEF2CCF1F910F91FF90EF900895BE
:10A5F00080919208882309F43BC0459886E998E049
:10A60000909394088093930880914005E82FFF274A
:10A61000E854FC4F982F9F5F808180939808963074
:10A6200008F027C090934005109292080E94905025
:10A6300081E0809395080000000000000000000009
:10A64000000000000000000000000000000000000A
:10A6500000000000000000000000000000000000FA
:10A66000000000000000809196088093B5088EBD20
:10A67000089510924005D8CF20919208222309F026
:10A6800045C00DB407FE42C084E08093E703459ABD
:10A690003EB58091420599278130910509F437C074
:10A6A000823091050CF451C0029709F439C0209111
:10A6B0009508203208F030C04598000000000000E6
:10A6C000000000000000000000000000000000008A
:10A6D000000000000000000000000000000000007A
:10A6E00000000000000000000000E0919308F091DD
:10A6F0009408E20FF11D80818EBD8091B508908194
:10A70000890F8093B5082F5F2093950808953535FC
:10A7100051F120934205CBCF81E080939208F3CF93
:10A720008091B708E82FFF27E952F74F30838F5FFA
:10A730008093B7088A3100F180914305381711F1F1
:10A740002093B80810924205B2CF892B09F0AFCF01
:10A750002093B70830934305313809F0A8CF81E042
:10A7600080934205A4CF80914305830F80934305D6
:10A7700082E0809342059BCF80914305830F8093B5
:10A78000430595CF8AE1E7EDF8E0ADEBB8E0019045
:10A790000D928A95E1F781E08093B8081092420506
:10A7A00086CF87B18C6087B942984398109245054F
:10A7B00080E88093BF03109244058093BE03089500
:10A7C00080914A0581508F3F19F080934A05089582
:10A7D00084E080934A05909117089B3F60F49B3F6B
:10A7E000A0F080916A088A3080F48091160888234E
:10A7F00054F0429A11C080916A08873E80F380919C
:10A8000016088823B4F3429807C08091450581500B
:10A810008F3FB9F180934505909119089B3F50F007
:10A8200080917E08873E30F080911808882364F07C
:10A83000439808959B3F50F080917E088A3030F411
:10A84000809118088823A4F3439A089580914405C1
:10A8500081508F3F19F080934405089580917E08C0
:10A860008150809344058091BE038130F1F0982F90
:10A8700096959093BE03809118088923C9F2439A54
:10A88000089580916A088150809345058091BF03A7
:10A89000813069F0982F96959093BF0380911608A8
:10A8A000892309F4B0CF429AB7CF90E8E2CF90E87D
:10A8B000F3CF8091C9008F778093C9008091C90040
:10A8C0008F7B8093C9008091C9008F7D8093C900E0
:10A8D0005A9A52981092CD0084E190E08093CC0077
:10A8E0008091C80082608093C80080E18093C90095
:10A8F0008091CA008F778093CA008091CA008F7BB5
:10A900008093CA008091CA008F7D8093CA00809195
:10A91000CA008F7E8093CA008091CA00877F80938F
:10A92000CA008091C9008B7F8093C9008091CA00C2
:10A9300084608093CA008091CA0082608093CA00BC
:10A940008091C80087FF0CC08091CE008091C80024
:10A95000882334F48091CE008091C8008823A4F32A
:10A960008091C90080688093C90008951F920F925A
:10A970000FB60F921124EF92FF920F931F932F9314
:10A980003F934F935F936F937F938F939F93AF9377
:10A99000BF93CF93DF93EF93FF930091CE0080910D
:10A9A000C0039091C103019709F45EC080915305E3
:10A9B000909154050E94D711482F552760914B055F
:10A9C00070914C0561157105E9F16130710509F46B
:10A9D000EAC06230710509F4EDC06330710509F415
:10A9E0005CC081E090E09093C1038093C00310921B
:10A9F0004E0510924D05109252051092510580910E
:10AA00004D0590914E054097A0F080915105909191
:10AA10005205892B11F41092790310924E05109271
:10AA20004D05109252051092510510924C0510924E
:10AA30004B0587E090E00E94CE11909354058093DF
:10AA40005305FDC0452BD9F281E090E090934C0571
:10AA500080934B0580914D0590914E050196909302
:10AA60004E0580934D05CBCF1092C1031092C003C9
:10AA700087E090E00E94CE11909354058093530597
:10AA800010924E0510924D0510924C0510924B05F8
:10AA90001092500510924F05D2C0452B09F0A1CF5E
:10AAA00082E090E090934C0580934B0580914D059A
:10AAB00090914E05019690934E0580934D0580919F
:10AAC0004F0590915005FC01F695E795F695E795B1
:10AAD000EF70F0703196982F8827202F3327822B24
:10AAE000932B9370805092400E945C57EB30F1059D
:10AAF00008F085CF7F01EE0EFF1EF701E255F84FFB
:10AB0000808191819B01281B390BC90137FD90C0C1
:10AB1000069754F480915B04883C08F087C08091CC
:10AB20005B04865F80935B04F701E255F84F8081F8
:10AB300091819C01220F331F280F391F260F371FC9
:10AB400037FD7AC0E901D595C795D595C795CB0155
:10AB500001968C179D070CF05CC0219780915B04D7
:10AB6000843B08F450C087010C53184FF701E2559D
:10AB7000F84F80819181FE01E81BF90BCF0163E062
:10AB800070E00E945C57CB01880F991F860F971FBA
:10AB9000F801918380832EEA37E0E20EF31EF7017D
:10ABA000D183C0832CCF4115510509F012CF82E02B
:10ABB00090E04CCF4115510509F00FCF802F992718
:10ABC0009093500580934F0520914D0530914E058F
:10ABD0002230310569F083E090E090934C0580933A
:10ABE0004B052F5F3F4F30934E0520934D0507CF08
:10ABF00080914F0587FF15C081E090E0909352054A
:10AC000080935105E8CFF701EC53F84F1182108281
:10AC1000C2CF61507040C617D7070CF09FCF219666
:10AC20009DCF5093520540935105D5CF88EC7ACFF4
:10AC3000909581959F4F6CCF2D5F3F4F83CFFF91B4
:10AC4000EF91DF91CF91BF91AF919F918F917F91C4
:10AC50006F915F914F913F912F911F910F91FF90B5
:10AC6000EF900F900FBE0F901F901895FC01415070
:10AC7000504030F001900616D1F73197CF0108957A
:10AC80008827992708955058192EA6D001D08CC036
:10AC9000BA176207730784079507B1F188F40EF4B9
:10ACA00010940B2EBA2FA02D062E622F202D072ECA
:10ACB000732F302D082E842F402D092E952F502DC7
:10ACC000FF275523B9F0591B49F0573E98F0469598
:10ACD00037952795A795F0405395C9F776F0BA0FA9
:10ACE000621F731F841F30F4879577956795B7951A
:10ACF000F040939517FA0F2E0895BF1BBB27BA0B90
:10AD0000620B730B840BF6CFDEF692C097FB70D00C
:10AD10009F3738F0FEE9F91B982F872F762F6B2F7E
:10AD200005C083C09695879577956795F150D0F7C4
:10AD30003EF490958095709561957F4F8F4F9F4F12
:10AD40000895E89403C097FB0EF4F3DFB62F672F46
:10AD5000782F892F9EE9002427C00ED05EF004C012
:10AD60000BD026F001C008D019F020F48FEF089521
:10AD700080E0089581E0089597FB092E052600F8EC
:10AD800068942DD0E89407FC07C062177307840706
:10AD9000950721F008F400940794989408959A95E3
:10ADA000BB0F661F771F881F11249923A1F08823EA
:10ADB000B2F79F3F59F0BB0F48F421F4002011F483
:10ADC00060FF04C06F5F7F4F8F4F9F4F881F979525
:10ADD000879597F9089529C0052E092607FA440F8B
:10ADE000551F5F3F79F0AA27A51708F051E0479556
:10ADF000880F991F9F3F31F0BB27B91708F091E0EA
:10AE0000879508959F919F91112414C097FB880FF7
:10AE1000991F9F3F31F0BB27B91708F091E0879544
:10AE200008959F919F91112405C066277727882751
:10AE3000992708959FEF80EC0895629FD001739F3A
:10AE4000F001829FE00DF11D649FE00DF11D929FC6
:10AE5000F00D839FF00D749FF00D659FF00D992705
:10AE6000729FB00DE11DF91F639FB00DE11DF91F29
:10AE7000BD01CF0111240895991B79E004C0991FE9
:10AE8000961708F0961B881F7A95C9F78095089544
:10AE9000AA1BBB1B51E107C0AA1FBB1FA617B70700
:10AEA00010F0A61BB70B881F991F5A95A9F780951C
:10AEB0009095BC01CD01089597FB092E07260AD075
:10AEC00077FD04D0E5DF06D000201AF47095619577
:10AED0007F4F0895F6F7909581959F4F0895A1E2D1
:10AEE0001A2EAA1BBB1BFD010DC0AA1FBB1FEE1F04
:10AEF000FF1FA217B307E407F50720F0A21BB30B4F
:10AF0000E40BF50B661F771F881F991F1A9469F7CA
:10AF100060957095809590959B01AC01BD01CF0126
:10AF2000089597FB092E05260ED057FD04D0D7DFD4
:10AF30000AD0001C38F450954095309521953F4F2C
:10AF40004F4F5F4F0895F6F79095809570956195F6
:10AF50007F4F8F4F9F4F0895F999FECFB2BDA1BD8E
:10AF6000F89A119600B40895F999FECFB2BDA1BD2B
:10AF700000BC11960FB6F894FA9AF99A0FBE08958C
:0AAF80000190F2DF1A94E1F7089542
:10AF8A00010A01416E676C654E69636B20202020BF
:10AF9A00202020416E676C65526F6C6C2020202047
:10AFAA002020204163634E69636B202020202020EB
:10AFBA00202020416363526F6C6C202020202020C7
:10AFCA002020204779726F4769657220202020204F
:10AFDA0020202048696768742056616C75652020B6
:10AFEA002020204163635A20202020202020202076
:10AFFA00202020476173202020202020202020208C
:10B00A00202020436F6D706173732056616C7565E3
:10B01A00202020566F6C7461676520202020202034
:10B02A00202020456D7066616E6720202020202038
:10B03A002020204779726F204B6F6D7061737320E7
:10B04A002020204D6F746F722046726F6E7420201C
:10B05A002020204D6F746F7220526561722020206B
:10B06A002020204D6F746F72204C6566742020205A
:10B07A002020204D6F746F722052696768742020F7
:10B08A0020202020202020202020202020202020B6
:10B09A0020202020202020202020202020202020A6
:10B0AA002020202020202020202020202020202096
:10B0BA002020204D4B334D61672043616C537461EE
:10B0CA00746520536572766F20202020202020206E
:10B0DA002020202020202020202020202020202066
:10B0EA002020202020202020202020202020202056
:10B0FA002020202020202020202020202020202046
:10B10A002020202020202020202020202020202035
:10B11A002020202020202020202020202020202025
:10B12A002020202020202020202020202020202015
:10B13A002020204B616C6D616E5F4D6178447269AD
:10B14A00667420202020202020202020202020205B
:10B15A0020202020202020202020202020202020E5
:10B16A002020204750535F4E69636B202020202007
:10B17A002020204750535F526F6C6C2020202020E3
:10B18A00202020C8000164FF01FFFF01FC010173B8
:10B19A007373FF03007D0000C409C40964000B48EF
:10B1AA00616C6C6F2057656C740000000000000031
:10B1BA000000000000000000000000000000000085
:10B1CA000000000000000000000000000000000075
:10B1DA000000000000000000000000000000000065
:10B1EA000000000000000000000000000000000154
:10B1FA0002030405060708090A010B050000ECFF13
:10B20A006440415A46640A02969608403A10FB3056
:10B21A00380190D0030090D00300F4016400537009
:10B22A006F727400004E6F726D616C000042656748
:10B23A00696E6E65720000640A0B0D0B0C0E01013B
:02B24A00010001
:00000001FF
/tags/V0.72p/Hex-Files/Flight-Ctrl_MEGA644_V0_72p_Octo.hex
0,0 → 1,2889
:100000000C9493020C94AE020C94AE020C94AE02CB
:100010000C94AE020C94AE020C94AE020C94AE02A0
:100020000C94AE020C9453120C94AE020C94AE02DB
:100030000C9411230C94AE020C94AE020C94AE02FC
:100040000C94AE020C94AE020C94ED100C94AE0223
:100050000C9479060C94AE020C9440060C94AE02FB
:100060000C947A160C94AE020C94B7210C94AE0248
:100070000C94C2550C94AE020C94AE0226171917BC
:100080000D17F316D916B516C716F519291926191D
:10009000B5161319F918D918B918671815183217A1
:1000A000102223221722642274225A223F22DE21A8
:1000B000FC216B229222F8210022FC218E220B22AD
:1000C000F8210022FC218A226F22F821ED210A0D5D
:1000D000466C69676874436F6E74726F6C0A0D4882
:1000E000617264776172653A25642E25640A0D5346
:1000F0006F6674776172653A5625642E25642563B0
:1001000020000A0D3D3D3D3D3D3D3D3D3D3D3D3DDC
:100110003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D0F
:100120003D3D000A0D496E69742E20454550524FE1
:100130004D003A2047656E65726174696E672044B0
:10014000656661756C742D506172616D6574657260
:10015000207573696E67206F6C6420537469636BDC
:100160002053657474696E6773000A0D4143432020
:100170006E696368742061626765676C696368654E
:100180006E21000A0D42656E75747A6520506172A9
:10019000616D657465727361747A202564000A0D5F
:1001A0004162676C65696368204C7566746472753A
:1001B000636B73656E736F722E2E004F4B0A0D00CA
:1001C0000A0D537465756572756E673A200048654F
:1001D0006164696E67486F6C64004E657574726126
:1001E0006C000A0A0D002E005B25695D005B256925
:1001F0005D002B204D696B726F4B6F7074657220C0
:100200002B0048575625642E256420535725642E0D
:1002100025642563204F43544F0053657474696E01
:10022000673A202564200028632920486F6C6765A1
:1002300072204275737300486F6568653A2020200C
:10024000202025356900536F6C6C486F6568653AEE
:1002500020253569004C756674647275636B3A20AD
:10026000253569004F66662020202020203A202571
:100270003569004B65696E65200048F668656E72E9
:100280006567656C756E6700616B742E204C6167E5
:1002900065004E69636B3A202020202020253569B7
:1002A00000526F6C6C3A20202020202025356900F8
:1002B0004B6F6D706173733A202020253569004BB8
:1002C000313A25346920204B323A25346920004BDD
:1002D000333A25346920204B343A25346920004BC9
:1002E000353A25346920204B363A25346920004BB5
:1002F000373A25346920204B383A25346920004E9E
:10030000693A2534692020526F3A25346920004724
:10031000733A253469202047693A25346920005012
:10032000313A253469202050323A25346920005072
:10033000333A253469202050343A25346920004767
:1003400079726F202D2053656E736F72004E696352
:100350006B2025346920282533692E256929005210
:100360006F6C6C2025346920282533692E25692976
:1003700000476965722025346920282533692900E2
:100380004E69636B2025346920282533692E257832
:100390002900526F6C6C2025346920282533692E82
:1003A000257829004769657220253469202825337E
:1003B0006929004E69636B2025346920282533693B
:1003C00029282533692900526F6C6C202534692057
:1003D0002825336929282533692900476965722052
:1003E00025346920282533692928253369290041C6
:1003F0004343202D2053656E736F72004E69636B0B
:100400002025346920282533692900526F6C6C201F
:1004100025346920282533692900486F6368202521
:100420003469202825336929005370616E6E756E1A
:10043000673A202025356900456D70662E50656746
:10044000656C3A253569004B6F6D706173732020C0
:100450002020202020005269636874756E673A205E
:1004600020253569004D657373776572743A2020D5
:100470002535690053746172743A202020202025AC
:10048000356900506F7469313A2020253369005076
:100490006F7469323A202025336900506F746933D4
:1004A0003A202025336900506F7469343A202025A2
:1004B000336900536572766F202000536574706F46
:1004C000696E742020253369005374656C6C756EF9
:1004D000673A202533690052616E67653A253369B2
:1004E0002D2533690045787465726E436F6E7472A2
:1004F0006F6C2020004E693A2534692020526F3AF3
:10050000253469200047733A253469202047693A29
:10051000253469200048693A253469202043663A29
:1005200025346920000011241FBECFEFD0E1DEBFCB
:10053000CDBF13E0A0E0B1E0E2EAF1EB02C005902C
:100540000D92A23CB107D9F718E0A2ECB3E001C0CC
:100550001D92A43FB107E1F70C9451030C940000E5
:10056000282FFB018150853008F023E0842F992744
:10057000332721503040829FD001839FB00D929F3E
:10058000B00D1124AC59BF4F019724F00E94B85808
:100590000192FACF0E94DD540895863038F085E04C
:1005A000A2E0B0E0082E0E94C05808958823C1F749
:1005B0000895582F863048F155E0842F9927252F2C
:1005C000332721503040829FD001839FB00D929FEE
:1005D000B00D1124AC59BF4FFB01019724F00190DD
:1005E0000E94C058FACFA2E6B0E0042E0E94C05884
:1005F000A0E5B0E088E0FB01182E0E94CC58852FC2
:100600000E94CD020E94DD5408958823B1F608951A
:10061000CF93A2E0B0E00E94B858802DC82F81503F
:10062000853020F0C3E08C2F0E94CD028C2F9927BB
:10063000CF9108958091E007E82FFF27EE0FFF1F6D
:10064000E255F84F808191818D5E9F4F14F010929A
:100650000201808191818A5B9F4F24F48091020185
:10066000882319F02091A30615C081E08093020130
:100670002091A306280F2093A306253038F088EE9A
:1006800093E09093E9038093E80304C0822F0E94D3
:100690004926E8CF822F992790937107809370079E
:1006A0000895CFEFD0E1DEBFCDBF14B815B8C7EEC7
:1006B000D3E0E297D7FFFDCFC8EED3E0189BD4C2BA
:1006C000199BD0C22DE02093010181E887B93E9AA1
:1006D0008FEF88B98BE184B981E085B98EE38AB95F
:1006E000579A87E48BB9469A84B7877F84BF8091F5
:1006F00060008861809360001092600080ED97E058
:100700009093E9038093E8031092560410925504E5
:100710001092B3071092B207109258041092570427
:1007200010925A0410925904243108F496C288E8B1
:1007300094E0A0E0B0E080937A0390937B03A093D1
:100740007C03B0937D032A3009F485C2243109F477
:1007500082C2289A0E943C120E940C120E942E0B08
:100760000E94FC220E9464150E9480210E94725106
:10077000789480E790E09F938F9388E490E09F9334
:100780008F931F921F92809101016AE00E94485846
:10079000892F99279F938F93809101010E94485838
:1007A00099279F938F938EEC90E09F938F931F9246
:1007B0000E94580E8091C8002DB73EB7235F3F4F6F
:1007C0000FB6F8943EBF0FBE2DBF803209F43BC276
:1007D00082E091E09F938F931F920E94580E809128
:1007E00001010F900F900F908C3008F02AC2299AC7
:1007F00049E060EE77E083E00E94B00201E010E0A3
:10080000D8010E94B858802D8A3409F02EC1A4E086
:10081000B0E00E94B858802D853008F007C20E94D1
:1008200008034CE560EE77E00E94B0020E940803E6
:1008300099279F938F9383E891E09F938F931F92C3
:100840000E94580E8091E8070F900F900F900F9024
:100850000F9080FDC7C10E947531809101018A30DF
:1008600009F4BEC1843109F4BBC1289A80ED97E038
:100870009093E9038093E80385E58093A50680ECD7
:1008800091E09F938F931F920E94580E8091E807EA
:100890000F900F900F9082FFC6C18EEC91E09F9356
:1008A0008F931F920E94580E0F900F900F9082EE20
:1008B00091E09F938F931F920E94580E0E94C11A3D
:1008C00088E893E190939D0380939C0381E080935B
:1008D000A4060F900F900F908091EC03882309F4E9
:1008E00071C080910E03882309F46CC01092EC0350
:1008F0008091A306882309F47CC00E941A030E94F9
:100900001934209101012A3009F47CC0243109F402
:1009100079C0289A80910603882309F45BC081502E
:100920008093060380915B04882329F080915B0407
:10093000815080935B0480919C0390919D03892B4F
:1009400009F464C080919C0390919D03019790935A
:100950009D0380939C032A3009F456C0243109F486
:1009600053C0289A8091EC03882321F0809152048F
:10097000882311F40E94690B0E94D808CE010E94BE
:10098000D9118823E9F08091F907282F3327809126
:100990001C0390911D038217930744F4809109036F
:1009A00090910A038F5F9F4F09F452C00E94045434
:1009B00084E08093E70384E190E00E94D011EC0191
:1009C0000E94EC548091E703882309F085CF0E94B0
:1009D000485482CF8093AF0610923B0410923A04A1
:1009E0001092390410923804109237041092360491
:1009F00099CF0E94C7370E941934209101012A30F3
:100A000009F084CF289886CF2898ACCF85E090E075
:100A100090939D0380939C030E949A2180910903E7
:100A200090910A038F5F9F4F09F09CCF80915204F1
:100A3000882309F497CF80E197E29093E9038093AC
:100A4000E80380E890E090930A03809309038ACF3B
:100A500080E797E19093E9038093E80380E093E0D7
:100A600090930A0380930903A1CF0E94222483E27A
:100A700091E09F938F931F920E94580E61E0762E13
:100A80000F900F900F905FE4E52EF12CE00EF11E19
:100A900040E5C42ED12CC00ED11E31E5A32EB12CC1
:100AA000A00EB11E22E5822E912C800E911E95E59E
:100AB000492E512C400E511E86E5282E312C200E39
:100AC000311E32E0731609F4D5C083E0781609F4BC
:100AD000D4C093E0971508F4CDC080910101843112
:100AE00068F085E08093F807109210088BE18093FE
:100AF000F4078EE480930D0880930E08D7010E94BE
:100B0000B858802D8C3008F068C0D6010E94B858C3
:100B1000802D8C3008F061C0D5010E94B858802D1E
:100B20008C3008F05AC0D4010E94B858802D8C3007
:100B300008F053C0D7010E94B858802D8093E00779
:100B4000D6010E94B858802D8093E107D5010E94FC
:100B5000B858802D8093E207D4010E94B858802DA8
:100B60008093E307A4E5B0E00E94B858802D8093FD
:100B7000E407A5E5B0E00E94B858802D8093E50712
:100B8000D2010E94B858802D8093E607D1010E94BF
:100B9000B858802D8093E70721E0721651F482E364
:100BA00091E09F938F931F920E94580E0F900F9089
:100BB0000F904CE560EE77E0872D0E94D902739488
:100BC00095E0971508F07DCF83E00E94CD028AE47E
:100BD000D801082E0E94C0581ACE0E940924E9CFDD
:100BE000289844CE8EE991E09F938F931F920E94A4
:100BF000580E88EE93E00E94D011EC010E946A1515
:100C00000F900F900F90CE010E94D9118823D9F335
:100C10008BEB91E09F938F931F920E94580E0F9041
:100C20000F900F9018CE8AED91E039CE8AE691E0D0
:100C30009F938F931F920E94580E0F900F900F90CA
:100C4000EECD2998D5CD8091CA00863009F0C0CD6F
:100C50000E946555BDCD28987DCD8BE095E0A0E044
:100C6000B0E069CD2BE02FCD199B02C024E12BCD44
:100C70002AE029CD0E94D22430CF0E9484252DCF96
:100C80001F920F920FB60F9211248F939F93EF93A1
:100C9000FF93809108038823A9F48091D803909151
:100CA000D9030196FC01EB59FA4FE081ED3079F060
:100CB0008639910561F09093D9038093D803E0932E
:100CC000C6000EC01092D9031092D80309C010922A
:100CD000D9031092D80381E080930803E093C60003
:100CE000FF91EF919F918F910F900FBE0F901F90EA
:100CF00018951F920F920FB60F9211242F933F93C6
:100D00004F935F938F939F93AF93BF93EF93FF9313
:100D100090E08091C6008093D0035091DE03563955
:100D200010F09093DF038091D0038D3091F02091EB
:100D3000DF03822F99278130910509F46AC0823040
:100D400091050CF48CC0029709F47DC01092DF036A
:100D5000A6C02091DF03223061F79093DF03852F37
:100D600099278E54994FFC01329740812091DA03E4
:100D70003091DB03241B3109DC0111978C91281B76
:100D80003109C9019F709093DB038093DA0300243B
:100D9000880F991F001C880F991F001C892F902D08
:100DA000982F935C9093DC032F733070235C209317
:100DB000DD038081891709F46CC090E08091CD0338
:100DC0008F5F8093CD038091CF03882309F067C0A4
:100DD000992309F464C081E08093CF03580F5093A6
:100DE000CC035150E52FFF27EE54F94F8DE080835F
:100DF0008091B406823509F052C088E190E02CE081
:100E00000FB6F894A895809360000FBE2093600001
:100E100046C02F5F2093DF03E52FFF27EE54F94FE5
:100E20008091D00380835F5F5093DE032091D003D5
:100E30008091DA039091DB03820F911D9093DB0385
:100E40008093DA032CC0E52FFF27EE54F94F8091F1
:100E5000D0038083563938F31092DF03E7CF892B14
:100E600009F074CF8091D003833259F08091D00380
:100E70008093B20681E08093DE038091D0039927AE
:100E8000DDCF8091CF03882389F781E08093DF0352
:100E9000EDCF8C91821709F090CF91E094CFFF9124
:100EA000EF91BF91AF919F918F915F914F913F9142
:100EB0002F910F900FBE0F901F901895AC01A0E0DE
:100EC000B0E09D01A817B90748F4E5E6F5E0819187
:100ED000280F311D1196A417B507C8F33F70FD0107
:100EE000EB59FA4FC9010024880F991F001C880F85
:100EF000991F001C892F902D835C80831196FD0122
:100F0000EB59FA4F2F733070822F835C8083AA597C
:100F1000BA4F8DE08C931092080380916505809301
:100F2000C6000895BF92CF92DF92EF92FF920F9387
:100F30001F93CF93DF93CDB7DEB72C859D857E853C
:100F4000BB2483E2809365059F59909366052093A7
:100F5000670503E010E0772309F4ADC0CF84D8889B
:100F600043E1E42EF12CEC0EFD1EA989BA897150E3
:100F7000109709F4A0C0109709F43CC0F601EB0DDE
:100F8000F11DB3949081119789F47723A1F1F701B2
:100F900022E030E0E20EF31ED701C080D180E20EE5
:100FA000F31E0D90BC91A02DBB247150109719F128
:100FB000F601EB0DF11DB3944081119709F466C061
:100FC0001097D1F0F601EB0DF11DB39460811197EC
:100FD000A1F4772391F0F7013296D701CD90DC9000
:100FE00032E0E32EF12CEE0EFF1EA081B181BB2476
:100FF000715003C090E040E060E0F801EB59FA4F17
:10100000892F86958695835C80830F5F1F4FF8013B
:10101000EB59FA4F892F992783709070829592959A
:10102000907F9827807F982755279A01329522959F
:101030002F7023273F702327822B835C80830F5FD1
:101040001F4FF801EB59FA4F4F705070440F551F66
:10105000440F551F862F99270024880F991F001CC5
:10106000880F991F001C892F902D842B835C80830F
:101070000F5F1F4FF801EB59FA4F6F73635C60838A
:101080000F5F1F4F109709F076CF15C0772309F433
:10109000B3CFF701A2E0B0E0EA0EFB1ED701C0809B
:1010A000D18022E030E0E20EF31E0D90BC91A02D25
:1010B000BB24715085CFC8010E945E07DF91CF919C
:1010C0001F910F91FF90EF90DF90CF90BF90089508
:1010D000A3E07A2F4091CC03465009F45FC0E72F7C
:1010E000FF27EE54F94F80818D537F5FE72FFF2755
:1010F000EE54F94F20812D537F5FE72FFF27EE54E9
:10110000F94F30813D537F5FE72FFF27EE54F94FB2
:1011100060816D537F5F9927880F991F880F991FF2
:10112000522F52955F70582B822F99278F70907095
:1011300082959295907F9827807F9827232F2695D8
:101140002695282B832F99278370907000249695DD
:1011500087950794969587950794982F802D682BEF
:1011600041504F3FD9F0EA2FFF27EE54F94F5083FB
:10117000AF5F41504F3F91F0EA2FFF27EE54F94FF8
:101180002083AF5F41504F3F49F0EA2FFF27EE54D5
:10119000F94F6083AF5F442309F0A1CF85EB96E060
:1011A0009093CB038093CA03A350A093C9030895DF
:1011B000CF93DF93CDB7DEB722970FB6F894DEBF9B
:1011C0000FBECDBF8091CF03882309F42AC20E94AD
:1011D00068088091B306823609F471C08091B40624
:1011E00099278436910509F457C08536910584F511
:1011F0008136910509F4D0C0823691050CF475C092
:101200008236910509F451C183369105C1F480916C
:10121000C2039091C303892B09F0F2C1E091CA0384
:10122000F091CB039081992309F0E0C190818AE08D
:10123000989FC00111249093C3038093C20310921E
:10124000CF031092CB031092CA031092C903E9C1D5
:101250008C36910509F492C08D3691050CF066C06C
:101260008736910509F4FAC08836910541F78FEF6A
:1012700080930603E091CA03F091CB0380819091A3
:101280002304892B80932304882311F01092D10327
:1012900081E08093D503D3CFE091CA03F091CB03D3
:1012A00090818AE0989FC001112490930403809359
:1012B0000303892B21F281E08093D403C0CF809176
:1012C000B40699278137910509F475C082379105D5
:1012D000CCF58B34910509F46CC18037910509F088
:1012E0007DCF81E08093D20379CF8B34910509F0D3
:1012F000A6CFE091CA03F091CB03808191819093B6
:101300006E0480936D0420916B0430916C04821BF9
:10131000930B845E9D4F68E671E00E946858845B81
:10132000904090936A048093690489CF8437910533
:1013300009F498C08637910509F081CF81E0809348
:10134000D3037DCF8337910509F4BFC0843791055E
:1013500009F044CFE091CA03F091CB0380819181E1
:10136000A281B3818093C4039093C503A093C60365
:10137000B093C7038FEF8093060330CF8FEF809336
:101380000603E091CA03F091CB038081809324048B
:1013900081E08093D60353CFE091CA03F091CB0351
:1013A000E081E03208F453C08FE1809307038FEFB0
:1013B0008093060344CFE091CA03F091CB03808170
:1013C0008F3F09F422C18081882309F043C081E066
:1013D0008083E091CA03F091CB034CE560EE77E0A7
:1013E00080810E94B002809108038823E1F3E0919C
:1013F000CA03F091CB0380818A838AE489838CE5D8
:1014000090E09F938F9380EE97E09F938F9321E0DE
:1014100030E03F932F93CE01820F931F9F938F93C2
:101420003F932F93CE0102969F938F9383E08F93E8
:1014300081E08F9381E58F930E9492078DB79EB7CD
:101440000F960FB6F8949EBF0FBE8DBFC7CEE09328
:101450000703ADCF863008F285E0BACF81E08093F4
:10146000D703EDCEE091CA03F091CB038081918147
:10147000A281B3818093C4039093C503A093C60354
:10148000B093C703809108038823E1F31F928091F2
:1014900005038F9384E58F930E9492078FEF8093CB
:1014A00006030F900F900F90CACEA091CA03B0917F
:1014B000CB038BE0E5EAF6E00D9001928A95E1F727
:1014C0008091AE0680938A0772CF2091CA03309133
:1014D000CB03D9018C918150853020F4F9018181B1
:1014E0008A34E9F01A82809108038823E1F381E0CD
:1014F00090E09F938F93CE0102969F938F9381E00C
:101500008F938F9383E58F930E949207EDB7FEB779
:1015100037960FB6F894FEBF0FBEEDBF5FCE60EEFC
:1015200077E08CE52E5F3F4FDB01F901982F0190AA
:101530000D929A95E1F722503040482FD9018C91B5
:101540000E94D90280910D089927AA27BB27BC01C8
:10155000CD0124EC39E040E050E00E942958DC0144
:10156000CB018093960390939703A0939803B09335
:10157000990380910E089927AA27BB27BC01CD01AA
:101580000E942958DC01CB0180939203909393032E
:10159000A0939403B0939503E091CA03F091CB0319
:1015A00080810E94CD020E9408038A830E944926FE
:1015B0009ACFE091CA03F091CB03808191819093FF
:1015C0006E0480936D0420916B0430916C04821B37
:1015D000930B845E9D4F68E671E00E946858845BBF
:1015E000904090936A0480936904F8CD8AE0989FB4
:1015F000C00111240E94D01190936405809363056B
:10160000E091CA03F091CB0311CE0E940803E09150
:10161000CA03F091CB038083E091CA03F091CB031E
:10162000D2CE22960FB6F894DEBF0FBECDBFDF91AB
:10163000CF910895CF93C82F8A3029F08091C000B0
:1016400085FFFCCF04C08DE00E941A0BF7CFC0933A
:10165000C60080E090E0CF910895089588E18093DE
:10166000C1008091C00082608093C0008091C10061
:1016700080688093C1008091C10080648093C10024
:101680008AE28093C40080910303909104030E9436
:10169000D01190939206809391068CED90E00E9479
:1016A000D0119093B1068093B0061092930688E40F
:1016B000809394068FE0809397068AE08093950646
:1016C000109296061092CB031092CA031092C9038F
:1016D0000895EF92FF920F931F9380910803882340
:1016E00009F478C28091D503882309F082C08091E3
:1016F000D603882329F080910803882309F07FC14D
:101700008091D303882329F080910803882309F06E
:101710005BC18091D703882329F080910803882337
:1017200009F036C18091B0069091B1060E94D9119E
:10173000882329F080910803882309F0C8C080918C
:10174000030390910403892B09F084C18091D40391
:10175000882329F080910803882309F00FC2809123
:10176000C2039091C303892B09F07EC12091070326
:101770002F3F59F180E190E09F938F93822F99271B
:1017800082959295907F9827807F98278D5F9E4FB6
:101790009F938F9381E090E09F938F9387E093E0F6
:1017A0009F938F9382E08F9381E08F9381E48F9357
:1017B0000E9492078FEF809307038DB79EB70B9619
:1017C0000FB6F8949EBF0FBE8DBF80918A07882305
:1017D00029F080910803882309F05EC08091D2032C
:1017E000882309F4F7C180910803882309F4F2C122
:1017F00039C080910803882309F479CF0E94CA1A5E
:1018000084E190E09F938F939091D10384E1989F1E
:10181000C0011124815E9C4F9F938F9381E090E0E3
:101820009F938F9381ED93E09F938F9382E08F93AB
:1018300081E08F9388E48F930E9492078091D10377
:101840008F5F2DB73EB7255F3F4F0FB6F8943EBF71
:101850000FBE2DBF843008F4B8C11092D10310928E
:10186000D50345CF86E190E09F938F938EEA97E072
:101870009F938F9381E08F938F9380E58F930E9446
:1018800092071092D2038DB79EB707960FB6F894C1
:101890009EBF0FBE8DBF9EC181E090E09F938F934E
:1018A0008AE897E09F938F9381E08F938F9382E4F0
:1018B0008F930E94920710928A072DB73EB7295F37
:1018C0003F4F0FB6F8943EBF0FBE2DBF87CF80911C
:1018D000F4079927880F991F880F991F7C0100270B
:1018E000F7FC0095102F8091A7049091A804A09177
:1018F000A904B091AA04BC01CD01A80197010E94DE
:101900009D5830939E0620939D0680919F04909150
:10191000A004A091A104B091A204BC01CD01A80132
:1019200097010E949D583093A00620939F068091B6
:1019300043048093A106809142048093A20688E02C
:1019400090E09F938F938DE996E09F938F9381E032
:101950008F9383E08F9387E78F930E949207809104
:10196000A3062DB73EB7295F3F4F0FB6F8943EBF91
:101970000FBE2DBF853018F086E08093A30683E666
:1019800090E00E94D0119093B1068093B006D7CE1C
:101990008BE090E09F938F9385EA96E09F938F93DF
:1019A00081E08F93809105038F9387E48F930E944A
:1019B00092071092D7038DB79EB707960FB6F8948B
:1019C0009EBF0FBE8DBFAECE8AE090E09F938F93F7
:1019D00083E996E09F938F9381E08F938F9386E5C1
:1019E0008F930E9492071092D3032DB73EB7295FC1
:1019F0003F4F0FB6F8943EBF0FBE2DBF8ACE0E9458
:101A0000CA1A80E590E09F938F938FE193E09F93B4
:101A10008F9321E030E03F932F938EE193E09F93EB
:101A20008F933F932F9384E294E09F938F9383E06F
:101A30008F9381E08F938CE48F930E949207109292
:101A4000D6038DB79EB70F960FB6F8949EBF0FBE04
:101A50008DBF56CE80919106909192060E94D91129
:101A6000882309F077CE72CE80916305909164054A
:101A70000E94D911882309F479CE80910803882324
:101A800009F474CE8091F4079927880F991F880F65
:101A9000991F7C010027F7FC0095102F8091A70467
:101AA0009091A804A091A904B091AA04BC01CD0111
:101AB000A80197010E949D58309356052093550523
:101AC00080919F049091A004A091A104B091A204E0
:101AD000BC01CD01A80197010E949D583093580583
:101AE00020935705209187083091880840918908F4
:101AF00050918A08DA01C90103E0880F991FAA1FD3
:101B0000BB1F0A95D1F7820F931FA41FB51F820F29
:101B1000931FA41FB51F20917A0330917B0340913E
:101B20007C0350917D03BC01CD010E949D583093F0
:101B30005A05209359058EE090E09F938F9385E599
:101B400095E09F938F9381E08F938F9383E48F939E
:101B50000E9492078091C2039091C3030E94D0110A
:101B600090936405809363052DB73EB7295F3F4F7F
:101B70000FB6F8943EBF0FBE2DBFF8CD82E490E0C3
:101B80009F938F9388E497E09F938F9381E08F9347
:101B90008F9384E48F930E9492071092D4038DB7A1
:101BA0009EB707960FB6F8949EBF0FBE8DBF80916B
:101BB000030390910403009709F4D1CD0E94D01142
:101BC0009093920680939106CACD8093D103109290
:101BD000D5038DCD1F910F91FF90EF900895982F11
:101BE00080918B07813031F0892F0E941A0B282FAA
:101BF00033270CC080912504E82FFF27E15EFC4FBE
:101C000090838F5F8093250421E030E0C90108951F
:101C10000F931F93CF93DF938C01EB01672B71F030
:101C2000F80181918F010E94EF0D219739F0F801A1
:101C300081918F010E94EF0D219791F7DF91CF9154
:101C40001F910F9108950F931F93CF93DF938C01F2
:101C5000EB01672B81F0F8010F5F1F4F84910E9409
:101C6000EF0D219741F0F8010F5F1F4F84910E9403
:101C7000EF0D219781F7DF91CF911F910F9108957B
:101C8000CF93C82F181634F480E20E94EF0DC15094
:101C90001C16D4F3CF910895CF93C82F181634F49F
:101CA00080E30E94EF0DC1501C16D4F3CF9108952C
:101CB0002F923F924F925F926F927F928F929F925C
:101CC000AF92BF92CF92DF92EF92FF920F931F934A
:101CD000CF93DF93CDB7DEB7E0970FB6F894DEBFB2
:101CE0000FBECDBF26968FAD26972896EEADFFADE1
:101CF000289788249924540180938B0748E4C42EA4
:101D0000D12CCC0EDD1E7F01C701F70114911123E8
:101D100031F0153221F00894E11CF11CF6CFB70127
:101D2000681B790B09F095C0112309F43DC2089492
:101D3000E11CF11C1FA63FA4232C0FEF39A6F701CD
:101D40000894E11CF11C14911537C9F1812F8062B0
:101D50008837A9F1103209F440C0133209F48DC05C
:101D60001A3209F479C01D3209F476C01B32C9F168
:101D70001E32C9F1103309F48AC0812F8153893092
:101D800008F07EC060E070E0CB01880F991F880FDB
:101D9000991F880F991F860F971F680F791F610F72
:101DA000711D60537040F7010894E11CF11C1491FF
:101DB000812F80538A3040F3262E153739F630FEB6
:101DC0003DC0F60184E090E0C80ED91E808091806D
:101DD000A280B380103209F0C0CF89A5882309F012
:101DE000AECF19A7ACCFF7010894E11CF11C1491F8
:101DF0001A3209F451C060E070E014C0CB01880FC2
:101E0000991F880F991F880F991F860F971F680FBA
:101E1000791F610F711D60537040F7010894E11C38
:101E2000F11C1491812F80538A3040F3EFEF6F3F04
:101E30007E0714F46FEF7FEF062F86CFF60182E066
:101E400090E0C80ED91E808191814C01AA24BB2448
:101E500081CF0E94230E68CF1A3251F4F60182E03E
:101E600090E0C80ED91E208022200CF068CF21946B
:101E700090E1392AEFED3E2262CF98E0392A5FCF18
:101E80001836C9F01C36D1F481E0382A58CF34FC1A
:101E900056CFF0E23F2A53CFF60182E090E0C80E21
:101EA000D91E608171819FEF6F3F790714F46FEF46
:101EB0007FEF062F44CF24E0322A41CF133609F4B6
:101EC0004DC1143409F41FC1143609F41CC119366C
:101ED00009F419C11F3409F40FC11F3609F40CC1EC
:101EE000103709F4F9C0133709F4B2C0153509F4F5
:101EF000ECC0153709F4E9C0183509F444C01837A7
:101F000009F441C0112309F44FC1CE0101969DA7E8
:101F10008CA7198381E0482E19A6632C7724042D01
:101F20005FA4541857FC2DC029A5222331F10F5F5F
:101F3000050DC30180739070892B09F42FC12223F2
:101F400009F027C166FC1BC1C301807390708097A4
:101F500009F410C1852D0E944C0E842D992787FD10
:101F60009095BC018CA59DA50E94080E64FECCCE68
:101F7000822D801B0E94400EC7CE66FED9CF0E5F19
:101F8000D7CF5524D1CFE0E1EEA733FE07C08114AF
:101F90009104A104B10411F0F0E43F2A19A60FA79F
:101FA00007FD02C02FED3222CE0189969DA78CA796
:101FB00081149104A104B10419F49FA5992361F13E
:101FC000EEA54E2E55246624772418AA8414950471
:101FD000A604B70410F0F1E0F8ABC501B401A30109
:101FE00092010E947B58DC01CB01082F8A30F0F46B
:101FF000005DECA5FDA50293FDA7ECA7C501B4010A
:10200000A30192010E947B5849015A01F8A9FF23BC
:10201000E1F62EA5283079F0632C7724CE010196C5
:10202000482EFCA54F1A28E2420E79CF095A1835DE
:1020300001F70F7DDECF632C772463FEEFCF0033F3
:1020400069F380E3ECA5FDA58293FDA7ECA7E6CF9D
:10205000F60182E090E0C80ED91E0190F081E02DDB
:10206000FDA7ECA7EF2B81F4FE013196FDA7ECA7AD
:1020700088E289838EE6818385E78B838CE68C8377
:102080008D8389E28E831F8207FD15C0802F9927DB
:1020900087FD9095AC0160E070E08CA59DA50E9445
:1020A0004257009731F0482EFCA54F1A04150CF04A
:1020B00033CF402E31CFECA5FDA501900020E9F7EC
:1020C00031974E2E2CA5421A27CF153511F481E0F9
:1020D000382A9AE09EA762CFF60182E090E0C80E0F
:1020E000D91E808191814C01AA24BB2490E19EA736
:1020F000E0E43E2A18E752CF1F3411F4E1E03E2A13
:10210000F8E0FEA74BCF143411F491E0392A30FEE9
:1021100018C0F60184E090E0C80ED91E808091803E
:10212000A280B380B7FE0AC0B094A094909480942B
:10213000811C911CA11CB11C8DE289A79AE09EA76D
:102140002ECFF60182E090E0C80ED91E80819181E9
:102150004C01AA2497FCA094BA2CE4CFFE0131963E
:10216000FDA7ECA7F60182E090E0C80ED91E8081A1
:102170008983D0CE822D801B0E944C0EEBCE80E353
:102180008AA71BA762E070E0CE018A960E94080E23
:10219000DBCE61E070E0CE018996F8CF822D801B06
:1021A0000E94400E29A5CBCEE0960FB6F894DEBF74
:1021B0000FBECDBFDF91CF911F910F91FF90EF9098
:1021C000DF90CF90BF90AF909F908F907F906F9057
:1021D0005F904F903F902F9008951F920F920FB6EF
:1021E0000F9211242F933F935F936F937F938F935D
:1021F0009F93AF93BF93EF93FF938091E70388235F
:1022000029F08091E70381508093E7038091EF03E9
:1022100081508F3F09F493C08093EF038091E803CE
:102220009091E903029700F18091E8039091E9030E
:1022300001979093E9038093E8038091E8039091DC
:10224000E9032091090330910A0382239323892B08
:1022500089F0809101018A3009F48BC0479A8091FE
:10226000E80783FF8DC010C08FEF9FEF90930A03A4
:1022700080930903809101018A3009F478C047985E
:102280008091E80783FF7CC086B19927FC01E0714B
:10229000F07084FF0AC08091EA039091EB030196ED
:1022A0009093EB038093EA036BC08091EA039091D3
:1022B000EB03892B49F18091EA039091EB038A5655
:1022C000914010F58091EA039091EB0369E270E090
:1022D0000E9454588091EA039091EB03860F971F58
:1022E0009093EB038093EA038091EA039091EB03D0
:1022F0000B9708F440C08091EA039091EB030A9792
:1023000090936E0480936D0480916D0490916E049F
:1023100020916B0430916C04821B930B845E9D4F63
:1023200068E671E00E946858845B904090936A046C
:10233000809369041092EB031092EA0321C089E0B4
:102340008093EF0380910B038F5F817080930B0369
:10235000882319F481E08093EC038091ED03909140
:10236000EE0301969093EE038093ED0357CF5A98B6
:1023700087CF5A9A85CFF0936E04E0936D04C4CF53
:10238000FF91EF91BF91AF919F918F917F916F914D
:102390005F913F912F910F900FBE0F901F90189556
:1023A0002091ED033091EE03280F391FC9010196EA
:1023B00008952091ED033091EE03821B930B892F3A
:1023C00099278695807490700895CF93DF930E942B
:1023D000D011EC01CE010E94D9118823D9F3DF91ED
:1023E000CF9108951F93CF93DF930E94D011EC01FA
:1023F0001FEC08C080910E03882321F090930E03F8
:1024000010937A00CE010E94D911982F882391F35E
:10241000DF91CF911F9108959FB7F894579A5F98D5
:102420003E9A469A8091B0008F708093B000809160
:10243000B00083608093B0008091B1008B73809373
:10244000B1008091B1008B608093B1001092B20016
:102450008FEF8093B3008091B00080688093B000CC
:10246000809170008A7F80937000809170008260FC
:10247000809370009FBF08958AE090E00E94D01181
:102480009093F7038093F60382E085BD83EA84BDD1
:1024900017BC88E788BD86E086BD80916E008160AC
:1024A00080936E0008951F920F920FB60F92112421
:1024B0002F933F934F935F936F937F938F939F934C
:1024C000AF93BF93EF93FF93809101018431C0F4E8
:1024D0008091F003882309F446C02091F1033091E4
:1024E000F20341E02F37340708F49CC08FEF80934C
:1024F000B3002F5F30403093F2032093F103D3C237
:102500008091F003882349F78091B00086FFADC029
:102510008091B0008F7B8093B0008091F503882379
:1025200009F0EEC080910608282F33278DED96E044
:10253000289FA001299F500D389F500D1124CA01DA
:102540002091F3033091F403821B930B9093F203D9
:102550008093F1031092F4031092F303469A81E002
:102560008093F003BACF8091B00086FFA7C080911E
:10257000B0008F7B8093B00089EA93E09093F203E0
:102580008093F10380910C0390910D039C01220F25
:10259000331F280F391F809185039927880F991FB2
:1025A000880F991F280F391F37FD2AC2C901959539
:1025B00087959595879590930D0380930C03909341
:1025C000E3038093E20380912C0880FFD0C08091C8
:1025D0000308682F7727882799272091A70430912F
:1025E000A8044091A9045091AA0457FDF0C1E7E066
:1025F0005595479537952795EA95D1F70E94295823
:102600009B01AC0197FD06C2B6E0559547953795FD
:102610002795BA95D1F78091E2039091E303820F59
:10262000931FCFC02F3F310569F060F0A9014F5FC4
:1026300050404F37510588F480E88093B30020580C
:10264000304059CF8091F1038093B3001092F20390
:102650001092F1031092F00326C28FEF8093B30023
:102660005093F2034093F1031EC28091B000806446
:102670008093B0008CEB90E09093F2038093F10391
:102680008091F3039091F40384549F4F9093F4034B
:102690008093F3038091E603882329F080915B0403
:1026A000853B08F0EDC09091F5039F5F809106088F
:1026B000891708F0E2C01092F50351CF8091B00065
:1026C00080648093B00080910608282F33278DED19
:1026D00096E0289FA001299F500D389F500D11248E
:1026E000CA012091F3033091F403821B930B909362
:1026F000F2038093F1039C0181E08093F003F1CE1B
:1027000029EA33E0E82FFF27E130F10509F4BAC0E8
:10271000EE0FFF1FE255F84F80819181880F991FBE
:1027200087559C4F9093F2038093F1032091F1031E
:102730003091F20355E02D3D350708F454C18CED7E
:1027400095E09093F2038093F1039C012C5B304061
:102750003093F2032093F1038091F3039091F403FB
:10276000820F931F9093F4038093F303F8CE80912C
:102770000308682F7727882799272091A70430918D
:10278000A8044091A9045091AA0457FD1BC1A7E0D9
:102790005595479537952795AA95D1F70E942958C1
:1027A0009B01AC0197FD31C1F6E0559547953795F2
:1027B0002795FA95D1F78091E2039091E303821B6C
:1027C000930B9093E3038093E20380910408282FF6
:1027D0003327220F331F220F331F8091E203909182
:1027E000E303821793077CF080910508282F332795
:1027F000220F331F220F331F8091E2039091E303D6
:102800002817390724F43093E3032093E20320913F
:10281000E2033091E3038091F1039091F203280FDA
:10282000391F205032408091E2039091E30397FDDD
:10283000EAC095958795959587959093E303809346
:10284000E2038091E2039091E303909373078093F6
:10285000720745E02D3D340708F4BEC08CED95E0CD
:102860009093F2038093F1032091F1033091F203EE
:102870003093F4032093F3033FCF9093F5036FCE8F
:10288000469811CF3093F2032093F10380910C030B
:1028900090910D039C01220F331F280F391F809147
:1028A00085039927880F991F880F991F280F391FB3
:1028B00037FDE2C0C90195958795959587959093C9
:1028C0000D0380930C039093E3038093E2038091C4
:1028D0002C0880FFA4C080910308682F77278827E1
:1028E00099272091A7043091A8044091A904509100
:1028F000AA0457FDC4C0A7E055954795379527957D
:10290000AA95D1F70E9429589B01AC0197FDBCC044
:10291000F6E05595479537952795FA95D1F780912B
:10292000E2039091E303820F931F9093E30380935C
:10293000E20380910408282F3327220F331F220F30
:10294000331F8091E2039091E303821793077CF099
:1029500080910508282F3327220F331F220F331FA2
:102960008091E2039091E3032817390724F4309310
:10297000E3032093E2038091E2039091E30320912B
:10298000F1033091F203820F931F80509240909395
:10299000F2038093F1038091E2039091E30397FDAA
:1029A00069C095958795959587959093E303809356
:1029B000E2038091E2039091E30390937307809385
:1029C0007207B4CE21583F4F4F4F5F4FE0CE215892
:1029D0003F4F4F4F5F4F0BCE51E02737350758F42D
:1029E00087E791E03DCF81E02737380708F0AECE8A
:1029F00087E791E0A6CE3093F2032093F10334CF22
:102A00002D5F3F4FD3CD039614CF215C3F4F4F4FE7
:102A10005F4FCACE215C3F4F4F4F5F4FF5CD809146
:102A20000308682F7727882799272091A7043091DA
:102A3000A8044091A9045091AA0457FD2FC0E7E0D3
:102A40005595479537952795EA95D1F70E942958CE
:102A50009B01AC0197FD1DC066E0559547953795E4
:102A600027956A95D1F78091E2039091E303821B49
:102A7000930B5BCF039695CF2D5F3F4F1BCF215814
:102A80003F4F4F4F5F4F37CF215C3F4F4F4F5F4F0F
:102A90003FCF215C3F4F4F4F5F4FDECF21583F4F1D
:102AA0004F4F5F4FCCCFFF91EF91BF91AF919F916F
:102AB0008F917F916F915F914F913F912F910F90E7
:102AC0000FBE0F901F90189510927C008FEC809392
:102AD0007A000895EF92FF920F931F93CF93DF93A5
:102AE00003E010E0D8010E94B858802DC82FDD27E0
:102AF000C531D10508F02A97C7BD1092FF0384E6BF
:102B000090E00E94F211809112039091130382557C
:102B1000934010F4C0E0D0E0CA3FD105E0F486EE67
:102B2000E82E81E0F82EC7BD82E390E00E94F2110A
:102B3000FF92EF921F920E94580E80911203909183
:102B400013030F900F900F908255934020F0219621
:102B5000CA3FD10540F3D8010C2E0E94C058C09343
:102B600099078CE291E00E94F211DF91CF911F91C1
:102B70000F91FF90EF900895FF920F931F93CF93C3
:102B800010E01093FA031093F9031093F803CCE8C4
:102B900001E095EFF92E133009F499C010E080910F
:102BA0000B0490910C048C5F93400CF07FC08091DB
:102BB00011038150809311038091090490910A04BC
:102BC0008C5F93400CF067C080911003815080931C
:102BD000100380910704909108048C5F9340D4F512
:102BE00080910F03815080930F0388E080932A0423
:102BF0000E948621809111038A3008F044C000931E
:102C0000FA038AE080931103809110038A30A0F5C3
:102C10000093F9038AE08093100380910F038A30B8
:102C200020F50093F8038AE080930F0380912A0433
:102C30008823E1F7809394078FEC80937A0080914A
:102C400094078823E1F3CA3008F446C0C15009F064
:102C5000A2CF47C080910704909108048750944008
:102C600084F180910F038F5FBECF863FF8F200930F
:102C7000F803F0920F03DACF863F78F20093F9035E
:102C8000F0921003CACF863F08F4BECF0093FA0338
:102C9000F0921103B9CF8091090490910A048750F2
:102CA00094408CF0809110038F5F91CF80910B0442
:102CB00090910C048750944044F0809111038F5FF1
:102CC00079CF1F5F92CF1F5F84CF11E075CFCB30DC
:102CD00008F464CFC9E062CF8AE090E00E94F2116C
:102CE000B5CF86E490E00E94F211CF911F910F9131
:102CF000FF9008951F920F920FB60F921124EF923A
:102D0000FF920F931F932F933F934F935F936F9374
:102D10007F938F939F93AF93BF93CF93DF93EF9363
:102D2000FF9320911404822F9927AA27BB272F5F96
:102D3000FC01429740F4E25CFF4FEE0FFF1F05904D
:102D4000F491E02D09941092140482E0809313040E
:102D50008091130480937C0080911404882309F4EB
:102D6000F9C38FEC80937A00F5C32093140480910B
:102D70007800909179002091190430911A04820F03
:102D8000931F90931A048093190481E0DFCF20935E
:102D9000140480917800909179002091170430916B
:102DA0001804820F931F909318048093170484E0F3
:102DB000CDCF2093140480917800909179002091D8
:102DC000B5043091B604821B930B909398078093BF
:102DD000970780919707909198079093220480938A
:102DE000210482E0B3CF209314048091B304909126
:102DF000B4042091780030917900821B930B90935A
:102E00008D0780938C0780918C0790918D0790930C
:102E1000200480931F0487E099CF209314048091AD
:102E2000780090917900909316048093150486E0C1
:102E30008DCF209314042091780030917900309345
:102E40001804209317041092130482CF20931404C3
:102E5000209178003091790030931A04209319045E
:102E600081E074CF1092140481E080930E0380916E
:102E7000FB039091FC0301969093FC038093FB036A
:102E8000809178009091790020919C0730919D0766
:102E9000820F931F90939D0780939C0780919407C6
:102EA0008F5F8093940780919407853008F44DCF0D
:102EB00080919C0790919D0797FD36C395958795C6
:102EC00090939D0780939C07809178009091790062
:102ED0009093130380931203109294078091FD0343
:102EE0009091FE03BC01660F771F62957295707F0B
:102EF0007627607F7627681B790B80918F03482F98
:102F000055278091FF03282F332727FD30958FEF1A
:102F100090E0289F8001299F100D389F100D1124EB
:102F20008091900790919107800F911F20919C07AD
:102F300030919D07821B930B2091500430915104D6
:102F4000821B930B489F9001499F300D589F300D75
:102F50001124620F731F77FDE4C27595679575950F
:102F60006795759567957595679575956795709350
:102F7000FE036093FD0380919C0790919D07EC01F7
:102F8000EE27D7FDE095FE2F209114033091150315
:102F90004091160350911703DA01C90163E0880FCD
:102FA000991FAA1FBB1F6A95D1F7821B930BA40B15
:102FB000B50BC80FD91FEA1FFB1FCE01DF01049616
:102FC000A11DB11DB7FDA7C233E0B595A795979593
:102FD00087953A95D1F78093140390931503A093A6
:102FE0001603B09317038091900790919107800F7B
:102FF000911F2091140330911503409116035091B5
:103000001703821B930B909351048093500480917B
:103010009C0790919D0797FD7CC29595879590930D
:103020009D0780939C0782E091CE20931404209109
:103030007800309179008091170490911804280F3E
:10304000391F809101018A3009F44DC2220F331FCC
:10305000220F331F3093180420931704C90137FD42
:1030600051C2959587959595879595958795909358
:103070000A048093090480911D0490911E04820F1C
:10308000931F97FD44C29595879590931E04809356
:103090001D042091BD043091BE04821B930B9093BC
:1030A00019038093180320910F043091100480912C
:1030B000180390911903280F391F37FD25C2359544
:1030C00027953093100420930F0483E03FCE209384
:1030D0001404209178003091790080911904909126
:1030E0001A04280F391F809101018A3009F4F8C1B0
:1030F000220F331F220F331F30931A042093190419
:10310000C90137FDFDC1959587959595879595954D
:10311000879590930C0480930B0480911B049091ED
:103120001C04820F931F97FDE9C195958795909395
:103130001C0480931B042091BF043091C004821BA7
:10314000930B90931B0380931A03209111043091E9
:10315000120480911A0390911B03280F391F37FD29
:10316000CAC135952795309312042093110481E04C
:10317000EDCD2093140480917800909179002091F6
:10318000B5043091B604821B930B909398078093FB
:10319000970780919707909198072091210430918B
:1031A0002204820F931F909304048093030482E00F
:1031B000CDCD209314048091B3049091B404209158
:1031C000780030917900821B930B90938D07809348
:1031D0008C0780918C0790918D0720911F0430916E
:1031E0002004820F931F909306048093050487E0C8
:1031F000ADCD20931404809101018A3009F462C19D
:10320000843109F493C180917800909179002091E4
:10321000150430911604820F931F90930804809335
:10322000070486E093CD2093140480917800909158
:1032300079002091170430911804820F931F909306
:103240001804809317041092130482CD2093140461
:1032500017CE209314048091780090917900AA27CA
:1032600097FDA095BA2FBC01CD010E94AF577B01FD
:103270008C018091AD049091AE04A091AF04B09107
:10328000B0049C01AD01C801B7010E944F57DC0199
:10329000CB01BC01CD010E949257DC01CB01909380
:1032A000020480930104809101049091020402972A
:1032B0000CF4BAC08091AD049091AE04A091AF041B
:1032C000B091B00420E030E84BE354E4BC01CD0100
:1032D0000E94B9578823DCF58091AD049091AE042B
:1032E000A091AF04B091B0042AE037ED43EA5CE36B
:1032F000BC01CD010E945057DC01CB018093AD048D
:103300009093AE04A093AF04B093B00480913004C6
:1033100090913104845F9140D0F48091AD049091FC
:10332000AE04A091AF04B091B0042DEC3CEC4CEC99
:103330005DE3BC01CD010E945057DC01CB018093BD
:10334000AD049093AE04A093AF04B093B00481E0B9
:1033500080930004809178009091790090938F077A
:1033600080938E078091010490910204AA2797FD13
:10337000A095BA2F20916F04309170044091710490
:1033800050917204820F931FA41FB51F80936F0486
:1033900090937004A0937104B093720420916F0411
:1033A00030917004409171045091720457FD9EC099
:1033B0007AE055954795379527957A95D1F780917D
:1033C0006F0490917004A0917104B0917204821BFB
:1033D000930BA40BB50B80936F0490937004A09390
:1033E0007104B093720483E0B1CC209314048091F3
:1033F0001C0390911D039C01220F331F280F391FBE
:10340000809178009091790063E070E00E945458B8
:10341000260F371F369527953695279530931D0330
:1034200020931C0385E092CC8091010490910204CA
:103430008F5F9F4F0CF08BCF8091AD049091AE04C5
:10344000A091AF04B091B00420E030E849E054E42A
:10345000BC01CD010E94BC5718160CF078CF8091AA
:10346000AD049091AE04A091AF04B091B0042AE0F5
:1034700037ED43EA5CE3BC01CD010E944F57DC010C
:10348000CB018093AD049093AE04A093AF04B093AE
:10349000B0048091300490913104845F914008F031
:1034A00056CF8091AD049091AE04A091AF04B0913D
:1034B000B0042DEC3CEC4CEC5DE3BC01CD010E9472
:1034C0004F573BCF8091780090917900209115045F
:1034D00030911604820F931F0196969587959DCE85
:1034E000220F331F09CE220F331FB4CD21503C4F82
:1034F0004F4F5F4F5DCF2F5F3F4F33CE019615CEBD
:10350000079601CE0796ADCD2F5F3F4FD8CD0196E0
:10351000BACD019682CDCE01DF010B96A11DB11D62
:1035200053CD615E7F4F19CD0196C8CC8091780054
:10353000909179002091150430911604820F931F09
:103540002FEF37E0281B390B309308042093070432
:1035500086E0FCCBFF91EF91DF91CF91BF91AF91CE
:103560009F918F917F916F915F914F913F912F919B
:103570001F910F91FF90EF900F900FBE0F901F9033
:10358000189590E2EFE1F3E08FE49193815087FF8B
:10359000FCCF08951F93CF93DF9380912404209153
:1035A0001E03281710F4209324049091230490FF05
:1035B00008C080912404882309F4D8C081508093E6
:1035C000240491FF08C080912404821709F44DC19E
:1035D0008F5F80932404892F992780FF02C081FD8B
:1035E000C2C00E94C11A909124049A30A0F581E1D2
:1035F00080932504892F99279F938F9388EE91E0DC
:103600009F938F9381E08F930E94580E0F900F909D
:103610000F900F900F9080912404C82FDD27C530A4
:10362000D10509F425C1C630D105FCF4C230D1055D
:1036300009F424C2C330D1050CF49BC0C330D105BA
:1036400009F40EC5249709F478C5815080931E03B0
:10365000109224044FC680E180932504892F992776
:103660009F938F938DEE91E0CBCFC830D10509F4B5
:10367000B8C1C930D1050CF4D0C0CA30D10509F4A5
:10368000A6C4CA30D1050CF468C32B97F1F610928A
:10369000250485EE94E09F938F9311E01F930E9481
:1036A000580E84E1809325040F900F900F90809125
:1036B000A906992787FD90959F938F938091A806DF
:1036C000992787FD90959F938F9385EF94E09F9323
:1036D0008F931F930E94580E88E2809325046DB744
:1036E0007EB7695F7F4F0FB6F8947EBF0FBE6DBF88
:1036F0008091AA06992787FD90959F938F9380913B
:10370000AB0699279F938F9385E095E09F938F93C6
:103710001F930E94580E8CE3809325048DB79EB7AB
:1037200007960FB6F8949EBF0FBE8DBF8091AF066F
:1037300099279F938F938091AC06992787FD909549
:103740009F938F9385E195E09F938F931F930E94A2
:10375000580E6DB77EB7695F7F4F0FB6F8947EBF86
:103760000FBE6DBFC7C5109224043BCF2093240425
:1037700028CF209709F4EDC1219709F066CF8091F9
:10378000E80780FF77C5109225048091500490913E
:1037900051049F938F9387E392E09F938F9311E05F
:1037A0001F930E94580E84E1809325040F900F9080
:1037B0000F900F900F9080914E0490914F049F9323
:1037C0008F9386E492E09F938F931F930E94580EED
:1037D00088E2809325040F900F900F900F900F9028
:1037E00080911203909113039F938F9385E592E04C
:1037F0009F938F931F930E94580E8CE38093250410
:103800000F900F900F900F900F908091990799272C
:103810009F938F9384E692E026C1C630D10509F4C8
:1038200070C3279709F011CF84E18093250480911C
:103830001C0390911D039F938F9389E294E09F93C3
:103840008F9311E01F930E94580E88E28093250405
:103850000F900F900F900F900F9080915B0499271D
:103860009F938F9388E394E0FEC010922404B3CE1C
:10387000109225048FE393E09F938F93C1E0CF9341
:103880000E94580E809101010F900F900F908A3086
:1038900009F4AEC28B3009F4B8C1843109F4B5C162
:1038A0008D3009F027C584E18093250480911103B0
:1038B00099279F938F934091BF045091C004CA01F0
:1038C00057FD16C5959587959595879595958795F7
:1038D000959587959F938F939A0157FD06C53595CA
:1038E0002795359527953595279580910B049091CF
:1038F0000C04821B930B9F938F9383EB93E09F9316
:103900008F93CF930E94580E88E2809325048DB741
:103910009EB709960FB6F8949EBF0FBE8DBF8091DB
:10392000100399279F938F934091BD045091BE043B
:10393000CA0157FDD8C49595879595958795959516
:103940008795959587959F938F939A0157FDC8C446
:1039500035952795359527953595279580910904B7
:1039600090910A04821B930B9F938F9387EC93E0B3
:103970009F938F93CF930E94580E8CE380932504DE
:103980006DB77EB7675F7F4F0FB6F8947EBF0FBEEF
:103990006DBF80910F0399279F938F932091BB0454
:1039A0003091BC04C90137FD99C4959587959F93C3
:1039B0008F938091070490910804281B390B3F9343
:1039C0002F938BED93E09F938F93CF930E94580E8C
:1039D0008DB79EB709960FB6F8949EBF0FBE8DBFE8
:1039E00089C41092250487E494E09F938F9311E09B
:1039F0001F930E94580E84E1809325040F900F902E
:103A00000F908091690490916A049F938F9386E54B
:103A100094E09F938F931F930E94580E88E28093A7
:103A200025040F900F900F900F900F9080916D04D0
:103A300090916E049F938F9385E694E09F938F936C
:103A40001F930E94580E8CE3809325040F900F90D3
:103A50000F900F900F9080916B0490916C049F9346
:103A60008F9384E794E09F938F931F930E94580E47
:103A70000F900F900F900F900F903CC41092250460
:103A800088E892E09F938F93C1E0CF930E94580EF5
:103A900084E1809325040F900F900F908091A704EC
:103AA0009091A804A091A904B091AA04B7FDFBC30A
:103AB0003AE0B595A795979587953A95D1F7BF9335
:103AC000AF939F938F9382E992E09F938F93CF93CD
:103AD0000E94580E88E2809325048DB79EB7079602
:103AE0000FB6F8949EBF0FBE8DBF80919F0490913A
:103AF000A004A091A104B091A204B7FDCFC32AE015
:103B0000B595A795979587952A95D1F7BF93AF93CC
:103B10009F938F9381EA92E09F938F93CF930E941C
:103B2000580E8CE3809325046DB77EB7695F7F4F95
:103B30000FB6F8947EBF0FBE6DBF80916D0490915B
:103B40006E049F938F9380EB92E09F938F93CF931C
:103B50008DCF1092250482EF91E09F938F9311E017
:103B60001F930E94580E84E1809325040F900F90BC
:103B70000F9080E790E09F938F9388E490E09F936D
:103B80008F93DF93CF93809101016AE00E944858A0
:103B9000892F99279F938F93809101010E94485804
:103BA00099279F938F9382E092E09F938F931F9327
:103BB0000E94580E88E2809325046DB77EB7635F3C
:103BC0007F4F0FB6F8947EBF0FBE6DBF0E940803F3
:103BD00099279F938F938AE192E09F938F931F93EE
:103BE0000E94580E8CE3809325040F900F900F9045
:103BF0000F900F9087E292E09F938F931F930E9404
:103C0000580E0F900F900F9075C384E18093250498
:103C10004091BF045091C004CA0157FD55C39C0197
:103C2000359527953595279535952795359527957C
:103C3000C90182959295907F9827807F9827BA0135
:103C4000681B790BCB0177FD3DC3959587959F93B5
:103C50008F933F932F939A0157FD31C33595279545
:103C6000359527953595279580910B0490910C04F7
:103C7000821B930B9F938F9380E893E09F938F9386
:103C8000CF930E94580E88E2809325048DB79EB78B
:103C900009960FB6F8949EBF0FBE8DBF4091BD042C
:103CA0005091BE04CA0157FD08C39C013595279564
:103CB000359527953595279535952795C901829591
:103CC0009295907F9827807F9827BA01681B790B7F
:103CD000CB0177FDF0C2959587959F938F933F9386
:103CE0002F939A0157FDE4C2359527953595279571
:103CF000359527958091090490910A04821B930BB6
:103D00009F938F9382E993E09F938F93CF930E9429
:103D1000580E8CE3809325048DB79EB709960FB695
:103D2000F8949EBF0FBE8DBF2091BB043091BC04A0
:103D3000C90137FDCBC2959587959F938F9380914D
:103D4000070490910804281B390B3F932F9384EAB2
:103D500093E09F938F93CF93FACC10922504809198
:103D60006204909163049F938F9383E894E09F9300
:103D70008F9311E01F930E94580E84E180932504D5
:103D80000F900F900F900F900F9080916004909182
:103D900061049F938F938FE894E09F938F931F9379
:103DA0000E94580E88E2809325040F900F900F9088
:103DB0000F900F9080915E0490915F049F938F937A
:103DC0008BE994E09F938F931F930E94580E8CE38E
:103DD000809325040F900F900F900F900F9080917B
:103DE0005C0490915D049F938F9387EA94E03BCEAF
:103DF00084E1809325044091BF045091C0049A014E
:103E000057FD69C2359527953595279535952795A1
:103E1000C901880F991F880F991F880F991F481B88
:103E2000590B5F934F933F932F9380910B04909185
:103E30000C04821B930B9F938F938DE493E09F93CD
:103E40008F93CF930E94580E88E2809325048DB7FC
:103E50009EB709960FB6F8949EBF0FBE8DBF4091D6
:103E6000BD045091BE049A0157FD32C23595279585
:103E70003595279535952795C901880F991F880F86
:103E8000991F880F991F481B590B5F934F933F93BE
:103E90002F938091090490910A04821B930B9F93A6
:103EA0008F938FE593E09F938F93CF930E94580E4B
:103EB0008CE3809325046DB77EB7675F7F4F0FB6A5
:103EC000F8947EBF0FBE6DBF8091BB049091BC047F
:103ED0009F938F938091BB049091BC042091070421
:103EE00030910804821B930B9F938F9381E793E09B
:103EF0009F938F93CF930E94580E8DB79EB70796CE
:103F00006ACD109225048FEE93E09F938F9311E07A
:103F10001F930E94580E84E1809325040F900F9008
:103F20000F908091B5049091B6049F938F938091E8
:103F30000304909104049F938F938CEF93E09F93DD
:103F40008F931F930E94580E88E2809325046DB7CB
:103F50007EB7695F7F4F0FB6F8947EBF0FBE6DBF0F
:103F60008091B3049091B4049F938F938091050442
:103F7000909106049F938F938BE094E09F938F938F
:103F80001F930E94580E8CE3809325048DB79EB733
:103F900007960FB6F8949EBF0FBE8DBF8091AD04FB
:103FA0009091AE04A091AF04B091B004BC01CD01DA
:103FB0000E949257DC01CB019F938F9380915D0803
:103FC00090915E089F938F938AE194E0BDCB10920D
:103FD000250483EB94E09F938F9311E01F930E943D
:103FE000580E84E1809325040F900F900F908091DC
:103FF000850399279F938F938BEB94E09F938F93E7
:104000001F930E94580E88E2809325040F900F9012
:104010000F900F900F908091E4039091E5039F9390
:104020008F9389EC94E09F938F931F930E94580E77
:104030008CE3809325040F900F900F900F900F90BA
:104040008091050899279F938F9380910408992761
:104050009F938F9387ED94E09F938F931F934BCF04
:10406000109225048091B2079091B3079F938F938C
:104070008091B0079091B1079F938F938FEB92E05F
:104080009F938F9311E01F930E94580E84E18093B9
:1040900025048DB79EB707960FB6F8949EBF0FBE46
:1040A0008DBF8091B6079091B7079F938F938091B2
:1040B000B4079091B5079F938F938FEC92E09F93F5
:1040C0008F931F930E94580E88E2809325046DB74A
:1040D0007EB7695F7F4F0FB6F8947EBF0FBE6DBF8E
:1040E0008091BA079091BB079F938F938091B807F7
:1040F0009091B9079F938F938FED92E09F938F9349
:104100001F930E94580E8CE3809325048DB79EB7B1
:1041100007960FB6F8949EBF0FBE8DBF8091BE0765
:104120009091BF079F938F938091BC079091BD079B
:104130009F938F938FEE92E007CB1092250480918E
:10414000E107E82FFF27EE0FFF1FE255F84F8081B0
:1041500091819F938F938091E007E82FFF27EE0FC7
:10416000FF1FE255F84F808191819F938F938FEFCE
:1041700092E09F938F9311E01F930E94580E84E169
:10418000809325048DB79EB707960FB6F8949EBF0F
:104190000FBE8DBF8091E307E82FFF27EE0FFF1FB3
:1041A000E255F84F808191819F938F938091E20730
:1041B000E82FFF27EE0FFF1FE255F84F8081918116
:1041C0009F938F938FE093E09F938F931F930E9411
:1041D000580E88E2809325046DB77EB7695F7F4FE4
:1041E0000FB6F8947EBF0FBE6DBF8091E507E82F34
:1041F000FF27EE0FFF1FE255F84F808191819F93BB
:104200008F938091E407E82FFF27EE0FFF1FE25501
:10421000F84F808191819F938F938FE193E09F93DB
:104220008F931F930E94580E8CE3809325048DB7C3
:104230009EB707960FB6F8949EBF0FBE8DBF8091B4
:10424000E707E82FFF27EE0FFF1FE255F84F8081A9
:1042500091819F938F938091E607E82FFF27EE0FC0
:10426000FF1FE255F84F808191819F938F938FE2DA
:1042700093E06ACA84E18093250483E792E09F93E8
:104280008F9311E01F930E94580E88E280932504BB
:104290000F900F900F908AE792E0AECC81509C4F28
:1042A000AF4FBF4F2CCC81509C4FAF4FBF4F00CC76
:1042B000295F3F4F19CD01960ECD0F96F6CC295FA1
:1042C0003F4FCCCC0196C1CC0F96A9CC019633CDF3
:1042D000295F3F4FCBCD295F3F4F94CD019665CBF2
:1042E000295F3F4F35CB0F9626CB295F3F4FF7CA4B
:1042F0000F96E8CA10922304DF91CF911F91089581
:104300001092B9008AE28093B800089585EA8093FC
:10431000BC0080E090E0089584E98093BC0008959B
:104320001092B9008093BB0085E88093BC0080E0C8
:1043300090E008950E948C2110922A048091BB0085
:104340001092290480E88093BC001092BD00109266
:10435000BA001092BB001092B9001092B8000E94EF
:1043600080210E94862180E00E94902108951F9262
:104370000F920FB60F9211242F933F934F935F9399
:104380006F937F938F939F93AF93BF93EF93FF931D
:1043900080912A04282F3327442755278F5F809345
:1043A0002A04F9012731310508F010C1E05BFF4F05
:1043B000EE0FFF1F0590F491E02D099480912804E1
:1043C000E82FFF27E256F84F9091BB0090878F5F50
:1043D000883008F4C7C0109228040E948C218AE01B
:1043E00090E090939D0380939C0310922A04EEC06A
:1043F00080E80E949021EAC088E90E949021E6C0EE
:104400000E948C218AE090E090939D0380939C030E
:104410000E948621DBC0809110030E949021D6C0AB
:1044200080912904880F8E5A0E949021CFC00E944B
:104430008C2180912904883008F097C010922A04BA
:104440000E948621C3C080912904282F33278F5FC3
:10445000809329042330310509F47FC024303105CD
:104460000CF08DC02130310509F4A2C02230310595
:104470000CF45DC0809174080E949021A7C09091B7
:104480002804E92FFF27E330F10509F466C0E43082
:10449000F1050CF050C0E130F10509F489C0E230BB
:1044A000F10544F7EF2B09F091C080918E080E942E
:1044B00090218CC090912804E92FFF27E256F84FF5
:1044C0008091BB008083DDCF80912804880F8D5AB6
:1044D0000E9490217BC080E10E94902177C0809152
:1044E0000F030E94902172C0809128049927833085
:1044F000910599F1843091050CF04EC08130910501
:1045000009F456C0823091050CF0B4CF892B09F024
:104510005DC0CBCF84E10E94902158C082E10E940F
:10452000902154C0809111030E9490214FC0232BF1
:1045300009F04CC0BACFE530F10509F43EC0E530D2
:10454000F105C4F0E630F105E9F1379709F03EC016
:10455000809151080E94902139C080915B080E948F
:10456000902134C08093280438CF109229040E94EF
:1045700086212CC080915C080E94902127C02530A4
:104580003105D9F025303105ACF326303105D1F0B5
:1045900027303105D9F4DCCF8530910571F08530B5
:1045A000910544F38630910569F0079779F4D0CFEF
:1045B000809161080E94902109C0809176080E9434
:1045C000902104C0809173080E9490218091BC00CA
:1045D00080688093BC00FF91EF91BF91AF919F9154
:1045E0008F917F916F915F914F913F912F910F909C
:1045F0000FBE0F901F90189583EC809381008091DF
:104600006F00806280936F001092BC041092BB0414
:104610001092BE041092BD041092C0041092BF0408
:1046200008951F920F920FB60F921124EF92FF92EE
:104630000F931F932F933F934F935F936F937F93AA
:104640008F939F93AF93BF93CF93DF93EF93FF939A
:10465000209186003091870080912B0490912C044A
:10466000281B390B809186009091870090932C0431
:1046700080932B04C9018D549440835F9A4178F450
:1046800080912D0490912E04049714F010927903D8
:10469000C1E0D0E0D0932E04C0932D04A3C0C091FC
:1046A0002D04D0912E04CA30D1050CF09BC0C90155
:1046B0008B5F9040845B9140A8F0FE013196F093AF
:1046C0002E04E0932D04E530F10509F46DC05D98EA
:1046D000E630F10509F466C05C98379709F460C0CC
:1046E0005B9880C0225D3140FE01EC0FFD1FE2555A
:1046F000F84F80819181F901E81BF90BCF01F7FD9B
:104700006DC0069754F480915B04883C08F05FC04C
:1047100080915B04865F80935B04FE01EC0FFD1FBC
:10472000E255F84F80819181AC01440F551F480F2D
:10473000591F420F531F57FD4EC07A01F594E7945D
:10474000F594E794C90101968E159F05BCF5089470
:10475000E108F10880915B04833C40F18E010C0F6D
:104760001D1FF801E255F84F808191819701281BA8
:10477000390BC90163E070E00E946858CB01880FD3
:10478000991F860F971F0C53184FF8019183808350
:10479000FE01EC0FFD1FE255F84FF182E0828DCF54
:1047A0005B9A20C05C9A99CF5D9A92CFFE01EC0F84
:1047B000FD1FEC53F84F11821082EACF2150304098
:1047C000E216F3063CF60894E11CF11CC3CF88EC1A
:1047D00080935B04A2CF4D5F5F4FAFCF90958195E3
:1047E0009F4F8FCFFF91EF91DF91CF91BF91AF910D
:1047F0009F918F917F916F915F914F913F912F91F9
:104800001F910F91FF90EF900F900FBE0F901F9090
:10481000189581E08093E00782E08093E10783E0D0
:104820008093E20784E08093E30785E08093E407C8
:1048300086E08093E50787E08093E60788E0809331
:10484000E70708951F9388E68093E8073EE13093D9
:10485000E9078BEF8093EB078AE08093EC073093B6
:10486000EA073093EE07E4E0E093ED075FE0509352
:10487000EF073093F0071CE01093F10778E0709396
:10488000F20786EE8093F3073093F40780E8809375
:10489000F50780E58093F60726E92093F70783E084
:1048A0008093F8078EE58093F90783E28093FA07F7
:1048B0003093FB071092FC0760E26093FD071092B3
:1048C000FE071092FF071092000810920108109244
:1048D000120810921308109214081092150844E65A
:1048E0004093020888E28093030810922C0892E318
:1048F000909304082093050885E080930608909320
:1049000007082AE5209308089093090810922B08BD
:1049100020930A0883E480930B0810920C0885E525
:1049200080930D0880930E0880E180930F086093B8
:104930001008409311088FE58093160883EF809349
:10494000180850931708509319088DEF80931A0890
:1049500040931B0820931C0820931D0820931E08D9
:104960008BE480931F088093200880932108109285
:10497000220886E08093230870932408209325085A
:10498000309326084093270840932808E09329088D
:10499000AEE9B3E0E1E3F8E00D9001921A95E1F79A
:1049A0001F9108951F9388E68093E8075EE1509376
:1049B000E9078BEF8093EB078AE08093EC07509335
:1049C000EA075093EE0793E09093ED071CE01093F5
:1049D000EF0780E18093F00776E07093F10768E0DD
:1049E0006093F20786EE8093F3075093F40780E814
:1049F0008093F50780E58093F60788E78093F707B3
:104A00009093F8078EE58093F90783E28093FA0785
:104A10005093FB071092FC0730E23093FD07109291
:104A2000FE071092FF0710920008109201081092E2
:104A3000120810921308109214081092150844E6F8
:104A40004093020888E28093030810922C0892E3B6
:104A50009093040886E98093050885E08093060812
:104A6000909307082AE5209308089093090810926C
:104A70002B0820930A0883E480930B088CE380932F
:104A80000C0885E580930D0880930E0830930F087D
:104A9000309310089BE4909311088FE580931608DB
:104AA00083EF8093180884E1809317088093190896
:104AB0008DEF80931A0840931B0820931C082093C5
:104AC0001D0820931E0890931F0890932008909330
:104AD00021081092220870932308609324082093E1
:104AE000250850932608409327084093280884E01F
:104AF00080932908A5EAB3E0E1E3F8E00D90019284
:104B00001A95E1F71F91089588EE8093E8073EE13A
:104B10003093E9078BEF8093EB078AE08093EC07F3
:104B20003093EA073093EE0793E09093ED0758E057
:104B30005093EF0720E12093F00766E06093F107C0
:104B40005093F20786EE8093F3073093F40780E8E2
:104B50008093F50744E64093F60788E78093F707CC
:104B60009093F8078EE58093F90783E28093FA0724
:104B700084E18093FB071092FC072093FD071092BD
:104B8000FE071092FF071092000810920108109281
:104B900012081092130810921408109215084093EE
:104BA000020888E28093030810922C0892E3909305
:104BB000040886E98093050885E0809306089093B1
:104BC00007082AE5209308089093090810922B08FB
:104BD00020930A0883E480930B0886E480930C08F2
:104BE00085E580930D0880930E0880E280930F087E
:104BF00080931008909311088FE58093160883EF37
:104C00008093180830931708309319088DEF80931C
:104C10001A0840931B0820931C0820931D0820931A
:104C20001E088BE480931F0880932008809321083E
:104C3000109222086093230850932408209325089B
:104C400030932608409327084093280884E08093F7
:104C500029088CE0ADEAB3E0E1E3F8E00D900192C1
:104C60008A95E1F708956817790744F4680F791F6A
:104C700077FD09C0CB01959587950895681B790B41
:104C8000861B970B08956F5F7F4FCB019595879596
:104C900008950F931F93CF93C82FC150CF3F81F03A
:104CA00004E610E080915204882351F41093E90344
:104CB0000093E8038AEF90E00E94E511C15090F75D
:104CC000CF911F910F9108952F923F924F925F9233
:104CD0006F927F928F929F92AF92BF92CF92DF920C
:104CE000EF92FF920F931F93CF93DF93CDB7DEB771
:104CF000E9970FB6F894DEBF0FBECDBF2091BB047D
:104D00003091BC048091070490910804281B390B52
:104D10003A872987309381082093800820911104D5
:104D20003091120437FDD4C73595279535952795D1
:104D3000359527953AA729A73C872B87790120919C
:104D40000F043091100437FDC0C735952795359570
:104D50002795359527953DA72CA73E872D87F0925F
:104D60006008E0925F0830935408209353088091C4
:104D70007B0890917C08AA2797FDA095BA2F7C010B
:104D80008D01EE0CFF1C001F111FE80EF91E0A1FFB
:104D90001B1F80910304909104049C01442737FD5C
:104DA0004095542FDA01C901880F991FAA1FBB1F14
:104DB000880F991FAA1FBB1F820F931FA41FB51F27
:104DC000820F931FA41FB51FE80EF91E0A1F1B1F99
:104DD00017FD9CC715950795F794E79415950795CA
:104DE000F794E794F0927C08E0927B0880918B081E
:104DF00090918C08AA2797FDA095BA2F7C018D0170
:104E0000EE0CFF1C001F111FE80EF91E0A1F1B1FCE
:104E100080910504909106049C01442737FD40953C
:104E2000542FDA01C901880F991FAA1FBB1F880FD1
:104E3000991FAA1FBB1F820F931FA41FB51F820FAC
:104E4000931FA41FB51FE80EF91E0A1F1B1F17FD95
:104E500054C715950795F794E79415950795F7941A
:104E6000E794F0928C08E0928B0880915D08909115
:104E70005E08AA2797FDA095BA2F9C01AD01220FCD
:104E8000331F441F551F280F391F4A1F5B1F809176
:104E9000010490910204AA2797FDA095BA2F280F2C
:104EA000391F4A1F5B1F57FD16C755954795379504
:104EB0002795559547953795279530935E0820930C
:104EC0005D082091030430910404C901880F991FE3
:104ED000880F991F820F931F820F931FAA2797FD98
:104EE000A095BA2F2091970430919804409199048D
:104EF00050919A04820F931FA41FB51F80939704AB
:104F000090939804A0939904B0939A042091050477
:104F100030910604C901880F991F880F991F820FCD
:104F2000931F820F931FAA2797FDA095BA2F209158
:104F30009304309194044091950450919604820F0B
:104F4000931FA41FB51F8093930490939404A09380
:104F50009504B09396048091680890916908209117
:104F6000030430910404820F931F90936908809387
:104F700068088091830890918408209105043091FD
:104F80000604820F931F9093840880938308809176
:104F9000B1049091B20401969093B2048093B1044D
:104FA00080918F0490919004A0919104B09192040B
:104FB000BC01CD010E94AF575B016C0180918E074F
:104FC00090918F07AA2797FDA095BA2FBC01CD011C
:104FD0000E94AF577B018C018091AD049091AE048B
:104FE000A091AF04B091B0049C01AD01C801B7011C
:104FF0000E944F57DC01CB019C01AD01C601B501F8
:105000000E945057DC01CB01BC01CD010E94925798
:10501000DC01CB0180938F0490939004A0939104C2
:10502000B09392048FEC80937A0010920E0320903C
:105030007F0430908004409081045090820439E4D1
:1050400023163BE6330631E0430630E053060CF40A
:1050500014C188E49BE6A1E0B0E08D839E83AF831A
:10506000B88760908704709088048090890490903D
:105070008A0439E463163BE6730631E0830630E0C8
:1050800093060CF4DCC488E49BE6A1E0B0E08983DD
:105090009A83AB83BC8349855A85CA01AA2797FDA9
:1050A000A095BA2F2091770430917804409179042B
:1050B00050917A04280F391F4A1F5B1F2CA33DA370
:1050C0004EA35FA3A0908708B0908808C09089087D
:1050D000D0908A08A80EB91ECA1EDB1E8601750173
:1050E000309149043BA7332309F0DAC0809148048A
:1050F000882309F0C2C44091E80748A746FF13C6B9
:10510000ECA5FDA5CF01AA2797FDA095BA2FBC015C
:10511000CD0129813A814B815C810E9429589B01F4
:10512000AC0197FD01C7BBE055954795379527958D
:10513000BA95D1F780918203E82EFF24002711272A
:10514000C801B7010E94295897FDE9C6ACE09595C2
:10515000879577956795AA95D1F76F87788B898B17
:105160009A8B6093C9047093CA048093CB04909384
:10517000CC0429A53AA5C901AA2797FDA095BA2F65
:10518000BC01CD012D813E814F8158850E94295857
:105190009B01AC0197FDF9C6FBE055954795379506
:1051A0002795FA95D1F7C801B7010E94295897FDB4
:1051B000E7C6DC01CB01ECE0B595A79597958795FF
:1051C000EA95D1F78093CD049093CE04A093CF04B9
:1051D000B093D0042091C9043091CA043093DB0706
:1051E0002093DA072091CD043091CE043093DF076D
:1051F0002093DE072F85388949895A89821B930BB2
:10520000A40BB50B8EAB9FABA8AFB9AF8093CD0409
:105210009093CE04A093CF04B093D004A80EB91EEF
:10522000CA1EDB1E86017501309181033BA3332327
:1052300009F0A3C58EA79FA7A8ABB9ABB7FD4DC614
:105240002EA53FA548A959A9559547953795279566
:105250008CA19DA1AEA1BFA1821B930BA40BB50B8A
:105260008CA39DA3AEA3BFA38093770490937804EF
:10527000A0937904B0937A048CC598EB291694E92D
:1052800039069EEF49069FEF59060CF0F1C328EB53
:1052900034E94EEF5FEF2D833E834F835887E1CE95
:1052A0002CA13DA14EA15FA12093770430937804F7
:1052B0004093790450937A043091E80738A710920C
:1052C000DF071092DE071092DB071092DA071092C8
:1052D000C5041092C6041092C7041092C80410921C
:1052E000C1041092C2041092C3041092C4043091FD
:1052F00081033BA38091C5049091C604A091C7048B
:10530000B091C804BC01CD0124E630E040E050E09B
:105310000E949D58DA01C9014091C1045091C20414
:10532000481B590B58A34F8F8091C1049091C20420
:10533000A091C304B091C404BC01CD0124E630E0C7
:1053400040E050E00E949D58DA01C9012091C50457
:105350003091C604821B930B9AA389A380917A0390
:1053600090917B03A0917C03B0917D03BC01CD01A2
:1053700028E631E040E050E00E942958E616F706A2
:105380000807190744F057016801A61AB70AC80AA6
:10539000D90A8601750117FDA3C4A0928708B092AF
:1053A0008808C0928908D0928A082CA53DA58F8DC7
:1053B00098A1280F391F79010027F7FC0095102FBD
:1053C00080917B0490917C04A0917D04B0917E0437
:1053D000E80EF91E0A1F1B1F5701680180914C043B
:1053E00090914D04281B390BC901AA2797FDA09560
:1053F000BA2F280E391E4A1E5B1E2091920330914F
:10540000930340919403509195032215330544056D
:10541000550574F4A8EAEA2EA1E6FA2E012D112D05
:10542000E21AF30A040B150B170128015701680152
:1054300088279927DC01821B930BA40BB50B281638
:1054400039064A065B060CF0E9C2F8E52F2EFEE9A4
:105450003F2EFFEF4F2EFFEF5F2E220E331E441E16
:10546000551E20927F043092800440928104509215
:1054700082048201710120927B0430927C0440926C
:105480007D0450927E0429A53AA5A9A1BAA12A0FAC
:105490003B1FA901662757FD6095762F80918304F5
:1054A00090918404A0918504B0918604480F591FFF
:1054B0006A1F7B1F5A016B0180914A0490914B0433
:1054C000281B390BC901AA2797FDA095BA2F680E92
:1054D000791E8A1E9B1E8091960390919703A0913E
:1054E0009803B09199038AAB9BABACABBDAB86156F
:1054F0009705A805B90564F448EA51E660E070E054
:10550000481B590B6A0B7B0B3A014B015A016B018B
:105510008AA99BA9ACA9BDA9B095A09590958195A4
:105520009F4FAF4FBF4F681679068A069B060CF057
:1055300064C2E8E56E2EEEE97E2EEFEF8E2EEFEFE1
:105540009E2E2AA93BA94CA95DA9620E731E841E3A
:10555000951E6092870470928804809289049092CC
:105560008A04B401A301609283047092840480923F
:105570008504909286048CA19DA1AEA1BFA18093C9
:105580008B0490938C04A0938D04B0938E0460924E
:10559000A7047092A8048092A9049092AA04209271
:1055A0009F043092A0044092A1045092A204409320
:1055B000A3045093A4046093A5047093A604E092FE
:1055C0009B04F0929C0400939D0410939E04809190
:1055D0001A0390911B0397FDA4C37C01F594E794F3
:1055E000F594E794F594E794FAA6E9A68091180358
:1055F0009091190397FD93C38C0115950795159507
:105600000795159507951DA70CA780910B04909100
:105610000C040F9734F458E1E52E5CEFF52EFAA652
:10562000E9A680910B0490910C04079734F440E3B1
:10563000E42E48EFF42EFAA6E9A6209101012A30C3
:1056400009F46BC280910B0490910C04815D97402A
:105650000CF007C280910B0490910C04805E97407F
:1056600034F080EDE82E87E0F82EFAA6E9A68091C6
:10567000090490910A040F9724F408E11CEF1DA778
:105680000CA78091090490910A04079724F400E381
:1056900018EF1DA70CA72A3009F455C28091090400
:1056A00090910A04815D974024F008EE13E01DA755
:1056B0000CA78091090490910A04805E974024F021
:1056C00000ED17E01DA70CA7A0918A03AA2309F4F7
:1056D00097C060911A0370911B038091D10490913F
:1056E000D204681B790B20911A0330911B03280FF9
:1056F000391F37FD3FC3359527953093D20420934A
:10570000D104613871050CF43AC260E870E070931E
:10571000D8046093D7048A2F9927869FF001879F2A
:10572000F00D969FF00D1124CF01F7FD21C37C01F0
:10573000F594E794F594E794F594E794F594E79459
:1057400029A53AA5E20EF31EFAA6E9A64091180390
:10575000509119038091D3049091D404481B590BA4
:105760002091180330911903280F391F37FDFDC20E
:10577000359527953093D4042093D30441385105AF
:105780000CF4F5C140E850E05093D6044093D504A2
:105790008A2F9927849FD001859FB00D949FB00DCB
:1057A0001124AD019D01B7FDDDC289011595079555
:1057B000159507951595079515950795ECA5FDA5E4
:1057C0000E0F1F1F1DA70CA7869F9001879F300DEE
:1057D000969F300D1124C90120911A0330911B03AB
:1057E000820F931F90931B0380931A0380911803D9
:1057F00090911903480F591F5093190340931803B0
:105800004D855E85141615060CF0C1C18091DA072E
:105810009091DB0797FDA2C2AA2797FDA095BA2F0A
:105820006BA1262F332744275527BC01CD010E94A9
:10583000295897FD8EC2E6E09595879577956795EF
:10584000EA95D1F7AF8DB8A1A60FB71FB0934D0859
:10585000A0934C084B855C85141615060CF0C1C14D
:105860008091DE079091DF0797FD6FC2AA2797FD11
:10587000A095BA2F6BA1262F332744275527BC01AB
:10588000CD010E94295897FD5BC246E0959587950A
:10589000779567954A95D1F7A9A1BAA1A60FB71F29
:1058A000B0934308A093420838A537FDC1C11093B7
:1058B000400800933F08F0925008E0924F08809112
:1058C000E407E82FFF27EE0FFF1FE255F84F808116
:1058D000918182599F4FA0916204B0916304A817EF
:1058E000B9070CF0EEC0CD0101969093630480934C
:1058F0006204DC018091E507E82FFF27EE0FFF1F10
:10590000E255F84F8081918182599F4F60916004E8
:1059100070916104681779070CF0C4C0CB0101963F
:105920009093610480936004BC018091E607E82FA6
:10593000FF27EE0FFF1FE255F84F808191818259BA
:105940009F4F40915E0450915F04481759070CF037
:10595000D5C0CA01019690935F0480935E04AC01A8
:105960008091E707E82FFF27EE0FFF1FE255F84F62
:105970008081918182599F4F20915C0430915D0418
:10598000281739070CF0ABC0C901019690935D044C
:1059900080935C049C01B7FD93C1AF3FB10539F022
:1059A00034F08FEF90E0909363048093620477FD6E
:1059B00076C16F3F710539F034F08FEF90E090932E
:1059C00061048093600457FD70C14F3F510539F069
:1059D00034F08FEF90E090935F0480935E0437FD86
:1059E0006AC12F3F310509F00CF4DEC28FEF90E061
:1059F00090935D0480935C04D7C260928704709298
:105A000088048092890490928A04A0928304B092C0
:105A10008404C0928504D0928604ADCD20927F0488
:105A2000309280044092810450928204A0927B04C0
:105A3000B0927C04C0927D04D0927E0424CD98EB79
:105A4000691694E979069EEF89069FEF99062CF571
:105A500028EB34E94EEF5FEF29833A834B835C8375
:105A60001ACB98EEE92E93E0F92EFAA6E9A6F2CD2C
:105A70002D823E824F825886F4CA8CA19DA1AEA190
:105A8000BFA18093770490937804A0937904B09396
:105A90007A049091E80798A712CC69827A828B8267
:105AA0009C82F9CA8081918182599F4F86179707FE
:105AB0000CF03BCF6115710509F437CFCB0101978D
:105AC0002FCF8081918182599F4F8A179B070CF0BD
:105AD00011CF109709F40ECFCD01019706CF808129
:105AE000918182599F4F821793070CF054CF211553
:105AF000310509F450CFC901019748CF80819181C8
:105B000082599F4F841795070CF02ACF41155105F4
:105B100009F426CFCA0101971ECF80910B04909102
:105B20000C04835F934034F038EEE32E33E0F32E21
:105B3000FAA6E9A680910B0490910C048A5F934029
:105B40000CF495CD8ECD8091090490910A04835F69
:105B5000934024F008EE13E01DA70CA780910904E0
:105B600090910A048A5F93400CF4AECDA9CD3FEF2B
:105B7000403853070CF008CE40E85FEF05CE8FEFBA
:105B8000603878070CF0C3CD60E87FEFC0CD80911E
:105B9000DA079091DB0797FD8FC1AA2797FDA095A3
:105BA000BA2FEBA12E2F332744275527BC01CD0157
:105BB0000E94295897FDA1C156E095958795779544
:105BC00067955A95D1F72F8D38A1261B370B309347
:105BD0004D0820934C084B855C85141615060CF473
:105BE0003FCE8091DE079091DF0797FD61C1AA2724
:105BF00097FDA095BA2FEBA12E2F332744275527C9
:105C0000BC01CD010E94295897FD7CC136E09595D5
:105C10008795779567953A95D1F729A13AA1261BE3
:105C2000370B309343082093420838A537FF3FCE07
:105C30004BA5442309F03BCE80914804882309F00A
:105C400036CE8B859C85A1E081309A070CF038C157
:105C50002B853C854FEF203034070CF09BC189A584
:105C60009AA5280F391F3C872B8720503F4F309330
:105C7000500820934F08AD85BE85E1E0A130BE07F6
:105C80000CF46BC12CA53DA5A20FB31FBE87AD8739
:105C9000A050B140B0934008A0933F0810CE10929E
:105CA00061041092600457FF90CE10925F0410922E
:105CB0005E0437FF96CE10925D0410925C0474C1AE
:105CC000109263041092620472CE295F3F4F3DC868
:105CD000295F3F4F29C82D5F3F4F4F4F5F4FE5C8AA
:105CE000E60EF71E081F191FE0928708F092880839
:105CF0000093890810938A0858CB23E030E040E0F5
:105D000050E0E20EF31E041F151FA3C883E090E0CD
:105D1000A0E0B0E0E80EF91E0A1F1B1F5BC8079643
:105D20006BCC07965ACC2CA13DA14EA15FA120932C
:105D30007704309378044093790450937A04BFCA6F
:105D4000615C7F4F8F4F9F4FA0CD909581959F4F66
:105D50008DCD615C7F4F8F4F9F4F6DCD909581951D
:105D60009F4F5ACD215F3F4F20CD2F5F3F4F00CD3A
:105D70000F96DDCC2F5F3F4FBECC2CA13DA14EA195
:105D80005FA1209377043093780440937904509373
:105D90007A0489859A85AA2797FDA095BA2F2EA9FE
:105DA0003FA948AD59AD820F931FA41FB51F8B8B20
:105DB0009C8BAD8BBE8BBC01CD0129813A814B817F
:105DC0005C810E9429589B01AC0197FDC1C06BE02A
:105DD00055954795379527956A95D1F76091830337
:105DE000862F9927AA27BB278F8B988FA98FBA8FC9
:105DF000BC01CD010E94295897FDA5C02CE09595C6
:105E00008795779567952A95D1F76B8F7C8F8D8FC6
:105E10009E8F6093C1047093C2048093C3049093D7
:105E2000C4046B897C898D899E892D813E814F8137
:105E300058850E9429589B01AC0197FD7FC08BE0DB
:105E400055954795379527958A95D1F76F89788D20
:105E5000898D9A8D0E94295897FD6BC09B01AC01DA
:105E6000BCE05595479537952795BA95D1F720937E
:105E7000C5043093C6044093C7045093C8046B8D87
:105E80007C8D8D8D9E8D97FD42C061387105810599
:105E9000910554F4CA01B90157FD27C06138710555
:105EA000810591050CF426CA81E08093660422CA1C
:105EB000909581959F4F9BCE909581959F4F6DCEEC
:105EC000E9A5FAA58E0F9F1F9C878B878050914074
:105ED0009093500880934F08CECE0196A11DB11D1E
:105EE0008EA79FA7A8ABB9ABABC9909580957095CD
:105EF00061957F4F8F4F9F4FD1CF615C7F4F8F4F09
:105F00009F4F5ACE615C7F4F8F4F9F4F7FCE9095B2
:105F10008095709561957F4F8F4F9F4FB6CF6150A1
:105F2000704F8F4F9F4F12C92150384F4F4F5F4FC7
:105F3000FAC86150704F8F4F9F4F90CF2150384F0C
:105F40004F4F5F4F7CCF6150704F8F4F9F4F56CF59
:105F50002150384F4F4F5F4F3ACF4D855E856FEFE1
:105F600040305607E4F48CA59DA5480F591F5E8765
:105F70004D8740505F4F5093400840933F089FCC5F
:105F80006150704F8F4F9F4F14C92150384F4F4F62
:105F90005F4F02C9F0925008E0924F086CCE109308
:105FA000400800933F088BCCE9960FB6F894DEBF0B
:105FB0000FBECDBFDF91CF911F910F91FF90EF905A
:105FC000DF90CF90BF90AF909F908F907F906F9019
:105FD0005F904F903F902F900895809101018D30F8
:105FE00009F455C110927A0080910B0490910C0431
:105FF0009093500880934F088091090490910A046F
:106000009093400880933F08809107049091080482
:1060100090938108809380088091030490910404F8
:106020009C01442737FD4095542FDA01C901880FA0
:10603000991FAA1FBB1F880F991FAA1FBB1F820F82
:10604000931FA41FB51F820F931FA41FB51F90930A
:106050007C0880937B0880910504909106049C0144
:10606000442737FD4095542FDA01C901880F991F45
:10607000AA1FBB1F880F991FAA1FBB1F820F931F48
:10608000A41FB51F820F931FA41FB51F90938C08E8
:1060900080938B08809101049091020490935E0894
:1060A00080935D088FEC80937A008091E407E82F5D
:1060B000FF27EE0FFF1FE255F84F80819181825933
:1060C0009F4FA0916204B0916304A817B9070CF028
:1060D00085C0CD0101969093630480936204DC0136
:1060E0008091E507E82FFF27EE0FFF1FE255F84FDD
:1060F0008081918182599F4F609160047091610409
:10610000681779070CF096C0CB0101969093610453
:1061100080936004BC018091E607E82FFF27EE0F13
:10612000FF1FE255F84F8081918182599F4F409126
:106130005E0450915F04481759070CF06CC0CA0107
:10614000019690935F0480935E04AC018091E70711
:10615000E82FFF27EE0FFF1FE255F84F8081918156
:1061600082599F4F20915C0430915D0428173907B4
:106170000CF042C0C901019690935D0480935C04C9
:106180009C01B7FD7FC0AF3FB10511F00CF061C0BD
:1061900077FD67C06F3F710539F034F08FEF90E005
:1061A000909361048093600457FD61C04F3F510597
:1061B00039F034F08FEF90E090935F0480935E04A9
:1061C00037FD5BC02F3F310509F00CF463C08FEF42
:1061D00090E090935D0480935C045CC08081918129
:1061E00082599F4F8A179B070CF07ACF109709F4BA
:1061F00077CFCD0101976FCF8081918182599F4FD9
:10620000821793070CF0BDCF2115310509F4B9CFE2
:10621000C9010197B1CF8081918182599F4F841725
:1062200095070CF093CF4115510509F48FCFCA01A2
:10623000019787CF8081918182599F4F8617970759
:106240000CF069CF6115710509F465CFCB01019799
:106250005DCF8FEF90E0909363048093620477FFAB
:1062600099CF109261041092600457FF9FCF109253
:106270005F0410925E0437FFA5CF10925D04109268
:106280005C0408C0109263041092620481CF0E94E3
:10629000BC15A8CE80910D089927AA27BB27BC0161
:1062A000CD0124EC39E040E050E00E942958DC01A7
:1062B000CB018093960390939703A0939803B09398
:1062C000990380910E089927AA27BB27BC01CD010D
:1062D0000E942958DC01CB01809392039093930391
:1062E000A0939403B093950308956F927F928F9239
:1062F0009F92AF92BF92CF92DF92EF92FF920F9355
:106300001F93CF93DF93C0E0D0E07E016E01109227
:10631000E603469AD093B604C093B504D093B40470
:10632000C093B30480E090E0A0E0B0E08093AD04BF
:106330009093AE04A093AF04B093B004D093C00484
:10634000C093BF04D093BE04C093BD04D093BC04DB
:10635000C093BB04D0937008C0936F08109283035E
:10636000109282031092FF030E94ED2F84E690E0CA
:106370000E94F2110E94ED2F8091E80780FF10C06B
:106380008091120390911303875B934008F07BC0C8
:1063900080911203909113038E5E924008F473C0B3
:1063A0001FE18AE090E00E94F21180910704909131
:1063B0000804C80FD91F80910B0490910C04E80EBB
:1063C000F91E8091090490910A04C80ED91E11503B
:1063D00017FFE7CFA701405F5F4F5695479556954A
:1063E00047955093C0044093BF049601205F3F4FF0
:1063F00036952795369527953093BE042093BD0496
:10640000CE01409696958795929582958F708927B3
:106410009F7089279093BC048093BB04909370086D
:1064200080936F083093BA042093B9045093B80452
:106430004093B70444E050E0DA010E94B858802D40
:10644000853020F180918B0890918C0897FD53C086
:106450006CE070E00E9468587093B4046093B304D9
:1064600080917B0890917C0897FD56C06CE070E0AD
:106470000E9468587093B6046093B50480918E07AB
:1064800090918F074DC00E946A158ACFDA010E9451
:10649000B858802D9927982F8827DA0111960E94E5
:1064A000B858202D820F911D9093B6048093B504A7
:1064B000DA0112960E94B858802D9927982F8827C4
:1064C000DA0113960E94B858202D820F911D9093E7
:1064D000B4048093B304DA0114960E94B858802D56
:1064E0009927982F8827DA0115960E94B858202DF1
:1064F000820F911D15C0909581959F4F6CE070E0C3
:106500000E9468587093B4046093B30480917B0830
:1065100090917C0897FFAACF909581959F4FA6CF29
:10652000AA2797FDA095BA2FBC01CD010E94AF57B5
:10653000DC01CB018093AD049093AE04A093AF0433
:10654000B093B0041092500810924F081092400877
:1065500010923F08109281081092800884E690E023
:106560000E94F2118091030490910404AA2797FDE0
:10657000A095BA2F9C01AD01220F331F441F551F58
:10658000220F331F441F551F280F391F4A1F5B1F3F
:10659000280F391F4A1F5B1F30937C0820937B080C
:1065A0008091050490910604AA2797FDA095BA2F23
:1065B0007C018D01EE0CFF1C001F111FEE0CFF1C57
:1065C000001F111FE80EF91E0A1F1B1FE80EF91EFF
:1065D0000A1F1B1FF0928C08E0928B088091F40731
:1065E000682E772488249924C9019C01442737FD0B
:1065F0004095542FC401B3010E9429585B016C01DE
:106600006093A7047093A8048093A9049093AA04AC
:106610009701442737FD4095542FC401B3010E94D0
:106620002958DC01CB0180939F049093A004A09390
:10663000A104B093A204A0928304B0928404C092F7
:106640008504D092860480937B0490937C04A0936D
:106650007D04B0937E041092770410927804109217
:10666000790410927A048091140390911503A091FB
:106670001603B0911703909391078093900710929F
:10668000FE031092FD0310926F041092700410929A
:1066900071041092720480916D0490916E04909335
:1066A0006C0480936B040E94485182E390E09093C5
:1066B000E9038093E80380910D089927AA27BB2757
:1066C000BC01CD0124EC39E040E050E00E942958A3
:1066D000DC01CB018856954CAF4FBF4F809396039A
:1066E00090939703A0939803B093990380910E0819
:1066F0009927AA27BB27BC01CD010E942958DC019C
:10670000CB018856954CAF4FBF4F80939203909327
:106710009303A0939403B093950310927F03109278
:106720007E0380916D0490916E04AA2797FDA09539
:10673000BA2F20917A0330917B0340917C035091D2
:106740007D03BC01CD010E942958DC01CB0180935F
:10675000870890938808A0938908B0938A081092BC
:1067600065041092640411E0109300010E94DD544E
:1067700080912F04846080932F048FEF8093F10821
:106780001092F20880E28093F3088091E407E82FEA
:10679000FF27EE0FFF1FE255F84F8081918182594C
:1067A0009F4F90936304809362048091E507E82FE4
:1067B000FF27EE0FFF1FE255F84F8081918182592C
:1067C0009F4F90936104809360048091E607E82FC7
:1067D000FF27EE0FFF1FE255F84F8081918182590C
:1067E0009F4F90935F0480935E048091E707E82FAA
:1067F000FF27EE0FFF1FE255F84F808191818259EC
:106800009F4F90935D0480935C041093E60384E6AD
:1068100080935B04DF91CF911F910F91FF90EF90D8
:10682000DF90CF90BF90AF909F908F907F906F90B0
:10683000089580915204882381F580938E08809377
:1068400061088093740880935B0880935C08809350
:10685000760880937308809351088091C40388233D
:1068600001F58091C703882321F0809374088093F9
:106870005B088091C503882321F080935C08809396
:1068800076088091C603882321F080937308809353
:10689000510880912F048C7F09C080912F04816062
:1068A00005C080938E0880936108DBCF80932F040E
:1068B00080914108992790936307809362078091A4
:1068C0004E08992790936507809364078091770815
:1068D000992790936707809366078091720899279C
:1068E000909369078093680710922A0410922904F4
:1068F0000E94862108958091EB078B3F68F08B3FC3
:1069000009F45BC28C3F09F4F1C28D3F09F4B2C2B5
:106910008E3F21F480915C0480938E038091EA077E
:106920008B3F08F4EDC18B3F09F4E8C18C3F09F4BB
:10693000FBC28D3F09F47DC28E3F09F404C38091F0
:106940008F03882309F0E1C180938F038091EC07C6
:106950008B3F08F4E1C18B3F09F4DCC18C3F09F4A3
:10696000DDC28D3F09F468C28E3F09F4E9C280910F
:106970008D03882309F0D5C180938D038091EE07A4
:106980008B3F68F08B3F09F424C28C3F09F4C9C2E5
:106990008D3F09F44BC28E3F21F480915C048093BB
:1069A0008C038091F5078B3F68F08B3F09F402C29E
:1069B0008C3F09F483C28D3F09F435C28E3F21F428
:1069C00080915C0480938B038091F6078B3F08F4E1
:1069D000AFC18B3F09F4AAC18C3F09F4AEC28D3F11
:1069E00009F433C28E3F09F4B7C2809189038B301A
:1069F00008F4A3C18F3F11F4809389038091F707B6
:106A00008B3F68F08B3F09F4DBC18C3F09F47DC2FA
:106A10008D3F09F417C28E3F21F480915C0480936E
:106A200088038091F8078B3F68F08B3F09F4CBC156
:106A30008C3F09F467C28D3F09F4F2C18E3F21F407
:106A400080915C0480938A032091FD072B3F08F41A
:106A500078C12B3F09F473C12C3F09F444C22D3F88
:106A600009F4EDC12E3F09F47AC22091860380918A
:106A7000FE078B3F08F06CC1809343048091FF07B1
:106A80008B3F68F08B3F09F4B3C18C3F09F428C2F7
:106A90008D3F09F4E9C18E3F21F480915C0480931D
:106AA0004204809100088B3F68F08B3F09F4A3C13A
:106AB0008C3F09F412C28D3F09F4E5C18E3F21F4E9
:106AC00080915C0480934104809101088B3F68F0C1
:106AD0008B3F09F45DC18C3F09F4E4C18D3F09F49B
:106AE000DBC18E3F21F480915C048093400480914F
:106AF00012088B3F68F08B3F09F44DC18C3F09F4BD
:106B0000D4C18D3F09F4CBC18E3F21F480915C0448
:106B100080933F04809113088B3F68F08B3F09F40A
:106B20003DC18C3F09F4C4C18D3F09F4AFC18E3F14
:106B300021F480915C0480933E04809114088B3F83
:106B400068F08B3F09F42DC18C3F09F4B4C18D3F2F
:106B500009F49FC18E3F21F480915C0480933D0431
:106B6000809115088B3F68F08B3F09F41DC18C3F65
:106B700009F4BFC18D3F09F480C18E3F21F480919B
:106B80005C0480933C04809102088B3F68F08B3F4B
:106B900009F40DC18C3F09F49DC18D3F09F470C10A
:106BA0008E3F21F480915C048093850380910708D7
:106BB0008B3F68F08B3F09F421C18C3F09F4ABC1D6
:106BC0008D3F09F424C18E3F21F480915C048093B1
:106BD000840380910A088B3F68F08B3F09F411C150
:106BE0008C3F09F489C18D3F09F414C18E3F21F413
:106BF00080915C048093830380910B088B3F68F045
:106C00008B3F09F4E9C08C3F09F45EC18D3F09F464
:106C100025C18E3F21F480915C0480938203809192
:106C20000C088B3F68F08B3F09F4D9C08C3F09F406
:106C30004EC18D3F09F415C18E3F21F480915C0453
:106C400080938103809111088B3F68F08B3F09F49A
:106C5000C9C08C3F09F46BC18D3F09F4F9C08E3F68
:106C600021F480915C0480938003809117088B3F0E
:106C700008F47EC08B3F09F479C08C3F09F45AC1F7
:106C80008D3F09F4E8C08E3F09F460C180916A0825
:106C9000823008F472C08F3F11F480936A088091AB
:106CA00019088B3F08F46DC08B3F09F468C08C3F16
:106CB00009F425C18D3F09F4B0C08E3F09F449C1E4
:106CC00080917E08823008F461C08F3F11F4809378
:106CD0007E0880912A088B3F70F08B3F09F485C0B5
:106CE0008C3F09F415C18D3F09F48EC08E3F09F029
:106CF00039C180915C0480938F0834C18091620413
:106D000080938F03882309F41FCE843608F41ECEA7
:106D100084E61ACE8091620480938D03882309F45F
:106D20002BCE843608F42ACE84E626CE80916204E7
:106D3000809389038B3008F05DCE8AE05DCE209190
:106D40006204209386038091FE078B3F08F494CE63
:106D50008B3FE1F18C3F09F4B4C08D3F09F487C04B
:106D60008E3F09F08BCE80915C0486CE80916204C8
:106D700080936A08823008F08ECF81E08ECF8091B8
:106D8000620480937E08823008F09FCF81E09FCF1D
:106D900080916204AACE80916204BACE809162048E
:106DA000CACE80916204DACE80916204EACE8091EC
:106DB0006204FACE8091620405CE80916204ACCD6B
:106DC000809162042CCE809162043CCE809162045A
:106DD00053CE80916204E3CD809162041ECF8091F6
:106DE00062042ECF809162043ECF8091620483CFF3
:106DF0008091620454CE8091620464CE80916204DA
:106E0000E6CE80916204F6CE80915E0474CF8091CC
:106E10005E04DDCE80915E04EDCE80915E04B1CF44
:106E200080915E040FCE80915E04CCCD80915E0493
:106E3000B6CD80915E0464CF80915E046DCF2091C9
:106E40005E047FCF80915E04EACD80915E0470CFB6
:106E500080915E0408CF80915E048ACF80915E04A9
:106E6000DCCE80915E04ECCE80915E0418CE8091E1
:106E70005E0402CE80915E044FCD80915E0481CE8F
:106E800080915E0491CE80915E041CCE80915E0460
:106E900052CE80915E0462CE80915E0426CE8091B7
:106EA0005E0436CE8091600420CE8091600430CEA6
:106EB0008091600440CE8091600450CE8091600447
:106EC00081CD80916004D8CD80916004A6CE809160
:106ED0006004B6CE8091600467CE80916004F2CDEC
:106EE00080916004DCCD209160042BCF8091600400
:106EF00013CD8091600445CE809160047BCE80915B
:106F000060043FCF809160049DCD8091600487CD67
:106F100080916004F0CE8091600459CE809160042D
:106F2000FBCE809160043BCD80916004E9CE8091DE
:106F3000600499CE809160041BCF80916004F8CEEC
:106F400080915C04E9CE80915C04DACE80915C048F
:106F50000FCF80915C0415CF80915C04E9CE209125
:106F60005C04EFCE33272F5F3F4F8CE398E2B901EB
:106F70000E94685870939103609390038091F30787
:106F800080937F088091F2078093550808952F928F
:106F90003F924F925F926F927F928F929F92AF92A9
:106FA000BF92CF92DF92EF92FF920F931F93CF93F6
:106FB000DF93CDB7DEB7E6970FB6F894DEBF0FBE0E
:106FC000CDBF0E946426209101012C3008F09FC2A1
:106FD000299AA0905304B0905404BA82A982809157
:106FE000550899270A96A816B90614F49A83898336
:106FF00080915B04843608F08CC28091060388235C
:1070000009F465C48091F5049091F604009711F499
:107010000C94014801979093F6048093F5042A306C
:1070200011F40C940948243111F40C94094828985F
:107030008091300490913104895E934010F40C9457
:10704000FD478091FA07282F33273A83298381E06F
:10705000809368048091E007A82FBB27AA0FBB1F6D
:10706000FD01EC53F84F118210828091E107282F27
:107070003327220F331FC9018C53984FFC01118213
:107080001082A255B84F11961C921E922255384F6D
:10709000D90111961C921E928091E307E82FFF27D9
:1070A000EE0FFF1FE255F84F118210828091790395
:1070B000815080937903809179038F3F31F0F09173
:1070C0006804F98BFF2309F417C40E947B34809174
:1070D000160590911705AC01440F551F480F591F15
:1070E0000091E007A02FBB27AA0FBB1FFD01E255AF
:1070F000F84FF090EF07CF2CDD24808191818C9D9B
:1071000050018D9DB00C9C9DB00C11244A0D5B1D4F
:1071100057FF02C00C94EF4D5595479555954795EF
:10712000AC53B84F8091F007682F77278D919C91D1
:10713000869F9001879F300D969F300D1124240F5C
:10714000351F309317052093160580913E059091C9
:107150003F0540913A0550913B05840F951F281B30
:10716000390B30935A04209359048091180590915B
:107170001905AC01440F551F480F591F1091E10725
:10718000A12FBB27AA0FBB1FFD01E255F84F80813D
:1071900091818C9D90018D9D300D9C9D300D112411
:1071A000420F531F57FF02C00C94EB4D5595479566
:1071B00055954795AC53B84F8D919C91869F900102
:1071C000879F300D969F300D1124240F351F30936B
:1071D00019052093180580913C0590913D0540913B
:1071E000380550913905840F951F281B390B3093B2
:1071F0005804209357048091E307E82FFF27EE0FF0
:10720000FF1FE255F84F80819181909581959F4FA6
:107210008330910514F40C9494470297909356048C
:10722000809355048091E207E82FFF27EE0FFF1FA0
:10723000E255F84FC080D18048E750E0C40ED51E1B
:10724000809189039927AA2797FDA095BA2FBC01A1
:10725000CD010E94AF57DC01CB0120E030E040E2DD
:1072600051E4BC01CD010E945057DC01CB01BC01AF
:10727000CD010E949257DC01CB018093850860917B
:1072800088038091AF0680FF06C080918F08813807
:1072900010F00C948348D0925404C092530480910F
:1072A00053049091540497FF02C00C94F34DB09096
:1072B000E807BC8EB2FC02C00C94DA471092710849
:1072C0004091590450915A04CA0157FF02C00C94CE
:1072D000E547959587959595879597FF02C00C94FE
:1072E000EE4720913404309135042817390714F003
:1072F0000C949C47CA0157FF02C00C943F4E97FF65
:1073000002C00C94444EBC017595679575956795C0
:107310006536710514F40C949F4764E670E0409163
:10732000570450915804CA0157FD02C00C94A84755
:107330000396959587959595879597FD02C00C9432
:10734000B047909581959F4F20913204309133043E
:107350002817390714F40C94B947C9010197C09054
:107360006804C98ACC2011F40C94D04710923504DB
:10737000109234041092330410923204E12FFF274C
:10738000EE0FFF1FE255F84F40910808242F3327D6
:10739000808191812817390734F480912B0882FF6E
:1073A00002C00C947848E12FFF27EE0FFF1FE25533
:1073B000F84F842F992720910908821B9109208179
:1073C00031812817390714F410924704E12FFF2761
:1073D000EE0FFF1FE255F84F842F992722273327FE
:1073E000281B390B808191818217930734F4809197
:1073F0002B0883FF02C00C947348809146048823B5
:1074000091F0E12FFF27EE0FFF1FE255F84F80911B
:1074100009089927841B91092081318182179307DC
:1074200014F40C94114DE02FFF27EE0FFF1FE255CF
:10743000F84F242F3327808191812817390734F49E
:1074400080912B0880FF02C00C946D485091440439
:10745000552399F0E02FFF27EE0FFF1FE255F84F5D
:10746000842F992720910908821B9109208131815D
:107470002817390714F40C940C4DE02FFF27EE0F5A
:10748000FF1FE255F84F842F992722273327281B07
:10749000390B808191818217930734F480912B08F6
:1074A00081FF02C00C94684880914504882391F0C4
:1074B000E02FFF27EE0FFF1FE255F84F80910908DC
:1074C0009927841B9109208131818217930714F435
:1074D0000C94084D80914704882331F48091460430
:1074E000882311F40C94654891E0552331F4809180
:1074F0004504882311F40C947D4881E0809349046D
:10750000109248041092470410924604F8C129983A
:1075100060CD80915B048D3808F4C8CD109268046A
:107520009091FB0782E3989FC00111249093F60489
:107530008093F504E981FA81B99714F00C94F84826
:1075400080913004909131048F3F910519F010F033
:107550000C94E44D1092D9041092DA041092DB04DA
:107560001092DC041092DD041092DE041092DF040D
:107570001092E0048A3F910511F40C944F4F309122
:10758000E207E32FFF27EE0FFF1FE255F84F808140
:107590009181813591050CF4E9C040915204442356
:1075A00009F0E4C08091E307E82FFF27EE0FFF1FEB
:1075B000E255F84F808191818C34910514F40C943C
:1075C000BE4E8091F7048F5F893C10F40C94A94F54
:1075D0002C3010F00C942B502998109252041092D9
:1075E000F70410923104109230040091E007E02F6C
:1075F000FF27EE0FFF1FE255F84F808191818734FE
:10760000910514F00C9458501091E107E12FFF27D9
:10761000EE0FFF1FE255F84F808191810190F081BC
:10762000E02DF7FF02C00C94CC50E734F1050CF4C8
:1076300070C021E0A12FBB27AA0FBB1FA255B84FD6
:107640008D919C9111978734910544F0E02FFF278D
:10765000EE0FFF1FE255F84F808191818D919C9133
:107660008734910564F0E02FFF27EE0FFF1FE255EE
:10767000F84F80819181873491050CF022E0E12F51
:10768000FF27EE0FFF1FE255F84F8081918186346E
:10769000910564F4E02FFF27EE0FFF1FE255F84F2E
:1076A00080819181873491050CF023E0E12FFF2741
:1076B000EE0FFF1FE255F84F808191818A5B9F4F4B
:1076C00064F4E02FFF27EE0FFF1FE255F84F808193
:1076D0009181873491050CF024E0E12FFF27EE0F14
:1076E000FF1FE255F84F808191818A5B9F4F64F4C0
:1076F000E02FFF27EE0FFF1FE255F84F80819181A9
:10770000863491050CF425E0822F0E94CD02109161
:10771000E107E12FFF27EE0FFF1FE255F84F8081B1
:1077200091810190F081E02DF7FF02C00C94A450EC
:107730007E9714F00C94E54F8091E007E82FFF2727
:10774000EE0FFF1FE255F84F808191818A5B9F4FBA
:1077500014F00C94E54F81E08093A30688EE93E04B
:107760009093E9038093E8033091E207E32FFF272A
:10777000EE0FFF1FE255F84F808191818B5A9F4F8A
:107780000CF094CCD090E307ED2DFF27EE0FFF1FF8
:10779000E255F84F80819181855B9F4F14F00C94E6
:1077A000FC4D8091F8048F5F893C10F40C949C4E42
:1077B00088EC8093F80481E090E09093310480930A
:1077C000300481E0809352041092E1041092E204AC
:1077D0001092E3041092E40410927704109278045B
:1077E0001092790410927A04109273041092740427
:1077F00010927504109276048091F407E82EFF240D
:107800000027112780917B0890917C089C014427D8
:1078100037FD4095542FC801B7010E942958DC015B
:10782000CB018093870490938804A0938904B0933C
:107830008A0480918B0890918C089C01442737FD25
:107840004095542FC801B7010E942958DC01CB0193
:1078500080937F0490938004A0938104B09382046A
:107860008091A7049091A804A091A904B091AA04C2
:107870008093830490938404A0938504B09386043A
:1078800080919F049091A004A091A104B091A204C2
:1078900080937B0490937C04A0937D04B0937E043A
:1078A0001092D9041092DA041092DB041092DC04D6
:1078B0001092DD041092DE041092DF041092E004B6
:1078C00080912F04886080932F040C94FE4D80914A
:1078D000090390910A038F5F9F4F09F093CB88E9CA
:1078E0009AE39093E9038093E80380E09CE090930F
:1078F0000A038093090386CBD090E807DC8E0091C1
:1079000048040B8F002321F480914904882369F0F7
:1079100080910708992729813A818217930714F4E7
:107920009A83898381E08093660439893323B9F08F
:10793000109256041092550410925A041092590451
:1079400010925804109257048AE58093850888E7BE
:107950008093710810924804109249041B8E209164
:1079600064083091650840916608509167088091DD
:10797000A7049091A804A091A904B091AA048DA392
:107980009EA3AFA3B8A7280F391F4A1F5B1F809182
:107990006B0890916C08A0916D08B0916E08A09052
:1079A0009F04B090A004C090A104D090A204A9A606
:1079B000BAA6CBA6DCA68A0D9B1DAC1DBD1DC09032
:1079C0005708D0905808E0905908F0905A08CDA672
:1079D000DEA6EFA6F8AAE090A304F090A40400911C
:1079E000A5041091A604EF8EF8A209A31AA3ADA4D2
:1079F000BEA4CFA4D8A8AE0CBF1CC01ED11EADA67D
:107A0000BEA6CFA6D8AA209047083090480840903C
:107A1000490850904A08C0909B04D0909C04E09084
:107A20009D04F0909E04CA8ADB8AEC8AFD8A2C0CA5
:107A30003D1C4E1C5F1CD0904904DA8EDD2009F0FD
:107A4000AEC30B8D002309F0AAC380936B089093FB
:107A50006C08A0936D08B0936E082093640830936F
:107A60006508409366085093670880918E0790914F
:107A70008F07815092400CF40EC19090F1084FEFA7
:107A8000941611F40C94154D8091F407A82EBB2484
:107A9000CC24DD246DA17EA18FA198A5A60195011E
:107AA0000E949D5879018A0180917B0890917C0801
:107AB000AA2797FDA095BA2FE81AF90A0A0B1B0B03
:107AC00069A57AA58BA59CA5A60195010E949D5844
:107AD00059016A0180918B0890918C08AA2797FD23
:107AE000A095BA2FA81AB90ACA0ADB0A892D9927C4
:107AF00087FD9095A92FB92F8D839E83AF83B8877B
:107B0000BC01CD01A80197010E94295897FF02C02E
:107B10000C946F4F3B014C01F9E095948794779456
:107B20006794FA95D1F76D817E818F819885A60142
:107B300095010E94295897FF02C00C94694F5B0180
:107B40006C01E9E0D594C794B794A794EA95D1F76E
:107B50008091340490913504813491053CF48091F6
:107B600032049091330481349105C4F0D401C301EF
:107B700097FE02C00C94944F3C014D01959487945C
:107B800077946794D601C501D7FE02C00C948F4F3D
:107B90005C016D01D594C794B794A7948091E307D5
:107BA000E82FFF27EE0FFF1FE255F84F80819181EC
:107BB0000190F081E02DF7FF02C00C94644F7A979A
:107BC000A4F0C401B30123E030E040E050E00E94A3
:107BD0009D5839014A01C601B50123E030E040E07B
:107BE00050E00E949D5859016A018091F308282FA6
:107BF000332727FD3095432F532F2615370548058A
:107C0000590514F439014A01992787FD90959095FB
:107C100081959F4FAA2797FDA095BA2F68167906E0
:107C20008A069B0614F43C014D012A153B054C05C0
:107C30005D0514F459016A01A816B906CA06DB06E7
:107C400014F45C016D018091870490918804A091E7
:107C50008904B0918A0486199709A809B909809303
:107C6000870490938804A0938904B0938A04809138
:107C70007F0490918004A0918104B09182048A19BC
:107C80009B09AC09BD0980937F0490938004A09365
:107C90008104B09382048091FB039091FC038F3F99
:107CA000910509F008F4DFC2FA8DFF2329F40B8D4A
:107CB000002311F40C940F4960E070E06B01109206
:107CC00066041E8EE0906408F090650800916608D6
:107CD0001091670860906B0870906C0880906D0838
:107CE00090906E08909171089CA3992311F00C94C8
:107CF000F34710924D0410924C0410924B041092D2
:107D00004A04E0922005F092210500932205109389
:107D10002305609224057092250580922605909295
:107D200027051092970410929804109299041092CB
:107D30009A04109293041092940410929504109255
:107D4000960410928F041092900410929104109255
:107D500092041092640810926508109266081092BE
:107D6000670810926B0810926C0810926D081092C0
:107D70006E081092570810925808109259081092E5
:107D80005A08109247081092480810924908109219
:107D90004A081092FC031092FB03009155041091C5
:107DA0005604C80117FD80C2409774F068EE262E75
:107DB00063E0362E30929B0320929A032C8D24FD93
:107DC00003C081E080930D05B090F107CB2CDD243A
:107DD000EE24FF24B801882777FD8095982F98011D
:107DE00017FF02C00C941A48442737FD4095542FC2
:107DF0000E9429589B01AC01C701B6010E94295875
:107E000097FF02C00C94144859E095958795779593
:107E100067955A95D1F79B018B2D9927809FA001DB
:107E2000819F500D909F500D1124CA0157FF02C031
:107E30000C9411489595879595958795280F391F2E
:107E4000C901AA2797FDA095BA2F8093E1049093CA
:107E5000E204A093E304B093E4042091770430910A
:107E600078044091790450917A04281B390B4A0B0D
:107E70005B0B213563EC360760E0460760E0560790
:107E80000CF491C780E593ECA0E0B0E08093770418
:107E900090937804A0937904B0937A048091770446
:107EA00090917804A0917904B0917A04805B9C430E
:107EB000AF4FBF4F64F480EB9CE3AFEFBFEF809315
:107EC000770490937804A0937904B0937A04C090D7
:107ED0006D04D0906E04C114D10409F4EAC1FC8D84
:107EE000F3FFE7C18DA19EA1AFA1B8A5B7FF02C066
:107EF0000C94DE4D09E0B595A795979587950A9561
:107F0000D1F79CAB8BAB97FF02C00C94674E89A551
:107F10009AA5ABA5BCA5B7FF02C00C94614E19E0B1
:107F2000B595A795979587951A95D1F7BC0197FFB9
:107F300002C00C945C4EEBA8FCA8E616F70614F4FD
:107F40007CAB6BAB6BA97CA977FF02C00C94584E3D
:107F50002B0155944794559447945594479408940D
:107F6000411C511C0CE112E0C00ED11E760100270D
:107F7000F7FC0095102F24EE3DEFC20ED31E60904B
:107F80008708709088088090890890908A0880916E
:107F90007A0390917B03A0917C03B0917D038E8B3B
:107FA0009F8BA88FB98FC401B3012E893F89488D5B
:107FB000598D0E949D58E21AF30A040B150BC80153
:107FC000B70128E631E040E050E00E949D58DC0116
:107FD000CB018C01045B1040A0908008B090810818
:107FE000C501B7FE02C00C94474E8138910514F0CC
:107FF00000E010E020909A0330909B03211431049C
:10800000A1F4ABA9BCA9599784F480916404909120
:108010006504800F911F90936504809364048091A0
:108020000D05882311F00C949F4EC801880F991FED
:10803000880F991F880F991FB2010E9468589B01F1
:10804000442737FD4095542F260D371D481D591DD7
:1080500020938708309388084093890850938A08B2
:10806000F0908B036F2D7727EBA9FCA96E9FC001C1
:108070006F9F900D7E9F900D112497FF02C00C946E
:10808000554E959587959595879595958795959551
:10809000879595958795681B790B7CAB6BAB77FFC4
:1080A00002C00C944D4E2114310411F00C94464F33
:1080B000009134041091350480913204909133047E
:1080C000080F191F17FF02C00C94994F15950795BB
:1080D0001595079515950795005C1F4FCA01B901C5
:1080E0002E893F89488D598D0E949D58DA01C9011A
:1080F00020916B0430916C04442737FD4095542F38
:10810000821B930BA40BB50B845E9D4FAF4FBF4FEB
:10811000BC01CD0128E631E040E050E00E949D58CE
:10812000DC01CB01845B90404BA95CA9849F90014A
:10813000859F300D949F300D1124C901B8010E9414
:10814000685883E0F89ED0011124BCABABABA617F6
:10815000B70714F40C94704E8BA99CA99095819547
:108160009F4F681779070CF4BC01CB01AA2797FD34
:10817000A095BA2F2091770430917804409179042A
:1081800050917A04820F931FA41FB51F8093770428
:1081900090937804A0937904B0937A048EC01092DF
:1081A0009704109298041092990410929A041092D5
:1081B00093041092940410929504109296041092D5
:1081C0006408109265081092660810926708109271
:1081D0006B0810926C0810926D0810926E082224A1
:1081E000332421012DA63EA64FA658AA80918704CC
:1081F00090918804A0918904B0918A0480938304AB
:1082000090938404A0938504B093860480917F04A6
:1082100090918004A0918104B091820480937B04AA
:1082200090937C04A0937D04B0937E041092FC0391
:108230001092FB0310924B0410924A0410924D04CA
:1082400010924C041A8D112309F025CD2B8D222379
:1082500009F40BCC8091FB039091FC038F3F9105B7
:1082600011F008F021CDADA4BEA4CFA4D8A8A0924F
:108270005708B0925808C0925908D0925A082092D4
:108280004708309248084092490850924A08B090F6
:108290007108BCA2009166040E8F009155041091E4
:1082A0005604C80117FF80CD88279927801B910BA2
:1082B0007BCDA0908008B090810880910C05815002
:1082C0008F3F09F479C580930C05BE8DBB2381F0E7
:1082D0001092DD041092DE041092DF041092E0048C
:1082E0001092D9041092DA041092DB041092DC048C
:1082F000EA8DEE2309F054C5FCA18F2F9927AA27F8
:10830000BB27BC01CD012DA13EA14FA158A50E94C4
:108310002958DC01CB01BC01CD0128EF3AE240E055
:1083200050E00E949D5819010B8D002309F035C5BE
:108330001CA1812F9927AA27BB27BC01CD0129A504
:108340003AA54BA55CA50E942958DC01CB01BC01D4
:10835000CD0128EF3AE240E050E00E949D583C8376
:108360002B830091420810914308093C11050CF43D
:108370000CC508EC10E0109343080093420860908D
:108380004C0870904D0839EC631671040CF4F2C47B
:10839000A8EC6A2E712C70924D0860924C08809166
:1083A0004F0890915008AA2797FDA095BA2F2091C9
:1083B0008508C22EDD24EE24FF24BC01CD01A701D7
:1083C00096010E9429589B01AC01C801AA2797FD7C
:1083D000A095BA2FE7E0880F991FAA1FBB1FEA9547
:1083E000D1F7280F391F4A1F5B1F57FD15C676E0CE
:1083F00055954795379527957A95D1F74101820E86
:10840000931E240180913F0890914008AA2797FD70
:10841000A095BA2FBC01CD01A70196010E94295851
:108420009B01AC01C301AA2797FDA095BA2F67E075
:10843000880F991FAA1FBB1F6A95D1F7280F391FF4
:108440004A1F5B1F57FD1EC606E055954795379599
:1084500027950A95D1F76B807C80620E731E7CAAEB
:108460006BAAAA0CBB1CAA0CBB1CC501AA2797FDB2
:10847000A095BA2FBC01CD01A70196010E942958F1
:108480007B018C0197FDF5C5B6E015950795F7942E
:10849000E794BA95D1F7ECA18E2F9927AA27BB278D
:1084A00020918B0430918C0440918D0450918E0466
:1084B000BC01CD010E942958DC01CB01BC01CD01DA
:1084C00020EE3BEA40E050E00E949D585701A20E8A
:1084D000B31EC501F1E08F16F0E49F0624F0812C55
:1084E000A0E49A2E240100E0801600EC90060CF027
:1084F0003CC4812CF0EC9F2E9092500880924F0843
:1085000011E0611610E471062CF0612CE0E47E2E7F
:108510007CAA6BAA20E0621620EC72060CF01EC446
:10852000612C70EC772E7092400860923F0851E009
:10853000A51650E4B50624F0A12C60E4B62EC501C2
:1085400060E0A61660ECB6060CF003C4A12C50EC5B
:10855000B52EB0928108A092800889819A81880FF7
:10856000991F880F991F9A838983AC8D8A2F992729
:1085700080FFEBC081FF18C080912B0899279C01D8
:108580002071307084FF26C680918E0381558B3315
:1085900008F020C68091B70381508F3F11F40C94EE
:1085A000734E8093B7031BC020918E0380917E038E
:1085B00090917F03820F911D2091ED073327829FB9
:1085C000F001839FF00D929FF00D1124CF0144978D
:1085D00090934F0480934E0481E080936704209130
:1085E000500430915104F989FF2321F010924F0477
:1085F00010924E04890120914E0430914F042017AF
:1086000031070CF0A2C080916704882309F49DC053
:10861000021B130B80918D039927089F6001099F0E
:10862000D00C189FD00C1124C601D7FE02C00C94A8
:10863000754F8C011595079515950795E980FA807A
:10864000E01AF10A87018091FD039091FE0397FFE4
:1086500002C00C94824F95958795081B190BC0900A
:108660006F04D0907004E0907104F0907204F7FEF3
:1086700002C00C94784F87E0F594E794D794C794A0
:108680008A95D1F780918C03282F332744275527CB
:10869000C701B6010E94295897FF02C00C94894F68
:1086A000B5E09595879577956795BA95D1F731E0BF
:1086B0006931730714F40C941A4E68E171E0061BDB
:1086C000170B8091FA049091FB049C01229532953E
:1086D000307F3227207F3227281B390B200F311F94
:1086E00037FF02C00C94854FA901559547955595C4
:1086F00047955595479555954795BA018091E90756
:10870000282F3327220F331F220F331F42175307FF
:1087100074F489819A818217930714F0A901B90131
:10872000A981BA81A217B30714F4AD01BD01E98193
:10873000FA81E417F50714F00C94244EAF01F0937E
:10874000FB04E093FA045A83498350907F08852DF7
:108750009927880F991F880F991F80559040C980CD
:10876000DA808C159D0514F49A838983E980FA8058
:10877000F0925907E09258078091E1049091E20449
:10878000A091E304B091E404880F991FAA1FBB1FB6
:10879000880F991FAA1FBB1FA81AB90ABAAAA9AAAB
:1087A0008701013A11050CF4C0C2C701F7FE02C0EF
:1087B0000C94F94D9595879529A93AA982179307A5
:1087C00014F49AAB89AB909581959F4F49A95AA90A
:1087D0004817590714F49AAB89AB252D3327220F7C
:1087E000331F220F331FC90149815A81841B950B06
:1087F000A9A9BAA98A179B0714F49AAB89AB698116
:108800007A81621B730BE9A9FAA9E617F70714F43A
:108810007AAB69AB8091590490915A048401081B8A
:10882000190B1093630800936208FCA1FF2309F45D
:1088300076C2281A390AC101AA2797FDA095BA2F36
:108840002091D9043091DA044091DB045091DC048A
:10885000820F931FA41FB51F8093D9049093DA044D
:10886000A093DB04B093DC046091D9047091DA0426
:108870008091DB049091DC0461302AEF720720E0E4
:10888000820720E0920774F080E09AEFA0E0B0E069
:108890008093D9049093DA04A093DB04B093DC04B2
:1088A000BC01CD01603036E073073FEF83073FEF37
:1088B000930774F480E096E0AFEFBFEF8093D904A4
:1088C0009093DA04A093DB04B093DC04BC01CD01E7
:1088D000C0909003D09091039601442737FD4095B6
:1088E000542F0E949D587801E20EF31EB090800331
:1088F0006B2D77278827992729A93AA937FDB5C372
:1089000037FD9EC33595279549815A81240F351F20
:10891000442737FD4095542F0E94295897FDA0C346
:10892000F6E09595879577956795FA95D1F79B0130
:108930006E157F050CF47B0166277727621B730B8E
:10894000E616F7060CF47B018091570490915804C9
:108950008301081B190B10933E0800933D085CA18E
:10896000552309F4D6C1AB81BC81A81BB90BFD010D
:10897000CF01AA2797FDA095BA2F2091DD04309151
:10898000DE044091DF045091E004820F931FA41F86
:10899000B51F8093DD049093DE04A093DF04B093B1
:1089A000E0046091DD047091DE048091DF04909119
:1089B000E0046130FAEF7F07F0E08F07F0E09F07F7
:1089C00074F080E09AEFA0E0B0E08093DD04909333
:1089D000DE04A093DF04B093E004BC01CD0160305D
:1089E00026E072072FEF82072FEF920774F480E0E2
:1089F00096E0AFEFBFEF8093DD049093DE04A09389
:108A0000DF04B093E004BC01CD019601442737FD9B
:108A10004095542F0E949D58020F131F6B2D7727EE
:108A20008827992729A93AA937FD46C337FD2FC3BF
:108A30003595279549815A81240F351F442737FDE5
:108A40004095542F0E94295897FD31C356E09595C3
:108A50008795779567955A95D1F79B0160177107B0
:108A60000CF48B0166277727621B730B0617170719
:108A70000CF48B01A981BA81AE0DBF1D9D01200FA1
:108A8000311F89A99AA9280F391FC90137FD1BC3B6
:108A90009C013595279535952795D09055088D2DB6
:108AA0009927281739070CF425C1852D9927821796
:108AB00093070CF41FC120938E089D01201B310BDE
:108AC000E9A9FAA92E1B3F0BC90137FD20C19C0162
:108AD00035952795359527958D2D99272817390791
:108AE0000CF4F9C0852D9927821793070CF4F3C075
:108AF000209361089D01201B310BA9A8BAA82A0D5B
:108B00003B1DC90137FDF4C09C013595279535956E
:108B100027958D2D9927281739070CF4DAC0852D54
:108B20009927821793070CF4D4C0209374086981A5
:108B30007A816E197F099B01201B310BE9A8FAA8E5
:108B40002E193F09A90137FDBBC29A01359527951A
:108B5000359527954D2D5527241735070CF4A9C0B9
:108B6000452D5527421753070CF4A3C020935B08EB
:108B70009B01201B310B49A95AA9240F351FA901BC
:108B800037FDA4C09A0135952795359527954D2D2C
:108B90005527241735070CF47CC0452D552742175F
:108BA00053070CF476C020935C089B01200F311F03
:108BB00089A99AA9281B390BA90137FD77C09A0109
:108BC00035952795359527954D2D5527241735072C
:108BD0000CF450C0452D5527421753070CF44AC0DA
:108BE000209376089B01200F311FE9A9FAA92E0FC7
:108BF0003F1FC90137FD4BC09C0135952795359521
:108C000027958D2D9927281739072CF1852D992720
:108C10008217930704F1209373089D01200F311FE1
:108C2000A9A8BAA82A193B09C90137FD21C09C018E
:108C300035952795359527958D2D9927281739072F
:108C40003CF0852D99278217930714F00C942D5131
:108C50009C010C942D519C01209373089D01200FC1
:108C6000311FA9A8BAA82A193B09C90137FFDFCFCC
:108C70000396DDCF9A01209376089B01200F311FC8
:108C8000E9A9FAA92E0F3F1FC90137FFB5CF0396F7
:108C9000B3CF9A0120935C089B01200F311F89A953
:108CA0009AA9281B390BA90137FF89CF4D5F5F4F68
:108CB00086CF9A0120935B089B01201B310B49A9A9
:108CC0005AA9240F351FA90137FF5CCF4D5F5F4FB5
:108CD00059CF9C012ACF9C01209361089D01201B44
:108CE000310BA9A8BAA82A0D3B1DC90137FF0CCF2B
:108CF00003960ACF9C0120938E089D01201B310B07
:108D0000E9A9FAA92E1B3F0BC90137FFE0CE039654
:108D1000DECEC801AA2797FDA095BA2F2ECEC80196
:108D2000AA2797FDA095BA2F8BCD89A99AA981353D
:108D3000910524F0A0E5B0E0BAABA9ABE9A9FAA986
:108D4000E05BFF4F0CF049CD20EB3FEF3AAB29AB96
:108D500044CD9093810880938008FFCB4BA95CA9F8
:108D60005093400840933F08E2CB50925008409205
:108D70004F08C6CB48E364164FEF74060CF00FCBD8
:108D8000F8E36F2EFFEF7F2E06CB2FEF083312078D
:108D90000CF0F5CA08E31FEFEECA1C821B82E1CA81
:108DA00022243324C1CA209377043093780440935B
:108DB000790450937A0472C888E180930C058091FD
:108DC000F4079927880F991F880F991F7C010027A6
:108DD000F7FC0095102F6DA17EA18FA198A5A80189
:108DE00097010E949D5830934B0720934A0769A52D
:108DF0007AA58BA59CA5A80197010E949D58309348
:108E00004D0720934C0780917B0890917C0897FD3B
:108E10002EC7959587959595879590934F07809345
:108E20004E0780918B0890918C0897FD1EC79595F1
:108E30008795959587959093510780935007B092A9
:108E40005307A0925207209150043091510430935F
:108E500055072093540780916F0490917004A0915E
:108E60007104B0917204B7FDFBC619E0B595A795E2
:108E7000979587951A95D1F7909357078093560742
:108E8000D0925B07C0925A0780911C0390911D03FA
:108E900090935D0780935C07809187089091880884
:108EA000A0918908B0918A0820917A0330917B03C0
:108EB00040917C0350917D03BC01CD010E949D58DF
:108EC000309361072093600780915B04992790930A
:108ED0005F0780935E078091A3069927909371079F
:108EE000809370078091E4039091E503909373075A
:108EF000809372078091F208992787FD909590934F
:108F000081078093800780913E0590913F05909363
:108F100087078093860780913C0590913D0590934B
:108F2000890780938807D1C93FEF8E3F93070CF0E4
:108F30004BC102960C940E39B901615070404091BA
:108F4000570450915804CA0157FF02C00C94983935
:108F5000959587959595879597FF02C00C94A139B3
:108F600020913204309133042817390714F00C94FF
:108F7000AD39CA0157FD7FC697FD7BC6959587958C
:108F8000959587958536910514F40C94AF3984E650
:108F900090E0C0906804C98ACC2011F00C94B639D6
:108FA00090933304809332047093350460933404B7
:108FB0000C94BE39609371084091590450915A0441
:108FC000CA0157FD02C00C9469390396959587959F
:108FD0009595879597FD02C00C9471399095819570
:108FE0009F4F0C947139D0924D04C0924C047093F1
:108FF0004B0460934A040C94813E109252040C94EA
:10900000563810925204109268042A3011F00C94D1
:109010001338289A0C941838215C3F4F4F4F5F4FFC
:10902000E6C903960C941A3F61507E4F8F4F9F4FB5
:109030000C94043F22273327201B310B0C94F43E61
:109040002F5F3F4F3595279549815A81240F351F52
:10905000442737FD4095542F0E94295897FF60CC34
:10906000615C7F4F8F4F9F4F5BCC309521953F4F79
:1090700047CC8FE390E0A0E0B0E0E80EF91E0A1FB5
:109080001B1F02CA215C3F4F4F4F5F4FDDC92F5F4F
:109090003F4F3595279549815A81240F351F442725
:1090A00037FD4095542F0E94295897FFCFCC615C23
:1090B0007F4F8F4F9F4FCACC309521953F4FB6CCF5
:1090C0004D5F5F4F42CD0396E3CC982F0C94753AD9
:1090D00081E0809345040C946A3A81E080934404D3
:1090E000582F0C943D3A81E0809346040C94133A37
:1090F00081E0809347040C94E63990934804809370
:1091000049040C947F3C8091A806992787FD90958F
:109110004F2D5527849FD001859FB00D949FB00D92
:109120001124CD012091590430915A04820F931FCC
:1091300090935A04809359048091A906992787FD3A
:109140009095849FF001859FF00D949FF00D112460
:10915000CF012091570430915804820F931F9093B0
:109160005804809357048091AA06992787FD90950B
:109170002091550430915604820F931F909356040A
:10918000809355048091AC06282F332727FD309516
:109190008091ED079927289F5001299FB00C389F97
:1091A000B00C1124B0927F03A0927E038091AB0695
:1091B00099278C159D0514F00C944B399093540409
:1091C000809353040C944F39109256041092550416
:1091D0000C941239232B29F480918E03823308F4E6
:1091E000D9C981E08093670488EC8093B703F7C9FD
:1091F00080915204882311F40C94A03A8091300499
:1092000090913104FFEF8F3F9F0711F40C94A43A23
:10921000019690933104809330040C94A43A1091F9
:1092200066041E8F112311F00C945C3E20911008EF
:109230002D8F222311F40C945C3E8DA59EA5AFA525
:10924000B8A98093570890935808A0935908B093F1
:109250005A08209247083092480840924908509294
:109260004A088091640890916508A0916608B091C1
:109270006708B7FD26C7292E3A2E4B2E552447FCEA
:109280005A94209264083092650840926608509281
:10929000670880916B0890916C08A0916D08B0915F
:1092A0006E08B7FD09C7892F9A2FAB2FBB27A7FDE3
:1092B000BA9589879A87AB87BC8780936B08909310
:1092C0006C08A0936D08B0936E088091F407E82EA7
:1092D000FF24002711272091970430919804409192
:1092E000990450919A04C801B7010E94295897FD2A
:1092F000FCC6672E782E892E992487FC9A9420919B
:109300009304309194044091950450919604C801BF
:10931000B7010E94295897FDE3C6A72EB82EC92E83
:10932000DD24C7FCDA94D201C10186199709A80986
:10933000B90920910F08E22EFF2400271127BC0154
:10934000CD01A80197010E949D5839014A011901D8
:109350002A0189859A85AB85BC858A199B09AC0948
:10936000BD09BC01CD01A80197010E949D58D401FF
:10937000C30197FCB0C6892F9A2FAB2FBB27A7FD3F
:10938000BA95BC01DA01C90157FDA0C6892F9A2FF1
:10939000AB2FBB27A7FDBA956C0180913404909147
:1093A000350481349105C4F48091320490913304E2
:1093B000813491058CF48091E307E82FFF27EE0FAD
:1093C000FF1FE255F84F808191810190F081E02DDF
:1093D000F7FDDEC67A972CF08091F1088F3F09F4F3
:1093E00012C6EF8CF8A009A11AA12DA13EA14FA190
:1093F00058A5E21AF30A040B150BEBAAFCAA0DAB55
:109400001EABE092E504F092E6040093E7041093AB
:10941000E8048A899B89AC89BD89E9A4FAA40BA5D3
:109420001CA58E199F09A00BB10B8D879E87AF8756
:10943000B88B8093E9049093EA04A093EB04B09373
:10944000EC040BA91CA92DA93EA90093ED041093CF
:10945000EE042093EF043093F0048093F104909392
:10946000F204A093F304B093F404809183049091E8
:109470008404A0918504B0918604801B910BA20BFB
:10948000B30B8093830490938404A0938504B093DA
:10949000860480917B0490917C04A0917D04B0911E
:1094A0007E042D853E854F855889821B930BA40B26
:1094B000B50B80937B0490937C04A0937D04B093C0
:1094C0007E043D8D332371F1209164043091650455
:1094D0002138310594F08091BB049091BC04019631
:1094E0009093BC048093BB0480916F0890917008A6
:1094F00001969093700880936F0820583F4F94F422
:109500008091BB049091BC0401979093BC0480931C
:10951000BB0480916F089091700801979093700838
:1095200080936F08109265041092640431E0A32EBA
:10953000B12C8091200590912105A0912205B09138
:109540002305E0906408F09065080091660810918A
:1095500067088E199F09A00BB10B815E914BAF4F2D
:10956000BF4F8F539C49A040B04008F4FAC480918B
:10957000F2088BA389310CF471C52BA93CA94DA924
:109580005EA9213080E1380780E0480780E0580775
:109590000CF4F7C480911C05882309F4ABC57093C3
:1095A0004B0460934A04DA01C90157FD4EC6B7FD6A
:1095B00047C629E0B595A795979587952A95D1F740
:1095C000019690931B0580931A052BA93CA94DA9E0
:1095D0005EA957FD30C639014A01A3E095948794EE
:1095E00077946794AA95D1F71301240199E8691635
:1095F00093E1790690E0890690E0990644F0F8E856
:109600006F2EF3E17F2E812C912C13012401D401C4
:10961000C30197FC0BC6892F9A2FAB2FBB27A7FD41
:10962000BA95680F791F2BA93CA94DA95EA92030D6
:1096300080EF38078FEF48078FEF58070CF0B7C45B
:1096400080911D05882309F46DC570934B046093C8
:109650004A04DA01C90157FDE1C59C01AD01B7FD1E
:10966000D8C569E055954795379527956A95D1F7FF
:1096700080911A0590911B05820F931F90931B05F3
:1096800080931A052BA93CA94DA95EA957FD9BC53E
:1096900039014A0143E095948794779467944A95F9
:1096A000D1F798E769169CEE79069FEF89069FEF40
:1096B000990644F438E7632E3CEE732E3FEF832E79
:1096C0003FEF932E60920E0570920F058092100569
:1096D00090921105D401C30197FC70C5892F9A2F70
:1096E000AB2FBB27A7FDBA9560914A0470914B043C
:1096F000680F791FAD8D2A2F332780911A0590911D
:109700001B052817390724F430931B0520931A05ED
:10971000BBA1BB2379F02B2F332727FD30958091F8
:109720001A0590911B052817390724F430931B055F
:1097300020931A052BA93CA94DA95EA921503440BC
:109740004040504074F08091BF049091C00420913B
:109750001A0530911B05820F931F9093C0048093CC
:10976000BF042BA93CA94DA95EA920503C4F4F4FE7
:109770005F4F74F48091BF049091C00420911A054A
:1097800030911B05821B930B9093C0048093BF0400
:10979000A1E0AA2EB12C20E030E040E050E0809122
:1097A000240590912505A0912605B091270560908C
:1097B0006B0870906C0880906D0890906E08861908
:1097C0009709A809B909815E914BAF4FBF4F8F53DD
:1097D0009C49A040B04020F0FBA1F9310CF453C4E7
:1097E0008D859E85AF85B88981509041A040B0405D
:1097F0000CF4CEC380911E05882309F483C4D09253
:109800004D04C0924C048D859E85AF85B889B7FD07
:10981000CDC4B7FDEFC4F9E0B595A79597958795A9
:10982000FA95D1F7019690931B0580931A052D8523
:109830003E854F85588957FDD8C4E3E05595479537
:1098400037952795EA95D1F72938F3E13F07F0E0FE
:109850004F07F0E05F070CF47CC488E893E1A0E0D8
:10986000B0E08093120590931305A0931405B09374
:1098700015058091120590911305A0911405B091E2
:109880001505B7FD8EC4892F9A2FAB2FBB27A7FDD7
:10989000BA95C0904C04D0904D04C80ED91E2D85A9
:1098A0003E854F855889203080EF38078FEF480775
:1098B0008FEF58070CF086C380911F05882309F4A9
:1098C0003DC4D0924D04C0924C04DA01C90157FD49
:1098D00084C49C01AD01B7FD7BC4B9E055954795A3
:1098E00037952795BA95D1F780911A0590911B0568
:1098F000820F931F90931B0580931A052D853E853B
:109900004F85588957FD7BC4A3E0559547953795FA
:109910002795AA95D1F728379CEE39079FEF49077D
:109920009FEF59070CF01EC488E79CEEAFEFBFEF26
:109930008093120590931305A0931405B093150519
:109940008091120590911305A0911405B091150511
:10995000B7FD5AC4892F9A2FAB2FBB27A7FDBA9505
:10996000C0904C04D0904D04C80ED91EAD8D2A2F46
:10997000332780911A0590911B052817390724F485
:1099800030931B0520931A05BBA1BB2379F02B2F25
:10999000332727FD309580911A0590911B052817D4
:1099A000390724F430931B0520931A052D853E8535
:1099B0004F855889215034404040504074F0809188
:1099C000BD049091BE0420911A0530911B05820FB1
:1099D000931F9093BE048093BD042D853E854F85D3
:1099E000588920503C4F4F4F5F4F14F00C94723EFB
:1099F0008091BD049091BE0420911A0530911B0501
:109A0000821B930B9093BE048093BD040C94723E12
:109A1000109245040C946A3A1092440450E00C945D
:109A20003D3A109246040C94133A8091F407E82EC4
:109A3000FF24002711276DA17EA18FA198A5A80161
:109A400097010E949D5839014A0180917B089091AD
:109A50007C08AA2797FDA095BA2F681A790A8A0A66
:109A60009B0A69A57AA58BA59CA5A80197010E94D0
:109A70009D5859016A0180918B0890918C08AA2702
:109A800097FDA095BA2FA81AB90ACA0ADB0AD40111
:109A9000C30197FC6EC23C014D0154E0959487943C
:109AA000779467945A95D1F7D601C501D7FC5DC26A
:109AB0005C016D0144E0D594C794B794A7944A958E
:109AC000D1F78091340490913504813491050CF4E0
:109AD00026C1C401B30123E030E040E050E00E9421
:109AE0009D5839014A01C601B50123E030E040E04C
:109AF00050E00E949D5859016A018091E307E82FC8
:109B0000FF27EE0FFF1FE255F84F808191810190F2
:109B1000F081E02DF7FD31C27A97A4F0C401B301C2
:109B200023E030E040E050E00E949D5839014A01B6
:109B3000C601B50123E030E040E050E00E949D58AE
:109B400059016A0191E269167104810491042CF0B3
:109B500030E2632E712C812C912CA0EE6A16AFEFAF
:109B60007A06AFEF8A06AFEF9A0644F420EE622E33
:109B70002FEF722E2FEF822E2FEF922EB1E2AB1627
:109B8000B104C104D1042CF090E2A92EB12CC12C57
:109B9000D12CE0EEAE16EFEFBE06EFEFCE06EFEF04
:109BA000DE0614F00C94233E80EEA82E8FEFB82E24
:109BB0008FEFC82E8FEFD82E0C94233E81509E4FEE
:109BC000AF4FBF4F0C947A3F80912F0482608093F7
:109BD0002F040C94BF3A4D5F5F4F0C94D6384D5F05
:109BE0005F4F0C948C3810925404109253040C94D0
:109BF000573901960C94DA431092F804ED2DFF27A3
:109C0000EE0FFF1FE255F84F808191818C34910552
:109C10001CF18091F9048F5F893C08F489C010928F
:109C2000520488EC8093F9041092310410923004AD
:109C30000C9456384EEF683E740714F00C945F4352
:109C400068EE7EEF0C945F437093FB046093FA041C
:109C50005A8349830C94A5431092F9040C94563806
:109C600081509E4FAF4FBF4F00C90396E0C8039687
:109C7000D0C8039683C9909581959F4F7DC99095D3
:109C800081959F4F0C947F3903960C9483398827D4
:109C900099278A199B090C94F53F84EF91E09093E2
:109CA0009B0380939A030C945D414F960C94414022
:109CB000695F7F4F0C94A83F709561957F4F0C941E
:109CC0009B3F81509E4FAF4FBF4F0C948F3F5C0125
:109CD000B094A194B108B394BCAAABAA0C94873FEA
:109CE000BD010C94B5408091120390911303895EDD
:109CF000934008F422C19091FF039A509093FF0380
:109D000080919907891B87BD8CE291E09093E903CC
:109D10008093E8038AEF8093B7030C94EF4280911D
:109D2000320490913304813491050CF4E6CED1CE07
:109D30008093F9040C9456388093F8045FCF88EC34
:109D400090E09093E9038093E803C601AA2797FD6A
:109D5000A095BA2FBC01CD012E893F89488D598D20
:109D60000E9429583B014C010E949D5830936C047D
:109D700020936B0410920D050C9415408081918105
:109D8000855B9F4F0CF0E9C08091F7048F5F809353
:109D9000F704893C10F40C94B63B2C3008F0D2C187
:109DA0002998A4E0B0E08FEF082E0E94C0581092CE
:109DB00052041092F70410923104109230040E9461
:109DC0007531A4E0B0E08091B5049091B60497FDA0
:109DD000D9C1892F990F990B082E0E94C058A5E070
:109DE000B0E08091B5049091B604082E0E94C0584E
:109DF000A6E0B0E08091B3049091B40497FDBFC198
:109E0000892F990F990B082E0E94C058A7E0B0E047
:109E10008091B3049091B404082E0E94C05808E0C9
:109E200010E08091AD049091AE04A091AF04B09188
:109E3000B004BC01CD010E949257DC01CB019C0112
:109E400097FDA3C1832F992787FD9A95D801082EE6
:109E50000E94C05809E010E08091AD049091AE04DA
:109E6000A091AF04B091B004BC01CD010E94925703
:109E7000DC01CB01D801082E0E94C0580E940803C3
:109E80000E9449263091E2070C94B63B08942108C1
:109E9000310830929B0320929A030C945D4181E03B
:109EA00080930D051092E1041092E2041092E304F5
:109EB0001092E404109277041092780410927904BE
:109EC00010927A040C94BF3AF095E195FF4F0C94F0
:109ED000DF3D61507E4F8F4F9F4F0C949F3D6150EF
:109EE0007E4F8F4F9F4F0C948A3D03960C941943DD
:109EF0002FE730E040E050E0C20ED31EE41EF51E16
:109F00000C943B4301960C942B43215F3F4F0C94E0
:109F10007443615E7F4F8F4F9F4F0C945043019667
:109F2000A11DB11D0C94C83D0196A11DB11D0C943D
:109F3000BC3D095F1F4F0C946640809112039091C5
:109F400013038436910508F073C09091FF03965F68
:109F5000D5CE8093F7040C94B63B4093F7040C9451
:109F6000B63B9091F2089BA308CB0F96A11DB11DA3
:109F70009FCD0F96A11DB11D8ECDF095E195FF4FA0
:109F8000CBCDB0921B05A0921A0510921C054BCBAD
:109F90002093120530931305409314055093150533
:109FA000B0921B05A0921A0510921E0578CC209243
:109FB0000E0530920F054092100550921105109237
:109FC0001D0598CB10921F05D1CC0E9408034CE5CB
:109FD00060EE77E00E94B0028091E80780FF10C039
:109FE0008091120390911303875B934038F4809122
:109FF0001203909113038E5E924010F40E946A1532
:10A000000E9475313BCF70934B0460934A04D09209
:10A010004D04C0924C04CB0177FDAFC0BC017595D7
:10A020006795C601D7FCA7C06C01D594C794D9C960
:10A0300020915004309151042451304030934F040A
:10A0400020934E042C5E3F4F1092670481E0809372
:10A05000B7030C94F342299A0C94ED3A60920E05E2
:10A0600070920F05809210059092110510921B05B9
:10A0700010921A05B8EE2B2EB3E03B2E30929B03C4
:10A0800020929A0337CB2093120530931305409307
:10A0900014055093150510921B0510921A05E8EE51
:10A0A0002E2EE3E03E2E30929B0320929A035ECC4C
:10A0B0001091E1070C94193B81509F4FAF4FBF4F58
:10A0C000F2C881509F4FAF4FBF4FD5C881509F4FAF
:10A0D000AF4FBF4F5BC981509F4FAF4FBF4F4BC971
:10A0E00061507F4F8F4F9F4F18C961507F4F8F4FE7
:10A0F0009F4FFFC8B0921B05A0921A0581E0809384
:10A100001C0591CA20931205309313054093140542
:10A1100050931505B0921B05A0921A0581E080931B
:10A120001E05BDCB20920E0530920F054092100502
:10A130005092110581E080931D05DCCA81E0809377
:10A140001F0514CC299A2DCEF095E195FF4F0C9464
:10A15000983B2093120530931305409314055093B8
:10A16000150587CB209312053093130540931405F2
:10A1700050931505E5CB019657CF01964FCF8150EF
:10A180009F4F3ECE81509F4F24CE21503F4F5ACEFD
:10A19000F095E195FF4F1EC9F095E195FF4F0C94A6
:10A1A000153B81509F4FAF4FBF4F6DCBB095A095E2
:10A1B000909581959F4FAF4FBF4F2BCB81509F4FB5
:10A1C000AF4FBF4F8BCA295F3F4F4F4F5F4F60CAA2
:10A1D00021503E4F4F4F5F4F80CBB095A09590954B
:10A1E00081959F4FAF4FBF4F74CB295F3F4F4F4F6C
:10A1F0005F4F23CB81509E4FAF4FBF4F0CCB295F9A
:10A200003F4F4F4F5F4F80CB81509F4FAF4FBF4F5E
:10A21000A1CB21503E4F4F4F5F4F23CAB095A09521
:10A22000909581959F4FAF4FBF4F17CA81509F4F59
:10A23000AF4FBF4FF0C9295F3F4F4F4F5F4FCBC963
:10A2400081509E4FAF4FBF4FB4C9B095A095909528
:10A2500081959F4FAF4FBF4FAAC920935108E696F3
:10A260000FB6F894DEBF0FBECDBFDF91CF911F9127
:10A270000F91FF90EF90DF90CF90BF90AF909F90A5
:10A280008F907F906F905F904F903F902F900895A8
:10A290008091340590913505A0913605B091370530
:10A2A00080932C0590932D05A0932E05B0932F0538
:10A2B0008091300590913105A0913205B091330520
:10A2C0008093280590932905A0932A05B0932B0528
:10A2D000089510923F0510923E0510923D05109290
:10A2E0003C05089584B1806A84B93D9A82E58CBDAD
:10A2F0001DBC459A81E0809392088AEA8093960873
:10A3000083E8809397088AE08093980810929A08CF
:10A310001092990810929C0810929B081092B8080D
:10A320001092B90888E48093BA088FE08093BB0844
:10A3300085E08093BC080895EF92FF920F931F93DE
:10A34000F8948091F4079927880F991F880F991F17
:10A350007C010027F7FC0095102F8091A7049091B5
:10A36000A804A091A904B091AA04BC01CD01A80140
:10A3700097010E949D5830939A08209399088091E4
:10A380009F049091A004A091A104B091A204BC01EB
:10A39000CD01A80197010E949D5830939C082093FD
:10A3A0009B08209187083091880840918908509136
:10A3B0008A08DA01C90173E0880F991FAA1FBB1F21
:10A3C0007A95D1F7820F931FA41FB51F820F931F99
:10A3D000A41FB51F20917A0330917B0340917C0329
:10A3E00050917D03BC01CD010E949D583093A2087D
:10A3F0002093A108E091B104F091B2048091680823
:10A4000090916908BF010E946858CB019B01220FFF
:10A41000331F220F331F280F391F280F391F37FD15
:10A42000EFC0359527953595279530939E08209355
:10A430009D088091830890918408BF010E9468580C
:10A440009B01220F331F220F331F260F371F260FAA
:10A45000371F37FDD2C03595279535952795309311
:10A46000A00820939F081092B2041092B104109299
:10A4700069081092680810928408109283088091ED
:10A48000980899278C30910509F487C08D30910583
:10A490000CF067C08A30910509F42CC10B9709F4C0
:10A4A000B2C078948091B808882309F49DC02091A7
:10A4B000BE083091BF08C90181509E4F8F5F934005
:10A4C000B0F44091C0085091C108CA0181509E4F1C
:10A4D0008F5F934060F48091E80785FF08C0309358
:10A4E0003F0520933E0550933D0540933C058091E8
:10A4F000C4089091C50821E0893692070CF0E8C0A5
:10A500009C0190936E0480936D0480916B049091F4
:10A510006C04281B390BC901845E9D4F68E671E00D
:10A520000E946858845B904090936A048093690409
:10A530002091C8083091C9088091E8039091E903FF
:10A540008217930740F48091A306882321F4309367
:10A55000E9032093E8038091BD08873609F04FC1D5
:10A56000BCC08D30910509F4FEC00E9709F099CF5B
:10A570008091B9088093A9088091BA088093AA08AD
:10A580008091BB088093AB088091BC088093AC0895
:10A59000809101018093AD0884CF8091A30686301D
:10A5A00018F01092A30685E08093A90880915004CA
:10A5B000909151049093AC088093AB088091290846
:10A5C0008093AA0880911F088093AD08809120088D
:10A5D0008093AE08809121088093AF087894809191
:10A5E000B808882309F063CF10923F0510923E050A
:10A5F00010923D0510923C0502C12D5F3F4F2BCFBD
:10A600002D5F3F4F0ECF8091E207E82FFF27EE0F1F
:10A61000FF1FE255F84F0190F081E02DE038F10581
:10A620000CF0D2C02FEFE138F20714F4E1E8FFEFAD
:10A63000E093A9088091E307E82FFF27EE0FFF1FA3
:10A64000E255F84F0190F081E02DE038F1050CF46F
:10A65000CEC0EFE7F0E0E093AA088091E107E82F91
:10A66000FF27EE0FFF1FE255F84F0190F081E02D1C
:10A67000E038F1050CF4B3C0EFE7F0E0E093AB088D
:10A680008091E007E82FFF27EE0FFF1FE255F84FFC
:10A690000190F081E02DE038F1050CF498C0EFE76F
:10A6A000F0E0E093AC08809162048093AD08809163
:10A6B00060048093AE0880915E048093AF0880911F
:10A6C0005C048093B00880915B048093B108E9CE6C
:10A6D00020916D0430916E0418CF8091CA08809348
:10A6E000F1088091CB088093F3088091CC08809387
:10A6F000F20885C0809143048093A90880914204A8
:10A700008093AA08809141048093AB088091400413
:10A710008093AC0880913F048093AD0880913E0403
:10A720008093AE0880913D048093AF0880913C04F3
:10A730008093B00880912F048093B108837F809329
:10A740002F0480911C0390911D038093B208809187
:10A75000F9078093B308A2E0B0E00E94B858802DBA
:10A760008093B4089ECE80911A088093A9088091A6
:10A770001B088093AA0880911C088093AB088091E5
:10A780001D088093AC0880911E088093AD088091CD
:10A7900022088093AE08809123088093AF088091AF
:10A7A00024088093B008809127088093B108809195
:10A7B00025088093B208809126088093B308809181
:10A7C00028088093B4086DCEEFE7F0E031CF8FEF2B
:10A7D000E138F8070CF065CFE1E8FFEF62CF6FEFEB
:10A7E000E138F6070CF04ACFE1E8FFEF47CF4FEF33
:10A7F000E138F4070CF02FCFE1E8FFEF2CCF1F91E9
:10A800000F91FF90EF90089580919208882309F4AA
:10A810003BC0459886E998E090939408809393080C
:10A8200080914005E82FFF27E854FC4F982F9F5F49
:10A83000808180939808963008F027C09093400557
:10A84000109292080E949C5181E08093950800002C
:10A8500000000000000000000000000000000000F8
:10A8600000000000000000000000000000000000E8
:10A8700000000000000000000000000000008091C7
:10A8800096088093B5088EBD089510924005D8CFE4
:10A8900020919208222309F045C00DB407FE42C062
:10A8A00084E08093E703459A3EB58091420599275D
:10A8B0008130910509F437C0823091050CF451C004
:10A8C000029709F439C020919508203208F030C071
:10A8D000459800000000000000000000000000009B
:10A8E0000000000000000000000000000000000068
:10A8F0000000000000000000000000000000000058
:10A900000000E0919308F0919408E20FF11D80811E
:10A910008EBD8091B5089081890F8093B5082F5F17
:10A92000209395080895353551F120934205CBCFFA
:10A9300081E080939208F3CF8091B708E82FFF273A
:10A94000E952F74F30838F5F8093B7088A3100F167
:10A9500080914305381711F12093B80810924205F1
:10A96000B2CF892B09F0AFCF2093B70830934305BE
:10A97000313809F0A8CF81E080934205A4CF8091BF
:10A980004305830F8093430582E0809342059BCF6C
:10A9900080914305830F8093430595CF8AE1E7EDCE
:10A9A000F8E0ADEBB8E001900D928A95E1F781E017
:10A9B0008093B8081092420586CF87B18C6087B922
:10A9C000429843981092450580E88093BF03109207
:10A9D00044058093BE03089580914A0581508F3FBE
:10A9E00019F080934A05089584E080934A05909178
:10A9F00017089B3F60F49B3FA0F080916A088A3063
:10AA000080F480911608882354F0429A11C08091F6
:10AA10006A08873E80F3809116088823B4F3429831
:10AA200007C08091450581508F3FB9F1809345055E
:10AA3000909119089B3F50F080917E08873E30F03E
:10AA400080911808882364F0439808959B3F50F044
:10AA500080917E088A3030F4809118088823A4F30E
:10AA6000439A08958091440581508F3F19F0809357
:10AA70004405089580917E0881508093440580911B
:10AA8000BE038130F1F0982F96959093BE0380918C
:10AA900018088923C9F2439A089580916A08815061
:10AAA000809345058091BF03813069F0982F96957A
:10AAB0009093BF0380911608892309F4B0CF429A7E
:10AAC000B7CF90E8E2CF90E8F3CF8091C9008F77BD
:10AAD0008093C9008091C9008F7B8093C9008091C9
:10AAE000C9008F7D8093C9005A9A52981092CD0068
:10AAF00084E190E08093CC008091C80082608093D4
:10AB0000C80080E18093C9008091CA008F7780934C
:10AB1000CA008091CA008F7B8093CA008091CA00CE
:10AB20008F7D8093CA008091CA008F7E8093CA0077
:10AB30008091CA00877F8093CA008091C9008B7F73
:10AB40008093C9008091CA0084608093CA0080917C
:10AB5000CA0082608093CA008091C80087FF0CC041
:10AB60008091CE008091C800882334F48091CE007B
:10AB70008091C8008823A4F38091C90080688093E5
:10AB8000C90008951F920F920FB60F921124EF92F1
:10AB9000FF920F931F932F933F934F935F936F9366
:10ABA0007F938F939F93AF93BF93CF93DF93EF9355
:10ABB000FF930091CE008091C0039091C103019753
:10ABC00009F45EC080915305909154050E94D911FB
:10ABD000482F552760914B0570914C056115710503
:10ABE000E9F16130710509F4EAC06230710509F4D8
:10ABF000EDC06330710509F45CC081E090E0909392
:10AC0000C1038093C00310924E0510924D0510921F
:10AC100052051092510580914D0590914E05409737
:10AC2000A0F08091510590915205892B11F410925A
:10AC3000790310924E0510924D0510925205109214
:10AC4000510510924C0510924B0587E090E00E9450
:10AC5000D0119093540580935305FDC0452BD9F234
:10AC600081E090E090934C0580934B0580914D05D9
:10AC700090914E05019690934E0580934D05CBCF54
:10AC80001092C1031092C00387E090E00E94D0119F
:10AC9000909354058093530510924E0510924D05E4
:10ACA00010924C0510924B051092500510924F05D2
:10ACB000D2C0452B09F0A1CF82E090E090934C05E3
:10ACC00080934B0580914D0590914E050196909390
:10ACD0004E0580934D0580914F0590915005FC01E4
:10ACE000F695E795F695E795EF70F0703196982F09
:10ACF0008827202F3327822B932B937080509240EC
:10AD00000E946858EB30F10508F085CF7F01EE0E08
:10AD1000FF1EF701E255F84F808191819B01281BAE
:10AD2000390BC90137FD90C0069754F480915B043C
:10AD3000883C08F087C080915B04865F80935B0449
:10AD4000F701E255F84F808191819C01220F331F5A
:10AD5000280F391F260F371F37FD7AC0E901D59517
:10AD6000C795D595C795CB0101968C179D070CF01B
:10AD70005CC0219780915B04843B08F450C087013C
:10AD80000C53184FF701E255F84F80819181FE0175
:10AD9000E81BF90BCF0163E070E00E946858CB011B
:10ADA000880F991F860F971FF801918380832EEAE1
:10ADB00037E0E20EF31EF701D183C0832CCF41159B
:10ADC000510509F012CF82E090E04CCF41155105BA
:10ADD00009F00FCF802F99279093500580934F054E
:10ADE00020914D0530914E052230310569F083E008
:10ADF00090E090934C0580934B052F5F3F4F30932D
:10AE00004E0520934D0507CF80914F0587FF15C054
:10AE100081E090E09093520580935105E8CFF701CF
:10AE2000EC53F84F11821082C2CF61507040C617A8
:10AE3000D7070CF09FCF21969DCF5093520540939A
:10AE40005105D5CF88EC7ACF909581959F4F6CCFE7
:10AE50002D5F3F4F83CFFF91EF91DF91CF91BF9156
:10AE6000AF919F918F917F916F915F914F913F91A2
:10AE70002F911F910F91FF90EF900F900FBE0F90A9
:10AE80001F901895FC014150504030F0019006167B
:10AE9000D1F73197CF010895882799270895505801
:10AEA000192EA6D001D08CC0BA1762077307840789
:10AEB0009507B1F188F40EF410940B2EBA2FA02D43
:10AEC000062E622F202D072E732F302D082E842F53
:10AED000402D092E952F502DFF275523B9F0591BD2
:10AEE00049F0573E98F0469537952795A795F0403D
:10AEF0005395C9F776F0BA0F621F731F841F30F4A1
:10AF0000879577956795B795F040939517FA0F2E2B
:10AF10000895BF1BBB27BA0B620B730B840BF6CFD4
:10AF2000DEF692C097FB70D09F3738F0FEE9F91B30
:10AF3000982F872F762F6B2F05C083C09695879506
:10AF400077956795F150D0F73EF490958095709580
:10AF500061957F4F8F4F9F4F0895E89403C097FBF3
:10AF60000EF4F3DFB62F672F782F892F9EE9002488
:10AF700027C00ED05EF004C00BD026F001C008D070
:10AF800019F020F48FEF089580E0089581E008958E
:10AF900097FB092E052600F868942DD0E89407FC4D
:10AFA00007C0621773078407950721F008F400941F
:10AFB0000794989408959A95BB0F661F771F881F72
:10AFC00011249923A1F08823B2F79F3F59F0BB0FBA
:10AFD00048F421F4002011F460FF04C06F5F7F4F3C
:10AFE0008F4F9F4F881F9795879597F9089529C090
:10AFF000052E092607FA440F551F5F3F79F0AA274F
:10B00000A51708F051E04795880F991F9F3F31F031
:10B01000BB27B91708F091E0879508959F919F91FC
:10B02000112414C097FB880F991F9F3F31F0BB2755
:10B03000B91708F091E0879508959F919F91112489
:10B0400005C0662777278827992708959FEF80EC0A
:10B050000895629FD001739FF001829FE00DF11D62
:10B06000649FE00DF11D929FF00D839FF00D749F82
:10B07000F00D659FF00D9927729FB00DE11DF91F2E
:10B08000639FB00DE11DF91FBD01CF01112408958B
:10B09000991B79E004C0991F961708F0961B881F2A
:10B0A0007A95C9F780950895AA1BBB1B51E107C08B
:10B0B000AA1FBB1FA617B70710F0A61BB70B881F48
:10B0C000991F5A95A9F780959095BC01CD010895D7
:10B0D00097FB092E07260AD077FD04D0E5DF06D0BE
:10B0E00000201AF4709561957F4F0895F6F79095BA
:10B0F00081959F4F0895A1E21A2EAA1BBB1BFD014B
:10B100000DC0AA1FBB1FEE1FFF1FA217B307E40746
:10B11000F50720F0A21BB30BE40BF50B661F771F9E
:10B12000881F991F1A9469F760957095809590957E
:10B130009B01AC01BD01CF01089597FB092E0526A7
:10B140000ED057FD04D0D7DF0AD0001C38F450953C
:10B150004095309521953F4F4F4F5F4F0895F6F73B
:10B1600090958095709561957F4F8F4F9F4F089573
:10B17000F999FECFB2BDA1BDF89A119600B4089519
:10B18000F999FECFB2BDA1BD00BC11960FB6F894DF
:10B19000FA9AF99A0FBE08950190F2DF1A94E1F736
:02B1A000089510
:10B1A200010A01416E676C654E69636B20202020A5
:10B1B200202020416E676C65526F6C6C202020202D
:10B1C2002020204163634E69636B202020202020D1
:10B1D200202020416363526F6C6C202020202020AD
:10B1E2002020204779726F47696572202020202035
:10B1F20020202048696768742056616C756520209C
:10B202002020204163635A2020202020202020205B
:10B212002020204761732020202020202020202071
:10B22200202020436F6D706173732056616C7565C9
:10B23200202020566F6C746167652020202020201A
:10B24200202020456D7066616E672020202020201E
:10B252002020204779726F204B6F6D7061737320CD
:10B262002020204D6F746F722046726F6E74202002
:10B272002020204D6F746F72205265617220202051
:10B282002020204D6F746F72204C65667420202040
:10B292002020204D6F746F722052696768742020DD
:10B2A200202020202020202020202020202020209C
:10B2B200202020202020202020202020202020208C
:10B2C200202020202020202020202020202020207C
:10B2D2002020204D4B334D61672043616C537461D4
:10B2E200746520536572766F202020202020202054
:10B2F200202020202020202020202020202020204C
:10B30200202020202020202020202020202020203B
:10B31200202020202020202020202020202020202B
:10B32200202020202020202020202020202020201B
:10B33200202020202020202020202020202020200B
:10B3420020202020202020202020202020202020FB
:10B352002020204B616C6D616E5F4D617844726993
:10B362006674202020202020202020202020202041
:10B3720020202020202020202020202020202020CB
:10B382002020204750535F4E69636B2020202020ED
:10B392002020204750535F526F6C6C2020202020C9
:10B3A200202020C8000164FF01FFFF01FC0101739E
:10B3B2007373FF03007D0000C409C40964000B48D5
:10B3C200616C6C6F2057656C740000000000000017
:10B3D200000000000000000000000000000000006B
:10B3E200000000000000000000000000000000005B
:10B3F200000000000000000000000000000000004B
:10B402000000000000000000000000000000000139
:10B4120002030405060708090A010B050000ECFFF8
:10B422006440415A46640A02969608403A10FB303C
:10B43200380190D0030090D00300F40164005370EF
:10B442006F727400004E6F726D616C00004265672E
:10B45200696E6E65720000640A0B0D0B0C0E010121
:02B462000100E7
:00000001FF
/tags/V0.72p/Hex-Files/Flight-Ctrl_MEGA644_V0_72p_Octo2.hex
0,0 → 1,2888
:100000000C9493020C94AE020C94AE020C94AE02CB
:100010000C94AE020C94AE020C94AE020C94AE02A0
:100020000C94AE020C9453120C94AE020C94AE02DB
:100030000C9411230C94AE020C94AE020C94AE02FC
:100040000C94AE020C94AE020C94ED100C94AE0223
:100050000C9479060C94AE020C9440060C94AE02FB
:100060000C947A160C94AE020C94B7210C94AE0248
:100070000C94BC550C94AE020C94AE0226171917C2
:100080000D17F316D916B516C716F519291926191D
:10009000B5161319F918D918B918671815183217A1
:1000A000102223221722642274225A223F22DE21A8
:1000B000FC216B229222F8210022FC218E220B22AD
:1000C000F8210022FC218A226F22F821ED210A0D5D
:1000D000466C69676874436F6E74726F6C0A0D4882
:1000E000617264776172653A25642E25640A0D5346
:1000F0006F6674776172653A5625642E25642563B0
:1001000020000A0D3D3D3D3D3D3D3D3D3D3D3D3DDC
:100110003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D0F
:100120003D3D000A0D496E69742E20454550524FE1
:100130004D003A2047656E65726174696E672044B0
:10014000656661756C742D506172616D6574657260
:10015000207573696E67206F6C6420537469636BDC
:100160002053657474696E6773000A0D4143432020
:100170006E696368742061626765676C696368654E
:100180006E21000A0D42656E75747A6520506172A9
:10019000616D657465727361747A202564000A0D5F
:1001A0004162676C65696368204C7566746472753A
:1001B000636B73656E736F722E2E004F4B0A0D00CA
:1001C0000A0D537465756572756E673A200048654F
:1001D0006164696E67486F6C64004E657574726126
:1001E0006C000A0A0D002E005B25695D005B256925
:1001F0005D002B204D696B726F4B6F7074657220C0
:100200002B0048575625642E256420535725642E0D
:1002100025642563204F43544F0053657474696E01
:10022000673A202564200028632920486F6C6765A1
:1002300072204275737300486F6568653A2020200C
:10024000202025356900536F6C6C486F6568653AEE
:1002500020253569004C756674647275636B3A20AD
:10026000253569004F66662020202020203A202571
:100270003569004B65696E65200048F668656E72E9
:100280006567656C756E6700616B742E204C6167E5
:1002900065004E69636B3A202020202020253569B7
:1002A00000526F6C6C3A20202020202025356900F8
:1002B0004B6F6D706173733A202020253569004BB8
:1002C000313A25346920204B323A25346920004BDD
:1002D000333A25346920204B343A25346920004BC9
:1002E000353A25346920204B363A25346920004BB5
:1002F000373A25346920204B383A25346920004E9E
:10030000693A2534692020526F3A25346920004724
:10031000733A253469202047693A25346920005012
:10032000313A253469202050323A25346920005072
:10033000333A253469202050343A25346920004767
:1003400079726F202D2053656E736F72004E696352
:100350006B2025346920282533692E256929005210
:100360006F6C6C2025346920282533692E25692976
:1003700000476965722025346920282533692900E2
:100380004E69636B2025346920282533692E257832
:100390002900526F6C6C2025346920282533692E82
:1003A000257829004769657220253469202825337E
:1003B0006929004E69636B2025346920282533693B
:1003C00029282533692900526F6C6C202534692057
:1003D0002825336929282533692900476965722052
:1003E00025346920282533692928253369290041C6
:1003F0004343202D2053656E736F72004E69636B0B
:100400002025346920282533692900526F6C6C201F
:1004100025346920282533692900486F6368202521
:100420003469202825336929005370616E6E756E1A
:10043000673A202025356900456D70662E50656746
:10044000656C3A253569004B6F6D706173732020C0
:100450002020202020005269636874756E673A205E
:1004600020253569004D657373776572743A2020D5
:100470002535690053746172743A202020202025AC
:10048000356900506F7469313A2020253369005076
:100490006F7469323A202025336900506F746933D4
:1004A0003A202025336900506F7469343A202025A2
:1004B000336900536572766F202000536574706F46
:1004C000696E742020253369005374656C6C756EF9
:1004D000673A202533690052616E67653A253369B2
:1004E0002D2533690045787465726E436F6E7472A2
:1004F0006F6C2020004E693A2534692020526F3AF3
:10050000253469200047733A253469202047693A29
:10051000253469200048693A253469202043663A29
:1005200025346920000011241FBECFEFD0E1DEBFCB
:10053000CDBF13E0A0E0B1E0E6E9F1EB02C0059029
:100540000D92A23CB107D9F718E0A2ECB3E001C0CC
:100550001D92A43FB107E1F70C9451030C940000E5
:10056000282FFB018150853008F023E0842F992744
:10057000332721503040829FD001839FB00D929F3E
:10058000B00D1124AC59BF4F019724F00E94B2580E
:100590000192FACF0E94D7540895863038F085E052
:1005A000A2E0B0E0082E0E94BA5808958823C1F74F
:1005B0000895582F863048F155E0842F9927252F2C
:1005C000332721503040829FD001839FB00D929FEE
:1005D000B00D1124AC59BF4FFB01019724F00190DD
:1005E0000E94BA58FACFA2E6B0E0042E0E94BA5890
:1005F000A0E5B0E088E0FB01182E0E94C658852FC8
:100600000E94CD020E94D75408958823B1F6089520
:10061000CF93A2E0B0E00E94B258802DC82F815045
:10062000853020F0C3E08C2F0E94CD028C2F9927BB
:10063000CF9108958091E007E82FFF27EE0FFF1F6D
:10064000E255F84F808191818D5E9F4F14F010929A
:100650000201808191818A5B9F4F24F48091020185
:10066000882319F02091A30615C081E08093020130
:100670002091A306280F2093A306253038F088EE9A
:1006800093E09093E9038093E80304C0822F0E94D3
:100690004926E8CF822F992790937107809370079E
:1006A0000895CFEFD0E1DEBFCDBF14B815B8C7EEC7
:1006B000D3E0E297D7FFFDCFC8EED3E0189BD4C2BA
:1006C000199BD0C22DE02093010181E887B93E9AA1
:1006D0008FEF88B98BE184B981E085B98EE38AB95F
:1006E000579A87E48BB9469A84B7877F84BF8091F5
:1006F00060008861809360001092600080ED97E058
:100700009093E9038093E8031092560410925504E5
:100710001092B3071092B207109258041092570427
:1007200010925A0410925904243108F496C288E8B1
:1007300094E0A0E0B0E080937A0390937B03A093D1
:100740007C03B0937D032A3009F485C2243109F477
:1007500082C2289A0E943C120E940C120E942E0B08
:100760000E94FC220E9464150E9480210E946C510C
:10077000789480E790E09F938F9388E490E09F9334
:100780008F931F921F92809101016AE00E9442584C
:10079000892F99279F938F93809101010E9442583E
:1007A00099279F938F938EEC90E09F938F931F9246
:1007B0000E94580E8091C8002DB73EB7235F3F4F6F
:1007C0000FB6F8943EBF0FBE2DBF803209F43BC276
:1007D00082E091E09F938F931F920E94580E809128
:1007E00001010F900F900F908C3008F02AC2299AC7
:1007F00049E060EE77E083E00E94B00201E010E0A3
:10080000D8010E94B258802D8A3409F02EC1A4E08C
:10081000B0E00E94B258802D853008F007C20E94D7
:1008200008034CE560EE77E00E94B0020E940803E6
:1008300099279F938F9383E891E09F938F931F92C3
:100840000E94580E8091E8070F900F900F900F9024
:100850000F9080FDC7C10E947531809101018A30DF
:1008600009F4BEC1843109F4BBC1289A80ED97E038
:100870009093E9038093E80385E58093A50680ECD7
:1008800091E09F938F931F920E94580E8091E807EA
:100890000F900F900F9082FFC6C18EEC91E09F9356
:1008A0008F931F920E94580E0F900F900F9082EE20
:1008B00091E09F938F931F920E94580E0E94C11A3D
:1008C00088E893E190939D0380939C0381E080935B
:1008D000A4060F900F900F908091EC03882309F4E9
:1008E00071C080910E03882309F46CC01092EC0350
:1008F0008091A306882309F47CC00E941A030E94F9
:100900001934209101012A3009F47CC0243109F402
:1009100079C0289A80910603882309F45BC081502E
:100920008093060380915B04882329F080915B0407
:10093000815080935B0480919C0390919D03892B4F
:1009400009F464C080919C0390919D03019790935A
:100950009D0380939C032A3009F456C0243109F486
:1009600053C0289A8091EC03882321F0809152048F
:10097000882311F40E94690B0E94D808CE010E94BE
:10098000D9118823E9F08091F907282F3327809126
:100990001C0390911D038217930744F4809109036F
:1009A00090910A038F5F9F4F09F452C00E94FE533B
:1009B00084E08093E70384E190E00E94D011EC0191
:1009C0000E94E6548091E703882309F085CF0E94B6
:1009D000425482CF8093AF0610923B0410923A04A7
:1009E0001092390410923804109237041092360491
:1009F00099CF0E94C7370E941934209101012A30F3
:100A000009F084CF289886CF2898ACCF85E090E075
:100A100090939D0380939C030E949A2180910903E7
:100A200090910A038F5F9F4F09F09CCF80915204F1
:100A3000882309F497CF80E197E29093E9038093AC
:100A4000E80380E890E090930A03809309038ACF3B
:100A500080E797E19093E9038093E80380E093E0D7
:100A600090930A0380930903A1CF0E94222483E27A
:100A700091E09F938F931F920E94580E61E0762E13
:100A80000F900F900F905FE4E52EF12CE00EF11E19
:100A900040E5C42ED12CC00ED11E31E5A32EB12CC1
:100AA000A00EB11E22E5822E912C800E911E95E59E
:100AB000492E512C400E511E86E5282E312C200E39
:100AC000311E32E0731609F4D5C083E0781609F4BC
:100AD000D4C093E0971508F4CDC080910101843112
:100AE00068F085E08093F807109210088BE18093FE
:100AF000F4078EE480930D0880930E08D7010E94BE
:100B0000B258802D8C3008F068C0D6010E94B258CF
:100B1000802D8C3008F061C0D5010E94B258802D24
:100B20008C3008F05AC0D4010E94B258802D8C300D
:100B300008F053C0D7010E94B258802D8093E0077F
:100B4000D6010E94B258802D8093E107D5010E9402
:100B5000B258802D8093E207D4010E94B258802DB4
:100B60008093E307A4E5B0E00E94B258802D809303
:100B7000E407A5E5B0E00E94B258802D8093E50718
:100B8000D2010E94B258802D8093E607D1010E94C5
:100B9000B258802D8093E70721E0721651F482E36A
:100BA00091E09F938F931F920E94580E0F900F9089
:100BB0000F904CE560EE77E0872D0E94D902739488
:100BC00095E0971508F07DCF83E00E94CD028AE47E
:100BD000D801082E0E94BA581ACE0E940924E9CFE3
:100BE000289844CE8EE991E09F938F931F920E94A4
:100BF000580E88EE93E00E94D011EC010E946A1515
:100C00000F900F900F90CE010E94D9118823D9F335
:100C10008BEB91E09F938F931F920E94580E0F9041
:100C20000F900F9018CE8AED91E039CE8AE691E0D0
:100C30009F938F931F920E94580E0F900F900F90CA
:100C4000EECD2998D5CD8091CA00863009F0C0CD6F
:100C50000E945F55BDCD28987DCD8BE095E0A0E04A
:100C6000B0E069CD2BE02FCD199B02C024E12BCD44
:100C70002AE029CD0E94D22430CF0E9484252DCF96
:100C80001F920F920FB60F9211248F939F93EF93A1
:100C9000FF93809108038823A9F48091D803909151
:100CA000D9030196FC01EB59FA4FE081ED3079F060
:100CB0008639910561F09093D9038093D803E0932E
:100CC000C6000EC01092D9031092D80309C010922A
:100CD000D9031092D80381E080930803E093C60003
:100CE000FF91EF919F918F910F900FBE0F901F90EA
:100CF00018951F920F920FB60F9211242F933F93C6
:100D00004F935F938F939F93AF93BF93EF93FF9313
:100D100090E08091C6008093D0035091DE03563955
:100D200010F09093DF038091D0038D3091F02091EB
:100D3000DF03822F99278130910509F46AC0823040
:100D400091050CF48CC0029709F47DC01092DF036A
:100D5000A6C02091DF03223061F79093DF03852F37
:100D600099278E54994FFC01329740812091DA03E4
:100D70003091DB03241B3109DC0111978C91281B76
:100D80003109C9019F709093DB038093DA0300243B
:100D9000880F991F001C880F991F001C892F902D08
:100DA000982F935C9093DC032F733070235C209317
:100DB000DD038081891709F46CC090E08091CD0338
:100DC0008F5F8093CD038091CF03882309F067C0A4
:100DD000992309F464C081E08093CF03580F5093A6
:100DE000CC035150E52FFF27EE54F94F8DE080835F
:100DF0008091B406823509F052C088E190E02CE081
:100E00000FB6F894A895809360000FBE2093600001
:100E100046C02F5F2093DF03E52FFF27EE54F94FE5
:100E20008091D00380835F5F5093DE032091D003D5
:100E30008091DA039091DB03820F911D9093DB0385
:100E40008093DA032CC0E52FFF27EE54F94F8091F1
:100E5000D0038083563938F31092DF03E7CF892B14
:100E600009F074CF8091D003833259F08091D00380
:100E70008093B20681E08093DE038091D0039927AE
:100E8000DDCF8091CF03882389F781E08093DF0352
:100E9000EDCF8C91821709F090CF91E094CFFF9124
:100EA000EF91BF91AF919F918F915F914F913F9142
:100EB0002F910F900FBE0F901F901895AC01A0E0DE
:100EC000B0E09D01A817B90748F4E5E6F5E0819187
:100ED000280F311D1196A417B507C8F33F70FD0107
:100EE000EB59FA4FC9010024880F991F001C880F85
:100EF000991F001C892F902D835C80831196FD0122
:100F0000EB59FA4F2F733070822F835C8083AA597C
:100F1000BA4F8DE08C931092080380916505809301
:100F2000C6000895BF92CF92DF92EF92FF920F9387
:100F30001F93CF93DF93CDB7DEB72C859D857E853C
:100F4000BB2483E2809365059F59909366052093A7
:100F5000670503E010E0772309F4ADC0CF84D8889B
:100F600043E1E42EF12CEC0EFD1EA989BA897150E3
:100F7000109709F4A0C0109709F43CC0F601EB0DDE
:100F8000F11DB3949081119789F47723A1F1F701B2
:100F900022E030E0E20EF31ED701C080D180E20EE5
:100FA000F31E0D90BC91A02DBB247150109719F128
:100FB000F601EB0DF11DB3944081119709F466C061
:100FC0001097D1F0F601EB0DF11DB39460811197EC
:100FD000A1F4772391F0F7013296D701CD90DC9000
:100FE00032E0E32EF12CEE0EFF1EA081B181BB2476
:100FF000715003C090E040E060E0F801EB59FA4F17
:10100000892F86958695835C80830F5F1F4FF8013B
:10101000EB59FA4F892F992783709070829592959A
:10102000907F9827807F982755279A01329522959F
:101030002F7023273F702327822B835C80830F5FD1
:101040001F4FF801EB59FA4F4F705070440F551F66
:10105000440F551F862F99270024880F991F001CC5
:10106000880F991F001C892F902D842B835C80830F
:101070000F5F1F4FF801EB59FA4F6F73635C60838A
:101080000F5F1F4F109709F076CF15C0772309F433
:10109000B3CFF701A2E0B0E0EA0EFB1ED701C0809B
:1010A000D18022E030E0E20EF31E0D90BC91A02D25
:1010B000BB24715085CFC8010E945E07DF91CF919C
:1010C0001F910F91FF90EF90DF90CF90BF90089508
:1010D000A3E07A2F4091CC03465009F45FC0E72F7C
:1010E000FF27EE54F94F80818D537F5FE72FFF2755
:1010F000EE54F94F20812D537F5FE72FFF27EE54E9
:10110000F94F30813D537F5FE72FFF27EE54F94FB2
:1011100060816D537F5F9927880F991F880F991FF2
:10112000522F52955F70582B822F99278F70907095
:1011300082959295907F9827807F9827232F2695D8
:101140002695282B832F99278370907000249695DD
:1011500087950794969587950794982F802D682BEF
:1011600041504F3FD9F0EA2FFF27EE54F94F5083FB
:10117000AF5F41504F3F91F0EA2FFF27EE54F94FF8
:101180002083AF5F41504F3F49F0EA2FFF27EE54D5
:10119000F94F6083AF5F442309F0A1CF85EB96E060
:1011A0009093CB038093CA03A350A093C9030895DF
:1011B000CF93DF93CDB7DEB722970FB6F894DEBF9B
:1011C0000FBECDBF8091CF03882309F42AC20E94AD
:1011D00068088091B306823609F471C08091B40624
:1011E00099278436910509F457C08536910584F511
:1011F0008136910509F4D0C0823691050CF475C092
:101200008236910509F451C183369105C1F480916C
:10121000C2039091C303892B09F0F2C1E091CA0384
:10122000F091CB039081992309F0E0C190818AE08D
:10123000989FC00111249093C3038093C20310921E
:10124000CF031092CB031092CA031092C903E9C1D5
:101250008C36910509F492C08D3691050CF066C06C
:101260008736910509F4FAC08836910541F78FEF6A
:1012700080930603E091CA03F091CB0380819091A3
:101280002304892B80932304882311F01092D10327
:1012900081E08093D503D3CFE091CA03F091CB03D3
:1012A00090818AE0989FC001112490930403809359
:1012B0000303892B21F281E08093D403C0CF809176
:1012C000B40699278137910509F475C082379105D5
:1012D000CCF58B34910509F46CC18037910509F088
:1012E0007DCF81E08093D20379CF8B34910509F0D3
:1012F000A6CFE091CA03F091CB03808191819093B6
:101300006E0480936D0420916B0430916C04821BF9
:10131000930B845E9D4F68E671E00E946258845B87
:10132000904090936A048093690489CF8437910533
:1013300009F498C08637910509F081CF81E0809348
:10134000D3037DCF8337910509F4BFC0843791055E
:1013500009F044CFE091CA03F091CB0380819181E1
:10136000A281B3818093C4039093C503A093C60365
:10137000B093C7038FEF8093060330CF8FEF809336
:101380000603E091CA03F091CB038081809324048B
:1013900081E08093D60353CFE091CA03F091CB0351
:1013A000E081E03208F453C08FE1809307038FEFB0
:1013B0008093060344CFE091CA03F091CB03808170
:1013C0008F3F09F422C18081882309F043C081E066
:1013D0008083E091CA03F091CB034CE560EE77E0A7
:1013E00080810E94B002809108038823E1F3E0919C
:1013F000CA03F091CB0380818A838AE489838CE5D8
:1014000090E09F938F9380EE97E09F938F9321E0DE
:1014100030E03F932F93CE01820F931F9F938F93C2
:101420003F932F93CE0102969F938F9383E08F93E8
:1014300081E08F9381E58F930E9492078DB79EB7CD
:101440000F960FB6F8949EBF0FBE8DBFC7CEE09328
:101450000703ADCF863008F285E0BACF81E08093F4
:10146000D703EDCEE091CA03F091CB038081918147
:10147000A281B3818093C4039093C503A093C60354
:10148000B093C703809108038823E1F31F928091F2
:1014900005038F9384E58F930E9492078FEF8093CB
:1014A00006030F900F900F90CACEA091CA03B0917F
:1014B000CB038BE0E5EAF6E00D9001928A95E1F727
:1014C0008091AE0680938A0772CF2091CA03309133
:1014D000CB03D9018C918150853020F4F9018181B1
:1014E0008A34E9F01A82809108038823E1F381E0CD
:1014F00090E09F938F93CE0102969F938F9381E00C
:101500008F938F9383E58F930E949207EDB7FEB779
:1015100037960FB6F894FEBF0FBEEDBF5FCE60EEFC
:1015200077E08CE52E5F3F4FDB01F901982F0190AA
:101530000D929A95E1F722503040482FD9018C91B5
:101540000E94D90280910D089927AA27BB27BC01C8
:10155000CD0124EC39E040E050E00E942358DC014A
:10156000CB018093960390939703A0939803B09335
:10157000990380910E089927AA27BB27BC01CD01AA
:101580000E942358DC01CB01809392039093930334
:10159000A0939403B0939503E091CA03F091CB0319
:1015A00080810E94CD020E9408038A830E944926FE
:1015B0009ACFE091CA03F091CB03808191819093FF
:1015C0006E0480936D0420916B0430916C04821B37
:1015D000930B845E9D4F68E671E00E946258845BC5
:1015E000904090936A0480936904F8CD8AE0989FB4
:1015F000C00111240E94D01190936405809363056B
:10160000E091CA03F091CB0311CE0E940803E09150
:10161000CA03F091CB038083E091CA03F091CB031E
:10162000D2CE22960FB6F894DEBF0FBECDBFDF91AB
:10163000CF910895CF93C82F8A3029F08091C000B0
:1016400085FFFCCF04C08DE00E941A0BF7CFC0933A
:10165000C60080E090E0CF910895089588E18093DE
:10166000C1008091C00082608093C0008091C10061
:1016700080688093C1008091C10080648093C10024
:101680008AE28093C40080910303909104030E9436
:10169000D01190939206809391068CED90E00E9479
:1016A000D0119093B1068093B0061092930688E40F
:1016B000809394068FE0809397068AE08093950646
:1016C000109296061092CB031092CA031092C9038F
:1016D0000895EF92FF920F931F9380910803882340
:1016E00009F478C28091D503882309F082C08091E3
:1016F000D603882329F080910803882309F07FC14D
:101700008091D303882329F080910803882309F06E
:101710005BC18091D703882329F080910803882337
:1017200009F036C18091B0069091B1060E94D9119E
:10173000882329F080910803882309F0C8C080918C
:10174000030390910403892B09F084C18091D40391
:10175000882329F080910803882309F00FC2809123
:10176000C2039091C303892B09F07EC12091070326
:101770002F3F59F180E190E09F938F93822F99271B
:1017800082959295907F9827807F98278D5F9E4FB6
:101790009F938F9381E090E09F938F9387E093E0F6
:1017A0009F938F9382E08F9381E08F9381E48F9357
:1017B0000E9492078FEF809307038DB79EB70B9619
:1017C0000FB6F8949EBF0FBE8DBF80918A07882305
:1017D00029F080910803882309F05EC08091D2032C
:1017E000882309F4F7C180910803882309F4F2C122
:1017F00039C080910803882309F479CF0E94CA1A5E
:1018000084E190E09F938F939091D10384E1989F1E
:10181000C0011124815E9C4F9F938F9381E090E0E3
:101820009F938F9381ED93E09F938F9382E08F93AB
:1018300081E08F9388E48F930E9492078091D10377
:101840008F5F2DB73EB7255F3F4F0FB6F8943EBF71
:101850000FBE2DBF843008F4B8C11092D10310928E
:10186000D50345CF86E190E09F938F938EEA97E072
:101870009F938F9381E08F938F9380E58F930E9446
:1018800092071092D2038DB79EB707960FB6F894C1
:101890009EBF0FBE8DBF9EC181E090E09F938F934E
:1018A0008AE897E09F938F9381E08F938F9382E4F0
:1018B0008F930E94920710928A072DB73EB7295F37
:1018C0003F4F0FB6F8943EBF0FBE2DBF87CF80911C
:1018D000F4079927880F991F880F991F7C0100270B
:1018E000F7FC0095102F8091A7049091A804A09177
:1018F000A904B091AA04BC01CD01A80197010E94DE
:10190000975830939E0620939D0680919F04909156
:10191000A004A091A104B091A204BC01CD01A80132
:1019200097010E9497583093A00620939F068091BC
:1019300043048093A106809142048093A20688E02C
:1019400090E09F938F938DE996E09F938F9381E032
:101950008F9383E08F9387E78F930E949207809104
:10196000A3062DB73EB7295F3F4F0FB6F8943EBF91
:101970000FBE2DBF853018F086E08093A30683E666
:1019800090E00E94D0119093B1068093B006D7CE1C
:101990008BE090E09F938F9385EA96E09F938F93DF
:1019A00081E08F93809105038F9387E48F930E944A
:1019B00092071092D7038DB79EB707960FB6F8948B
:1019C0009EBF0FBE8DBFAECE8AE090E09F938F93F7
:1019D00083E996E09F938F9381E08F938F9386E5C1
:1019E0008F930E9492071092D3032DB73EB7295FC1
:1019F0003F4F0FB6F8943EBF0FBE2DBF8ACE0E9458
:101A0000CA1A80E590E09F938F938FE193E09F93B4
:101A10008F9321E030E03F932F938EE193E09F93EB
:101A20008F933F932F9384E294E09F938F9383E06F
:101A30008F9381E08F938CE48F930E949207109292
:101A4000D6038DB79EB70F960FB6F8949EBF0FBE04
:101A50008DBF56CE80919106909192060E94D91129
:101A6000882309F077CE72CE80916305909164054A
:101A70000E94D911882309F479CE80910803882324
:101A800009F474CE8091F4079927880F991F880F65
:101A9000991F7C010027F7FC0095102F8091A70467
:101AA0009091A804A091A904B091AA04BC01CD0111
:101AB000A80197010E949758309356052093550529
:101AC00080919F049091A004A091A104B091A204E0
:101AD000BC01CD01A80197010E9497583093580589
:101AE00020935705209187083091880840918908F4
:101AF00050918A08DA01C90103E0880F991FAA1FD3
:101B0000BB1F0A95D1F7820F931FA41FB51F820F29
:101B1000931FA41FB51F20917A0330917B0340913E
:101B20007C0350917D03BC01CD010E9497583093F6
:101B30005A05209359058EE090E09F938F9385E599
:101B400095E09F938F9381E08F938F9383E48F939E
:101B50000E9492078091C2039091C3030E94D0110A
:101B600090936405809363052DB73EB7295F3F4F7F
:101B70000FB6F8943EBF0FBE2DBFF8CD82E490E0C3
:101B80009F938F9388E497E09F938F9381E08F9347
:101B90008F9384E48F930E9492071092D4038DB7A1
:101BA0009EB707960FB6F8949EBF0FBE8DBF80916B
:101BB000030390910403009709F4D1CD0E94D01142
:101BC0009093920680939106CACD8093D103109290
:101BD000D5038DCD1F910F91FF90EF900895982F11
:101BE00080918B07813031F0892F0E941A0B282FAA
:101BF00033270CC080912504E82FFF27E15EFC4FBE
:101C000090838F5F8093250421E030E0C90108951F
:101C10000F931F93CF93DF938C01EB01672B71F030
:101C2000F80181918F010E94EF0D219739F0F801A1
:101C300081918F010E94EF0D219791F7DF91CF9154
:101C40001F910F9108950F931F93CF93DF938C01F2
:101C5000EB01672B81F0F8010F5F1F4F84910E9409
:101C6000EF0D219741F0F8010F5F1F4F84910E9403
:101C7000EF0D219781F7DF91CF911F910F9108957B
:101C8000CF93C82F181634F480E20E94EF0DC15094
:101C90001C16D4F3CF910895CF93C82F181634F49F
:101CA00080E30E94EF0DC1501C16D4F3CF9108952C
:101CB0002F923F924F925F926F927F928F929F925C
:101CC000AF92BF92CF92DF92EF92FF920F931F934A
:101CD000CF93DF93CDB7DEB7E0970FB6F894DEBFB2
:101CE0000FBECDBF26968FAD26972896EEADFFADE1
:101CF000289788249924540180938B0748E4C42EA4
:101D0000D12CCC0EDD1E7F01C701F70114911123E8
:101D100031F0153221F00894E11CF11CF6CFB70127
:101D2000681B790B09F095C0112309F43DC2089492
:101D3000E11CF11C1FA63FA4232C0FEF39A6F701CD
:101D40000894E11CF11C14911537C9F1812F8062B0
:101D50008837A9F1103209F440C0133209F48DC05C
:101D60001A3209F479C01D3209F476C01B32C9F168
:101D70001E32C9F1103309F48AC0812F8153893092
:101D800008F07EC060E070E0CB01880F991F880FDB
:101D9000991F880F991F860F971F680F791F610F72
:101DA000711D60537040F7010894E11CF11C1491FF
:101DB000812F80538A3040F3262E153739F630FEB6
:101DC0003DC0F60184E090E0C80ED91E808091806D
:101DD000A280B380103209F0C0CF89A5882309F012
:101DE000AECF19A7ACCFF7010894E11CF11C1491F8
:101DF0001A3209F451C060E070E014C0CB01880FC2
:101E0000991F880F991F880F991F860F971F680FBA
:101E1000791F610F711D60537040F7010894E11C38
:101E2000F11C1491812F80538A3040F3EFEF6F3F04
:101E30007E0714F46FEF7FEF062F86CFF60182E066
:101E400090E0C80ED91E808191814C01AA24BB2448
:101E500081CF0E94230E68CF1A3251F4F60182E03E
:101E600090E0C80ED91E208022200CF068CF21946B
:101E700090E1392AEFED3E2262CF98E0392A5FCF18
:101E80001836C9F01C36D1F481E0382A58CF34FC1A
:101E900056CFF0E23F2A53CFF60182E090E0C80E21
:101EA000D91E608171819FEF6F3F790714F46FEF46
:101EB0007FEF062F44CF24E0322A41CF133609F4B6
:101EC0004DC1143409F41FC1143609F41CC119366C
:101ED00009F419C11F3409F40FC11F3609F40CC1EC
:101EE000103709F4F9C0133709F4B2C0153509F4F5
:101EF000ECC0153709F4E9C0183509F444C01837A7
:101F000009F441C0112309F44FC1CE0101969DA7E8
:101F10008CA7198381E0482E19A6632C7724042D01
:101F20005FA4541857FC2DC029A5222331F10F5F5F
:101F3000050DC30180739070892B09F42FC12223F2
:101F400009F027C166FC1BC1C301807390708097A4
:101F500009F410C1852D0E944C0E842D992787FD10
:101F60009095BC018CA59DA50E94080E64FECCCE68
:101F7000822D801B0E94400EC7CE66FED9CF0E5F19
:101F8000D7CF5524D1CFE0E1EEA733FE07C08114AF
:101F90009104A104B10411F0F0E43F2A19A60FA79F
:101FA00007FD02C02FED3222CE0189969DA78CA796
:101FB00081149104A104B10419F49FA5992361F13E
:101FC000EEA54E2E55246624772418AA8414950471
:101FD000A604B70410F0F1E0F8ABC501B401A30109
:101FE00092010E947558DC01CB01082F8A30F0F471
:101FF000005DECA5FDA50293FDA7ECA7C501B4010A
:10200000A30192010E94755849015A01F8A9FF23C2
:10201000E1F62EA5283079F0632C7724CE010196C5
:10202000482EFCA54F1A28E2420E79CF095A1835DE
:1020300001F70F7DDECF632C772463FEEFCF0033F3
:1020400069F380E3ECA5FDA58293FDA7ECA7E6CF9D
:10205000F60182E090E0C80ED91E0190F081E02DDB
:10206000FDA7ECA7EF2B81F4FE013196FDA7ECA7AD
:1020700088E289838EE6818385E78B838CE68C8377
:102080008D8389E28E831F8207FD15C0802F9927DB
:1020900087FD9095AC0160E070E08CA59DA50E9445
:1020A0003C57009731F0482EFCA54F1A04150CF050
:1020B00033CF402E31CFECA5FDA501900020E9F7EC
:1020C00031974E2E2CA5421A27CF153511F481E0F9
:1020D000382A9AE09EA762CFF60182E090E0C80E0F
:1020E000D91E808191814C01AA24BB2490E19EA736
:1020F000E0E43E2A18E752CF1F3411F4E1E03E2A13
:10210000F8E0FEA74BCF143411F491E0392A30FEE9
:1021100018C0F60184E090E0C80ED91E808091803E
:10212000A280B380B7FE0AC0B094A094909480942B
:10213000811C911CA11CB11C8DE289A79AE09EA76D
:102140002ECFF60182E090E0C80ED91E80819181E9
:102150004C01AA2497FCA094BA2CE4CFFE0131963E
:10216000FDA7ECA7F60182E090E0C80ED91E8081A1
:102170008983D0CE822D801B0E944C0EEBCE80E353
:102180008AA71BA762E070E0CE018A960E94080E23
:10219000DBCE61E070E0CE018996F8CF822D801B06
:1021A0000E94400E29A5CBCEE0960FB6F894DEBF74
:1021B0000FBECDBFDF91CF911F910F91FF90EF9098
:1021C000DF90CF90BF90AF909F908F907F906F9057
:1021D0005F904F903F902F9008951F920F920FB6EF
:1021E0000F9211242F933F935F936F937F938F935D
:1021F0009F93AF93BF93EF93FF938091E70388235F
:1022000029F08091E70381508093E7038091EF03E9
:1022100081508F3F09F493C08093EF038091E803CE
:102220009091E903029700F18091E8039091E9030E
:1022300001979093E9038093E8038091E8039091DC
:10224000E9032091090330910A0382239323892B08
:1022500089F0809101018A3009F48BC0479A8091FE
:10226000E80783FF8DC010C08FEF9FEF90930A03A4
:1022700080930903809101018A3009F478C047985E
:102280008091E80783FF7CC086B19927FC01E0714B
:10229000F07084FF0AC08091EA039091EB030196ED
:1022A0009093EB038093EA036BC08091EA039091D3
:1022B000EB03892B49F18091EA039091EB038A5655
:1022C000914010F58091EA039091EB0369E270E090
:1022D0000E944E588091EA039091EB03860F971F5E
:1022E0009093EB038093EA038091EA039091EB03D0
:1022F0000B9708F440C08091EA039091EB030A9792
:1023000090936E0480936D0480916D0490916E049F
:1023100020916B0430916C04821B930B845E9D4F63
:1023200068E671E00E946258845B904090936A0472
:10233000809369041092EB031092EA0321C089E0B4
:102340008093EF0380910B038F5F817080930B0369
:10235000882319F481E08093EC038091ED03909140
:10236000EE0301969093EE038093ED0357CF5A98B6
:1023700087CF5A9A85CFF0936E04E0936D04C4CF53
:10238000FF91EF91BF91AF919F918F917F916F914D
:102390005F913F912F910F900FBE0F901F90189556
:1023A0002091ED033091EE03280F391FC9010196EA
:1023B00008952091ED033091EE03821B930B892F3A
:1023C00099278695807490700895CF93DF930E942B
:1023D000D011EC01CE010E94D9118823D9F3DF91ED
:1023E000CF9108951F93CF93DF930E94D011EC01FA
:1023F0001FEC08C080910E03882321F090930E03F8
:1024000010937A00CE010E94D911982F882391F35E
:10241000DF91CF911F9108959FB7F894579A5F98D5
:102420003E9A469A8091B0008F708093B000809160
:10243000B00083608093B0008091B1008B73809373
:10244000B1008091B1008B608093B1001092B20016
:102450008FEF8093B3008091B00080688093B000CC
:10246000809170008A7F80937000809170008260FC
:10247000809370009FBF08958AE090E00E94D01181
:102480009093F7038093F60382E085BD83EA84BDD1
:1024900017BC88E788BD86E086BD80916E008160AC
:1024A00080936E0008951F920F920FB60F92112421
:1024B0002F933F934F935F936F937F938F939F934C
:1024C000AF93BF93EF93FF93809101018431C0F4E8
:1024D0008091F003882309F446C02091F1033091E4
:1024E000F20341E02F37340708F49CC08FEF80934C
:1024F000B3002F5F30403093F2032093F103D3C237
:102500008091F003882349F78091B00086FFADC029
:102510008091B0008F7B8093B0008091F503882379
:1025200009F0EEC080910608282F33278DED96E044
:10253000289FA001299F500D389F500D1124CA01DA
:102540002091F3033091F403821B930B9093F203D9
:102550008093F1031092F4031092F303469A81E002
:102560008093F003BACF8091B00086FFA7C080911E
:10257000B0008F7B8093B00089EA93E09093F203E0
:102580008093F10380910C0390910D039C01220F25
:10259000331F280F391F809185039927880F991FB2
:1025A000880F991F280F391F37FD2AC2C901959539
:1025B00087959595879590930D0380930C03909341
:1025C000E3038093E20380912C0880FFD0C08091C8
:1025D0000308682F7727882799272091A70430912F
:1025E000A8044091A9045091AA0457FDF0C1E7E066
:1025F0005595479537952795EA95D1F70E94235829
:102600009B01AC0197FD06C2B6E0559547953795FD
:102610002795BA95D1F78091E2039091E303820F59
:10262000931FCFC02F3F310569F060F0A9014F5FC4
:1026300050404F37510588F480E88093B30020580C
:10264000304059CF8091F1038093B3001092F20390
:102650001092F1031092F00326C28FEF8093B30023
:102660005093F2034093F1031EC28091B000806446
:102670008093B0008CEB90E09093F2038093F10391
:102680008091F3039091F40384549F4F9093F4034B
:102690008093F3038091E603882329F080915B0403
:1026A000853B08F0EDC09091F5039F5F809106088F
:1026B000891708F0E2C01092F50351CF8091B00065
:1026C00080648093B00080910608282F33278DED19
:1026D00096E0289FA001299F500D389F500D11248E
:1026E000CA012091F3033091F403821B930B909362
:1026F000F2038093F1039C0181E08093F003F1CE1B
:1027000029EA33E0E82FFF27E130F10509F4BAC0E8
:10271000EE0FFF1FE255F84F80819181880F991FBE
:1027200087559C4F9093F2038093F1032091F1031E
:102730003091F20355E02D3D350708F454C18CED7E
:1027400095E09093F2038093F1039C012C5B304061
:102750003093F2032093F1038091F3039091F403FB
:10276000820F931F9093F4038093F303F8CE80912C
:102770000308682F7727882799272091A70430918D
:10278000A8044091A9045091AA0457FD1BC1A7E0D9
:102790005595479537952795AA95D1F70E942358C7
:1027A0009B01AC0197FD31C1F6E0559547953795F2
:1027B0002795FA95D1F78091E2039091E303821B6C
:1027C000930B9093E3038093E20380910408282FF6
:1027D0003327220F331F220F331F8091E203909182
:1027E000E303821793077CF080910508282F332795
:1027F000220F331F220F331F8091E2039091E303D6
:102800002817390724F43093E3032093E20320913F
:10281000E2033091E3038091F1039091F203280FDA
:10282000391F205032408091E2039091E30397FDDD
:10283000EAC095958795959587959093E303809346
:10284000E2038091E2039091E303909373078093F6
:10285000720745E02D3D340708F4BEC08CED95E0CD
:102860009093F2038093F1032091F1033091F203EE
:102870003093F4032093F3033FCF9093F5036FCE8F
:10288000469811CF3093F2032093F10380910C030B
:1028900090910D039C01220F331F280F391F809147
:1028A00085039927880F991F880F991F280F391FB3
:1028B00037FDE2C0C90195958795959587959093C9
:1028C0000D0380930C039093E3038093E2038091C4
:1028D0002C0880FFA4C080910308682F77278827E1
:1028E00099272091A7043091A8044091A904509100
:1028F000AA0457FDC4C0A7E055954795379527957D
:10290000AA95D1F70E9423589B01AC0197FDBCC04A
:10291000F6E05595479537952795FA95D1F780912B
:10292000E2039091E303820F931F9093E30380935C
:10293000E20380910408282F3327220F331F220F30
:10294000331F8091E2039091E303821793077CF099
:1029500080910508282F3327220F331F220F331FA2
:102960008091E2039091E3032817390724F4309310
:10297000E3032093E2038091E2039091E30320912B
:10298000F1033091F203820F931F80509240909395
:10299000F2038093F1038091E2039091E30397FDAA
:1029A00069C095958795959587959093E303809356
:1029B000E2038091E2039091E30390937307809385
:1029C0007207B4CE21583F4F4F4F5F4FE0CE215892
:1029D0003F4F4F4F5F4F0BCE51E02737350758F42D
:1029E00087E791E03DCF81E02737380708F0AECE8A
:1029F00087E791E0A6CE3093F2032093F10334CF22
:102A00002D5F3F4FD3CD039614CF215C3F4F4F4FE7
:102A10005F4FCACE215C3F4F4F4F5F4FF5CD809146
:102A20000308682F7727882799272091A7043091DA
:102A3000A8044091A9045091AA0457FD2FC0E7E0D3
:102A40005595479537952795EA95D1F70E942358D4
:102A50009B01AC0197FD1DC066E0559547953795E4
:102A600027956A95D1F78091E2039091E303821B49
:102A7000930B5BCF039695CF2D5F3F4F1BCF215814
:102A80003F4F4F4F5F4F37CF215C3F4F4F4F5F4F0F
:102A90003FCF215C3F4F4F4F5F4FDECF21583F4F1D
:102AA0004F4F5F4FCCCFFF91EF91BF91AF919F916F
:102AB0008F917F916F915F914F913F912F910F90E7
:102AC0000FBE0F901F90189510927C008FEC809392
:102AD0007A000895EF92FF920F931F93CF93DF93A5
:102AE00003E010E0D8010E94B258802DC82FDD27E6
:102AF000C531D10508F02A97C7BD1092FF0384E6BF
:102B000090E00E94F211809112039091130382557C
:102B1000934010F4C0E0D0E0CA3FD105E0F486EE67
:102B2000E82E81E0F82EC7BD82E390E00E94F2110A
:102B3000FF92EF921F920E94580E80911203909183
:102B400013030F900F900F908255934020F0219621
:102B5000CA3FD10540F3D8010C2E0E94BA58C09349
:102B600099078CE291E00E94F211DF91CF911F91C1
:102B70000F91FF90EF900895FF920F931F93CF93C3
:102B800010E01093FA031093F9031093F803CCE8C4
:102B900001E095EFF92E133009F499C010E080910F
:102BA0000B0490910C048C5F93400CF07FC08091DB
:102BB00011038150809311038091090490910A04BC
:102BC0008C5F93400CF067C080911003815080931C
:102BD000100380910704909108048C5F9340D4F512
:102BE00080910F03815080930F0388E080932A0423
:102BF0000E948621809111038A3008F044C000931E
:102C0000FA038AE080931103809110038A30A0F5C3
:102C10000093F9038AE08093100380910F038A30B8
:102C200020F50093F8038AE080930F0380912A0433
:102C30008823E1F7809394078FEC80937A0080914A
:102C400094078823E1F3CA3008F446C0C15009F064
:102C5000A2CF47C080910704909108048750944008
:102C600084F180910F038F5FBECF863FF8F200930F
:102C7000F803F0920F03DACF863F78F20093F9035E
:102C8000F0921003CACF863F08F4BECF0093FA0338
:102C9000F0921103B9CF8091090490910A048750F2
:102CA00094408CF0809110038F5F91CF80910B0442
:102CB00090910C048750944044F0809111038F5FF1
:102CC00079CF1F5F92CF1F5F84CF11E075CFCB30DC
:102CD00008F464CFC9E062CF8AE090E00E94F2116C
:102CE000B5CF86E490E00E94F211CF911F910F9131
:102CF000FF9008951F920F920FB60F921124EF923A
:102D0000FF920F931F932F933F934F935F936F9374
:102D10007F938F939F93AF93BF93CF93DF93EF9363
:102D2000FF9320911404822F9927AA27BB272F5F96
:102D3000FC01429740F4E25CFF4FEE0FFF1F05904D
:102D4000F491E02D09941092140482E0809313040E
:102D50008091130480937C0080911404882309F4EB
:102D6000F9C38FEC80937A00F5C32093140480910B
:102D70007800909179002091190430911A04820F03
:102D8000931F90931A048093190481E0DFCF20935E
:102D9000140480917800909179002091170430916B
:102DA0001804820F931F909318048093170484E0F3
:102DB000CDCF2093140480917800909179002091D8
:102DC000B5043091B604821B930B909398078093BF
:102DD000970780919707909198079093220480938A
:102DE000210482E0B3CF209314048091B304909126
:102DF000B4042091780030917900821B930B90935A
:102E00008D0780938C0780918C0790918D0790930C
:102E1000200480931F0487E099CF209314048091AD
:102E2000780090917900909316048093150486E0C1
:102E30008DCF209314042091780030917900309345
:102E40001804209317041092130482CF20931404C3
:102E5000209178003091790030931A04209319045E
:102E600081E074CF1092140481E080930E0380916E
:102E7000FB039091FC0301969093FC038093FB036A
:102E8000809178009091790020919C0730919D0766
:102E9000820F931F90939D0780939C0780919407C6
:102EA0008F5F8093940780919407853008F44DCF0D
:102EB00080919C0790919D0797FD36C395958795C6
:102EC00090939D0780939C07809178009091790062
:102ED0009093130380931203109294078091FD0343
:102EE0009091FE03BC01660F771F62957295707F0B
:102EF0007627607F7627681B790B80918F03482F98
:102F000055278091FF03282F332727FD30958FEF1A
:102F100090E0289F8001299F100D389F100D1124EB
:102F20008091900790919107800F911F20919C07AD
:102F300030919D07821B930B2091500430915104D6
:102F4000821B930B489F9001499F300D589F300D75
:102F50001124620F731F77FDE4C27595679575950F
:102F60006795759567957595679575956795709350
:102F7000FE036093FD0380919C0790919D07EC01F7
:102F8000EE27D7FDE095FE2F209114033091150315
:102F90004091160350911703DA01C90163E0880FCD
:102FA000991FAA1FBB1F6A95D1F7821B930BA40B15
:102FB000B50BC80FD91FEA1FFB1FCE01DF01049616
:102FC000A11DB11DB7FDA7C233E0B595A795979593
:102FD00087953A95D1F78093140390931503A093A6
:102FE0001603B09317038091900790919107800F7B
:102FF000911F2091140330911503409116035091B5
:103000001703821B930B909351048093500480917B
:103010009C0790919D0797FD7CC29595879590930D
:103020009D0780939C0782E091CE20931404209109
:103030007800309179008091170490911804280F3E
:10304000391F809101018A3009F44DC2220F331FCC
:10305000220F331F3093180420931704C90137FD42
:1030600051C2959587959595879595958795909358
:103070000A048093090480911D0490911E04820F1C
:10308000931F97FD44C29595879590931E04809356
:103090001D042091BD043091BE04821B930B9093BC
:1030A00019038093180320910F043091100480912C
:1030B000180390911903280F391F37FD25C2359544
:1030C00027953093100420930F0483E03FCE209384
:1030D0001404209178003091790080911904909126
:1030E0001A04280F391F809101018A3009F4F8C1B0
:1030F000220F331F220F331F30931A042093190419
:10310000C90137FDFDC1959587959595879595954D
:10311000879590930C0480930B0480911B049091ED
:103120001C04820F931F97FDE9C195958795909395
:103130001C0480931B042091BF043091C004821BA7
:10314000930B90931B0380931A03209111043091E9
:10315000120480911A0390911B03280F391F37FD29
:10316000CAC135952795309312042093110481E04C
:10317000EDCD2093140480917800909179002091F6
:10318000B5043091B604821B930B909398078093FB
:10319000970780919707909198072091210430918B
:1031A0002204820F931F909304048093030482E00F
:1031B000CDCD209314048091B3049091B404209158
:1031C000780030917900821B930B90938D07809348
:1031D0008C0780918C0790918D0720911F0430916E
:1031E0002004820F931F909306048093050487E0C8
:1031F000ADCD20931404809101018A3009F462C19D
:10320000843109F493C180917800909179002091E4
:10321000150430911604820F931F90930804809335
:10322000070486E093CD2093140480917800909158
:1032300079002091170430911804820F931F909306
:103240001804809317041092130482CD2093140461
:1032500017CE209314048091780090917900AA27CA
:1032600097FDA095BA2FBC01CD010E94A9577B0103
:103270008C018091AD049091AE04A091AF04B09107
:10328000B0049C01AD01C801B7010E944957DC019F
:10329000CB01BC01CD010E948C57DC01CB01909386
:1032A000020480930104809101049091020402972A
:1032B0000CF4BAC08091AD049091AE04A091AF041B
:1032C000B091B00420E030E84BE354E4BC01CD0100
:1032D0000E94B3578823DCF58091AD049091AE0431
:1032E000A091AF04B091B0042AE037ED43EA5CE36B
:1032F000BC01CD010E944A57DC01CB018093AD0493
:103300009093AE04A093AF04B093B00480913004C6
:1033100090913104845F9140D0F48091AD049091FC
:10332000AE04A091AF04B091B0042DEC3CEC4CEC99
:103330005DE3BC01CD010E944A57DC01CB018093C3
:10334000AD049093AE04A093AF04B093B00481E0B9
:1033500080930004809178009091790090938F077A
:1033600080938E078091010490910204AA2797FD13
:10337000A095BA2F20916F04309170044091710490
:1033800050917204820F931FA41FB51F80936F0486
:1033900090937004A0937104B093720420916F0411
:1033A00030917004409171045091720457FD9EC099
:1033B0007AE055954795379527957A95D1F780917D
:1033C0006F0490917004A0917104B0917204821BFB
:1033D000930BA40BB50B80936F0490937004A09390
:1033E0007104B093720483E0B1CC209314048091F3
:1033F0001C0390911D039C01220F331F280F391FBE
:10340000809178009091790063E070E00E944E58BE
:10341000260F371F369527953695279530931D0330
:1034200020931C0385E092CC8091010490910204CA
:103430008F5F9F4F0CF08BCF8091AD049091AE04C5
:10344000A091AF04B091B00420E030E849E054E42A
:10345000BC01CD010E94B65718160CF078CF8091B0
:10346000AD049091AE04A091AF04B091B0042AE0F5
:1034700037ED43EA5CE3BC01CD010E944957DC0112
:10348000CB018093AD049093AE04A093AF04B093AE
:10349000B0048091300490913104845F914008F031
:1034A00056CF8091AD049091AE04A091AF04B0913D
:1034B000B0042DEC3CEC4CEC5DE3BC01CD010E9472
:1034C00049573BCF80917800909179002091150465
:1034D00030911604820F931F0196969587959DCE85
:1034E000220F331F09CE220F331FB4CD21503C4F82
:1034F0004F4F5F4F5DCF2F5F3F4F33CE019615CEBD
:10350000079601CE0796ADCD2F5F3F4FD8CD0196E0
:10351000BACD019682CDCE01DF010B96A11DB11D62
:1035200053CD615E7F4F19CD0196C8CC8091780054
:10353000909179002091150430911604820F931F09
:103540002FEF37E0281B390B309308042093070432
:1035500086E0FCCBFF91EF91DF91CF91BF91AF91CE
:103560009F918F917F916F915F914F913F912F919B
:103570001F910F91FF90EF900F900FBE0F901F9033
:10358000189590E2EFE1F3E08FE49193815087FF8B
:10359000FCCF08951F93CF93DF9380912404209153
:1035A0001E03281710F4209324049091230490FF05
:1035B00008C080912404882309F4D8C081508093E6
:1035C000240491FF08C080912404821709F44DC19E
:1035D0008F5F80932404892F992780FF02C081FD8B
:1035E000C2C00E94C11A909124049A30A0F581E1D2
:1035F00080932504892F99279F938F9388EE91E0DC
:103600009F938F9381E08F930E94580E0F900F909D
:103610000F900F900F9080912404C82FDD27C530A4
:10362000D10509F425C1C630D105FCF4C230D1055D
:1036300009F424C2C330D1050CF49BC0C330D105BA
:1036400009F40EC5249709F478C5815080931E03B0
:10365000109224044FC680E180932504892F992776
:103660009F938F938DEE91E0CBCFC830D10509F4B5
:10367000B8C1C930D1050CF4D0C0CA30D10509F4A5
:10368000A6C4CA30D1050CF468C32B97F1F610928A
:10369000250485EE94E09F938F9311E01F930E9481
:1036A000580E84E1809325040F900F900F90809125
:1036B000A906992787FD90959F938F938091A806DF
:1036C000992787FD90959F938F9385EF94E09F9323
:1036D0008F931F930E94580E88E2809325046DB744
:1036E0007EB7695F7F4F0FB6F8947EBF0FBE6DBF88
:1036F0008091AA06992787FD90959F938F9380913B
:10370000AB0699279F938F9385E095E09F938F93C6
:103710001F930E94580E8CE3809325048DB79EB7AB
:1037200007960FB6F8949EBF0FBE8DBF8091AF066F
:1037300099279F938F938091AC06992787FD909549
:103740009F938F9385E195E09F938F931F930E94A2
:10375000580E6DB77EB7695F7F4F0FB6F8947EBF86
:103760000FBE6DBFC7C5109224043BCF2093240425
:1037700028CF209709F4EDC1219709F066CF8091F9
:10378000E80780FF77C5109225048091500490913E
:1037900051049F938F9387E392E09F938F9311E05F
:1037A0001F930E94580E84E1809325040F900F9080
:1037B0000F900F900F9080914E0490914F049F9323
:1037C0008F9386E492E09F938F931F930E94580EED
:1037D00088E2809325040F900F900F900F900F9028
:1037E00080911203909113039F938F9385E592E04C
:1037F0009F938F931F930E94580E8CE38093250410
:103800000F900F900F900F900F908091990799272C
:103810009F938F9384E692E026C1C630D10509F4C8
:1038200070C3279709F011CF84E18093250480911C
:103830001C0390911D039F938F9389E294E09F93C3
:103840008F9311E01F930E94580E88E28093250405
:103850000F900F900F900F900F9080915B0499271D
:103860009F938F9388E394E0FEC010922404B3CE1C
:10387000109225048FE393E09F938F93C1E0CF9341
:103880000E94580E809101010F900F900F908A3086
:1038900009F4AEC28B3009F4B8C1843109F4B5C162
:1038A0008D3009F027C584E18093250480911103B0
:1038B00099279F938F934091BF045091C004CA01F0
:1038C00057FD16C5959587959595879595958795F7
:1038D000959587959F938F939A0157FD06C53595CA
:1038E0002795359527953595279580910B049091CF
:1038F0000C04821B930B9F938F9383EB93E09F9316
:103900008F93CF930E94580E88E2809325048DB741
:103910009EB709960FB6F8949EBF0FBE8DBF8091DB
:10392000100399279F938F934091BD045091BE043B
:10393000CA0157FDD8C49595879595958795959516
:103940008795959587959F938F939A0157FDC8C446
:1039500035952795359527953595279580910904B7
:1039600090910A04821B930B9F938F9387EC93E0B3
:103970009F938F93CF930E94580E8CE380932504DE
:103980006DB77EB7675F7F4F0FB6F8947EBF0FBEEF
:103990006DBF80910F0399279F938F932091BB0454
:1039A0003091BC04C90137FD99C4959587959F93C3
:1039B0008F938091070490910804281B390B3F9343
:1039C0002F938BED93E09F938F93CF930E94580E8C
:1039D0008DB79EB709960FB6F8949EBF0FBE8DBFE8
:1039E00089C41092250487E494E09F938F9311E09B
:1039F0001F930E94580E84E1809325040F900F902E
:103A00000F908091690490916A049F938F9386E54B
:103A100094E09F938F931F930E94580E88E28093A7
:103A200025040F900F900F900F900F9080916D04D0
:103A300090916E049F938F9385E694E09F938F936C
:103A40001F930E94580E8CE3809325040F900F90D3
:103A50000F900F900F9080916B0490916C049F9346
:103A60008F9384E794E09F938F931F930E94580E47
:103A70000F900F900F900F900F903CC41092250460
:103A800088E892E09F938F93C1E0CF930E94580EF5
:103A900084E1809325040F900F900F908091A704EC
:103AA0009091A804A091A904B091AA04B7FDFBC30A
:103AB0003AE0B595A795979587953A95D1F7BF9335
:103AC000AF939F938F9382E992E09F938F93CF93CD
:103AD0000E94580E88E2809325048DB79EB7079602
:103AE0000FB6F8949EBF0FBE8DBF80919F0490913A
:103AF000A004A091A104B091A204B7FDCFC32AE015
:103B0000B595A795979587952A95D1F7BF93AF93CC
:103B10009F938F9381EA92E09F938F93CF930E941C
:103B2000580E8CE3809325046DB77EB7695F7F4F95
:103B30000FB6F8947EBF0FBE6DBF80916D0490915B
:103B40006E049F938F9380EB92E09F938F93CF931C
:103B50008DCF1092250482EF91E09F938F9311E017
:103B60001F930E94580E84E1809325040F900F90BC
:103B70000F9080E790E09F938F9388E490E09F936D
:103B80008F93DF93CF93809101016AE00E944258A6
:103B9000892F99279F938F93809101010E9442580A
:103BA00099279F938F9382E092E09F938F931F9327
:103BB0000E94580E88E2809325046DB77EB7635F3C
:103BC0007F4F0FB6F8947EBF0FBE6DBF0E940803F3
:103BD00099279F938F938AE192E09F938F931F93EE
:103BE0000E94580E8CE3809325040F900F900F9045
:103BF0000F900F9087E292E09F938F931F930E9404
:103C0000580E0F900F900F9075C384E18093250498
:103C10004091BF045091C004CA0157FD55C39C0197
:103C2000359527953595279535952795359527957C
:103C3000C90182959295907F9827807F9827BA0135
:103C4000681B790BCB0177FD3DC3959587959F93B5
:103C50008F933F932F939A0157FD31C33595279545
:103C6000359527953595279580910B0490910C04F7
:103C7000821B930B9F938F9380E893E09F938F9386
:103C8000CF930E94580E88E2809325048DB79EB78B
:103C900009960FB6F8949EBF0FBE8DBF4091BD042C
:103CA0005091BE04CA0157FD08C39C013595279564
:103CB000359527953595279535952795C901829591
:103CC0009295907F9827807F9827BA01681B790B7F
:103CD000CB0177FDF0C2959587959F938F933F9386
:103CE0002F939A0157FDE4C2359527953595279571
:103CF000359527958091090490910A04821B930BB6
:103D00009F938F9382E993E09F938F93CF930E9429
:103D1000580E8CE3809325048DB79EB709960FB695
:103D2000F8949EBF0FBE8DBF2091BB043091BC04A0
:103D3000C90137FDCBC2959587959F938F9380914D
:103D4000070490910804281B390B3F932F9384EAB2
:103D500093E09F938F93CF93FACC10922504809198
:103D60006204909163049F938F9383E894E09F9300
:103D70008F9311E01F930E94580E84E180932504D5
:103D80000F900F900F900F900F9080916004909182
:103D900061049F938F938FE894E09F938F931F9379
:103DA0000E94580E88E2809325040F900F900F9088
:103DB0000F900F9080915E0490915F049F938F937A
:103DC0008BE994E09F938F931F930E94580E8CE38E
:103DD000809325040F900F900F900F900F9080917B
:103DE0005C0490915D049F938F9387EA94E03BCEAF
:103DF00084E1809325044091BF045091C0049A014E
:103E000057FD69C2359527953595279535952795A1
:103E1000C901880F991F880F991F880F991F481B88
:103E2000590B5F934F933F932F9380910B04909185
:103E30000C04821B930B9F938F938DE493E09F93CD
:103E40008F93CF930E94580E88E2809325048DB7FC
:103E50009EB709960FB6F8949EBF0FBE8DBF4091D6
:103E6000BD045091BE049A0157FD32C23595279585
:103E70003595279535952795C901880F991F880F86
:103E8000991F880F991F481B590B5F934F933F93BE
:103E90002F938091090490910A04821B930B9F93A6
:103EA0008F938FE593E09F938F93CF930E94580E4B
:103EB0008CE3809325046DB77EB7675F7F4F0FB6A5
:103EC000F8947EBF0FBE6DBF8091BB049091BC047F
:103ED0009F938F938091BB049091BC042091070421
:103EE00030910804821B930B9F938F9381E793E09B
:103EF0009F938F93CF930E94580E8DB79EB70796CE
:103F00006ACD109225048FEE93E09F938F9311E07A
:103F10001F930E94580E84E1809325040F900F9008
:103F20000F908091B5049091B6049F938F938091E8
:103F30000304909104049F938F938CEF93E09F93DD
:103F40008F931F930E94580E88E2809325046DB7CB
:103F50007EB7695F7F4F0FB6F8947EBF0FBE6DBF0F
:103F60008091B3049091B4049F938F938091050442
:103F7000909106049F938F938BE094E09F938F938F
:103F80001F930E94580E8CE3809325048DB79EB733
:103F900007960FB6F8949EBF0FBE8DBF8091AD04FB
:103FA0009091AE04A091AF04B091B004BC01CD01DA
:103FB0000E948C57DC01CB019F938F9380915D0809
:103FC00090915E089F938F938AE194E0BDCB10920D
:103FD000250483EB94E09F938F9311E01F930E943D
:103FE000580E84E1809325040F900F900F908091DC
:103FF000850399279F938F938BEB94E09F938F93E7
:104000001F930E94580E88E2809325040F900F9012
:104010000F900F900F908091E4039091E5039F9390
:104020008F9389EC94E09F938F931F930E94580E77
:104030008CE3809325040F900F900F900F900F90BA
:104040008091050899279F938F9380910408992761
:104050009F938F9387ED94E09F938F931F934BCF04
:10406000109225048091B2079091B3079F938F938C
:104070008091B0079091B1079F938F938FEB92E05F
:104080009F938F9311E01F930E94580E84E18093B9
:1040900025048DB79EB707960FB6F8949EBF0FBE46
:1040A0008DBF8091B6079091B7079F938F938091B2
:1040B000B4079091B5079F938F938FEC92E09F93F5
:1040C0008F931F930E94580E88E2809325046DB74A
:1040D0007EB7695F7F4F0FB6F8947EBF0FBE6DBF8E
:1040E0008091BA079091BB079F938F938091B807F7
:1040F0009091B9079F938F938FED92E09F938F9349
:104100001F930E94580E8CE3809325048DB79EB7B1
:1041100007960FB6F8949EBF0FBE8DBF8091BE0765
:104120009091BF079F938F938091BC079091BD079B
:104130009F938F938FEE92E007CB1092250480918E
:10414000E107E82FFF27EE0FFF1FE255F84F8081B0
:1041500091819F938F938091E007E82FFF27EE0FC7
:10416000FF1FE255F84F808191819F938F938FEFCE
:1041700092E09F938F9311E01F930E94580E84E169
:10418000809325048DB79EB707960FB6F8949EBF0F
:104190000FBE8DBF8091E307E82FFF27EE0FFF1FB3
:1041A000E255F84F808191819F938F938091E20730
:1041B000E82FFF27EE0FFF1FE255F84F8081918116
:1041C0009F938F938FE093E09F938F931F930E9411
:1041D000580E88E2809325046DB77EB7695F7F4FE4
:1041E0000FB6F8947EBF0FBE6DBF8091E507E82F34
:1041F000FF27EE0FFF1FE255F84F808191819F93BB
:104200008F938091E407E82FFF27EE0FFF1FE25501
:10421000F84F808191819F938F938FE193E09F93DB
:104220008F931F930E94580E8CE3809325048DB7C3
:104230009EB707960FB6F8949EBF0FBE8DBF8091B4
:10424000E707E82FFF27EE0FFF1FE255F84F8081A9
:1042500091819F938F938091E607E82FFF27EE0FC0
:10426000FF1FE255F84F808191819F938F938FE2DA
:1042700093E06ACA84E18093250483E792E09F93E8
:104280008F9311E01F930E94580E88E280932504BB
:104290000F900F900F908AE792E0AECC81509C4F28
:1042A000AF4FBF4F2CCC81509C4FAF4FBF4F00CC76
:1042B000295F3F4F19CD01960ECD0F96F6CC295FA1
:1042C0003F4FCCCC0196C1CC0F96A9CC019633CDF3
:1042D000295F3F4FCBCD295F3F4F94CD019665CBF2
:1042E000295F3F4F35CB0F9626CB295F3F4FF7CA4B
:1042F0000F96E8CA10922304DF91CF911F91089581
:104300001092B9008AE28093B800089585EA8093FC
:10431000BC0080E090E0089584E98093BC0008959B
:104320001092B9008093BB0085E88093BC0080E0C8
:1043300090E008950E948C2110922A048091BB0085
:104340001092290480E88093BC001092BD00109266
:10435000BA001092BB001092B9001092B8000E94EF
:1043600080210E94862180E00E94902108951F9262
:104370000F920FB60F9211242F933F934F935F9399
:104380006F937F938F939F93AF93BF93EF93FF931D
:1043900080912A04282F3327442755278F5F809345
:1043A0002A04F9012731310508F010C1E05BFF4F05
:1043B000EE0FFF1F0590F491E02D099480912804E1
:1043C000E82FFF27E256F84F9091BB0090878F5F50
:1043D000883008F4C7C0109228040E948C218AE01B
:1043E00090E090939D0380939C0310922A04EEC06A
:1043F00080E80E949021EAC088E90E949021E6C0EE
:104400000E948C218AE090E090939D0380939C030E
:104410000E948621DBC0809110030E949021D6C0AB
:1044200080912904880F8E5A0E949021CFC00E944B
:104430008C2180912904883008F097C010922A04BA
:104440000E948621C3C080912904282F33278F5FC3
:10445000809329042330310509F47FC024303105CD
:104460000CF08DC02130310509F4A2C02230310595
:104470000CF45DC0809174080E949021A7C09091B7
:104480002804E92FFF27E330F10509F466C0E43082
:10449000F1050CF050C0E130F10509F489C0E230BB
:1044A000F10544F7EF2B09F091C080918E080E942E
:1044B00090218CC090912804E92FFF27E256F84FF5
:1044C0008091BB008083DDCF80912804880F8D5AB6
:1044D0000E9490217BC080E10E94902177C0809152
:1044E0000F030E94902172C0809128049927833085
:1044F000910599F1843091050CF04EC08130910501
:1045000009F456C0823091050CF0B4CF892B09F024
:104510005DC0CBCF84E10E94902158C082E10E940F
:10452000902154C0809111030E9490214FC0232BF1
:1045300009F04CC0BACFE530F10509F43EC0E530D2
:10454000F105C4F0E630F105E9F1379709F03EC016
:10455000809151080E94902139C080915B080E948F
:10456000902134C08093280438CF109229040E94EF
:1045700086212CC080915C080E94902127C02530A4
:104580003105D9F025303105ACF326303105D1F0B5
:1045900027303105D9F4DCCF8530910571F08530B5
:1045A000910544F38630910569F0079779F4D0CFEF
:1045B000809161080E94902109C0809176080E9434
:1045C000902104C0809173080E9490218091BC00CA
:1045D00080688093BC00FF91EF91BF91AF919F9154
:1045E0008F917F916F915F914F913F912F910F909C
:1045F0000FBE0F901F90189583EC809381008091DF
:104600006F00806280936F001092BC041092BB0414
:104610001092BE041092BD041092C0041092BF0408
:1046200008951F920F920FB60F921124EF92FF92EE
:104630000F931F932F933F934F935F936F937F93AA
:104640008F939F93AF93BF93CF93DF93EF93FF939A
:10465000209186003091870080912B0490912C044A
:10466000281B390B809186009091870090932C0431
:1046700080932B04C9018D549440835F9A4178F450
:1046800080912D0490912E04049714F010927903D8
:10469000C1E0D0E0D0932E04C0932D04A3C0C091FC
:1046A0002D04D0912E04CA30D1050CF09BC0C90155
:1046B0008B5F9040845B9140A8F0FE013196F093AF
:1046C0002E04E0932D04E530F10509F46DC05D98EA
:1046D000E630F10509F466C05C98379709F460C0CC
:1046E0005B9880C0225D3140FE01EC0FFD1FE2555A
:1046F000F84F80819181F901E81BF90BCF01F7FD9B
:104700006DC0069754F480915B04883C08F05FC04C
:1047100080915B04865F80935B04FE01EC0FFD1FBC
:10472000E255F84F80819181AC01440F551F480F2D
:10473000591F420F531F57FD4EC07A01F594E7945D
:10474000F594E794C90101968E159F05BCF5089470
:10475000E108F10880915B04833C40F18E010C0F6D
:104760001D1FF801E255F84F808191819701281BA8
:10477000390BC90163E070E00E946258CB01880FD9
:10478000991F860F971F0C53184FF8019183808350
:10479000FE01EC0FFD1FE255F84FF182E0828DCF54
:1047A0005B9A20C05C9A99CF5D9A92CFFE01EC0F84
:1047B000FD1FEC53F84F11821082EACF2150304098
:1047C000E216F3063CF60894E11CF11CC3CF88EC1A
:1047D00080935B04A2CF4D5F5F4FAFCF90958195E3
:1047E0009F4F8FCFFF91EF91DF91CF91BF91AF910D
:1047F0009F918F917F916F915F914F913F912F91F9
:104800001F910F91FF90EF900F900FBE0F901F9090
:10481000189581E08093E00782E08093E10783E0D0
:104820008093E20784E08093E30785E08093E407C8
:1048300086E08093E50787E08093E60788E0809331
:10484000E70708951F9388E68093E8073EE13093D9
:10485000E9078BEF8093EB078AE08093EC073093B6
:10486000EA073093EE07E4E0E093ED075FE0509352
:10487000EF073093F0071CE01093F10778E0709396
:10488000F20786EE8093F3073093F40780E8809375
:10489000F50780E58093F60726E92093F70783E084
:1048A0008093F8078EE58093F90783E28093FA07F7
:1048B0003093FB071092FC0760E26093FD071092B3
:1048C000FE071092FF071092000810920108109244
:1048D000120810921308109214081092150844E65A
:1048E0004093020888E28093030810922C0892E318
:1048F000909304082093050885E080930608909320
:1049000007082AE5209308089093090810922B08BD
:1049100020930A0883E480930B0810920C0885E525
:1049200080930D0880930E0880E180930F086093B8
:104930001008409311088FE58093160883EF809349
:10494000180850931708509319088DEF80931A0890
:1049500040931B0820931C0820931D0820931E08D9
:104960008BE480931F088093200880932108109285
:10497000220886E08093230870932408209325085A
:10498000309326084093270840932808E09329088D
:10499000AEE9B3E0E1E3F8E00D9001921A95E1F79A
:1049A0001F9108951F9388E68093E8075EE1509376
:1049B000E9078BEF8093EB078AE08093EC07509335
:1049C000EA075093EE0793E09093ED071CE01093F5
:1049D000EF0780E18093F00776E07093F10768E0DD
:1049E0006093F20786EE8093F3075093F40780E814
:1049F0008093F50780E58093F60788E78093F707B3
:104A00009093F8078EE58093F90783E28093FA0785
:104A10005093FB071092FC0730E23093FD07109291
:104A2000FE071092FF0710920008109201081092E2
:104A3000120810921308109214081092150844E6F8
:104A40004093020888E28093030810922C0892E3B6
:104A50009093040886E98093050885E08093060812
:104A6000909307082AE5209308089093090810926C
:104A70002B0820930A0883E480930B088CE380932F
:104A80000C0885E580930D0880930E0830930F087D
:104A9000309310089BE4909311088FE580931608DB
:104AA00083EF8093180884E1809317088093190896
:104AB0008DEF80931A0840931B0820931C082093C5
:104AC0001D0820931E0890931F0890932008909330
:104AD00021081092220870932308609324082093E1
:104AE000250850932608409327084093280884E01F
:104AF00080932908A5EAB3E0E1E3F8E00D90019284
:104B00001A95E1F71F91089588EE8093E8073EE13A
:104B10003093E9078BEF8093EB078AE08093EC07F3
:104B20003093EA073093EE0793E09093ED0758E057
:104B30005093EF0720E12093F00766E06093F107C0
:104B40005093F20786EE8093F3073093F40780E8E2
:104B50008093F50744E64093F60788E78093F707CC
:104B60009093F8078EE58093F90783E28093FA0724
:104B700084E18093FB071092FC072093FD071092BD
:104B8000FE071092FF071092000810920108109281
:104B900012081092130810921408109215084093EE
:104BA000020888E28093030810922C0892E3909305
:104BB000040886E98093050885E0809306089093B1
:104BC00007082AE5209308089093090810922B08FB
:104BD00020930A0883E480930B0886E480930C08F2
:104BE00085E580930D0880930E0880E280930F087E
:104BF00080931008909311088FE58093160883EF37
:104C00008093180830931708309319088DEF80931C
:104C10001A0840931B0820931C0820931D0820931A
:104C20001E088BE480931F0880932008809321083E
:104C3000109222086093230850932408209325089B
:104C400030932608409327084093280884E08093F7
:104C500029088CE0ADEAB3E0E1E3F8E00D900192C1
:104C60008A95E1F708956817790744F4680F791F6A
:104C700077FD09C0CB01959587950895681B790B41
:104C8000861B970B08956F5F7F4FCB019595879596
:104C900008950F931F93CF93C82FC150CF3F81F03A
:104CA00004E610E080915204882351F41093E90344
:104CB0000093E8038AEF90E00E94E511C15090F75D
:104CC000CF911F910F9108952F923F924F925F9233
:104CD0006F927F928F929F92AF92BF92CF92DF920C
:104CE000EF92FF920F931F93CF93DF93CDB7DEB771
:104CF000E9970FB6F894DEBF0FBECDBF2091BB047D
:104D00003091BC048091070490910804281B390B52
:104D10003A872987309381082093800820911104D5
:104D20003091120437FDD4C73595279535952795D1
:104D3000359527953AA729A73C872B87790120919C
:104D40000F043091100437FDC0C735952795359570
:104D50002795359527953DA72CA73E872D87F0925F
:104D60006008E0925F0830935408209353088091C4
:104D70007B0890917C08AA2797FDA095BA2F7C010B
:104D80008D01EE0CFF1C001F111FE80EF91E0A1FFB
:104D90001B1F80910304909104049C01442737FD5C
:104DA0004095542FDA01C901880F991FAA1FBB1F14
:104DB000880F991FAA1FBB1F820F931FA41FB51F27
:104DC000820F931FA41FB51FE80EF91E0A1F1B1F99
:104DD00017FD9CC715950795F794E79415950795CA
:104DE000F794E794F0927C08E0927B0880918B081E
:104DF00090918C08AA2797FDA095BA2F7C018D0170
:104E0000EE0CFF1C001F111FE80EF91E0A1F1B1FCE
:104E100080910504909106049C01442737FD40953C
:104E2000542FDA01C901880F991FAA1FBB1F880FD1
:104E3000991FAA1FBB1F820F931FA41FB51F820FAC
:104E4000931FA41FB51FE80EF91E0A1F1B1F17FD95
:104E500054C715950795F794E79415950795F7941A
:104E6000E794F0928C08E0928B0880915D08909115
:104E70005E08AA2797FDA095BA2F9C01AD01220FCD
:104E8000331F441F551F280F391F4A1F5B1F809176
:104E9000010490910204AA2797FDA095BA2F280F2C
:104EA000391F4A1F5B1F57FD16C755954795379504
:104EB0002795559547953795279530935E0820930C
:104EC0005D082091030430910404C901880F991FE3
:104ED000880F991F820F931F820F931FAA2797FD98
:104EE000A095BA2F2091970430919804409199048D
:104EF00050919A04820F931FA41FB51F80939704AB
:104F000090939804A0939904B0939A042091050477
:104F100030910604C901880F991F880F991F820FCD
:104F2000931F820F931FAA2797FDA095BA2F209158
:104F30009304309194044091950450919604820F0B
:104F4000931FA41FB51F8093930490939404A09380
:104F50009504B09396048091680890916908209117
:104F6000030430910404820F931F90936908809387
:104F700068088091830890918408209105043091FD
:104F80000604820F931F9093840880938308809176
:104F9000B1049091B20401969093B2048093B1044D
:104FA00080918F0490919004A0919104B09192040B
:104FB000BC01CD010E94A9575B016C0180918E0755
:104FC00090918F07AA2797FDA095BA2FBC01CD011C
:104FD0000E94A9577B018C018091AD049091AE0491
:104FE000A091AF04B091B0049C01AD01C801B7011C
:104FF0000E944957DC01CB019C01AD01C601B501FE
:105000000E944A57DC01CB01BC01CD010E948C57A4
:10501000DC01CB0180938F0490939004A0939104C2
:10502000B09392048FEC80937A0010920E0320903C
:105030007F0430908004409081045090820439E4D1
:1050400023163BE6330631E0430630E053060CF40A
:1050500014C188E49BE6A1E0B0E08D839E83AF831A
:10506000B88760908704709088048090890490903D
:105070008A0439E463163BE6730631E0830630E0C8
:1050800093060CF4DCC488E49BE6A1E0B0E08983DD
:105090009A83AB83BC8349855A85CA01AA2797FDA9
:1050A000A095BA2F2091770430917804409179042B
:1050B00050917A04280F391F4A1F5B1F2CA33DA370
:1050C0004EA35FA3A0908708B0908808C09089087D
:1050D000D0908A08A80EB91ECA1EDB1E8601750173
:1050E000309149043BA7332309F0DAC0809148048A
:1050F000882309F0C2C44091E80748A746FF13C6B9
:10510000ECA5FDA5CF01AA2797FDA095BA2FBC015C
:10511000CD0129813A814B815C810E9423589B01FA
:10512000AC0197FD01C7BBE055954795379527958D
:10513000BA95D1F780918203E82EFF24002711272A
:10514000C801B7010E94235897FDE9C6ACE09595C8
:10515000879577956795AA95D1F76F87788B898B17
:105160009A8B6093C9047093CA048093CB04909384
:10517000CC0429A53AA5C901AA2797FDA095BA2F65
:10518000BC01CD012D813E814F8158850E9423585D
:105190009B01AC0197FDF9C6FBE055954795379506
:1051A0002795FA95D1F7C801B7010E94235897FDBA
:1051B000E7C6DC01CB01ECE0B595A79597958795FF
:1051C000EA95D1F78093CD049093CE04A093CF04B9
:1051D000B093D0042091C9043091CA043093DB0706
:1051E0002093DA072091CD043091CE043093DF076D
:1051F0002093DE072F85388949895A89821B930BB2
:10520000A40BB50B8EAB9FABA8AFB9AF8093CD0409
:105210009093CE04A093CF04B093D004A80EB91EEF
:10522000CA1EDB1E86017501309181033BA3332327
:1052300009F0A3C58EA79FA7A8ABB9ABB7FD4DC614
:105240002EA53FA548A959A9559547953795279566
:105250008CA19DA1AEA1BFA1821B930BA40BB50B8A
:105260008CA39DA3AEA3BFA38093770490937804EF
:10527000A0937904B0937A048CC598EB291694E92D
:1052800039069EEF49069FEF59060CF0F1C328EB53
:1052900034E94EEF5FEF2D833E834F835887E1CE95
:1052A0002CA13DA14EA15FA12093770430937804F7
:1052B0004093790450937A043091E80738A710920C
:1052C000DF071092DE071092DB071092DA071092C8
:1052D000C5041092C6041092C7041092C80410921C
:1052E000C1041092C2041092C3041092C4043091FD
:1052F00081033BA38091C5049091C604A091C7048B
:10530000B091C804BC01CD0124E630E040E050E09B
:105310000E949758DA01C9014091C1045091C2041A
:10532000481B590B58A34F8F8091C1049091C20420
:10533000A091C304B091C404BC01CD0124E630E0C7
:1053400040E050E00E949758DA01C9012091C5045D
:105350003091C604821B930B9AA389A380917A0390
:1053600090917B03A0917C03B0917D03BC01CD01A2
:1053700028E631E040E050E00E942358E616F706A8
:105380000807190744F057016801A61AB70AC80AA6
:10539000D90A8601750117FDA3C4A0928708B092AF
:1053A0008808C0928908D0928A082CA53DA58F8DC7
:1053B00098A1280F391F79010027F7FC0095102FBD
:1053C00080917B0490917C04A0917D04B0917E0437
:1053D000E80EF91E0A1F1B1F5701680180914C043B
:1053E00090914D04281B390BC901AA2797FDA09560
:1053F000BA2F280E391E4A1E5B1E2091920330914F
:10540000930340919403509195032215330544056D
:10541000550574F4A8EAEA2EA1E6FA2E012D112D05
:10542000E21AF30A040B150B170128015701680152
:1054300088279927DC01821B930BA40BB50B281638
:1054400039064A065B060CF0E9C2F8E52F2EFEE9A4
:105450003F2EFFEF4F2EFFEF5F2E220E331E441E16
:10546000551E20927F043092800440928104509215
:1054700082048201710120927B0430927C0440926C
:105480007D0450927E0429A53AA5A9A1BAA12A0FAC
:105490003B1FA901662757FD6095762F80918304F5
:1054A00090918404A0918504B0918604480F591FFF
:1054B0006A1F7B1F5A016B0180914A0490914B0433
:1054C000281B390BC901AA2797FDA095BA2F680E92
:1054D000791E8A1E9B1E8091960390919703A0913E
:1054E0009803B09199038AAB9BABACABBDAB86156F
:1054F0009705A805B90564F448EA51E660E070E054
:10550000481B590B6A0B7B0B3A014B015A016B018B
:105510008AA99BA9ACA9BDA9B095A09590958195A4
:105520009F4FAF4FBF4F681679068A069B060CF057
:1055300064C2E8E56E2EEEE97E2EEFEF8E2EEFEFE1
:105540009E2E2AA93BA94CA95DA9620E731E841E3A
:10555000951E6092870470928804809289049092CC
:105560008A04B401A301609283047092840480923F
:105570008504909286048CA19DA1AEA1BFA18093C9
:105580008B0490938C04A0938D04B0938E0460924E
:10559000A7047092A8048092A9049092AA04209271
:1055A0009F043092A0044092A1045092A204409320
:1055B000A3045093A4046093A5047093A604E092FE
:1055C0009B04F0929C0400939D0410939E04809190
:1055D0001A0390911B0397FDA4C37C01F594E794F3
:1055E000F594E794F594E794FAA6E9A68091180358
:1055F0009091190397FD93C38C0115950795159507
:105600000795159507951DA70CA780910B04909100
:105610000C040F9734F458E1E52E5CEFF52EFAA652
:10562000E9A680910B0490910C04079734F440E3B1
:10563000E42E48EFF42EFAA6E9A6209101012A30C3
:1056400009F46BC280910B0490910C04815D97402A
:105650000CF007C280910B0490910C04805E97407F
:1056600034F080EDE82E87E0F82EFAA6E9A68091C6
:10567000090490910A040F9724F408E11CEF1DA778
:105680000CA78091090490910A04079724F400E381
:1056900018EF1DA70CA72A3009F455C28091090400
:1056A00090910A04815D974024F008EE13E01DA755
:1056B0000CA78091090490910A04805E974024F021
:1056C00000ED17E01DA70CA7A0918A03AA2309F4F7
:1056D00097C060911A0370911B038091D10490913F
:1056E000D204681B790B20911A0330911B03280FF9
:1056F000391F37FD3FC3359527953093D20420934A
:10570000D104613871050CF43AC260E870E070931E
:10571000D8046093D7048A2F9927869FF001879F2A
:10572000F00D969FF00D1124CF01F7FD21C37C01F0
:10573000F594E794F594E794F594E794F594E79459
:1057400029A53AA5E20EF31EFAA6E9A64091180390
:10575000509119038091D3049091D404481B590BA4
:105760002091180330911903280F391F37FDFDC20E
:10577000359527953093D4042093D30441385105AF
:105780000CF4F5C140E850E05093D6044093D504A2
:105790008A2F9927849FD001859FB00D949FB00DCB
:1057A0001124AD019D01B7FDDDC289011595079555
:1057B000159507951595079515950795ECA5FDA5E4
:1057C0000E0F1F1F1DA70CA7869F9001879F300DEE
:1057D000969F300D1124C90120911A0330911B03AB
:1057E000820F931F90931B0380931A0380911803D9
:1057F00090911903480F591F5093190340931803B0
:105800004D855E85141615060CF0C1C18091DA072E
:105810009091DB0797FDA2C2AA2797FDA095BA2F0A
:105820006BA1262F332744275527BC01CD010E94A9
:10583000235897FD8EC2E6E09595879577956795F5
:10584000EA95D1F7AF8DB8A1A60FB71FB0934D0859
:10585000A0934C084B855C85141615060CF0C1C14D
:105860008091DE079091DF0797FD6FC2AA2797FD11
:10587000A095BA2F6BA1262F332744275527BC01AB
:10588000CD010E94235897FD5BC246E09595879510
:10589000779567954A95D1F7A9A1BAA1A60FB71F29
:1058A000B0934308A093420838A537FDC1C11093B7
:1058B000400800933F08F0925008E0924F08809112
:1058C000E407E82FFF27EE0FFF1FE255F84F808116
:1058D000918182599F4FA0916204B0916304A817EF
:1058E000B9070CF0EEC0CD0101969093630480934C
:1058F0006204DC018091E507E82FFF27EE0FFF1F10
:10590000E255F84F8081918182599F4F60916004E8
:1059100070916104681779070CF0C4C0CB0101963F
:105920009093610480936004BC018091E607E82FA6
:10593000FF27EE0FFF1FE255F84F808191818259BA
:105940009F4F40915E0450915F04481759070CF037
:10595000D5C0CA01019690935F0480935E04AC01A8
:105960008091E707E82FFF27EE0FFF1FE255F84F62
:105970008081918182599F4F20915C0430915D0418
:10598000281739070CF0ABC0C901019690935D044C
:1059900080935C049C01B7FD93C1AF3FB10539F022
:1059A00034F08FEF90E0909363048093620477FD6E
:1059B00076C16F3F710539F034F08FEF90E090932E
:1059C00061048093600457FD70C14F3F510539F069
:1059D00034F08FEF90E090935F0480935E0437FD86
:1059E0006AC12F3F310509F00CF4DEC28FEF90E061
:1059F00090935D0480935C04D7C260928704709298
:105A000088048092890490928A04A0928304B092C0
:105A10008404C0928504D0928604ADCD20927F0488
:105A2000309280044092810450928204A0927B04C0
:105A3000B0927C04C0927D04D0927E0424CD98EB79
:105A4000691694E979069EEF89069FEF99062CF571
:105A500028EB34E94EEF5FEF29833A834B835C8375
:105A60001ACB98EEE92E93E0F92EFAA6E9A6F2CD2C
:105A70002D823E824F825886F4CA8CA19DA1AEA190
:105A8000BFA18093770490937804A0937904B09396
:105A90007A049091E80798A712CC69827A828B8267
:105AA0009C82F9CA8081918182599F4F86179707FE
:105AB0000CF03BCF6115710509F437CFCB0101978D
:105AC0002FCF8081918182599F4F8A179B070CF0BD
:105AD00011CF109709F40ECFCD01019706CF808129
:105AE000918182599F4F821793070CF054CF211553
:105AF000310509F450CFC901019748CF80819181C8
:105B000082599F4F841795070CF02ACF41155105F4
:105B100009F426CFCA0101971ECF80910B04909102
:105B20000C04835F934034F038EEE32E33E0F32E21
:105B3000FAA6E9A680910B0490910C048A5F934029
:105B40000CF495CD8ECD8091090490910A04835F69
:105B5000934024F008EE13E01DA70CA780910904E0
:105B600090910A048A5F93400CF4AECDA9CD3FEF2B
:105B7000403853070CF008CE40E85FEF05CE8FEFBA
:105B8000603878070CF0C3CD60E87FEFC0CD80911E
:105B9000DA079091DB0797FD8FC1AA2797FDA095A3
:105BA000BA2FEBA12E2F332744275527BC01CD0157
:105BB0000E94235897FDA1C156E09595879577954A
:105BC00067955A95D1F72F8D38A1261B370B309347
:105BD0004D0820934C084B855C85141615060CF473
:105BE0003FCE8091DE079091DF0797FD61C1AA2724
:105BF00097FDA095BA2FEBA12E2F332744275527C9
:105C0000BC01CD010E94235897FD7CC136E09595DB
:105C10008795779567953A95D1F729A13AA1261BE3
:105C2000370B309343082093420838A537FF3FCE07
:105C30004BA5442309F03BCE80914804882309F00A
:105C400036CE8B859C85A1E081309A070CF038C157
:105C50002B853C854FEF203034070CF09BC189A584
:105C60009AA5280F391F3C872B8720503F4F309330
:105C7000500820934F08AD85BE85E1E0A130BE07F6
:105C80000CF46BC12CA53DA5A20FB31FBE87AD8739
:105C9000A050B140B0934008A0933F0810CE10929E
:105CA00061041092600457FF90CE10925F0410922E
:105CB0005E0437FF96CE10925D0410925C0474C1AE
:105CC000109263041092620472CE295F3F4F3DC868
:105CD000295F3F4F29C82D5F3F4F4F4F5F4FE5C8AA
:105CE000E60EF71E081F191FE0928708F092880839
:105CF0000093890810938A0858CB23E030E040E0F5
:105D000050E0E20EF31E041F151FA3C883E090E0CD
:105D1000A0E0B0E0E80EF91E0A1F1B1F5BC8079643
:105D20006BCC07965ACC2CA13DA14EA15FA120932C
:105D30007704309378044093790450937A04BFCA6F
:105D4000615C7F4F8F4F9F4FA0CD909581959F4F66
:105D50008DCD615C7F4F8F4F9F4F6DCD909581951D
:105D60009F4F5ACD215F3F4F20CD2F5F3F4F00CD3A
:105D70000F96DDCC2F5F3F4FBECC2CA13DA14EA195
:105D80005FA1209377043093780440937904509373
:105D90007A0489859A85AA2797FDA095BA2F2EA9FE
:105DA0003FA948AD59AD820F931FA41FB51F8B8B20
:105DB0009C8BAD8BBE8BBC01CD0129813A814B817F
:105DC0005C810E9423589B01AC0197FDC1C06BE030
:105DD00055954795379527956A95D1F76091830337
:105DE000862F9927AA27BB278F8B988FA98FBA8FC9
:105DF000BC01CD010E94235897FDA5C02CE09595CC
:105E00008795779567952A95D1F76B8F7C8F8D8FC6
:105E10009E8F6093C1047093C2048093C3049093D7
:105E2000C4046B897C898D899E892D813E814F8137
:105E300058850E9423589B01AC0197FD7FC08BE0E1
:105E400055954795379527958A95D1F76F89788D20
:105E5000898D9A8D0E94235897FD6BC09B01AC01E0
:105E6000BCE05595479537952795BA95D1F720937E
:105E7000C5043093C6044093C7045093C8046B8D87
:105E80007C8D8D8D9E8D97FD42C061387105810599
:105E9000910554F4CA01B90157FD27C06138710555
:105EA000810591050CF426CA81E08093660422CA1C
:105EB000909581959F4F9BCE909581959F4F6DCEEC
:105EC000E9A5FAA58E0F9F1F9C878B878050914074
:105ED0009093500880934F08CECE0196A11DB11D1E
:105EE0008EA79FA7A8ABB9ABABC9909580957095CD
:105EF00061957F4F8F4F9F4FD1CF615C7F4F8F4F09
:105F00009F4F5ACE615C7F4F8F4F9F4F7FCE9095B2
:105F10008095709561957F4F8F4F9F4FB6CF6150A1
:105F2000704F8F4F9F4F12C92150384F4F4F5F4FC7
:105F3000FAC86150704F8F4F9F4F90CF2150384F0C
:105F40004F4F5F4F7CCF6150704F8F4F9F4F56CF59
:105F50002150384F4F4F5F4F3ACF4D855E856FEFE1
:105F600040305607E4F48CA59DA5480F591F5E8765
:105F70004D8740505F4F5093400840933F089FCC5F
:105F80006150704F8F4F9F4F14C92150384F4F4F62
:105F90005F4F02C9F0925008E0924F086CCE109308
:105FA000400800933F088BCCE9960FB6F894DEBF0B
:105FB0000FBECDBFDF91CF911F910F91FF90EF905A
:105FC000DF90CF90BF90AF909F908F907F906F9019
:105FD0005F904F903F902F900895809101018D30F8
:105FE00009F455C110927A0080910B0490910C0431
:105FF0009093500880934F088091090490910A046F
:106000009093400880933F08809107049091080482
:1060100090938108809380088091030490910404F8
:106020009C01442737FD4095542FDA01C901880FA0
:10603000991FAA1FBB1F880F991FAA1FBB1F820F82
:10604000931FA41FB51F820F931FA41FB51F90930A
:106050007C0880937B0880910504909106049C0144
:10606000442737FD4095542FDA01C901880F991F45
:10607000AA1FBB1F880F991FAA1FBB1F820F931F48
:10608000A41FB51F820F931FA41FB51F90938C08E8
:1060900080938B08809101049091020490935E0894
:1060A00080935D088FEC80937A008091E407E82F5D
:1060B000FF27EE0FFF1FE255F84F80819181825933
:1060C0009F4FA0916204B0916304A817B9070CF028
:1060D00085C0CD0101969093630480936204DC0136
:1060E0008091E507E82FFF27EE0FFF1FE255F84FDD
:1060F0008081918182599F4F609160047091610409
:10610000681779070CF096C0CB0101969093610453
:1061100080936004BC018091E607E82FFF27EE0F13
:10612000FF1FE255F84F8081918182599F4F409126
:106130005E0450915F04481759070CF06CC0CA0107
:10614000019690935F0480935E04AC018091E70711
:10615000E82FFF27EE0FFF1FE255F84F8081918156
:1061600082599F4F20915C0430915D0428173907B4
:106170000CF042C0C901019690935D0480935C04C9
:106180009C01B7FD7FC0AF3FB10511F00CF061C0BD
:1061900077FD67C06F3F710539F034F08FEF90E005
:1061A000909361048093600457FD61C04F3F510597
:1061B00039F034F08FEF90E090935F0480935E04A9
:1061C00037FD5BC02F3F310509F00CF463C08FEF42
:1061D00090E090935D0480935C045CC08081918129
:1061E00082599F4F8A179B070CF07ACF109709F4BA
:1061F00077CFCD0101976FCF8081918182599F4FD9
:10620000821793070CF0BDCF2115310509F4B9CFE2
:10621000C9010197B1CF8081918182599F4F841725
:1062200095070CF093CF4115510509F48FCFCA01A2
:10623000019787CF8081918182599F4F8617970759
:106240000CF069CF6115710509F465CFCB01019799
:106250005DCF8FEF90E0909363048093620477FFAB
:1062600099CF109261041092600457FF9FCF109253
:106270005F0410925E0437FFA5CF10925D04109268
:106280005C0408C0109263041092620481CF0E94E3
:10629000BC15A8CE80910D089927AA27BB27BC0161
:1062A000CD0124EC39E040E050E00E942358DC01AD
:1062B000CB018093960390939703A0939803B09398
:1062C000990380910E089927AA27BB27BC01CD010D
:1062D0000E942358DC01CB01809392039093930397
:1062E000A0939403B093950308956F927F928F9239
:1062F0009F92AF92BF92CF92DF92EF92FF920F9355
:106300001F93CF93DF93C0E0D0E07E016E01109227
:10631000E603469AD093B604C093B504D093B40470
:10632000C093B30480E090E0A0E0B0E08093AD04BF
:106330009093AE04A093AF04B093B004D093C00484
:10634000C093BF04D093BE04C093BD04D093BC04DB
:10635000C093BB04D0937008C0936F08109283035E
:10636000109282031092FF030E94ED2F84E690E0CA
:106370000E94F2110E94ED2F8091E80780FF10C06B
:106380008091120390911303875B934008F07BC0C8
:1063900080911203909113038E5E924008F473C0B3
:1063A0001FE18AE090E00E94F21180910704909131
:1063B0000804C80FD91F80910B0490910C04E80EBB
:1063C000F91E8091090490910A04C80ED91E11503B
:1063D00017FFE7CFA701405F5F4F5695479556954A
:1063E00047955093C0044093BF049601205F3F4FF0
:1063F00036952795369527953093BE042093BD0496
:10640000CE01409696958795929582958F708927B3
:106410009F7089279093BC048093BB04909370086D
:1064200080936F083093BA042093B9045093B80452
:106430004093B70444E050E0DA010E94B258802D46
:10644000853020F180918B0890918C0897FD53C086
:106450006CE070E00E9462587093B4046093B304DF
:1064600080917B0890917C0897FD56C06CE070E0AD
:106470000E9462587093B6046093B50480918E07B1
:1064800090918F074DC00E946A158ACFDA010E9451
:10649000B258802D9927982F8827DA0111960E94EB
:1064A000B258202D820F911D9093B6048093B504AD
:1064B000DA0112960E94B258802D9927982F8827CA
:1064C000DA0113960E94B258202D820F911D9093ED
:1064D000B4048093B304DA0114960E94B258802D5C
:1064E0009927982F8827DA0115960E94B258202DF7
:1064F000820F911D15C0909581959F4F6CE070E0C3
:106500000E9462587093B4046093B30480917B0836
:1065100090917C0897FFAACF909581959F4FA6CF29
:10652000AA2797FDA095BA2FBC01CD010E94A957BB
:10653000DC01CB018093AD049093AE04A093AF0433
:10654000B093B0041092500810924F081092400877
:1065500010923F08109281081092800884E690E023
:106560000E94F2118091030490910404AA2797FDE0
:10657000A095BA2F9C01AD01220F331F441F551F58
:10658000220F331F441F551F280F391F4A1F5B1F3F
:10659000280F391F4A1F5B1F30937C0820937B080C
:1065A0008091050490910604AA2797FDA095BA2F23
:1065B0007C018D01EE0CFF1C001F111FEE0CFF1C57
:1065C000001F111FE80EF91E0A1F1B1FE80EF91EFF
:1065D0000A1F1B1FF0928C08E0928B088091F40731
:1065E000682E772488249924C9019C01442737FD0B
:1065F0004095542FC401B3010E9423585B016C01E4
:106600006093A7047093A8048093A9049093AA04AC
:106610009701442737FD4095542FC401B3010E94D0
:106620002358DC01CB0180939F049093A004A09396
:10663000A104B093A204A0928304B0928404C092F7
:106640008504D092860480937B0490937C04A0936D
:106650007D04B0937E041092770410927804109217
:10666000790410927A048091140390911503A091FB
:106670001603B0911703909391078093900710929F
:10668000FE031092FD0310926F041092700410929A
:1066900071041092720480916D0490916E04909335
:1066A0006C0480936B040E94425182E390E09093CB
:1066B000E9038093E80380910D089927AA27BB2757
:1066C000BC01CD0124EC39E040E050E00E942358A9
:1066D000DC01CB018856954CAF4FBF4F809396039A
:1066E00090939703A0939803B093990380910E0819
:1066F0009927AA27BB27BC01CD010E942358DC01A2
:10670000CB018856954CAF4FBF4F80939203909327
:106710009303A0939403B093950310927F03109278
:106720007E0380916D0490916E04AA2797FDA09539
:10673000BA2F20917A0330917B0340917C035091D2
:106740007D03BC01CD010E942358DC01CB01809365
:10675000870890938808A0938908B0938A081092BC
:1067600065041092640411E0109300010E94D75454
:1067700080912F04846080932F048FEF8093F10821
:106780001092F20880E28093F3088091E407E82FEA
:10679000FF27EE0FFF1FE255F84F8081918182594C
:1067A0009F4F90936304809362048091E507E82FE4
:1067B000FF27EE0FFF1FE255F84F8081918182592C
:1067C0009F4F90936104809360048091E607E82FC7
:1067D000FF27EE0FFF1FE255F84F8081918182590C
:1067E0009F4F90935F0480935E048091E707E82FAA
:1067F000FF27EE0FFF1FE255F84F808191818259EC
:106800009F4F90935D0480935C041093E60384E6AD
:1068100080935B04DF91CF911F910F91FF90EF90D8
:10682000DF90CF90BF90AF909F908F907F906F90B0
:10683000089580915204882381F580938E08809377
:1068400061088093740880935B0880935C08809350
:10685000760880937308809351088091C40388233D
:1068600001F58091C703882321F0809374088093F9
:106870005B088091C503882321F080935C08809396
:1068800076088091C603882321F080937308809353
:10689000510880912F048C7F09C080912F04816062
:1068A00005C080938E0880936108DBCF80932F040E
:1068B00080914108992790936307809362078091A4
:1068C0004E08992790936507809364078091770815
:1068D000992790936707809366078091720899279C
:1068E000909369078093680710922A0410922904F4
:1068F0000E94862108958091EB078B3F68F08B3FC3
:1069000009F45BC28C3F09F4F1C28D3F09F4B2C2B5
:106910008E3F21F480915C0480938E038091EA077E
:106920008B3F08F4EDC18B3F09F4E8C18C3F09F4BB
:10693000FBC28D3F09F47DC28E3F09F404C38091F0
:106940008F03882309F0E1C180938F038091EC07C6
:106950008B3F08F4E1C18B3F09F4DCC18C3F09F4A3
:10696000DDC28D3F09F468C28E3F09F4E9C280910F
:106970008D03882309F0D5C180938D038091EE07A4
:106980008B3F68F08B3F09F424C28C3F09F4C9C2E5
:106990008D3F09F44BC28E3F21F480915C048093BB
:1069A0008C038091F5078B3F68F08B3F09F402C29E
:1069B0008C3F09F483C28D3F09F435C28E3F21F428
:1069C00080915C0480938B038091F6078B3F08F4E1
:1069D000AFC18B3F09F4AAC18C3F09F4AEC28D3F11
:1069E00009F433C28E3F09F4B7C2809189038B301A
:1069F00008F4A3C18F3F11F4809389038091F707B6
:106A00008B3F68F08B3F09F4DBC18C3F09F47DC2FA
:106A10008D3F09F417C28E3F21F480915C0480936E
:106A200088038091F8078B3F68F08B3F09F4CBC156
:106A30008C3F09F467C28D3F09F4F2C18E3F21F407
:106A400080915C0480938A032091FD072B3F08F41A
:106A500078C12B3F09F473C12C3F09F444C22D3F88
:106A600009F4EDC12E3F09F47AC22091860380918A
:106A7000FE078B3F08F06CC1809343048091FF07B1
:106A80008B3F68F08B3F09F4B3C18C3F09F428C2F7
:106A90008D3F09F4E9C18E3F21F480915C0480931D
:106AA0004204809100088B3F68F08B3F09F4A3C13A
:106AB0008C3F09F412C28D3F09F4E5C18E3F21F4E9
:106AC00080915C0480934104809101088B3F68F0C1
:106AD0008B3F09F45DC18C3F09F4E4C18D3F09F49B
:106AE000DBC18E3F21F480915C048093400480914F
:106AF00012088B3F68F08B3F09F44DC18C3F09F4BD
:106B0000D4C18D3F09F4CBC18E3F21F480915C0448
:106B100080933F04809113088B3F68F08B3F09F40A
:106B20003DC18C3F09F4C4C18D3F09F4AFC18E3F14
:106B300021F480915C0480933E04809114088B3F83
:106B400068F08B3F09F42DC18C3F09F4B4C18D3F2F
:106B500009F49FC18E3F21F480915C0480933D0431
:106B6000809115088B3F68F08B3F09F41DC18C3F65
:106B700009F4BFC18D3F09F480C18E3F21F480919B
:106B80005C0480933C04809102088B3F68F08B3F4B
:106B900009F40DC18C3F09F49DC18D3F09F470C10A
:106BA0008E3F21F480915C048093850380910708D7
:106BB0008B3F68F08B3F09F421C18C3F09F4ABC1D6
:106BC0008D3F09F424C18E3F21F480915C048093B1
:106BD000840380910A088B3F68F08B3F09F411C150
:106BE0008C3F09F489C18D3F09F414C18E3F21F413
:106BF00080915C048093830380910B088B3F68F045
:106C00008B3F09F4E9C08C3F09F45EC18D3F09F464
:106C100025C18E3F21F480915C0480938203809192
:106C20000C088B3F68F08B3F09F4D9C08C3F09F406
:106C30004EC18D3F09F415C18E3F21F480915C0453
:106C400080938103809111088B3F68F08B3F09F49A
:106C5000C9C08C3F09F46BC18D3F09F4F9C08E3F68
:106C600021F480915C0480938003809117088B3F0E
:106C700008F47EC08B3F09F479C08C3F09F45AC1F7
:106C80008D3F09F4E8C08E3F09F460C180916A0825
:106C9000823008F472C08F3F11F480936A088091AB
:106CA00019088B3F08F46DC08B3F09F468C08C3F16
:106CB00009F425C18D3F09F4B0C08E3F09F449C1E4
:106CC00080917E08823008F461C08F3F11F4809378
:106CD0007E0880912A088B3F70F08B3F09F485C0B5
:106CE0008C3F09F415C18D3F09F48EC08E3F09F029
:106CF00039C180915C0480938F0834C18091620413
:106D000080938F03882309F41FCE843608F41ECEA7
:106D100084E61ACE8091620480938D03882309F45F
:106D20002BCE843608F42ACE84E626CE80916204E7
:106D3000809389038B3008F05DCE8AE05DCE209190
:106D40006204209386038091FE078B3F08F494CE63
:106D50008B3FE1F18C3F09F4B4C08D3F09F487C04B
:106D60008E3F09F08BCE80915C0486CE80916204C8
:106D700080936A08823008F08ECF81E08ECF8091B8
:106D8000620480937E08823008F09FCF81E09FCF1D
:106D900080916204AACE80916204BACE809162048E
:106DA000CACE80916204DACE80916204EACE8091EC
:106DB0006204FACE8091620405CE80916204ACCD6B
:106DC000809162042CCE809162043CCE809162045A
:106DD00053CE80916204E3CD809162041ECF8091F6
:106DE00062042ECF809162043ECF8091620483CFF3
:106DF0008091620454CE8091620464CE80916204DA
:106E0000E6CE80916204F6CE80915E0474CF8091CC
:106E10005E04DDCE80915E04EDCE80915E04B1CF44
:106E200080915E040FCE80915E04CCCD80915E0493
:106E3000B6CD80915E0464CF80915E046DCF2091C9
:106E40005E047FCF80915E04EACD80915E0470CFB6
:106E500080915E0408CF80915E048ACF80915E04A9
:106E6000DCCE80915E04ECCE80915E0418CE8091E1
:106E70005E0402CE80915E044FCD80915E0481CE8F
:106E800080915E0491CE80915E041CCE80915E0460
:106E900052CE80915E0462CE80915E0426CE8091B7
:106EA0005E0436CE8091600420CE8091600430CEA6
:106EB0008091600440CE8091600450CE8091600447
:106EC00081CD80916004D8CD80916004A6CE809160
:106ED0006004B6CE8091600467CE80916004F2CDEC
:106EE00080916004DCCD209160042BCF8091600400
:106EF00013CD8091600445CE809160047BCE80915B
:106F000060043FCF809160049DCD8091600487CD67
:106F100080916004F0CE8091600459CE809160042D
:106F2000FBCE809160043BCD80916004E9CE8091DE
:106F3000600499CE809160041BCF80916004F8CEEC
:106F400080915C04E9CE80915C04DACE80915C048F
:106F50000FCF80915C0415CF80915C04E9CE209125
:106F60005C04EFCE33272F5F3F4F8CE398E2B901EB
:106F70000E94625870939103609390038091F3078D
:106F800080937F088091F2078093550808952F928F
:106F90003F924F925F926F927F928F929F92AF92A9
:106FA000BF92CF92DF92EF92FF920F931F93CF93F6
:106FB000DF93CDB7DEB7E6970FB6F894DEBF0FBE0E
:106FC000CDBF0E946426209101012C3008F09FC2A1
:106FD000299AA0905304B0905404BA82A982809157
:106FE000550899270A96A816B90614F49A83898336
:106FF00080915B04843608F08CC28091060388235C
:1070000009F465C48091F5049091F604009711F499
:107010000C94FB4701979093F6048093F5042A3073
:1070200011F40C940348243111F40C94034828986B
:107030008091300490913104895E934010F40C9457
:10704000F7478091FA07282F33273A83298381E075
:10705000809368048091E007A82FBB27AA0FBB1F6D
:10706000FD01EC53F84F118210828091E107282F27
:107070003327220F331FC9018C53984FFC01118213
:107080001082A255B84F11961C921E922255384F6D
:10709000D90111961C921E928091E307E82FFF27D9
:1070A000EE0FFF1FE255F84F118210828091790395
:1070B000815080937903809179038F3F31F0F09173
:1070C0006804F98BFF2309F417C40E947B34809174
:1070D000160590911705AC01440F551F480F591F15
:1070E0000091E007A02FBB27AA0FBB1FFD01E255AF
:1070F000F84FF090EF07CF2CDD24808191818C9D9B
:1071000050018D9DB00C9C9DB00C11244A0D5B1D4F
:1071100057FF02C00C94E94D5595479555954795F5
:10712000AC53B84F8091F007682F77278D919C91D1
:10713000869F9001879F300D969F300D1124240F5C
:10714000351F309317052093160580913E059091C9
:107150003F0540913A0550913B05840F951F281B30
:10716000390B30935A04209359048091180590915B
:107170001905AC01440F551F480F591F1091E10725
:10718000A12FBB27AA0FBB1FFD01E255F84F80813D
:1071900091818C9D90018D9D300D9C9D300D112411
:1071A000420F531F57FF02C00C94E54D559547956C
:1071B00055954795AC53B84F8D919C91869F900102
:1071C000879F300D969F300D1124240F351F30936B
:1071D00019052093180580913C0590913D0540913B
:1071E000380550913905840F951F281B390B3093B2
:1071F0005804209357048091E307E82FFF27EE0FF0
:10720000FF1FE255F84F80819181909581959F4FA6
:107210008330910514F40C948E4702979093560492
:10722000809355048091E207E82FFF27EE0FFF1FA0
:10723000E255F84FC080D18048E750E0C40ED51E1B
:10724000809189039927AA2797FDA095BA2FBC01A1
:10725000CD010E94A957DC01CB0120E030E040E2E3
:1072600051E4BC01CD010E944A57DC01CB01BC01B5
:10727000CD010E948C57DC01CB0180938508609181
:1072800088038091AF0680FF06C080918F08813807
:1072900010F00C947D48D0925404C0925304809115
:1072A00053049091540497FF02C00C94ED4DB0909C
:1072B000E807B98EB2FC02C00C94D4471092710852
:1072C0004091590450915A04CA0157FF02C00C94CE
:1072D000DF47959587959595879597FF02C00C9404
:1072E000E84720913404309135042817390714F009
:1072F0000C949647CA0157FF02C00C94394E97FF71
:1073000002C00C943E4EBC017595679575956795C6
:107310006536710514F40C94994764E670E0409169
:10732000570450915804CA0157FD02C00C94A2475B
:107330000396959587959595879597FD02C00C9432
:10734000AA47909581959F4F209132043091330444
:107350002817390714F40C94B347C9010197C0905A
:107360006804C98ACC2011F40C94CA4710923504E1
:10737000109234041092330410923204E12FFF274C
:10738000EE0FFF1FE255F84F40910808242F3327D6
:10739000808191812817390734F480912B0882FF6E
:1073A00002C00C947248E12FFF27EE0FFF1FE25539
:1073B000F84F842F992720910908821B9109208179
:1073C00031812817390714F410924704E12FFF2761
:1073D000EE0FFF1FE255F84F842F992722273327FE
:1073E000281B390B808191818217930734F4809197
:1073F0002B0883FF02C00C946D48809146048823BB
:1074000091F0E12FFF27EE0FFF1FE255F84F80911B
:1074100009089927841B91092081318182179307DC
:1074200014F40C940B4DE02FFF27EE0FFF1FE255D5
:10743000F84F242F3327808191812817390734F49E
:1074400080912B0880FF02C00C946748509144043F
:10745000552399F0E02FFF27EE0FFF1FE255F84F5D
:10746000842F992720910908821B9109208131815D
:107470002817390714F40C94064DE02FFF27EE0F60
:10748000FF1FE255F84F842F992722273327281B07
:10749000390B808191818217930734F480912B08F6
:1074A00081FF02C00C94624880914504882391F0CA
:1074B000E02FFF27EE0FFF1FE255F84F80910908DC
:1074C0009927841B9109208131818217930714F435
:1074D0000C94024D80914704882331F48091460436
:1074E000882311F40C945F4891E0552331F4809186
:1074F0004504882311F40C94774881E08093490473
:10750000109248041092470410924604F8C129983A
:1075100060CD80915B048D3808F4C8CD109268046A
:107520009091FB0782E3989FC00111249093F60489
:107530008093F504E981FA81B99714F00C94F2482C
:1075400080913004909131048F3F910519F010F033
:107550000C94DE4D1092D9041092DA041092DB04E0
:107560001092DC041092DD041092DE041092DF040D
:107570001092E0048A3F910511F40C94494F309128
:10758000E207E32FFF27EE0FFF1FE255F84F808140
:107590009181813591050CF4E9C040915204442356
:1075A00009F0E4C08091E307E82FFF27EE0FFF1FEB
:1075B000E255F84F808191818C34910514F40C943C
:1075C000B84E8091F7048F5F893C10F40C94A34F60
:1075D0002C3010F00C9425502998109252041092DF
:1075E000F70410923104109230040091E007E02F6C
:1075F000FF27EE0FFF1FE255F84F808191818734FE
:10760000910514F00C9452501091E107E12FFF27DF
:10761000EE0FFF1FE255F84F808191810190F081BC
:10762000E02DF7FF02C00C94C650E734F1050CF4CE
:1076300070C021E0A12FBB27AA0FBB1FA255B84FD6
:107640008D919C9111978734910544F0E02FFF278D
:10765000EE0FFF1FE255F84F808191818D919C9133
:107660008734910564F0E02FFF27EE0FFF1FE255EE
:10767000F84F80819181873491050CF022E0E12F51
:10768000FF27EE0FFF1FE255F84F8081918186346E
:10769000910564F4E02FFF27EE0FFF1FE255F84F2E
:1076A00080819181873491050CF023E0E12FFF2741
:1076B000EE0FFF1FE255F84F808191818A5B9F4F4B
:1076C00064F4E02FFF27EE0FFF1FE255F84F808193
:1076D0009181873491050CF024E0E12FFF27EE0F14
:1076E000FF1FE255F84F808191818A5B9F4F64F4C0
:1076F000E02FFF27EE0FFF1FE255F84F80819181A9
:10770000863491050CF425E0822F0E94CD02109161
:10771000E107E12FFF27EE0FFF1FE255F84F8081B1
:1077200091810190F081E02DF7FF02C00C949E50F2
:107730007E9714F00C94DF4F8091E007E82FFF272D
:10774000EE0FFF1FE255F84F808191818A5B9F4FBA
:1077500014F00C94DF4F81E08093A30688EE93E051
:107760009093E9038093E8033091E207E32FFF272A
:10777000EE0FFF1FE255F84F808191818B5A9F4F8A
:107780000CF094CCD090E307ED2DFF27EE0FFF1FF8
:10779000E255F84F80819181855B9F4F14F00C94E6
:1077A000F64D8091F8048F5F893C10F40C94964E4E
:1077B00088EC8093F80481E090E09093310480930A
:1077C000300481E0809352041092E1041092E204AC
:1077D0001092E3041092E40410927704109278045B
:1077E0001092790410927A04109273041092740427
:1077F00010927504109276048091F407E82EFF240D
:107800000027112780917B0890917C089C014427D8
:1078100037FD4095542FC801B7010E942358DC0161
:10782000CB018093870490938804A0938904B0933C
:107830008A0480918B0890918C089C01442737FD25
:107840004095542FC801B7010E942358DC01CB0199
:1078500080937F0490938004A0938104B09382046A
:107860008091A7049091A804A091A904B091AA04C2
:107870008093830490938404A0938504B09386043A
:1078800080919F049091A004A091A104B091A204C2
:1078900080937B0490937C04A0937D04B0937E043A
:1078A0001092D9041092DA041092DB041092DC04D6
:1078B0001092DD041092DE041092DF041092E004B6
:1078C00080912F04886080932F040C94F84D809150
:1078D000090390910A038F5F9F4F09F093CB88E9CA
:1078E0009AE39093E9038093E80380E09CE090930F
:1078F0000A038093090386CBD090E807D98E0091C4
:1079000048040B8B002321F480914904882369F0FB
:1079100080910708992729813A818217930714F4E7
:107920009A83898381E08093660439893323B9F08F
:10793000109256041092550410925A041092590451
:1079400010925804109257048AE58093850888E7BE
:107950008093710810924804109249041B8A209168
:1079600064083091650840916608509167088091DD
:10797000A7049091A804A091A904B091AA048CA393
:107980009DA3AEA3BFA3280F391F4A1F5B1F809181
:107990006B0890916C08A0916D08B0916E08A09052
:1079A0009F04B090A004C090A104D090A204A8A20B
:1079B000B9A2CAA2DBA28A0D9B1DAC1DBD1DC09041
:1079C0005708D0905808E0905908F0905A08CDA672
:1079D000DEA6EFA6F8AAE090A304F090A40400911C
:1079E000A5041091A604EC8EFD8E0E8F1F8FADA402
:1079F000BEA4CFA4D8A8AE0CBF1CC01ED11EADA67D
:107A0000BEA6CFA6D8AA209047083090480840903C
:107A1000490850904A08C0909B04D0909C04E09084
:107A20009D04F0909E04C9A6DAA6EBA6FCA62C0C39
:107A30003D1C4E1C5F1CD0904904D88EDD2009F0FF
:107A4000AEC30B89002309F0AAC380936B089093FF
:107A50006C08A0936D08B0936E082093640830936F
:107A60006508409366085093670880918E0790914F
:107A70008F07815092400CF40EC19090F1084FEFA7
:107A8000941611F40C940F4D8091F407A82EBB248A
:107A9000CC24DD246CA17DA18EA19FA1A60195011E
:107AA0000E94975879018A0180917B0890917C0807
:107AB000AA2797FDA095BA2FE81AF90A0A0B1B0B03
:107AC00068A179A18AA19BA1A60195010E9497585E
:107AD00059016A0180918B0890918C08AA2797FD23
:107AE000A095BA2FA81AB90ACA0ADB0A892D9927C4
:107AF00087FD9095A92FB92F8D839E83AF83B8877B
:107B0000BC01CD01A80197010E94235897FF02C034
:107B10000C94694F3B014C01F9E09594879477945C
:107B20006794FA95D1F76D817E818F819885A60142
:107B300095010E94235897FF02C00C94634F5B018C
:107B40006C01E9E0D594C794B794A794EA95D1F76E
:107B50008091340490913504813491053CF48091F6
:107B600032049091330481349105C4F0D401C301EF
:107B700097FE02C00C948E4F3C014D019594879462
:107B800077946794D601C501D7FE02C00C94894F43
:107B90005C016D01D594C794B794A7948091E307D5
:107BA000E82FFF27EE0FFF1FE255F84F80819181EC
:107BB0000190F081E02DF7FF02C00C945E4F7A97A0
:107BC000A4F0C401B30123E030E040E050E00E94A3
:107BD000975839014A01C601B50123E030E040E081
:107BE00050E00E94975859016A018091F308282FAC
:107BF000332727FD3095432F532F2615370548058A
:107C0000590514F439014A01992787FD90959095FB
:107C100081959F4FAA2797FDA095BA2F68167906E0
:107C20008A069B0614F43C014D012A153B054C05C0
:107C30005D0514F459016A01A816B906CA06DB06E7
:107C400014F45C016D018091870490918804A091E7
:107C50008904B0918A0486199709A809B909809303
:107C6000870490938804A0938904B0938A04809138
:107C70007F0490918004A0918104B09182048A19BC
:107C80009B09AC09BD0980937F0490938004A09365
:107C90008104B09382048091FB039091FC038F3F99
:107CA000910509F008F4DFC2F88DFF2329F40B8950
:107CB000002311F40C94094960E070E06B0110920C
:107CC000660418A6E0906408F090650800916608C4
:107CD0001091670860906B0870906C0880906D0838
:107CE00090906E08909171089A8B992311F00C94E2
:107CF000ED4710924D0410924C0410924B041092D8
:107D00004A04E0922005F092210500932205109389
:107D10002305609224057092250580922605909295
:107D200027051092970410929804109299041092CB
:107D30009A04109293041092940410929504109255
:107D4000960410928F041092900410929104109255
:107D500092041092640810926508109266081092BE
:107D6000670810926B0810926C0810926D081092C0
:107D70006E081092570810925808109259081092E5
:107D80005A08109247081092480810924908109219
:107D90004A081092FC031092FB03009155041091C5
:107DA0005604C80117FD80C2409774F068EE262E75
:107DB00063E0362E30929B0320929A03298D24FD96
:107DC00003C081E080930D05B090F107CB2CDD243A
:107DD000EE24FF24B801882777FD8095982F98011D
:107DE00017FF02C00C941448442737FD4095542FC8
:107DF0000E9423589B01AC01C701B6010E94235881
:107E000097FF02C00C940E4859E095958795779599
:107E100067955A95D1F79B018B2D9927809FA001DB
:107E2000819F500D909F500D1124CA0157FF02C031
:107E30000C940B489595879595958795280F391F34
:107E4000C901AA2797FDA095BA2F8093E1049093CA
:107E5000E204A093E304B093E4042091770430910A
:107E600078044091790450917A04281B390B4A0B0D
:107E70005B0B213563EC360760E0460760E0560790
:107E80000CF48BC780E593ECA0E0B0E0809377041E
:107E900090937804A0937904B0937A048091770446
:107EA00090917804A0917904B0917A04805B9C430E
:107EB000AF4FBF4F64F480EB9CE3AFEFBFEF809315
:107EC000770490937804A0937904B0937A04C090D7
:107ED0006D04D0906E04C114D10409F4EAC1F98D87
:107EE000F3FFE7C18CA19DA1AEA1BFA1B7FF02C066
:107EF0000C94D84D09E0B595A795979587950A9567
:107F0000D1F79CAB8BAB97FF02C00C94614E88A15C
:107F100099A1AAA1BBA1B7FF02C00C945B4E19E0C6
:107F2000B595A795979587951A95D1F7BC0197FFB9
:107F300002C00C94564EEBA8FCA8E616F70614F403
:107F40007CAB6BAB6BA97CA977FF02C00C94524E43
:107F50002B0155944794559447945594479408940D
:107F6000411C511C0CE112E0C00ED11E760100270D
:107F7000F7FC0095102F24EE3DEFC20ED31E60904B
:107F80008708709088088090890890908A0880916E
:107F90007A0390917B03A0917C03B0917D038C8B3D
:107FA0009D8BAE8BBF8BC401B3012C893D894E895B
:107FB0005F890E949758E21AF30A040B150BC80157
:107FC000B70128E631E040E050E00E949758DC011C
:107FD000CB018C01045B1040A0908008B090810818
:107FE000C501B7FE02C00C94414E8138910514F0D2
:107FF00000E010E020909A0330909B03211431049C
:10800000A1F4ABA9BCA9599784F480916404909120
:108010006504800F911F90936504809364048091A0
:108020000D05882311F00C94994EC801880F991FF3
:10803000880F991F880F991FB2010E9462589B01F7
:10804000442737FD4095542F260D371D481D591DD7
:1080500020938708309388084093890850938A08B2
:10806000F0908B036F2D7727EBA9FCA96E9FC001C1
:108070006F9F900D7E9F900D112497FF02C00C946E
:108080004F4E959587959595879595958795959557
:10809000879595958795681B790B7CAB6BAB77FFC4
:1080A00002C00C94474E2114310411F00C94404F3F
:1080B000009134041091350480913204909133047E
:1080C000080F191F17FF02C00C94934F15950795C1
:1080D0001595079515950795005C1F4FCA01B901C5
:1080E0002C893D894E895F890E949758DA01C90120
:1080F00020916B0430916C04442737FD4095542F38
:10810000821B930BA40BB50B845E9D4FAF4FBF4FEB
:10811000BC01CD0128E631E040E050E00E949758D4
:10812000DC01CB01845B90404BA95CA9849F90014A
:10813000859F300D949F300D1124C901B8010E9414
:10814000625883E0F89ED0011124BCABABABA617FC
:10815000B70714F40C946A4E8BA99CA9909581954D
:108160009F4F681779070CF4BC01CB01AA2797FD34
:10817000A095BA2F2091770430917804409179042A
:1081800050917A04820F931FA41FB51F8093770428
:1081900090937804A0937904B0937A048EC01092DF
:1081A0009704109298041092990410929A041092D5
:1081B00093041092940410929504109296041092D5
:1081C0006408109265081092660810926708109271
:1081D0006B0810926C0810926D0810926E082224A1
:1081E000332421012DA63EA64FA658AA80918704CC
:1081F00090918804A0918904B0918A0480938304AB
:1082000090938404A0938504B093860480917F04A6
:1082100090918004A0918104B091820480937B04AA
:1082200090937C04A0937D04B0937E041092FC0391
:108230001092FB0310924B0410924A0410924D04CA
:1082400010924C04188D112309F025CD2B8922237F
:1082500009F40BCC8091FB039091FC038F3F9105B7
:1082600011F008F021CDADA4BEA4CFA4D8A8A0924F
:108270005708B0925808C0925908D0925A082092D4
:108280004708309248084092490850924A08B090F6
:108290007108BA8A0091660408A7009155041091EC
:1082A0005604C80117FF80CD88279927801B910BA2
:1082B0007BCDA0908008B090810880910C05815002
:1082C0008F3F09F473C580930C05B8A5BB2381F0DB
:1082D0001092DD041092DE041092DF041092E0048C
:1082E0001092D9041092DA041092DB041092DC048C
:1082F000E88DEE2309F04EC5FA898F2F9927AA271A
:10830000BB27BC01CD012CA13DA14EA15FA10E94C4
:108310002358DC01CB01BC01CD0128EF3AE240E05B
:1083200050E00E94975819010B89002309F02FC5CE
:108330001A89812F9927AA27BB27BC01CD0128A123
:1083400039A14AA15BA10E942358DC01CB01BC01E9
:10835000CD0128EF3AE240E050E00E9497583C837C
:108360002B830091420810914308093C11050CF43D
:1083700006C508EC10E01093430800934208609093
:108380004C0870904D0839EC631671040CF4ECC481
:10839000A8EC6A2E712C70924D0860924C08809166
:1083A0004F0890915008AA2797FDA095BA2F2091C9
:1083B0008508C22EDD24EE24FF24BC01CD01A701D7
:1083C00096010E9423589B01AC01C801AA2797FD82
:1083D000A095BA2FE7E0880F991FAA1FBB1FEA9547
:1083E000D1F7280F391F4A1F5B1F57FD0FC676E0D4
:1083F00055954795379527957A95D1F74101820E86
:10840000931E240180913F0890914008AA2797FD70
:10841000A095BA2FBC01CD01A70196010E94235857
:108420009B01AC01C301AA2797FDA095BA2F67E075
:10843000880F991FAA1FBB1F6A95D1F7280F391FF4
:108440004A1F5B1F57FD18C606E05595479537959F
:1084500027950A95D1F76B807C80620E731E7CAAEB
:108460006BAAAA0CBB1CAA0CBB1CC501AA2797FDB2
:10847000A095BA2FBC01CD01A70196010E942358F7
:108480007B018C0197FDEFC5B6E015950795F79434
:10849000E794BA95D1F7EA898E2F9927AA27BB27A7
:1084A00020918B0430918C0440918D0450918E0466
:1084B000BC01CD010E942358DC01CB01BC01CD01E0
:1084C00020EE3BEA40E050E00E9497585701A20E90
:1084D000B31EC501F1E08F16F0E49F0624F0812C55
:1084E000A0E49A2E240100E0801600EC90060CF027
:1084F00036C4812CF0EC9F2E9092500880924F0849
:1085000011E0611610E471062CF0612CE0E47E2E7F
:108510007CAA6BAA20E0621620EC72060CF018C44C
:10852000612C70EC772E7092400860923F0851E009
:10853000A51650E4B50624F0A12C60E4B62EC501C2
:1085400060E0A61660ECB6060CF0FDC3A12C50EC62
:10855000B52EB0928108A092800889819A81880FF7
:10856000991F880F991F9A838983A98D8A2F99272C
:1085700080FFEBC081FF18C080912B0899279C01D8
:108580002071307084FF20C680918E0381558B331B
:1085900008F01AC68091B70381508F3F11F40C94F4
:1085A0006D4E8093B7031BC020918E0380917E0394
:1085B00090917F03820F911D2091ED073327829FB9
:1085C000F001839FF00D929FF00D1124CF0144978D
:1085D00090934F0480934E0481E080936704209130
:1085E000500430915104F989FF2321F010924F0477
:1085F00010924E04890120914E0430914F042017AF
:1086000031070CF0A2C080916704882309F49DC053
:10861000021B130B80918D039927089F6001099F0E
:10862000D00C189FD00C1124C601D7FE02C00C94A8
:108630006F4F8C011595079515950795E980FA8080
:10864000E01AF10A87018091FD039091FE0397FFE4
:1086500002C00C947C4F95958795081B190BC09010
:108660006F04D0907004E0907104F0907204F7FEF3
:1086700002C00C94724F87E0F594E794D794C794A6
:108680008A95D1F780918C03282F332744275527CB
:10869000C701B6010E94235897FF02C00C94834F74
:1086A000B5E09595879577956795BA95D1F731E0BF
:1086B0006931730714F40C94144E68E171E0061BE1
:1086C000170B8091FA049091FB049C01229532953E
:1086D000307F3227207F3227281B390B200F311F94
:1086E00037FF02C00C947F4FA901559547955595CA
:1086F00047955595479555954795BA018091E90756
:10870000282F3327220F331F220F331F42175307FF
:1087100074F489819A818217930714F0A901B90131
:10872000A981BA81A217B30714F4AD01BD01E98193
:10873000FA81E417F50714F00C941E4EAF01F09384
:10874000FB04E093FA045A83498350907F08852DF7
:108750009927880F991F880F991F80559040C980CD
:10876000DA808C159D0514F49A838983E980FA8058
:10877000F0925907E09258078091E1049091E20449
:10878000A091E304B091E404880F991FAA1FBB1FB6
:10879000880F991FAA1FBB1FA81AB90ABAAAA9AAAB
:1087A0008701013A11050CF4BAC2C701F7FE02C0F5
:1087B0000C94F34D9595879529A93AA982179307AB
:1087C00014F49AAB89AB909581959F4F49A95AA90A
:1087D0004817590714F49AAB89AB252D3327220F7C
:1087E000331F220F331FC90149815A81841B950B06
:1087F000A9A9BAA98A179B0714F49AAB89AB698116
:108800007A81621B730BE9A9FAA9E617F70714F43A
:108810007AAB69AB8091590490915A048401081B8A
:10882000190B1093630800936208FA89FF2309F477
:1088300070C2281A390AC101AA2797FDA095BA2F3C
:108840002091D9043091DA044091DB045091DC048A
:10885000820F931FA41FB51F8093D9049093DA044D
:10886000A093DB04B093DC046091D9047091DA0426
:108870008091DB049091DC0461302AEF720720E0E4
:10888000820720E0920774F080E09AEFA0E0B0E069
:108890008093D9049093DA04A093DB04B093DC04B2
:1088A000BC01CD01603036E073073FEF83073FEF37
:1088B000930774F480E096E0AFEFBFEF8093D904A4
:1088C0009093DA04A093DB04B093DC04BC01CD01E7
:1088D000C0909003D09091039601442737FD4095B6
:1088E000542F0E9497587801E20EF31EB090800337
:1088F0006B2D77278827992729A93AA937FDAFC378
:1089000037FD98C33595279549815A81240F351F26
:10891000442737FD4095542F0E94235897FD9AC352
:10892000F6E09595879577956795FA95D1F79B0130
:108930006E157F050CF47B0166277727621B730B8E
:10894000E616F7060CF47B018091570490915804C9
:108950008301081B190B10933E0800933D085A89A8
:10896000552309F4D0C1AB81BC81A81BB90BFD0113
:10897000CF01AA2797FDA095BA2F2091DD04309151
:10898000DE044091DF045091E004820F931FA41F86
:10899000B51F8093DD049093DE04A093DF04B093B1
:1089A000E0046091DD047091DE048091DF04909119
:1089B000E0046130FAEF7F07F0E08F07F0E09F07F7
:1089C00074F080E09AEFA0E0B0E08093DD04909333
:1089D000DE04A093DF04B093E004BC01CD0160305D
:1089E00026E072072FEF82072FEF920774F480E0E2
:1089F00096E0AFEFBFEF8093DD049093DE04A09389
:108A0000DF04B093E004BC01CD019601442737FD9B
:108A10004095542F0E949758020F131F6B2D7727F4
:108A20008827992729A93AA937FD40C337FD29C3CB
:108A30003595279549815A81240F351F442737FDE5
:108A40004095542F0E94235897FD2BC356E09595CF
:108A50008795779567955A95D1F79B0160177107B0
:108A60000CF48B0166277727621B730B0617170719
:108A70000CF48B01C980DA80CE0CDF1C29A93AA93D
:108A80002C0D3D1DC90137FD18C39C013595279557
:108A900035952795B09055088B2D992728173907BC
:108AA0000CF422C1852D9927821793070CF41CC161
:108AB00020938E089601201B310B89A99AA9281BA7
:108AC000390BC90137FD1DC19C0135952795359599
:108AD00027958B2D9927281739070CF4F5C0852D7C
:108AE0009927821793070CF4EFC020936108A9819E
:108AF000BA81A01BB10B29A93AA92A0F3B1FC901B2
:108B000037FDF0C09C0135952795359527958B2D20
:108B10009927281739070CF4D5C0852D9927821776
:108B200093070CF4CFC02093740869817A816E1981
:108B30007F099B01201B310BE9A9FAA92E1B3F0BD2
:108B4000A90137FDB7C29A01359527953595279527
:108B50004B2D5527241735070CF4A7C0452D552755
:108B6000421753070CF4A1C020935B0829A93AA926
:108B70002A0F3B1FA90137FDA2C09A013595279501
:108B8000359527954B2D5527241735070CF47EC0B6
:108B9000452D5527421753070CF478C020935C08E5
:108BA0009B01200F311FE9A8FAA82E193F09C9011E
:108BB00037FD79C09C0135952795359527958B2DE7
:108BC0009927281739070CF451C0852D992782174A
:108BD00093070CF44BC02093760829813A81200F2B
:108BE000311F49A95AA9240F351FC90137FD4CC0AF
:108BF0009C0135952795359527958B2D9927281715
:108C000039072CF1852D99278217930704F12093BA
:108C100073089601200F311F89A99AA9281B390BC7
:108C2000C90137FD21C09C013595279535952795BC
:108C30008B2D9927281739073CF0852D9927821706
:108C4000930714F00C9427519C010C9427519C011C
:108C5000209373089601200F311F89A99AA9281B18
:108C6000390BC90137FFDFCF0396DDCF9C0120937D
:108C7000760829813A81200F311F49A95AA9240F6A
:108C8000351FC90137FFB4CF0396B2CF9A012093A5
:108C90005C089B01200F311FE9A8FAA82E193F0993
:108CA000C90137FF87CF039685CF9A0120935B08D0
:108CB00029A93AA92A0F3B1FA90137FF5ECF4D5FB3
:108CC0005F4F5BCF9C012FCF9C0120936108A9814E
:108CD000BA81A01BB10B29A93AA92A0F3B1FC901D0
:108CE00037FF10CF03960ECF9C0120938E0896017C
:108CF000201B310B89A99AA9281B390BC90137FF01
:108D0000E3CE0396E1CEC801AA2797FDA095BA2F1E
:108D100034CEC801AA2797FDA095BA2F91CD89A975
:108D20009AA98135910524F0A0E5B0E0BAABA9ABD2
:108D3000E9A9FAA9E05BFF4F0CF04FCD20EB3FEF24
:108D40003AAB29AB4ACD909381088093800805CC3B
:108D50004BA95CA95093400840933F08E8CB509240
:108D6000500840924F08CCCB48E364164FEF74068E
:108D70000CF015CBF8E36F2EFFEF7F2E0CCB2FEF0F
:108D8000083312070CF0FBCA08E31FEFF4CA1C8279
:108D90001B82E7CA22243324C7CA20937704309366
:108DA00078044093790450937A0478C888E18093DA
:108DB0000C058091F4079927880F991F880F991F38
:108DC0007C010027F7FC0095102F6CA17DA18EA1DE
:108DD0009FA1A80197010E94975830934B072093B9
:108DE0004A0768A179A18AA19BA1A80197010E94C5
:108DF000975830934D0720934C0780917B089091B2
:108E00007C0897FD2EC795958795959587959093A6
:108E10004F0780934E0780918B0890918C0897FDA7
:108E20001EC7959587959595879590935107809343
:108E30005007B0925307A0925207209150043091EE
:108E40005104309355072093540780916F049091FB
:108E50007004A0917104B0917204B7FDFBC619E0D3
:108E6000B595A795979587951A95D1F7909357073C
:108E700080935607D0925B07C0925A0780911C03DB
:108E800090911D0390935D0780935C078091870804
:108E900090918808A0918908B0918A0820917A035E
:108EA00030917B0340917C0350917D03BC01CD0147
:108EB0000E949758309361072093600780915B046C
:108EC000992790935F0780935E078091A306992767
:108ED00090937107809370078091E4039091E5036C
:108EE00090937307809372078091F208992787FD0A
:108EF0009095909381078093800780913E05909193
:108F00003F05909387078093860780913C05909159
:108F10003D059093890780938807D7C93FEF8E3F1F
:108F200093070CF04BC102960C940E39B9016150B5
:108F300070404091570450915804CA0157FF02C035
:108F40000C949839959587959595879597FF02C0CC
:108F50000C94A13920913204309133042817390739
:108F600014F00C94AD39CA0157FD7FC697FD7BC63E
:108F700095958795959587958536910514F40C946C
:108F8000AF3984E690E0C0906804C98ACC2011F023
:108F90000C94B63990933304809332047093350463
:108FA000609334040C94BE39609371084091590465
:108FB00050915A04CA0157FD02C00C9469390396B6
:108FC000959587959595879597FD02C00C94713975
:108FD000909581959F4F0C947139D0924D04C09219
:108FE0004C0470934B0460934A040C94813E10929D
:108FF00052040C94563810925204109268042A308D
:1090000011F00C941338289A0C941838215C3F4FB7
:109010004F4F5F4FECC903960C941A3F61507E4F3F
:109020008F4F9F4F0C94043F22273327201B310B77
:109030000C94F43E2F5F3F4F3595279549815A8117
:10904000240F351F442737FD4095542F0E94235885
:1090500097FF66CC615C7F4F8F4F9F4F61CC3095FF
:1090600021953F4F4DCC8FE390E0A0E0B0E0E80EBB
:10907000F91E0A1F1B1F08CA215C3F4F4F4F5F4F4D
:10908000E3C92F5F3F4F3595279549815A81240FBA
:10909000351F442737FD4095542F0E94235897FFD2
:1090A000D5CC615C7F4F8F4F9F4FD0CC30952195B1
:1090B0003F4FBCCC4D5F5F4F46CD0396E6CC982F1B
:1090C0000C94753A81E0809345040C946A3A81E0EF
:1090D00080934404582F0C943D3A81E080934604D9
:1090E0000C94133A81E0809347040C94E6399093F2
:1090F0004804809349040C947F3C8091A8069927EA
:1091000087FD90954F2D5527849FD001859FB00DE9
:10911000949FB00D1124CD012091590430915A042F
:10912000820F931F90935A04809359048091A9064B
:10913000992787FD9095849FF001859FF00D949F5E
:10914000F00D1124CF012091570430915804820F63
:10915000931F90935804809357048091AA069927EF
:1091600087FD90952091550430915604820F931FEE
:1091700090935604809355048091AC06282F332792
:1091800027FD30958091ED079927289F5001299F51
:10919000B00C389FB00C1124B0927F03A0927E03D4
:1091A0008091AB0699278C159D0514F00C944B39D2
:1091B00090935404809353040C944F3910925604A6
:1091C000109255040C941239232B29F480918E03AC
:1091D000823308F4DFC981E08093670488EC8093D0
:1091E000B703FDC980915204882311F40C94A03A6E
:1091F0008091300490913104FFEF8F3F9F0711F46D
:109200000C94A43A019690933104809330040C940A
:10921000A43A1091660418A7112311F00C945C3E37
:10922000209110082B8F222311F40C945C3E8DA505
:109230009EA5AFA5B8A98093570890935808A0930E
:109240005908B0935A082092470830924808409233
:10925000490850924A088091640890916508A0914D
:109260006608B0916708B7FD26C7292E3A2E4B2E07
:10927000552447FC5A942092640830926508409225
:1092800066085092670880916B0890916C08A091D5
:109290006D08B0916E08B7FD09C7892F9A2FAB2FC3
:1092A000BB27A7FDBA9589879A87AB87BC87809330
:1092B0006B0890936C08A0936D08B0936E08809132
:1092C000F407E82EFF2400271127209197043091FE
:1092D00098044091990450919A04C801B7010E94E2
:1092E000235897FDFCC6672E782E892E992487FC7B
:1092F0009A94209193043091940440919504509154
:109300009604C801B7010E94235897FDE3C6A72E13
:10931000B82EC92EDD24C7FCDA94D201C10186190A
:109320009709A809B90920910F08E22EFF24002708
:109330001127BC01CD01A80197010E94975839015E
:109340004A0119012A0189859A85AB85BC858A194C
:109350009B09AC09BD09BC01CD01A80197010E9480
:109360009758D401C30197FCB0C6892F9A2FAB2F11
:10937000BB27A7FDBA95BC01DA01C90157FDA0C6FC
:10938000892F9A2FAB2FBB27A7FDBA956C0180912F
:1093900034049091350481349105C4F480913204F1
:1093A00090913304813491058CF48091E307E82F88
:1093B000FF27EE0FFF1FE255F84F8081918101904A
:1093C000F081E02DF7FDDEC67A972CF08091F10850
:1093D0008F3F09F412C6EC8CFD8C0E8D1F8D2CA1D5
:1093E0003DA14EA15FA1E21AF30A040B150BEBAAF3
:1093F000FCAA0DAB1EABE092E504F092E6040093EC
:10940000E7041093E80489A59AA5ABA5BCA5E8A03C
:10941000F9A00AA11BA18E199F09A00BB10B8D8782
:109420009E87AF87B88B8093E9049093EA04A0935A
:10943000EB04B093EC040BA91CA92DA93EA9009341
:10944000ED041093EE042093EF043093F004809326
:10945000F1049093F204A093F304B093F404809188
:10946000830490918404A0918504B0918604801BAC
:10947000910BA20BB30B8093830490938404A0936D
:109480008504B093860480917B0490917C04A09124
:109490007D04B0917E042D853E854F855889821BC1
:1094A000930BA40BB50B80937B0490937C04A09347
:1094B0007D04B0937E043B8D332371F120916404CD
:1094C000309165042138310594F08091BB0490916E
:1094D000BC0401969093BC048093BB0480916F08F8
:1094E0009091700801969093700880936F082058AF
:1094F0003F4F94F48091BB049091BC0401979093EA
:10950000BC048093BB0480916F0890917008019710
:109510009093700880936F08109265041092640411
:1095200031E0A32EB12C8091200590912105A091CE
:109530002205B0912305E0906408F0906508009141
:109540006608109167088E199F09A00BB10B815E08
:10955000914BAF4FBF4F8F539C49A040B04008F490
:10956000FAC48091F2088A8F89310CF471C52BA955
:109570003CA94DA95EA9213080E1380780E0480769
:1095800080E058070CF4F7C480911C05882309F487
:10959000ABC570934B0460934A04DA01C90157FDCF
:1095A0004EC6B7FD47C629E0B595A795979587950F
:1095B0002A95D1F7019690931B0580931A052BA944
:1095C0003CA94DA95EA957FD30C639014A01A3E067
:1095D0009594879477946794AA95D1F71301240101
:1095E00099E8691693E1790690E0890690E099067A
:1095F00044F0F8E86F2EF3E17F2E812C912C1301BB
:109600002401D401C30197FC0BC6892F9A2FAB2FDD
:10961000BB27A7FDBA95680F791F2BA93CA94DA9B7
:109620005EA9203080EF38078FEF48078FEF58078B
:109630000CF0B7C480911D05882309F46DC57093A3
:109640004B0460934A04DA01C90157FDE1C59C014E
:10965000AD01B7FDD8C569E0559547953795279574
:109660006A95D1F780911A0590911B05820F931F7F
:1096700090931B0580931A052BA93CA94DA95EA9BF
:1096800057FD9BC539014A0143E09594879477942F
:1096900067944A95D1F798E769169CEE79069FEF93
:1096A00089069FEF990644F438E7632E3CEE732E4B
:1096B0003FEF832E3FEF932E60920E0570920F05C1
:1096C0008092100590921105D401C30197FC70C5DA
:1096D000892F9A2FAB2FBB27A7FDBA9560914A041B
:1096E00070914B04680F791FAB8D2A2F332780911F
:1096F0001A0590911B052817390724F430931B0590
:1097000020931A05BA8DBB2379F02B2F332727FD21
:10971000309580911A0590911B052817390724F47C
:1097200030931B0520931A052BA93CA94DA95EA9CE
:10973000215034404040504074F08091BF049091DB
:10974000C00420911A0530911B05820F931F90933E
:10975000C0048093BF042BA93CA94DA95EA9205049
:109760003C4F4F4F5F4F74F48091BF049091C00401
:1097700020911A0530911B05821B930B9093C00416
:109780008093BF04A1E0AA2EB12C20E030E040E09D
:1097900050E08091240590912505A0912605B09177
:1097A000270560906B0870906C0880906D08909011
:1097B0006E0886199709A809B909815E914BAF4FC8
:1097C000BF4F8F539C49A040B04020F0FA8DF93133
:1097D0000CF453C48D859E85AF85B8898150904126
:1097E000A040B0400CF4CEC380911E05882309F43C
:1097F00083C4D0924D04C0924C048D859E85AF8564
:10980000B889B7FDCDC4B7FDEFC4F9E0B595A7950C
:1098100097958795FA95D1F7019690931B058093BC
:109820001A052D853E854F85588957FDD8C4E3E03C
:109830005595479537952795EA95D1F72938F3E15E
:109840003F07F0E04F07F0E05F070CF47CC488E8C6
:1098500093E1A0E0B0E08093120590931305A093EC
:109860001405B09315058091120590911305A091F0
:109870001405B0911505B7FD8EC4892F9A2FAB2F13
:10988000BB27A7FDBA95C0904C04D0904D04C80EDC
:10989000D91E2D853E854F855889203080EF3807A9
:1098A0008FEF48078FEF58070CF086C380911F0594
:1098B000882309F43DC4D0924D04C0924C04DA01CF
:1098C000C90157FD84C49C01AD01B7FD7BC4B9E05B
:1098D0005595479537952795BA95D1F780911A05F3
:1098E00090911B05820F931F90931B0580931A057F
:1098F0002D853E854F85588957FD7BC4A3E055953E
:10990000479537952795AA95D1F728379CEE3907C3
:109910009FEF49079FEF59070CF01EC488E79CEEA4
:10992000AFEFBFEF8093120590931305A09314053A
:10993000B09315058091120590911305A09114051F
:10994000B0911505B7FD5AC4892F9A2FAB2FBB27AD
:10995000A7FDBA95C0904C04D0904D04C80ED91EF6
:10996000AB8D2A2F332780911A0590911B0528175C
:10997000390724F430931B0520931A05BA8DBB23B5
:1099800079F02B2F332727FD309580911A05909180
:109990001B052817390724F430931B0520931A055B
:1099A0002D853E854F855889215034404040504098
:1099B00074F08091BD049091BE0420911A053091FD
:1099C0001B05820F931F9093BE048093BD042D85C9
:1099D0003E854F85588920503C4F4F4F5F4F14F0C4
:1099E0000C94723E8091BD049091BE0420911A05A2
:1099F00030911B05821B930B9093BE048093BD0492
:109A00000C94723E109245040C946A3A10924404ED
:109A100050E00C943D3A109246040C94133A809115
:109A2000F407E82EFF24002711276CA17DA18EA149
:109A30009FA1A80197010E94975839014A0180917E
:109A40007B0890917C08AA2797FDA095BA2F681AE9
:109A5000790A8A0A9B0A68A179A18AA19BA1A80117
:109A600097010E94975859016A0180918B08909143
:109A70008C08AA2797FDA095BA2FA81AB90ACA0A76
:109A8000DB0AD401C30197FC6EC23C014D0154E0D6
:109A900095948794779467945A95D1F7D601C50128
:109AA000D7FC5DC25C016D0144E0D594C794B794C6
:109AB000A7944A95D1F7809134049091350481346C
:109AC00091050CF426C1C401B30123E030E040E06D
:109AD00050E00E94975839014A01C601B50123E0C0
:109AE00030E040E050E00E94975859016A018091AF
:109AF000E307E82FFF27EE0FFF1FE255F84F8081A5
:109B000091810190F081E02DF7FD31C27A97A4F0A8
:109B1000C401B30123E030E040E050E00E949758D8
:109B200039014A01C601B50123E030E040E050E0D0
:109B30000E94975859016A0191E2691671048104E3
:109B400091042CF030E2632E712C812C912CA0EE2C
:109B50006A16AFEF7A06AFEF8A06AFEF9A0644F4C3
:109B600020EE622E2FEF722E2FEF822E2FEF922EED
:109B7000B1E2AB16B104C104D1042CF090E2A92EDD
:109B8000B12CC12CD12CE0EEAE16EFEFBE06EFEFFC
:109B9000CE06EFEFDE0614F00C94233E80EEA82EE6
:109BA0008FEFB82E8FEFC82E8FEFD82E0C94233E58
:109BB00081509E4FAF4FBF4F0C947A3F80912F043E
:109BC000826080932F040C94BF3A4D5F5F4F0C94DA
:109BD000D6384D5F5F4F0C948C381092540410921D
:109BE00053040C94573901960C94DA431092F804FC
:109BF000ED2DFF27EE0FFF1FE255F84F8081918179
:109C00008C3491051CF18091F9048F5F893C08F434
:109C100089C01092520488EC8093F90410923104A8
:109C2000109230040C9456384EEF683E740714F0CE
:109C30000C945F4368EE7EEF0C945F437093FB04DB
:109C40006093FA045A8349830C94A5431092F90453
:109C50000C94563881509E4FAF4FBF4F00C90396AA
:109C6000E0C80396D0C8039683C9909581959F4F0D
:109C70007DC9909581959F4F0C947F3903960C94E4
:109C80008339882799278A199B090C94F53F84EF1B
:109C900091E090939B0380939A030C945D414F96BF
:109CA0000C944140695F7F4F0C94A83F709561957B
:109CB0007F4F0C949B3F81509E4FAF4FBF4F0C94F2
:109CC0008F3F5C01B094A194B108B394BCAAABAA35
:109CD0000C94873FBD010C94B54080911203909184
:109CE0001303895E934008F422C19091FF039A50B8
:109CF0009093FF0380919907891B87BD8CE291E0C7
:109D00009093E9038093E8038AEF8093B7030C9460
:109D1000EF428091320490913304813491050CF428
:109D2000E6CED1CE8093F9040C9456388093F80493
:109D30005FCF88EC90E09093E9038093E803C6013D
:109D4000AA2797FDA095BA2FBC01CD012C893D898A
:109D50004E895F890E9423583B014C010E9497580D
:109D600030936C0420936B0410920D050C941540F5
:109D700080819181855B9F4F0CF0E9C08091F70451
:109D80008F5F8093F704893C10F40C94B63B2C3021
:109D900008F0D2C12998A4E0B0E08FEF082E0E940D
:109DA000BA58109252041092F70410923104109293
:109DB00030040E947531A4E0B0E08091B504909128
:109DC000B60497FDD9C1892F990F990B082E0E94CF
:109DD000BA58A5E0B0E08091B5049091B604082E81
:109DE0000E94BA58A6E0B0E08091B3049091B40408
:109DF00097FDBFC1892F990F990B082E0E94BA5861
:109E0000A7E0B0E08091B3049091B404082E0E94C2
:109E1000BA5808E010E08091AD049091AE04A09192
:109E2000AF04B091B004BC01CD010E948C57DC019D
:109E3000CB019C0197FDA3C1832F992787FD9A959C
:109E4000D801082E0E94BA5809E010E08091AD04B4
:109E50009091AE04A091AF04B091B004BC01CD01CB
:109E60000E948C57DC01CB01D801082E0E94BA5801
:109E70000E9408030E9449263091E2070C94B63BE9
:109E800008942108310830929B0320929A030C9485
:109E90005D4181E080930D051092E1041092E2048F
:109EA0001092E3041092E404109277041092780464
:109EB0001092790410927A040C94BF3AF095E195CF
:109EC000FF4F0C94DF3D61507E4F8F4F9F4F0C949E
:109ED0009F3D61507E4F8F4F9F4F0C948A3D03965C
:109EE0000C9419432FE730E040E050E0C20ED31E3F
:109EF000E41EF51E0C943B4301960C942B43215F0A
:109F00003F4F0C947443615E7F4F8F4F9F4F0C9473
:109F100050430196A11DB11D0C94C83D0196A11D91
:109F2000B11D0C94BC3D095F1F4F0C94664080919D
:109F30001203909113038436910508F073C0909139
:109F4000FF03965FD5CE8093F7040C94B63B409305
:109F5000F7040C94B63B9091F2089A8F08CB0F96B9
:109F6000A11DB11D9FCD0F96A11DB11D8ECDF095E8
:109F7000E195FF4FCBCDB0921B05A0921A05109230
:109F80001C054BCB20931205309313054093140509
:109F900050931505B0921B05A0921A0510921E054C
:109FA00078CC20920E0530920F0540921005509209
:109FB000110510921D0598CB10921F05D1CC0E945F
:109FC00008034CE560EE77E00E94B0028091E8075C
:109FD00080FF10C08091120390911303875B934020
:109FE00038F480911203909113038E5E924010F426
:109FF0000E946A150E9475313BCF70934B046093A9
:10A000004A04D0924D04C0924C04CB0177FDAFC0FE
:10A01000BC0175956795C601D7FCA7C06C01D594A6
:10A02000C794D9C920915004309151042451304033
:10A0300030934F0420934E042C5E3F4F10926704E0
:10A0400081E08093B7030C94F342299A0C94ED3A83
:10A0500060920E0570920F05809210059092110586
:10A0600010921B0510921A05B8EE2B2EB3E03B2E72
:10A0700030929B0320929A0337CB209312053093A2
:10A080001305409314055093150510921B0510926B
:10A090001A05E8EE2E2EE3E03E2E30929B0320922E
:10A0A0009A035ECC1091E1070C94193B81509F4FAD
:10A0B000AF4FBF4FF2C881509F4FAF4FBF4FD5C872
:10A0C00081509F4FAF4FBF4F5BC981509F4FAF4FE4
:10A0D000BF4F4BC961507F4F8F4F9F4F18C9615081
:10A0E0007F4F8F4F9F4FFFC8B0921B05A0921A055C
:10A0F00081E080931C0591CA2093120530931305CB
:10A100004093140550931505B0921B05A0921A05B3
:10A1100081E080931E05BDCB20920E0530920F0585
:10A12000409210055092110581E080931D05DCCA14
:10A1300081E080931F0514CC299A2DCEF095E195EE
:10A14000FF4F0C94983B20931205309313054093D6
:10A1500014055093150587CB2093120530931305F2
:10A160004093140550931505E5CB019657CF019602
:10A170004FCF81509F4F3ECE81509F4F24CE2150D4
:10A180003F4F5ACEF095E195FF4F1EC9F095E195EE
:10A19000FF4F0C94153B81509F4FAF4FBF4F6DCB7E
:10A1A000B095A095909581959F4FAF4FBF4F2BCB0A
:10A1B00081509F4FAF4FBF4F8BCA295F3F4F4F4FCB
:10A1C0005F4F60CA21503E4F4F4F5F4F80CBB095DD
:10A1D000A095909581959F4FAF4FBF4F74CB295F4E
:10A1E0003F4F4F4F5F4F23CB81509E4FAF4FBF4FDD
:10A1F0000CCB295F3F4F4F4F5F4F80CB81509F4F1C
:10A20000AF4FBF4FA1CB21503E4F4F4F5F4F23CA9F
:10A21000B095A095909581959F4FAF4FBF4F17CAAE
:10A2200081509F4FAF4FBF4FF0C9295F3F4F4F4FF6
:10A230005F4FCBC981509E4FAF4FBF4FB4C9B09550
:10A24000A095909581959F4FAF4FBF4FAAC920937E
:10A250005108E6960FB6F894DEBF0FBECDBFDF9172
:10A26000CF911F910F91FF90EF90DF90CF90BF9013
:10A27000AF909F908F907F906F905F904F903F90A6
:10A280002F9008958091340590913505A091360561
:10A29000B091370580932C0590932D05A0932E0542
:10A2A000B0932F058091300590913105A091320532
:10A2B000B09133058093280590932905A0932A0532
:10A2C000B0932B05089510923F0510923E05109211
:10A2D0003D0510923C05089584B1806A84B93D9A89
:10A2E00082E58CBD1DBC459A81E0809392088AEA84
:10A2F0008093960883E8809397088AE08093980873
:10A3000010929A081092990810929C0810929B083B
:10A310001092B8081092B90888E48093BA088FE0C8
:10A320008093BB0885E08093BC080895EF92FF926C
:10A330000F931F93F8948091F4079927880F991F22
:10A34000880F991F7C010027F7FC0095102F809142
:10A35000A7049091A804A091A904B091AA04BC01FB
:10A36000CD01A80197010E94975830939A08209335
:10A37000990880919F049091A004A091A104B091AC
:10A38000A204BC01CD01A80197010E949758309307
:10A390009C0820939B082091870830918808409161
:10A3A000890850918A08DA01C90173E0880F991F62
:10A3B000AA1FBB1F7A95D1F7820F931FA41FB51F49
:10A3C000820F931FA41FB51F20917A0330917B0346
:10A3D00040917C0350917D03BC01CD010E949758B0
:10A3E0003093A2082093A108E091B104F091B20447
:10A3F0008091680890916908BF010E946258CB0162
:10A400009B01220F331F220F331F280F391F280FE4
:10A41000391F37FDEFC03595279535952795309332
:10A420009E0820939D088091830890918408BF0125
:10A430000E9462589B01220F331F220F331F260FE9
:10A44000371F260F371F37FDD2C035952795359515
:10A4500027953093A00820939F081092B204109281
:10A46000B104109269081092680810928408109242
:10A4700083088091980899278C30910509F487C04A
:10A480008D3091050CF067C08A30910509F42CC11C
:10A490000B9709F4B2C078948091B808882309F426
:10A4A0009DC02091BE083091BF08C90181509E4FC8
:10A4B0008F5F9340B0F44091C0085091C108CA0129
:10A4C00081509E4F8F5F934060F48091E80785FF35
:10A4D00008C030933F0520933E0550933D054093BF
:10A4E0003C058091C4089091C50821E08936920707
:10A4F0000CF0E8C09C0190936E0480936D048091F1
:10A500006B0490916C04281B390BC901845E9D4F2C
:10A5100068E671E00E946258845B904090936A0400
:10A52000809369042091C8083091C9088091E8039C
:10A530009091E9038217930740F48091A306882342
:10A5400021F43093E9032093E8038091BD08873616
:10A5500009F04FC1BCC08D30910509F4FEC00E97C3
:10A5600009F099CF8091B9088093A9088091BA0821
:10A570008093AA088091BB088093AB088091BC08A7
:10A580008093AC08809101018093AD0884CF8091C5
:10A59000A306863018F01092A30685E08093A908E0
:10A5A00080915004909151049093AC088093AB0833
:10A5B000809129088093AA0880911F088093AD0894
:10A5C000809120088093AE08809121088093AF0885
:10A5D00078948091B808882309F063CF10923F05E2
:10A5E00010923E0510923D0510923C0502C12D5F70
:10A5F0003F4F2BCF2D5F3F4F0ECF8091E207E82FCB
:10A60000FF27EE0FFF1FE255F84F0190F081E02D7C
:10A61000E038F1050CF0D2C02FEFE138F20714F466
:10A62000E1E8FFEFE093A9088091E307E82FFF2717
:10A63000EE0FFF1FE255F84F0190F081E02DE0385A
:10A64000F1050CF4CEC0EFE7F0E0E093AA088091AA
:10A65000E107E82FFF27EE0FFF1FE255F84F0190AB
:10A66000F081E02DE038F1050CF4B3C0EFE7F0E045
:10A67000E093AB088091E007E82FFF27EE0FFF1F64
:10A68000E255F84F0190F081E02DE038F1050CF42F
:10A6900098C0EFE7F0E0E093AC088091620480930B
:10A6A000AD08809160048093AE0880915E04809331
:10A6B000AF0880915C048093B00880915B04809324
:10A6C000B108E9CE20916D0430916E0418CF8091CD
:10A6D000CA088093F1088091CB088093F308809199
:10A6E000CC088093F20885C0809143048093A90828
:10A6F000809142048093AA08809141048093AB0822
:10A70000809140048093AC0880913F048093AD0811
:10A7100080913E048093AE0880913D048093AF0801
:10A7200080913C048093B00880912F048093B108FD
:10A73000837F80932F0480911C0390911D0380934D
:10A74000B2088091F9078093B308A2E0B0E00E94BC
:10A75000B258802D8093B4089ECE80911A088093C1
:10A76000A90880911B088093AA0880911C088093F7
:10A77000AB0880911D088093AC0880911E088093DF
:10A78000AD08809122088093AE08809123088093C1
:10A79000AF08809124088093B008809127088093A7
:10A7A000B108809125088093B20880912608809393
:10A7B000B308809128088093B4086DCEEFE7F0E0ED
:10A7C00031CF8FEFE138F8070CF065CFE1E8FFEF0C
:10A7D00062CF6FEFE138F6070CF04ACFE1E8FFEF08
:10A7E00047CF4FEFE138F4070CF02FCFE1E8FFEF50
:10A7F0002CCF1F910F91FF90EF90089580919208B8
:10A80000882309F43BC0459886E998E09093940822
:10A810008093930880914005E82FFF27E854FC4F70
:10A82000982F9F5F808180939808963008F027C00A
:10A8300090934005109292080E94965181E0809377
:10A84000950800000000000000000000000000006B
:10A8500000000000000000000000000000000000F8
:10A8600000000000000000000000000000000000E8
:10A870000000809196088093B5088EBD08951092CF
:10A880004005D8CF20919208222309F045C00DB48D
:10A8900007FE42C084E08093E703459A3EB580916D
:10A8A000420599278130910509F437C0823091051E
:10A8B0000CF451C0029709F439C020919508203258
:10A8C00008F030C0459800000000000000000000C3
:10A8D0000000000000000000000000000000000078
:10A8E0000000000000000000000000000000000068
:10A8F000000000000000E0919308F0919408E20F3E
:10A90000F11D80818EBD8091B5089081890F809363
:10A91000B5082F5F209395080895353551F12093A0
:10A920004205CBCF81E080939208F3CF8091B708A6
:10A93000E82FFF27E952F74F30838F5F8093B708E6
:10A940008A3100F180914305381711F12093B8083E
:10A9500010924205B2CF892B09F0AFCF2093B708F0
:10A9600030934305313809F0A8CF81E08093420548
:10A97000A4CF80914305830F8093430582E08093A9
:10A9800042059BCF80914305830F8093430595CF6C
:10A990008AE1E7EDF8E0ADEBB8E001900D928A9521
:10A9A000E1F781E08093B8081092420586CF87B125
:10A9B0008C6087B9429843981092450580E880934F
:10A9C000BF03109244058093BE03089580914A0509
:10A9D00081508F3F19F080934A05089584E0809359
:10A9E0004A05909117089B3F60F49B3FA0F080912F
:10A9F0006A088A3080F480911608882354F0429ABD
:10AA000011C080916A08873E80F3809116088823E0
:10AA1000B4F3429807C08091450581508F3FB9F14A
:10AA200080934505909119089B3F50F080917E08D6
:10AA3000873E30F080911808882364F04398089589
:10AA40009B3F50F080917E088A3030F48091180846
:10AA50008823A4F3439A08958091440581508F3F41
:10AA600019F080934405089580917E088150809369
:10AA700044058091BE038130F1F0982F9695909314
:10AA8000BE03809118088923C9F2439A08958091E2
:10AA90006A088150809345058091BF03813069F039
:10AAA000982F96959093BF0380911608892309F4F7
:10AAB000B0CF429AB7CF90E8E2CF90E8F3CF809141
:10AAC000C9008F778093C9008091C9008F7B8093E4
:10AAD000C9008091C9008F7D8093C9005A9A52980D
:10AAE0001092CD0084E190E08093CC008091C8006A
:10AAF00082608093C80080E18093C9008091CA0081
:10AB00008F778093CA008091CA008F7B8093CA00A0
:10AB10008091CA008F7D8093CA008091CA008F7E89
:10AB20008093CA008091CA00877F8093CA00809179
:10AB3000C9008B7F8093C9008091CA008460809394
:10AB4000CA008091CA0082608093CA008091C800C8
:10AB500087FF0CC08091CE008091C800882334F418
:10AB60008091CE008091C8008823A4F38091C90011
:10AB700080688093C90008951F920F920FB60F92BC
:10AB80001124EF92FF920F931F932F933F934F93B4
:10AB90005F936F937F938F939F93AF93BF93CF9365
:10ABA000DF93EF93FF930091CE008091C0039091CB
:10ABB000C103019709F45EC080915305909154053B
:10ABC0000E94D911482F552760914B0570914C0573
:10ABD00061157105E9F16130710509F4EAC062306F
:10ABE000710509F4EDC06330710509F45CC081E0C2
:10ABF00090E09093C1038093C00310924E05109291
:10AC00004D05109252051092510580914D0590917D
:10AC10004E054097A0F08091510590915205892BE7
:10AC200011F41092790310924E0510924D05109276
:10AC300052051092510510924C0510924B0587E079
:10AC400090E00E94D0119093540580935305FDC06D
:10AC5000452BD9F281E090E090934C0580934B0511
:10AC600080914D0590914E05019690934E058093ED
:10AC70004D05CBCF1092C1031092C00387E090E046
:10AC80000E94D011909354058093530510924E0565
:10AC900010924D0510924C0510924B0510925005E4
:10ACA00010924F05D2C0452B09F0A1CF82E090E071
:10ACB00090934C0580934B0580914D0590914E05E6
:10ACC000019690934E0580934D0580914F0590918C
:10ACD0005005FC01F695E795F695E795EF70F07055
:10ACE0003196982F8827202F3327822B932B937010
:10ACF000805092400E946258EB30F10508F085CFF9
:10AD00007F01EE0EFF1EF701E255F84F8081918121
:10AD10009B01281B390BC90137FD90C0069754F4DD
:10AD200080915B04883C08F087C080915B04865F5B
:10AD300080935B04F701E255F84F808191819C017B
:10AD4000220F331F280F391F260F371F37FD7AC0F8
:10AD5000E901D595C795D595C795CB0101968C1777
:10AD60009D070CF05CC0219780915B04843B08F444
:10AD700050C087010C53184FF701E255F84F8081FE
:10AD80009181FE01E81BF90BCF0163E070E00E94A6
:10AD90006258CB01880F991F860F971FF801918386
:10ADA00080832EEA37E0E20EF31EF701D183C083E1
:10ADB0002CCF4115510509F012CF82E090E04CCF25
:10ADC0004115510509F00FCF802F99279093500519
:10ADD00080934F0520914D0530914E05223031056D
:10ADE00069F083E090E090934C0580934B052F5FD2
:10ADF0003F4F30934E0520934D0507CF80914F056F
:10AE000087FF15C081E090E0909352058093510533
:10AE1000E8CFF701EC53F84F11821082C2CF615096
:10AE20007040C617D7070CF09FCF21969DCF509347
:10AE3000520540935105D5CF88EC7ACF90958195F6
:10AE40009F4F6CCF2D5F3F4F83CFFF91EF91DF91ED
:10AE5000CF91BF91AF919F918F917F916F915F91B2
:10AE60004F913F912F911F910F91FF90EF900F9075
:10AE70000FBE0F901F901895FC014150504030F0CC
:10AE800001900616D1F73197CF01089588279927A9
:10AE900008955058192EA6D001D08CC0BA17620759
:10AEA000730784079507B1F188F40EF410940B2E04
:10AEB000BA2FA02D062E622F202D072E732F302D96
:10AEC000082E842F402D092E952F502DFF27552316
:10AED000B9F0591B49F0573E98F04695379527959C
:10AEE000A795F0405395C9F776F0BA0F621F731F0C
:10AEF000841F30F4879577956795B795F0409395C3
:10AF000017FA0F2E0895BF1BBB27BA0B620B730BEA
:10AF1000840BF6CFDEF692C097FB70D09F3738F0E7
:10AF2000FEE9F91B982F872F762F6B2F05C083C062
:10AF30009695879577956795F150D0F73EF4909563
:10AF40008095709561957F4F8F4F9F4F0895E8943E
:10AF500003C097FB0EF4F3DFB62F672F782F892FEE
:10AF60009EE9002427C00ED05EF004C00BD026F06E
:10AF700001C008D019F020F48FEF089580E0089503
:10AF800081E0089597FB092E052600F868942DD0DE
:10AF9000E89407FC07C0621773078407950721F040
:10AFA00008F400940794989408959A95BB0F661F2F
:10AFB000771F881F11249923A1F08823B2F79F3FA0
:10AFC00059F0BB0F48F421F4002011F460FF04C0D5
:10AFD0006F5F7F4F8F4F9F4F881F9795879597F98A
:10AFE000089529C0052E092607FA440F551F5F3F13
:10AFF00079F0AA27A51708F051E04795880F991F07
:10B000009F3F31F0BB27B91708F091E0879508956D
:10B010009F919F91112414C097FB880F991F9F3F08
:10B0200031F0BB27B91708F091E0879508959F91FB
:10B030009F91112405C066277727882799270895AF
:10B040009FEF80EC0895629FD001739FF001829F73
:10B05000E00DF11D649FE00DF11D929FF00D839FA7
:10B06000F00D749FF00D659FF00D9927729FB00D44
:10B07000E11DF91F639FB00DE11DF91FBD01CF0157
:10B0800011240895991B79E004C0991F961708F0C0
:10B09000961B881F7A95C9F780950895AA1BBB1B3C
:10B0A00051E107C0AA1FBB1FA617B70710F0A61BC8
:10B0B000B70B881F991F5A95A9F780959095BC01E9
:10B0C000CD01089597FB092E07260AD077FD04D0FD
:10B0D000E5DF06D000201AF4709561957F4F089542
:10B0E000F6F7909581959F4F0895A1E21A2EAA1B1D
:10B0F000BB1BFD010DC0AA1FBB1FEE1FFF1FA21728
:10B10000B307E407F50720F0A21BB30BE40BF50B24
:10B11000661F771F881F991F1A9469F760957095AD
:10B12000809590959B01AC01BD01CF01089597FBDF
:10B13000092E05260ED057FD04D0D7DF0AD0001CFB
:10B1400038F450954095309521953F4F4F4F5F4FC4
:10B150000895F6F790958095709561957F4F8F4F84
:10B160009F4F0895F999FECFB2BDA1BDF89A1196EF
:10B1700000B40895F999FECFB2BDA1BD00BC1196EF
:10B180000FB6F894FA9AF99A0FBE08950190F2DF7B
:06B190001A94E1F7089596
:10B19600010A01416E676C654E69636B20202020B1
:10B1A600202020416E676C65526F6C6C2020202039
:10B1B6002020204163634E69636B202020202020DD
:10B1C600202020416363526F6C6C202020202020B9
:10B1D6002020204779726F47696572202020202041
:10B1E60020202048696768742056616C75652020A8
:10B1F6002020204163635A20202020202020202068
:10B20600202020476173202020202020202020207D
:10B21600202020436F6D706173732056616C7565D5
:10B22600202020566F6C7461676520202020202026
:10B23600202020456D7066616E672020202020202A
:10B246002020204779726F204B6F6D7061737320D9
:10B256002020204D6F746F722046726F6E7420200E
:10B266002020204D6F746F7220526561722020205D
:10B276002020204D6F746F72204C6566742020204C
:10B286002020204D6F746F722052696768742020E9
:10B2960020202020202020202020202020202020A8
:10B2A6002020202020202020202020202020202098
:10B2B6002020202020202020202020202020202088
:10B2C6002020204D4B334D61672043616C537461E0
:10B2D600746520536572766F202020202020202060
:10B2E6002020202020202020202020202020202058
:10B2F6002020202020202020202020202020202048
:10B306002020202020202020202020202020202037
:10B316002020202020202020202020202020202027
:10B326002020202020202020202020202020202017
:10B336002020202020202020202020202020202007
:10B346002020204B616C6D616E5F4D61784472699F
:10B35600667420202020202020202020202020204D
:10B3660020202020202020202020202020202020D7
:10B376002020204750535F4E69636B2020202020F9
:10B386002020204750535F526F6C6C2020202020D5
:10B39600202020C8000164FF01FFFF01FC010173AA
:10B3A6007373FF03007D0000C409C40964000B48E1
:10B3B600616C6C6F2057656C740000000000000023
:10B3C6000000000000000000000000000000000077
:10B3D6000000000000000000000000000000000067
:10B3E6000000000000000000000000000000000057
:10B3F6000000000000000000000000000000000146
:10B4060002030405060708090A010B050000ECFF04
:10B416006440415A46640A02969608403A10FB3048
:10B42600380190D0030090D00300F40164005370FB
:10B436006F727400004E6F726D616C00004265673A
:10B44600696E6E65720000640A0B0D0B0C0E01012D
:02B456000100F3
:00000001FF
/tags/V0.72p/Hex-Files/Flight-Ctrl_MEGA644_V0_72p_Octo3.hex
0,0 → 1,2888
:100000000C9493020C94AE020C94AE020C94AE02CB
:100010000C94AE020C94AE020C94AE020C94AE02A0
:100020000C94AE020C9453120C94AE020C94AE02DB
:100030000C9411230C94AE020C94AE020C94AE02FC
:100040000C94AE020C94AE020C94ED100C94AE0223
:100050000C9479060C94AE020C9440060C94AE02FB
:100060000C947A160C94AE020C94B7210C94AE0248
:100070000C94BB550C94AE020C94AE0226171917C3
:100080000D17F316D916B516C716F519291926191D
:10009000B5161319F918D918B918671815183217A1
:1000A000102223221722642274225A223F22DE21A8
:1000B000FC216B229222F8210022FC218E220B22AD
:1000C000F8210022FC218A226F22F821ED210A0D5D
:1000D000466C69676874436F6E74726F6C0A0D4882
:1000E000617264776172653A25642E25640A0D5346
:1000F0006F6674776172653A5625642E25642563B0
:1001000020000A0D3D3D3D3D3D3D3D3D3D3D3D3DDC
:100110003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D0F
:100120003D3D000A0D496E69742E20454550524FE1
:100130004D003A2047656E65726174696E672044B0
:10014000656661756C742D506172616D6574657260
:10015000207573696E67206F6C6420537469636BDC
:100160002053657474696E6773000A0D4143432020
:100170006E696368742061626765676C696368654E
:100180006E21000A0D42656E75747A6520506172A9
:10019000616D657465727361747A202564000A0D5F
:1001A0004162676C65696368204C7566746472753A
:1001B000636B73656E736F722E2E004F4B0A0D00CA
:1001C0000A0D537465756572756E673A200048654F
:1001D0006164696E67486F6C64004E657574726126
:1001E0006C000A0A0D002E005B25695D005B256925
:1001F0005D002B204D696B726F4B6F7074657220C0
:100200002B0048575625642E256420535725642E0D
:1002100025642563204F43544F0053657474696E01
:10022000673A202564200028632920486F6C6765A1
:1002300072204275737300486F6568653A2020200C
:10024000202025356900536F6C6C486F6568653AEE
:1002500020253569004C756674647275636B3A20AD
:10026000253569004F66662020202020203A202571
:100270003569004B65696E65200048F668656E72E9
:100280006567656C756E6700616B742E204C6167E5
:1002900065004E69636B3A202020202020253569B7
:1002A00000526F6C6C3A20202020202025356900F8
:1002B0004B6F6D706173733A202020253569004BB8
:1002C000313A25346920204B323A25346920004BDD
:1002D000333A25346920204B343A25346920004BC9
:1002E000353A25346920204B363A25346920004BB5
:1002F000373A25346920204B383A25346920004E9E
:10030000693A2534692020526F3A25346920004724
:10031000733A253469202047693A25346920005012
:10032000313A253469202050323A25346920005072
:10033000333A253469202050343A25346920004767
:1003400079726F202D2053656E736F72004E696352
:100350006B2025346920282533692E256929005210
:100360006F6C6C2025346920282533692E25692976
:1003700000476965722025346920282533692900E2
:100380004E69636B2025346920282533692E257832
:100390002900526F6C6C2025346920282533692E82
:1003A000257829004769657220253469202825337E
:1003B0006929004E69636B2025346920282533693B
:1003C00029282533692900526F6C6C202534692057
:1003D0002825336929282533692900476965722052
:1003E00025346920282533692928253369290041C6
:1003F0004343202D2053656E736F72004E69636B0B
:100400002025346920282533692900526F6C6C201F
:1004100025346920282533692900486F6368202521
:100420003469202825336929005370616E6E756E1A
:10043000673A202025356900456D70662E50656746
:10044000656C3A253569004B6F6D706173732020C0
:100450002020202020005269636874756E673A205E
:1004600020253569004D657373776572743A2020D5
:100470002535690053746172743A202020202025AC
:10048000356900506F7469313A2020253369005076
:100490006F7469323A202025336900506F746933D4
:1004A0003A202025336900506F7469343A202025A2
:1004B000336900536572766F202000536574706F46
:1004C000696E742020253369005374656C6C756EF9
:1004D000673A202533690052616E67653A253369B2
:1004E0002D2533690045787465726E436F6E7472A2
:1004F0006F6C2020004E693A2534692020526F3AF3
:10050000253469200047733A253469202047693A29
:10051000253469200048693A253469202043663A29
:1005200025346920000011241FBECFEFD0E1DEBFCB
:10053000CDBF13E0A0E0B1E0E4E9F1EB02C005902B
:100540000D92A23CB107D9F718E0A2ECB3E001C0CC
:100550001D92A43FB107E1F70C9451030C940000E5
:10056000282FFB018150853008F023E0842F992744
:10057000332721503040829FD001839FB00D929F3E
:10058000B00D1124AC59BF4F019724F00E94B1580F
:100590000192FACF0E94D6540895863038F085E053
:1005A000A2E0B0E0082E0E94B95808958823C1F750
:1005B0000895582F863048F155E0842F9927252F2C
:1005C000332721503040829FD001839FB00D929FEE
:1005D000B00D1124AC59BF4FFB01019724F00190DD
:1005E0000E94B958FACFA2E6B0E0042E0E94B95892
:1005F000A0E5B0E088E0FB01182E0E94C558852FC9
:100600000E94CD020E94D65408958823B1F6089521
:10061000CF93A2E0B0E00E94B158802DC82F815046
:10062000853020F0C3E08C2F0E94CD028C2F9927BB
:10063000CF9108958091E007E82FFF27EE0FFF1F6D
:10064000E255F84F808191818D5E9F4F14F010929A
:100650000201808191818A5B9F4F24F48091020185
:10066000882319F02091A30615C081E08093020130
:100670002091A306280F2093A306253038F088EE9A
:1006800093E09093E9038093E80304C0822F0E94D3
:100690004926E8CF822F992790937107809370079E
:1006A0000895CFEFD0E1DEBFCDBF14B815B8C7EEC7
:1006B000D3E0E297D7FFFDCFC8EED3E0189BD4C2BA
:1006C000199BD0C22DE02093010181E887B93E9AA1
:1006D0008FEF88B98BE184B981E085B98EE38AB95F
:1006E000579A87E48BB9469A84B7877F84BF8091F5
:1006F00060008861809360001092600080ED97E058
:100700009093E9038093E8031092560410925504E5
:100710001092B3071092B207109258041092570427
:1007200010925A0410925904243108F496C288E8B1
:1007300094E0A0E0B0E080937A0390937B03A093D1
:100740007C03B0937D032A3009F485C2243109F477
:1007500082C2289A0E943C120E940C120E942E0B08
:100760000E94FC220E9464150E9480210E946B510D
:10077000789480E790E09F938F9388E490E09F9334
:100780008F931F921F92809101016AE00E9441584D
:10079000892F99279F938F93809101010E9441583F
:1007A00099279F938F938EEC90E09F938F931F9246
:1007B0000E94580E8091C8002DB73EB7235F3F4F6F
:1007C0000FB6F8943EBF0FBE2DBF803209F43BC276
:1007D00082E091E09F938F931F920E94580E809128
:1007E00001010F900F900F908C3008F02AC2299AC7
:1007F00049E060EE77E083E00E94B00201E010E0A3
:10080000D8010E94B158802D8A3409F02EC1A4E08D
:10081000B0E00E94B158802D853008F007C20E94D8
:1008200008034CE560EE77E00E94B0020E940803E6
:1008300099279F938F9383E891E09F938F931F92C3
:100840000E94580E8091E8070F900F900F900F9024
:100850000F9080FDC7C10E947531809101018A30DF
:1008600009F4BEC1843109F4BBC1289A80ED97E038
:100870009093E9038093E80385E58093A50680ECD7
:1008800091E09F938F931F920E94580E8091E807EA
:100890000F900F900F9082FFC6C18EEC91E09F9356
:1008A0008F931F920E94580E0F900F900F9082EE20
:1008B00091E09F938F931F920E94580E0E94C11A3D
:1008C00088E893E190939D0380939C0381E080935B
:1008D000A4060F900F900F908091EC03882309F4E9
:1008E00071C080910E03882309F46CC01092EC0350
:1008F0008091A306882309F47CC00E941A030E94F9
:100900001934209101012A3009F47CC0243109F402
:1009100079C0289A80910603882309F45BC081502E
:100920008093060380915B04882329F080915B0407
:10093000815080935B0480919C0390919D03892B4F
:1009400009F464C080919C0390919D03019790935A
:100950009D0380939C032A3009F456C0243109F486
:1009600053C0289A8091EC03882321F0809152048F
:10097000882311F40E94690B0E94D808CE010E94BE
:10098000D9118823E9F08091F907282F3327809126
:100990001C0390911D038217930744F4809109036F
:1009A00090910A038F5F9F4F09F452C00E94FD533C
:1009B00084E08093E70384E190E00E94D011EC0191
:1009C0000E94E5548091E703882309F085CF0E94B7
:1009D000415482CF8093AF0610923B0410923A04A8
:1009E0001092390410923804109237041092360491
:1009F00099CF0E94C7370E941934209101012A30F3
:100A000009F084CF289886CF2898ACCF85E090E075
:100A100090939D0380939C030E949A2180910903E7
:100A200090910A038F5F9F4F09F09CCF80915204F1
:100A3000882309F497CF80E197E29093E9038093AC
:100A4000E80380E890E090930A03809309038ACF3B
:100A500080E797E19093E9038093E80380E093E0D7
:100A600090930A0380930903A1CF0E94222483E27A
:100A700091E09F938F931F920E94580E61E0762E13
:100A80000F900F900F905FE4E52EF12CE00EF11E19
:100A900040E5C42ED12CC00ED11E31E5A32EB12CC1
:100AA000A00EB11E22E5822E912C800E911E95E59E
:100AB000492E512C400E511E86E5282E312C200E39
:100AC000311E32E0731609F4D5C083E0781609F4BC
:100AD000D4C093E0971508F4CDC080910101843112
:100AE00068F085E08093F807109210088BE18093FE
:100AF000F4078EE480930D0880930E08D7010E94BE
:100B0000B158802D8C3008F068C0D6010E94B158D1
:100B1000802D8C3008F061C0D5010E94B158802D25
:100B20008C3008F05AC0D4010E94B158802D8C300E
:100B300008F053C0D7010E94B158802D8093E00780
:100B4000D6010E94B158802D8093E107D5010E9403
:100B5000B158802D8093E207D4010E94B158802DB6
:100B60008093E307A4E5B0E00E94B158802D809304
:100B7000E407A5E5B0E00E94B158802D8093E50719
:100B8000D2010E94B158802D8093E607D1010E94C6
:100B9000B158802D8093E70721E0721651F482E36B
:100BA00091E09F938F931F920E94580E0F900F9089
:100BB0000F904CE560EE77E0872D0E94D902739488
:100BC00095E0971508F07DCF83E00E94CD028AE47E
:100BD000D801082E0E94B9581ACE0E940924E9CFE4
:100BE000289844CE8EE991E09F938F931F920E94A4
:100BF000580E88EE93E00E94D011EC010E946A1515
:100C00000F900F900F90CE010E94D9118823D9F335
:100C10008BEB91E09F938F931F920E94580E0F9041
:100C20000F900F9018CE8AED91E039CE8AE691E0D0
:100C30009F938F931F920E94580E0F900F900F90CA
:100C4000EECD2998D5CD8091CA00863009F0C0CD6F
:100C50000E945E55BDCD28987DCD8BE095E0A0E04B
:100C6000B0E069CD2BE02FCD199B02C024E12BCD44
:100C70002AE029CD0E94D22430CF0E9484252DCF96
:100C80001F920F920FB60F9211248F939F93EF93A1
:100C9000FF93809108038823A9F48091D803909151
:100CA000D9030196FC01EB59FA4FE081ED3079F060
:100CB0008639910561F09093D9038093D803E0932E
:100CC000C6000EC01092D9031092D80309C010922A
:100CD000D9031092D80381E080930803E093C60003
:100CE000FF91EF919F918F910F900FBE0F901F90EA
:100CF00018951F920F920FB60F9211242F933F93C6
:100D00004F935F938F939F93AF93BF93EF93FF9313
:100D100090E08091C6008093D0035091DE03563955
:100D200010F09093DF038091D0038D3091F02091EB
:100D3000DF03822F99278130910509F46AC0823040
:100D400091050CF48CC0029709F47DC01092DF036A
:100D5000A6C02091DF03223061F79093DF03852F37
:100D600099278E54994FFC01329740812091DA03E4
:100D70003091DB03241B3109DC0111978C91281B76
:100D80003109C9019F709093DB038093DA0300243B
:100D9000880F991F001C880F991F001C892F902D08
:100DA000982F935C9093DC032F733070235C209317
:100DB000DD038081891709F46CC090E08091CD0338
:100DC0008F5F8093CD038091CF03882309F067C0A4
:100DD000992309F464C081E08093CF03580F5093A6
:100DE000CC035150E52FFF27EE54F94F8DE080835F
:100DF0008091B406823509F052C088E190E02CE081
:100E00000FB6F894A895809360000FBE2093600001
:100E100046C02F5F2093DF03E52FFF27EE54F94FE5
:100E20008091D00380835F5F5093DE032091D003D5
:100E30008091DA039091DB03820F911D9093DB0385
:100E40008093DA032CC0E52FFF27EE54F94F8091F1
:100E5000D0038083563938F31092DF03E7CF892B14
:100E600009F074CF8091D003833259F08091D00380
:100E70008093B20681E08093DE038091D0039927AE
:100E8000DDCF8091CF03882389F781E08093DF0352
:100E9000EDCF8C91821709F090CF91E094CFFF9124
:100EA000EF91BF91AF919F918F915F914F913F9142
:100EB0002F910F900FBE0F901F901895AC01A0E0DE
:100EC000B0E09D01A817B90748F4E5E6F5E0819187
:100ED000280F311D1196A417B507C8F33F70FD0107
:100EE000EB59FA4FC9010024880F991F001C880F85
:100EF000991F001C892F902D835C80831196FD0122
:100F0000EB59FA4F2F733070822F835C8083AA597C
:100F1000BA4F8DE08C931092080380916505809301
:100F2000C6000895BF92CF92DF92EF92FF920F9387
:100F30001F93CF93DF93CDB7DEB72C859D857E853C
:100F4000BB2483E2809365059F59909366052093A7
:100F5000670503E010E0772309F4ADC0CF84D8889B
:100F600043E1E42EF12CEC0EFD1EA989BA897150E3
:100F7000109709F4A0C0109709F43CC0F601EB0DDE
:100F8000F11DB3949081119789F47723A1F1F701B2
:100F900022E030E0E20EF31ED701C080D180E20EE5
:100FA000F31E0D90BC91A02DBB247150109719F128
:100FB000F601EB0DF11DB3944081119709F466C061
:100FC0001097D1F0F601EB0DF11DB39460811197EC
:100FD000A1F4772391F0F7013296D701CD90DC9000
:100FE00032E0E32EF12CEE0EFF1EA081B181BB2476
:100FF000715003C090E040E060E0F801EB59FA4F17
:10100000892F86958695835C80830F5F1F4FF8013B
:10101000EB59FA4F892F992783709070829592959A
:10102000907F9827807F982755279A01329522959F
:101030002F7023273F702327822B835C80830F5FD1
:101040001F4FF801EB59FA4F4F705070440F551F66
:10105000440F551F862F99270024880F991F001CC5
:10106000880F991F001C892F902D842B835C80830F
:101070000F5F1F4FF801EB59FA4F6F73635C60838A
:101080000F5F1F4F109709F076CF15C0772309F433
:10109000B3CFF701A2E0B0E0EA0EFB1ED701C0809B
:1010A000D18022E030E0E20EF31E0D90BC91A02D25
:1010B000BB24715085CFC8010E945E07DF91CF919C
:1010C0001F910F91FF90EF90DF90CF90BF90089508
:1010D000A3E07A2F4091CC03465009F45FC0E72F7C
:1010E000FF27EE54F94F80818D537F5FE72FFF2755
:1010F000EE54F94F20812D537F5FE72FFF27EE54E9
:10110000F94F30813D537F5FE72FFF27EE54F94FB2
:1011100060816D537F5F9927880F991F880F991FF2
:10112000522F52955F70582B822F99278F70907095
:1011300082959295907F9827807F9827232F2695D8
:101140002695282B832F99278370907000249695DD
:1011500087950794969587950794982F802D682BEF
:1011600041504F3FD9F0EA2FFF27EE54F94F5083FB
:10117000AF5F41504F3F91F0EA2FFF27EE54F94FF8
:101180002083AF5F41504F3F49F0EA2FFF27EE54D5
:10119000F94F6083AF5F442309F0A1CF85EB96E060
:1011A0009093CB038093CA03A350A093C9030895DF
:1011B000CF93DF93CDB7DEB722970FB6F894DEBF9B
:1011C0000FBECDBF8091CF03882309F42AC20E94AD
:1011D00068088091B306823609F471C08091B40624
:1011E00099278436910509F457C08536910584F511
:1011F0008136910509F4D0C0823691050CF475C092
:101200008236910509F451C183369105C1F480916C
:10121000C2039091C303892B09F0F2C1E091CA0384
:10122000F091CB039081992309F0E0C190818AE08D
:10123000989FC00111249093C3038093C20310921E
:10124000CF031092CB031092CA031092C903E9C1D5
:101250008C36910509F492C08D3691050CF066C06C
:101260008736910509F4FAC08836910541F78FEF6A
:1012700080930603E091CA03F091CB0380819091A3
:101280002304892B80932304882311F01092D10327
:1012900081E08093D503D3CFE091CA03F091CB03D3
:1012A00090818AE0989FC001112490930403809359
:1012B0000303892B21F281E08093D403C0CF809176
:1012C000B40699278137910509F475C082379105D5
:1012D000CCF58B34910509F46CC18037910509F088
:1012E0007DCF81E08093D20379CF8B34910509F0D3
:1012F000A6CFE091CA03F091CB03808191819093B6
:101300006E0480936D0420916B0430916C04821BF9
:10131000930B845E9D4F68E671E00E946158845B88
:10132000904090936A048093690489CF8437910533
:1013300009F498C08637910509F081CF81E0809348
:10134000D3037DCF8337910509F4BFC0843791055E
:1013500009F044CFE091CA03F091CB0380819181E1
:10136000A281B3818093C4039093C503A093C60365
:10137000B093C7038FEF8093060330CF8FEF809336
:101380000603E091CA03F091CB038081809324048B
:1013900081E08093D60353CFE091CA03F091CB0351
:1013A000E081E03208F453C08FE1809307038FEFB0
:1013B0008093060344CFE091CA03F091CB03808170
:1013C0008F3F09F422C18081882309F043C081E066
:1013D0008083E091CA03F091CB034CE560EE77E0A7
:1013E00080810E94B002809108038823E1F3E0919C
:1013F000CA03F091CB0380818A838AE489838CE5D8
:1014000090E09F938F9380EE97E09F938F9321E0DE
:1014100030E03F932F93CE01820F931F9F938F93C2
:101420003F932F93CE0102969F938F9383E08F93E8
:1014300081E08F9381E58F930E9492078DB79EB7CD
:101440000F960FB6F8949EBF0FBE8DBFC7CEE09328
:101450000703ADCF863008F285E0BACF81E08093F4
:10146000D703EDCEE091CA03F091CB038081918147
:10147000A281B3818093C4039093C503A093C60354
:10148000B093C703809108038823E1F31F928091F2
:1014900005038F9384E58F930E9492078FEF8093CB
:1014A00006030F900F900F90CACEA091CA03B0917F
:1014B000CB038BE0E5EAF6E00D9001928A95E1F727
:1014C0008091AE0680938A0772CF2091CA03309133
:1014D000CB03D9018C918150853020F4F9018181B1
:1014E0008A34E9F01A82809108038823E1F381E0CD
:1014F00090E09F938F93CE0102969F938F9381E00C
:101500008F938F9383E58F930E949207EDB7FEB779
:1015100037960FB6F894FEBF0FBEEDBF5FCE60EEFC
:1015200077E08CE52E5F3F4FDB01F901982F0190AA
:101530000D929A95E1F722503040482FD9018C91B5
:101540000E94D90280910D089927AA27BB27BC01C8
:10155000CD0124EC39E040E050E00E942258DC014B
:10156000CB018093960390939703A0939803B09335
:10157000990380910E089927AA27BB27BC01CD01AA
:101580000E942258DC01CB01809392039093930335
:10159000A0939403B0939503E091CA03F091CB0319
:1015A00080810E94CD020E9408038A830E944926FE
:1015B0009ACFE091CA03F091CB03808191819093FF
:1015C0006E0480936D0420916B0430916C04821B37
:1015D000930B845E9D4F68E671E00E946158845BC6
:1015E000904090936A0480936904F8CD8AE0989FB4
:1015F000C00111240E94D01190936405809363056B
:10160000E091CA03F091CB0311CE0E940803E09150
:10161000CA03F091CB038083E091CA03F091CB031E
:10162000D2CE22960FB6F894DEBF0FBECDBFDF91AB
:10163000CF910895CF93C82F8A3029F08091C000B0
:1016400085FFFCCF04C08DE00E941A0BF7CFC0933A
:10165000C60080E090E0CF910895089588E18093DE
:10166000C1008091C00082608093C0008091C10061
:1016700080688093C1008091C10080648093C10024
:101680008AE28093C40080910303909104030E9436
:10169000D01190939206809391068CED90E00E9479
:1016A000D0119093B1068093B0061092930688E40F
:1016B000809394068FE0809397068AE08093950646
:1016C000109296061092CB031092CA031092C9038F
:1016D0000895EF92FF920F931F9380910803882340
:1016E00009F478C28091D503882309F082C08091E3
:1016F000D603882329F080910803882309F07FC14D
:101700008091D303882329F080910803882309F06E
:101710005BC18091D703882329F080910803882337
:1017200009F036C18091B0069091B1060E94D9119E
:10173000882329F080910803882309F0C8C080918C
:10174000030390910403892B09F084C18091D40391
:10175000882329F080910803882309F00FC2809123
:10176000C2039091C303892B09F07EC12091070326
:101770002F3F59F180E190E09F938F93822F99271B
:1017800082959295907F9827807F98278D5F9E4FB6
:101790009F938F9381E090E09F938F9387E093E0F6
:1017A0009F938F9382E08F9381E08F9381E48F9357
:1017B0000E9492078FEF809307038DB79EB70B9619
:1017C0000FB6F8949EBF0FBE8DBF80918A07882305
:1017D00029F080910803882309F05EC08091D2032C
:1017E000882309F4F7C180910803882309F4F2C122
:1017F00039C080910803882309F479CF0E94CA1A5E
:1018000084E190E09F938F939091D10384E1989F1E
:10181000C0011124815E9C4F9F938F9381E090E0E3
:101820009F938F9381ED93E09F938F9382E08F93AB
:1018300081E08F9388E48F930E9492078091D10377
:101840008F5F2DB73EB7255F3F4F0FB6F8943EBF71
:101850000FBE2DBF843008F4B8C11092D10310928E
:10186000D50345CF86E190E09F938F938EEA97E072
:101870009F938F9381E08F938F9380E58F930E9446
:1018800092071092D2038DB79EB707960FB6F894C1
:101890009EBF0FBE8DBF9EC181E090E09F938F934E
:1018A0008AE897E09F938F9381E08F938F9382E4F0
:1018B0008F930E94920710928A072DB73EB7295F37
:1018C0003F4F0FB6F8943EBF0FBE2DBF87CF80911C
:1018D000F4079927880F991F880F991F7C0100270B
:1018E000F7FC0095102F8091A7049091A804A09177
:1018F000A904B091AA04BC01CD01A80197010E94DE
:10190000965830939E0620939D0680919F04909157
:10191000A004A091A104B091A204BC01CD01A80132
:1019200097010E9496583093A00620939F068091BD
:1019300043048093A106809142048093A20688E02C
:1019400090E09F938F938DE996E09F938F9381E032
:101950008F9383E08F9387E78F930E949207809104
:10196000A3062DB73EB7295F3F4F0FB6F8943EBF91
:101970000FBE2DBF853018F086E08093A30683E666
:1019800090E00E94D0119093B1068093B006D7CE1C
:101990008BE090E09F938F9385EA96E09F938F93DF
:1019A00081E08F93809105038F9387E48F930E944A
:1019B00092071092D7038DB79EB707960FB6F8948B
:1019C0009EBF0FBE8DBFAECE8AE090E09F938F93F7
:1019D00083E996E09F938F9381E08F938F9386E5C1
:1019E0008F930E9492071092D3032DB73EB7295FC1
:1019F0003F4F0FB6F8943EBF0FBE2DBF8ACE0E9458
:101A0000CA1A80E590E09F938F938FE193E09F93B4
:101A10008F9321E030E03F932F938EE193E09F93EB
:101A20008F933F932F9384E294E09F938F9383E06F
:101A30008F9381E08F938CE48F930E949207109292
:101A4000D6038DB79EB70F960FB6F8949EBF0FBE04
:101A50008DBF56CE80919106909192060E94D91129
:101A6000882309F077CE72CE80916305909164054A
:101A70000E94D911882309F479CE80910803882324
:101A800009F474CE8091F4079927880F991F880F65
:101A9000991F7C010027F7FC0095102F8091A70467
:101AA0009091A804A091A904B091AA04BC01CD0111
:101AB000A80197010E94965830935605209355052A
:101AC00080919F049091A004A091A104B091A204E0
:101AD000BC01CD01A80197010E949658309358058A
:101AE00020935705209187083091880840918908F4
:101AF00050918A08DA01C90103E0880F991FAA1FD3
:101B0000BB1F0A95D1F7820F931FA41FB51F820F29
:101B1000931FA41FB51F20917A0330917B0340913E
:101B20007C0350917D03BC01CD010E9496583093F7
:101B30005A05209359058EE090E09F938F9385E599
:101B400095E09F938F9381E08F938F9383E48F939E
:101B50000E9492078091C2039091C3030E94D0110A
:101B600090936405809363052DB73EB7295F3F4F7F
:101B70000FB6F8943EBF0FBE2DBFF8CD82E490E0C3
:101B80009F938F9388E497E09F938F9381E08F9347
:101B90008F9384E48F930E9492071092D4038DB7A1
:101BA0009EB707960FB6F8949EBF0FBE8DBF80916B
:101BB000030390910403009709F4D1CD0E94D01142
:101BC0009093920680939106CACD8093D103109290
:101BD000D5038DCD1F910F91FF90EF900895982F11
:101BE00080918B07813031F0892F0E941A0B282FAA
:101BF00033270CC080912504E82FFF27E15EFC4FBE
:101C000090838F5F8093250421E030E0C90108951F
:101C10000F931F93CF93DF938C01EB01672B71F030
:101C2000F80181918F010E94EF0D219739F0F801A1
:101C300081918F010E94EF0D219791F7DF91CF9154
:101C40001F910F9108950F931F93CF93DF938C01F2
:101C5000EB01672B81F0F8010F5F1F4F84910E9409
:101C6000EF0D219741F0F8010F5F1F4F84910E9403
:101C7000EF0D219781F7DF91CF911F910F9108957B
:101C8000CF93C82F181634F480E20E94EF0DC15094
:101C90001C16D4F3CF910895CF93C82F181634F49F
:101CA00080E30E94EF0DC1501C16D4F3CF9108952C
:101CB0002F923F924F925F926F927F928F929F925C
:101CC000AF92BF92CF92DF92EF92FF920F931F934A
:101CD000CF93DF93CDB7DEB7E0970FB6F894DEBFB2
:101CE0000FBECDBF26968FAD26972896EEADFFADE1
:101CF000289788249924540180938B0748E4C42EA4
:101D0000D12CCC0EDD1E7F01C701F70114911123E8
:101D100031F0153221F00894E11CF11CF6CFB70127
:101D2000681B790B09F095C0112309F43DC2089492
:101D3000E11CF11C1FA63FA4232C0FEF39A6F701CD
:101D40000894E11CF11C14911537C9F1812F8062B0
:101D50008837A9F1103209F440C0133209F48DC05C
:101D60001A3209F479C01D3209F476C01B32C9F168
:101D70001E32C9F1103309F48AC0812F8153893092
:101D800008F07EC060E070E0CB01880F991F880FDB
:101D9000991F880F991F860F971F680F791F610F72
:101DA000711D60537040F7010894E11CF11C1491FF
:101DB000812F80538A3040F3262E153739F630FEB6
:101DC0003DC0F60184E090E0C80ED91E808091806D
:101DD000A280B380103209F0C0CF89A5882309F012
:101DE000AECF19A7ACCFF7010894E11CF11C1491F8
:101DF0001A3209F451C060E070E014C0CB01880FC2
:101E0000991F880F991F880F991F860F971F680FBA
:101E1000791F610F711D60537040F7010894E11C38
:101E2000F11C1491812F80538A3040F3EFEF6F3F04
:101E30007E0714F46FEF7FEF062F86CFF60182E066
:101E400090E0C80ED91E808191814C01AA24BB2448
:101E500081CF0E94230E68CF1A3251F4F60182E03E
:101E600090E0C80ED91E208022200CF068CF21946B
:101E700090E1392AEFED3E2262CF98E0392A5FCF18
:101E80001836C9F01C36D1F481E0382A58CF34FC1A
:101E900056CFF0E23F2A53CFF60182E090E0C80E21
:101EA000D91E608171819FEF6F3F790714F46FEF46
:101EB0007FEF062F44CF24E0322A41CF133609F4B6
:101EC0004DC1143409F41FC1143609F41CC119366C
:101ED00009F419C11F3409F40FC11F3609F40CC1EC
:101EE000103709F4F9C0133709F4B2C0153509F4F5
:101EF000ECC0153709F4E9C0183509F444C01837A7
:101F000009F441C0112309F44FC1CE0101969DA7E8
:101F10008CA7198381E0482E19A6632C7724042D01
:101F20005FA4541857FC2DC029A5222331F10F5F5F
:101F3000050DC30180739070892B09F42FC12223F2
:101F400009F027C166FC1BC1C301807390708097A4
:101F500009F410C1852D0E944C0E842D992787FD10
:101F60009095BC018CA59DA50E94080E64FECCCE68
:101F7000822D801B0E94400EC7CE66FED9CF0E5F19
:101F8000D7CF5524D1CFE0E1EEA733FE07C08114AF
:101F90009104A104B10411F0F0E43F2A19A60FA79F
:101FA00007FD02C02FED3222CE0189969DA78CA796
:101FB00081149104A104B10419F49FA5992361F13E
:101FC000EEA54E2E55246624772418AA8414950471
:101FD000A604B70410F0F1E0F8ABC501B401A30109
:101FE00092010E947458DC01CB01082F8A30F0F472
:101FF000005DECA5FDA50293FDA7ECA7C501B4010A
:10200000A30192010E94745849015A01F8A9FF23C3
:10201000E1F62EA5283079F0632C7724CE010196C5
:10202000482EFCA54F1A28E2420E79CF095A1835DE
:1020300001F70F7DDECF632C772463FEEFCF0033F3
:1020400069F380E3ECA5FDA58293FDA7ECA7E6CF9D
:10205000F60182E090E0C80ED91E0190F081E02DDB
:10206000FDA7ECA7EF2B81F4FE013196FDA7ECA7AD
:1020700088E289838EE6818385E78B838CE68C8377
:102080008D8389E28E831F8207FD15C0802F9927DB
:1020900087FD9095AC0160E070E08CA59DA50E9445
:1020A0003B57009731F0482EFCA54F1A04150CF051
:1020B00033CF402E31CFECA5FDA501900020E9F7EC
:1020C00031974E2E2CA5421A27CF153511F481E0F9
:1020D000382A9AE09EA762CFF60182E090E0C80E0F
:1020E000D91E808191814C01AA24BB2490E19EA736
:1020F000E0E43E2A18E752CF1F3411F4E1E03E2A13
:10210000F8E0FEA74BCF143411F491E0392A30FEE9
:1021100018C0F60184E090E0C80ED91E808091803E
:10212000A280B380B7FE0AC0B094A094909480942B
:10213000811C911CA11CB11C8DE289A79AE09EA76D
:102140002ECFF60182E090E0C80ED91E80819181E9
:102150004C01AA2497FCA094BA2CE4CFFE0131963E
:10216000FDA7ECA7F60182E090E0C80ED91E8081A1
:102170008983D0CE822D801B0E944C0EEBCE80E353
:102180008AA71BA762E070E0CE018A960E94080E23
:10219000DBCE61E070E0CE018996F8CF822D801B06
:1021A0000E94400E29A5CBCEE0960FB6F894DEBF74
:1021B0000FBECDBFDF91CF911F910F91FF90EF9098
:1021C000DF90CF90BF90AF909F908F907F906F9057
:1021D0005F904F903F902F9008951F920F920FB6EF
:1021E0000F9211242F933F935F936F937F938F935D
:1021F0009F93AF93BF93EF93FF938091E70388235F
:1022000029F08091E70381508093E7038091EF03E9
:1022100081508F3F09F493C08093EF038091E803CE
:102220009091E903029700F18091E8039091E9030E
:1022300001979093E9038093E8038091E8039091DC
:10224000E9032091090330910A0382239323892B08
:1022500089F0809101018A3009F48BC0479A8091FE
:10226000E80783FF8DC010C08FEF9FEF90930A03A4
:1022700080930903809101018A3009F478C047985E
:102280008091E80783FF7CC086B19927FC01E0714B
:10229000F07084FF0AC08091EA039091EB030196ED
:1022A0009093EB038093EA036BC08091EA039091D3
:1022B000EB03892B49F18091EA039091EB038A5655
:1022C000914010F58091EA039091EB0369E270E090
:1022D0000E944D588091EA039091EB03860F971F5F
:1022E0009093EB038093EA038091EA039091EB03D0
:1022F0000B9708F440C08091EA039091EB030A9792
:1023000090936E0480936D0480916D0490916E049F
:1023100020916B0430916C04821B930B845E9D4F63
:1023200068E671E00E946158845B904090936A0473
:10233000809369041092EB031092EA0321C089E0B4
:102340008093EF0380910B038F5F817080930B0369
:10235000882319F481E08093EC038091ED03909140
:10236000EE0301969093EE038093ED0357CF5A98B6
:1023700087CF5A9A85CFF0936E04E0936D04C4CF53
:10238000FF91EF91BF91AF919F918F917F916F914D
:102390005F913F912F910F900FBE0F901F90189556
:1023A0002091ED033091EE03280F391FC9010196EA
:1023B00008952091ED033091EE03821B930B892F3A
:1023C00099278695807490700895CF93DF930E942B
:1023D000D011EC01CE010E94D9118823D9F3DF91ED
:1023E000CF9108951F93CF93DF930E94D011EC01FA
:1023F0001FEC08C080910E03882321F090930E03F8
:1024000010937A00CE010E94D911982F882391F35E
:10241000DF91CF911F9108959FB7F894579A5F98D5
:102420003E9A469A8091B0008F708093B000809160
:10243000B00083608093B0008091B1008B73809373
:10244000B1008091B1008B608093B1001092B20016
:102450008FEF8093B3008091B00080688093B000CC
:10246000809170008A7F80937000809170008260FC
:10247000809370009FBF08958AE090E00E94D01181
:102480009093F7038093F60382E085BD83EA84BDD1
:1024900017BC88E788BD86E086BD80916E008160AC
:1024A00080936E0008951F920F920FB60F92112421
:1024B0002F933F934F935F936F937F938F939F934C
:1024C000AF93BF93EF93FF93809101018431C0F4E8
:1024D0008091F003882309F446C02091F1033091E4
:1024E000F20341E02F37340708F49CC08FEF80934C
:1024F000B3002F5F30403093F2032093F103D3C237
:102500008091F003882349F78091B00086FFADC029
:102510008091B0008F7B8093B0008091F503882379
:1025200009F0EEC080910608282F33278DED96E044
:10253000289FA001299F500D389F500D1124CA01DA
:102540002091F3033091F403821B930B9093F203D9
:102550008093F1031092F4031092F303469A81E002
:102560008093F003BACF8091B00086FFA7C080911E
:10257000B0008F7B8093B00089EA93E09093F203E0
:102580008093F10380910C0390910D039C01220F25
:10259000331F280F391F809185039927880F991FB2
:1025A000880F991F280F391F37FD2AC2C901959539
:1025B00087959595879590930D0380930C03909341
:1025C000E3038093E20380912C0880FFD0C08091C8
:1025D0000308682F7727882799272091A70430912F
:1025E000A8044091A9045091AA0457FDF0C1E7E066
:1025F0005595479537952795EA95D1F70E9422582A
:102600009B01AC0197FD06C2B6E0559547953795FD
:102610002795BA95D1F78091E2039091E303820F59
:10262000931FCFC02F3F310569F060F0A9014F5FC4
:1026300050404F37510588F480E88093B30020580C
:10264000304059CF8091F1038093B3001092F20390
:102650001092F1031092F00326C28FEF8093B30023
:102660005093F2034093F1031EC28091B000806446
:102670008093B0008CEB90E09093F2038093F10391
:102680008091F3039091F40384549F4F9093F4034B
:102690008093F3038091E603882329F080915B0403
:1026A000853B08F0EDC09091F5039F5F809106088F
:1026B000891708F0E2C01092F50351CF8091B00065
:1026C00080648093B00080910608282F33278DED19
:1026D00096E0289FA001299F500D389F500D11248E
:1026E000CA012091F3033091F403821B930B909362
:1026F000F2038093F1039C0181E08093F003F1CE1B
:1027000029EA33E0E82FFF27E130F10509F4BAC0E8
:10271000EE0FFF1FE255F84F80819181880F991FBE
:1027200087559C4F9093F2038093F1032091F1031E
:102730003091F20355E02D3D350708F454C18CED7E
:1027400095E09093F2038093F1039C012C5B304061
:102750003093F2032093F1038091F3039091F403FB
:10276000820F931F9093F4038093F303F8CE80912C
:102770000308682F7727882799272091A70430918D
:10278000A8044091A9045091AA0457FD1BC1A7E0D9
:102790005595479537952795AA95D1F70E942258C8
:1027A0009B01AC0197FD31C1F6E0559547953795F2
:1027B0002795FA95D1F78091E2039091E303821B6C
:1027C000930B9093E3038093E20380910408282FF6
:1027D0003327220F331F220F331F8091E203909182
:1027E000E303821793077CF080910508282F332795
:1027F000220F331F220F331F8091E2039091E303D6
:102800002817390724F43093E3032093E20320913F
:10281000E2033091E3038091F1039091F203280FDA
:10282000391F205032408091E2039091E30397FDDD
:10283000EAC095958795959587959093E303809346
:10284000E2038091E2039091E303909373078093F6
:10285000720745E02D3D340708F4BEC08CED95E0CD
:102860009093F2038093F1032091F1033091F203EE
:102870003093F4032093F3033FCF9093F5036FCE8F
:10288000469811CF3093F2032093F10380910C030B
:1028900090910D039C01220F331F280F391F809147
:1028A00085039927880F991F880F991F280F391FB3
:1028B00037FDE2C0C90195958795959587959093C9
:1028C0000D0380930C039093E3038093E2038091C4
:1028D0002C0880FFA4C080910308682F77278827E1
:1028E00099272091A7043091A8044091A904509100
:1028F000AA0457FDC4C0A7E055954795379527957D
:10290000AA95D1F70E9422589B01AC0197FDBCC04B
:10291000F6E05595479537952795FA95D1F780912B
:10292000E2039091E303820F931F9093E30380935C
:10293000E20380910408282F3327220F331F220F30
:10294000331F8091E2039091E303821793077CF099
:1029500080910508282F3327220F331F220F331FA2
:102960008091E2039091E3032817390724F4309310
:10297000E3032093E2038091E2039091E30320912B
:10298000F1033091F203820F931F80509240909395
:10299000F2038093F1038091E2039091E30397FDAA
:1029A00069C095958795959587959093E303809356
:1029B000E2038091E2039091E30390937307809385
:1029C0007207B4CE21583F4F4F4F5F4FE0CE215892
:1029D0003F4F4F4F5F4F0BCE51E02737350758F42D
:1029E00087E791E03DCF81E02737380708F0AECE8A
:1029F00087E791E0A6CE3093F2032093F10334CF22
:102A00002D5F3F4FD3CD039614CF215C3F4F4F4FE7
:102A10005F4FCACE215C3F4F4F4F5F4FF5CD809146
:102A20000308682F7727882799272091A7043091DA
:102A3000A8044091A9045091AA0457FD2FC0E7E0D3
:102A40005595479537952795EA95D1F70E942258D5
:102A50009B01AC0197FD1DC066E0559547953795E4
:102A600027956A95D1F78091E2039091E303821B49
:102A7000930B5BCF039695CF2D5F3F4F1BCF215814
:102A80003F4F4F4F5F4F37CF215C3F4F4F4F5F4F0F
:102A90003FCF215C3F4F4F4F5F4FDECF21583F4F1D
:102AA0004F4F5F4FCCCFFF91EF91BF91AF919F916F
:102AB0008F917F916F915F914F913F912F910F90E7
:102AC0000FBE0F901F90189510927C008FEC809392
:102AD0007A000895EF92FF920F931F93CF93DF93A5
:102AE00003E010E0D8010E94B158802DC82FDD27E7
:102AF000C531D10508F02A97C7BD1092FF0384E6BF
:102B000090E00E94F211809112039091130382557C
:102B1000934010F4C0E0D0E0CA3FD105E0F486EE67
:102B2000E82E81E0F82EC7BD82E390E00E94F2110A
:102B3000FF92EF921F920E94580E80911203909183
:102B400013030F900F900F908255934020F0219621
:102B5000CA3FD10540F3D8010C2E0E94B958C0934A
:102B600099078CE291E00E94F211DF91CF911F91C1
:102B70000F91FF90EF900895FF920F931F93CF93C3
:102B800010E01093FA031093F9031093F803CCE8C4
:102B900001E095EFF92E133009F499C010E080910F
:102BA0000B0490910C048C5F93400CF07FC08091DB
:102BB00011038150809311038091090490910A04BC
:102BC0008C5F93400CF067C080911003815080931C
:102BD000100380910704909108048C5F9340D4F512
:102BE00080910F03815080930F0388E080932A0423
:102BF0000E948621809111038A3008F044C000931E
:102C0000FA038AE080931103809110038A30A0F5C3
:102C10000093F9038AE08093100380910F038A30B8
:102C200020F50093F8038AE080930F0380912A0433
:102C30008823E1F7809394078FEC80937A0080914A
:102C400094078823E1F3CA3008F446C0C15009F064
:102C5000A2CF47C080910704909108048750944008
:102C600084F180910F038F5FBECF863FF8F200930F
:102C7000F803F0920F03DACF863F78F20093F9035E
:102C8000F0921003CACF863F08F4BECF0093FA0338
:102C9000F0921103B9CF8091090490910A048750F2
:102CA00094408CF0809110038F5F91CF80910B0442
:102CB00090910C048750944044F0809111038F5FF1
:102CC00079CF1F5F92CF1F5F84CF11E075CFCB30DC
:102CD00008F464CFC9E062CF8AE090E00E94F2116C
:102CE000B5CF86E490E00E94F211CF911F910F9131
:102CF000FF9008951F920F920FB60F921124EF923A
:102D0000FF920F931F932F933F934F935F936F9374
:102D10007F938F939F93AF93BF93CF93DF93EF9363
:102D2000FF9320911404822F9927AA27BB272F5F96
:102D3000FC01429740F4E25CFF4FEE0FFF1F05904D
:102D4000F491E02D09941092140482E0809313040E
:102D50008091130480937C0080911404882309F4EB
:102D6000F9C38FEC80937A00F5C32093140480910B
:102D70007800909179002091190430911A04820F03
:102D8000931F90931A048093190481E0DFCF20935E
:102D9000140480917800909179002091170430916B
:102DA0001804820F931F909318048093170484E0F3
:102DB000CDCF2093140480917800909179002091D8
:102DC000B5043091B604821B930B909398078093BF
:102DD000970780919707909198079093220480938A
:102DE000210482E0B3CF209314048091B304909126
:102DF000B4042091780030917900821B930B90935A
:102E00008D0780938C0780918C0790918D0790930C
:102E1000200480931F0487E099CF209314048091AD
:102E2000780090917900909316048093150486E0C1
:102E30008DCF209314042091780030917900309345
:102E40001804209317041092130482CF20931404C3
:102E5000209178003091790030931A04209319045E
:102E600081E074CF1092140481E080930E0380916E
:102E7000FB039091FC0301969093FC038093FB036A
:102E8000809178009091790020919C0730919D0766
:102E9000820F931F90939D0780939C0780919407C6
:102EA0008F5F8093940780919407853008F44DCF0D
:102EB00080919C0790919D0797FD36C395958795C6
:102EC00090939D0780939C07809178009091790062
:102ED0009093130380931203109294078091FD0343
:102EE0009091FE03BC01660F771F62957295707F0B
:102EF0007627607F7627681B790B80918F03482F98
:102F000055278091FF03282F332727FD30958FEF1A
:102F100090E0289F8001299F100D389F100D1124EB
:102F20008091900790919107800F911F20919C07AD
:102F300030919D07821B930B2091500430915104D6
:102F4000821B930B489F9001499F300D589F300D75
:102F50001124620F731F77FDE4C27595679575950F
:102F60006795759567957595679575956795709350
:102F7000FE036093FD0380919C0790919D07EC01F7
:102F8000EE27D7FDE095FE2F209114033091150315
:102F90004091160350911703DA01C90163E0880FCD
:102FA000991FAA1FBB1F6A95D1F7821B930BA40B15
:102FB000B50BC80FD91FEA1FFB1FCE01DF01049616
:102FC000A11DB11DB7FDA7C233E0B595A795979593
:102FD00087953A95D1F78093140390931503A093A6
:102FE0001603B09317038091900790919107800F7B
:102FF000911F2091140330911503409116035091B5
:103000001703821B930B909351048093500480917B
:103010009C0790919D0797FD7CC29595879590930D
:103020009D0780939C0782E091CE20931404209109
:103030007800309179008091170490911804280F3E
:10304000391F809101018A3009F44DC2220F331FCC
:10305000220F331F3093180420931704C90137FD42
:1030600051C2959587959595879595958795909358
:103070000A048093090480911D0490911E04820F1C
:10308000931F97FD44C29595879590931E04809356
:103090001D042091BD043091BE04821B930B9093BC
:1030A00019038093180320910F043091100480912C
:1030B000180390911903280F391F37FD25C2359544
:1030C00027953093100420930F0483E03FCE209384
:1030D0001404209178003091790080911904909126
:1030E0001A04280F391F809101018A3009F4F8C1B0
:1030F000220F331F220F331F30931A042093190419
:10310000C90137FDFDC1959587959595879595954D
:10311000879590930C0480930B0480911B049091ED
:103120001C04820F931F97FDE9C195958795909395
:103130001C0480931B042091BF043091C004821BA7
:10314000930B90931B0380931A03209111043091E9
:10315000120480911A0390911B03280F391F37FD29
:10316000CAC135952795309312042093110481E04C
:10317000EDCD2093140480917800909179002091F6
:10318000B5043091B604821B930B909398078093FB
:10319000970780919707909198072091210430918B
:1031A0002204820F931F909304048093030482E00F
:1031B000CDCD209314048091B3049091B404209158
:1031C000780030917900821B930B90938D07809348
:1031D0008C0780918C0790918D0720911F0430916E
:1031E0002004820F931F909306048093050487E0C8
:1031F000ADCD20931404809101018A3009F462C19D
:10320000843109F493C180917800909179002091E4
:10321000150430911604820F931F90930804809335
:10322000070486E093CD2093140480917800909158
:1032300079002091170430911804820F931F909306
:103240001804809317041092130482CD2093140461
:1032500017CE209314048091780090917900AA27CA
:1032600097FDA095BA2FBC01CD010E94A8577B0104
:103270008C018091AD049091AE04A091AF04B09107
:10328000B0049C01AD01C801B7010E944857DC01A0
:10329000CB01BC01CD010E948B57DC01CB01909387
:1032A000020480930104809101049091020402972A
:1032B0000CF4BAC08091AD049091AE04A091AF041B
:1032C000B091B00420E030E84BE354E4BC01CD0100
:1032D0000E94B2578823DCF58091AD049091AE0432
:1032E000A091AF04B091B0042AE037ED43EA5CE36B
:1032F000BC01CD010E944957DC01CB018093AD0494
:103300009093AE04A093AF04B093B00480913004C6
:1033100090913104845F9140D0F48091AD049091FC
:10332000AE04A091AF04B091B0042DEC3CEC4CEC99
:103330005DE3BC01CD010E944957DC01CB018093C4
:10334000AD049093AE04A093AF04B093B00481E0B9
:1033500080930004809178009091790090938F077A
:1033600080938E078091010490910204AA2797FD13
:10337000A095BA2F20916F04309170044091710490
:1033800050917204820F931FA41FB51F80936F0486
:1033900090937004A0937104B093720420916F0411
:1033A00030917004409171045091720457FD9EC099
:1033B0007AE055954795379527957A95D1F780917D
:1033C0006F0490917004A0917104B0917204821BFB
:1033D000930BA40BB50B80936F0490937004A09390
:1033E0007104B093720483E0B1CC209314048091F3
:1033F0001C0390911D039C01220F331F280F391FBE
:10340000809178009091790063E070E00E944D58BF
:10341000260F371F369527953695279530931D0330
:1034200020931C0385E092CC8091010490910204CA
:103430008F5F9F4F0CF08BCF8091AD049091AE04C5
:10344000A091AF04B091B00420E030E849E054E42A
:10345000BC01CD010E94B55718160CF078CF8091B1
:10346000AD049091AE04A091AF04B091B0042AE0F5
:1034700037ED43EA5CE3BC01CD010E944857DC0113
:10348000CB018093AD049093AE04A093AF04B093AE
:10349000B0048091300490913104845F914008F031
:1034A00056CF8091AD049091AE04A091AF04B0913D
:1034B000B0042DEC3CEC4CEC5DE3BC01CD010E9472
:1034C00048573BCF80917800909179002091150466
:1034D00030911604820F931F0196969587959DCE85
:1034E000220F331F09CE220F331FB4CD21503C4F82
:1034F0004F4F5F4F5DCF2F5F3F4F33CE019615CEBD
:10350000079601CE0796ADCD2F5F3F4FD8CD0196E0
:10351000BACD019682CDCE01DF010B96A11DB11D62
:1035200053CD615E7F4F19CD0196C8CC8091780054
:10353000909179002091150430911604820F931F09
:103540002FEF37E0281B390B309308042093070432
:1035500086E0FCCBFF91EF91DF91CF91BF91AF91CE
:103560009F918F917F916F915F914F913F912F919B
:103570001F910F91FF90EF900F900FBE0F901F9033
:10358000189590E2EFE1F3E08FE49193815087FF8B
:10359000FCCF08951F93CF93DF9380912404209153
:1035A0001E03281710F4209324049091230490FF05
:1035B00008C080912404882309F4D8C081508093E6
:1035C000240491FF08C080912404821709F44DC19E
:1035D0008F5F80932404892F992780FF02C081FD8B
:1035E000C2C00E94C11A909124049A30A0F581E1D2
:1035F00080932504892F99279F938F9388EE91E0DC
:103600009F938F9381E08F930E94580E0F900F909D
:103610000F900F900F9080912404C82FDD27C530A4
:10362000D10509F425C1C630D105FCF4C230D1055D
:1036300009F424C2C330D1050CF49BC0C330D105BA
:1036400009F40EC5249709F478C5815080931E03B0
:10365000109224044FC680E180932504892F992776
:103660009F938F938DEE91E0CBCFC830D10509F4B5
:10367000B8C1C930D1050CF4D0C0CA30D10509F4A5
:10368000A6C4CA30D1050CF468C32B97F1F610928A
:10369000250485EE94E09F938F9311E01F930E9481
:1036A000580E84E1809325040F900F900F90809125
:1036B000A906992787FD90959F938F938091A806DF
:1036C000992787FD90959F938F9385EF94E09F9323
:1036D0008F931F930E94580E88E2809325046DB744
:1036E0007EB7695F7F4F0FB6F8947EBF0FBE6DBF88
:1036F0008091AA06992787FD90959F938F9380913B
:10370000AB0699279F938F9385E095E09F938F93C6
:103710001F930E94580E8CE3809325048DB79EB7AB
:1037200007960FB6F8949EBF0FBE8DBF8091AF066F
:1037300099279F938F938091AC06992787FD909549
:103740009F938F9385E195E09F938F931F930E94A2
:10375000580E6DB77EB7695F7F4F0FB6F8947EBF86
:103760000FBE6DBFC7C5109224043BCF2093240425
:1037700028CF209709F4EDC1219709F066CF8091F9
:10378000E80780FF77C5109225048091500490913E
:1037900051049F938F9387E392E09F938F9311E05F
:1037A0001F930E94580E84E1809325040F900F9080
:1037B0000F900F900F9080914E0490914F049F9323
:1037C0008F9386E492E09F938F931F930E94580EED
:1037D00088E2809325040F900F900F900F900F9028
:1037E00080911203909113039F938F9385E592E04C
:1037F0009F938F931F930E94580E8CE38093250410
:103800000F900F900F900F900F908091990799272C
:103810009F938F9384E692E026C1C630D10509F4C8
:1038200070C3279709F011CF84E18093250480911C
:103830001C0390911D039F938F9389E294E09F93C3
:103840008F9311E01F930E94580E88E28093250405
:103850000F900F900F900F900F9080915B0499271D
:103860009F938F9388E394E0FEC010922404B3CE1C
:10387000109225048FE393E09F938F93C1E0CF9341
:103880000E94580E809101010F900F900F908A3086
:1038900009F4AEC28B3009F4B8C1843109F4B5C162
:1038A0008D3009F027C584E18093250480911103B0
:1038B00099279F938F934091BF045091C004CA01F0
:1038C00057FD16C5959587959595879595958795F7
:1038D000959587959F938F939A0157FD06C53595CA
:1038E0002795359527953595279580910B049091CF
:1038F0000C04821B930B9F938F9383EB93E09F9316
:103900008F93CF930E94580E88E2809325048DB741
:103910009EB709960FB6F8949EBF0FBE8DBF8091DB
:10392000100399279F938F934091BD045091BE043B
:10393000CA0157FDD8C49595879595958795959516
:103940008795959587959F938F939A0157FDC8C446
:1039500035952795359527953595279580910904B7
:1039600090910A04821B930B9F938F9387EC93E0B3
:103970009F938F93CF930E94580E8CE380932504DE
:103980006DB77EB7675F7F4F0FB6F8947EBF0FBEEF
:103990006DBF80910F0399279F938F932091BB0454
:1039A0003091BC04C90137FD99C4959587959F93C3
:1039B0008F938091070490910804281B390B3F9343
:1039C0002F938BED93E09F938F93CF930E94580E8C
:1039D0008DB79EB709960FB6F8949EBF0FBE8DBFE8
:1039E00089C41092250487E494E09F938F9311E09B
:1039F0001F930E94580E84E1809325040F900F902E
:103A00000F908091690490916A049F938F9386E54B
:103A100094E09F938F931F930E94580E88E28093A7
:103A200025040F900F900F900F900F9080916D04D0
:103A300090916E049F938F9385E694E09F938F936C
:103A40001F930E94580E8CE3809325040F900F90D3
:103A50000F900F900F9080916B0490916C049F9346
:103A60008F9384E794E09F938F931F930E94580E47
:103A70000F900F900F900F900F903CC41092250460
:103A800088E892E09F938F93C1E0CF930E94580EF5
:103A900084E1809325040F900F900F908091A704EC
:103AA0009091A804A091A904B091AA04B7FDFBC30A
:103AB0003AE0B595A795979587953A95D1F7BF9335
:103AC000AF939F938F9382E992E09F938F93CF93CD
:103AD0000E94580E88E2809325048DB79EB7079602
:103AE0000FB6F8949EBF0FBE8DBF80919F0490913A
:103AF000A004A091A104B091A204B7FDCFC32AE015
:103B0000B595A795979587952A95D1F7BF93AF93CC
:103B10009F938F9381EA92E09F938F93CF930E941C
:103B2000580E8CE3809325046DB77EB7695F7F4F95
:103B30000FB6F8947EBF0FBE6DBF80916D0490915B
:103B40006E049F938F9380EB92E09F938F93CF931C
:103B50008DCF1092250482EF91E09F938F9311E017
:103B60001F930E94580E84E1809325040F900F90BC
:103B70000F9080E790E09F938F9388E490E09F936D
:103B80008F93DF93CF93809101016AE00E944158A7
:103B9000892F99279F938F93809101010E9441580B
:103BA00099279F938F9382E092E09F938F931F9327
:103BB0000E94580E88E2809325046DB77EB7635F3C
:103BC0007F4F0FB6F8947EBF0FBE6DBF0E940803F3
:103BD00099279F938F938AE192E09F938F931F93EE
:103BE0000E94580E8CE3809325040F900F900F9045
:103BF0000F900F9087E292E09F938F931F930E9404
:103C0000580E0F900F900F9075C384E18093250498
:103C10004091BF045091C004CA0157FD55C39C0197
:103C2000359527953595279535952795359527957C
:103C3000C90182959295907F9827807F9827BA0135
:103C4000681B790BCB0177FD3DC3959587959F93B5
:103C50008F933F932F939A0157FD31C33595279545
:103C6000359527953595279580910B0490910C04F7
:103C7000821B930B9F938F9380E893E09F938F9386
:103C8000CF930E94580E88E2809325048DB79EB78B
:103C900009960FB6F8949EBF0FBE8DBF4091BD042C
:103CA0005091BE04CA0157FD08C39C013595279564
:103CB000359527953595279535952795C901829591
:103CC0009295907F9827807F9827BA01681B790B7F
:103CD000CB0177FDF0C2959587959F938F933F9386
:103CE0002F939A0157FDE4C2359527953595279571
:103CF000359527958091090490910A04821B930BB6
:103D00009F938F9382E993E09F938F93CF930E9429
:103D1000580E8CE3809325048DB79EB709960FB695
:103D2000F8949EBF0FBE8DBF2091BB043091BC04A0
:103D3000C90137FDCBC2959587959F938F9380914D
:103D4000070490910804281B390B3F932F9384EAB2
:103D500093E09F938F93CF93FACC10922504809198
:103D60006204909163049F938F9383E894E09F9300
:103D70008F9311E01F930E94580E84E180932504D5
:103D80000F900F900F900F900F9080916004909182
:103D900061049F938F938FE894E09F938F931F9379
:103DA0000E94580E88E2809325040F900F900F9088
:103DB0000F900F9080915E0490915F049F938F937A
:103DC0008BE994E09F938F931F930E94580E8CE38E
:103DD000809325040F900F900F900F900F9080917B
:103DE0005C0490915D049F938F9387EA94E03BCEAF
:103DF00084E1809325044091BF045091C0049A014E
:103E000057FD69C2359527953595279535952795A1
:103E1000C901880F991F880F991F880F991F481B88
:103E2000590B5F934F933F932F9380910B04909185
:103E30000C04821B930B9F938F938DE493E09F93CD
:103E40008F93CF930E94580E88E2809325048DB7FC
:103E50009EB709960FB6F8949EBF0FBE8DBF4091D6
:103E6000BD045091BE049A0157FD32C23595279585
:103E70003595279535952795C901880F991F880F86
:103E8000991F880F991F481B590B5F934F933F93BE
:103E90002F938091090490910A04821B930B9F93A6
:103EA0008F938FE593E09F938F93CF930E94580E4B
:103EB0008CE3809325046DB77EB7675F7F4F0FB6A5
:103EC000F8947EBF0FBE6DBF8091BB049091BC047F
:103ED0009F938F938091BB049091BC042091070421
:103EE00030910804821B930B9F938F9381E793E09B
:103EF0009F938F93CF930E94580E8DB79EB70796CE
:103F00006ACD109225048FEE93E09F938F9311E07A
:103F10001F930E94580E84E1809325040F900F9008
:103F20000F908091B5049091B6049F938F938091E8
:103F30000304909104049F938F938CEF93E09F93DD
:103F40008F931F930E94580E88E2809325046DB7CB
:103F50007EB7695F7F4F0FB6F8947EBF0FBE6DBF0F
:103F60008091B3049091B4049F938F938091050442
:103F7000909106049F938F938BE094E09F938F938F
:103F80001F930E94580E8CE3809325048DB79EB733
:103F900007960FB6F8949EBF0FBE8DBF8091AD04FB
:103FA0009091AE04A091AF04B091B004BC01CD01DA
:103FB0000E948B57DC01CB019F938F9380915D080A
:103FC00090915E089F938F938AE194E0BDCB10920D
:103FD000250483EB94E09F938F9311E01F930E943D
:103FE000580E84E1809325040F900F900F908091DC
:103FF000850399279F938F938BEB94E09F938F93E7
:104000001F930E94580E88E2809325040F900F9012
:104010000F900F900F908091E4039091E5039F9390
:104020008F9389EC94E09F938F931F930E94580E77
:104030008CE3809325040F900F900F900F900F90BA
:104040008091050899279F938F9380910408992761
:104050009F938F9387ED94E09F938F931F934BCF04
:10406000109225048091B2079091B3079F938F938C
:104070008091B0079091B1079F938F938FEB92E05F
:104080009F938F9311E01F930E94580E84E18093B9
:1040900025048DB79EB707960FB6F8949EBF0FBE46
:1040A0008DBF8091B6079091B7079F938F938091B2
:1040B000B4079091B5079F938F938FEC92E09F93F5
:1040C0008F931F930E94580E88E2809325046DB74A
:1040D0007EB7695F7F4F0FB6F8947EBF0FBE6DBF8E
:1040E0008091BA079091BB079F938F938091B807F7
:1040F0009091B9079F938F938FED92E09F938F9349
:104100001F930E94580E8CE3809325048DB79EB7B1
:1041100007960FB6F8949EBF0FBE8DBF8091BE0765
:104120009091BF079F938F938091BC079091BD079B
:104130009F938F938FEE92E007CB1092250480918E
:10414000E107E82FFF27EE0FFF1FE255F84F8081B0
:1041500091819F938F938091E007E82FFF27EE0FC7
:10416000FF1FE255F84F808191819F938F938FEFCE
:1041700092E09F938F9311E01F930E94580E84E169
:10418000809325048DB79EB707960FB6F8949EBF0F
:104190000FBE8DBF8091E307E82FFF27EE0FFF1FB3
:1041A000E255F84F808191819F938F938091E20730
:1041B000E82FFF27EE0FFF1FE255F84F8081918116
:1041C0009F938F938FE093E09F938F931F930E9411
:1041D000580E88E2809325046DB77EB7695F7F4FE4
:1041E0000FB6F8947EBF0FBE6DBF8091E507E82F34
:1041F000FF27EE0FFF1FE255F84F808191819F93BB
:104200008F938091E407E82FFF27EE0FFF1FE25501
:10421000F84F808191819F938F938FE193E09F93DB
:104220008F931F930E94580E8CE3809325048DB7C3
:104230009EB707960FB6F8949EBF0FBE8DBF8091B4
:10424000E707E82FFF27EE0FFF1FE255F84F8081A9
:1042500091819F938F938091E607E82FFF27EE0FC0
:10426000FF1FE255F84F808191819F938F938FE2DA
:1042700093E06ACA84E18093250483E792E09F93E8
:104280008F9311E01F930E94580E88E280932504BB
:104290000F900F900F908AE792E0AECC81509C4F28
:1042A000AF4FBF4F2CCC81509C4FAF4FBF4F00CC76
:1042B000295F3F4F19CD01960ECD0F96F6CC295FA1
:1042C0003F4FCCCC0196C1CC0F96A9CC019633CDF3
:1042D000295F3F4FCBCD295F3F4F94CD019665CBF2
:1042E000295F3F4F35CB0F9626CB295F3F4FF7CA4B
:1042F0000F96E8CA10922304DF91CF911F91089581
:104300001092B9008AE28093B800089585EA8093FC
:10431000BC0080E090E0089584E98093BC0008959B
:104320001092B9008093BB0085E88093BC0080E0C8
:1043300090E008950E948C2110922A048091BB0085
:104340001092290480E88093BC001092BD00109266
:10435000BA001092BB001092B9001092B8000E94EF
:1043600080210E94862180E00E94902108951F9262
:104370000F920FB60F9211242F933F934F935F9399
:104380006F937F938F939F93AF93BF93EF93FF931D
:1043900080912A04282F3327442755278F5F809345
:1043A0002A04F9012731310508F010C1E05BFF4F05
:1043B000EE0FFF1F0590F491E02D099480912804E1
:1043C000E82FFF27E256F84F9091BB0090878F5F50
:1043D000883008F4C7C0109228040E948C218AE01B
:1043E00090E090939D0380939C0310922A04EEC06A
:1043F00080E80E949021EAC088E90E949021E6C0EE
:104400000E948C218AE090E090939D0380939C030E
:104410000E948621DBC0809110030E949021D6C0AB
:1044200080912904880F8E5A0E949021CFC00E944B
:104430008C2180912904883008F097C010922A04BA
:104440000E948621C3C080912904282F33278F5FC3
:10445000809329042330310509F47FC024303105CD
:104460000CF08DC02130310509F4A2C02230310595
:104470000CF45DC0809174080E949021A7C09091B7
:104480002804E92FFF27E330F10509F466C0E43082
:10449000F1050CF050C0E130F10509F489C0E230BB
:1044A000F10544F7EF2B09F091C080918E080E942E
:1044B00090218CC090912804E92FFF27E256F84FF5
:1044C0008091BB008083DDCF80912804880F8D5AB6
:1044D0000E9490217BC080E10E94902177C0809152
:1044E0000F030E94902172C0809128049927833085
:1044F000910599F1843091050CF04EC08130910501
:1045000009F456C0823091050CF0B4CF892B09F024
:104510005DC0CBCF84E10E94902158C082E10E940F
:10452000902154C0809111030E9490214FC0232BF1
:1045300009F04CC0BACFE530F10509F43EC0E530D2
:10454000F105C4F0E630F105E9F1379709F03EC016
:10455000809151080E94902139C080915B080E948F
:10456000902134C08093280438CF109229040E94EF
:1045700086212CC080915C080E94902127C02530A4
:104580003105D9F025303105ACF326303105D1F0B5
:1045900027303105D9F4DCCF8530910571F08530B5
:1045A000910544F38630910569F0079779F4D0CFEF
:1045B000809161080E94902109C0809176080E9434
:1045C000902104C0809173080E9490218091BC00CA
:1045D00080688093BC00FF91EF91BF91AF919F9154
:1045E0008F917F916F915F914F913F912F910F909C
:1045F0000FBE0F901F90189583EC809381008091DF
:104600006F00806280936F001092BC041092BB0414
:104610001092BE041092BD041092C0041092BF0408
:1046200008951F920F920FB60F921124EF92FF92EE
:104630000F931F932F933F934F935F936F937F93AA
:104640008F939F93AF93BF93CF93DF93EF93FF939A
:10465000209186003091870080912B0490912C044A
:10466000281B390B809186009091870090932C0431
:1046700080932B04C9018D549440835F9A4178F450
:1046800080912D0490912E04049714F010927903D8
:10469000C1E0D0E0D0932E04C0932D04A3C0C091FC
:1046A0002D04D0912E04CA30D1050CF09BC0C90155
:1046B0008B5F9040845B9140A8F0FE013196F093AF
:1046C0002E04E0932D04E530F10509F46DC05D98EA
:1046D000E630F10509F466C05C98379709F460C0CC
:1046E0005B9880C0225D3140FE01EC0FFD1FE2555A
:1046F000F84F80819181F901E81BF90BCF01F7FD9B
:104700006DC0069754F480915B04883C08F05FC04C
:1047100080915B04865F80935B04FE01EC0FFD1FBC
:10472000E255F84F80819181AC01440F551F480F2D
:10473000591F420F531F57FD4EC07A01F594E7945D
:10474000F594E794C90101968E159F05BCF5089470
:10475000E108F10880915B04833C40F18E010C0F6D
:104760001D1FF801E255F84F808191819701281BA8
:10477000390BC90163E070E00E946158CB01880FDA
:10478000991F860F971F0C53184FF8019183808350
:10479000FE01EC0FFD1FE255F84FF182E0828DCF54
:1047A0005B9A20C05C9A99CF5D9A92CFFE01EC0F84
:1047B000FD1FEC53F84F11821082EACF2150304098
:1047C000E216F3063CF60894E11CF11CC3CF88EC1A
:1047D00080935B04A2CF4D5F5F4FAFCF90958195E3
:1047E0009F4F8FCFFF91EF91DF91CF91BF91AF910D
:1047F0009F918F917F916F915F914F913F912F91F9
:104800001F910F91FF90EF900F900FBE0F901F9090
:10481000189581E08093E00782E08093E10783E0D0
:104820008093E20784E08093E30785E08093E407C8
:1048300086E08093E50787E08093E60788E0809331
:10484000E70708951F9388E68093E8073EE13093D9
:10485000E9078BEF8093EB078AE08093EC073093B6
:10486000EA073093EE07E4E0E093ED075FE0509352
:10487000EF073093F0071CE01093F10778E0709396
:10488000F20786EE8093F3073093F40780E8809375
:10489000F50780E58093F60726E92093F70783E084
:1048A0008093F8078EE58093F90783E28093FA07F7
:1048B0003093FB071092FC0760E26093FD071092B3
:1048C000FE071092FF071092000810920108109244
:1048D000120810921308109214081092150844E65A
:1048E0004093020888E28093030810922C0892E318
:1048F000909304082093050885E080930608909320
:1049000007082AE5209308089093090810922B08BD
:1049100020930A0883E480930B0810920C0885E525
:1049200080930D0880930E0880E180930F086093B8
:104930001008409311088FE58093160883EF809349
:10494000180850931708509319088DEF80931A0890
:1049500040931B0820931C0820931D0820931E08D9
:104960008BE480931F088093200880932108109285
:10497000220886E08093230870932408209325085A
:10498000309326084093270840932808E09329088D
:10499000AEE9B3E0E1E3F8E00D9001921A95E1F79A
:1049A0001F9108951F9388E68093E8075EE1509376
:1049B000E9078BEF8093EB078AE08093EC07509335
:1049C000EA075093EE0793E09093ED071CE01093F5
:1049D000EF0780E18093F00776E07093F10768E0DD
:1049E0006093F20786EE8093F3075093F40780E814
:1049F0008093F50780E58093F60788E78093F707B3
:104A00009093F8078EE58093F90783E28093FA0785
:104A10005093FB071092FC0730E23093FD07109291
:104A2000FE071092FF0710920008109201081092E2
:104A3000120810921308109214081092150844E6F8
:104A40004093020888E28093030810922C0892E3B6
:104A50009093040886E98093050885E08093060812
:104A6000909307082AE5209308089093090810926C
:104A70002B0820930A0883E480930B088CE380932F
:104A80000C0885E580930D0880930E0830930F087D
:104A9000309310089BE4909311088FE580931608DB
:104AA00083EF8093180884E1809317088093190896
:104AB0008DEF80931A0840931B0820931C082093C5
:104AC0001D0820931E0890931F0890932008909330
:104AD00021081092220870932308609324082093E1
:104AE000250850932608409327084093280884E01F
:104AF00080932908A5EAB3E0E1E3F8E00D90019284
:104B00001A95E1F71F91089588EE8093E8073EE13A
:104B10003093E9078BEF8093EB078AE08093EC07F3
:104B20003093EA073093EE0793E09093ED0758E057
:104B30005093EF0720E12093F00766E06093F107C0
:104B40005093F20786EE8093F3073093F40780E8E2
:104B50008093F50744E64093F60788E78093F707CC
:104B60009093F8078EE58093F90783E28093FA0724
:104B700084E18093FB071092FC072093FD071092BD
:104B8000FE071092FF071092000810920108109281
:104B900012081092130810921408109215084093EE
:104BA000020888E28093030810922C0892E3909305
:104BB000040886E98093050885E0809306089093B1
:104BC00007082AE5209308089093090810922B08FB
:104BD00020930A0883E480930B0886E480930C08F2
:104BE00085E580930D0880930E0880E280930F087E
:104BF00080931008909311088FE58093160883EF37
:104C00008093180830931708309319088DEF80931C
:104C10001A0840931B0820931C0820931D0820931A
:104C20001E088BE480931F0880932008809321083E
:104C3000109222086093230850932408209325089B
:104C400030932608409327084093280884E08093F7
:104C500029088CE0ADEAB3E0E1E3F8E00D900192C1
:104C60008A95E1F708956817790744F4680F791F6A
:104C700077FD09C0CB01959587950895681B790B41
:104C8000861B970B08956F5F7F4FCB019595879596
:104C900008950F931F93CF93C82FC150CF3F81F03A
:104CA00004E610E080915204882351F41093E90344
:104CB0000093E8038AEF90E00E94E511C15090F75D
:104CC000CF911F910F9108952F923F924F925F9233
:104CD0006F927F928F929F92AF92BF92CF92DF920C
:104CE000EF92FF920F931F93CF93DF93CDB7DEB771
:104CF000E9970FB6F894DEBF0FBECDBF2091BB047D
:104D00003091BC048091070490910804281B390B52
:104D10003A872987309381082093800820911104D5
:104D20003091120437FDD4C73595279535952795D1
:104D3000359527953AA729A73C872B87790120919C
:104D40000F043091100437FDC0C735952795359570
:104D50002795359527953DA72CA73E872D87F0925F
:104D60006008E0925F0830935408209353088091C4
:104D70007B0890917C08AA2797FDA095BA2F7C010B
:104D80008D01EE0CFF1C001F111FE80EF91E0A1FFB
:104D90001B1F80910304909104049C01442737FD5C
:104DA0004095542FDA01C901880F991FAA1FBB1F14
:104DB000880F991FAA1FBB1F820F931FA41FB51F27
:104DC000820F931FA41FB51FE80EF91E0A1F1B1F99
:104DD00017FD9CC715950795F794E79415950795CA
:104DE000F794E794F0927C08E0927B0880918B081E
:104DF00090918C08AA2797FDA095BA2F7C018D0170
:104E0000EE0CFF1C001F111FE80EF91E0A1F1B1FCE
:104E100080910504909106049C01442737FD40953C
:104E2000542FDA01C901880F991FAA1FBB1F880FD1
:104E3000991FAA1FBB1F820F931FA41FB51F820FAC
:104E4000931FA41FB51FE80EF91E0A1F1B1F17FD95
:104E500054C715950795F794E79415950795F7941A
:104E6000E794F0928C08E0928B0880915D08909115
:104E70005E08AA2797FDA095BA2F9C01AD01220FCD
:104E8000331F441F551F280F391F4A1F5B1F809176
:104E9000010490910204AA2797FDA095BA2F280F2C
:104EA000391F4A1F5B1F57FD16C755954795379504
:104EB0002795559547953795279530935E0820930C
:104EC0005D082091030430910404C901880F991FE3
:104ED000880F991F820F931F820F931FAA2797FD98
:104EE000A095BA2F2091970430919804409199048D
:104EF00050919A04820F931FA41FB51F80939704AB
:104F000090939804A0939904B0939A042091050477
:104F100030910604C901880F991F880F991F820FCD
:104F2000931F820F931FAA2797FDA095BA2F209158
:104F30009304309194044091950450919604820F0B
:104F4000931FA41FB51F8093930490939404A09380
:104F50009504B09396048091680890916908209117
:104F6000030430910404820F931F90936908809387
:104F700068088091830890918408209105043091FD
:104F80000604820F931F9093840880938308809176
:104F9000B1049091B20401969093B2048093B1044D
:104FA00080918F0490919004A0919104B09192040B
:104FB000BC01CD010E94A8575B016C0180918E0756
:104FC00090918F07AA2797FDA095BA2FBC01CD011C
:104FD0000E94A8577B018C018091AD049091AE0492
:104FE000A091AF04B091B0049C01AD01C801B7011C
:104FF0000E944857DC01CB019C01AD01C601B501FF
:105000000E944957DC01CB01BC01CD010E948B57A6
:10501000DC01CB0180938F0490939004A0939104C2
:10502000B09392048FEC80937A0010920E0320903C
:105030007F0430908004409081045090820439E4D1
:1050400023163BE6330631E0430630E053060CF40A
:1050500014C188E49BE6A1E0B0E08D839E83AF831A
:10506000B88760908704709088048090890490903D
:105070008A0439E463163BE6730631E0830630E0C8
:1050800093060CF4DCC488E49BE6A1E0B0E08983DD
:105090009A83AB83BC8349855A85CA01AA2797FDA9
:1050A000A095BA2F2091770430917804409179042B
:1050B00050917A04280F391F4A1F5B1F2CA33DA370
:1050C0004EA35FA3A0908708B0908808C09089087D
:1050D000D0908A08A80EB91ECA1EDB1E8601750173
:1050E000309149043BA7332309F0DAC0809148048A
:1050F000882309F0C2C44091E80748A746FF13C6B9
:10510000ECA5FDA5CF01AA2797FDA095BA2FBC015C
:10511000CD0129813A814B815C810E9422589B01FB
:10512000AC0197FD01C7BBE055954795379527958D
:10513000BA95D1F780918203E82EFF24002711272A
:10514000C801B7010E94225897FDE9C6ACE09595C9
:10515000879577956795AA95D1F76F87788B898B17
:105160009A8B6093C9047093CA048093CB04909384
:10517000CC0429A53AA5C901AA2797FDA095BA2F65
:10518000BC01CD012D813E814F8158850E9422585E
:105190009B01AC0197FDF9C6FBE055954795379506
:1051A0002795FA95D1F7C801B7010E94225897FDBB
:1051B000E7C6DC01CB01ECE0B595A79597958795FF
:1051C000EA95D1F78093CD049093CE04A093CF04B9
:1051D000B093D0042091C9043091CA043093DB0706
:1051E0002093DA072091CD043091CE043093DF076D
:1051F0002093DE072F85388949895A89821B930BB2
:10520000A40BB50B8EAB9FABA8AFB9AF8093CD0409
:105210009093CE04A093CF04B093D004A80EB91EEF
:10522000CA1EDB1E86017501309181033BA3332327
:1052300009F0A3C58EA79FA7A8ABB9ABB7FD4DC614
:105240002EA53FA548A959A9559547953795279566
:105250008CA19DA1AEA1BFA1821B930BA40BB50B8A
:105260008CA39DA3AEA3BFA38093770490937804EF
:10527000A0937904B0937A048CC598EB291694E92D
:1052800039069EEF49069FEF59060CF0F1C328EB53
:1052900034E94EEF5FEF2D833E834F835887E1CE95
:1052A0002CA13DA14EA15FA12093770430937804F7
:1052B0004093790450937A043091E80738A710920C
:1052C000DF071092DE071092DB071092DA071092C8
:1052D000C5041092C6041092C7041092C80410921C
:1052E000C1041092C2041092C3041092C4043091FD
:1052F00081033BA38091C5049091C604A091C7048B
:10530000B091C804BC01CD0124E630E040E050E09B
:105310000E949658DA01C9014091C1045091C2041B
:10532000481B590B58A34F8F8091C1049091C20420
:10533000A091C304B091C404BC01CD0124E630E0C7
:1053400040E050E00E949658DA01C9012091C5045E
:105350003091C604821B930B9AA389A380917A0390
:1053600090917B03A0917C03B0917D03BC01CD01A2
:1053700028E631E040E050E00E942258E616F706A9
:105380000807190744F057016801A61AB70AC80AA6
:10539000D90A8601750117FDA3C4A0928708B092AF
:1053A0008808C0928908D0928A082CA53DA58F8DC7
:1053B00098A1280F391F79010027F7FC0095102FBD
:1053C00080917B0490917C04A0917D04B0917E0437
:1053D000E80EF91E0A1F1B1F5701680180914C043B
:1053E00090914D04281B390BC901AA2797FDA09560
:1053F000BA2F280E391E4A1E5B1E2091920330914F
:10540000930340919403509195032215330544056D
:10541000550574F4A8EAEA2EA1E6FA2E012D112D05
:10542000E21AF30A040B150B170128015701680152
:1054300088279927DC01821B930BA40BB50B281638
:1054400039064A065B060CF0E9C2F8E52F2EFEE9A4
:105450003F2EFFEF4F2EFFEF5F2E220E331E441E16
:10546000551E20927F043092800440928104509215
:1054700082048201710120927B0430927C0440926C
:105480007D0450927E0429A53AA5A9A1BAA12A0FAC
:105490003B1FA901662757FD6095762F80918304F5
:1054A00090918404A0918504B0918604480F591FFF
:1054B0006A1F7B1F5A016B0180914A0490914B0433
:1054C000281B390BC901AA2797FDA095BA2F680E92
:1054D000791E8A1E9B1E8091960390919703A0913E
:1054E0009803B09199038AAB9BABACABBDAB86156F
:1054F0009705A805B90564F448EA51E660E070E054
:10550000481B590B6A0B7B0B3A014B015A016B018B
:105510008AA99BA9ACA9BDA9B095A09590958195A4
:105520009F4FAF4FBF4F681679068A069B060CF057
:1055300064C2E8E56E2EEEE97E2EEFEF8E2EEFEFE1
:105540009E2E2AA93BA94CA95DA9620E731E841E3A
:10555000951E6092870470928804809289049092CC
:105560008A04B401A301609283047092840480923F
:105570008504909286048CA19DA1AEA1BFA18093C9
:105580008B0490938C04A0938D04B0938E0460924E
:10559000A7047092A8048092A9049092AA04209271
:1055A0009F043092A0044092A1045092A204409320
:1055B000A3045093A4046093A5047093A604E092FE
:1055C0009B04F0929C0400939D0410939E04809190
:1055D0001A0390911B0397FDA4C37C01F594E794F3
:1055E000F594E794F594E794FAA6E9A68091180358
:1055F0009091190397FD93C38C0115950795159507
:105600000795159507951DA70CA780910B04909100
:105610000C040F9734F458E1E52E5CEFF52EFAA652
:10562000E9A680910B0490910C04079734F440E3B1
:10563000E42E48EFF42EFAA6E9A6209101012A30C3
:1056400009F46BC280910B0490910C04815D97402A
:105650000CF007C280910B0490910C04805E97407F
:1056600034F080EDE82E87E0F82EFAA6E9A68091C6
:10567000090490910A040F9724F408E11CEF1DA778
:105680000CA78091090490910A04079724F400E381
:1056900018EF1DA70CA72A3009F455C28091090400
:1056A00090910A04815D974024F008EE13E01DA755
:1056B0000CA78091090490910A04805E974024F021
:1056C00000ED17E01DA70CA7A0918A03AA2309F4F7
:1056D00097C060911A0370911B038091D10490913F
:1056E000D204681B790B20911A0330911B03280FF9
:1056F000391F37FD3FC3359527953093D20420934A
:10570000D104613871050CF43AC260E870E070931E
:10571000D8046093D7048A2F9927869FF001879F2A
:10572000F00D969FF00D1124CF01F7FD21C37C01F0
:10573000F594E794F594E794F594E794F594E79459
:1057400029A53AA5E20EF31EFAA6E9A64091180390
:10575000509119038091D3049091D404481B590BA4
:105760002091180330911903280F391F37FDFDC20E
:10577000359527953093D4042093D30441385105AF
:105780000CF4F5C140E850E05093D6044093D504A2
:105790008A2F9927849FD001859FB00D949FB00DCB
:1057A0001124AD019D01B7FDDDC289011595079555
:1057B000159507951595079515950795ECA5FDA5E4
:1057C0000E0F1F1F1DA70CA7869F9001879F300DEE
:1057D000969F300D1124C90120911A0330911B03AB
:1057E000820F931F90931B0380931A0380911803D9
:1057F00090911903480F591F5093190340931803B0
:105800004D855E85141615060CF0C1C18091DA072E
:105810009091DB0797FDA2C2AA2797FDA095BA2F0A
:105820006BA1262F332744275527BC01CD010E94A9
:10583000225897FD8EC2E6E09595879577956795F6
:10584000EA95D1F7AF8DB8A1A60FB71FB0934D0859
:10585000A0934C084B855C85141615060CF0C1C14D
:105860008091DE079091DF0797FD6FC2AA2797FD11
:10587000A095BA2F6BA1262F332744275527BC01AB
:10588000CD010E94225897FD5BC246E09595879511
:10589000779567954A95D1F7A9A1BAA1A60FB71F29
:1058A000B0934308A093420838A537FDC1C11093B7
:1058B000400800933F08F0925008E0924F08809112
:1058C000E407E82FFF27EE0FFF1FE255F84F808116
:1058D000918182599F4FA0916204B0916304A817EF
:1058E000B9070CF0EEC0CD0101969093630480934C
:1058F0006204DC018091E507E82FFF27EE0FFF1F10
:10590000E255F84F8081918182599F4F60916004E8
:1059100070916104681779070CF0C4C0CB0101963F
:105920009093610480936004BC018091E607E82FA6
:10593000FF27EE0FFF1FE255F84F808191818259BA
:105940009F4F40915E0450915F04481759070CF037
:10595000D5C0CA01019690935F0480935E04AC01A8
:105960008091E707E82FFF27EE0FFF1FE255F84F62
:105970008081918182599F4F20915C0430915D0418
:10598000281739070CF0ABC0C901019690935D044C
:1059900080935C049C01B7FD93C1AF3FB10539F022
:1059A00034F08FEF90E0909363048093620477FD6E
:1059B00076C16F3F710539F034F08FEF90E090932E
:1059C00061048093600457FD70C14F3F510539F069
:1059D00034F08FEF90E090935F0480935E0437FD86
:1059E0006AC12F3F310509F00CF4DEC28FEF90E061
:1059F00090935D0480935C04D7C260928704709298
:105A000088048092890490928A04A0928304B092C0
:105A10008404C0928504D0928604ADCD20927F0488
:105A2000309280044092810450928204A0927B04C0
:105A3000B0927C04C0927D04D0927E0424CD98EB79
:105A4000691694E979069EEF89069FEF99062CF571
:105A500028EB34E94EEF5FEF29833A834B835C8375
:105A60001ACB98EEE92E93E0F92EFAA6E9A6F2CD2C
:105A70002D823E824F825886F4CA8CA19DA1AEA190
:105A8000BFA18093770490937804A0937904B09396
:105A90007A049091E80798A712CC69827A828B8267
:105AA0009C82F9CA8081918182599F4F86179707FE
:105AB0000CF03BCF6115710509F437CFCB0101978D
:105AC0002FCF8081918182599F4F8A179B070CF0BD
:105AD00011CF109709F40ECFCD01019706CF808129
:105AE000918182599F4F821793070CF054CF211553
:105AF000310509F450CFC901019748CF80819181C8
:105B000082599F4F841795070CF02ACF41155105F4
:105B100009F426CFCA0101971ECF80910B04909102
:105B20000C04835F934034F038EEE32E33E0F32E21
:105B3000FAA6E9A680910B0490910C048A5F934029
:105B40000CF495CD8ECD8091090490910A04835F69
:105B5000934024F008EE13E01DA70CA780910904E0
:105B600090910A048A5F93400CF4AECDA9CD3FEF2B
:105B7000403853070CF008CE40E85FEF05CE8FEFBA
:105B8000603878070CF0C3CD60E87FEFC0CD80911E
:105B9000DA079091DB0797FD8FC1AA2797FDA095A3
:105BA000BA2FEBA12E2F332744275527BC01CD0157
:105BB0000E94225897FDA1C156E09595879577954B
:105BC00067955A95D1F72F8D38A1261B370B309347
:105BD0004D0820934C084B855C85141615060CF473
:105BE0003FCE8091DE079091DF0797FD61C1AA2724
:105BF00097FDA095BA2FEBA12E2F332744275527C9
:105C0000BC01CD010E94225897FD7CC136E09595DC
:105C10008795779567953A95D1F729A13AA1261BE3
:105C2000370B309343082093420838A537FF3FCE07
:105C30004BA5442309F03BCE80914804882309F00A
:105C400036CE8B859C85A1E081309A070CF038C157
:105C50002B853C854FEF203034070CF09BC189A584
:105C60009AA5280F391F3C872B8720503F4F309330
:105C7000500820934F08AD85BE85E1E0A130BE07F6
:105C80000CF46BC12CA53DA5A20FB31FBE87AD8739
:105C9000A050B140B0934008A0933F0810CE10929E
:105CA00061041092600457FF90CE10925F0410922E
:105CB0005E0437FF96CE10925D0410925C0474C1AE
:105CC000109263041092620472CE295F3F4F3DC868
:105CD000295F3F4F29C82D5F3F4F4F4F5F4FE5C8AA
:105CE000E60EF71E081F191FE0928708F092880839
:105CF0000093890810938A0858CB23E030E040E0F5
:105D000050E0E20EF31E041F151FA3C883E090E0CD
:105D1000A0E0B0E0E80EF91E0A1F1B1F5BC8079643
:105D20006BCC07965ACC2CA13DA14EA15FA120932C
:105D30007704309378044093790450937A04BFCA6F
:105D4000615C7F4F8F4F9F4FA0CD909581959F4F66
:105D50008DCD615C7F4F8F4F9F4F6DCD909581951D
:105D60009F4F5ACD215F3F4F20CD2F5F3F4F00CD3A
:105D70000F96DDCC2F5F3F4FBECC2CA13DA14EA195
:105D80005FA1209377043093780440937904509373
:105D90007A0489859A85AA2797FDA095BA2F2EA9FE
:105DA0003FA948AD59AD820F931FA41FB51F8B8B20
:105DB0009C8BAD8BBE8BBC01CD0129813A814B817F
:105DC0005C810E9422589B01AC0197FDC1C06BE031
:105DD00055954795379527956A95D1F76091830337
:105DE000862F9927AA27BB278F8B988FA98FBA8FC9
:105DF000BC01CD010E94225897FDA5C02CE09595CD
:105E00008795779567952A95D1F76B8F7C8F8D8FC6
:105E10009E8F6093C1047093C2048093C3049093D7
:105E2000C4046B897C898D899E892D813E814F8137
:105E300058850E9422589B01AC0197FD7FC08BE0E2
:105E400055954795379527958A95D1F76F89788D20
:105E5000898D9A8D0E94225897FD6BC09B01AC01E1
:105E6000BCE05595479537952795BA95D1F720937E
:105E7000C5043093C6044093C7045093C8046B8D87
:105E80007C8D8D8D9E8D97FD42C061387105810599
:105E9000910554F4CA01B90157FD27C06138710555
:105EA000810591050CF426CA81E08093660422CA1C
:105EB000909581959F4F9BCE909581959F4F6DCEEC
:105EC000E9A5FAA58E0F9F1F9C878B878050914074
:105ED0009093500880934F08CECE0196A11DB11D1E
:105EE0008EA79FA7A8ABB9ABABC9909580957095CD
:105EF00061957F4F8F4F9F4FD1CF615C7F4F8F4F09
:105F00009F4F5ACE615C7F4F8F4F9F4F7FCE9095B2
:105F10008095709561957F4F8F4F9F4FB6CF6150A1
:105F2000704F8F4F9F4F12C92150384F4F4F5F4FC7
:105F3000FAC86150704F8F4F9F4F90CF2150384F0C
:105F40004F4F5F4F7CCF6150704F8F4F9F4F56CF59
:105F50002150384F4F4F5F4F3ACF4D855E856FEFE1
:105F600040305607E4F48CA59DA5480F591F5E8765
:105F70004D8740505F4F5093400840933F089FCC5F
:105F80006150704F8F4F9F4F14C92150384F4F4F62
:105F90005F4F02C9F0925008E0924F086CCE109308
:105FA000400800933F088BCCE9960FB6F894DEBF0B
:105FB0000FBECDBFDF91CF911F910F91FF90EF905A
:105FC000DF90CF90BF90AF909F908F907F906F9019
:105FD0005F904F903F902F900895809101018D30F8
:105FE00009F455C110927A0080910B0490910C0431
:105FF0009093500880934F088091090490910A046F
:106000009093400880933F08809107049091080482
:1060100090938108809380088091030490910404F8
:106020009C01442737FD4095542FDA01C901880FA0
:10603000991FAA1FBB1F880F991FAA1FBB1F820F82
:10604000931FA41FB51F820F931FA41FB51F90930A
:106050007C0880937B0880910504909106049C0144
:10606000442737FD4095542FDA01C901880F991F45
:10607000AA1FBB1F880F991FAA1FBB1F820F931F48
:10608000A41FB51F820F931FA41FB51F90938C08E8
:1060900080938B08809101049091020490935E0894
:1060A00080935D088FEC80937A008091E407E82F5D
:1060B000FF27EE0FFF1FE255F84F80819181825933
:1060C0009F4FA0916204B0916304A817B9070CF028
:1060D00085C0CD0101969093630480936204DC0136
:1060E0008091E507E82FFF27EE0FFF1FE255F84FDD
:1060F0008081918182599F4F609160047091610409
:10610000681779070CF096C0CB0101969093610453
:1061100080936004BC018091E607E82FFF27EE0F13
:10612000FF1FE255F84F8081918182599F4F409126
:106130005E0450915F04481759070CF06CC0CA0107
:10614000019690935F0480935E04AC018091E70711
:10615000E82FFF27EE0FFF1FE255F84F8081918156
:1061600082599F4F20915C0430915D0428173907B4
:106170000CF042C0C901019690935D0480935C04C9
:106180009C01B7FD7FC0AF3FB10511F00CF061C0BD
:1061900077FD67C06F3F710539F034F08FEF90E005
:1061A000909361048093600457FD61C04F3F510597
:1061B00039F034F08FEF90E090935F0480935E04A9
:1061C00037FD5BC02F3F310509F00CF463C08FEF42
:1061D00090E090935D0480935C045CC08081918129
:1061E00082599F4F8A179B070CF07ACF109709F4BA
:1061F00077CFCD0101976FCF8081918182599F4FD9
:10620000821793070CF0BDCF2115310509F4B9CFE2
:10621000C9010197B1CF8081918182599F4F841725
:1062200095070CF093CF4115510509F48FCFCA01A2
:10623000019787CF8081918182599F4F8617970759
:106240000CF069CF6115710509F465CFCB01019799
:106250005DCF8FEF90E0909363048093620477FFAB
:1062600099CF109261041092600457FF9FCF109253
:106270005F0410925E0437FFA5CF10925D04109268
:106280005C0408C0109263041092620481CF0E94E3
:10629000BC15A8CE80910D089927AA27BB27BC0161
:1062A000CD0124EC39E040E050E00E942258DC01AE
:1062B000CB018093960390939703A0939803B09398
:1062C000990380910E089927AA27BB27BC01CD010D
:1062D0000E942258DC01CB01809392039093930398
:1062E000A0939403B093950308956F927F928F9239
:1062F0009F92AF92BF92CF92DF92EF92FF920F9355
:106300001F93CF93DF93C0E0D0E07E016E01109227
:10631000E603469AD093B604C093B504D093B40470
:10632000C093B30480E090E0A0E0B0E08093AD04BF
:106330009093AE04A093AF04B093B004D093C00484
:10634000C093BF04D093BE04C093BD04D093BC04DB
:10635000C093BB04D0937008C0936F08109283035E
:10636000109282031092FF030E94ED2F84E690E0CA
:106370000E94F2110E94ED2F8091E80780FF10C06B
:106380008091120390911303875B934008F07BC0C8
:1063900080911203909113038E5E924008F473C0B3
:1063A0001FE18AE090E00E94F21180910704909131
:1063B0000804C80FD91F80910B0490910C04E80EBB
:1063C000F91E8091090490910A04C80ED91E11503B
:1063D00017FFE7CFA701405F5F4F5695479556954A
:1063E00047955093C0044093BF049601205F3F4FF0
:1063F00036952795369527953093BE042093BD0496
:10640000CE01409696958795929582958F708927B3
:106410009F7089279093BC048093BB04909370086D
:1064200080936F083093BA042093B9045093B80452
:106430004093B70444E050E0DA010E94B158802D47
:10644000853020F180918B0890918C0897FD53C086
:106450006CE070E00E9461587093B4046093B304E0
:1064600080917B0890917C0897FD56C06CE070E0AD
:106470000E9461587093B6046093B50480918E07B2
:1064800090918F074DC00E946A158ACFDA010E9451
:10649000B158802D9927982F8827DA0111960E94EC
:1064A000B158202D820F911D9093B6048093B504AE
:1064B000DA0112960E94B158802D9927982F8827CB
:1064C000DA0113960E94B158202D820F911D9093EE
:1064D000B4048093B304DA0114960E94B158802D5D
:1064E0009927982F8827DA0115960E94B158202DF8
:1064F000820F911D15C0909581959F4F6CE070E0C3
:106500000E9461587093B4046093B30480917B0837
:1065100090917C0897FFAACF909581959F4FA6CF29
:10652000AA2797FDA095BA2FBC01CD010E94A857BC
:10653000DC01CB018093AD049093AE04A093AF0433
:10654000B093B0041092500810924F081092400877
:1065500010923F08109281081092800884E690E023
:106560000E94F2118091030490910404AA2797FDE0
:10657000A095BA2F9C01AD01220F331F441F551F58
:10658000220F331F441F551F280F391F4A1F5B1F3F
:10659000280F391F4A1F5B1F30937C0820937B080C
:1065A0008091050490910604AA2797FDA095BA2F23
:1065B0007C018D01EE0CFF1C001F111FEE0CFF1C57
:1065C000001F111FE80EF91E0A1F1B1FE80EF91EFF
:1065D0000A1F1B1FF0928C08E0928B088091F40731
:1065E000682E772488249924C9019C01442737FD0B
:1065F0004095542FC401B3010E9422585B016C01E5
:106600006093A7047093A8048093A9049093AA04AC
:106610009701442737FD4095542FC401B3010E94D0
:106620002258DC01CB0180939F049093A004A09397
:10663000A104B093A204A0928304B0928404C092F7
:106640008504D092860480937B0490937C04A0936D
:106650007D04B0937E041092770410927804109217
:10666000790410927A048091140390911503A091FB
:106670001603B0911703909391078093900710929F
:10668000FE031092FD0310926F041092700410929A
:1066900071041092720480916D0490916E04909335
:1066A0006C0480936B040E94415182E390E09093CC
:1066B000E9038093E80380910D089927AA27BB2757
:1066C000BC01CD0124EC39E040E050E00E942258AA
:1066D000DC01CB018856954CAF4FBF4F809396039A
:1066E00090939703A0939803B093990380910E0819
:1066F0009927AA27BB27BC01CD010E942258DC01A3
:10670000CB018856954CAF4FBF4F80939203909327
:106710009303A0939403B093950310927F03109278
:106720007E0380916D0490916E04AA2797FDA09539
:10673000BA2F20917A0330917B0340917C035091D2
:106740007D03BC01CD010E942258DC01CB01809366
:10675000870890938808A0938908B0938A081092BC
:1067600065041092640411E0109300010E94D65455
:1067700080912F04846080932F048FEF8093F10821
:106780001092F20880E28093F3088091E407E82FEA
:10679000FF27EE0FFF1FE255F84F8081918182594C
:1067A0009F4F90936304809362048091E507E82FE4
:1067B000FF27EE0FFF1FE255F84F8081918182592C
:1067C0009F4F90936104809360048091E607E82FC7
:1067D000FF27EE0FFF1FE255F84F8081918182590C
:1067E0009F4F90935F0480935E048091E707E82FAA
:1067F000FF27EE0FFF1FE255F84F808191818259EC
:106800009F4F90935D0480935C041093E60384E6AD
:1068100080935B04DF91CF911F910F91FF90EF90D8
:10682000DF90CF90BF90AF909F908F907F906F90B0
:10683000089580915204882381F580938E08809377
:1068400061088093740880935B0880935C08809350
:10685000760880937308809351088091C40388233D
:1068600001F58091C703882321F0809374088093F9
:106870005B088091C503882321F080935C08809396
:1068800076088091C603882321F080937308809353
:10689000510880912F048C7F09C080912F04816062
:1068A00005C080938E0880936108DBCF80932F040E
:1068B00080914108992790936307809362078091A4
:1068C0004E08992790936507809364078091770815
:1068D000992790936707809366078091720899279C
:1068E000909369078093680710922A0410922904F4
:1068F0000E94862108958091EB078B3F68F08B3FC3
:1069000009F45BC28C3F09F4F1C28D3F09F4B2C2B5
:106910008E3F21F480915C0480938E038091EA077E
:106920008B3F08F4EDC18B3F09F4E8C18C3F09F4BB
:10693000FBC28D3F09F47DC28E3F09F404C38091F0
:106940008F03882309F0E1C180938F038091EC07C6
:106950008B3F08F4E1C18B3F09F4DCC18C3F09F4A3
:10696000DDC28D3F09F468C28E3F09F4E9C280910F
:106970008D03882309F0D5C180938D038091EE07A4
:106980008B3F68F08B3F09F424C28C3F09F4C9C2E5
:106990008D3F09F44BC28E3F21F480915C048093BB
:1069A0008C038091F5078B3F68F08B3F09F402C29E
:1069B0008C3F09F483C28D3F09F435C28E3F21F428
:1069C00080915C0480938B038091F6078B3F08F4E1
:1069D000AFC18B3F09F4AAC18C3F09F4AEC28D3F11
:1069E00009F433C28E3F09F4B7C2809189038B301A
:1069F00008F4A3C18F3F11F4809389038091F707B6
:106A00008B3F68F08B3F09F4DBC18C3F09F47DC2FA
:106A10008D3F09F417C28E3F21F480915C0480936E
:106A200088038091F8078B3F68F08B3F09F4CBC156
:106A30008C3F09F467C28D3F09F4F2C18E3F21F407
:106A400080915C0480938A032091FD072B3F08F41A
:106A500078C12B3F09F473C12C3F09F444C22D3F88
:106A600009F4EDC12E3F09F47AC22091860380918A
:106A7000FE078B3F08F06CC1809343048091FF07B1
:106A80008B3F68F08B3F09F4B3C18C3F09F428C2F7
:106A90008D3F09F4E9C18E3F21F480915C0480931D
:106AA0004204809100088B3F68F08B3F09F4A3C13A
:106AB0008C3F09F412C28D3F09F4E5C18E3F21F4E9
:106AC00080915C0480934104809101088B3F68F0C1
:106AD0008B3F09F45DC18C3F09F4E4C18D3F09F49B
:106AE000DBC18E3F21F480915C048093400480914F
:106AF00012088B3F68F08B3F09F44DC18C3F09F4BD
:106B0000D4C18D3F09F4CBC18E3F21F480915C0448
:106B100080933F04809113088B3F68F08B3F09F40A
:106B20003DC18C3F09F4C4C18D3F09F4AFC18E3F14
:106B300021F480915C0480933E04809114088B3F83
:106B400068F08B3F09F42DC18C3F09F4B4C18D3F2F
:106B500009F49FC18E3F21F480915C0480933D0431
:106B6000809115088B3F68F08B3F09F41DC18C3F65
:106B700009F4BFC18D3F09F480C18E3F21F480919B
:106B80005C0480933C04809102088B3F68F08B3F4B
:106B900009F40DC18C3F09F49DC18D3F09F470C10A
:106BA0008E3F21F480915C048093850380910708D7
:106BB0008B3F68F08B3F09F421C18C3F09F4ABC1D6
:106BC0008D3F09F424C18E3F21F480915C048093B1
:106BD000840380910A088B3F68F08B3F09F411C150
:106BE0008C3F09F489C18D3F09F414C18E3F21F413
:106BF00080915C048093830380910B088B3F68F045
:106C00008B3F09F4E9C08C3F09F45EC18D3F09F464
:106C100025C18E3F21F480915C0480938203809192
:106C20000C088B3F68F08B3F09F4D9C08C3F09F406
:106C30004EC18D3F09F415C18E3F21F480915C0453
:106C400080938103809111088B3F68F08B3F09F49A
:106C5000C9C08C3F09F46BC18D3F09F4F9C08E3F68
:106C600021F480915C0480938003809117088B3F0E
:106C700008F47EC08B3F09F479C08C3F09F45AC1F7
:106C80008D3F09F4E8C08E3F09F460C180916A0825
:106C9000823008F472C08F3F11F480936A088091AB
:106CA00019088B3F08F46DC08B3F09F468C08C3F16
:106CB00009F425C18D3F09F4B0C08E3F09F449C1E4
:106CC00080917E08823008F461C08F3F11F4809378
:106CD0007E0880912A088B3F70F08B3F09F485C0B5
:106CE0008C3F09F415C18D3F09F48EC08E3F09F029
:106CF00039C180915C0480938F0834C18091620413
:106D000080938F03882309F41FCE843608F41ECEA7
:106D100084E61ACE8091620480938D03882309F45F
:106D20002BCE843608F42ACE84E626CE80916204E7
:106D3000809389038B3008F05DCE8AE05DCE209190
:106D40006204209386038091FE078B3F08F494CE63
:106D50008B3FE1F18C3F09F4B4C08D3F09F487C04B
:106D60008E3F09F08BCE80915C0486CE80916204C8
:106D700080936A08823008F08ECF81E08ECF8091B8
:106D8000620480937E08823008F09FCF81E09FCF1D
:106D900080916204AACE80916204BACE809162048E
:106DA000CACE80916204DACE80916204EACE8091EC
:106DB0006204FACE8091620405CE80916204ACCD6B
:106DC000809162042CCE809162043CCE809162045A
:106DD00053CE80916204E3CD809162041ECF8091F6
:106DE00062042ECF809162043ECF8091620483CFF3
:106DF0008091620454CE8091620464CE80916204DA
:106E0000E6CE80916204F6CE80915E0474CF8091CC
:106E10005E04DDCE80915E04EDCE80915E04B1CF44
:106E200080915E040FCE80915E04CCCD80915E0493
:106E3000B6CD80915E0464CF80915E046DCF2091C9
:106E40005E047FCF80915E04EACD80915E0470CFB6
:106E500080915E0408CF80915E048ACF80915E04A9
:106E6000DCCE80915E04ECCE80915E0418CE8091E1
:106E70005E0402CE80915E044FCD80915E0481CE8F
:106E800080915E0491CE80915E041CCE80915E0460
:106E900052CE80915E0462CE80915E0426CE8091B7
:106EA0005E0436CE8091600420CE8091600430CEA6
:106EB0008091600440CE8091600450CE8091600447
:106EC00081CD80916004D8CD80916004A6CE809160
:106ED0006004B6CE8091600467CE80916004F2CDEC
:106EE00080916004DCCD209160042BCF8091600400
:106EF00013CD8091600445CE809160047BCE80915B
:106F000060043FCF809160049DCD8091600487CD67
:106F100080916004F0CE8091600459CE809160042D
:106F2000FBCE809160043BCD80916004E9CE8091DE
:106F3000600499CE809160041BCF80916004F8CEEC
:106F400080915C04E9CE80915C04DACE80915C048F
:106F50000FCF80915C0415CF80915C04E9CE209125
:106F60005C04EFCE33272F5F3F4F8CE398E2B901EB
:106F70000E94615870939103609390038091F3078E
:106F800080937F088091F2078093550808952F928F
:106F90003F924F925F926F927F928F929F92AF92A9
:106FA000BF92CF92DF92EF92FF920F931F93CF93F6
:106FB000DF93CDB7DEB7E6970FB6F894DEBF0FBE0E
:106FC000CDBF0E946426209101012C3008F09FC2A1
:106FD000299AA0905304B0905404BA82A982809157
:106FE000550899270A96A816B90614F49A83898336
:106FF00080915B04843608F08CC28091060388235C
:1070000009F465C48091F5049091F604009711F499
:107010000C94FD4701979093F6048093F5042A3071
:1070200011F40C940548243111F40C940548289867
:107030008091300490913104895E934010F40C9457
:10704000F9478091FA07282F33273A83298381E073
:10705000809368048091E007A82FBB27AA0FBB1F6D
:10706000FD01EC53F84F118210828091E107282F27
:107070003327220F331FC9018C53984FFC01118213
:107080001082A255B84F11961C921E922255384F6D
:10709000D90111961C921E928091E307E82FFF27D9
:1070A000EE0FFF1FE255F84F118210828091790395
:1070B000815080937903809179038F3F31F0F09173
:1070C0006804F98BFF2309F417C40E947B34809174
:1070D000160590911705AC01440F551F480F591F15
:1070E0000091E007A02FBB27AA0FBB1FFD01E255AF
:1070F000F84FF090EF07CF2CDD24808191818C9D9B
:1071000050018D9DB00C9C9DB00C11244A0D5B1D4F
:1071100057FF02C00C94E84D5595479555954795F6
:10712000AC53B84F8091F007682F77278D919C91D1
:10713000869F9001879F300D969F300D1124240F5C
:10714000351F309317052093160580913E059091C9
:107150003F0540913A0550913B05840F951F281B30
:10716000390B30935A04209359048091180590915B
:107170001905AC01440F551F480F591F1091E10725
:10718000A12FBB27AA0FBB1FFD01E255F84F80813D
:1071900091818C9D90018D9D300D9C9D300D112411
:1071A000420F531F57FF02C00C94E44D559547956D
:1071B00055954795AC53B84F8D919C91869F900102
:1071C000879F300D969F300D1124240F351F30936B
:1071D00019052093180580913C0590913D0540913B
:1071E000380550913905840F951F281B390B3093B2
:1071F0005804209357048091E307E82FFF27EE0FF0
:10720000FF1FE255F84F80819181909581959F4FA6
:107210008330910514F40C94904702979093560490
:10722000809355048091E207E82FFF27EE0FFF1FA0
:10723000E255F84FC080D18048E750E0C40ED51E1B
:10724000809189039927AA2797FDA095BA2FBC01A1
:10725000CD010E94A857DC01CB0120E030E040E2E4
:1072600051E4BC01CD010E944957DC01CB01BC01B6
:10727000CD010E948B57DC01CB0180938508609182
:1072800088038091AF0680FF06C080918F08813807
:1072900010F00C947C48D0925404C0925304809116
:1072A00053049091540497FF02C00C94EC4DB0909D
:1072B000E807B98EB2FC02C00C94D6471092710850
:1072C0004091590450915A04CA0157FF02C00C94CE
:1072D000E147959587959595879597FF02C00C9402
:1072E000EA4720913404309135042817390714F007
:1072F0000C949847CA0157FF02C00C94384E97FF70
:1073000002C00C943D4EBC017595679575956795C7
:107310006536710514F40C949B4764E670E0409167
:10732000570450915804CA0157FD02C00C94A44759
:107330000396959587959595879597FD02C00C9432
:10734000AC47909581959F4F209132043091330442
:107350002817390714F40C94B547C9010197C09058
:107360006804C98ACC2011F40C94CC4710923504DF
:10737000109234041092330410923204E12FFF274C
:10738000EE0FFF1FE255F84F40910808242F3327D6
:10739000808191812817390734F480912B0882FF6E
:1073A00002C00C947148E12FFF27EE0FFF1FE2553A
:1073B000F84F842F992720910908821B9109208179
:1073C00031812817390714F410924704E12FFF2761
:1073D000EE0FFF1FE255F84F842F992722273327FE
:1073E000281B390B808191818217930734F4809197
:1073F0002B0883FF02C00C946C48809146048823BC
:1074000091F0E12FFF27EE0FFF1FE255F84F80911B
:1074100009089927841B91092081318182179307DC
:1074200014F40C940A4DE02FFF27EE0FFF1FE255D6
:10743000F84F242F3327808191812817390734F49E
:1074400080912B0880FF02C00C9466485091440440
:10745000552399F0E02FFF27EE0FFF1FE255F84F5D
:10746000842F992720910908821B9109208131815D
:107470002817390714F40C94054DE02FFF27EE0F61
:10748000FF1FE255F84F842F992722273327281B07
:10749000390B808191818217930734F480912B08F6
:1074A00081FF02C00C94614880914504882391F0CB
:1074B000E02FFF27EE0FFF1FE255F84F80910908DC
:1074C0009927841B9109208131818217930714F435
:1074D0000C94014D80914704882331F48091460437
:1074E000882311F40C945E4891E0552331F4809187
:1074F0004504882311F40C94764881E08093490474
:10750000109248041092470410924604F8C129983A
:1075100060CD80915B048D3808F4C8CD109268046A
:107520009091FB0782E3989FC00111249093F60489
:107530008093F504E981FA81B99714F00C94F1482D
:1075400080913004909131048F3F910519F010F033
:107550000C94DD4D1092D9041092DA041092DB04E1
:107560001092DC041092DD041092DE041092DF040D
:107570001092E0048A3F910511F40C94484F309129
:10758000E207E32FFF27EE0FFF1FE255F84F808140
:107590009181813591050CF4E9C040915204442356
:1075A00009F0E4C08091E307E82FFF27EE0FFF1FEB
:1075B000E255F84F808191818C34910514F40C943C
:1075C000B74E8091F7048F5F893C10F40C94A24F62
:1075D0002C3010F00C9424502998109252041092E0
:1075E000F70410923104109230040091E007E02F6C
:1075F000FF27EE0FFF1FE255F84F808191818734FE
:10760000910514F00C9451501091E107E12FFF27E0
:10761000EE0FFF1FE255F84F808191810190F081BC
:10762000E02DF7FF02C00C94C550E734F1050CF4CF
:1076300070C021E0A12FBB27AA0FBB1FA255B84FD6
:107640008D919C9111978734910544F0E02FFF278D
:10765000EE0FFF1FE255F84F808191818D919C9133
:107660008734910564F0E02FFF27EE0FFF1FE255EE
:10767000F84F80819181873491050CF022E0E12F51
:10768000FF27EE0FFF1FE255F84F8081918186346E
:10769000910564F4E02FFF27EE0FFF1FE255F84F2E
:1076A00080819181873491050CF023E0E12FFF2741
:1076B000EE0FFF1FE255F84F808191818A5B9F4F4B
:1076C00064F4E02FFF27EE0FFF1FE255F84F808193
:1076D0009181873491050CF024E0E12FFF27EE0F14
:1076E000FF1FE255F84F808191818A5B9F4F64F4C0
:1076F000E02FFF27EE0FFF1FE255F84F80819181A9
:10770000863491050CF425E0822F0E94CD02109161
:10771000E107E12FFF27EE0FFF1FE255F84F8081B1
:1077200091810190F081E02DF7FF02C00C949D50F3
:107730007E9714F00C94DE4F8091E007E82FFF272E
:10774000EE0FFF1FE255F84F808191818A5B9F4FBA
:1077500014F00C94DE4F81E08093A30688EE93E052
:107760009093E9038093E8033091E207E32FFF272A
:10777000EE0FFF1FE255F84F808191818B5A9F4F8A
:107780000CF094CCD090E307ED2DFF27EE0FFF1FF8
:10779000E255F84F80819181855B9F4F14F00C94E6
:1077A000F54D8091F8048F5F893C10F40C94954E50
:1077B00088EC8093F80481E090E09093310480930A
:1077C000300481E0809352041092E1041092E204AC
:1077D0001092E3041092E40410927704109278045B
:1077E0001092790410927A04109273041092740427
:1077F00010927504109276048091F407E82EFF240D
:107800000027112780917B0890917C089C014427D8
:1078100037FD4095542FC801B7010E942258DC0162
:10782000CB018093870490938804A0938904B0933C
:107830008A0480918B0890918C089C01442737FD25
:107840004095542FC801B7010E942258DC01CB019A
:1078500080937F0490938004A0938104B09382046A
:107860008091A7049091A804A091A904B091AA04C2
:107870008093830490938404A0938504B09386043A
:1078800080919F049091A004A091A104B091A204C2
:1078900080937B0490937C04A0937D04B0937E043A
:1078A0001092D9041092DA041092DB041092DC04D6
:1078B0001092DD041092DE041092DF041092E004B6
:1078C00080912F04886080932F040C94F74D809151
:1078D000090390910A038F5F9F4F09F093CB88E9CA
:1078E0009AE39093E9038093E80380E09CE090930F
:1078F0000A038093090386CBD090E807D98E0091C4
:1079000048040B8B002321F480914904882369F0FB
:1079100080910708992729813A818217930714F4E7
:107920009A83898381E08093660439893323B9F08F
:10793000109256041092550410925A041092590451
:1079400010925804109257048AE58093850888E7BE
:107950008093710810924804109249041B8A209168
:1079600064083091650840916608509167088091DD
:10797000A7049091A804A091A904B091AA048CA393
:107980009DA3AEA3BFA3280F391F4A1F5B1F809181
:107990006B0890916C08A0916D08B0916E08A09052
:1079A0009F04B090A004C090A104D090A204A8A20B
:1079B000B9A2CAA2DBA28A0D9B1DAC1DBD1DC09041
:1079C0005708D0905808E0905908F0905A08CDA672
:1079D000DEA6EFA6F8AAE090A304F090A40400911C
:1079E000A5041091A604EC8EFD8E0E8F1F8FADA402
:1079F000BEA4CFA4D8A8AE0CBF1CC01ED11EADA67D
:107A0000BEA6CFA6D8AA209047083090480840903C
:107A1000490850904A08C0909B04D0909C04E09084
:107A20009D04F0909E04C9A6DAA6EBA6FCA62C0C39
:107A30003D1C4E1C5F1CD0904904D88EDD2009F0FF
:107A4000AEC30B89002309F0AAC380936B089093FF
:107A50006C08A0936D08B0936E082093640830936F
:107A60006508409366085093670880918E0790914F
:107A70008F07815092400CF40EC19090F1084FEFA7
:107A8000941611F40C940E4D8091F407A82EBB248B
:107A9000CC24DD246CA17DA18EA19FA1A60195011E
:107AA0000E94965879018A0180917B0890917C0808
:107AB000AA2797FDA095BA2FE81AF90A0A0B1B0B03
:107AC00068A179A18AA19BA1A60195010E9496585F
:107AD00059016A0180918B0890918C08AA2797FD23
:107AE000A095BA2FA81AB90ACA0ADB0A892D9927C4
:107AF00087FD9095A92FB92F8D839E83AF83B8877B
:107B0000BC01CD01A80197010E94225897FF02C035
:107B10000C94684F3B014C01F9E09594879477945D
:107B20006794FA95D1F76D817E818F819885A60142
:107B300095010E94225897FF02C00C94624F5B018E
:107B40006C01E9E0D594C794B794A794EA95D1F76E
:107B50008091340490913504813491053CF48091F6
:107B600032049091330481349105C4F0D401C301EF
:107B700097FE02C00C948D4F3C014D019594879463
:107B800077946794D601C501D7FE02C00C94884F44
:107B90005C016D01D594C794B794A7948091E307D5
:107BA000E82FFF27EE0FFF1FE255F84F80819181EC
:107BB0000190F081E02DF7FF02C00C945D4F7A97A1
:107BC000A4F0C401B30123E030E040E050E00E94A3
:107BD000965839014A01C601B50123E030E040E082
:107BE00050E00E94965859016A018091F308282FAD
:107BF000332727FD3095432F532F2615370548058A
:107C0000590514F439014A01992787FD90959095FB
:107C100081959F4FAA2797FDA095BA2F68167906E0
:107C20008A069B0614F43C014D012A153B054C05C0
:107C30005D0514F459016A01A816B906CA06DB06E7
:107C400014F45C016D018091870490918804A091E7
:107C50008904B0918A0486199709A809B909809303
:107C6000870490938804A0938904B0938A04809138
:107C70007F0490918004A0918104B09182048A19BC
:107C80009B09AC09BD0980937F0490938004A09365
:107C90008104B09382048091FB039091FC038F3F99
:107CA000910509F008F4DFC2F88DFF2329F40B8950
:107CB000002311F40C94084960E070E06B0110920D
:107CC000660418A6E0906408F090650800916608C4
:107CD0001091670860906B0870906C0880906D0838
:107CE00090906E08909171089A8B992311F00C94E2
:107CF000EF4710924D0410924C0410924B041092D6
:107D00004A04E0922005F092210500932205109389
:107D10002305609224057092250580922605909295
:107D200027051092970410929804109299041092CB
:107D30009A04109293041092940410929504109255
:107D4000960410928F041092900410929104109255
:107D500092041092640810926508109266081092BE
:107D6000670810926B0810926C0810926D081092C0
:107D70006E081092570810925808109259081092E5
:107D80005A08109247081092480810924908109219
:107D90004A081092FC031092FB03009155041091C5
:107DA0005604C80117FD80C2409774F068EE262E75
:107DB00063E0362E30929B0320929A03298D24FD96
:107DC00003C081E080930D05B090F107CB2CDD243A
:107DD000EE24FF24B801882777FD8095982F98011D
:107DE00017FF02C00C941648442737FD4095542FC6
:107DF0000E9422589B01AC01C701B6010E94225883
:107E000097FF02C00C94104859E095958795779597
:107E100067955A95D1F79B018B2D9927809FA001DB
:107E2000819F500D909F500D1124CA0157FF02C031
:107E30000C940D489595879595958795280F391F32
:107E4000C901AA2797FDA095BA2F8093E1049093CA
:107E5000E204A093E304B093E4042091770430910A
:107E600078044091790450917A04281B390B4A0B0D
:107E70005B0B213563EC360760E0460760E0560790
:107E80000CF48DC780E593ECA0E0B0E0809377041C
:107E900090937804A0937904B0937A048091770446
:107EA00090917804A0917904B0917A04805B9C430E
:107EB000AF4FBF4F64F480EB9CE3AFEFBFEF809315
:107EC000770490937804A0937904B0937A04C090D7
:107ED0006D04D0906E04C114D10409F4EAC1F98D87
:107EE000F3FFE7C18CA19DA1AEA1BFA1B7FF02C066
:107EF0000C94D74D09E0B595A795979587950A9568
:107F0000D1F79CAB8BAB97FF02C00C94604E88A15D
:107F100099A1AAA1BBA1B7FF02C00C945A4E19E0C7
:107F2000B595A795979587951A95D1F7BC0197FFB9
:107F300002C00C94554EEBA8FCA8E616F70614F404
:107F40007CAB6BAB6BA97CA977FF02C00C94514E44
:107F50002B0155944794559447945594479408940D
:107F6000411C511C0CE112E0C00ED11E760100270D
:107F7000F7FC0095102F24EE3DEFC20ED31E60904B
:107F80008708709088088090890890908A0880916E
:107F90007A0390917B03A0917C03B0917D038C8B3D
:107FA0009D8BAE8BBF8BC401B3012C893D894E895B
:107FB0005F890E949658E21AF30A040B150BC80158
:107FC000B70128E631E040E050E00E949658DC011D
:107FD000CB018C01045B1040A0908008B090810818
:107FE000C501B7FE02C00C94404E8138910514F0D3
:107FF00000E010E020909A0330909B03211431049C
:10800000A1F4ABA9BCA9599784F480916404909120
:108010006504800F911F90936504809364048091A0
:108020000D05882311F00C94984EC801880F991FF4
:10803000880F991F880F991FB2010E9461589B01F8
:10804000442737FD4095542F260D371D481D591DD7
:1080500020938708309388084093890850938A08B2
:10806000F0908B036F2D7727EBA9FCA96E9FC001C1
:108070006F9F900D7E9F900D112497FF02C00C946E
:108080004E4E959587959595879595958795959558
:10809000879595958795681B790B7CAB6BAB77FFC4
:1080A00002C00C94464E2114310411F00C943F4F41
:1080B000009134041091350480913204909133047E
:1080C000080F191F17FF02C00C94924F15950795C2
:1080D0001595079515950795005C1F4FCA01B901C5
:1080E0002C893D894E895F890E949658DA01C90121
:1080F00020916B0430916C04442737FD4095542F38
:10810000821B930BA40BB50B845E9D4FAF4FBF4FEB
:10811000BC01CD0128E631E040E050E00E949658D5
:10812000DC01CB01845B90404BA95CA9849F90014A
:10813000859F300D949F300D1124C901B8010E9414
:10814000615883E0F89ED0011124BCABABABA617FD
:10815000B70714F40C94694E8BA99CA9909581954E
:108160009F4F681779070CF4BC01CB01AA2797FD34
:10817000A095BA2F2091770430917804409179042A
:1081800050917A04820F931FA41FB51F8093770428
:1081900090937804A0937904B0937A048EC01092DF
:1081A0009704109298041092990410929A041092D5
:1081B00093041092940410929504109296041092D5
:1081C0006408109265081092660810926708109271
:1081D0006B0810926C0810926D0810926E082224A1
:1081E000332421012DA63EA64FA658AA80918704CC
:1081F00090918804A0918904B0918A0480938304AB
:1082000090938404A0938504B093860480917F04A6
:1082100090918004A0918104B091820480937B04AA
:1082200090937C04A0937D04B0937E041092FC0391
:108230001092FB0310924B0410924A0410924D04CA
:1082400010924C04188D112309F025CD2B8922237F
:1082500009F40BCC8091FB039091FC038F3F9105B7
:1082600011F008F021CDADA4BEA4CFA4D8A8A0924F
:108270005708B0925808C0925908D0925A082092D4
:108280004708309248084092490850924A08B090F6
:108290007108BA8A0091660408A7009155041091EC
:1082A0005604C80117FF80CD88279927801B910BA2
:1082B0007BCDA0908008B090810880910C05815002
:1082C0008F3F09F475C580930C05B8A5BB2381F0D9
:1082D0001092DD041092DE041092DF041092E0048C
:1082E0001092D9041092DA041092DB041092DC048C
:1082F000E88DEE2309F050C5FA898F2F9927AA2718
:10830000BB27BC01CD012CA13DA14EA15FA10E94C4
:108310002258DC01CB01BC01CD0128EF3AE240E05C
:1083200050E00E94965819010B89002309F031C5CD
:108330001A89812F9927AA27BB27BC01CD0128A123
:1083400039A14AA15BA10E942258DC01CB01BC01EA
:10835000CD0128EF3AE240E050E00E9496583C837D
:108360002B830091420810914308093C11050CF43D
:1083700008C508EC10E01093430800934208609091
:108380004C0870904D0839EC631671040CF4EEC47F
:10839000B8EC6B2E712C70924D0860924C08809155
:1083A0004F0890915008AA2797FDA095BA2F2091C9
:1083B0008508C22EDD24EE24FF24BC01CD01A701D7
:1083C00096010E9422589B01AC01C801AA2797FD83
:1083D000A095BA2FF7E0880F991FAA1FBB1FFA9527
:1083E000D1F7280F391F4A1F5B1F57FD11C6E6E062
:1083F0005595479537952795EA95D1F74101820E16
:10840000931E240180913F0890914008AA2797FD70
:10841000A095BA2FBC01CD01A70196010E94225858
:108420009B01AC01C301AA2797FDA095BA2F77E065
:10843000880F991FAA1FBB1F7A95D1F7280F391FE4
:108440004A1F5B1F57FD1AC666E05595479537953D
:1084500027956A95D1F76B807C80620E731E7CAA8B
:108460006BAAAA0CBB1CAA0CBB1CC501AA2797FDB2
:10847000A095BA2FBC01CD01A70196010E942258F8
:108480007B018C0197FDF1C546E015950795F794A2
:10849000E7944A95D1F7EA898E2F9927AA27BB2717
:1084A00020918B0430918C0440918D0450918E0466
:1084B000BC01CD010E942258DC01CB01BC01CD01E1
:1084C00020EE3BEA40E050E00E9496585701A20E91
:1084D000B31EC501F1E08F16F0E49F0624F0812C55
:1084E00030E4932E240100E0801600EC90060CF09E
:1084F00038C4812C20EC922E9092500880924F0824
:1085000011E0611610E471062CF0612C00E4702E6D
:108510007CAA6BAA20E0621620EC72060CF01AC44A
:10852000612C10EC712E7092400860923F0851E06F
:10853000A51650E4B50624F0A12CB0E4BB2EC5016D
:1085400060E0A61660ECB6060CF0FFC3A12CA0EC10
:10855000BA2EB0928108A092800889819A81880FF2
:10856000991F880F991F9A838983A98D8A2F99272C
:1085700080FFEBC081FF18C080912B0899279C01D8
:108580002071307084FF1FC680918E0381558B331C
:1085900008F019C68091B70381508F3F11F40C94F5
:1085A0006C4E8093B7031BC020918E0380917E0395
:1085B00090917F03820F911D2091ED073327829FB9
:1085C000F001839FF00D929FF00D1124CF0144978D
:1085D00090934F0480934E0481E080936704209130
:1085E000500430915104F989FF2321F010924F0477
:1085F00010924E04890120914E0430914F042017AF
:1086000031070CF0A2C080916704882309F49DC053
:10861000021B130B80918D039927089F6001099F0E
:10862000D00C189FD00C1124C601D7FE02C00C94A8
:108630006E4F8C011595079515950795E980FA8081
:10864000E01AF10A87018091FD039091FE0397FFE4
:1086500002C00C947B4F95958795081B190BC09011
:108660006F04D0907004E0907104F0907204F7FEF3
:1086700002C00C94714F67E0F594E794D794C794C7
:108680006A95D1F780918C03282F332744275527EB
:10869000C701B6010E94225897FF02C00C94824F76
:1086A00055E095958795779567955A95D1F731E07F
:1086B0006931730714F40C94134E68E171E0061BE2
:1086C000170B8091FA049091FB049C01229532953E
:1086D000307F3227207F3227281B390B200F311F94
:1086E00037FF02C00C947E4FA901559547955595CB
:1086F00047955595479555954795BA018091E90756
:10870000282F3327220F331F220F331F42175307FF
:1087100074F489819A818217930714F0A901B90131
:10872000A981BA81A217B30714F4AD01BD01E98193
:10873000FA81E417F50714F00C941D4EAF01F09385
:10874000FB04E093FA045A83498350907F08852DF7
:108750009927880F991F880F991F80559040C980CD
:10876000DA808C159D0514F49A838983E980FA8058
:10877000F0925907E09258078091E1049091E20449
:10878000A091E304B091E404880F991FAA1FBB1FB6
:10879000880F991FAA1FBB1FA81AB90ABAAAA9AAAB
:1087A0008701013A11050CF4BCC2C701F7FE02C0F3
:1087B0000C94F24D9595879529A93AA982179307AC
:1087C00014F49AAB89AB909581959F4F49A95AA90A
:1087D0004817590714F49AAB89AB252D3327220F7C
:1087E000331F220F331FC90149815A81841B950B06
:1087F000A9A9BAA98A179B0714F49AAB89AB698116
:108800007A81621B730BE9A9FAA9E617F70714F43A
:108810007AAB69AB8091590490915A048401081B8A
:10882000190B1093630800936208FA89FF2309F477
:1088300072C2281A390AC101AA2797FDA095BA2F3A
:108840002091D9043091DA044091DB045091DC048A
:10885000820F931FA41FB51F8093D9049093DA044D
:10886000A093DB04B093DC046091D9047091DA0426
:108870008091DB049091DC0461302AEF720720E0E4
:10888000820720E0920774F080E09AEFA0E0B0E069
:108890008093D9049093DA04A093DB04B093DC04B2
:1088A000BC01CD01603036E073073FEF83073FEF37
:1088B000930774F480E096E0AFEFBFEF8093D904A4
:1088C0009093DA04A093DB04B093DC04BC01CD01E7
:1088D000C0909003D09091039601442737FD4095B6
:1088E000542F0E9496587801E20EF31EB090800338
:1088F0006B2D77278827992729A93AA937FDB1C376
:1089000037FD9AC33595279549815A81240F351F24
:10891000442737FD4095542F0E94225897FD9CC351
:1089200056E095958795779567955A95D1F79B0170
:108930006E157F050CF47B0166277727621B730B8E
:10894000E616F7060CF47B018091570490915804C9
:108950008301081B190B10933E0800933D085A89A8
:10896000552309F4D2C1AB81BC81A81BB90BFD0111
:10897000CF01AA2797FDA095BA2F2091DD04309151
:10898000DE044091DF045091E004820F931FA41F86
:10899000B51F8093DD049093DE04A093DF04B093B1
:1089A000E0046091DD047091DE048091DF04909119
:1089B000E0046130FAEF7F07F0E08F07F0E09F07F7
:1089C00074F080E09AEFA0E0B0E08093DD04909333
:1089D000DE04A093DF04B093E004BC01CD0160305D
:1089E00026E072072FEF82072FEF920774F480E0E2
:1089F00096E0AFEFBFEF8093DD049093DE04A09389
:108A0000DF04B093E004BC01CD019601442737FD9B
:108A10004095542F0E949658020F131F6B2D7727F5
:108A20008827992729A93AA937FD42C337FD2BC3C7
:108A30003595279549815A81240F351F442737FDE5
:108A40004095542F0E94225897FD2DC326E09595FE
:108A50008795779567952A95D1F79B0160177107E0
:108A60000CF48B0166277727621B730B0617170719
:108A70000CF48B0149815A814E0D5F1D29A93AA939
:108A8000240F351FC90137FD17C39C013595279564
:108A900035952795A09155088A2F992728173907CA
:108AA0000CF426C1852D9927821793070CF420C159
:108AB00020938E089A0189A99AA9281B390BC9010C
:108AC00037FD21C19C0135952795359527958A2F2E
:108AD0009927281739070CF4FBC0852D9927821791
:108AE00093070CF4F5C02093610849815A81401B1B
:108AF000510B29A93AA9240F351FC90137FDF6C02A
:108B00009C0135952795359527958A2F9927281704
:108B100039070CF4D0C0852D9927821793070CF4E0
:108B2000CAC0209374089A01E9A9FAA92E1B3F0B29
:108B3000C90137FDCBC09C01359527953595279503
:108B40008A2F9927281739070CF4A4C0852D992757
:108B5000821793070CF49EC020935B0869817A8189
:108B60006E197F0929A93AA9260F371FA90137FDD8
:108B70009FC09A0135952795359527954A2F5527FA
:108B8000241735070CF479C0452D55274217530794
:108B90000CF473C020935C089B01A9A8BAA82A19F9
:108BA0003B09C90137FD74C09C0135952795359562
:108BB00027958A2F9927281739070CF44DC0852D42
:108BC0009927821793070CF447C020937608698190
:108BD0007A81600F711F29A93AA9260F371FA901B1
:108BE00037FD48C09A0135952795359527954A2F29
:108BF0005527241735071CF1452D552742175307D4
:108C0000F4F0209373089B01C9A8DAA82C193D0938
:108C1000C90137FD1FC09C013595279535952795CE
:108C20008A2F9927281739073CF0852D9927821715
:108C3000930714F00C9426519C010C9426519A0130
:108C4000209373089B01C9A8DAA82C193D09C90112
:108C500037FFE1CF0396DFCF9C012093760869812F
:108C60007A81600F711F29A93AA9260F371FA90120
:108C700037FFB8CF4D5F5F4FB5CF9A0120935C08A7
:108C80009B01A9A8BAA82A193B09C90137FF8CCFB3
:108C900003968ACF9C0120935B0869817A816E19C3
:108CA0007F0929A93AA9260F371FA90137FF61CFEC
:108CB0004D5F5F4F5ECF9C01209374089A01E9A934
:108CC000FAA92E1B3F0BC90137FF35CF039633CFCF
:108CD0009C012093610849815A81401B510B29A9AD
:108CE0003AA9240F351FC90137FF0ACF039608CFD1
:108CF0009C0120938E089A0189A99AA9281B390BF7
:108D0000C90137FFDFCE0396DDCEC801AA2797FD44
:108D1000A095BA2F32CEC801AA2797FDA095BA2FE9
:108D20008FCD89A99AA98135910524F0A0E5B0E0FD
:108D3000BAABA9ABE9A9FAA9E05BFF4F0CF04DCDA6
:108D400020EB3FEF3AAB29AB48CD9093810880935D
:108D5000800803CC4BA95CA95093400840933F087E
:108D6000E6CB5092500840924F08CACB48E36416B5
:108D70004FEF74060CF013CBA8E36A2EAFEF7A2EF8
:108D80000ACB2FEF083312070CF0F9CA08E31FEFE4
:108D9000F2CA1C821B82E5CA22243324C5CA20934E
:108DA0007704309378044093790450937A0476C81A
:108DB00088E180930C058091F4079927880F991F0B
:108DC000880F991F7C010027F7FC0095102F6CA1DC
:108DD0007DA18EA19FA1A80197010E949658309372
:108DE0004B0720934A0768A179A18AA19BA1A801FA
:108DF00097010E94965830934D0720934C0780911D
:108E00007B0890917C0897FD2BC795958795959544
:108E1000879590934F0780934E0780918B08909190
:108E20008C0897FD1BC79595879595958795909389
:108E3000510780935007B0925307A0925207209198
:108E4000500430915104309355072093540780917A
:108E50006F0490917004A0917104B0917204B7FDF9
:108E6000F8C619E0B595A795979587951A95D1F706
:108E70009093570780935607D0925B07C0925A078A
:108E800080911C0390911D0390935D0780935C0774
:108E90008091870890918808A0918908B0918A08EC
:108EA00020917A0330917B0340917C0350917D03A4
:108EB000BC01CD010E949658309361072093600752
:108EC00080915B04992790935F0780935E07809160
:108ED000A306992790937107809370078091E4030C
:108EE0009091E50390937307809372078091F20845
:108EF000992787FD909590938107809380078091B3
:108F00003E0590913F059093870780938607809157
:108F10003C0590913D059093890780938807D5C9BA
:108F20003FEF8E3F93070CF048C102960C940E3928
:108F3000B901615070404091570450915804CA01E2
:108F400057FF02C00C94983995958795959587950C
:108F500097FF02C00C94A139209132043091330460
:108F60002817390714F00C94AD39CA0157FD7CC697
:108F700097FD78C695958795959587958536910542
:108F800014F40C94AF3984E690E0C0906804C98A68
:108F9000CC2011F00C94B6399093330480933204B2
:108FA00070933504609334040C94BE396093710857
:108FB0004091590450915A04CA0157FD02C00C94C3
:108FC00069390396959587959595879597FD02C084
:108FD0000C947139909581959F4F0C947139D09272
:108FE0004D04C0924C0470934B0460934A040C945B
:108FF000813E109252040C945638109252041092F2
:1090000068042A3011F00C941338289A0C941838FC
:10901000215C3F4F4F4F5F4FEAC903960C941A3FB4
:1090200061507E4F8F4F9F4F0C94043F2227332770
:10903000201B310B0C94F43E2F5F3F4F3595279545
:1090400049815A81240F351F442737FD4095542FFD
:109050000E94225897FF64CC615C7F4F8F4F9F4FD7
:109060005FCC309521953F4F4BCC8FE390E0A0E053
:10907000B0E0E80EF91E0A1F1B1F06CA215C3F4F15
:109080004F4F5F4FE1C92F5F3F4F3595279549817E
:109090005A81240F351F442737FD4095542F0E94D5
:1090A000225897FFD3CC615C7F4F8F4F9F4FCECC20
:1090B000309521953F4FBACC0396E7CC982F0C946E
:1090C000753A81E0809345040C946A3A81E080937C
:1090D0004404582F0C943D3A81E0809346040C944C
:1090E000133A81E0809347040C94E6399093480446
:1090F000809349040C947F3C8091A806992787FDB2
:1091000090954F2D5527849FD001859FB00D949F3A
:10911000B00D1124CD012091590430915A04820FD1
:10912000931F90935A04809359048091A90699271C
:1091300087FD9095849FF001859FF00D949FF00D21
:109140001124CF012091570430915804820F931FAE
:1091500090935804809357048091AA06992787FD1D
:1091600090952091550430915604820F931F90934F
:109170005604809355048091AC06282F332727FD91
:1091800030958091ED079927289F5001299FB00CB9
:10919000389FB00C1124B0927F03A0927E0380917F
:1091A000AB0699278C159D0514F00C944B399093C0
:1091B0005404809353040C944F3910925604109227
:1091C00055040C941239232B29F480918E03823399
:1091D00008F4E0C981E08093670488EC8093B703CA
:1091E000FEC980915204882311F40C94A03A809116
:1091F000300490913104FFEF8F3F9F0711F40C94DE
:10920000A43A019690933104809330040C94A43ACC
:109210001091660418A7112311F00C945C3E209164
:1092200010082B8F222311F40C945C3E8DA59EA573
:10923000AFA5B8A98093570890935808A0935908F0
:10924000B0935A0820924708309248084092490843
:1092500050924A088091640890916508A091660830
:10926000B0916708B7FD26C7292E3A2E4B2E5524FC
:1092700047FC5A9420926408309265084092660830
:109280005092670880916B0890916C08A0916D08CE
:10929000B0916E08B7FD09C7892F9A2FAB2FBB2756
:1092A000A7FDBA9589879A87AB87BC8780936B089F
:1092B00090936C08A0936D08B0936E088091F407AA
:1092C000E82EFF240027112720919704309198045D
:1092D0004091990450919A04C801B7010E94225804
:1092E00097FDFCC6672E782E892E992487FC9A94C8
:1092F00020919304309194044091950450919604E8
:10930000C801B7010E94225897FDE3C6A72EB82EC8
:10931000C92EDD24C7FCDA94D201C1018619970950
:10932000A809B90920910F08E22EFF240027112770
:10933000BC01CD01A80197010E94965839014A014C
:1093400019012A0189859A85AB85BC858A199B09F3
:10935000AC09BD09BC01CD01A80197010E94965836
:10936000D401C30197FCB0C6892F9A2FAB2FBB271E
:10937000A7FDBA95BC01DA01C90157FDA0C6892F26
:109380009A2FAB2FBB27A7FDBA956C0180913404AF
:109390009091350481349105C4F480913204909108
:1093A0003304813491058CF48091E307E82FFF2783
:1093B000EE0FFF1FE255F84F808191810190F081FF
:1093C000E02DF7FDDEC67A972CF08091F1088F3FF3
:1093D00009F412C6EC8CFD8C0E8D1F8D2CA13DA1C5
:1093E0004EA15FA1E21AF30A040B150BEBAAFCAA2B
:1093F0000DAB1EABE092E504F092E6040093E704A7
:109400001093E80489A59AA5ABA5BCA5E8A0F9A08E
:109410000AA11BA18E199F09A00BB10B8D879E87F6
:10942000AF87B88B8093E9049093EA04A093EB0490
:10943000B093EC040BA91CA92DA93EA90093ED043F
:109440001093EE042093EF043093F0048093F10422
:109450009093F204A093F304B093F40480918304F6
:1094600090918404A0918504B0918604801B910B97
:10947000A20BB30B8093830490938404A093850480
:10948000B093860480917B0490917C04A0917D042C
:10949000B0917E042D853E854F855889821B930BA4
:1094A000A40BB50B80937B0490937C04A0937D0464
:1094B000B0937E043B8D332371F12091640430918D
:1094C00065042138310594F08091BB049091BC046F
:1094D00001969093BC048093BB0480916F08909197
:1094E000700801969093700880936F0820583F4F42
:1094F00094F48091BB049091BC0401979093BC04B8
:109500008093BB0480916F089091700801979093AD
:10951000700880936F08109265041092640431E023
:10952000A32EB12C8091200590912105A0912205B8
:10953000B0912305E0906408F090650800916608FA
:10954000109167088E199F09A00BB10B815E914B9A
:10955000AF4FBF4F8F539C49A040B04008F4FAC4AE
:109560008091F2088A8F89310CF471C52BA93CA92E
:109570004DA95EA9213080E1380780E0480780E0EE
:1095800058070CF4F7C480911C05882309F4ABC577
:1095900070934B0460934A04DA01C90157FD4EC62B
:1095A000B7FD47C629E0B595A795979587952A9564
:1095B000D1F7019690931B0580931A052BA93CA91E
:1095C0004DA95EA957FD30C639014A01A3E0959423
:1095D000879477946794AA95D1F71301240199E8A9
:1095E000691693E1790690E0890690E0990644F0C7
:1095F000F8E86F2EF3E17F2E812C912C13012401CA
:10960000D401C30197FC0BC6892F9A2FAB2FBB2720
:10961000A7FDBA95680F791F2BA93CA94DA95EA992
:10962000203080EF38078FEF48078FEF58070CF096
:10963000B7C480911D05882309F46DC570934B0450
:1096400060934A04DA01C90157FDE1C59C01AD01EF
:10965000B7FDD8C569E055954795379527956A9523
:10966000D1F780911A0590911B05820F931F90935B
:109670001B0580931A052BA93CA94DA95EA957FD8E
:109680009BC539014A0143E0959487947794679488
:109690004A95D1F798E769169CEE79069FEF8906FF
:1096A0009FEF990644F438E7632E3CEE732E3FEFAC
:1096B000832E3FEF932E60920E0570920F058092DD
:1096C000100590921105D401C30197FC70C5892F34
:1096D0009A2FAB2FBB27A7FDBA9560914A047091D2
:1096E0004B04680F791FAB8D2A2F332780911A0501
:1096F00090911B052817390724F430931B052093FC
:109700001A05BA8DBB2379F02B2F332727FD30950F
:1097100080911A0590911B052817390724F430937E
:109720001B0520931A052BA93CA94DA95EA9215020
:1097300034404040504074F08091BF049091C00488
:1097400020911A0530911B05820F931F9093C0043E
:109750008093BF042BA93CA94DA95EA920503C4F82
:109760004F4F5F4F74F48091BF049091C0042091DB
:109770001A0530911B05821B930B9093C0048093B4
:10978000BF04A1E0AA2EB12C20E030E040E050E080
:109790008091240590912505A0912605B09127057B
:1097A00060906B0870906C0880906D0890906E08C7
:1097B00086199709A809B909815E914BAF4FBF4F30
:1097C0008F539C49A040B04020F0FA8DF9310CF441
:1097D00053C48D859E85AF85B88981509041A04046
:1097E000B0400CF4CEC380911E05882309F483C4D5
:1097F000D0924D04C0924C048D859E85AF85B8896A
:10980000B7FDCDC4B7FDEFC4F9E0B595A795979521
:109810008795FA95D1F7019690931B0580931A05C9
:109820002D853E854F85588957FDD8C4E3E0559571
:10983000479537952795EA95D1F72938F3E13F0702
:10984000F0E04F07F0E05F070CF47CC488E893E198
:10985000A0E0B0E08093120590931305A093140547
:10986000B09315058091120590911305A0911405F0
:10987000B0911505B7FD8EC4892F9A2FAB2FBB274A
:10988000A7FDBA95C0904C04D0904D04C80ED91EC7
:109890002D853E854F855889203080EF38078FEF22
:1098A00048078FEF58070CF086C380911F05882367
:1098B00009F43DC4D0924D04C0924C04DA01C901B0
:1098C00057FD84C49C01AD01B7FD7BC4B9E055953B
:1098D000479537952795BA95D1F780911A059091BC
:1098E0001B05820F931F90931B0580931A052D85EE
:1098F0003E854F85588957FD7BC4A3E05595479514
:1099000037952795AA95D1F728379CEE39079FEF11
:1099100049079FEF59070CF01EC488E79CEEAFEF94
:10992000BFEF8093120590931305A0931405B09395
:1099300015058091120590911305A0911405B09121
:109940001505B7FD5AC4892F9A2FAB2FBB27A7FD4A
:10995000BA95C0904C04D0904D04C80ED91EAB8D62
:109960002A2F332780911A0590911B052817390754
:1099700024F430931B0520931A05BA8DBB2379F08C
:109980002B2F332727FD309580911A0590911B05C9
:109990002817390724F430931B0520931A052D85C9
:1099A0003E854F855889215034404040504074F0E6
:1099B0008091BD049091BE0420911A0530911B0541
:1099C000820F931F9093BE048093BD042D853E8526
:1099D0004F85588920503C4F4F4F5F4F14F00C94E7
:1099E000723E8091BD049091BE0420911A05309181
:1099F0001B05821B930B9093BE048093BD040C94B3
:109A0000723E109245040C946A3A1092440450E05D
:109A10000C943D3A109246040C94133A8091F4074A
:109A2000E82EFF24002711276CA17DA18EA19FA104
:109A3000A80197010E94965839014A0180917B083C
:109A400090917C08AA2797FDA095BA2F681A790AE9
:109A50008A0A9B0A68A179A18AA19BA1A801970102
:109A60000E94965859016A0180918B0890918C0848
:109A7000AA2797FDA095BA2FA81AB90ACA0ADB0A25
:109A8000D401C30197FC6EC23C014D0154E0959492
:109A90008794779467945A95D1F7D601C501D7FC7E
:109AA0005DC25C016D0144E0D594C794B794A7945E
:109AB0004A95D1F780913404909135048134910511
:109AC0000CF426C1C401B30123E030E040E050E0D3
:109AD0000E94965839014A01C601B50123E030E0E1
:109AE00040E050E00E94965859016A018091E307D6
:109AF000E82FFF27EE0FFF1FE255F84F808191817D
:109B00000190F081E02DF7FD31C27A97A4F0C401F5
:109B1000B30123E030E040E050E00E949658390164
:109B20004A01C601B50123E030E040E050E00E9468
:109B3000965859016A0191E26916710481049104F1
:109B40002CF030E2632E712C812C912CA0EE6A1641
:109B5000AFEF7A06AFEF8A06AFEF9A0644F420EE35
:109B6000622E2FEF722E2FEF822E2FEF922EB1E268
:109B7000AB16B104C104D1042CF090E2A92EB12C93
:109B8000C12CD12CE0EEAE16EFEFBE06EFEFCE0605
:109B9000EFEFDE0614F00C94233E80EEA82E8FEF3C
:109BA000B82E8FEFC82E8FEFD82E0C94233E815005
:109BB0009E4FAF4FBF4F0C947A3F80912F0482602D
:109BC00080932F040C94BF3A4D5F5F4F0C94D638AE
:109BD0004D5F5F4F0C948C381092540410925304D4
:109BE0000C94573901960C94DA431092F804ED2D39
:109BF000FF27EE0FFF1FE255F84F808191818C34D3
:109C000091051CF18091F9048F5F893C08F489C0AB
:109C10001092520488EC8093F9041092310410924F
:109C200030040C9456384EEF683E740714F00C94D0
:109C30005F4368EE7EEF0C945F437093FB04609388
:109C4000FA045A8349830C94A5431092F9040C94A6
:109C5000563881509E4FAF4FBF4F03C90396E3C89C
:109C60000396D3C8039686C9909581959F4F80C966
:109C7000909581959F4F0C947F3903960C9483396E
:109C8000882799278A199B090C94F53F84EF91E066
:109C900090939B0380939A030C945D414F960C9490
:109CA0004140695F7F4F0C94A83F709561957F4F4D
:109CB0000C949B3F81509E4FAF4FBF4F0C948F3FF2
:109CC0005C01B094A194B108B394BCAAABAA0C9463
:109CD000873FBD010C94B54080911203909113030E
:109CE000895E934008F422C19091FF039A509093AB
:109CF000FF0380919907891B87BD8CE291E09093C7
:109D0000E9038093E8038AEF8093B7030C94EF4252
:109D10008091320490913304813491050CF4E6CEA5
:109D2000D1CE8093F9040C9456388093F8045FCF19
:109D300088EC90E09093E9038093E803C601AA279A
:109D400097FDA095BA2FBC01CD012C893D894E8984
:109D50005F890E9422583B014C010E949658309323
:109D60006C0420936B0410920D050C9415408081B7
:109D70009181855B9F4F0CF0E9C08091F7048F5F64
:109D80008093F704893C10F40C94B63B2C3008F017
:109D9000D2C12998A4E0B0E08FEF082E0E94B958F4
:109DA000109252041092F704109231041092300471
:109DB0000E947531A4E0B0E08091B5049091B604A2
:109DC00097FDD9C1892F990F990B082E0E94B95878
:109DD000A5E0B0E08091B5049091B604082E0E94F1
:109DE000B958A6E0B0E08091B3049091B40497FD17
:109DF000BFC1892F990F990B082E0E94B958A7E06F
:109E0000B0E08091B3049091B404082E0E94B95838
:109E100008E010E08091AD049091AE04A091AF04F1
:109E2000B091B004BC01CD010E948B57DC01CB0185
:109E30009C0197FDA3C1832F992787FD9A95D8018F
:109E4000082E0E94B95809E010E08091AD0490916D
:109E5000AE04A091AF04B091B004BC01CD010E944A
:109E60008B57DC01CB01D801082E0E94B9580E9403
:109E700008030E9449263091E2070C94B63B0894EF
:109E80002108310830929B0320929A030C945D4183
:109E900081E080930D051092E1041092E20410928B
:109EA000E3041092E4041092770410927804109264
:109EB000790410927A040C94BF3AF095E195FF4F23
:109EC0000C94DF3D61507E4F8F4F9F4F0C949F3D10
:109ED00061507E4F8F4F9F4F0C948A3D03960C9498
:109EE00019432FE730E040E050E0C20ED31EE41EDD
:109EF000F51E0C943B4301960C942B43215F3F4F7E
:109F00000C947443615E7F4F8F4F9F4F0C9450436E
:109F10000196A11DB11D0C94C83D0196A11DB11D56
:109F20000C94BC3D095F1F4F0C9466408091120356
:109F3000909113038436910508F073C09091FF034C
:109F4000965FD5CE8093F7040C94B63B4093F7040C
:109F50000C94B63B9091F2089A8F08CB0F96A11DF6
:109F6000B11D9FCD0F96A11DB11D8ECDF095E19530
:109F7000FF4FCBCDB0921B05A0921A0510921C0585
:109F80004BCB209312053093130540931405509347
:109F90001505B0921B05A0921A0510921E0578CCEB
:109FA00020920E0530920F05409210055092110537
:109FB00010921D0598CB10921F05D1CC0E9408036A
:109FC0004CE560EE77E00E94B0028091E80780FFE8
:109FD00010C08091120390911303875B934038F473
:109FE00080911203909113038E5E924010F40E94B0
:109FF0006A150E9475313BCF70934B0460934A04FD
:10A00000D0924D04C0924C04CB0177FDAFC0BC018F
:10A0100075956795C601D7FCA7C06C01D594C79408
:10A02000D9C92091500430915104245130403093CB
:10A030004F0420934E042C5E3F4F1092670481E042
:10A040008093B7030C94F342299A0C94ED3A6092F2
:10A050000E0570920F0580921005909211051092D6
:10A060001B0510921A05B8EE2B2EB3E03B2E309252
:10A070009B0320929A0337CB20931205309313054C
:10A08000409314055093150510921B0510921A0564
:10A09000E8EE2E2EE3E03E2E30929B0320929A03B0
:10A0A0005ECC1091E1070C94193B81509F4FAF4F4C
:10A0B000BF4FF2C881509F4FAF4FBF4FD5C881509F
:10A0C0009F4FAF4FBF4F5BC981509F4FAF4FBF4FA7
:10A0D0004BC961507F4F8F4F9F4F18C961507F4FC1
:10A0E0008F4F9F4FFFC8B0921B05A0921A0581E0C9
:10A0F00080931C0591CA2093120530931305409359
:10A10000140550931505B0921B05A0921A0581E025
:10A1100080931E05BDCB20920E0530920F05409214
:10A1200010055092110581E080931D05DCCA81E085
:10A1300080931F0514CC299A2DCEF095E195FF4F01
:10A140000C94983B2093120530931305409314050B
:10A150005093150587CB2093120530931305409338
:10A16000140550931505E5CB019657CF01964FCFB7
:10A1700081509F4F3ECE81509F4F24CE21503F4F64
:10A180005ACEF095E195FF4F1EC9F095E195FF4F2E
:10A190000C94153B81509F4FAF4FBF4F6DCBB09587
:10A1A000A095909581959F4FAF4FBF4F2BCB81507E
:10A1B0009F4FAF4FBF4F8BCA295F3F4F4F4F5F4FEE
:10A1C00060CA21503E4F4F4F5F4F80CBB095A09556
:10A1D000909581959F4FAF4FBF4F74CB295F3F4FF5
:10A1E0004F4F5F4F23CB81509E4FAF4FBF4F0CCB94
:10A1F000295F3F4F4F4F5F4F80CB81509F4FAF4FF5
:10A20000BF4FA1CB21503E4F4F4F5F4F23CAB09558
:10A21000A095909581959F4FAF4FBF4F17CA815022
:10A220009F4FAF4FBF4FF0C9295F3F4F4F4F5F4F19
:10A23000CBC981509E4FAF4FBF4FB4C9B095A095C9
:10A24000909581959F4FAF4FBF4FAAC9209351085A
:10A25000E6960FB6F894DEBF0FBECDBFDF91CF916B
:10A260001F910F91FF90EF90DF90CF90BF90AF9034
:10A270009F908F907F906F905F904F903F902F9026
:10A2800008958091340590913505A0913605B091DF
:10A29000370580932C0590932D05A0932E05B09340
:10A2A0002F058091300590913105A0913205B09134
:10A2B00033058093280590932905A0932A05B09330
:10A2C0002B05089510923F0510923E0510923D0512
:10A2D00010923C05089584B1806A84B93D9A82E564
:10A2E0008CBD1DBC459A81E0809392088AEA8093D8
:10A2F000960883E8809397088AE0809398081092E4
:10A300009A081092990810929C0810929B0810923B
:10A31000B8081092B90888E48093BA088FE0809357
:10A32000BB0885E08093BC080895EF92FF920F93DD
:10A330001F93F8948091F4079927880F991F880F2D
:10A34000991F7C010027F7FC0095102F8091A7042E
:10A350009091A804A091A904B091AA04BC01CD01D8
:10A36000A80197010E94965830939A082093990863
:10A3700080919F049091A004A091A104B091A204A7
:10A38000BC01CD01A80197010E94965830939C080A
:10A3900020939B0820918708309188084091890874
:10A3A00050918A08DA01C90173E0880F991FAA1F2A
:10A3B000BB1F7A95D1F7820F931FA41FB51F820F81
:10A3C000931FA41FB51F20917A0330917B03409106
:10A3D0007C0350917D03BC01CD010E9496583093BF
:10A3E000A2082093A108E091B104F091B2048091F9
:10A3F000680890916908BF010E946158CB019B01D8
:10A40000220F331F220F331F280F391F280F391F28
:10A4100037FDEFC0359527953595279530939E08E4
:10A4200020939D088091830890918408BF010E9429
:10A4300061589B01220F331F220F331F260F371F36
:10A44000260F371F37FDD2C03595279535952795AF
:10A450003093A00820939F081092B2041092B10488
:10A46000109269081092680810928408109283086C
:10A470008091980899278C30910509F487C08D3018
:10A4800091050CF067C08A30910509F42CC10B9737
:10A4900009F4B2C078948091B808882309F49DC06B
:10A4A0002091BE083091BF08C90181509E4F8F5F37
:10A4B0009340B0F44091C0085091C108CA01815046
:10A4C0009E4F8F5F934060F48091E80785FF08C03E
:10A4D00030933F0520933E0550933D0540933C0546
:10A4E0008091C4089091C50821E0893692070CF04C
:10A4F000E8C09C0190936E0480936D0480916B047E
:10A5000090916C04281B390BC901845E9D4F68E64D
:10A5100071E00E946158845B904090936A0480933C
:10A5200069042091C8083091C9088091E80390918E
:10A53000E9038217930740F48091A306882321F44E
:10A540003093E9032093E8038091BD08873609F032
:10A550004FC1BCC08D30910509F4FEC00E9709F0C3
:10A5600099CF8091B9088093A9088091BA08809307
:10A57000AA088091BB088093AB088091BC088093A7
:10A58000AC08809101018093AD0884CF8091A3062F
:10A59000863018F01092A30685E08093A908809178
:10A5A0005004909151049093AC088093AB08809133
:10A5B00029088093AA0880911F088093AD08809194
:10A5C00020088093AE08809121088093AF0878948A
:10A5D0008091B808882309F063CF10923F0510924C
:10A5E0003E0510923D0510923C0502C12D5F3F4F84
:10A5F0002BCF2D5F3F4F0ECF8091E207E82FFF2733
:10A60000EE0FFF1FE255F84F0190F081E02DE0388A
:10A61000F1050CF0D2C02FEFE138F20714F4E1E8B5
:10A62000FFEFE093A9088091E307E82FFF27EE0FE3
:10A63000FF1FE255F84F0190F081E02DE038F10561
:10A640000CF4CEC0EFE7F0E0E093AA088091E107B8
:10A65000E82FFF27EE0FFF1FE255F84F0190F08122
:10A66000E02DE038F1050CF4B3C0EFE7F0E0E09343
:10A67000AB088091E007E82FFF27EE0FFF1FE255A0
:10A68000F84F0190F081E02DE038F1050CF498C00E
:10A69000EFE7F0E0E093AC08809162048093AD08AE
:10A6A000809160048093AE0880915E048093AF082F
:10A6B00080915C048093B00880915B048093B10822
:10A6C000E9CE20916D0430916E0418CF8091CA08B4
:10A6D0008093F1088091CB088093F3088091CC0897
:10A6E0008093F20885C0809143048093A9088091EB
:10A6F00042048093AA08809141048093AB08809122
:10A7000040048093AC0880913F048093AD08809111
:10A710003E048093AE0880913D048093AF08809101
:10A720003C048093B00880912F048093B108837F0C
:10A7300080932F0480911C0390911D038093B20895
:10A740008091F9078093B308A2E0B0E00E94B1586D
:10A75000802D8093B4089ECE80911A088093A9081A
:10A7600080911B088093AA0880911C088093AB08F5
:10A7700080911D088093AC0880911E088093AD08DD
:10A78000809122088093AE08809123088093AF08BF
:10A79000809124088093B008809127088093B108A5
:10A7A000809125088093B208809126088093B30891
:10A7B000809128088093B4086DCEEFE7F0E031CFA8
:10A7C0008FEFE138F8070CF065CFE1E8FFEF62CFDB
:10A7D0006FEFE138F6070CF04ACFE1E8FFEF47CF23
:10A7E0004FEFE138F4070CF02FCFE1E8FFEF2CCF6B
:10A7F0001F910F91FF90EF90089580919208882308
:10A8000009F43BC0459886E998E0909394088093BA
:10A81000930880914005E82FFF27E854FC4F982FBC
:10A820009F5F808180939808963008F027C09093AE
:10A830004005109292080E94955181E080939508FE
:10A840000000000000000000000000000000000008
:10A8500000000000000000000000000000000000F8
:10A8600000000000000000000000000000000000E8
:10A87000809196088093B5088EBD0895109240058A
:10A88000D8CF20919208222309F045C00DB407FECD
:10A8900042C084E08093E703459A3EB5809142052B
:10A8A00099278130910509F437C0823091050CF465
:10A8B00051C0029709F439C020919508203208F060
:10A8C00030C04598000000000000000000000000BB
:10A8D0000000000000000000000000000000000078
:10A8E0000000000000000000000000000000000068
:10A8F00000000000E0919308F0919408E20FF11D30
:10A9000080818EBD8091B5089081890F8093B508B4
:10A910002F5F209395080895353551F12093420516
:10A92000CBCF81E080939208F3CF8091B708E82FD6
:10A93000FF27E952F74F30838F5F8093B7088A3142
:10A9400000F180914305381711F12093B808109257
:10A950004205B2CF892B09F0AFCF2093B7083093CF
:10A960004305313809F0A8CF81E080934205A4CF98
:10A9700080914305830F8093430582E080934205D5
:10A980009BCF80914305830F8093430595CF8AE148
:10A99000E7EDF8E0ADEBB8E001900D928A95E1F7B4
:10A9A00081E08093B8081092420586CF87B18C6011
:10A9B00087B9429843981092450580E88093BF0379
:10A9C000109244058093BE03089580914A058150FA
:10A9D0008F3F19F080934A05089584E080934A05DB
:10A9E000909117089B3F60F49B3FA0F080916A080C
:10A9F0008A3080F480911608882354F0429A11C05E
:10AA000080916A08873E80F3809116088823B4F30A
:10AA1000429807C08091450581508F3FB9F18093DE
:10AA20004505909119089B3F50F080917E08873E24
:10AA300030F080911808882364F0439808959B3F74
:10AA400050F080917E088A3030F480911808882375
:10AA5000A4F3439A08958091440581508F3F19F0E3
:10AA600080934405089580917E0881508093440529
:10AA70008091BE038130F1F0982F96959093BE039C
:10AA8000809118088923C9F2439A089580916A0831
:10AA90008150809345058091BF03813069F0982FE4
:10AAA00096959093BF0380911608892309F4B0CF3F
:10AAB000429AB7CF90E8E2CF90E8F3CF8091C900F7
:10AAC0008F778093C9008091C9008F7B8093C900E4
:10AAD0008091C9008F7D8093C9005A9A5298109234
:10AAE000CD0084E190E08093CC008091C80082602A
:10AAF0008093C80080E18093C9008091CA008F775D
:10AB00008093CA008091CA008F7B8093CA00809195
:10AB1000CA008F7D8093CA008091CA008F7E809387
:10AB2000CA008091CA00877F8093CA008091C900C3
:10AB30008B7F8093C9008091CA0084608093CA0093
:10AB40008091CA0082608093CA008091C80087FF0C
:10AB50000CC08091CE008091C800882334F480918D
:10AB6000CE008091C8008823A4F38091C90080683A
:10AB70008093C90008951F920F920FB60F9211246F
:10AB8000EF92FF920F931F932F933F934F935F93F7
:10AB90006F937F938F939F93AF93BF93CF93DF93E5
:10ABA000EF93FF930091CE008091C0039091C10379
:10ABB000019709F45EC080915305909154050E945D
:10ABC000D911482F552760914B0570914C0561159F
:10ABD0007105E9F16130710509F4EAC0623071056F
:10ABE00009F4EDC06330710509F45CC081E090E0C8
:10ABF0009093C1038093C00310924E0510924D05AF
:10AC0000109252051092510580914D0590914E057C
:10AC10004097A0F08091510590915205892B11F435
:10AC20001092790310924E0510924D051092520524
:10AC30001092510510924C0510924B0587E090E060
:10AC40000E94D0119093540580935305FDC0452B6D
:10AC5000D9F281E090E090934C0580934B05809170
:10AC60004D0590914E05019690934E0580934D05AC
:10AC7000CBCF1092C1031092C00387E090E00E94F6
:10AC8000D011909354058093530510924E05109265
:10AC90004D0510924C0510924B05109250051092E4
:10ACA0004F05D2C0452B09F0A1CF82E090E09093F0
:10ACB0004C0580934B0580914D0590914E05019672
:10ACC00090934E0580934D0580914F0590915005CE
:10ACD000FC01F695E795F695E795EF70F0703196E3
:10ACE000982F8827202F3327822B932B9370805007
:10ACF00092400E946158EB30F10508F085CF7F014A
:10AD0000EE0EFF1EF701E255F84F808191819B0105
:10AD1000281B390BC90137FD90C0069754F4809168
:10AD20005B04883C08F087C080915B04865F809359
:10AD30005B04F701E255F84F808191819C01220F5D
:10AD4000331F280F391F260F371F37FD7AC0E9013F
:10AD5000D595C795D595C795CB0101968C179D07BD
:10AD60000CF05CC0219780915B04843B08F450C0D8
:10AD700087010C53184FF701E255F84F80819181FC
:10AD8000FE01E81BF90BCF0163E070E00E946158FF
:10AD9000CB01880F991F860F971FF801918380833D
:10ADA0002EEA37E0E20EF31EF701D183C0832CCFE9
:10ADB0004115510509F012CF82E090E04CCF4115CA
:10ADC000510509F00FCF802F99279093500580935C
:10ADD0004F0520914D0530914E052230310569F027
:10ADE00083E090E090934C0580934B052F5F3F4F9D
:10ADF00030934E0520934D0507CF80914F0587FF77
:10AE000015C081E090E09093520580935105E8CF02
:10AE1000F701EC53F84F11821082C2CF615070409D
:10AE2000C617D7070CF09FCF21969DCF50935205A0
:10AE300040935105D5CF88EC7ACF909581959F4F5F
:10AE40006CCF2D5F3F4F83CFFF91EF91DF91CF917B
:10AE5000BF91AF919F918F917F916F915F914F9132
:10AE60003F912F911F910F91FF90EF900F900FBE88
:10AE70000F901F901895FC014150504030F0019008
:10AE80000616D1F73197CF0108958827992708959D
:10AE90005058192EA6D001D08CC0BA17620773077C
:10AEA00084079507B1F188F40EF410940B2EBA2F95
:10AEB000A02D062E622F202D072E732F302D082E49
:10AEC000842F402D092E952F502DFF275523B9F0A3
:10AED000591B49F0573E98F0469537952795A79509
:10AEE000F0405395C9F776F0BA0F621F731F841FA5
:10AEF00030F4879577956795B795F040939517FA55
:10AF00000F2E0895BF1BBB27BA0B620B730B840B6C
:10AF1000F6CFDEF692C097FB70D09F3738F0FEE98F
:10AF2000F91B982F872F762F6B2F05C083C096951E
:10AF3000879577956795F150D0F73EF49095809579
:10AF4000709561957F4F8F4F9F4F0895E89403C090
:10AF500097FB0EF4F3DFB62F672F782F892F9EE92A
:10AF6000002427C00ED05EF004C00BD026F001C034
:10AF700008D019F020F48FEF089580E0089581E063
:10AF8000089597FB092E052600F868942DD0E894C3
:10AF900007FC07C0621773078407950721F008F4C0
:10AFA00000940794989408959A95BB0F661F771F95
:10AFB000881F11249923A1F08823B2F79F3F59F0ED
:10AFC000BB0F48F421F4002011F460FF04C06F5F50
:10AFD0007F4F8F4F9F4F881F9795879597F90895BB
:10AFE00029C0052E092607FA440F551F5F3F79F047
:10AFF000AA27A51708F051E04795880F991F9F3F92
:10B0000031F0BB27B91708F091E0879508959F911B
:10B010009F91112414C097FB880F991F9F3F31F017
:10B02000BB27B91708F091E0879508959F919F91EC
:10B03000112405C0662777278827992708959FEF51
:10B0400080EC0895629FD001739FF001829FE00D14
:10B05000F11D649FE00DF11D929FF00D839FF00D97
:10B06000749FF00D659FF00D9927729FB00DE11D43
:10B07000F91F639FB00DE11DF91FBD01CF01112420
:10B080000895991B79E004C0991F961708F0961B44
:10B09000881F7A95C9F780950895AA1BBB1B51E1BB
:10B0A00007C0AA1FBB1FA617B70710F0A61BB70B38
:10B0B000881F991F5A95A9F780959095BC01CD01DD
:10B0C000089597FB092E07260AD077FD04D0E5DF07
:10B0D00006D000201AF4709561957F4F0895F6F719
:10B0E000909581959F4F0895A1E21A2EAA1BBB1B34
:10B0F000FD010DC0AA1FBB1FEE1FFF1FA217B30744
:10B10000E407F50720F0A21BB30BE40BF50B661F59
:10B11000771F881F991F1A9469F76095709580951D
:10B1200090959B01AC01BD01CF01089597FB092EBD
:10B1300005260ED057FD04D0D7DF0AD0001C38F406
:10B1400050954095309521953F4F4F4F5F4F089553
:10B15000F6F790958095709561957F4F8F4F9F4F33
:10B160000895F999FECFB2BDA1BDF89A119600B429
:10B170000895F999FECFB2BDA1BD00BC11960FB6DE
:10B18000F894FA9AF99A0FBE08950190F2DF1A9492
:04B19000E1F7089546
:10B19400010A01416E676C654E69636B20202020B3
:10B1A400202020416E676C65526F6C6C202020203B
:10B1B4002020204163634E69636B202020202020DF
:10B1C400202020416363526F6C6C202020202020BB
:10B1D4002020204779726F47696572202020202043
:10B1E40020202048696768742056616C75652020AA
:10B1F4002020204163635A2020202020202020206A
:10B20400202020476173202020202020202020207F
:10B21400202020436F6D706173732056616C7565D7
:10B22400202020566F6C7461676520202020202028
:10B23400202020456D7066616E672020202020202C
:10B244002020204779726F204B6F6D7061737320DB
:10B254002020204D6F746F722046726F6E74202010
:10B264002020204D6F746F7220526561722020205F
:10B274002020204D6F746F72204C6566742020204E
:10B284002020204D6F746F722052696768742020EB
:10B2940020202020202020202020202020202020AA
:10B2A400202020202020202020202020202020209A
:10B2B400202020202020202020202020202020208A
:10B2C4002020204D4B334D61672043616C537461E2
:10B2D400746520536572766F202020202020202062
:10B2E400202020202020202020202020202020205A
:10B2F400202020202020202020202020202020204A
:10B304002020202020202020202020202020202039
:10B314002020202020202020202020202020202029
:10B324002020202020202020202020202020202019
:10B334002020202020202020202020202020202009
:10B344002020204B616C6D616E5F4D6178447269A1
:10B35400667420202020202020202020202020204F
:10B3640020202020202020202020202020202020D9
:10B374002020204750535F4E69636B2020202020FB
:10B384002020204750535F526F6C6C2020202020D7
:10B39400202020C8000164FF01FFFF01FC010173AC
:10B3A4007373FF03007D0000C409C40964000B48E3
:10B3B400616C6C6F2057656C740000000000000025
:10B3C4000000000000000000000000000000000079
:10B3D4000000000000000000000000000000000069
:10B3E4000000000000000000000000000000000059
:10B3F4000000000000000000000000000000000148
:10B4040002030405060708090A010B050000ECFF06
:10B414006440415A46640A02969608403A10FB304A
:10B42400380190D0030090D00300F40164005370FD
:10B434006F727400004E6F726D616C00004265673C
:10B44400696E6E65720000640A0B0D0B0C0E01012F
:02B454000100F5
:00000001FF
/tags/V0.72p/Hex-Files/WasIstWas.txt
0,0 → 1,51
+++++++++++++++++++++++++
+ 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
 
 
 
 
//+++++++++++
// Quadro:
// 1
// 4 3
// 2
//+++++++++++
// Reverse Props on 1 2
 
//+++++++++++
// Octo:
// 1 2
// 8 3
// 7 4
// 6 5
//+++++++++++
 
//+++++++++++
// Octo2:
// 1
// 8 2
// 7 3
// 6 4
// 5
//+++++++++++
 
//+++++++++++
// Octo3:
// 1
// 2
// 8 7 3 4
// 5
// 6
//+++++++++++
// Reverse Props on octo: 1 3 5 7
 
/tags/V0.72p/License.txt
0,0 → 1,52
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Copyright (c) 04.2007 Holger Buss
// + Nur für den privaten Gebrauch
// + 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 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 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.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
/tags/V0.72p/Settings.h
--- V0.72p/Spectrum.c (nonexistent)
+++ V0.72p/Spectrum.c (revision 1178)
@@ -0,0 +1,248 @@
+/*#######################################################################################
+Decodieren eines RC Summen Signals oder Spektrum Empfänger-Satellit
+#######################################################################################*/
+
+#include "Spectrum.h"
+#include "main.h"
+
+//############################################################################
+// zum Decodieren des Spektrum Satelliten wird USART1 benutzt.
+// USART1 initialisation from killagreg
+void Uart1Init(void)
+//############################################################################
+ {
+ // -- Start of USART1 initialisation for Spekturm seriell-mode
+ // USART1 Control and Status Register A, B, C and baud rate register
+ uint16_t ubrr = (uint16_t) ((uint32_t) SYSCLK/(8 * 115200) - 1);
+ // 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);
+ // 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
+ 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
+//
+// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+//############################################################################
+//Diese Routine startet und inizialisiert den USART1 für seriellen Spektrum satellite reciever
+SIGNAL(USART1_RX_vect)
+//############################################################################
+{
+static unsigned int Sync=0, FrameCnt=0, ByteHigh=0, ReSync=1, Frame2=0, FrameTimer;
+ unsigned int Channel, index;
+ signed int signal, tmp;
+ int bCheckDelay;
+ uint8_t c;
+
+ c = UDR1; // get data byte
+
+ if (ReSync == 1)
+ {
+ // wait for beginning of new frame
+ ReSync = 0;
+
+ FrameTimer = SetDelay(7); // minimum 7ms zwischen den frames
+ FrameCnt = 0;
+ Sync = 0;
+ ByteHigh = 0;
+ }
+ else
+ {
+ bCheckDelay = 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 ++;
+ }
+ else
+ {
+ // Zeichen kam vor Ablauf der 7ms Sync-Pause
+ // warten auf erstes Sync-Zeichen
+ }
+ }
+ else if((Sync == 1) && !bCheckDelay)
+ {
+ // zweites Sync-Character ignorieren, Bedeutung unbekannt
+ Sync = 2;
+ FrameCnt ++;
+ }
+ else if((Sync == 2) && !bCheckDelay)
+ {
+ // 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
+ Sync = 2;
+ FrameCnt ++;
+
+ index = (ByteHigh >> 2) & 0x0f;
+ index ++;
+ Channel = (ByteHigh << 8) | c;
+ signal = Channel & 0x3ff;
+ signal -= 0x200; // Offset, range 0x000..0x3ff?
+ signal = signal/3; // scaling to fit PPM resolution
+
+ if(index >= 0 && index <= 10)
+ {
+ // 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 >= 180) PPM_diff[index] = ((tmp - PPM_in[index]) / 3) * 3;
+ else PPM_diff[index] = 0;
+ PPM_in[index] = tmp;
+ }
+ }
+ else
+ {
+ // hier stimmt was nicht: neu synchronisieren
+ ReSync = 1;
+ FrameCnt = 0;
+ Frame2 = 0;
+ }
+
+ // 16 Bytes per frame
+ if(FrameCnt >= 16)
+ {
+ // Frame complete
+ if(Frame2 == 0)
+ {
+ // Null bedeutet: Neue Daten
+ // nur beim ersten Frame (CH 0-7) setzen
+ NewPpmData = 0;
+ }
+
+ // new frame next, nach fruehestens 7ms erwartet
+ FrameCnt = 0;
+ Frame2 = 0;
+ Sync = 0;
+ }
+ // Zeit bis zum nächsten Zeichen messen
+ FrameTimer = SetDelay(7);
+ }
+}
+
+
/tags/V0.72p/Spectrum.h
0,0 → 1,8
/*#######################################################################################
Dekodieren eines Spectrum Signals
#######################################################################################*/
 
#ifndef _SPECTRUM_H
#define _SPECTRUM_H
void Uart1Init(void);
#endif //_RC_H
/tags/V0.72p/_Settings.h
0,0 → 1,43
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Abstimmung
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#define ACC_AMPLIFY 6
#define FAKTOR_P 1
#define FAKTOR_I 0.0001
 
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Debug-Interface
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#define SIO_DEBUG 1 // Soll der Debugger aktiviert sein?
#define MIN_DEBUG_INTERVALL 250 // in diesem Intervall werden Degugdaten ohne Aufforderung gesendet
 
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Sender
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#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
// +++++++++++++++++++++++++++++++
// + Getestete Settings:
// +++++++++++++++++++++++++++++++
// Setting: Kamera
// Stick_P:3
// Stick_D:0
// Gyro_P: 175
// Gyro_I: 175
// Ki_Anteil: 10
// +++++++++++++++++++++++++++++++
// + Getestete Settings:
// +++++++++++++++++++++++++++++++
// Setting: Normal
// Stick_P:2
// Stick_D:8
// Gyro_P: 80
// Gyro_I: 150
// Ki_Anteil: 5
 
/tags/V0.72p/analog.c
0,0 → 1,457
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Copyright (c) 04.2007 Holger Buss
// + only for non-profit use
// + www.MikroKopter.com
// + see the File "License.txt" for further Informations
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
#include "main.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 int StartLuftdruck;
volatile unsigned int MessLuftdruck = 1023;
unsigned char DruckOffsetSetting;
signed char ExpandBaro = 0;
volatile int HoeheD = 0;
volatile char messanzahl_Druck;
volatile int tmpLuftdruck;
volatile unsigned int ZaehlMessungen = 0;
unsigned char AnalogOffsetNick = 115,AnalogOffsetRoll = 115,AnalogOffsetGier = 115;
unsigned char GyroDefektN = 0,GyroDefektR = 0,GyroDefektG = 0;
volatile unsigned char AdReady = 1;
//#######################################################################################
//
void ADC_Init(void)
//#######################################################################################
{
ADMUX = 0;//Referenz ist extern
ANALOG_ON;
}
 
void SucheLuftruckOffset(void)
{
unsigned int off;
off = eeprom_read_byte(&EEPromArray[EEPROM_ADR_LAST_OFFSET]);
if(off > 20) off -= 10;
OCR0A = off;
ExpandBaro = 0;
Delay_ms_Mess(100);
if(MessLuftdruck < 850) off = 0;
for(; off < 250;off++)
{
OCR0A = off;
Delay_ms_Mess(50);
printf(".");
if(MessLuftdruck < 850) break;
}
eeprom_write_byte(&EEPromArray[EEPROM_ADR_LAST_OFFSET], off);
DruckOffsetSetting = off;
Delay_ms_Mess(300);
}
 
void SucheGyroOffset(void)
{
unsigned char i, ready = 0;
GyroDefektN = 0; GyroDefektR = 0; GyroDefektG = 0;
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++;
twi_state = 8;
i2c_start();
if(AnalogOffsetNick < 10) { GyroDefektN = 1; AnalogOffsetNick = 10;}; if(AnalogOffsetNick > 245) { GyroDefektN = 1; AnalogOffsetNick = 245;};
if(AnalogOffsetRoll < 10) { GyroDefektR = 1; AnalogOffsetRoll = 10;}; if(AnalogOffsetRoll > 245) { GyroDefektR = 1; AnalogOffsetRoll = 245;};
if(AnalogOffsetGier < 10) { GyroDefektG = 1; AnalogOffsetGier = 10;}; if(AnalogOffsetGier > 245) { GyroDefektG = 1; AnalogOffsetGier = 245;};
while(twi_state);
messanzahl_Druck = 0;
ANALOG_ON;
while(messanzahl_Druck == 0);
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
*/
 
//#######################################################################################
//
SIGNAL(SIG_ADC)
//#######################################################################################
{
static unsigned char kanal=0,state = 0;
static signed int gier1, roll1, nick1, nick_filter, roll_filter;
static signed int accy, accx;
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)
{
NeutralAccZ += 0.02;
if(modell_fliegt < 500) NeutralAccZ += 0.1;
}
}
else if(AdWertAccHoch < -1)
{
if(NeutralAccZ > 550)
{
NeutralAccZ-= 0.02;
if(modell_fliegt < 500) NeutralAccZ -= 0.1;
}
}
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 8:" 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:
tmpLuftdruck += ADC;
if(++messanzahl_Druck >= 5)
{
tmpLuftdruck /= 2;
MessLuftdruck = ADC;
messanzahl_Druck = 0;
HoeheD = (31 * HoeheD + (int) Parameter_Luftdruck_D * (int)(255 * ExpandBaro + StartLuftdruck - tmpLuftdruck - HoehenWert))/32; // D-Anteil = neuerWert - AlterWert
Luftdruck = (tmpLuftdruck + 7 * Luftdruck + 4) / 8;
HoehenWert = 255 * ExpandBaro + StartLuftdruck - Luftdruck;
tmpLuftdruck /= 2;
}
kanal = AD_NICK;
break;
default:
kanal = 0; state = 0; kanal = AD_NICK;
break;
}
ADMUX = kanal;
if(state != 0) ANALOG_ON;
}
 
 
 
/*
//#######################################################################################
//
SIGNAL(SIG_ADC)
//#######################################################################################
{
static unsigned char kanal=0,state = 0;
static signed int gier1, roll1, nick1;
static signed long nick_filter, roll_filter;
static signed int accy, accx;
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_NICK;
break;
case 4:
nick1 += ADC;
kanal = AD_ROLL;
break;
case 5:
roll1 += ADC;
kanal = AD_ACC_Z;
break;
case 6:
AdWertAccHoch = (signed int) ADC - NeutralAccZ;
if(AdWertAccHoch > 1)
{
if(NeutralAccZ < 750)
{
NeutralAccZ += 0.02;
if(modell_fliegt < 500) NeutralAccZ += 0.1;
}
}
else if(AdWertAccHoch < -1)
{
if(NeutralAccZ > 550)
{
NeutralAccZ-= 0.02;
if(modell_fliegt < 500) NeutralAccZ -= 0.1;
}
}
messanzahl_AccHoch = 1;
Aktuell_az = ADC;
Mess_Integral_Hoch += AdWertAccHoch; // Integrieren
Mess_Integral_Hoch -= Mess_Integral_Hoch / 1024; // dämfen
kanal = AD_NICK;
break;
case 7:
nick1 += ADC;
kanal = AD_ROLL;
break;
case 8:
roll1 += ADC;
kanal = AD_ACC_X;
break;
case 9:
Aktuell_ax = ADC - NeutralAccX;
accx = Aktuell_ax;
kanal = AD_GIER;
break;
case 10:
gier1 += ADC;
kanal = AD_NICK;
break;
case 11:
nick1 += ADC;
kanal = AD_ROLL;
break;
case 12:
roll1 += ADC;
kanal = AD_UBAT;
break;
case 13:
UBat = (3 * UBat + ADC / 3) / 4;//(UBat + ((ADC * 39) / 256) + 19) / 2;
kanal = AD_ACC_Y;
break;
case 14:
Aktuell_ay = NeutralAccY - ADC;
accy += Aktuell_ay;
kanal = AD_NICK;
break;
case 15:
nick1 += ADC;
kanal = AD_ROLL;
break;
case 16:
roll1 += ADC;
kanal = AD_ACC_X;
break;
case 17:
Aktuell_ax = ADC - NeutralAccX;
accx += Aktuell_ax;
kanal = AD_NICK;
break;
case 18:
nick1 += ADC;
kanal = AD_ROLL;
break;
case 19:
roll1 += ADC;
kanal = AD_GIER;
break;
case 20:
gier1 += ADC;
kanal = AD_ACC_Y;
break;
case 21:
Aktuell_ay = NeutralAccY - ADC;
accy += Aktuell_ay;
kanal = AD_NICK;
break;
case 22:
nick1 += ADC;
kanal = AD_ROLL;
break;
case 23:
roll1 += ADC;
kanal = AD_DRUCK;
break;
case 24:
tmpLuftdruck += ADC;
if(++messanzahl_Druck >= 5)
{
MessLuftdruck = ADC;
messanzahl_Druck = 0;
HoeheD = (7 * HoeheD + (int) Parameter_Luftdruck_D * (int)(255 * ExpandBaro + StartLuftdruck - tmpLuftdruck - HoehenWert)) / 8; // D-Anteil = neuerWert - AlterWert
Luftdruck = (tmpLuftdruck + 3 * Luftdruck) / 4;
HoehenWert = 255 * ExpandBaro + StartLuftdruck - Luftdruck;
tmpLuftdruck = 0;
}
kanal = AD_NICK;
break;
case 25:
nick1 += ADC;
kanal = AD_ROLL;
break;
case 26:
roll1 += ADC;
kanal = AD_ACC_X;
break;
case 27:
Aktuell_ax = ADC - NeutralAccX;
accx += Aktuell_ax;
kanal = AD_GIER;
break;
case 28:
if(PlatinenVersion == 10) AdWertGier = (ADC + gier1 + 2) / 4;
else
if(PlatinenVersion == 20) AdWertGier = 2047 - (ADC + gier1 + 1) / 2;
else AdWertGier = (ADC + gier1 + 1) / 2;
kanal = AD_NICK;
break;
case 29:
nick1 += ADC;
kanal = AD_ROLL;
break;
case 30:
roll1 += ADC;
kanal = AD_ACC_Y;
break;
case 31:
Aktuell_ay = NeutralAccY - ADC;
AdWertAccRoll = (Aktuell_ay + accy);
kanal = AD_NICK;
break;
case 32:
AdWertNick = (ADC + nick1 + 3) / 5;
nick_filter = (long) (1 * (long) nick_filter + 4 * (long)(ADC + nick1) + 1) / 2;
if(PlatinenVersion == 10) { AdWertNick /= 2;nick_filter /=2;}
HiResNick = nick_filter - 20 * AdNeutralNick;
AdWertNickFilter = (long)(3L * (long)AdWertNickFilter + HiResNick + 2) / 4;
DebugOut.Analog[21] = AdWertNickFilter / 4;
kanal = AD_ROLL;
break;
case 33:
AdWertRoll = (ADC + roll1 + 3) / 5;
roll_filter = (long)(1 * (long)roll_filter + 4 * (long)(ADC + roll1) + 1) / 2;
if(PlatinenVersion == 10) { AdWertRoll /= 2;roll_filter /=2;}
HiResRoll = roll_filter - 20 * AdNeutralRoll;
AdWertRollFilter = (long)(3L * (long)AdWertRollFilter + HiResRoll + 2) / 4;
DebugOut.Analog[22] = AdWertRollFilter / 4;
kanal = AD_ACC_X;
break;
case 34:
Aktuell_ax = ADC - NeutralAccX;
AdWertAccNick = (Aktuell_ax + accx);
kanal = AD_NICK;
state = 0;
AdReady = 1;
ZaehlMessungen++;
break;
default:
kanal = 0;
state = 0;
break;
}
ADMUX = kanal;
if(state != 0) ANALOG_ON;
}
*/
/tags/V0.72p/analog.h
0,0 → 1,45
#ifndef _ANALOG_H
#define _ANALOG_H
/*#######################################################################################
 
#######################################################################################*/
 
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 char messanzahl_Druck;
extern volatile unsigned int ZaehlMessungen;
extern unsigned char DruckOffsetSetting;
extern signed char ExpandBaro;
extern volatile int HoeheD;
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
/tags/V0.72p/eeprom.c
0,0 → 1,236
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Konstanten
// + 0-250 -> normale Werte
// + 251 -> Poti1
// + 252 -> Poti2
// + 253 -> Poti3
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void DefaultStickMapping(void)
{
EE_Parameter.Kanalbelegung[K_NICK] = 1;
EE_Parameter.Kanalbelegung[K_ROLL] = 2;
EE_Parameter.Kanalbelegung[K_GAS] = 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;
}
 
void DefaultKonstanten1(void)
{
EE_Parameter.GlobalConfig = CFG_ACHSENKOPPLUNG_AKTIV | CFG_KOMPASS_AKTIV | CFG_GPS_AKTIV;//CFG_HOEHEN_SCHALTER
EE_Parameter.Hoehe_MinGas = 30;
EE_Parameter.MaxHoehe = 251; // Wert : 0-250 251 -> Poti1
EE_Parameter.Hoehe_P = 10; // Wert : 0-32
EE_Parameter.Luftdruck_D = 30; // Wert : 0-250
EE_Parameter.Hoehe_ACC_Wirkung = 30; // Wert : 0-250
EE_Parameter.Hoehe_Verstaerkung = 4; // Wert : 0-50
EE_Parameter.Stick_P = 15; // Wert : 1-6
EE_Parameter.Stick_D = 30; // Wert : 0-64
EE_Parameter.Gier_P = 12; // Wert : 1-20
EE_Parameter.Gas_Min = 8; // Wert : 0-32
EE_Parameter.Gas_Max = 230; // Wert : 33-250
EE_Parameter.GyroAccFaktor = 30; // Wert : 1-64
EE_Parameter.KompassWirkung = 128; // Wert : 0-250
EE_Parameter.Gyro_P = 80; // Wert : 0-250
EE_Parameter.Gyro_I = 150; // Wert : 0-250
EE_Parameter.Gyro_D = 3; // Wert : 0-250
EE_Parameter.UnterspannungsWarnung = 94; // Wert : 0-250
EE_Parameter.NotGas = 35; // Wert : 0-250 // Gaswert bei Empangsverlust
EE_Parameter.NotGasZeit = 30; // Wert : 0-250 // Zeit bis auf NotGas geschaltet wird, wg. Rx-Problemen
EE_Parameter.UfoAusrichtung = 0; // X oder + Formation
EE_Parameter.I_Faktor = 32;
EE_Parameter.UserParam1 = 0; // zur freien Verwendung
EE_Parameter.UserParam2 = 0; // zur freien Verwendung
EE_Parameter.UserParam3 = 0; // zur freien Verwendung
EE_Parameter.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 = 100; // Wert : 0-250 // Stellung des Servos
EE_Parameter.ServoNickComp = 40; // Wert : 0-250 // Einfluss Gyro/Servo
EE_Parameter.ServoNickCompInvert = 0; // Wert : 0-250 // Richtung Einfluss Gyro/Servo
EE_Parameter.ServoNickMin = 50; // Wert : 0-250 // Anschlag
EE_Parameter.ServoNickMax = 150; // Wert : 0-250 // Anschlag
EE_Parameter.ServoNickRefresh = 5;
EE_Parameter.LoopGasLimit = 50;
EE_Parameter.LoopThreshold = 90; // Wert: 0-250 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.AchsKopplung1 = 90;
EE_Parameter.AchsKopplung2 = 67;
EE_Parameter.CouplingYawCorrection = 0;
EE_Parameter.WinkelUmschlagNick = 85;
EE_Parameter.WinkelUmschlagRoll = 85;
EE_Parameter.GyroAccAbgleich = 16; // 1/k
EE_Parameter.Driftkomp = 32;
EE_Parameter.DynamicStability = 100;
EE_Parameter.J16Bitmask = 95;
EE_Parameter.J17Bitmask = 243;
EE_Parameter.J16Timing = 15;
EE_Parameter.J17Timing = 15;
EE_Parameter.NaviGpsModeControl = 253;
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 = 4;
memcpy(EE_Parameter.Name, "Sport\0", 12);
}
void DefaultKonstanten2(void)
{
EE_Parameter.GlobalConfig = CFG_ACHSENKOPPLUNG_AKTIV | CFG_KOMPASS_AKTIV | CFG_GPS_AKTIV;///*CFG_HOEHEN_SCHALTER |*/ CFG_KOMPASS_AKTIV;//0x01;
EE_Parameter.Hoehe_MinGas = 30;
EE_Parameter.MaxHoehe = 251; // Wert : 0-250 251 -> Poti1
EE_Parameter.Hoehe_P = 10; // Wert : 0-32
EE_Parameter.Luftdruck_D = 30; // Wert : 0-250
EE_Parameter.Hoehe_ACC_Wirkung = 30; // Wert : 0-250
EE_Parameter.Hoehe_Verstaerkung = 3; // Wert : 0-50
EE_Parameter.Stick_P = 12; // Wert : 1-6
EE_Parameter.Stick_D = 16; // Wert : 0-64
EE_Parameter.Gier_P = 6; // Wert : 1-20
EE_Parameter.Gas_Min = 8; // Wert : 0-32
EE_Parameter.Gas_Max = 230; // Wert : 33-250
EE_Parameter.GyroAccFaktor = 30; // Wert : 1-64
EE_Parameter.KompassWirkung = 128; // Wert : 0-250
EE_Parameter.Gyro_P = 80; // Wert : 0-250
EE_Parameter.Gyro_I = 120; // Wert : 0-250
EE_Parameter.Gyro_D = 3; // Wert : 0-250
EE_Parameter.UnterspannungsWarnung = 94; // Wert : 0-250
EE_Parameter.NotGas = 35; // Wert : 0-250 // Gaswert bei Empangsverlust
EE_Parameter.NotGasZeit = 30; // Wert : 0-250 // Zeit bis auf NotGas geschaltet wird, wg. Rx-Problemen
EE_Parameter.UfoAusrichtung = 0; // X oder + Formation
EE_Parameter.I_Faktor = 32;
EE_Parameter.UserParam1 = 0; // zur freien Verwendung
EE_Parameter.UserParam2 = 0; // zur freien Verwendung
EE_Parameter.UserParam3 = 0; // zur freien Verwendung
EE_Parameter.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 = 100; // Wert : 0-250 // Stellung des Servos
EE_Parameter.ServoNickComp = 40; // Wert : 0-250 // Einfluss Gyro/Servo
EE_Parameter.ServoNickCompInvert = 0; // Wert : 0-250 // Richtung Einfluss Gyro/Servo
EE_Parameter.ServoNickMin = 50; // Wert : 0-250 // Anschlag
EE_Parameter.ServoNickMax = 150; // Wert : 0-250 // Anschlag
EE_Parameter.ServoNickRefresh = 5;
EE_Parameter.LoopGasLimit = 50;
EE_Parameter.LoopThreshold = 90; // Wert: 0-250 Schwelle für Stickausschlag
EE_Parameter.LoopHysterese = 50;
EE_Parameter.BitConfig = 0; // Bitcodiert: 0x01=oben, 0x02=unten, 0x04=links, 0x08=rechts
EE_Parameter.AchsKopplung1 = 90;
EE_Parameter.AchsKopplung2 = 67;
EE_Parameter.CouplingYawCorrection = 60;
EE_Parameter.WinkelUmschlagNick = 85;
EE_Parameter.WinkelUmschlagRoll = 85;
EE_Parameter.GyroAccAbgleich = 32; // 1/k
EE_Parameter.Driftkomp = 32;
EE_Parameter.DynamicStability = 75;
EE_Parameter.J16Bitmask = 95;
EE_Parameter.J17Bitmask = 243;
EE_Parameter.J16Timing = 20;
EE_Parameter.J17Timing = 20;
EE_Parameter.NaviGpsModeControl = 253;
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 = 4;
memcpy(EE_Parameter.Name, "Normal\0", 12);
}
 
void DefaultKonstanten3(void)
{
EE_Parameter.GlobalConfig = CFG_DREHRATEN_BEGRENZER | CFG_ACHSENKOPPLUNG_AKTIV | CFG_KOMPASS_AKTIV | CFG_GPS_AKTIV;///*CFG_HOEHEN_SCHALTER |*/ CFG_KOMPASS_AKTIV;//0x01;
EE_Parameter.Hoehe_MinGas = 30;
EE_Parameter.MaxHoehe = 251; // Wert : 0-250 251 -> Poti1
EE_Parameter.Hoehe_P = 10; // Wert : 0-32
EE_Parameter.Luftdruck_D = 30; // Wert : 0-250
EE_Parameter.Hoehe_ACC_Wirkung = 30; // Wert : 0-250
EE_Parameter.Hoehe_Verstaerkung = 3; // Wert : 0-50
EE_Parameter.Stick_P = 8; // Wert : 1-6
EE_Parameter.Stick_D = 16; // Wert : 0-64
EE_Parameter.Gier_P = 6; // Wert : 1-20
EE_Parameter.Gas_Min = 8; // Wert : 0-32
EE_Parameter.Gas_Max = 230; // Wert : 33-250
EE_Parameter.GyroAccFaktor = 30; // Wert : 1-64
EE_Parameter.KompassWirkung = 128; // Wert : 0-250
EE_Parameter.Gyro_P = 100; // Wert : 0-250
EE_Parameter.Gyro_I = 120; // Wert : 0-250
EE_Parameter.Gyro_D = 3; // Wert : 0-250
EE_Parameter.UnterspannungsWarnung = 94; // Wert : 0-250
EE_Parameter.NotGas = 35; // Wert : 0-250 // Gaswert bei Empangsverlust
EE_Parameter.NotGasZeit = 20; // Wert : 0-250 // Zeit bis auf NotGas geschaltet wird, wg. Rx-Problemen
EE_Parameter.UfoAusrichtung = 0; // X oder + Formation
EE_Parameter.I_Faktor = 16;
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 = 100; // Wert : 0-250 // Stellung des Servos
EE_Parameter.ServoNickComp = 40; // Wert : 0-250 // Einfluss Gyro/Servo
EE_Parameter.ServoNickCompInvert = 0; // Wert : 0-250 // Richtung Einfluss Gyro/Servo
EE_Parameter.ServoNickMin = 50; // Wert : 0-250 // Anschlag
EE_Parameter.ServoNickMax = 150; // Wert : 0-250 // Anschlag
EE_Parameter.ServoNickRefresh = 5;
EE_Parameter.LoopGasLimit = 50;
EE_Parameter.LoopThreshold = 90; // Wert: 0-250 Schwelle für Stickausschlag
EE_Parameter.LoopHysterese = 50;
EE_Parameter.BitConfig = 0; // Bitcodiert: 0x01=oben, 0x02=unten, 0x04=links, 0x08=rechts
EE_Parameter.AchsKopplung1 = 90;
EE_Parameter.AchsKopplung2 = 67;
EE_Parameter.CouplingYawCorrection = 70;
EE_Parameter.WinkelUmschlagNick = 85;
EE_Parameter.WinkelUmschlagRoll = 85;
EE_Parameter.GyroAccAbgleich = 32; // 1/k
EE_Parameter.Driftkomp = 32;
EE_Parameter.DynamicStability = 50;
EE_Parameter.J16Bitmask = 95;
EE_Parameter.J17Bitmask = 243;
EE_Parameter.J16Timing = 30;
EE_Parameter.J17Timing = 30;
EE_Parameter.NaviGpsModeControl = 253;
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 = 4;
memcpy(EE_Parameter.Name, "Beginner\0", 12);
}
/tags/V0.72p/fc.c
0,0 → 1,1544
/*#######################################################################################
Flight Control
#######################################################################################*/
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Copyright (c) 04.2007 Holger Buss
// + Nur für den privaten Gebrauch
// + 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.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
#include "main.h"
#include "eeprom.c"
 
unsigned char h,m,s;
volatile unsigned int I2CTimeout = 100;
int MesswertNick,MesswertRoll,MesswertGier,MesswertGierBias, RohMesswertNick,RohMesswertRoll;
int TrimNick, TrimRoll;
int AdNeutralGierBias;
int AdNeutralNick = 0,AdNeutralRoll = 0,AdNeutralGier = 0,StartNeutralRoll = 0,StartNeutralNick = 0;
int Mittelwert_AccNick, Mittelwert_AccRoll,Mittelwert_AccHoch, NeutralAccX=0, NeutralAccY=0;
int NaviAccNick, NaviAccRoll,NaviCntAcc = 0;
volatile float NeutralAccZ = 0;
unsigned char CosinusNickWinkel = 0, CosinusRollWinkel = 0;
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;
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 Notlandung = 0;
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;
char IntegralFaktor;
int DiffNick,DiffRoll;
int Poti1 = 0, Poti2 = 0, Poti3 = 0, Poti4 = 0;
volatile unsigned char Motor_Vorne,Motor_Hinten,Motor_Rechts,Motor_Links;
volatile unsigned char Motor1, Motor2,Motor3,Motor4,Motor5,Motor6,Motor7,Motor8;
volatile unsigned char SenderOkay = 0;
int StickNick = 0,StickRoll = 0,StickGier = 0,StickGas = 0;
char MotorenEin = 0;
int HoehenWert = 0;
int SollHoehe = 0;
int LageKorrekturRoll = 0,LageKorrekturNick = 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_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_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_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;
struct mk_param_struct EE_Parameter;
signed int ExternStickNick = 0,ExternStickRoll = 0,ExternStickGier = 0, ExternHoehenValue = -20;
int MaxStickNick = 0,MaxStickRoll = 0;
unsigned int modell_fliegt = 0;
unsigned char MikroKopterFlags = 0;
long GIER_GRAD_FAKTOR = 1291;
signed int KopplungsteilNickRoll,KopplungsteilRollNick;
 
 
int MotorSmoothing(int neu, int alt)
{
int motor;
if(neu > alt) motor = (1*(int)alt + neu) / 2;
else motor = neu - (alt - neu)*1;
//if(Poti2 < 20) return(neu);
return(motor);
}
 
 
void Piep(unsigned char Anzahl)
{
while(Anzahl--)
{
if(MotorenEin) return; //auf keinen Fall im Flug!
beeptime = 100;
Delay_ms(250);
}
}
 
//############################################################################
// Nullwerte ermitteln
void SetNeutral(void)
//############################################################################
{
unsigned char i;
unsigned int gier_neutral=0, nick_neutral=0, roll_neutral=0;
ServoActive = 0; HEF4017R_ON;
NeutralAccX = 0;
NeutralAccY = 0;
NeutralAccZ = 0;
AdNeutralNick = 0;
AdNeutralRoll = 0;
AdNeutralGier = 0;
AdNeutralGierBias = 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);
AdNeutralGierBias = AdNeutralGier;
StartNeutralRoll = AdNeutralRoll;
StartNeutralNick = AdNeutralNick;
if(eeprom_read_byte(&EEPromArray[EEPROM_ADR_ACC_NICK]) > 4)
{
NeutralAccY = abs(Mittelwert_AccRoll) / (2*ACC_AMPLIFY);
NeutralAccX = abs(Mittelwert_AccNick) / (2*ACC_AMPLIFY);
NeutralAccZ = Aktuell_az;
}
else
{
NeutralAccX = (int)eeprom_read_byte(&EEPromArray[EEPROM_ADR_ACC_NICK]) * 256 + (int)eeprom_read_byte(&EEPromArray[EEPROM_ADR_ACC_NICK+1]);
NeutralAccY = (int)eeprom_read_byte(&EEPromArray[EEPROM_ADR_ACC_ROLL]) * 256 + (int)eeprom_read_byte(&EEPromArray[EEPROM_ADR_ACC_ROLL+1]);
NeutralAccZ = (int)eeprom_read_byte(&EEPromArray[EEPROM_ADR_ACC_Z]) * 256 + (int)eeprom_read_byte(&EEPromArray[EEPROM_ADR_ACC_Z+1]);
}
 
MesswertNick = 0;
MesswertRoll = 0;
MesswertGier = 0;
Delay_ms_Mess(100);
Mittelwert_AccNick = ACC_AMPLIFY * (long)AdWertAccNick;
Mittelwert_AccRoll = ACC_AMPLIFY * (long)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;
HoeheD = 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();
MikroKopterFlags |= FLAG_CALIBRATE;
FromNaviCtrl_Value.Kalman_K = -1;
FromNaviCtrl_Value.Kalman_MaxDrift = 0;
FromNaviCtrl_Value.Kalman_MaxFusion = 32;
Poti1 = PPM_in[EE_Parameter.Kanalbelegung[K_POTI1]] + 110;
Poti2 = PPM_in[EE_Parameter.Kanalbelegung[K_POTI2]] + 110;
Poti3 = PPM_in[EE_Parameter.Kanalbelegung[K_POTI3]] + 110;
Poti4 = PPM_in[EE_Parameter.Kanalbelegung[K_POTI4]] + 110;
ServoActive = 1;
SenderOkay = 100;
}
 
//############################################################################
// 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;
 
MesswertGier = (signed int) AdNeutralGier - AdWertGier;
// MesswertGierBias = (signed int) AdNeutralGierBias - AdWertGier;
MesswertNick = (signed int) AdWertNickFilter / 8;
MesswertRoll = (signed int) AdWertRollFilter / 8;
RohMesswertNick = MesswertNick;
RohMesswertRoll = MesswertRoll;
//DebugOut.Analog[21] = MesswertNick;
//DebugOut.Analog[22] = MesswertRoll;
//DebugOut.Analog[22] = Mess_Integral_Gier;
//DebugOut.Analog[21] = MesswertNick;
//DebugOut.Analog[22] = MesswertRoll;
 
// Beschleunigungssensor ++++++++++++++++++++++++++++++++++++++++++++++++
Mittelwert_AccNick = ((long)Mittelwert_AccNick * 3 + ((ACC_AMPLIFY * (long)AdWertAccNick))) / 4L;
Mittelwert_AccRoll = ((long)Mittelwert_AccRoll * 3 + ((ACC_AMPLIFY * (long)AdWertAccRoll))) / 4L;
Mittelwert_AccHoch = ((long)Mittelwert_AccHoch * 3 + ((long)AdWertAccHoch)) / 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(labs(tmpl) > 128 || labs(tmpl2) > 128 /* || abs(KopplungsteilNickRoll) > 128 || abs(KopplungsteilRollNick) > 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;
MesswertNick += (d2Nick * (signed int) Parameter_Gyro_D) / 16;
d2Roll = HiResRoll - oldRoll;
oldRoll = (oldRoll + HiResRoll)/2;
if(d2Roll > D_LIMIT) d2Roll = D_LIMIT;
else if(d2Roll < -D_LIMIT) d2Roll = -D_LIMIT;
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);
}
 
if(Poti1 < PPM_in[EE_Parameter.Kanalbelegung[K_POTI1]] + 110) Poti1++; else if(Poti1 > PPM_in[EE_Parameter.Kanalbelegung[K_POTI1]] + 110 && Poti1) Poti1--;
if(Poti2 < PPM_in[EE_Parameter.Kanalbelegung[K_POTI2]] + 110) Poti2++; else if(Poti2 > PPM_in[EE_Parameter.Kanalbelegung[K_POTI2]] + 110 && Poti2) Poti2--;
if(Poti3 < PPM_in[EE_Parameter.Kanalbelegung[K_POTI3]] + 110) Poti3++; else if(Poti3 > PPM_in[EE_Parameter.Kanalbelegung[K_POTI3]] + 110 && Poti3) Poti3--;
if(Poti4 < PPM_in[EE_Parameter.Kanalbelegung[K_POTI4]] + 110) Poti4++; else if(Poti4 > PPM_in[EE_Parameter.Kanalbelegung[K_POTI4]] + 110 && Poti4) Poti4--;
if(Poti1 < 0) Poti1 = 0; else if(Poti1 > 255) Poti1 = 255;
if(Poti2 < 0) Poti2 = 0; else if(Poti2 > 255) Poti2 = 255;
if(Poti3 < 0) Poti3 = 0; else if(Poti3 > 255) Poti3 = 255;
if(Poti4 < 0) Poti4 = 0; else if(Poti4 > 255) Poti4 = 255;
}
 
//############################################################################
// Messwerte beim Ermitteln der Nullage
void CalibrierMittelwert(void)
//############################################################################
{
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 * (long)AdWertAccNick;
Mittelwert_AccRoll = ACC_AMPLIFY * (long)AdWertAccRoll;
Mittelwert_AccHoch = (long)AdWertAccHoch;
// ADC einschalten
ANALOG_ON;
if(Poti1 < PPM_in[EE_Parameter.Kanalbelegung[K_POTI1]] + 110) Poti1++; else if(Poti1 > PPM_in[EE_Parameter.Kanalbelegung[K_POTI1]] + 110 && Poti1) Poti1--;
if(Poti2 < PPM_in[EE_Parameter.Kanalbelegung[K_POTI2]] + 110) Poti2++; else if(Poti2 > PPM_in[EE_Parameter.Kanalbelegung[K_POTI2]] + 110 && Poti2) Poti2--;
if(Poti3 < PPM_in[EE_Parameter.Kanalbelegung[K_POTI3]] + 110) Poti3++; else if(Poti3 > PPM_in[EE_Parameter.Kanalbelegung[K_POTI3]] + 110 && Poti3) Poti3--;
if(Poti4 < PPM_in[EE_Parameter.Kanalbelegung[K_POTI4]] + 110) Poti4++; else if(Poti4 > PPM_in[EE_Parameter.Kanalbelegung[K_POTI4]] + 110 && Poti4) Poti4--;
if(Poti1 < 0) Poti1 = 0; else if(Poti1 > 255) Poti1 = 255;
if(Poti2 < 0) Poti2 = 0; else if(Poti2 > 255) Poti2 = 255;
if(Poti3 < 0) Poti3 = 0; else if(Poti3 > 255) Poti3 = 255;
if(Poti4 < 0) Poti4 = 0; else if(Poti4 > 255) Poti4 = 255;
 
Umschlag180Nick = (long) EE_Parameter.WinkelUmschlagNick * 2500L;
Umschlag180Roll = (long) EE_Parameter.WinkelUmschlagRoll * 2500L;
}
 
//############################################################################
// Senden der Motorwerte per I2C-Bus
void SendMotorData(void)
//############################################################################
{
if(!MotorenEin)
{
#ifndef QUADRO
Motor1 = 0;Motor2 = 0;Motor3 = 0;Motor4 = 0;Motor5 = 0;Motor6 = 0;Motor7 = 0;Motor8 = 0;
if(MotorTest[0]) {Motor1 = MotorTest[0]; Motor2 = MotorTest[0];}
if(MotorTest[3]) {Motor3 = MotorTest[3]; Motor4 = MotorTest[3];}
if(MotorTest[1]) {Motor5 = MotorTest[1]; Motor6 = MotorTest[1];}
if(MotorTest[2]) {Motor7 = MotorTest[2]; Motor8 = MotorTest[2];}
#else
Motor_Hinten = 0; Motor_Vorne = 0; Motor_Rechts = 0; Motor_Links = 0;
if(MotorTest[0]) Motor_Vorne = MotorTest[0];
if(MotorTest[1]) Motor_Hinten = MotorTest[1];
if(MotorTest[2]) Motor_Links = MotorTest[2];
if(MotorTest[3]) Motor_Rechts = MotorTest[3];
#endif
 
MikroKopterFlags &= ~(FLAG_MOTOR_RUN | FLAG_FLY);
} else MikroKopterFlags |= FLAG_MOTOR_RUN;
 
DebugOut.Analog[12] = Motor_Vorne;
DebugOut.Analog[13] = Motor_Hinten;
DebugOut.Analog[14] = Motor_Links;
DebugOut.Analog[15] = Motor_Rechts;
 
//Start I2C Interrupt Mode
twi_state = 0;
motor = 0;
i2c_start();
}
 
 
 
//############################################################################
// Trägt ggf. das Poti als Parameter ein
void ParameterZuordnung(void)
//############################################################################
{
#define CHK_POTI_MM(b,a,min,max) { if(a > 250) { if(a == 251) b = Poti1; else if(a == 252) b = Poti2; else if(a == 253) b = Poti3; else if(a == 254) b = Poti4;} else b = a; if(b <= min) b = min; else if(b >= max) b = max;}
#define CHK_POTI(b,a,min,max) { if(a > 250) { if(a == 251) b = Poti1; else if(a == 252) b = Poti2; else if(a == 253) b = Poti3; else if(a == 254) b = Poti4;} else b = a; }
CHK_POTI(Parameter_MaxHoehe,EE_Parameter.MaxHoehe,0,255);
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(Parameter_Hoehe_ACC_Wirkung,EE_Parameter.Hoehe_ACC_Wirkung,0,255);
CHK_POTI(Parameter_KompassWirkung,EE_Parameter.KompassWirkung,0,255);
CHK_POTI_MM(Parameter_Gyro_P,EE_Parameter.Gyro_P,10,255);
CHK_POTI(Parameter_Gyro_I,EE_Parameter.Gyro_I,0,255);
CHK_POTI(Parameter_Gyro_D,EE_Parameter.Gyro_D,0,255);
CHK_POTI(Parameter_I_Faktor,EE_Parameter.I_Faktor,0,255);
CHK_POTI(Parameter_UserParam1,EE_Parameter.UserParam1,0,255);
CHK_POTI(Parameter_UserParam2,EE_Parameter.UserParam2,0,255);
CHK_POTI(Parameter_UserParam3,EE_Parameter.UserParam3,0,255);
CHK_POTI(Parameter_UserParam4,EE_Parameter.UserParam4,0,255);
CHK_POTI(Parameter_UserParam5,EE_Parameter.UserParam5,0,255);
CHK_POTI(Parameter_UserParam6,EE_Parameter.UserParam6,0,255);
CHK_POTI(Parameter_UserParam7,EE_Parameter.UserParam7,0,255);
CHK_POTI(Parameter_UserParam8,EE_Parameter.UserParam8,0,255);
CHK_POTI(Parameter_ServoNickControl,EE_Parameter.ServoNickControl,0,255);
CHK_POTI(Parameter_LoopGasLimit,EE_Parameter.LoopGasLimit,0,255);
CHK_POTI(Parameter_AchsKopplung1, EE_Parameter.AchsKopplung1,0,255);
CHK_POTI(Parameter_AchsKopplung2, EE_Parameter.AchsKopplung2,0,255);
CHK_POTI(Parameter_CouplingYawCorrection,EE_Parameter.CouplingYawCorrection,0,255);
// CHK_POTI(Parameter_AchsGegenKopplung1,EE_Parameter.AchsGegenKopplung1,0,255);
CHK_POTI(Parameter_DynamicStability,EE_Parameter.DynamicStability,0,255);
CHK_POTI_MM(Parameter_J16Timing,EE_Parameter.J16Timing,1,255);
CHK_POTI_MM(Parameter_J17Timing,EE_Parameter.J17Timing,1,255);
CHK_POTI(Parameter_ExternalControl,EE_Parameter.ExternalControl,0,255);
Ki = 10300 / (Parameter_I_Faktor + 1);
MAX_GAS = EE_Parameter.Gas_Max;
MIN_GAS = EE_Parameter.Gas_Min;
}
 
 
 
//############################################################################
//
void MotorRegler(void)
//############################################################################
{
int motorwert,pd_ergebnis_nick,pd_ergebnis_roll,h,tmp_int;
int GierMischanteil,GasMischanteil;
static long SummeNick=0,SummeRoll=0;
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 int hoehenregler = 0;
static int motorwert1,motorwert2,motorwert3,motorwert4,motorwert5,motorwert6,motorwert7,motorwert8;
static char TimerWerteausgabe = 0;
static char NeueKompassRichtungMerken = 0;
static long ausgleichNick, ausgleichRoll;
int IntegralNickMalFaktor,IntegralRollMalFaktor;
Mittelwert();
 
GRN_ON;
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Gaswert ermitteln
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
GasMischanteil = StickGas;
if(GasMischanteil < MIN_GAS + 10) GasMischanteil = MIN_GAS + 10;
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Empfang schlecht
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(SenderOkay < 100)
{
if(!PcZugriff)
{
if(BeepMuster == 0xffff)
{
beeptime = 15000;
BeepMuster = 0x0c00;
}
}
if(RcLostTimer) RcLostTimer--;
else
{
MotorenEin = 0;
Notlandung = 0;
}
ROT_ON;
if(modell_fliegt > 1000) // wahrscheinlich in der Luft --> langsam absenken
{
GasMischanteil = EE_Parameter.NotGas;
Notlandung = 1;
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)
{
Notlandung = 0;
RcLostTimer = EE_Parameter.NotGasZeit * 50;
if(GasMischanteil > 40 && MotorenEin)
{
if(modell_fliegt < 0xffff) modell_fliegt++;
}
if((modell_fliegt < 256))
{
SummeNick = 0;
SummeRoll = 0;
if(modell_fliegt == 250)
{
NeueKompassRichtungMerken = 1;
sollGier = 0;
Mess_Integral_Gier = 0;
// Mess_Integral_Gier2 = 0;
}
} else MikroKopterFlags |= FLAG_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;
SetActiveParamSetNumber(setting); // aktiven Datensatz merken
}
// else
if(abs(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]]) < 30 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < -70)
{
WinkelOut.CalcState = 1;
beeptime = 1000;
}
else
{
ReadParameterSet(GetActiveParamSetNumber(), (unsigned char *) &EE_Parameter.Kanalbelegung[0], STRUCT_PARAM_LAENGE);
if((EE_Parameter.GlobalConfig & CFG_HOEHENREGELUNG)) // Höhenregelung aktiviert?
{
if((MessLuftdruck > 950) || (MessLuftdruck < 750)) SucheLuftruckOffset();
}
SetNeutral();
Piep(GetActiveParamSetNumber());
}
}
}
else
if(PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] < -75) // ACC Neutralwerte speichern
{
if(++delay_neutral > 200) // nicht sofort
{
GRN_OFF;
eeprom_write_byte(&EEPromArray[EEPROM_ADR_ACC_NICK],0xff); // Werte löschen
MotorenEin = 0;
delay_neutral = 0;
modell_fliegt = 0;
SetNeutral();
eeprom_write_byte(&EEPromArray[EEPROM_ADR_ACC_NICK],NeutralAccX / 256); // ACC-NeutralWerte speichern
eeprom_write_byte(&EEPromArray[EEPROM_ADR_ACC_NICK+1],NeutralAccX % 256); // ACC-NeutralWerte speichern
eeprom_write_byte(&EEPromArray[EEPROM_ADR_ACC_ROLL],NeutralAccY / 256);
eeprom_write_byte(&EEPromArray[EEPROM_ADR_ACC_ROLL+1],NeutralAccY % 256);
eeprom_write_byte(&EEPromArray[EEPROM_ADR_ACC_Z],(int)NeutralAccZ / 256);
eeprom_write_byte(&EEPromArray[EEPROM_ADR_ACC_Z+1],(int)NeutralAccZ % 256);
Piep(GetActiveParamSetNumber());
}
}
else delay_neutral = 0;
}
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Gas ist unten
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(PPM_in[EE_Parameter.Kanalbelegung[K_GAS]] < 35-120)
{
// Starten
if(PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] < -75)
{
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Einschalten
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(++delay_einschalten > 200)
{
delay_einschalten = 200;
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;
MikroKopterFlags |= FLAG_START;
}
}
else delay_einschalten = 0;
//Auf Neutralwerte setzen
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Auschalten
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] > 75)
{
if(++delay_ausschalten > 200) // nicht sofort
{
MotorenEin = 0;
delay_ausschalten = 200;
modell_fliegt = 0;
}
}
else delay_ausschalten = 0;
}
}
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// neue Werte von der Funke
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(!NewPpmData-- || Notlandung)
{
int tmp_int;
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;
StickNick = stick_nick - (GPS_Nick + GPS_Nick2);
 
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;
StickRoll = stick_roll - (GPS_Roll + GPS_Roll2);
 
StickGier = -PPM_in[EE_Parameter.Kanalbelegung[K_GIER]];
if(StickGier > 2) StickGier -= 2; else
if(StickGier < -2) StickGier += 2; else StickGier = 0;
 
StickGas = PPM_in[EE_Parameter.Kanalbelegung[K_GAS]] + 120;
 
/* if(abs(PPM_in[EE_Parameter.Kanalbelegung[K_NICK]]) > MaxStickNick)
MaxStickNick = abs(PPM_in[EE_Parameter.Kanalbelegung[K_NICK]]); else MaxStickNick--;
if(abs(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]]) > MaxStickRoll)
MaxStickRoll = abs(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]]); else MaxStickRoll--;
*/
// GyroFaktor = ((float)Parameter_Gyro_P + 10.0) / (256.0/STICK_GAIN);
GyroFaktor = (Parameter_Gyro_P + 10.0);
// IntegralFaktor = ((float) Parameter_Gyro_I) / (44000 / STICK_GAIN);
IntegralFaktor = Parameter_Gyro_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(GyroFaktor < 0) GyroFaktor = 0;
if(IntegralFaktor < 0) 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(Notlandung) {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(Notlandung)
{
StickGier = 0;
StickNick = 0;
StickRoll = 0;
GyroFaktor = 90;//(float) 100 / (256.0 / STICK_GAIN);
IntegralFaktor = 120;//(float) 120 / (44000 / STICK_GAIN);
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)
{
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;
}
 
//if(Poti2 > 20) { tmp_long = 0; tmp_long2 = 0;}
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//(Poti2/10)
// 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;
//DebugOut.Analog[25] = MittelIntegralRoll2 / 26;
 
IntegralFehlerNick = tmp_long;
IntegralFehlerRoll = tmp_long2;
Mess_IntegralNick2 -= IntegralFehlerNick;
Mess_IntegralRoll2 -= IntegralFehlerRoll;
 
// IntegralFehlerNick = (IntegralFehlerNick * 1 + tmp_long) / 2;
// IntegralFehlerRoll = (IntegralFehlerRoll * 1 + tmp_long2) / 2;
if(EE_Parameter.Driftkomp)
{
if(GierGyroFehler > ABGLEICH_ANZAHL/2) { AdNeutralGier++; AdNeutralGierBias++; }
if(GierGyroFehler <-ABGLEICH_ANZAHL/2) { AdNeutralGier--; AdNeutralGierBias--; }
}
//DebugOut.Analog[22] = MittelIntegralRoll / 26;
//DebugOut.Analog[24] = GierGyroFehler;
GierGyroFehler = 0;
 
 
/*DebugOut.Analog[17] = IntegralAccNick / 26;
DebugOut.Analog[18] = IntegralAccRoll / 26;
DebugOut.Analog[19] = IntegralFehlerNick;// / 26;
DebugOut.Analog[20] = IntegralFehlerRoll;// / 26;
*/
//DebugOut.Analog[21] = MittelIntegralNick / 26;
//MittelIntegralRoll = MittelIntegralRoll;
//DebugOut.Analog[28] = ausgleichNick;
/*
DebugOut.Analog[29] = ausgleichRoll;
DebugOut.Analog[30] = LageKorrekturRoll * 10;
*/
 
#define FEHLER_LIMIT (ABGLEICH_ANZAHL * 4)
#define FEHLER_LIMIT2 (ABGLEICH_ANZAHL * 16)
#define BEWEGUNGS_LIMIT 20000
// Nick +++++++++++++++++++++++++++++++++++++++++++++++++
cnt = 1;// + labs(IntegralFehlerNick) / 4096;
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(IntegralFehlerNick) / 4096;
 
ausgleichRoll = 0;
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(GasMischanteil < 35) { if(StickGier > 10) StickGier = 10; else if(StickGier < -10) StickGier = -10;};
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
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//DebugOut.Analog[16] = KompassSignalSchlecht;
 
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 + 1;
fehler = ((540 + KompassValue - (ErsatzKompass/GIER_GRAD_FAKTOR)) % 360) - 180;
if(abs(MesswertGier) > 128)
{
fehler = 0;
}
 
if(NeueKompassRichtungMerken)
{
// ErsatzKompass += (fehler * 32) / korrektur;
// fehler = 0;
// fehler /= 4;
// ErsatzKompass = KompassValue * GIER_GRAD_FAKTOR;
}
if(!KompassSignalSchlecht && w < 25)
{
GierGyroFehler += fehler;
if(NeueKompassRichtungMerken)
{
beeptime = 200;
// KompassStartwert = KompassValue;
ErsatzKompass = KompassValue * GIER_GRAD_FAKTOR;
KompassStartwert = (ErsatzKompass/GIER_GRAD_FAKTOR);
NeueKompassRichtungMerken = 0;
}
}
ErsatzKompass += (fehler * 8) / 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;
// r = KompassRichtung;
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
}
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Debugwerte zuordnen
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(!TimerWerteausgabe--)
{
TimerWerteausgabe = 24;
 
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] = MesswertGier;
DebugOut.Analog[5] = HoehenWert;
DebugOut.Analog[6] = (Mess_Integral_Hoch / 512);//Aktuell_az;
DebugOut.Analog[8] = KompassValue;
DebugOut.Analog[9] = UBat;
DebugOut.Analog[11] = ErsatzKompass / GIER_GRAD_FAKTOR;
DebugOut.Analog[10] = SenderOkay;
//DebugOut.Analog[16] = Mittelwert_AccHoch;
//DebugOut.Analog[17] = FromNaviCtrl_Value.Distance;
//DebugOut.Analog[18] = (int)FromNaviCtrl_Value.OsdBar;
DebugOut.Analog[19] = WinkelOut.CalcState;
DebugOut.Analog[20] = ServoValue;
// DebugOut.Analog[24] = MesswertNick/2;
// DebugOut.Analog[25] = MesswertRoll/2;
DebugOut.Analog[27] = (int)FromNaviCtrl_Value.Kalman_MaxDrift;
// DebugOut.Analog[28] = (int)FromNaviCtrl_Value.Kalman_MaxFusion;
// DebugOut.Analog[29] = (int)FromNaviCtrl_Value.Kalman_K;
DebugOut.Analog[30] = GPS_Nick;
DebugOut.Analog[31] = GPS_Roll;
 
 
// DebugOut.Analog[19] -= DebugOut.Analog[19]/128;
// if(DebugOut.Analog[19] > 0) DebugOut.Analog[19]--; else DebugOut.Analog[19]++;
 
/* DebugOut.Analog[16] = motor_rx[0];
DebugOut.Analog[17] = motor_rx[1];
DebugOut.Analog[18] = motor_rx[2];
DebugOut.Analog[19] = motor_rx[3];
DebugOut.Analog[20] = motor_rx[0] + motor_rx[1] + motor_rx[2] + motor_rx[3];
DebugOut.Analog[20] /= 14;
DebugOut.Analog[21] = motor_rx[4];
DebugOut.Analog[22] = motor_rx[5];
DebugOut.Analog[23] = motor_rx[6];
DebugOut.Analog[24] = motor_rx[7];
DebugOut.Analog[25] = motor_rx[4] + motor_rx[5] + motor_rx[6] + motor_rx[7];
*/
// DebugOut.Analog[9] = MesswertNick;
// DebugOut.Analog[9] = SollHoehe;
// DebugOut.Analog[10] = Mess_Integral_Gier / 128;
// DebugOut.Analog[11] = KompassStartwert;
// DebugOut.Analog[10] = Parameter_Gyro_I;
// DebugOut.Analog[10] = EE_Parameter.Gyro_I;
// DebugOut.Analog[9] = KompassRichtung;
// DebugOut.Analog[10] = GasMischanteil;
// DebugOut.Analog[3] = HoeheD * 32;
// DebugOut.Analog[4] = hoehenregler;
}
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// 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);
}
 
#ifndef QUADRO
MesswertGier = (long)(MesswertGier * 4 * (long)GyroFaktor) / (256L / STICK_GAIN) + (long)(Integral_Gier * IntegralFaktor) / (4 * (44000 / STICK_GAIN));
#else
MesswertGier = (long)(MesswertGier * 2 * (long)GyroFaktor) / (256L / STICK_GAIN) + (long)(Integral_Gier * IntegralFaktor) / (2 * (44000 / STICK_GAIN));
#endif
 
// Maximalwerte abfangen
// #define MAX_SENSOR (4096*STICK_GAIN)
#define MAX_SENSOR (4096*4)
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
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
GasMischanteil *= STICK_GAIN;
if((EE_Parameter.GlobalConfig & CFG_HOEHENREGELUNG)) // Höhenregelung
{
int tmp_int;
static char delay = 100;
if(EE_Parameter.GlobalConfig & CFG_HOEHEN_SCHALTER) // Regler wird über Schalter gesteuert
{
if(((EE_Parameter.BitConfig & CFG_HIGHT_3SWITCH) && ((Parameter_MaxHoehe > 80) && (Parameter_MaxHoehe < 140))) ||
(!(EE_Parameter.BitConfig & CFG_HIGHT_3SWITCH) && (Parameter_MaxHoehe < 50)))
{
if(!delay--)
{
if(MessLuftdruck > 1000)
{
ExpandBaro -= 10;
OCR0A = DruckOffsetSetting - ExpandBaro;
beeptime = 300;
delay = 250;
}
else
if(MessLuftdruck < 100)
{
ExpandBaro += 10;
OCR0A = DruckOffsetSetting - ExpandBaro;
beeptime = 300;
delay = 250;
}
else
{
SollHoehe = HoehenWert - 20; // Parameter_MaxHoehe ist der PPM-Wert des Schalters
HoehenReglerAktiv = 0;
delay = 1;
}
}
}
else
{
HoehenReglerAktiv = 1;
delay = 200;
}
}
else
{
SollHoehe = ((int) ExternHoehenValue + (int) Parameter_MaxHoehe) * (int)EE_Parameter.Hoehe_Verstaerkung - 20;
HoehenReglerAktiv = 1;
}
 
if(Notlandung) SollHoehe = 0;
h = HoehenWert;
if((h > SollHoehe) && HoehenReglerAktiv) // zu hoch --> drosseln
{
h = ((h - SollHoehe) * (int) Parameter_Hoehe_P) / (16 / STICK_GAIN); // Differenz bestimmen --> P-Anteil
h = GasMischanteil - h; // vom Gas abziehen
// h -= (HoeheD * Parameter_Luftdruck_D)/(8/STICK_GAIN); // D-Anteil
h -= (HoeheD)/(8/STICK_GAIN); // D-Anteil
tmp_int = ((Mess_Integral_Hoch / 128) * (signed long) Parameter_Hoehe_ACC_Wirkung) / (128 / STICK_GAIN);
if(tmp_int > 70*STICK_GAIN) tmp_int = 70*STICK_GAIN;
else if(tmp_int < -(70*STICK_GAIN)) tmp_int = -(70*STICK_GAIN);
h -= tmp_int;
hoehenregler = (hoehenregler*15 + h) / 16;
if(hoehenregler < EE_Parameter.Hoehe_MinGas * STICK_GAIN) // nicht unter MIN
{
if(GasMischanteil >= EE_Parameter.Hoehe_MinGas * STICK_GAIN) hoehenregler = EE_Parameter.Hoehe_MinGas * STICK_GAIN;
if(GasMischanteil < EE_Parameter.Hoehe_MinGas * STICK_GAIN) hoehenregler = GasMischanteil;
}
if(hoehenregler > GasMischanteil) hoehenregler = GasMischanteil; // nicht mehr als Gas
GasMischanteil = hoehenregler;
}
}
if(GasMischanteil > (MAX_GAS - 20) * STICK_GAIN) GasMischanteil = (MAX_GAS - 20) * STICK_GAIN;
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Mischer und PI-Regler
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
DebugOut.Analog[7] = GasMischanteil;
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Gier-Anteil
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#define MUL_G 1.0
GierMischanteil = MesswertGier - sollGier * STICK_GAIN; // Regler für Gier
// GierMischanteil = 0;
#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);
pd_ergebnis_nick = DiffNick + SummeNick / Ki; // PI-Regler für Nick
// Motor Vorn
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);
pd_ergebnis_roll = DiffRoll + SummeRoll / Ki; // PI-Regler für Roll
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;
 
#ifdef QUADRO
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Quadro-Mischer
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
motorwert = GasMischanteil + pd_ergebnis_nick + GierMischanteil; // Mischer
motorwert1 = MotorSmoothing(motorwert,motorwert1);
motorwert = motorwert1 / STICK_GAIN; CHECK_MIN_MAX(motorwert,MIN_GAS,MAX_GAS);
Motor_Vorne = motorwert;
 
motorwert = GasMischanteil - pd_ergebnis_nick + GierMischanteil;
motorwert2 = MotorSmoothing(motorwert,motorwert2);
motorwert = motorwert2 / STICK_GAIN; CHECK_MIN_MAX(motorwert,MIN_GAS,MAX_GAS);
Motor_Hinten = motorwert;
 
motorwert = GasMischanteil + pd_ergebnis_roll - GierMischanteil;
motorwert3 = MotorSmoothing(motorwert,motorwert3);
motorwert = motorwert3 / STICK_GAIN; CHECK_MIN_MAX(motorwert,MIN_GAS,MAX_GAS);
Motor_Links = motorwert;
 
motorwert = GasMischanteil - pd_ergebnis_roll - GierMischanteil;
motorwert4 = MotorSmoothing(motorwert,motorwert4);
motorwert = motorwert4 / STICK_GAIN; CHECK_MIN_MAX(motorwert,MIN_GAS,MAX_GAS);
Motor_Rechts = motorwert;
// +++++++++++++++++++++++++++++++++++++++++++++++
#endif
#ifdef OCTO
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Octo-Mischer
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
motorwert = GasMischanteil + pd_ergebnis_nick + pd_ergebnis_roll + GierMischanteil;
motorwert /= STICK_GAIN; CHECK_MIN_MAX(motorwert,MIN_GAS,MAX_GAS);
Motor1 = motorwert;
 
motorwert = GasMischanteil + pd_ergebnis_nick - pd_ergebnis_roll - GierMischanteil;
motorwert /= STICK_GAIN; CHECK_MIN_MAX(motorwert,MIN_GAS,MAX_GAS);
Motor2 = motorwert;
 
motorwert = GasMischanteil + pd_ergebnis_nick - pd_ergebnis_roll + GierMischanteil;
motorwert /= STICK_GAIN; CHECK_MIN_MAX(motorwert,MIN_GAS,MAX_GAS);
Motor3 = motorwert;
 
motorwert = GasMischanteil - pd_ergebnis_nick - pd_ergebnis_roll - GierMischanteil;
motorwert /= STICK_GAIN; CHECK_MIN_MAX(motorwert,MIN_GAS,MAX_GAS);
Motor4 = motorwert;
 
motorwert = GasMischanteil - pd_ergebnis_nick - pd_ergebnis_roll + GierMischanteil;
motorwert /= STICK_GAIN; CHECK_MIN_MAX(motorwert,MIN_GAS,MAX_GAS);
Motor5 = motorwert;
 
motorwert = GasMischanteil - pd_ergebnis_nick + pd_ergebnis_roll - GierMischanteil;
motorwert /= STICK_GAIN; CHECK_MIN_MAX(motorwert,MIN_GAS,MAX_GAS);
Motor6 = motorwert;
 
motorwert = GasMischanteil - pd_ergebnis_nick + pd_ergebnis_roll + GierMischanteil;
motorwert /= STICK_GAIN; CHECK_MIN_MAX(motorwert,MIN_GAS,MAX_GAS);
Motor7 = motorwert;
 
motorwert = GasMischanteil + pd_ergebnis_nick + pd_ergebnis_roll - GierMischanteil;
motorwert /= STICK_GAIN; CHECK_MIN_MAX(motorwert,MIN_GAS,MAX_GAS);
Motor8 = motorwert;
// +++++++++++++++++++++++++++++++++++++++++++++++
#endif
#ifdef OCTO2
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Octo-Mischer
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
motorwert = GasMischanteil + pd_ergebnis_nick + GierMischanteil;
motorwert /= STICK_GAIN; CHECK_MIN_MAX(motorwert,MIN_GAS,MAX_GAS);
Motor1 = motorwert;
 
motorwert = GasMischanteil + pd_ergebnis_nick - pd_ergebnis_roll - GierMischanteil;
motorwert /= STICK_GAIN; CHECK_MIN_MAX(motorwert,MIN_GAS,MAX_GAS);
Motor2 = motorwert;
 
motorwert = GasMischanteil - pd_ergebnis_roll + GierMischanteil;
motorwert /= STICK_GAIN; CHECK_MIN_MAX(motorwert,MIN_GAS,MAX_GAS);
Motor3 = motorwert;
 
motorwert = GasMischanteil - pd_ergebnis_nick - pd_ergebnis_roll - GierMischanteil;
motorwert /= STICK_GAIN; CHECK_MIN_MAX(motorwert,MIN_GAS,MAX_GAS);
Motor4 = motorwert;
 
motorwert = GasMischanteil - pd_ergebnis_roll + GierMischanteil;
motorwert /= STICK_GAIN; CHECK_MIN_MAX(motorwert,MIN_GAS,MAX_GAS);
Motor5 = motorwert;
 
motorwert = GasMischanteil - pd_ergebnis_nick + pd_ergebnis_roll - GierMischanteil;
motorwert /= STICK_GAIN; CHECK_MIN_MAX(motorwert,MIN_GAS,MAX_GAS);
Motor6 = motorwert;
 
motorwert = GasMischanteil + pd_ergebnis_roll + GierMischanteil;
motorwert /= STICK_GAIN; CHECK_MIN_MAX(motorwert,MIN_GAS,MAX_GAS);
Motor7 = motorwert;
 
motorwert = GasMischanteil + pd_ergebnis_nick + pd_ergebnis_roll - GierMischanteil;
motorwert /= STICK_GAIN; CHECK_MIN_MAX(motorwert,MIN_GAS,MAX_GAS);
Motor8 = motorwert;
// +++++++++++++++++++++++++++++++++++++++++++++++
#endif
#ifdef OCTO3
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Octo-Mischer
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
motorwert = GasMischanteil + pd_ergebnis_nick + GierMischanteil;
motorwert /= STICK_GAIN; CHECK_MIN_MAX(motorwert,MIN_GAS,MAX_GAS);
Motor1 = motorwert;
 
motorwert = GasMischanteil + pd_ergebnis_nick - GierMischanteil;
motorwert /= STICK_GAIN; CHECK_MIN_MAX(motorwert,MIN_GAS,MAX_GAS);
Motor2 = motorwert;
 
motorwert = GasMischanteil - pd_ergebnis_roll + GierMischanteil;
motorwert /= STICK_GAIN; CHECK_MIN_MAX(motorwert,MIN_GAS,MAX_GAS);
Motor3 = motorwert;
 
motorwert = GasMischanteil - pd_ergebnis_roll - GierMischanteil;
motorwert /= STICK_GAIN; CHECK_MIN_MAX(motorwert,MIN_GAS,MAX_GAS);
Motor4 = motorwert;
 
motorwert = GasMischanteil - pd_ergebnis_nick + GierMischanteil;
motorwert /= STICK_GAIN; CHECK_MIN_MAX(motorwert,MIN_GAS,MAX_GAS);
Motor5 = motorwert;
 
motorwert = GasMischanteil - pd_ergebnis_nick - GierMischanteil;
motorwert /= STICK_GAIN; CHECK_MIN_MAX(motorwert,MIN_GAS,MAX_GAS);
Motor6 = motorwert;
 
motorwert = GasMischanteil + pd_ergebnis_roll + GierMischanteil;
motorwert /= STICK_GAIN; CHECK_MIN_MAX(motorwert,MIN_GAS,MAX_GAS);
Motor7 = motorwert;
 
motorwert = GasMischanteil + pd_ergebnis_roll - GierMischanteil;
motorwert /= STICK_GAIN; CHECK_MIN_MAX(motorwert,MIN_GAS,MAX_GAS);
Motor8 = motorwert;
// +++++++++++++++++++++++++++++++++++++++++++++++
#endif
 
/*
if(Poti1 > 20) Motor1 = 0;
if(Poti1 > 90) Motor6 = 0;
if(Poti1 > 140) Motor2 = 0;
//if(Poti1 > 200) Motor7 = 0;
*/
}
/tags/V0.72p/fc.h
0,0 → 1,186
/*#######################################################################################
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 FLAG_MOTOR_RUN 1
#define FLAG_FLY 2
#define FLAG_CALIBRATE 4
#define FLAG_START 8
 
#define CHECK_MIN_MAX(wert,min,max) {if(wert < min) wert = min; else if(wert > max) wert = max;}
 
extern unsigned char MikroKopterFlags;
extern volatile unsigned int I2CTimeout;
extern unsigned char Sekunde,Minute;
 
extern long IntegralNick,IntegralNick2;
extern long IntegralRoll,IntegralRoll2;
//extern int IntegralNick,IntegralNick2;
//extern int IntegralRoll,IntegralRoll2;
 
extern long Mess_IntegralNick,Mess_IntegralNick2;
extern long Mess_IntegralRoll,Mess_IntegralRoll2;
extern long IntegralAccNick,IntegralAccRoll;
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 int TrimNick, TrimRoll;
extern long ErsatzKompass;
extern int ErsatzKompassInGrad; // Kompasswert in Grad
extern int HoehenWert;
extern int SollHoehe;
extern int MesswertNick,MesswertRoll,MesswertGier;
extern int AdNeutralNick,AdNeutralRoll,AdNeutralGier, Mittelwert_AccNick, Mittelwert_AccRoll;
extern int NeutralAccX, NeutralAccY,Mittelwert_AccHoch;
extern volatile float 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;
void MotorRegler(void);
void SendMotorData(void);
void CalibrierMittelwert(void);
void Mittelwert(void);
void SetNeutral(void);
void Piep(unsigned char Anzahl);
extern void DefaultKonstanten(void);
void DefaultKonstanten1(void);
void DefaultKonstanten2(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 Motor_Vorne,Motor_Hinten,Motor_Rechts,Motor_Links, Count;
extern volatile unsigned char Motor1, Motor2,Motor3,Motor4,Motor5,Motor6,Motor7,Motor8;
extern volatile unsigned char SenderOkay;
extern int StickNick,StickRoll,StickGier;
extern char MotorenEin;
extern void DefaultKonstanten1(void);
extern void DefaultKonstanten2(void);
 
 
#define STRUCT_PARAM_LAENGE 92
struct mk_param_struct
{
unsigned char Kanalbelegung[8]; // 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 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 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 UfoAusrichtung; // X oder + Formation
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
unsigned char ServoNickRefresh; //
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
//---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
//------------------------------------------------
unsigned char BitConfig; // (war Loop-Cfg) Bitcodiert: 0x01=oben, 0x02=unten, 0x04=links, 0x08=rechts / wird getrennt behandelt
unsigned char ServoNickCompInvert; // Wert : 0-250 0 oder 1 // WICHTIG!!! am Ende lassen
unsigned char Reserved[4];
char Name[12];
};
 
extern struct mk_param_struct EE_Parameter;
 
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_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 unsigned char Parameter_NaviGpsModeControl; // Parameters for the Naviboard
extern unsigned char Parameter_NaviGpsGain;
extern unsigned char Parameter_NaviGpsP;
extern unsigned char Parameter_NaviGpsI;
extern unsigned char Parameter_NaviGpsD;
extern unsigned char Parameter_NaviGpsACC;
extern unsigned char Parameter_NaviOperatingRadius;
extern unsigned char Parameter_NaviWindCorrection;
extern unsigned char Parameter_NaviSpeedCompensation;
*/
#endif //_FC_H
 
/tags/V0.72p/flight.pnproj
0,0 → 1,0
<Project name="Flight-Ctrl"><File path="uart.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="printf_P.c"></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="eeprom.c"></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="Spectrum.c"></File><File path="Spectrum.h"></File></Project>
/tags/V0.72p/flight.pnps
0,0 → 1,0
<pd><ViewState><e p="Flight-Ctrl" x="true"></e></ViewState></pd>
/tags/V0.72p/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);
/tags/V0.72p/led.c
0,0 → 1,49
#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;
if(!delay--) // 10ms Intervall
{
delay = 4;
if((EE_Parameter.J16Timing > 250) && (Parameter_J16Timing > 230)) {if(EE_Parameter.J16Bitmask & 128) J16_ON; else J16_OFF;}
else
if((EE_Parameter.J16Timing > 250) && (Parameter_J16Timing < 10)) {if(EE_Parameter.J16Bitmask & 128) J16_OFF; else J16_ON;}
else
if(!J16Blinkcount--)
{
J16Blinkcount = Parameter_J16Timing-1;
if(J16Mask == 1) J16Mask = 128; else J16Mask /= 2;
if(J16Mask & EE_Parameter.J16Bitmask) J16_ON; else J16_OFF;
}
if((EE_Parameter.J17Timing > 250) && (Parameter_J17Timing > 230)) {if(EE_Parameter.J17Bitmask & 128) J17_ON; else J17_OFF;}
else
if((EE_Parameter.J17Timing > 250) && (Parameter_J17Timing < 10)) {if(EE_Parameter.J17Bitmask & 128) J17_OFF; else J17_ON;}
else
if(!J17Blinkcount--)
{
J17Blinkcount = Parameter_J17Timing-1;
if(J17Mask == 1) J17Mask = 128; else J17Mask /= 2;
if(J17Mask & EE_Parameter.J17Bitmask) J17_ON; else J17_OFF;
}
}
}
/tags/V0.72p/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);
/tags/V0.72p/main.c
0,0 → 1,310
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Copyright (c) 04.2007 Holger Buss
// + Nur für den privaten Gebrauch
// + 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 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 "main.h"
 
unsigned char EEPromArray[E2END+1] EEMEM;
unsigned char PlatinenVersion = 10;
unsigned char SendVersionToNavi = 1;
// -- Parametersatz aus EEPROM lesen ---
// number [1..5]
void ReadParameterSet(unsigned char number, unsigned char *buffer, unsigned char length)
{
if((number > 5)||(number < 1)) number = 3;
eeprom_read_block(buffer, &EEPromArray[EEPROM_ADR_PARAM_BEGIN + length * (number - 1)], length);
LED_Init();
}
 
// -- Parametersatz ins EEPROM schreiben ---
// number [1..5]
void WriteParameterSet(unsigned char number, unsigned char *buffer, unsigned char length)
{
if(number > 5) number = 5;
if(number < 1) return;
eeprom_write_block(buffer, &EEPromArray[EEPROM_ADR_PARAM_BEGIN + length * (number - 1)], length);
eeprom_write_byte(&EEPromArray[EEPROM_ADR_PARAM_LENGTH], length); // Länge der Datensätze merken
eeprom_write_block(buffer, &EEPromArray[EEPROM_ADR_CHANNELS], 8); // 8 Kanäle merken
SetActiveParamSetNumber(number);
LED_Init();
}
 
unsigned char GetActiveParamSetNumber(void)
{
unsigned char set;
set = eeprom_read_byte(&EEPromArray[EEPROM_ADR_ACTIVE_SET]);
if((set > 5) || (set < 1))
{
set = 3;
SetActiveParamSetNumber(set); // diesen Parametersatz als aktuell merken
}
return(set);
}
 
 
void SetActiveParamSetNumber(unsigned char number)
{
if(number > 5) number = 5;
if(number < 1) return;
eeprom_write_byte(&EEPromArray[EEPROM_ADR_ACTIVE_SET], number); // diesen Parametersatz als aktuell merken
}
 
 
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);
}
DebugOut.Analog[19] = WinkelOut.CalcState;
}
 
//############################################################################
//Hauptprogramm
int main (void)
//############################################################################
{
unsigned int timer;
DDRB = 0x00;
PORTB = 0x00;
for(timer = 0; timer < 1000; timer++); // verzögern
if(PINB & 0x01)
{
if(PINB & 0x02) PlatinenVersion = 13;
else PlatinenVersion = 11;
}
else
{
if(PINB & 0x02) PlatinenVersion = 20;
else PlatinenVersion = 10;
}
 
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
DDRD |=0x80; // J7 -> Servo signal
PORTD = 0x47; // LED
HEF4017R_ON;
MCUSR &=~(1<<WDRF);
WDTCSR |= (1<<WDCE)|(1<<WDE);
WDTCSR = 0;
 
beeptime = 2000;
 
StickGier = 0; PPM_in[K_GAS] = 0;StickRoll = 0; StickNick = 0;
if(PlatinenVersion >= 20) GIER_GRAD_FAKTOR = 1160; else GIER_GRAD_FAKTOR = 1291; // unterschiedlich für ME und ENC
ROT_OFF;
 
Timer_Init();
TIMER2_Init();
UART_Init();
rc_sum_init();
ADC_Init();
i2c_init();
SPI_MasterInit();
 
sei();
 
printf("\n\rFlightControl\n\rHardware:%d.%d\n\rSoftware:V%d.%d%c ",PlatinenVersion/10,PlatinenVersion%10, VERSION_MAJOR, VERSION_MINOR,VERSION_PATCH + 'a');
if(UCSR1A == 0x20 && UCSR1C == 0x06) // initial Values for 644P
{
Uart1Init();
}
printf("\n\r==============================");
GRN_ON;
ReadParameterSet(3, (unsigned char *) &EE_Parameter.Kanalbelegung[0], 9); // read only the first bytes
 
if(eeprom_read_byte(&EEPromArray[EEPROM_ADR_VALID]) != EE_DATENREVISION)
{
DefaultKonstanten1();
printf("\n\rInit. EEPROM");
for (unsigned char i=1;i<6;i++)
{
if(i==2) DefaultKonstanten2(); // Kamera
if(i==3) DefaultKonstanten3(); // Beginner
if(i>3) DefaultKonstanten2(); // Kamera
if(PlatinenVersion >= 20)
{
EE_Parameter.Gyro_D = 5;
EE_Parameter.Driftkomp = 0;
EE_Parameter.GyroAccFaktor = 27;
EE_Parameter.WinkelUmschlagNick = 78;
EE_Parameter.WinkelUmschlagRoll = 78;
}
// valid Stick-Settings?
if(eeprom_read_byte(&EEPromArray[EEPROM_ADR_CHANNELS]) < 12 && eeprom_read_byte(&EEPromArray[EEPROM_ADR_CHANNELS+1]) < 12 && eeprom_read_byte(&EEPromArray[EEPROM_ADR_CHANNELS+2]) < 12 && eeprom_read_byte(&EEPromArray[EEPROM_ADR_CHANNELS+3]) < 12)
{
EE_Parameter.Kanalbelegung[0] = eeprom_read_byte(&EEPromArray[EEPROM_ADR_CHANNELS+0]);
EE_Parameter.Kanalbelegung[1] = eeprom_read_byte(&EEPromArray[EEPROM_ADR_CHANNELS+1]);
EE_Parameter.Kanalbelegung[2] = eeprom_read_byte(&EEPromArray[EEPROM_ADR_CHANNELS+2]);
EE_Parameter.Kanalbelegung[3] = eeprom_read_byte(&EEPromArray[EEPROM_ADR_CHANNELS+3]);
EE_Parameter.Kanalbelegung[4] = eeprom_read_byte(&EEPromArray[EEPROM_ADR_CHANNELS+4]);
EE_Parameter.Kanalbelegung[5] = eeprom_read_byte(&EEPromArray[EEPROM_ADR_CHANNELS+5]);
EE_Parameter.Kanalbelegung[6] = eeprom_read_byte(&EEPromArray[EEPROM_ADR_CHANNELS+6]);
EE_Parameter.Kanalbelegung[7] = eeprom_read_byte(&EEPromArray[EEPROM_ADR_CHANNELS+7]);
if(i==1) printf(": Generating Default-Parameter using old Stick Settings");
} else DefaultStickMapping();
WriteParameterSet(i, (unsigned char *) &EE_Parameter.Kanalbelegung[0], STRUCT_PARAM_LAENGE);
}
SetActiveParamSetNumber(3); // default-Setting
eeprom_write_byte(&EEPromArray[EEPROM_ADR_VALID], EE_DATENREVISION);
}
 
if(eeprom_read_byte(&EEPromArray[EEPROM_ADR_ACC_NICK]) > 4)
{
printf("\n\rACC nicht abgeglichen!");
}
 
ReadParameterSet(GetActiveParamSetNumber(), (unsigned char *) &EE_Parameter.Kanalbelegung[0], STRUCT_PARAM_LAENGE);
printf("\n\rBenutze Parametersatz %d", GetActiveParamSetNumber());
 
 
if(EE_Parameter.GlobalConfig & CFG_HOEHENREGELUNG)
{
printf("\n\rAbgleich Luftdrucksensor..");
timer = SetDelay(1000);
SucheLuftruckOffset();
while (!CheckDelay(timer));
printf("OK\n\r");
}
 
SetNeutral();
 
ROT_OFF;
 
beeptime = 2000;
ExternControl.Digital[0] = 0x55;
 
 
printf("\n\rSteuerung: ");
if (EE_Parameter.GlobalConfig & CFG_HEADING_HOLD) printf("HeadingHold");
else printf("Neutral");
 
printf("\n\n\r");
 
LcdClear();
I2CTimeout = 5000;
WinkelOut.Orientation = 1;
while (1)
{
if(UpdateMotor && AdReady) // ReglerIntervall
{
UpdateMotor=0;
//J3High;
if(WinkelOut.CalcState) CalMk3Mag();
else MotorRegler();
//J3Low;
SendMotorData();
ROT_OFF;
if(PcZugriff) PcZugriff--;
else
{
ExternControl.Config = 0;
ExternStickNick = 0;
ExternStickRoll = 0;
ExternStickGier = 0;
}
if(SenderOkay) SenderOkay--;
if(!I2CTimeout)
{
I2CTimeout = 5;
i2c_reset();
if((BeepMuster == 0xffff) && MotorenEin)
{
beeptime = 10000;
BeepMuster = 0x0080;
}
}
else
{
I2CTimeout--;
ROT_OFF;
}
if(SIO_DEBUG && (!UpdateMotor || !MotorenEin))
{
DatenUebertragung();
BearbeiteRxDaten();
}
else BearbeiteRxDaten();
if(CheckDelay(timer))
{
if(UBat < EE_Parameter.UnterspannungsWarnung)
{
if(BeepMuster == 0xffff)
{
beeptime = 6000;
BeepMuster = 0x0300;
}
}
SPI_StartTransmitPacket();
 
SendSPI = 4;
timer = SetDelay(20);
}
LED_Update();
}
if(!SendSPI) { SPI_TransmitByte(); }
}
return (1);
}
 
/tags/V0.72p/main.h
0,0 → 1,160
#ifndef _MAIN_H
#define _MAIN_H
 
#define QUADRO
//#define OCTO // 2 Arms in Front
//#define OCTO2 // 1 Arm in front
//#define OCTO3 // 1 Arm with two Motors in front or Coax
 
//+++++++++++
// Quadro:
// 1
// 4 3
// 2
//+++++++++++
// Reverse Props on 1 2
 
//+++++++++++
// Octo:
// 1 2
// 8 3
// 7 4
// 6 5
//+++++++++++
 
//+++++++++++
// Octo2:
// 1
// 8 2
// 7 3
// 6 4
// 5
//+++++++++++
 
//+++++++++++
// Octo3:
// 1
// 2
// 8 7 3 4
// 5
// 6
//+++++++++++
// Reverse Props on octo: 1 3 5 7
 
 
//Hier die Quarz Frequenz einstellen
#if defined (__AVR_ATmega32__)
#define SYSCLK 20000000L //Quarz Frequenz in Hz
#endif
 
#if defined (__AVR_ATmega644__)
#define SYSCLK 20000000L //Quarz Frequenz in Hz
#endif
 
#if defined (__AVR_ATmega644P__)
#define SYSCLK 20000000L //Quarz Frequenz in Hz
#endif
 
// 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 F_CPU SYSCLK
//#ifndef F_CPU
//#error ################## F_CPU nicht definiert oder ungültig #############
//#endif
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#define EE_DATENREVISION 74 // wird angepasst, wenn sich die EEPROM-Daten geändert haben
 
#define EEPROM_ADR_VALID 1
#define EEPROM_ADR_ACTIVE_SET 2
#define EEPROM_ADR_LAST_OFFSET 3
 
#define EEPROM_ADR_ACC_NICK 4
#define EEPROM_ADR_ACC_ROLL 6
#define EEPROM_ADR_ACC_Z 8
 
#define EEPROM_ADR_CHANNELS 80
 
#define EEPROM_ADR_PARAM_LENGTH 98
#define EEPROM_ADR_PARAM_BEGIN 100
 
#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_HIGHT_3SWITCH 0x10
 
#define J3High PORTD |= 0x20
#define J3Low PORTD &= ~0x20
#define J4High PORTD |= 0x10
#define J4Low PORTD &= ~0x10
#define J5High PORTD |= 0x08
#define J5Low PORTD &= ~0x08
 
 
//#define SYSCLK
//extern unsigned long SYSCLK;
extern volatile unsigned char SenderOkay;
extern unsigned char CosinusNickWinkel, CosinusRollWinkel;
extern unsigned char PlatinenVersion;
extern unsigned char SendVersionToNavi;
void ReadParameterSet (unsigned char number, unsigned char *buffer, unsigned char length);
void WriteParameterSet(unsigned char number, unsigned char *buffer, unsigned char length);
extern unsigned char GetActiveParamSetNumber(void);
void SetActiveParamSetNumber(unsigned char number);
extern unsigned char EEPromArray[];
 
#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 "_Settings.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"
 
#ifndef EEMEM
#define EEMEM __attribute__ ((section (".eeprom")))
#endif
 
#define DEBUG_DISPLAY_INTERVALL 123 // in ms
 
 
#define DELAY_US(x) ((unsigned int)( (x) * 1e-6 * F_CPU ))
 
#endif //_MAIN_H
 
 
 
 
 
 
/tags/V0.72p/makefile
0,0 → 1,449
#--------------------------------------------------------------------
# MCU name
MCU = atmega644p
F_CPU = 20000000
#-------------------------------------------------------------------
VERSION_MAJOR = 0
VERSION_MINOR = 72
VERSION_PATCH = 15
 
VERSION_SERIAL_MAJOR = 10 # Serial Protocol
VERSION_SERIAL_MINOR = 0 # Serial Protocol
NC_SPI_COMPATIBLE = 5 # Navi-Kompatibilität
#-------------------------------------------------------------------
 
ifeq ($(MCU), atmega32)
# FUSE_SETTINGS= -u -U lfuse:w:0xff:m -U hfuse:w:0xcf:m
 
HEX_NAME = MEGA32
endif
 
ifeq ($(MCU), atmega644)
FUSE_SETTINGS = -u -U lfuse:w:0xff:m -U hfuse:w:0xdf:m
#FUSE_SETTINGS = -U lfuse:w:0xff:m -U hfuse:w:0xdf:m
# -u bei neuen Controllern wieder einspielen
HEX_NAME = MEGA644
endif
 
ifeq ($(MCU), atmega644p)
FUSE_SETTINGS = -u -U lfuse:w:0xff:m -U hfuse:w:0xdf:m
HEX_NAME = MEGA644
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
endif
ifeq ($(VERSION_PATCH), 1)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)b
endif
ifeq ($(VERSION_PATCH), 2)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)c
endif
ifeq ($(VERSION_PATCH), 3)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)d
endif
ifeq ($(VERSION_PATCH), 4)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)e
endif
ifeq ($(VERSION_PATCH), 5)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)f
endif
ifeq ($(VERSION_PATCH), 6)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)g
endif
ifeq ($(VERSION_PATCH), 7)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)h
endif
ifeq ($(VERSION_PATCH), 8)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)i
endif
ifeq ($(VERSION_PATCH), 9)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)j
endif
ifeq ($(VERSION_PATCH), 10)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)k
endif
ifeq ($(VERSION_PATCH), 11)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)L
endif
ifeq ($(VERSION_PATCH), 12)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)m
endif
ifeq ($(VERSION_PATCH), 13)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)n
endif
ifeq ($(VERSION_PATCH), 14)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)o
endif
ifeq ($(VERSION_PATCH), 15)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)p
endif
ifeq ($(VERSION_PATCH), 16)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)q
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 = 2
 
##########################################################################################################
# List C source files here. (C dependencies are automatically generated.)
SRC = main.c uart.c printf_P.c timer0.c analog.c menu.c
SRC += twimaster.c rc.c fc.c GPS.c spi.c led.c Spectrum.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 =
 
 
 
# 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
 
CFLAGS += -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 += -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) -A $(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 $(TARGET).eep \
$(TARGET).lss $(TARGET).sym 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.
# Display size of file.
sizebefore:
@if [ -f $(TARGET).elf ]; then echo Size before:; $(ELFSIZE); $(HEXSIZE); echo; fi
sizeafter:
@if [ -f $(TARGET).elf ]; then echo Size after:; $(ELFSIZE); $(HEXSIZE); 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) $(TARGET).hex
$(REMOVE) $(TARGET).eep
$(REMOVE) $(TARGET).obj
$(REMOVE) $(TARGET).cof
$(REMOVE) $(TARGET).elf
$(REMOVE) $(TARGET).map
$(REMOVE) $(TARGET).obj
$(REMOVE) $(TARGET).a90
$(REMOVE) $(TARGET).sym
$(REMOVE) $(TARGET).lnk
$(REMOVE) $(TARGET).lss
$(REMOVE) $(OBJ)
$(REMOVE) $(LST)
$(REMOVE) $(SRC:.c=.s)
$(REMOVE) $(SRC:.c=.d)
 
 
# 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
 
/tags/V0.72p/menu.c
0,0 → 1,154
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Copyright (c) 04.2007 Holger Buss
// + only for non-profit use
// + www.MikroKopter.com
// + see the File "License.txt" for further Informations
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#include "main.h"
 
unsigned int TestInt = 0;
#define ARRAYGROESSE 10
unsigned char Array[ARRAYGROESSE] = {1,2,3,4,5,6,7,8,9,10};
char DisplayBuff[80] = "Hallo Welt";
unsigned char DispPtr = 0;
 
unsigned char MaxMenue = 11;
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(void)
{
 
if(MenuePunkt > MaxMenue) MenuePunkt = MaxMenue;
 
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 +");
#ifndef QUADRO
LCD_printfxy(0,1,"HWV%d.%d SW%d.%d%c OCTO",PlatinenVersion/10,PlatinenVersion%10, VERSION_MAJOR, VERSION_MINOR, VERSION_PATCH +'a');
#else
LCD_printfxy(0,1,"HW:V%d.%d SW:%d.%d%c",PlatinenVersion/10,PlatinenVersion%10, VERSION_MAJOR, VERSION_MINOR, VERSION_PATCH +'a');
#endif
LCD_printfxy(0,2,"Setting: %d ",GetActiveParamSetNumber());
LCD_printfxy(0,3,"(c) Holger Buss");
// if(RemoteTasten & KEY3) TestInt--;
// if(RemoteTasten & KEY4) TestInt++;
break;
case 1:
if(EE_Parameter.GlobalConfig & CFG_HOEHENREGELUNG)
{
LCD_printfxy(0,0,"Hoehe: %5i",HoehenWert);
LCD_printfxy(0,1,"SollHoehe: %5i",SollHoehe);
LCD_printfxy(0,2,"Luftdruck: %5i",MessLuftdruck);
LCD_printfxy(0,3,"Off : %5i",DruckOffsetSetting);
}
else
{
LCD_printfxy(0,1,"Keine ");
LCD_printfxy(0,2,"Höhenregelung");
}
 
break;
case 2:
LCD_printfxy(0,0,"akt. Lage");
LCD_printfxy(0,1,"Nick: %5i",IntegralNick/1024);
LCD_printfxy(0,2,"Roll: %5i",IntegralRoll/1024);
LCD_printfxy(0,3,"Kompass: %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]],PPM_in[EE_Parameter.Kanalbelegung[K_GIER]]);
LCD_printfxy(0,2,"P1:%4i P2:%4i ",PPM_in[EE_Parameter.Kanalbelegung[K_POTI1]],PPM_in[EE_Parameter.Kanalbelegung[K_POTI2]]);
LCD_printfxy(0,3,"P3:%4i P4:%4i ",PPM_in[EE_Parameter.Kanalbelegung[K_POTI3]],PPM_in[EE_Parameter.Kanalbelegung[K_POTI4]]);
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,"Gier %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,"Gier %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,"Hoch %4i (%3i)",Mittelwert_AccHoch/*accumulate_AccHoch / messanzahl_AccHoch*/,(int)NeutralAccZ);
break;
case 7:
LCD_printfxy(0,1,"Spannung: %5i",UBat);
LCD_printfxy(0,2,"Empf.Pegel:%5i",SenderOkay);
break;
case 8:
LCD_printfxy(0,0,"Kompass ");
LCD_printfxy(0,1,"Richtung: %5i",KompassRichtung);
LCD_printfxy(0,2,"Messwert: %5i",KompassValue);
LCD_printfxy(0,3,"Start: %5i",KompassStartwert);
break;
case 9:
LCD_printfxy(0,0,"Poti1: %3i",Poti1);
LCD_printfxy(0,1,"Poti2: %3i",Poti2);
LCD_printfxy(0,2,"Poti3: %3i",Poti3);
LCD_printfxy(0,3,"Poti4: %3i",Poti4);
break;
case 10:
LCD_printfxy(0,0,"Servo " );
LCD_printfxy(0,1,"Setpoint %3i",Parameter_ServoNickControl);
LCD_printfxy(0,2,"Stellung: %3i",ServoValue);
LCD_printfxy(0,3,"Range:%3i-%3i",EE_Parameter.ServoNickMin,EE_Parameter.ServoNickMax);
break;
case 11:
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;
default: MaxMenue = MenuePunkt - 1;
MenuePunkt = 0;
break;
}
RemoteKeys = 0;
}
/tags/V0.72p/menu.h
0,0 → 1,9
extern void Menu(void);
extern void LcdClear(void);
extern char DisplayBuff[80];
extern unsigned char DispPtr;
 
extern unsigned char MaxMenue;
extern unsigned char MenuePunkt;
extern unsigned char RemoteKeys;
 
/tags/V0.72p/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
 
/tags/V0.72p/printf_P.c
0,0 → 1,480
// 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.
*/
 
/******************************************************************************
This file is a patched version of printf called _printf_P
It is made to work with avr-gcc for Atmel AVR MCUs.
There are some differences from standard printf:
1. There is no floating point support (with fp the code is about 8K!)
2. Return type is void
3. Format string must be in program memory (by using macro printf this is
done automaticaly)
4. %n is not implemented (just remove the comment around it if you need it)
5. If LIGHTPRINTF is defined, the code is about 550 bytes smaller and the
folowing specifiers are disabled :
space # * . - + p s o O
6. A function void uart_sendchar(char c) is used for output. The UART must
be initialized before using printf.
 
Alexander Popov
sasho@vip.orbitel.bg
******************************************************************************/
 
/*
* Actual printf innards.
*
* This code is large and complicated...
*/
 
#include <string.h>
#ifdef __STDC__
#include <stdarg.h>
#else
#include <varargs.h>
#endif
 
#include "main.h"
 
 
//#define LIGHTPRINTF
char PrintZiel;
 
 
char Putchar(char zeichen)
{
if(PrintZiel == OUT_LCD) { DisplayBuff[DispPtr++] = zeichen; return(1);}
else return(uart_putchar(zeichen));
}
 
 
void PRINT(const char * ptr, unsigned int len)
{
for(;len;len--) Putchar(*ptr++);
}
void PRINTP(const char * ptr, unsigned int len)
{
for(;len;len--) Putchar(pgm_read_byte(ptr++));
}
 
void PAD_SP(signed char howmany)
{
for(;howmany>0;howmany--) Putchar(' ');
}
 
void PAD_0(signed char howmany)
{
for(;howmany>0;howmany--) Putchar('0');
}
 
#define BUF 40
 
/*
* Macros for converting digits to letters and vice versa
*/
#define to_digit(c) ((c) - '0')
#define is_digit(c) ((c)<='9' && (c)>='0')
#define to_char(n) ((n) + '0')
 
/*
* Flags used during conversion.
*/
#define LONGINT 0x01 /* long integer */
#define LONGDBL 0x02 /* long double; unimplemented */
#define SHORTINT 0x04 /* short integer */
#define ALT 0x08 /* alternate form */
#define LADJUST 0x10 /* left adjustment */
#define ZEROPAD 0x20 /* zero (as opposed to blank) pad */
#define HEXPREFIX 0x40 /* add 0x or 0X prefix */
 
void _printf_P (char ziel,char const *fmt0, ...) /* Works with string from FLASH */
{
va_list ap;
register const char *fmt; /* format string */
register char ch; /* character from fmt */
register int n; /* handy integer (short term usage) */
register char *cp; /* handy char pointer (short term usage) */
const char *fmark; /* for remembering a place in fmt */
register unsigned char flags; /* flags as above */
signed char width; /* width from format (%8d), or 0 */
signed char prec; /* precision from format (%.3d), or -1 */
char sign; /* sign prefix (' ', '+', '-', or \0) */
unsigned long _ulong=0; /* integer arguments %[diouxX] */
#define OCT 8
#define DEC 10
#define HEX 16
unsigned char base; /* base for [diouxX] conversion */
signed char dprec; /* a copy of prec if [diouxX], 0 otherwise */
signed char dpad; /* extra 0 padding needed for integers */
signed char fieldsz; /* field size expanded by sign, dpad etc */
/* The initialization of 'size' is to suppress a warning that
'size' might be used unitialized. It seems gcc can't
quite grok this spaghetti code ... */
signed char size = 0; /* size of converted field or string */
char buf[BUF]; /* space for %c, %[diouxX], %[eEfgG] */
char ox[2]; /* space for 0x hex-prefix */
 
PrintZiel = ziel; // bestimmt, LCD oder UART
va_start(ap, fmt0);
fmt = fmt0;
 
/*
* Scan the format for conversions (`%' character).
*/
for (;;) {
for (fmark = fmt; (ch = pgm_read_byte(fmt)) != '\0' && ch != '%'; fmt++)
/* void */;
if ((n = fmt - fmark) != 0) {
PRINTP(fmark, n);
}
if (ch == '\0')
goto done;
fmt++; /* skip over '%' */
 
flags = 0;
dprec = 0;
width = 0;
prec = -1;
sign = '\0';
 
rflag: ch = PRG_RDB(fmt++);
reswitch:
#ifdef LIGHTPRINTF
if (ch=='o' || ch=='u' || (ch|0x20)=='x') {
#else
if (ch=='u' || (ch|0x20)=='x') {
#endif
if (flags&LONGINT) {
_ulong=va_arg(ap, unsigned long);
} else {
register unsigned int _d;
_d=va_arg(ap, unsigned int);
_ulong = flags&SHORTINT ? (unsigned long)(unsigned short)_d : (unsigned long)_d;
}
}
#ifndef LIGHTPRINTF
if(ch==' ') {
/*
* ``If the space and + flags both appear, the space
* flag will be ignored.''
* -- ANSI X3J11
*/
if (!sign)
sign = ' ';
goto rflag;
} else if (ch=='#') {
flags |= ALT;
goto rflag;
} else if (ch=='*'||ch=='-') {
if (ch=='*') {
/*
* ``A negative field width argument is taken as a
* - flag followed by a positive field width.''
* -- ANSI X3J11
* They don't exclude field widths read from args.
*/
if ((width = va_arg(ap, int)) >= 0)
goto rflag;
width = -width;
}
flags |= LADJUST;
flags &= ~ZEROPAD; /* '-' disables '0' */
goto rflag;
} else if (ch=='+') {
sign = '+';
goto rflag;
} else if (ch=='.') {
if ((ch = PRG_RDB(fmt++)) == '*') {
n = va_arg(ap, int);
prec = n < 0 ? -1 : n;
goto rflag;
}
n = 0;
while (is_digit(ch)) {
n = n*10 + to_digit(ch);
ch = PRG_RDB(fmt++);
}
prec = n < 0 ? -1 : n;
goto reswitch;
} else
#endif /* LIGHTPRINTF */
if (ch=='0') {
/*
* ``Note that 0 is taken as a flag, not as the
* beginning of a field width.''
* -- ANSI X3J11
*/
if (!(flags & LADJUST))
flags |= ZEROPAD; /* '-' disables '0' */
goto rflag;
} else if (ch>='1' && ch<='9') {
n = 0;
do {
n = 10 * n + to_digit(ch);
ch = PRG_RDB(fmt++);
} while (is_digit(ch));
width = n;
goto reswitch;
} else if (ch=='h') {
flags |= SHORTINT;
goto rflag;
} else if (ch=='l') {
flags |= LONGINT;
goto rflag;
} else if (ch=='c') {
*(cp = buf) = va_arg(ap, int);
size = 1;
sign = '\0';
} else if (ch=='D'||ch=='d'||ch=='i') {
if(ch=='D')
flags |= LONGINT;
if (flags&LONGINT) {
_ulong=va_arg(ap, long);
} else {
register int _d;
_d=va_arg(ap, int);
_ulong = flags&SHORTINT ? (long)(short)_d : (long)_d;
}
if ((long)_ulong < 0) {
_ulong = -_ulong;
sign = '-';
}
base = DEC;
goto number;
} else
/*
if (ch=='n') {
if (flags & LONGINT)
*va_arg(ap, long *) = ret;
else if (flags & SHORTINT)
*va_arg(ap, short *) = ret;
else
*va_arg(ap, int *) = ret;
continue; // no output
} else
*/
#ifndef LIGHTPRINTF
if (ch=='O'||ch=='o') {
if (ch=='O')
flags |= LONGINT;
base = OCT;
goto nosign;
} else if (ch=='p') {
/*
* ``The argument shall be a pointer to void. The
* value of the pointer is converted to a sequence
* of printable characters, in an implementation-
* defined manner.''
* -- ANSI X3J11
*/
/* NOSTRICT */
_ulong = (unsigned int)va_arg(ap, void *);
base = HEX;
flags |= HEXPREFIX;
ch = 'x';
goto nosign;
} else if (ch=='s') { // print a string from RAM
if ((cp = va_arg(ap, char *)) == NULL) {
cp=buf;
cp[0] = '(';
cp[1] = 'n';
cp[2] = 'u';
cp[4] = cp[3] = 'l';
cp[5] = ')';
cp[6] = '\0';
}
if (prec >= 0) {
/*
* can't use strlen; can only look for the
* NUL in the first `prec' characters, and
* strlen() will go further.
*/
char *p = (char*)memchr(cp, 0, prec);
 
if (p != NULL) {
size = p - cp;
if (size > prec)
size = prec;
} else
size = prec;
} else
size = strlen(cp);
sign = '\0';
} else
#endif /* LIGHTPRINTF */
if(ch=='U'||ch=='u') {
if (ch=='U')
flags |= LONGINT;
base = DEC;
goto nosign;
} else if (ch=='X'||ch=='x') {
base = HEX;
/* leading 0x/X only if non-zero */
if (flags & ALT && _ulong != 0)
flags |= HEXPREFIX;
 
/* unsigned conversions */
nosign: sign = '\0';
/*
* ``... diouXx conversions ... if a precision is
* specified, the 0 flag will be ignored.''
* -- ANSI X3J11
*/
number: if ((dprec = prec) >= 0)
flags &= ~ZEROPAD;
 
/*
* ``The result of converting a zero value with an
* explicit precision of zero is no characters.''
* -- ANSI X3J11
*/
cp = buf + BUF;
if (_ulong != 0 || prec != 0) {
register unsigned char _d,notlastdigit;
do {
notlastdigit=(_ulong>=base);
_d = _ulong % base;
 
if (_d<10) {
_d+='0';
} else {
_d+='a'-10;
if (ch=='X') _d&=~0x20;
}
*--cp=_d;
_ulong /= base;
} while (notlastdigit);
#ifndef LIGHTPRINTF
// handle octal leading 0
if (base==OCT && flags & ALT && *cp != '0')
*--cp = '0';
#endif
}
 
size = buf + BUF - cp;
} else { //default
/* "%?" prints ?, unless ? is NUL */
if (ch == '\0')
goto done;
/* pretend it was %c with argument ch */
cp = buf;
*cp = ch;
size = 1;
sign = '\0';
}
 
/*
* All reasonable formats wind up here. At this point,
* `cp' points to a string which (if not flags&LADJUST)
* should be padded out to `width' places. If
* flags&ZEROPAD, it should first be prefixed by any
* sign or other prefix; otherwise, it should be blank
* padded before the prefix is emitted. After any
* left-hand padding and prefixing, emit zeroes
* required by a decimal [diouxX] precision, then print
* the string proper, then emit zeroes required by any
* leftover floating precision; finally, if LADJUST,
* pad with blanks.
*/
 
/*
* compute actual size, so we know how much to pad.
*/
fieldsz = size;
 
dpad = dprec - size;
if (dpad < 0)
dpad = 0;
 
if (sign)
fieldsz++;
else if (flags & HEXPREFIX)
fieldsz += 2;
fieldsz += dpad;
 
/* right-adjusting blank padding */
if ((flags & (LADJUST|ZEROPAD)) == 0)
PAD_SP(width - fieldsz);
 
/* prefix */
if (sign) {
PRINT(&sign, 1);
} else if (flags & HEXPREFIX) {
ox[0] = '0';
ox[1] = ch;
PRINT(ox, 2);
}
 
/* right-adjusting zero padding */
if ((flags & (LADJUST|ZEROPAD)) == ZEROPAD)
PAD_0(width - fieldsz);
 
/* leading zeroes from decimal precision */
PAD_0(dpad);
 
/* the string or number proper */
PRINT(cp, size);
 
/* left-adjusting padding (always blank) */
if (flags & LADJUST)
PAD_SP(width - fieldsz);
}
done:
va_end(ap);
}
/tags/V0.72p/printf_P.h
0,0 → 1,19
#ifndef _PRINTF_P_H_
#define _PRINTF_P_H_
 
#include <avr/pgmspace.h>
 
#define OUT_V24 0
#define OUT_LCD 1
 
 
void _printf_P (char, char const *fmt0, ...);
extern char PrintZiel;
 
 
#define printf_P(format, args...) _printf_P(OUT_V24,format , ## args)
#define printf(format, args...) _printf_P(OUT_V24,PSTR(format) , ## args)
#define LCD_printfxy(x,y,format, args...) { DispPtr = y * 20 + x; _printf_P(OUT_LCD,PSTR(format) , ## args);}
#define LCD_printf(format, args...) { _printf_P(OUT_LCD,PSTR(format) , ## args);}
 
#endif
/tags/V0.72p/rc.c
0,0 → 1,122
/*#######################################################################################
Decodieren eines RC Summen Signals
#######################################################################################*/
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Copyright (c) 04.2007 Holger Buss
// + only for non-profit use
// + www.MikroKopter.com
// + see the File "License.txt" for further Informations
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
#include "rc.h"
#include "main.h"
 
volatile int PPM_in[11];
volatile int PPM_diff[11]; // das diffenzierte Stick-Signal
volatile unsigned char NewPpmData = 1;
 
//############################################################################
//zum decodieren des PPM-Signals wird Timer1 mit seiner Input
//Capture Funktion benutzt:
void rc_sum_init (void)
//############################################################################
{
TCCR1B=(1<<CS11)|(1<<CS10)|(1<<ICES1)|(1<<ICNC1);//|(1 << WGM12); //timer1 prescale 64
// TCCR1B=(1<<CS11)|(0<<CS10)|(1<<ICES1)|(1<<ICNC1); //timer1 prescale 64
TIMSK1 |= _BV(ICIE1);
AdNeutralGier = 0;
AdNeutralRoll = 0;
AdNeutralNick = 0;
return;
}
 
//############################################################################
//Diese Routine startet und inizialisiert den Timer für RC
SIGNAL(SIG_INPUT_CAPTURE1)
//############################################################################
 
{
static unsigned int AltICR=0;
signed int signal = 0,tmp;
static int index;
signal = (unsigned int) ICR1 - AltICR;
AltICR = ICR1;
//Syncronisationspause?
if((signal > 1100) && (signal < 8000))
{
if(index >= 4) NewPpmData = 0; // Null bedeutet: Neue Daten
index = 1;
}
else
{
if(index < 10)
{
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(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
}
}
}
 
/*
//############################################################################
//Diese Routine startet und inizialisiert den Timer für RC
SIGNAL(SIG_INPUT_CAPTURE1)
//############################################################################
 
{
static unsigned int AltICR=0;
signed int signal = 0,tmp;
static int index;
signal = (unsigned int) ICR1 - AltICR;
DebugOut.Analog[16] = signal;
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 < 10)
{
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++;
if(index == 5) J3High; else J3Low; // Servosignal an J3 anlegen
if(index == 2) J4High; else J4Low; // Servosignal an J4 anlegen
if(index == 7) J5High; else J5Low; // Servosignal an J5 anlegen
}
}
}
*/
 
 
 
/tags/V0.72p/rc.h
0,0 → 1,30
/*#######################################################################################
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[11];
extern volatile int PPM_diff[11]; // das diffenzierte Stick-Signal
extern volatile unsigned char NewPpmData;
 
#endif //_RC_H
/tags/V0.72p/spi.c
0,0 → 1,280
// ######################## SPI - FlightCtrl ###################
#include "main.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 SPI_VersionInfo;
 
unsigned char SPI_BufferIndex;
unsigned char SPI_RxBufferIndex;
 
volatile unsigned char SPI_Buffer[sizeof(FromNaviCtrl)];
unsigned char *SPI_TX_Buffer;
 
unsigned char SPITransferCompleted, SPI_ChkSum;
unsigned char SPI_RxDataValid;
 
unsigned char SPI_CommandSequence[] = { SPI_CMD_USER, SPI_CMD_STICK, SPI_CMD_PARAMETER1, SPI_CMD_STICK, SPI_CMD_MISC, SPI_CMD_VERSION };
unsigned char SPI_CommandCounter = 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_CMD_USER;
ToNaviCtrl.IntegralNick = 0;
ToNaviCtrl.IntegralRoll = 0;
SPI_RxDataValid = 0;
 
SPI_VersionInfo.Major = VERSION_MAJOR;
SPI_VersionInfo.Minor = VERSION_MINOR;
SPI_VersionInfo.Patch = VERSION_PATCH;
SPI_VersionInfo.Compatible = NC_SPI_COMPATIBLE;
}
 
//------------------------------------------------------
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;
//DebugOut.Analog[17]++;
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;
//DebugOut.Analog[18]++;
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)
{
static unsigned char i =0;
signed int tmp;
cli();
 
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.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_CMD_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] = (unsigned char) MikroKopterFlags;
MikroKopterFlags &= ~(FLAG_CALIBRATE | FLAG_START);
ToNaviCtrl.Param.Byte[9] = (unsigned char) UBat;
ToNaviCtrl.Param.Byte[10] =(unsigned char) EE_Parameter.UnterspannungsWarnung;
ToNaviCtrl.Param.Byte[11] =(unsigned char) eeprom_read_byte(&EEPromArray[EEPROM_ADR_ACTIVE_SET]);
break;
case SPI_CMD_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_CMD_STICK:
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;
ToNaviCtrl.Param.Byte[3] = (char) tmp;
ToNaviCtrl.Param.Byte[4] = (unsigned char) Poti1;
ToNaviCtrl.Param.Byte[5] = (unsigned char) Poti2;
ToNaviCtrl.Param.Byte[6] = (unsigned char) Poti3;
ToNaviCtrl.Param.Byte[7] = (unsigned char) Poti4;
ToNaviCtrl.Param.Byte[8] = (unsigned char) SenderOkay;
break;
case SPI_CMD_MISC:
if(WinkelOut.CalcState > 5)
{
WinkelOut.CalcState = 0;
ToNaviCtrl.Param.Byte[0] = 5;
}
else ToNaviCtrl.Param.Byte[0] = WinkelOut.CalcState;
ToNaviCtrl.Param.Int[1] = HoehenWert;
ToNaviCtrl.Param.Byte[1] = EE_Parameter.NaviPH_LoginTime;
ToNaviCtrl.Param.Byte[4] = EE_Parameter.NaviGpsPLimit;
ToNaviCtrl.Param.Byte[5] = EE_Parameter.NaviGpsILimit;
ToNaviCtrl.Param.Byte[6] = EE_Parameter.NaviGpsDLimit;
break;
 
case SPI_CMD_VERSION:
ToNaviCtrl.Param.Byte[0] = SPI_VersionInfo.Major;
ToNaviCtrl.Param.Byte[1] = SPI_VersionInfo.Minor;
ToNaviCtrl.Param.Byte[2] = SPI_VersionInfo.Patch;
ToNaviCtrl.Param.Byte[3] = SPI_VersionInfo.Compatible;
ToNaviCtrl.Param.Byte[4] = PlatinenVersion;
break;
}
 
sei();
 
if (SPI_RxDataValid)
{
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_KALMAN:
FromNaviCtrl_Value.Kalman_K = FromNaviCtrl.Param.Byte[0];
FromNaviCtrl_Value.Kalman_MaxFusion = FromNaviCtrl.Param.Byte[1];
FromNaviCtrl_Value.Kalman_MaxDrift = FromNaviCtrl.Param.Byte[2];
break;
 
default:
break;
}
}
else
{
// KompassValue = 0;
// KompassRichtung = 0;
 
GPS_Nick = 0;
GPS_Roll = 0;
}
}
 
#endif
 
 
/tags/V0.72p/spi.h
0,0 → 1,139
// ######################## SPI - FlightCtrl ###################
#ifndef _SPI_H
#define _SPI_H
 
#include <util/delay.h>
 
#define USE_SPI_COMMUNICATION
 
#define SPI_PROTOCOL_COMP 1
 
//-----------------------------------------
#define DDR_SPI DDRB
#define DD_SS PB4
#define DD_SCK PB7
#define DD_MOSI PB5
#define DD_MISO PB6
 
// 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 SLAVE_SELECT_DDR_PORT DDRC
#define SLAVE_SELECT_PORT PORTC
#define SPI_SLAVE_SELECT PC5
 
 
#define SPI_CMD_USER 10
#define SPI_CMD_STICK 11
#define SPI_CMD_MISC 12
#define SPI_CMD_PARAMETER1 13
#define SPI_CMD_VERSION 14
 
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
{ char Byte[12];
int Int[6];
long Long[3];
float Float[3];
} Param;
unsigned char Chksum;
};
 
#define SPI_KALMAN 103
 
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
{ char Byte[12];
int Int[6];
long Long[3];
float Float[3];
} Param;
unsigned char Chksum;
};
 
struct str_FromNaviCtrl_Value
{
signed char Kalman_K;
signed char Kalman_MaxDrift;
signed char Kalman_MaxFusion;
};
 
struct str_SPI_VersionInfo
{
unsigned char Major;
unsigned char Minor;
unsigned char Patch;
unsigned char Compatible;
};
 
#ifdef USE_SPI_COMMUNICATION
 
extern struct str_FromNaviCtrl_Value FromNaviCtrl_Value;
extern struct str_ToNaviCtrl ToNaviCtrl;
extern struct str_FromNaviCtrl FromNaviCtrl;
extern unsigned char SPI_CommandCounter;
 
//#define SPI_CMD_VALUE 0x03
 
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
/tags/V0.72p/timer0.c
0,0 → 1,379
#include "main.h"
 
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;
 
unsigned int BeepMuster = 0xffff;
int ServoValue = 0;
 
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
};
 
 
SIGNAL (SIG_OVERFLOW0) // 8kHz
{
static unsigned char cnt_1ms = 1,cnt = 0;
unsigned char pieper_ein = 0;
// TCNT0 -= 250;//TIMER_RELOAD_VALUE;
if(SendSPI) SendSPI--;
if(!cnt--)
{
cnt = 9;
cnt_1ms++;
cnt_1ms %= 2;
if(!cnt_1ms) UpdateMotor = 1;
CountMilliseconds++;
}
 
if(beeptime > 1)
{
beeptime--;
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(EE_Parameter.GlobalConfig & CFG_KOMPASS_AKTIV)
{
if(PINC & 0x10)
{
cntKompass++;
}
else
{
if((cntKompass) && (cntKompass < 362))
{
cntKompass += cntKompass / 41;
if(cntKompass > 10) KompassValue = cntKompass - 10; else KompassValue = 0;
}
// if(cntKompass < 10) cntKompass = 10;
// KompassValue = (unsigned long)((unsigned long)(cntKompass-10)*720L + 1L) / 703L;
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();
 
// set PD7 as output of the PWM for nick servo
DDRD |= (1<<DDD7);
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 = 120;
TCNT0 = (unsigned char)-TIMER_RELOAD_VALUE; // reload
//OCR1 = 0x00;
 
TIMSK0 |= _BV(TOIE0);
}
 
 
/*****************************************************/
/* Control Servo Position */
/*****************************************************/
 
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 (14063
#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 RemainingPulse = 0;
static uint16_t ServoFrameTime = 0;
static uint8_t ServoIndex = 0;
 
#define MULTIPLYER 4
static int16_t ServoNickOffset = (255 / 2) * MULTIPLYER; // initial value near center positon
 
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
 
ServoNickOffset = (ServoNickOffset * 3 + (int16_t)Parameter_ServoNickControl * MULTIPLYER) / 4; // lowpass offset
ServoNickValue = ServoNickOffset; // offset (Range from 0 to 255 * 3 = 765)
if(EE_Parameter.ServoNickCompInvert & 0x01)
{ // inverting movement of servo
ServoNickValue += (int16_t)( ( (int32_t)EE_Parameter.ServoNickComp * MULTIPLYER * (IntegralNick / 128L ) ) / (256L) );
}
else
{ // non inverting movement of servo
ServoNickValue -= (int16_t)( ( (int32_t)EE_Parameter.ServoNickComp * MULTIPLYER * (IntegralNick / 128L ) ) / (256L) );
}
// 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;
}
 
RemainingPulse += ServoNickValue - (256 / 2) * MULTIPLYER; // shift ServoNickValue to center position
 
ServoNickValue /= MULTIPLYER;
DebugOut.Analog[20] = ServoNickValue;
 
// 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;
}
// 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
ServoNickOffset = (ServoNickOffset * 3 + (int16_t)Parameter_ServoNickControl * MULTIPLYER) / 4; // lowpass offset
ServoNickValue = ServoNickOffset; // offset (Range from 0 to 255 * 3 = 765)
if(EE_Parameter.ServoNickCompInvert & 0x01)
{ // inverting movement of servo
ServoNickValue += (int16_t)( ( (int32_t)EE_Parameter.ServoNickComp * MULTIPLYER * (IntegralNick / 128L ) ) / (256L) );
}
else
{ // non inverting movement of servo
ServoNickValue -= (int16_t)( ( (int32_t)EE_Parameter.ServoNickComp * MULTIPLYER * (IntegralNick / 128L ) ) / (256L) );
}
// 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;
}
RemainingPulse += ServoNickValue - (256 / 2) * MULTIPLYER; // shift ServoNickValue to center position
ServoNickValue /= MULTIPLYER;
DebugOut.Analog[20] = ServoNickValue;
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 > 180) HEF4017R_OFF; // disable HEF4017 reset
ServoIndex++; // change to next servo channel
if(ServoIndex > EE_Parameter.ServoNickRefresh) 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
}
/tags/V0.72p/timer0.h
0,0 → 1,19
 
#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 Delay_ms(unsigned int);
void Delay_ms_Mess(unsigned int);
unsigned int SetDelay (unsigned int t);
char CheckDelay (unsigned int t);
 
extern volatile unsigned int CountMilliseconds;
extern volatile unsigned char UpdateMotor;
extern volatile unsigned int beeptime;
extern volatile unsigned int cntKompass;
extern int ServoValue;
extern unsigned int BeepMuster;
extern volatile unsigned char SendSPI, ServoActive;
/tags/V0.72p/twimaster.c
0,0 → 1,376
/*############################################################################
############################################################################*/
 
#include "main.h"
 
volatile unsigned char twi_state = 0;
unsigned char motor = 0;
unsigned char motorread = 0;
unsigned char motor_rx[16];
 
//############################################################################
//Initzialisieren der I2C (TWI) Schnittstelle
void i2c_init(void)
//############################################################################
{
TWSR = 0;
TWBR = ((SYSCLK/SCL_CLOCK)-16)/2;
}
 
//############################################################################
//Start I2C
char i2c_start(void)
//############################################################################
{
TWCR = (1<<TWSTA) | (1<<TWEN) | (1<<TWINT) | (1<<TWIE);
return(0);
}
 
//############################################################################
void i2c_stop(void)
//############################################################################
{
TWCR = (1<<TWEN) | (1<<TWSTO) | (1<<TWINT);
}
 
void i2c_reset(void)
//############################################################################
{
i2c_stop();
twi_state = 0;
motor = TWDR;
motor = 0;
TWCR = 0x80;
TWAMR = 0;
TWAR = 0;
TWDR = 0;
TWSR = 0;
TWBR = 0;
i2c_init();
i2c_start();
i2c_write_byte(0);
}
 
//############################################################################
char i2c_write_byte(char byte)
//############################################################################
{
TWSR = 0x00;
TWDR = byte;
TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWIE);
return(0);
}
 
#ifndef QUADRO
//############################################################################
SIGNAL (TWI_vect)
//############################################################################
{
switch (twi_state++)
{
case 0:
i2c_write_byte(0x52+(motor*2));
break;
case 1:
switch(motor++)
{
case 0:
i2c_write_byte(Motor1);
break;
case 1:
i2c_write_byte(Motor2);
break;
case 2:
i2c_write_byte(Motor3);
break;
case 3:
i2c_write_byte(Motor4);
break;
case 4:
i2c_write_byte(Motor5);
break;
case 5:
i2c_write_byte(Motor6);
break;
case 6:
i2c_write_byte(Motor7);
break;
case 7:
i2c_write_byte(Motor8);
break;
}
break;
case 2:
i2c_stop();
if (motor<8) twi_state = 0;
else motor = 0;
i2c_start();
break;
//Liest Daten von Motor
case 3:
i2c_write_byte(0x53+(motorread*2));
break;
case 4:
switch(motorread)
{
case 0:
i2c_write_byte(Motor1);
break;
case 1:
i2c_write_byte(Motor2);
break;
case 2:
i2c_write_byte(Motor3);
break;
case 3:
i2c_write_byte(Motor4);
break;
case 4:
i2c_write_byte(Motor5);
break;
case 5:
i2c_write_byte(Motor6);
break;
case 6:
i2c_write_byte(Motor7);
break;
case 7:
i2c_write_byte(Motor8);
break;
}
break;
case 5: //1 Byte vom Motor lesen
motor_rx[motorread] = TWDR;
 
case 6:
switch(motorread)
{
case 0:
i2c_write_byte(Motor1);
break;
case 1:
i2c_write_byte(Motor2);
break;
case 2:
i2c_write_byte(Motor3);
break;
case 3:
i2c_write_byte(Motor4);
break;
case 4:
i2c_write_byte(Motor5);
break;
case 5:
i2c_write_byte(Motor6);
break;
case 6:
i2c_write_byte(Motor7);
break;
case 7:
i2c_write_byte(Motor8);
break;
}
break;
case 7: //2 Byte vom Motor lesen
motor_rx[motorread+8] = TWDR;
motorread++;
if (motorread>7) motorread=0;
i2c_stop();
I2CTimeout = 10;
twi_state = 0;
break;
case 8: // Gyro-Offset
i2c_write_byte(0x98); // Address of the DAC
break;
case 9:
i2c_write_byte(0x10); // Update Channel A
break;
case 10:
i2c_write_byte(AnalogOffsetNick); // Value
break;
case 11:
i2c_write_byte(0x80); // Value
break;
case 12:
i2c_stop();
I2CTimeout = 10;
i2c_start();
break;
case 13:
i2c_write_byte(0x98); // Address of the DAC
break;
case 14:
i2c_write_byte(0x12); // Update Channel B
break;
case 15:
i2c_write_byte(AnalogOffsetRoll); // Value
break;
case 16:
i2c_write_byte(0x80); // Value
break;
case 17:
i2c_stop();
I2CTimeout = 10;
i2c_start();
break;
case 18:
i2c_write_byte(0x98); // Address of the DAC
break;
case 19:
i2c_write_byte(0x14); // Update Channel C
break;
case 20:
i2c_write_byte(AnalogOffsetGier); // Value
break;
case 21:
i2c_write_byte(0x80); // Value
break;
case 22:
i2c_stop();
I2CTimeout = 10;
twi_state = 0;
break;
}
TWCR |= 0x80;
}
#else
//############################################################################
SIGNAL (TWI_vect)
//############################################################################
{
switch (twi_state++)
{
case 0:
i2c_write_byte(0x52+(motor*2));
break;
case 1:
switch(motor++)
{
case 0:
i2c_write_byte(Motor_Vorne);
break;
case 1:
i2c_write_byte(Motor_Hinten);
break;
case 2:
i2c_write_byte(Motor_Rechts);
break;
case 3:
i2c_write_byte(Motor_Links);
break;
}
break;
case 2:
i2c_stop();
if (motor<4) twi_state = 0;
else motor = 0;
i2c_start();
break;
//Liest Daten von Motor
case 3:
i2c_write_byte(0x53+(motorread*2));
break;
case 4:
switch(motorread)
{
case 0:
i2c_write_byte(Motor_Vorne);
break;
case 1:
i2c_write_byte(Motor_Hinten);
break;
case 2:
i2c_write_byte(Motor_Rechts);
break;
case 3:
i2c_write_byte(Motor_Links);
break;
}
break;
case 5: //1 Byte vom Motor lesen
motor_rx[motorread] = TWDR;
 
case 6:
switch(motorread)
{
case 0:
i2c_write_byte(Motor_Vorne);
break;
case 1:
i2c_write_byte(Motor_Hinten);
break;
case 2:
i2c_write_byte(Motor_Rechts);
break;
case 3:
i2c_write_byte(Motor_Links);
break;
}
break;
case 7: //2 Byte vom Motor lesen
motor_rx[motorread+4] = TWDR;
motorread++;
if (motorread>3) motorread=0;
i2c_stop();
I2CTimeout = 10;
twi_state = 0;
break;
case 8: // Gyro-Offset
i2c_write_byte(0x98); // Address of the DAC
break;
case 9:
i2c_write_byte(0x10); // Update Channel A
break;
case 10:
i2c_write_byte(AnalogOffsetNick); // Value
break;
case 11:
i2c_write_byte(0x80); // Value
break;
case 12:
i2c_stop();
I2CTimeout = 10;
i2c_start();
break;
case 13:
i2c_write_byte(0x98); // Address of the DAC
break;
case 14:
i2c_write_byte(0x12); // Update Channel B
break;
case 15:
i2c_write_byte(AnalogOffsetRoll); // Value
break;
case 16:
i2c_write_byte(0x80); // Value
break;
case 17:
i2c_stop();
I2CTimeout = 10;
i2c_start();
break;
case 18:
i2c_write_byte(0x98); // Address of the DAC
break;
case 19:
i2c_write_byte(0x14); // Update Channel C
break;
case 20:
i2c_write_byte(AnalogOffsetGier); // Value
break;
case 21:
i2c_write_byte(0x80); // Value
break;
case 22:
i2c_stop();
I2CTimeout = 10;
twi_state = 0;
break;
}
TWCR |= 0x80;
}
#endif
/tags/V0.72p/twimaster.h
0,0 → 1,33
/*############################################################################
############################################################################*/
 
#ifndef _I2C_MASTER_H
#define _I2C_MASTER_H
 
//############################################################################
 
// I2C Konstanten
#define SCL_CLOCK 200000L
#define I2C_TIMEOUT 30000
#define I2C_START 0x08
#define I2C_REPEATED_START 0x10
#define I2C_TX_SLA_ACK 0x18
#define I2C_TX_DATA_ACK 0x28
#define I2C_RX_SLA_ACK 0x40
#define I2C_RX_DATA_ACK 0x50
 
//############################################################################
 
extern volatile unsigned char twi_state;
extern unsigned char motor;
extern unsigned char motorread;
extern unsigned char motor_rx[16];
 
void i2c_reset(void);
extern void i2c_init (void); // I2C initialisieren
extern char i2c_start (void); // Start I2C
extern void i2c_stop (void); // Stop I2C
extern char i2c_write_byte (char byte); // 1 Byte schreiben
extern void i2c_reset(void);
 
#endif
/tags/V0.72p/uart.c
0,0 → 1,543
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Copyright (c) 04.2007 Holger Buss
// + only for non-profit use
// + www.MikroKopter.com
// + see the File "License.txt" for further Informations
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#include <stdarg.h>
#include <string.h>
#include "main.h"
#include "uart.h"
 
 
#define FC_ADDRESS 1
#define NC_ADDRESS 2
#define MK3MAG_ADDRESS 3
 
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 SendeBuffer[MAX_SENDE_BUFF];
unsigned volatile char RxdBuffer[MAX_EMPFANGS_BUFF];
unsigned volatile char NMEABuffer[MAX_EMPFANGS_BUFF];
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 char *pRxData = 0;
unsigned char RxDataLen = 0;
unsigned volatile char PC_DebugTimeout = 0;
 
unsigned char DebugTextAnforderung = 255;
unsigned char PcZugriff = 100;
unsigned char MotorTest[4] = {0,0,0,0};
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 Debug_Timer,Kompass_Timer,Timer3D;
unsigned int DebugDataIntervall = 200, Intervall3D = 0;
 
const unsigned char ANALOG_TEXT[32][16] =
{
//1234567890123456
"AngleNick ", //0
"AngleRoll ",
"AccNick ",
"AccRoll ",
"GyroGier ",
"Hight Value ", //5
"AccZ ",
"Gas ",
"Compass Value ",
"Voltage ",
"Empfang ", //10
"Gyro Kompass ",
"Motor Front ",
"Motor Rear ",
"Motor Left ",
"Motor Right ", //15
" ",
" ",
" ",
"MK3Mag CalState ",
"Servo ", //20
" ",
" ",
" ",
" ",
" ", //25
" ",
"Kalman_MaxDrift ",
" ",
" ",
"GPS_Nick ", //30
"GPS_Roll "
};
 
 
 
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++ Sende-Part der Datenübertragung
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
SIGNAL(INT_VEC_TX)
{
static unsigned int ptr = 0;
unsigned char tmp_tx;
if(!UebertragungAbgeschlossen)
{
ptr++; // die [0] wurde schon gesendet
tmp_tx = SendeBuffer[ptr];
if((tmp_tx == '\r') || (ptr == MAX_SENDE_BUFF))
{
ptr = 0;
UebertragungAbgeschlossen = 1;
}
UDR = tmp_tx;
}
else ptr = 0;
}
 
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++ Empfangs-Part der Datenübertragung, incl. CRC-Auswertung
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
SIGNAL(INT_VEC_RX)
{
static unsigned int crc;
static unsigned char crc1,crc2,buf_ptr;
static unsigned char UartState = 0;
unsigned char CrcOkay = 0;
 
SioTmp = UDR;
if(buf_ptr >= MAX_EMPFANGS_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') wdt_enable(WDTO_250MS); // Reset-Commando
}
}
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 += SendeBuffer[i];
}
tmpCRC %= 4096;
SendeBuffer[i++] = '=' + tmpCRC / 64;
SendeBuffer[i++] = '=' + tmpCRC % 64;
SendeBuffer[i++] = '\r';
UebertragungAbgeschlossen = 0;
UDR = SendeBuffer[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;
 
SendeBuffer[pt++] = '#'; // Startzeichen
SendeBuffer[pt++] = 'a' + address; // Adresse (a=0; b=1,...)
SendeBuffer[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;
SendeBuffer[pt++] = '=' + (a >> 2);
SendeBuffer[pt++] = '=' + (((a & 0x03) << 4) | ((b & 0xf0) >> 4));
SendeBuffer[pt++] = '=' + (((b & 0x0f) << 2) | ((c & 0xc0) >> 6));
SendeBuffer[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
memcpy(&MotorTest[0], (unsigned char *)pRxData, sizeof(MotorTest));
//while(!UebertragungAbgeschlossen);
//SendOutData('T', MeineSlaveAdresse, 0);
PcZugriff = 255;
break;
 
case 'p': // get PPM Channels
GetPPMChannelAnforderung = 1;
break;
 
case 'q':// "Get"-Anforderung für Settings
// Bei Get werden die vom PC einstellbaren Werte vom PC zurückgelesen
if(pRxData[0] == 0xFF)
{
pRxData[0] = GetActiveParamSetNumber();
}
// limit settings range
if(pRxData[0] < 1) pRxData[0] = 1; // limit to 5
else if(pRxData[0] > 5) pRxData[0] = 5; // limit to 5
// load requested parameter set
ReadParameterSet(pRxData[0], (unsigned char *) &EE_Parameter.Kanalbelegung[0], STRUCT_PARAM_LAENGE);
 
while(!UebertragungAbgeschlossen);
tempchar1 = pRxData[0];
tempchar2 = EE_DATENREVISION;
SendOutData('Q', FC_ADDRESS, 3, &tempchar1, sizeof(tempchar1), &tempchar2, sizeof(tempchar2), (unsigned char *) &EE_Parameter.Kanalbelegung[0], STRUCT_PARAM_LAENGE);
break;
 
case 's': // Parametersatz speichern
if((1 <= pRxData[0]) && (pRxData[0] <= 5) && (pRxData[1] == EE_DATENREVISION)) // check for setting to be in range
{
memcpy((unsigned char *) &EE_Parameter.Kanalbelegung[0], (unsigned char *)&pRxData[2], STRUCT_PARAM_LAENGE);
WriteParameterSet(pRxData[0], (unsigned char *) &EE_Parameter.Kanalbelegung[0], STRUCT_PARAM_LAENGE);
Umschlag180Nick = (long) EE_Parameter.WinkelUmschlagNick * 2500L;
Umschlag180Roll = (long) EE_Parameter.WinkelUmschlagRoll * 2500L;
SetActiveParamSetNumber(pRxData[0]);
tempchar1 = GetActiveParamSetNumber();
Piep(tempchar1);
}
else
{
tempchar1 = 0; // mark in response an invlid setting
}
while(!UebertragungAbgeschlossen);
SendOutData('S', FC_ADDRESS, 1, &tempchar1, sizeof(tempchar1));
break;
 
} // case FC_ADDRESS:
 
default: // any Slave Address
 
switch(RxdBuffer[2])
{
// 't' comand placed here only for compatibility to BL
case 't':// Motortest
memcpy(&MotorTest[0], (unsigned char *)pRxData, sizeof(MotorTest));
while(!UebertragungAbgeschlossen);
SendOutData('T', MeineSlaveAdresse, 0);
PcZugriff = 255;
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;
break;
case 'd': // Poll the debug data
DebugDataIntervall = pRxData[0] * 10;
if(DebugDataIntervall > 0) DebugDataAnforderung = 1;
break;
 
case 'h':// x-1 Displayzeilen
PcZugriff = 255;
RemoteKeys |= pRxData[0];
if(RemoteKeys) DisplayLine = 0;
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;
}
break; // default:
}
NeuerDatensatzEmpfangen = 0;
pRxData = 0;
RxDataLen = 0;
}
 
//############################################################################
//Routine für die Serielle Ausgabe
int uart_putchar (char c)
//############################################################################
{
if (c == '\n')
uart_putchar('\r');
//Warten solange bis Zeichen gesendet wurde
loop_until_bit_is_set(USR, UDRE);
//Ausgabe des Zeichens
UDR = c;
 
return (0);
}
 
// --------------------------------------------------------------------------
void WriteProgramData(unsigned int pos, unsigned char wert)
{
//if (ProgramLocation == IN_RAM) Buffer[pos] = wert;
// else eeprom_write_byte(&EE_Buffer[pos], wert);
// Buffer[pos] = wert;
}
 
//############################################################################
//INstallation der Seriellen Schnittstelle
void UART_Init (void)
//############################################################################
{
//Enable TXEN im Register UCR TX-Data Enable & RX Enable
 
UCR=(1 << TXEN) | (1 << RXEN);
// UART Double Speed (U2X)
USR |= (1<<U2X);
// RX-Interrupt Freigabe
UCSRB |= (1<<RXCIE);
// TX-Interrupt Freigabe
UCSRB |= (1<<TXCIE);
 
//Teiler wird gesetzt
UBRR=(SYSCLK / (BAUD_RATE * 8L) - 1);
//UBRR = 33;
//öffnet einen Kanal für printf (STDOUT)
//fdevopen (uart_putchar, 0);
//sbi(PORTD,4);
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(DebugDisplayAnforderung && UebertragungAbgeschlossen)
{
Menu();
SendOutData('H', FC_ADDRESS, 2, &DisplayLine, sizeof(DisplayLine), &DisplayBuff[DisplayLine * 20], 20);
DisplayLine++;
if(DisplayLine >= 4) DisplayLine = 0;
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;
}
 
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('w', 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)
{
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);
SendOutData('C', FC_ADDRESS, 1, (unsigned char *) &Data3D,sizeof(Data3D));
Timer3D = SetDelay(Intervall3D);
}
if(DebugTextAnforderung != 255) // Texte für die Analogdaten
{
SendOutData('A', FC_ADDRESS, 2, (unsigned char *)&DebugTextAnforderung, sizeof(DebugTextAnforderung),(unsigned char *) ANALOG_TEXT[DebugTextAnforderung], 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;
}
 
}
 
/tags/V0.72p/uart.h
0,0 → 1,135
#ifndef _UART_H
#define _UART_H
 
#define MAX_SENDE_BUFF 150
#define MAX_EMPFANGS_BUFF 150
 
void BearbeiteRxDaten(void);
 
extern unsigned char DebugGetAnforderung;
extern unsigned volatile char SendeBuffer[MAX_SENDE_BUFF];
extern unsigned volatile char RxdBuffer[MAX_EMPFANGS_BUFF];
extern unsigned volatile char UebertragungAbgeschlossen;
extern unsigned volatile char PC_DebugTimeout;
extern unsigned volatile char NeueKoordinateEmpfangen;
extern unsigned char MeineSlaveAdresse;
extern unsigned char PcZugriff;
extern unsigned char RemotePollDisplayLine;
extern int Debug_Timer,Kompass_Timer;
extern void UART_Init (void);
extern int uart_putchar (char c);
extern void boot_program_page (uint32_t page, uint8_t *buf);
extern void DatenUebertragung(void);
extern void DecodeNMEA(void);
extern void BearbeiteRxDaten(void);
extern unsigned char MotorTest[4];
struct str_DebugOut
{
unsigned char Digital[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 reserve[8];
};
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;
 
struct str_VersionInfo
{
unsigned char SWMajor;
unsigned char SWMinor;
unsigned char ProtoMajor;
unsigned char ProtoMinor;
unsigned char SWPatch;
unsigned char Reserved[5];
};
extern struct str_VersionInfo VersionInfo;
 
//Die Baud_Rate der Seriellen Schnittstelle ist 9600 Baud
//#define BAUD_RATE 9600 //Baud Rate für die Serielle Schnittstelle
//#define BAUD_RATE 14400 //Baud Rate für die Serielle Schnittstelle
//#define BAUD_RATE 28800 //Baud Rate für die Serielle Schnittstelle
//#define BAUD_RATE 38400 //Baud Rate für die Serielle Schnittstelle
#define BAUD_RATE 57600 //Baud Rate für die Serielle Schnittstelle
 
//Anpassen der seriellen Schnittstellen Register wenn ein ATMega128 benutzt wird
#if defined (__AVR_ATmega128__)
# define USR UCSR0A
# define UCR UCSR0B
# define UDR UDR0
# define UBRR UBRR0L
# define EICR EICRB
#endif
 
#if defined (__AVR_ATmega32__)
# define USR UCSRA
# define UCR UCSRB
# define UBRR UBRRL
# define EICR EICRB
# define INT_VEC_RX SIG_UART_RECV
# define INT_VEC_TX SIG_UART_TRANS
#endif
 
#if defined (__AVR_ATmega644__)
# define USR UCSR0A
# define UCR UCSR0B
# define UDR UDR0
# define UBRR UBRR0L
# define EICR EICR0B
# define TXEN TXEN0
# define RXEN RXEN0
# define RXCIE RXCIE0
# define TXCIE TXCIE0
# define U2X U2X0
# define UCSRB UCSR0B
# define UDRE UDRE0
# define INT_VEC_RX SIG_USART_RECV
# define INT_VEC_TX SIG_USART_TRANS
#endif
 
#if defined (__AVR_ATmega644P__)
# define USR UCSR0A
# define UCR UCSR0B
# define UDR UDR0
# define UBRR UBRR0L
# define EICR EICR0B
# define TXEN TXEN0
# define RXEN RXEN0
# define RXCIE RXCIE0
# define TXCIE TXCIE0
# define U2X U2X0
# define UCSRB UCSR0B
# define UDRE UDRE0
# define INT_VEC_RX SIG_USART_RECV
# define INT_VEC_TX SIG_USART_TRANS
#endif
 
#endif //_UART_H
/tags/V0.72p/version.txt
0,0 → 1,239
 
-------
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
/tags/V0.72p
Property changes:
Added: tsvn:logminsize
+8
\ No newline at end of property