/branches/V0.78b_WKN-hef/rc.h |
---|
File deleted |
/branches/V0.78b_WKN-hef/menu.h |
---|
File deleted |
/branches/V0.78b_WKN-hef/flight.pnps |
---|
File deleted |
\ No newline at end of file |
/branches/V0.78b_WKN-hef/uart.c |
---|
File deleted |
/branches/V0.78b_WKN-hef/uart.h |
---|
File deleted |
/branches/V0.78b_WKN-hef/isqrt.S |
---|
File deleted |
/branches/V0.78b_WKN-hef/main.c |
---|
File deleted |
/branches/V0.78b_WKN-hef/old_macros.h |
---|
File deleted |
/branches/V0.78b_WKN-hef/main.h |
---|
File deleted |
/branches/V0.78b_WKN-hef/spi.c |
---|
File deleted |
/branches/V0.78b_WKN-hef/makefile |
---|
File deleted |
/branches/V0.78b_WKN-hef/gps.h |
---|
File deleted |
/branches/V0.78b_WKN-hef/timer0.c |
---|
File deleted |
/branches/V0.78b_WKN-hef/spi.h |
---|
File deleted |
/branches/V0.78b_WKN-hef/Spectrum.c |
---|
File deleted |
/branches/V0.78b_WKN-hef/led.c |
---|
File deleted |
/branches/V0.78b_WKN-hef/_Settings.h |
---|
File deleted |
/branches/V0.78b_WKN-hef/timer0.h |
---|
File deleted |
/branches/V0.78b_WKN-hef/Spectrum.h |
---|
File deleted |
/branches/V0.78b_WKN-hef/isqrt.h |
---|
File deleted |
/branches/V0.78b_WKN-hef/led.h |
---|
File deleted |
/branches/V0.78b_WKN-hef/twimaster.c |
---|
File deleted |
/branches/V0.78b_WKN-hef/License.txt |
---|
File deleted |
/branches/V0.78b_WKN-hef/printf_P.c |
---|
File deleted |
/branches/V0.78b_WKN-hef/version.txt |
---|
File deleted |
\ No newline at end of file |
/branches/V0.78b_WKN-hef/twimaster.h |
---|
File deleted |
/branches/V0.78b_WKN-hef/printf_P.h |
---|
File deleted |
/branches/V0.78b_WKN-hef/eeprom.c |
---|
File deleted |
/branches/V0.78b_WKN-hef/fc.c |
---|
File deleted |
/branches/V0.78b_WKN-hef/GPS.c |
---|
File deleted |
/branches/V0.78b_WKN-hef/fc.h |
---|
File deleted |
/branches/V0.78b_WKN-hef/mymath.c |
---|
File deleted |
/branches/V0.78b_WKN-hef/analog.c |
---|
File deleted |
/branches/V0.78b_WKN-hef/Hex-Files/Flight-Ctrl_MEGA644_V0_76g-WKN-hef.hex |
---|
File deleted |
/branches/V0.78b_WKN-hef/Hex-Files/WasIstWas.txt |
---|
File deleted |
\ No newline at end of file |
/branches/V0.78b_WKN-hef/Hex-Files/BootLoader_MEGA644_20MHZ_V0_1.hex |
---|
File deleted |
/branches/V0.78b_WKN-hef/Hex-Files/BootLoader_MEGA644P_20MHZ_V0_1.hex |
---|
File deleted |
/branches/V0.78b_WKN-hef/Hex-Files/Flight-Ctrl_MEGA644_V0_76g_S3D.hex |
---|
File deleted |
/branches/V0.78b_WKN-hef/FlightCtrl.aps |
---|
File deleted |
/branches/V0.78b_WKN-hef/flight.pnproj |
---|
File deleted |
\ No newline at end of file |
/branches/V0.78b_WKN-hef/mymath.h |
---|
File deleted |
/branches/V0.78b_WKN-hef/rc.c |
---|
File deleted |
/branches/V0.78b_WKN-hef/menu.c |
---|
File deleted |
/branches/V0.78b_WKN-hef/analog.h |
---|
File deleted |
/branches/V0.78b_WKN-hef |
---|
Property changes: |
Deleted: tsvn:logminsize |
-8 |
\ No newline at end of property |
/branches/V0.76g_WKN-hef/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> |
/branches/V0.76g_WKN-hef/GPS.c |
---|
0,0 → 1,32 |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Copyright (c) Holger Buss, Ingo Busker |
// + only for non-profit use |
// + www.MikroKopter.com |
// + see the File "License.txt" for further Informations |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
#include "main.h" |
signed int GPS_Nick = 0; |
signed int GPS_Roll = 0; |
signed int GPS_Nick2 = 0; |
signed int GPS_Roll2 = 0; |
long GpsAktuell_X = 0; |
long GpsAktuell_Y = 0; |
long GpsZiel_X = 0; |
long GpsZiel_Y = 0; |
void GPS_Neutral(void) |
{ |
GpsZiel_X = GpsAktuell_X; |
GpsZiel_Y = GpsAktuell_Y; |
} |
void GPS_BerechneZielrichtung(void) |
{ |
GPS_Nick = 0; |
GPS_Roll = 0; |
} |
/branches/V0.76g_WKN-hef/Hex-Files/BootLoader_MEGA644P_20MHZ_V0_1.hex |
---|
0,0 → 1,64 |
:10F8000011241FBECFEFD0E1DEBFCDBF11E0A0E0DD |
:10F81000B1E0E0EEFBEF02C005900D92A030B10721 |
:10F82000D9F712E0A0E0B1E001C01D92A230B1070B |
:10F83000E1F70C943B7C0C941D7C0895982F8091EB |
:10F84000C00085FFFCCF9093C60008958091C00052 |
:10F850008823E4F78091C600992708958DE40E94DB |
:10F860001E7C8BE40E941E7C82E40E941E7C8CE441 |
:10F870000E941E7C0895CFEFD0E1DEBFCDBFE0E057 |
:10F88000F0E014915F01772474BE98E10FB6F8940C |
:10F8900090936000109260000FBE7092C5008AE2E3 |
:10F8A0008093C4008091C00082608093C0009093D8 |
:10F8B000C10086E08093C200EF01072D8091C00057 |
:10F8C00087FF0DC0013031F48091C6008A3AB1F152 |
:10F8D00000E005C08091C6008B3109F401E0CE0143 |
:10F8E00021968436910528F11F3F41F0112331F014 |
:10F8F000E0910001F091010109951BC01092C50033 |
:10F900008AE28093C4008AE00E941E7C8DE00E94FF |
:10F910001E7C86E50E941E7C80E30E941E7C8EE297 |
:10F920000E941E7C81E30E941E7C8AE30E941E7C52 |
:10F9300005C080E593EC0197F1F7C0CF0E942E7CC3 |
:10F940000E94267C813611F489E547C1813471F427 |
:10F950000E94267CA82EBB24BA2CAA240E94267CB6 |
:10F960009927A82AB92AB694A79406C1823629F401 |
:10F9700089E50E941E7C81E00BC1823409F083C0BE |
:10F980000E94267C9927D82FCC270E94267C992775 |
:10F99000C82BD92B0E94267C082F12E0812E11E063 |
:10F9A000912EEE24FF2464010894811C911CEC1616 |
:10F9B000FD0618F40E94267C01C08FEFD6018C93BF |
:10F9C0000894E11CF11CBFEFEB16F10461F358F34E |
:10F9D000E4E77E1609F0DEC0063409F03DC0FFEF13 |
:10F9E000AF16F7EFBF0608F033C0DE01A5016627AA |
:10F9F0007727440F551F661F771F6A017B01C2E0FE |
:10FA0000D1E001E08991992729913327322F2227CC |
:10FA1000822B932B0C01FA0100935700E8951124D7 |
:10FA20004E5F5F4F6F4F7F4F129761F785E0F60192 |
:10FA300080935700E89507B600FCFDCF81E18093E5 |
:10FA40005700E89576956795579547955A0194C064 |
:10FA500080E00E941E7C90C0053409F08DC0F50145 |
:10FA60009E01A2E0B1E0E1BD8F2F992782BD8D916B |
:10FA700080BD3196FA9AF99AF999FECF215030401B |
:10FA800091F75F0179C0873609F047C00E94267C54 |
:10FA90009927D82ECC240E94267C9927C82AD92AB7 |
:10FAA0000E94267C863411F5E6016501EE24FF24D0 |
:10FAB000CC0CDD1CEE1CFF1CF60105911491802F6F |
:10FAC0000E941E7C812F99270E941E7C82E090E07C |
:10FAD000A0E0B0E0C80ED91EEA1EFB1E229761F717 |
:10FAE000F694E794D794C79456012ACF853409F049 |
:10FAF00027CF7501E1BC8F2D992782BDF89A089414 |
:10FB0000E11CF11C80B50E941E7C0894C108D1083C |
:10FB1000C114D10479F7570113CF853601F594E765 |
:10FB2000791651F580E090E0A0E0B0E023E0FC0120 |
:10FB300020935700E89507B600FCFDCF80509F4FFB |
:10FB4000AF4FBF4F8F3FE7EF9E07E0E0AE07E0E02B |
:10FB5000BE0768F381E180935700E8950DC08534B6 |
:10FB600069F488E190E02CE00FB6F894A8958093B2 |
:10FB700060000FBE209360008DE02FC08035E1F360 |
:10FB80008C34D1F3803711F483E527C0843721F416 |
:10FB90000E941E7C80E021C0843521F40E94267CD6 |
:10FBA000782EEACF8B3109F4C9CE8A3A09F4C6CE51 |
:10FBB000863529F480E30E941E7C81E30EC08337E2 |
:10FBC00041F489E00E941E7C86E90E941E7C8EE141 |
:10FBD00004C08B3109F4B4CE8FE30E941E7CB0CEFA |
:040000030000F80001 |
:00000001FF |
/branches/V0.76g_WKN-hef/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 |
/branches/V0.76g_WKN-hef/Hex-Files/Flight-Ctrl_MEGA644_V0_76g-WKN-hef.hex |
---|
0,0 → 1,3510 |
:100000000C9440050C945B050C945B050C945B050B |
:100010000C945B050C945B050C945B050C945B05E0 |
:100020000C945B050C9477180C945B050C945B05A1 |
:100030000C946D2C0C945B050C945B050C945B0587 |
:100040000C945B050C945B050C940B170C945B05EE |
:100050000C940F0C0C945B050C94D60B0C945B0564 |
:100060000C949D1D0C945B050C94282B0C945B0543 |
:100070000C9479670C945B050C945B054B1E3E1E3B |
:10008000321E181EFE1DDA1DEC1D4F21832080201C |
:10009000DA1D6D20532033201320C11F6F1F571E00 |
:1000A0009D2B902BDD2BC12BB52B4E2B5F2B5F2B6C |
:1000B000662B822B7D2B622B6A2B662B792B862B52 |
:1000C000622B6A2B662B752B8B2B622BEF2B0A0D69 |
:1000D000426174743A0020332043656C6C732020B5 |
:1000E0000020342043656C6C73202000204C6F7717 |
:1000F000207761726E696E67206C6576656C3A2058 |
:1001000025642E2564000A0D3D3D3D3D3D3D3D3DB0 |
:100110003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D0F |
:100120003D3D3D3D3D3D3D3D3D3D3D000A0D466C67 |
:1001300069676874436F6E74726F6C0A0D48617200 |
:1001400064776172653A25642E25640A0D536F66E3 |
:1001500074776172653A5625642E25642563200004 |
:100160000A0D74686520757365206F662074686970 |
:100170007320736F667477617265206973206F6E88 |
:100180006C79207065726D6974746564200A0D6FF6 |
:100190006E206F726967696E616C204D696B726F5A |
:1001A0004B6F707465722D4861726477617265007F |
:1001B0000A0D7777772E4D696B726F4B6F70746590 |
:1001C000722E646520286329204869537973746509 |
:1001D0006D7320476D6248000A0D3D3D3D3D3D3D3C |
:1001E0003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3F |
:1001F0003D3D3D3D3D3D3D3D3D3D3D3D3D000A0DCF |
:1002000047656E65726174696E67206465666175C5 |
:100210006C74204D69786572205461626C65000AC7 |
:100220000D4D697865722D436F6E6669673A2027B8 |
:1002300025732720282575204D6F746F7273290050 |
:100240000A0D466F756E6420424C2D4374726C3AF1 |
:100250002000256420000A0D0A0D2121204D49535C |
:1002600053494E4720424C2D4354524C3A2025646A |
:10027000202121000A0D3D3D3D3D3D3D3D3D3D3DA3 |
:100280003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D9E |
:100290003D3D3D3D3D3D3D3D3D000A0D496E69748E |
:1002A0002E20454550524F4D003A2047656E6572ED |
:1002B0006174696E672044656661756C742D506168 |
:1002C00072616D65746572207573696E67206F6CFD |
:1002D0006420537469636B2053657474696E67732B |
:1002E000000A0D466C696768742D74696D65202578 |
:1002F00075206D696E2020546F74616C3A257520ED |
:100300006D696E000A0D414343206E6F7420636176 |
:100310006C696272617465642021000A0D5573690D |
:100320006E6720706172616D6574657273657420AB |
:100330002564000A0D43616C6962726174696E67BD |
:100340002070726573737572652073656E736F725A |
:100350002E2E004F4B0A0D000A0D436F6E74726F04 |
:100360006C3A200048656164696E67486F6C640090 |
:100370004E6F726D616C20284143432D4D6F646553 |
:1003800029000A0D3D3D3D3D3D3D3D3D3D3D3D3D51 |
:100390003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D8D |
:1003A0003D3D3D3D3D3D3D0A0D002E000A0D2044E2 |
:1003B0004143206F7220493243204552524F52210F |
:1003C00020436865636B204932432C2033567265A5 |
:1003D000662C2044414320616E6420424C2D4374BE |
:1003E000726C005B25695D005B25695D002B204D0B |
:1003F000696B726F4B6F70746572202B0048573AAF |
:100400005625642E25642053573A25642E256425ED |
:10041000632D41727468757220500053657474695D |
:100420006E673A25642025730049324320455252B5 |
:100430004F52212121004D697373696E6720424C30 |
:100440002D4374726C3A25642121002863292048C9 |
:100450006F6C676572204275737300486F656865DD |
:100460003A202020202025356900536F6C6C486F9E |
:100470006568653A20253569004C75667464727547 |
:10048000636B3A20253569004F66662020202020C6 |
:10049000203A20253569004B65696E65200048F6D5 |
:1004A00068656E726567656C756E6700616B742E4A |
:1004B000204C616765004E69636B3A202020202044 |
:1004C0002025356900526F6C6C3A202020202020B6 |
:1004D000253569004B6F6D706173733A20202025BC |
:1004E0003569004B313A25346920204B323A2534A6 |
:1004F0006920004B333A25346920204B343A2534A7 |
:100500006920004B353A25346920204B363A253492 |
:100510006920004B373A25346920204B383A25347E |
:100520006920004E693A2534692020526F3A2534FB |
:1005300069200047733A253469202047693A2534F9 |
:1005400069200050313A253469202050323A253450 |
:1005500069200050333A253469202050343A25343C |
:100560006920004779726F202D2053656E736F727A |
:10057000004E69636B2025346920282533692E25B8 |
:10058000692900526F6C6C20253469202825336955 |
:100590002E256929004769657220253469202825A0 |
:1005A000336929004E69636B20253469202825337F |
:1005B000692E25782900526F6C6C2025346920281B |
:1005C0002533692E2578290047696572202534690D |
:1005D000202825336929004E69636B202534692062 |
:1005E0002825336929282533692900526F6C6C202E |
:1005F00025346920282533692928253369290047AE |
:100600006965722025346920282533692928253316 |
:10061000692900414343202D2053656E736F72009A |
:100620004E69636B202534692028253369290052DF |
:100630006F6C6C2025346920282533692900486FA8 |
:1006400063682025346920282533692900566F6C9A |
:10065000746167653A2020202535690052432D4C8E |
:100660006576656C3A20202535690052432D436834 |
:10067000616E6E656C733A253469004B6F6D706105 |
:100680007373202020202020200052696368747535 |
:100690006E673A2020253569004D65737377657262 |
:1006A000743A20202535690053746172743A202011 |
:1006B00020202025356900506F7469313A202025AB |
:1006C000336900506F7469323A2020253369005035 |
:1006D0006F7469333A202025336900506F74693490 |
:1006E0003A202025336900536572766F202000532D |
:1006F0006574706F696E74202025336900537465CA |
:100700006C6C756E673A202533690052616E6765BF |
:100710003A2533692D2533690045787465726E4337 |
:100720006F6E74726F6C2020004E693A2534692018 |
:1007300020526F3A253469200047733A25346920E6 |
:100740002047693A253469200048693A25346920F0 |
:100750002043663A2534692000424C2D4374726C64 |
:10076000204572726F72732000202533642020258B |
:100770003364202025336420202533642000202585 |
:100780003364202025336420202533642020253342 |
:100790006420002025336420202533642020253365 |
:1007A0006420202533642000424C2D4374726C2059 |
:1007B000666F756E6420002025632020202563204D |
:1007C0002020256320202025632000202563202071 |
:1007D0002025632020202563202020256320002061 |
:1007E00025632020202D2020202D2020202D0031A9 |
:1007F0003000313100313200466C696768742D5425 |
:10080000696D652020002020202020202535756D71 |
:10081000696E00546F74616C3A2535756D696E00B0 |
:1008200028726573657429000A0D506C65617365E3 |
:1008300020636F6E6E656374205370656B747275A0 |
:100840006D20726563656976657220666F722062DD |
:10085000696E64696E67204E4F572E2E2E006F6BA7 |
:100860002E0A0D0054696D656F75742E0A0D000017 |
:10087000010203040405060708090A0B0B0C0D0E00 |
:100880000F101111121314151516171818191A1B19 |
:100890001B1C1D1D1E1F1F20212122232324242554 |
:1008A00025262727282829292A2A2B2B2C2C2D2DB1 |
:1008B0002D2E2E2F2F303030313132323233333330 |
:1008C00034343435353536363637373737383838C7 |
:1008D000393939393A3A3A3A3B3B3B3B3C3C3C3C70 |
:1008E0003C3D3D3D3D3E3E3E3E3E3F3F3F3F3F3F28 |
:1008F00040404040404041414141414142424242EA |
:1009000042424243434343434343444444444444B4 |
:100910004444454545454545454545464646464684 |
:10092000464646464747474747474747474747485A |
:100930004848484848484848484849494949494931 |
:1009400049494949494949494A4A4A4A4A4A4A4A0F |
:100950004A4A4A4A4A4A4B4B4B4B4B4B4B4B4B4BED |
:100960004B4B4B4B4B4B4B4C4C4C4C4C4C4C4C4CCE |
:100970004C4C4C4C4C4C4C4C4C4C4D4D4D4D4D4DB1 |
:100980004D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D97 |
:100990004E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E77 |
:1009A0004E4E4E4E4E4E4E4E4E4E4F4F4F4F4F4F61 |
:1009B0004F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F47 |
:1009C0004F4F4F4F4F4F4F4F4F00008F001E01AD05 |
:1009D000013B02CA025803E603740402058F051B9B |
:1009E00006A7063307BE074808D2085B09E3096B70 |
:1009F0000AF20A780BFD0B810C040D860D070E8799 |
:100A00000E060F840F00107B10F5106E11E5115BC0 |
:100A100012CF124213B31323149214FE146A15D387 |
:100A2000153B16A11605176717C81727188318DE78 |
:100A30001837198E19E319361A871AD61A231B6E1E |
:100A40001BB61BFD1B411C831CC31C001D3C1D75DC |
:100A50001DAB1DE01D121E421E6F1E9A1EC31EE915 |
:100A60001E0D1F2E1F4D1F691F841F9B1FB01FC30C |
:100A70001FD31FE11FEC1FF51FFB1FFF1F002000EE |
:100A800011241FBECFEFD0E1DEBFCDBF13E0A0E049 |
:100A9000B1E0E8E6F8ED02C005900D92A63DB10781 |
:100AA000D9F71AE0A6EDB3E001C01D92A931B10754 |
:100AB000E1F70C948C060C940000282FFB01815068 |
:100AC000853008F023E0842F9927332721503040C8 |
:100AD000829FD001839FB00D929FB00D1124AC591D |
:100AE000BF4F019724F00E94166C0192FACF0E942A |
:100AF000D1650895863038F085E0A2E0B0E0082E98 |
:100B00000E94236C08958823C1F70895582F8630DA |
:100B100048F155E0842F9927252F33272150304065 |
:100B2000829FD001839FB00D929FB00D1124AC59CC |
:100B3000BF4FFB01019724F001900E94236CFACF74 |
:100B4000A2E6B0E0042E0E94236CA0E5B0E088E0AD |
:100B5000FB01182E0E942F6C852F0E947A050E949F |
:100B6000D16508958823B1F60895CF93A2E0B0E04F |
:100B70000E94166C802DC82F8150853020F0C3E074 |
:100B80008C2F0E947A058C2F9927CF910895809100 |
:100B9000E108E82FFF27EE0FFF1FE155F74F808197 |
:100BA00091818D5E9F4F14F010920301808191819D |
:100BB0008A5B9F4F24F480910301882319F02091D0 |
:100BC0007E0717C081E08093030120917E07280FE4 |
:100BD00020937E07253038F088EE93E09093FC0355 |
:100BE0008093FB0306C066E970E0822F0E948E317D |
:100BF000E6CF822F992790934C0880934B08089555 |
:100C00001F93CF93DF93182F882351F48091FF080F |
:100C10008233A0F080930001112309F479C038C019 |
:100C20008EEC90E09F938F931F920E9476140F900A |
:100C30000F900F908091FF08823360F784EF91E06E |
:100C40000E94F517EC01112309F042C0809127039F |
:100C500090912803823891050CF046C08091FF08DE |
:100C600023E0829FC0011124809300011123A1F28F |
:100C700068EC70E0822F0E948E3186ED90E09F93A9 |
:100C80008F931F920E9476140F900F900F90C4CFF5 |
:100C9000809100016AE00E94A66B892F99279F939B |
:100CA0008F93809100010E94A66B99279F938F9349 |
:100CB0008CEE90E09F938F931F920E9476148DB7D5 |
:100CC0009EB707960FB6F8949EBF0FBE8DBF20C08B |
:100CD000CE010E94FE17882309F0B8CFCE010E94F2 |
:100CE000FE178823A9F3B2CF8091FF089927880FB8 |
:100CF000991F880F991F80930001112309F48CCF4D |
:100D000068EC70E084E00E948E3181EE90E0B7CF15 |
:100D1000DF91CF911F910895CFEFD0E1DEBFCDBF1E |
:100D2000EE24FF2414B815B8C7EED3E0E297D7FF3E |
:100D3000FDCF189B6FC1199B78C12DE02093020154 |
:100D400081E887B93E9A8FEF88B98BE184B981E059 |
:100D500085B98EE38AB987E48BB9469A84B7877FD1 |
:100D600084BF809160008861809360001092600071 |
:100D700080ED97E09093FC038093FB031092D804DE |
:100D80001092D7041092B4081092B3081092DA04AB |
:100D90001092D9041092DC041092DB04243108F480 |
:100DA0003FC188E894E0A0E0B0E080938603909390 |
:100DB0008703A0938803B09389032A3009F465C19F |
:100DC000243109F462C1289A0E9460180E943118E7 |
:100DD0000E944B110E94582C0E946B1C0E94E72A13 |
:100DE0000E940662789486E091E09F938F931F9211 |
:100DF0000E9476140F900F900F9087E690E09F93DB |
:100E00008F938CE490E09F938F931F921F92809119 |
:100E100002016AE00E94A66B892F99279F938F9306 |
:100E2000809102010E94A66B99279F938F938CE279 |
:100E300091E09F938F931F920E9476148DB79EB777 |
:100E40000D960FB6F8949EBF0FBE8DBF80E691E061 |
:100E50009F938F931F920E9476140F900F900F9084 |
:100E600080EB91E09F938F931F920E9476140F90D6 |
:100E70000F900F9088ED91E09F938F931F920E94A7 |
:100E800076148091C8000F900F900F90803209F473 |
:100E9000F4C0809102018C3008F0C0C0299A49E06A |
:100EA00061EE78E083E00E945D05C8EED3E0DE01EC |
:100EB0000E94166C802D813009F4B9C08EEF91E04C |
:100EC0009F938F931F920E9476140F900F900F9014 |
:100ED00023ED35E0F9018FE0158616861786108A16 |
:100EE0008150349687FFF8CF80E48093E0058093AB |
:100EF000E1051092E2058093E3058093E40590EC10 |
:100F00009093E5051092E6058093E7058093E80548 |
:100F10001092E9059093EA059093EB058093EC0518 |
:100F20001092ED058093EE059093EF0581E080939C |
:100F3000D30544ED55E08BE0E4E0F1E0DA01019007 |
:100F40000D928A95E1F78DE4DE01F901182E0E94D9 |
:100F50002F6C8091850399279F938F935F934F9375 |
:100F60008FE192E09F938F931F920E9476148DB72A |
:100F70009EB707960FB6F8949EBF0FBE8DBF80E454 |
:100F800092E09F938F931F920E94761410924704D1 |
:100F90001092FF030E947B3F0F900F900F90809163 |
:100FA000FF038823E1F31092470480ED97E00E944D |
:100FB000F517EC01CC24DD2472E5A72E72E0B72EE4 |
:100FC0001092FF030E947B3F8091FF038823E1F38F |
:100FD000F601EE0FFF1FEE0FFF1FED52FA4F858552 |
:100FE00018160CF054C086010E55174FCE010E9402 |
:100FF000FE17882309F04EC0D8018C91882309F090 |
:1010000049C08093FF030E947B3F8091FF038823A8 |
:10101000E1F3ECCF199B2FC024E190CE29983FCF6C |
:101020008BE095E0A0E0B0E0C0CE2BE087CEA1E061 |
:10103000B0E00E94166C802D8F3F09F43FCF1092D4 |
:10104000850323ED35E08DE4DE01F901182E0E94C1 |
:101050001E6C90918503F9013D962FE080813496B6 |
:1010600018160CF49F5F215027FFF8CF909385034B |
:1010700044ED55E06ECF2AE061CE8091CA00863003 |
:1010800009F007CF0E94806604CF28989DCE860184 |
:101090000E55174FF8018081882309F03FC0860163 |
:1010A0000F5F1F4F68010C30110508F489CFCC2465 |
:1010B000DD2456E5A52E52E0B52EC1E025C0F6018F |
:1010C000EE0FFF1FEE0FFF1FED52FA4F858518162A |
:1010D0000CF586010F5F1F4F1F930F93BF92AF92C6 |
:1010E0009F930E947614C093F9030F900F900F9076 |
:1010F0000F900F9086E898E0C80ED91ED6011C927A |
:1011000068010C301105D0F4F601EE55F74F9081CF |
:101110009923A9F286010F5F1F4FECCF86010F5F65 |
:101120001F4F1F930F93BF92AF921F920E9476148E |
:101130000F900F900F900F900F90B4CF84E792E034 |
:101140009F938F931F920E9476140E947B3F0F9073 |
:101150000F900F90A1E0B0E00E94166C802D8035BA |
:1011600009F029C20EE010E0D8010E94166C802D13 |
:101170009927582F442748010894811C911CD401B9 |
:101180000E94166C802D480F511DECEFAE2EEFEF34 |
:10119000BE2EA00EB11ED5010E94166C802D99277F |
:1011A000382F22276DEFC62E6FEFD62EC00ED11E20 |
:1011B000D6010E94166C802D280F311DEFEF2F3FB6 |
:1011C0003E0709F4B9C2FFEF4F3F5F0709F4B4C20D |
:1011D0003093D7032093D6035093D9034093D80379 |
:1011E0008091D6039091D7039F938F938091D803DA |
:1011F0009091D9039F938F9381EE92E09F938F9369 |
:101200001F920E9476148DB79EB707960FB6F8947A |
:101210009EBF0FBE8DBFA4E0B0E00E94166C802D73 |
:10122000853008F0B8C20E94B50545E661EE78E069 |
:101230000E945D050E94B50599279F938F938BE1CE |
:1012400093E09F938F931F920E9476148091E908F8 |
:101250000F900F900F900F900F9080FD7BC20E9417 |
:10126000D53C809102018A3009F472C2843109F4BC |
:101270006FC2289A80ED97E09093FC038093FB0364 |
:1012800085E58093800788E593E09F938F931F9275 |
:101290000E9476148091E9080F900F900F9082FFC2 |
:1012A00054C284E693E09F938F931F920E9476141A |
:1012B0000F900F900F900E94322288E893E1909354 |
:1012C000AD038093AC0381E080937F070E9400060A |
:1012D00082E893E09F938F931F920E94761480ED93 |
:1012E00097E00E94F517EC010F900F900F908091FE |
:1012F000FF03882309F4A1C080911903882309F40E |
:101300009CC01092FF0380917E07882309F4D0C00F |
:101310000E94C7050E947B3F209102012A3009F4F8 |
:10132000D0C0243109F4CDC0289A8091DE048823EE |
:1013300009F4CDC08091DE0481508093DE04809159 |
:10134000C205882369F081508093C205882341F447 |
:101350001092C0051092BF051092BE051092BD05F7 |
:101360008091AC039091AD0301979093AD0380936E |
:10137000AC038091AC039091AD03892B29F080914F |
:101380004604882309F4D7C08091AC039091AD0343 |
:10139000892B09F4D6C080911203909113038F5FBB |
:1013A0009F4F09F4E7C08091FF03882321F08091CB |
:1013B000D404882311F40E9487110E94700ECE017C |
:1013C0000E94FE178823B9F1649680910F03882349 |
:1013D00009F489C0815080930F0380910001282F68 |
:1013E00033278091270390912803821793070CF0ED |
:1013F00074C08091AD0480628093AD04809112032B |
:10140000909113038F5F9F4F09F4C8C00E94F86446 |
:1014100084E08093FA038091D404882321F45AEA6B |
:10142000E52E55E0F52E0894E11CF11CF2E7EF16CD |
:10143000FBE0FF0651F00E94E0658091FA038823EB |
:1014400009F055CF0E943C6552CFEE24FF24209135 |
:10145000D8033091D9032F5F3F4F3093D9032093A6 |
:10146000D8038091D6039091D70301969093D70328 |
:101470008093D603832F9927D801082E0E94236CCE |
:101480008091D803D401082E0E94236C8091D70349 |
:10149000D501082E0E94236C8091D603D601082E18 |
:1014A0000E94236C84E190E00E94F517EC01C3CF09 |
:1014B0000E9494430E947B3F209102012A3009F050 |
:1014C00030CF28988091DE04882309F033CF8091B3 |
:1014D0006F00806280936F0032CF8091AD048F7D6A |
:1014E0008093AD0493CF80938A071092B904109231 |
:1014F000B8041092B7041092B6041092B50410927A |
:10150000B40480911203909113038F5F9F4F09F0F1 |
:1015100064CF8091DE04882309F05FCF88E99AE3E5 |
:101520009093FC038093FB0380E09CE09093130373 |
:101530008093120352CF2A3079F1243169F1289A2D |
:1015400032CF0E94FD2A85E090E09093AD03809316 |
:10155000AC0380915D0890915E08019690935E08BF |
:1015600080935D0880911203909113038F5F9F4FCA |
:1015700009F019CF8091D404882309F414CF80E1B5 |
:1015800097E29093FC038093FB0380E890E09093B4 |
:1015900013038093120307CF289805CF80E797E1C4 |
:1015A0009093FC038093FB0380E093E090931303FC |
:1015B000809312032BCF0E94F92E8AE992E09F9329 |
:1015C0008F931F920E94761431E0932E0F900F900C |
:1015D0000F90C0E5D0E08E010F5F1F4F22E0C22EBA |
:1015E000D12CCC0EDD1E93E0A92EB12CAC0EBD1E6D |
:1015F00084E0682E712C6C0E7D1EB5E04B2E512CB4 |
:101600004C0E5D1EA6E02A2E312C2C0E3D1EE2E073 |
:101610009E1609F48BC0F3E09F1609F48AC023E0FC |
:10162000291508F483C080910201843168F085E0B7 |
:101630008093FC0810921A098BE18093F8088EE4DD |
:101640008093170980931809DE010E94166C802D83 |
:101650008C3008F068C0D8010E94166C802D8C3048 |
:1016600008F061C0D6010E94166C802D8C3008F005 |
:101670005AC0D5010E94166C802D8C3008F053C0E2 |
:10168000DE010E94166C802D8093E108D8010E9433 |
:10169000166C802D8093E208D6010E94166C802D76 |
:1016A0008093E308D5010E94166C802D8093E40896 |
:1016B000D3010E94166C802D8093E508D2010E9410 |
:1016C000166C802D8093E608D1010E94166C802D47 |
:1016D0008093E708A7E5B0E00E94166C802D809308 |
:1016E000E80881E0981651F4A9EAB2E0BF93AF93FD |
:1016F0001F920E9476140F900F900F9045E661EEB6 |
:1017000078E0892D0E9486059394B5E0B91508F01C |
:101710007ECF83E00E947A0580E5A1E0B0E0082E4C |
:101720000E94236C1FCD0E94E02EE8CF0E94C62F9E |
:101730007ACF0E94913077CF1092D9031092D803BC |
:101740001092D7031092D6034BCD80E793E0ABCD38 |
:10175000289890CD83E393E09F938F931F920E94EC |
:10176000761488EE93E00E94F517EC010E94711C3C |
:101770000F900F900F90CE010E94FE178823D9F38F |
:1017800083E593E09F938F931F920E9476140F90AE |
:101790000F900F9064CD84E093E09F938F931F92FE |
:1017A0000E9476140F900F900F903DCD1F920F92D4 |
:1017B0000FB60F9211248F939F93EF93FF93809115 |
:1017C00011038823A9F48091ED039091EE03019613 |
:1017D000FC01E05DF94FE081ED3079F0863991054B |
:1017E00061F09093EE038093ED03E093C6000EC08A |
:1017F0001092EE031092ED0309C01092EE031092C6 |
:10180000ED0381E080931103E093C600FF91EF9117 |
:101810009F918F910F900FBE0F901F9018951F9260 |
:101820000F920FB60F9211242F933F934F935F9314 |
:101830008F939F93AF93BF93EF93FF9390E080912B |
:10184000C6008093E5035091F303563910F090934E |
:10185000F4038091E5038D3091F02091F403822F01 |
:1018600099278130910509F46CC0823091050CF400 |
:101870008EC0029709F47FC01092F403A8C0209193 |
:10188000F403223061F79093F403852F992783574F |
:10189000984FFC01329740812091EF033091F00383 |
:1018A000241B3109DC0111978C91281B3109C901D6 |
:1018B0009F709093F0038093EF030024880F991F8B |
:1018C000001C880F991F001C892F902D982F935C66 |
:1018D0009093F1032F733070235C2093F203808187 |
:1018E000891709F46EC090E08091E2038F5F8093C6 |
:1018F000E2033091E403332309F069C0992309F42A |
:1019000066C081E08093E403580F5093E103515087 |
:10191000E52FFF27E357F84F8DE0808380918F07F5 |
:10192000823509F054C088E190E02CE00FB6F894BD |
:10193000A895809360000FBE209360003093F90358 |
:1019400046C02F5F2093F403E52FFF27E357F84F9E |
:101950008091E50380835F5F5093F3032091E5035B |
:101960008091EF039091F003820F911D9093F0030B |
:101970008093EF032CC0E52FFF27E357F84F8091AA |
:10198000E5038083563938F31092F403E7CF892BAF |
:1019900009F072CF8091E503833259F08091E5031D |
:1019A00080938D0781E08093F3038091E50399276D |
:1019B000DDCF8091E403882389F781E08093F403ED |
:1019C000EDCF8C91821709F08ECF91E092CFFF91ED |
:1019D000EF91BF91AF919F918F915F914F913F9107 |
:1019E0002F910F900FBE0F901F901895AC01A0E0A3 |
:1019F000B0E09D01A817B90748F4E0E3F6E0819153 |
:101A0000280F311D1196A417B507C8F33F70FD01CB |
:101A1000E05DF94FC9010024880F991F001C880F51 |
:101A2000991F001C892F902D835C80831196FD01E6 |
:101A3000E05DF94F2F733070822F835C8083AF5C41 |
:101A4000B94F8DE08C9310921103809130068093F2 |
:101A5000C6000895BF92CF92DF92EF92FF920F934C |
:101A60001F93CF93DF93CDB7DEB72C859D857E8501 |
:101A7000BB2483E2809330069F59909331062093D4 |
:101A8000320603E010E0772309F4ADC0CF84D88894 |
:101A900043E1E42EF12CEC0EFD1EA989BA897150A8 |
:101AA000109709F4A0C0109709F43CC0F601EB0DA3 |
:101AB000F11DB3949081119789F47723A1F1F70177 |
:101AC00022E030E0E20EF31ED701C080D180E20EAA |
:101AD000F31E0D90BC91A02DBB247150109719F1ED |
:101AE000F601EB0DF11DB3944081119709F466C026 |
:101AF0001097D1F0F601EB0DF11DB39460811197B1 |
:101B0000A1F4772391F0F7013296D701CD90DC90C4 |
:101B100032E0E32EF12CEE0EFF1EA081B181BB243A |
:101B2000715003C090E040E060E0F801E05DF94FE3 |
:101B3000892F86958695835C80830F5F1F4FF80100 |
:101B4000E05DF94F892F9927837090708295929567 |
:101B5000907F9827807F982755279A013295229564 |
:101B60002F7023273F702327822B835C80830F5F96 |
:101B70001F4FF801E05DF94F4F705070440F551F33 |
:101B8000440F551F862F99270024880F991F001C8A |
:101B9000880F991F001C892F902D842B835C8083D4 |
:101BA0000F5F1F4FF801E05DF94F6F73635C608357 |
:101BB0000F5F1F4F109709F076CF15C0772309F4F8 |
:101BC000B3CFF701A2E0B0E0EA0EFB1ED701C08060 |
:101BD000D18022E030E0E20EF31E0D90BC91A02DEA |
:101BE000BB24715085CFC8010E94F60CDF91CF91C4 |
:101BF0001F910F91FF90EF90DF90CF90BF900895CD |
:101C0000A3E07A2F4091E103465009F45FC0E72F2B |
:101C1000FF27E357F84F80818D537F5FE72FFF2722 |
:101C2000E357F84F20812D537F5FE72FFF27E357BE |
:101C3000F84F30813D537F5FE72FFF27E357F84F81 |
:101C400060816D537F5F9927880F991F880F991FB7 |
:101C5000522F52955F70582B822F99278F7090705A |
:101C600082959295907F9827807F9827232F26959D |
:101C70002695282B832F99278370907000249695A2 |
:101C800087950794969587950794982F802D682BB4 |
:101C900041504F3FD9F0EA2FFF27E357F84F5083C9 |
:101CA000AF5F41504F3F91F0EA2FFF27E357F84FC6 |
:101CB0002083AF5F41504F3F49F0EA2FFF27E357A2 |
:101CC000F84F6083AF5F442309F0A1CF80E997E02C |
:101CD0009093E0038093DF03A350A093DE03089565 |
:101CE000CF93DF93CDB7DEB722970FB6F894DEBF60 |
:101CF0000FBECDBF8091E403882309F4AFC20E94D8 |
:101D0000000E80918E07823609F471C080918F0792 |
:101D100099278436910509F457C08536910584F5D5 |
:101D20008136910509F44EC1823691050CF4C2C08A |
:101D30008236910509F49AC183369105C1F48091E8 |
:101D4000DA039091DB03892B09F04FC2A091DF03E6 |
:101D5000B091E0039C91992309F03DC29C918AE0E7 |
:101D6000989FC00111249093DB038093DA031092B3 |
:101D7000E4031092E0031092DF031092DE036EC2C0 |
:101D80008C36910509F410C18D3691050CF0B3C065 |
:101D90008736910509F42BC18836910541F78FEFFD |
:101DA00080930F03E091DF03F091E0038081909135 |
:101DB0003F04892B80933F04882311F01092E6039F |
:101DC00081E08093EA03D3CFE091DF03F091E00359 |
:101DD00090818AE0989FC001112490930D03809315 |
:101DE0000C03892B21F281E08093E903C0CF80911D |
:101DF0008F0799278037910509F4F2C08137910543 |
:101E00000CF485C08337910509F45BC184379105D3 |
:101E10000CF03CC18137910509F078CFA091DF0328 |
:101E2000B091E0038C918F3F09F40CC28C91882310 |
:101E300009F003C281E08C93A091DF03B091E0032D |
:101E400045E661EE78E08C910E945D05809111037A |
:101E50008823E1F3E091DF03F091E003808189833F |
:101E600080E58A8385E690E09F938F9381EE98E0EA |
:101E70009F938F9321E030E03F932F93CE01029602 |
:101E80009F938F933F932F93CE01820F931F9F9326 |
:101E90008F9383E08F9381E08F9381E58F930E94EE |
:101EA0002A0DADB7BEB71F960FB6F894BEBF0FBED2 |
:101EB000ADBF2CCF8B34910509F059CFE091DF03F2 |
:101EC000F091E003808191819093F0048093EF047E |
:101ED0002091ED043091EE04821B930B845E9D4FA4 |
:101EE00068E671E00E94C66B845B90409093EC04BE |
:101EF0008093EB043CCF8437910509F47CC086378E |
:101F0000910509F034CF81E08093E80330CF8D361E |
:101F1000910529F18E3691050CF093C08B34910513 |
:101F200009F0F4CEA091DF03B091E0038D919C9174 |
:101F30009093F0048093EF042091ED043091EE042F |
:101F4000821B930B845E9D4F68E671E00E94C66B16 |
:101F5000845B90409093EC048093EB04D7CE809107 |
:101F600011038823E1F3A091DF03B091E0039C917A |
:101F7000913009F43FC1198281E090E09F938F93E3 |
:101F8000CE0101969F938F9381E08F938F938DE481 |
:101F90008F930E942A0D8DB79EB707960FB6F894BF |
:101FA0009EBF0FBE8DBFB2CE8FEF80930F03E09127 |
:101FB000DF03F091E00380818093400481E080930F |
:101FC000EB03D5CEE091DF03F091E003E081E03256 |
:101FD00058F08FE1809310038FEF80930F03C7CEEB |
:101FE00081E08093E70392CEE0931003F5CF81E088 |
:101FF0008093EC03BCCE8091E103853108F4DAC014 |
:10200000E091DF03F091E00380E1A8E6B7E0019002 |
:102010000D928A95E1F7809111038823E1F31F92D5 |
:1020200080910E038F9384E58F930E942A0D8AEF8F |
:102030008093DC038FEF80930F030F900F900F902E |
:1020400096CE8E36910509F061CE809111038823DA |
:10205000E1F38DE490E09F938F9383ED95E09F9360 |
:102060008F9381E08F938F938EE492CFA091DF03C3 |
:10207000B091E0038BE0E0E8F7E00D9001928A95E3 |
:10208000E1F78091890780936508A6CF8437910591 |
:1020900009F03CCE8091E103853108F4BCC0A091E9 |
:1020A000DF03B091E00380E1E8E6F7E00D900192F4 |
:1020B0008A95E1F780EF8093DC038FEF80930F0325 |
:1020C00025CE2091DF033091E003F901808181501A |
:1020D000853018F481818035E9F0198280911103EF |
:1020E0008823E1F381E090E09F938F93CE010196E6 |
:1020F0009F938F9381E08F938F9383E58F930E94BB |
:102100002A0DEDB7FEB737960FB6F894FEBF0FBE97 |
:10211000EDBFFCCD61EE78E085E62E5F3F4FDB0141 |
:10212000F901982F01900D929A95E1F722503040D5 |
:10213000482FD9018C910E94860580911709992713 |
:10214000AA27BB27BC01CD0124EC39E040E050E0D8 |
:102150000E94876BDC01CB018093A6039093A703B9 |
:10216000A093A803B093A903809118099927AA27DF |
:10217000BB27BC01CD010E94876BDC01CB018093A2 |
:10218000A2039093A303A093A403B093A503E091AB |
:10219000DF03F091E00380810E947A050E94B5057B |
:1021A000898380E00E9400066EE670E089810E94CB |
:1021B0008E3194CFE091DF03F091E0038081918133 |
:1021C000A281B3818093680790936907A0936A07FF |
:1021D000B0936B0720CF8AE0989FC00111240E9422 |
:1021E000F51790932F0680932E06A091DF03B091F0 |
:1021F000E003B4CD43ED55E08DE4FA01282F0D90B6 |
:1022000001922A95E1F7A8EEB3E0FA01182E0E9498 |
:102210002F6C9983B1CEA091DF03B091E0038D9133 |
:102220009D910D90BC91A02D8093680790936907B4 |
:10223000A0936A07B0936B073DCF863008F400CEB9 |
:1022400085E0F9CD0E94B505E091DF03F091E00350 |
:102250008083A091DF03B091E003E8CD22960FB612 |
:10226000F894DEBF0FBECDBFDF91CF910895CF931D |
:10227000C82F8A3029F08091C00085FFFCCF04C0B0 |
:102280008DE00E943711F7CFC093C60080E090E048 |
:10229000CF910895089588E18093C1008091C00096 |
:1022A00082608093C0008091C10080688093C100EB |
:1022B0008091C10080648093C1008AE28093C40051 |
:1022C00080910C0390910D030E94F51790935D0788 |
:1022D00080935C078CED90E00E94F51790938C073B |
:1022E00080938B0710925E078CE480935F0786E0F3 |
:1022F000809362078AE08093600781E080936107A2 |
:102300001092E0031092DF031092DE030895EF9223 |
:10231000FF920F931F9380911103882309F478C2D1 |
:102320008091EA03882309F082C08091EB0388231F |
:1023300029F080911103882309F07FC18091E8037F |
:10234000882329F080911103882309F05BC18091D3 |
:10235000EC03882329F080911103882309F036C10A |
:1023600080918B0790918C070E94FE17882329F09B |
:1023700080911103882309F0C8C080910C039091CB |
:102380000D03892B09F084C18091E903882329F08A |
:1023900080911103882309F00FC28091DA03909194 |
:1023A000DB03892B09F07EC1209110032F3F59F1E7 |
:1023B00080E190E09F938F93822F99278295929549 |
:1023C000907F9827807F9827845F9E4F9F938F935D |
:1023D00081E090E09F938F9380E193E09F938F93B0 |
:1023E00082E08F9381E08F9381E48F930E942A0D86 |
:1023F0008FEF809310038DB79EB70B960FB6F894AE |
:102400009EBF0FBE8DBF80916508882329F0809103 |
:102410001103882309F05EC08091E703882309F443 |
:10242000F7C180911103882309F4F2C139C080916A |
:102430001103882309F479CF0E943B2284E190E0C4 |
:102440009F938F939091E60384E1989FC00111249C |
:10245000865D9C4F9F938F9381E090E09F938F9335 |
:1024600086EE93E09F938F9382E08F9381E08F932A |
:1024700088E48F930E942A0D8091E6038F5F2DB729 |
:102480003EB7255F3F4F0FB6F8943EBF0FBE2DBF3E |
:10249000843008F4B8C11092E6031092EA0345CFE5 |
:1024A00086E190E09F938F938FEA98E09F938F93BC |
:1024B00081E08F938F9380E58F930E942A0D109275 |
:1024C000E7038DB79EB707960FB6F8949EBF0FBE71 |
:1024D0008DBF9EC181E090E09F938F9385E698E049 |
:1024E0009F938F9381E08F938F9382E48F930E94C9 |
:1024F0002A0D109265082DB73EB7295F3F4F0FB6E2 |
:10250000F8943EBF0FBE2DBF87CF8091F808992762 |
:10251000880F991F880F991F7C010027F7FC0095F1 |
:10252000102F8091290590912A05A0912B05B0913B |
:102530002C05BC01CD01A80197010E94FB6B3093D3 |
:102540007907209378078091210590912205A09129 |
:102550002305B0912405BC01CD01A80197010E947B |
:10256000FB6B30937B0720937A078091C1048093A3 |
:102570007C078091C00480937D0788E090E09F9362 |
:102580008F9388E797E09F938F9381E08F9383E009 |
:102590008F9387E78F930E942A0D80917E072DB736 |
:1025A0003EB7295F3F4F0FB6F8943EBF0FBE2DBF19 |
:1025B000853018F086E080937E0783E690E00E94E5 |
:1025C000F51790938C0780938B07D7CE8BE090E024 |
:1025D0009F938F9380E897E09F938F9381E08F93F1 |
:1025E00080910E038F9387E48F930E942A0D10929F |
:1025F000EC038DB79EB707960FB6F8949EBF0FBE3B |
:102600008DBFAECE8AE090E09F938F938EE597E0EA |
:102610009F938F9381E08F938F9386E58F930E9492 |
:102620002A0D1092E8032DB73EB7295F3F4F0FB632 |
:10263000F8943EBF0FBE2DBF8ACE0E943B2280E59C |
:1026400090E09F938F938AE293E09F938F9321E092 |
:1026500030E03F932F9389E293E09F938F933F93D2 |
:102660002F9380E494E09F938F9383E08F9381E096 |
:102670008F938CE48F930E942A0D1092EB038DB7F9 |
:102680009EB70F960FB6F8949EBF0FBE8DBF56CE65 |
:1026900080915C0790915D070E94FE17882309F0E6 |
:1026A00077CE72CE80912E0690912F060E94FE1753 |
:1026B000882309F479CE80911103882309F474CE1C |
:1026C0008091F8089927880F991F880F991F7C011E |
:1026D0000027F7FC0095102F8091290590912A057D |
:1026E000A0912B05B0912C05BC01CD01A80197014B |
:1026F0000E94FB6B309321062093200680912105D8 |
:1027000090912205A0912305B0912405BC01CD0133 |
:10271000A80197010E94FB6B3093230620932206A9 |
:102720002091AB093091AC094091AD095091AE09AF |
:10273000DA01C90103E0880F991FAA1FBB1F0A9580 |
:10274000D1F7820F931FA41FB51F820F931FA41FE1 |
:10275000B51F2091860330918703409188035091E3 |
:102760008903BC01CD010E94FB6B309325062093A9 |
:1027700024068EE090E09F938F9380E296E09F93F3 |
:102780008F9381E08F938F9383E48F930E942A0D20 |
:102790008091DA039091DB030E94F51790932F0646 |
:1027A00080932E062DB73EB7295F3F4F0FB6F894A2 |
:1027B0003EBF0FBE2DBFF8CD82E490E09F938F9374 |
:1027C00083E298E09F938F9381E08F938F9384E4CB |
:1027D0008F930E942A0D1092E9038DB79EB707963A |
:1027E0000FB6F8949EBF0FBE8DBF80910C039091E1 |
:1027F0000D03009709F4D1CD0E94F51790935D0762 |
:1028000080935C07CACD8093E6031092EA038DCDD6 |
:102810001F910F91FF90EF900895982F8091660877 |
:10282000813031F0892F0E943711282F33270CC0B7 |
:1028300080914104E82FFF27E65DFC4F90838F5F76 |
:102840008093410421E030E0C90108950F931F9364 |
:10285000CF93DF938C01EB01672B71F0F80181912D |
:102860008F010E940D14219739F0F80181918F0199 |
:102870000E940D14219791F7DF91CF911F910F9135 |
:1028800008950F931F93CF93DF938C01EB01672B78 |
:1028900081F0F8010F5F1F4F84910E940D14219762 |
:1028A00041F0F8010F5F1F4F84910E940D14219792 |
:1028B00081F7DF91CF911F910F910895CF93C82F8A |
:1028C000181634F480E20E940D14C1501C16D4F383 |
:1028D000CF910895CF93C82F181634F480E30E9447 |
:1028E0000D14C1501C16D4F3CF9108952F923F922E |
:1028F0004F925F926F927F928F929F92AF92BF9210 |
:10290000CF92DF92EF92FF920F931F93CF93DF93BB |
:10291000CDB7DEB7E0970FB6F894DEBF0FBECDBFE0 |
:1029200026968FAD26972896EEADFFAD2897882482 |
:10293000992454018093660848E4C42ED12CCC0E0F |
:10294000DD1E7F01C701F7011491112331F015320B |
:1029500021F00894E11CF11CF6CFB701681B790B3C |
:1029600009F095C0112309F43DC20894E11CF11C43 |
:102970001FA63FA4232C0FEF39A6F7010894E11CF2 |
:10298000F11C14911537C9F1812F80628837A9F1A4 |
:10299000103209F440C0133209F48DC01A3209F420 |
:1029A00079C01D3209F476C01B32C9F11E32C9F15B |
:1029B000103309F48AC0812F8153893008F07EC01A |
:1029C00060E070E0CB01880F991F880F991F880F76 |
:1029D000991F860F971F680F791F610F711D605334 |
:1029E0007040F7010894E11CF11C1491812F805371 |
:1029F0008A3040F3262E153739F630FE3DC0F601F9 |
:102A000084E090E0C80ED91E80809180A280B380BF |
:102A1000103209F0C0CF89A5882309F0AECF19A7DD |
:102A2000ACCFF7010894E11CF11C14911A3209F49F |
:102A300051C060E070E014C0CB01880F991F880F6F |
:102A4000991F880F991F860F971F680F791F610FB5 |
:102A5000711D60537040F7010894E11CF11C149142 |
:102A6000812F80538A3040F3EFEF6F3F7E0714F4DD |
:102A70006FEF7FEF062F86CFF60182E090E0C80E61 |
:102A8000D91E808191814C01AA24BB2481CF0E9450 |
:102A9000411468CF1A3251F4F60182E090E0C80E7A |
:102AA000D91E208022200CF068CF219490E1392A91 |
:102AB000EFED3E2262CF98E0392A5FCF1836C9F099 |
:102AC0001C36D1F481E0382A58CF34FC56CFF0E2DE |
:102AD0003F2A53CFF60182E090E0C80ED91E6081F4 |
:102AE00071819FEF6F3F790714F46FEF7FEF062F2F |
:102AF00044CF24E0322A41CF133609F44DC11434B7 |
:102B000009F41FC1143609F41CC1193609F419C19E |
:102B10001F3409F40FC11F3609F40CC1103709F432 |
:102B2000F9C0133709F4B2C0153509F4ECC01537F4 |
:102B300009F4E9C0183509F444C0183709F441C054 |
:102B4000112309F44FC1CE0101969DA78CA71983CB |
:102B500081E0482E19A6632C7724042D5FA4541815 |
:102B600057FC2DC029A5222331F10F5F050DC301AC |
:102B700080739070892B09F42FC1222309F027C19B |
:102B800066FC1BC1C30180739070809709F410C16B |
:102B9000852D0E946A14842D992787FD9095BC018C |
:102BA0008CA59DA50E94261464FECCCE822D801B90 |
:102BB0000E945E14C7CE66FED9CF0E5FD7CF5524D4 |
:102BC000D1CFE0E1EEA733FE07C081149104A10448 |
:102BD000B10411F0F0E43F2A19A60FA707FD02C0C7 |
:102BE0002FED3222CE0189969DA78CA781149104E6 |
:102BF000A104B10419F49FA5992361F1EEA54E2E0D |
:102C000055246624772418AA84149504A604B704CE |
:102C100010F0F1E0F8ABC501B401A30192010E94EC |
:102C2000D96BDC01CB01082F8A30F0F4005DECA5F4 |
:102C3000FDA50293FDA7ECA7C501B401A301920174 |
:102C40000E94D96B49015A01F8A9FF23E1F62EA58C |
:102C5000283079F0632C7724CE010196482EFCA50C |
:102C60004F1A28E2420E79CF095A183501F70F7D25 |
:102C7000DECF632C772463FEEFCF003369F380E36C |
:102C8000ECA5FDA58293FDA7ECA7E6CFF60182E0B7 |
:102C900090E0C80ED91E0190F081E02DFDA7ECA7B1 |
:102CA000EF2B81F4FE013196FDA7ECA788E2898322 |
:102CB0008EE6818385E78B838CE68C838D8389E226 |
:102CC0008E831F8207FD15C0802F992787FD909561 |
:102CD000AC0160E070E08CA59DA50E94A06A009701 |
:102CE00031F0482EFCA54F1A04150CF033CF402EBE |
:102CF00031CFECA5FDA501900020E9F731974E2ECC |
:102D00002CA5421A27CF153511F481E0382A9AE014 |
:102D10009EA762CFF60182E090E0C80ED91E8081A6 |
:102D200091814C01AA24BB2490E19EA7E0E43E2AB5 |
:102D300018E752CF1F3411F4E1E03E2AF8E0FEA775 |
:102D40004BCF143411F491E0392A30FE18C0F6014B |
:102D500084E090E0C80ED91E80809180A280B3806C |
:102D6000B7FE0AC0B094A09490948094811C911CEA |
:102D7000A11CB11C8DE289A79AE09EA72ECFF60177 |
:102D800082E090E0C80ED91E808191814C01AA2476 |
:102D900097FCA094BA2CE4CFFE013196FDA7ECA7D6 |
:102DA000F60182E090E0C80ED91E80818983D0CEE2 |
:102DB000822D801B0E946A14EBCE80E38AA71BA79A |
:102DC00062E070E0CE018A960E942614DBCE61E0BC |
:102DD00070E0CE018996F8CF822D801B0E945E1490 |
:102DE00029A5CBCEE0960FB6F894DEBF0FBECDBFBF |
:102DF000DF91CF911F910F91FF90EF90DF90CF90D7 |
:102E0000BF90AF909F908F907F906F905F904F900A |
:102E10003F902F9008951F920F920FB60F9211249A |
:102E20002F933F935F936F937F938F939F93AF9372 |
:102E3000BF93EF93FF938091FA03882329F0809149 |
:102E4000FA0381508093FA038091CE05882319F00C |
:102E500081508093CE058091020481508F3F09F408 |
:102E600093C0809302048091FB039091FC03892B13 |
:102E700001F18091FB039091FC0301979093FC0377 |
:102E80008093FB038091FB039091FC03209112033C |
:102E90003091130382239323892B89F080910201BF |
:102EA0008A3009F48BC0479A8091E90883FF8DC06E |
:102EB00010C08FEF9FEF90931303809312038091C4 |
:102EC00002018A3009F478C047988091E90883FFAD |
:102ED0007CC086B19927FC01E071F07084FF0AC0C4 |
:102EE0008091FD039091FE0301969093FE038093E1 |
:102EF000FD036BC08091FD039091FE03892B49F186 |
:102F00008091FD039091FE038A56914010F58091C7 |
:102F1000FD039091FE0369E270E00E94B26B809124 |
:102F2000FD039091FE03860F971F9093FE038093FD |
:102F3000FD038091FD039091FE030B9708F440C0C0 |
:102F40008091FD039091FE030A979093F004809383 |
:102F5000EF048091EF049091F0042091ED04309102 |
:102F6000EE04821B930B845E9D4F68E671E00E9425 |
:102F7000C66B845B90409093EC048093EB041092BA |
:102F8000FE031092FD0321C089E08093020480912A |
:102F900014038F5F817080931403882319F481E0F8 |
:102FA0008093FF0380910004909101040196909317 |
:102FB00001048093000457CF5A9887CF5A9A85CF3F |
:102FC000F093F004E093EF04C4CFFF91EF91BF9131 |
:102FD000AF919F918F917F916F915F913F912F91D1 |
:102FE0000F900FBE0F901F90189520910004309104 |
:102FF0000104280F391FC90101960895209100048A |
:1030000030910104821B930B892F99278695807438 |
:1030100090700895CF93DF930E94F517EC01CE01D5 |
:103020000E94FE178823D9F3DF91CF9108951F9353 |
:10303000CF93DF930E94F517EC011FEC08C080913D |
:103040001903882321F09093190310937A00CE017D |
:103050000E94FE17982F882391F3DF91CF911F9143 |
:1030600008959FB7F8945F983E9A469A8091B00071 |
:103070008F708093B0008091B00083608093B00027 |
:103080008091B1008B738093B1008091B1008B600F |
:103090008093B1001092B2008FEF8093B3008091C3 |
:1030A000B00080688093B000809170008A7F809328 |
:1030B0007000809170008260809370009FBF0895BF |
:1030C0008AE090E00E94F51790930A048093090427 |
:1030D00082E085BD83EA84BD17BC88E788BD86E0B1 |
:1030E00086BD80916E00816080936E0008951F926E |
:1030F0000F920FB60F9211242F933F934F935F932C |
:103100006F937F938F939F93AF93BF93EF93FF93AF |
:10311000809102018431D8F48091BA0487FD17C0F0 |
:1031200080910304882309F461C020910404309144 |
:10313000050451E02F373507E8F18FEF8093B30096 |
:103140002F5F30403093050420930404B3C3809173 |
:103150000304882351F78091B00086FFF9C0809165 |
:10316000B0008F7B8093B00080910804882309F021 |
:1031700043C180911009282F33278DED96E0289FB9 |
:10318000A001299F500D389F500D1124CA01209194 |
:10319000060430910704821B930B909305048093DF |
:1031A00004041092070410920604469A81E080936A |
:1031B0000304BBCF2F3F310571F068F0A9014F5FC9 |
:1031C00050404F37510508F0EDC080E88093B300C0 |
:1031D00020583040B7CF809104048093B300109200 |
:1031E0000504109204041092030464C38091B0009B |
:1031F00086FFE0C08091B0008F7B8093B00089EAA9 |
:1032000093E09093050480930404809115039091BA |
:1032100016039C01220F331F280F391F8091920340 |
:103220009927880F991F880F991F280F391F37FD7D |
:103230008BC2C901959587959595879590931603AF |
:10324000809315039093F8038093F70380913809D6 |
:1032500080FD7BC180910909682F772788279927EE |
:103260002091290530912A0540912B0550912C057C |
:1032700057FD9FC2E7E05595479537952795EA9505 |
:10328000D1F70E94876B9B01AC0197FD8DC276E060 |
:1032900055954795379527957A95D1F78091F703FE |
:1032A0009091F803821B930B9093F8038093F7039C |
:1032B00080910A09282F3327220F331F220F331F33 |
:1032C0008091F7039091F803821793077CF0809127 |
:1032D0000B09282F3327220F331F220F331F809112 |
:1032E000F7039091F8032817390724F43093F80373 |
:1032F0002093F7032091F7033091F80380910404A1 |
:1033000090910504280F391F205032408091F70317 |
:103310009091F80397FD1BC2959587959595879594 |
:103320009093F8038093F70345E02D3D340708F4AC |
:1033300060C18CED95E09093050480930404209186 |
:10334000040430910504309307042093060450C010 |
:103350008091B00080648093B0008CEB90E09093FB |
:10336000050480930404809106049091070484541A |
:103370009F4F90930704809306048091F90388235C |
:1033800029F08091DE04853B08F00AC1469A9091AD |
:1033900008049F5F80911009891708F0D3C010922C |
:1033A000080404CF8FEF8093B3005093050440933B |
:1033B000040480C28091B00080648093B00080914A |
:1033C0001009282F33278DED96E0289FA001299F13 |
:1033D000500D389F500D1124CA01209106043091E0 |
:1033E0000704821B930B90930504809304049C01B3 |
:1033F00081E0809303049DCE29EA33E0992782304F |
:10340000910509F409C1833091050CF0CBC03093CC |
:10341000050420930404019709F0CBC080911503A3 |
:10342000909116039C01220F331F280F391F8091A2 |
:1034300092039927880F991F880F991F280F391F0A |
:1034400037FD21C2C90195958795959587959093EC |
:103450001603809315039093F8038093F7038091EC |
:10346000380980FFCFC180910909682F7727882705 |
:1034700099272091290530912A0540912B055091DB |
:103480002C0557FD03C2E7E05595479537952795DD |
:10349000EA95D1F70E94876B9B01AC0197FDFBC1B8 |
:1034A000B6E05595479537952795BA95D1F7809110 |
:1034B000F7039091F803820F931F9093F803809382 |
:1034C000F70380910A09282F3327220F331F220F79 |
:1034D000331F8091F7039091F803821793077CF0D4 |
:1034E00080910B09282F3327220F331F220F331F00 |
:1034F0008091F7039091F8032817390724F430934B |
:10350000F8032093F7038091F7039091F80320913B |
:10351000040430910504820F931F805092409093D1 |
:103520000504809304048091F7039091F80397FDBC |
:10353000A8C195958795959587959093F803809365 |
:10354000F70337C09093080431CE80910909682FA2 |
:103550007727882799272091290530912A054091BE |
:103560002B0550912C0557FD2EC1A7E05595479589 |
:1035700037952795AA95D1F70E94876B9B01AC01DF |
:1035800097FD1CC1F6E05595479537952795FA9517 |
:10359000D1F78091F7039091F803820F931F84CEA7 |
:1035A0004698F5CE039709F413C130930504209390 |
:1035B0000404209104043091050485E02D3D380772 |
:1035C000F8F08CED95E090930504809304049C0141 |
:1035D0002C5B304030930504209304048091060452 |
:1035E00090910704820F931F909307048093060421 |
:1035F000DDCD51E02737350750F487E791E09BCECA |
:1036000041E02737340720F787E791E0DCCF30939C |
:1036100005042093040493CE3093050420930404FE |
:1036200080911703909118039C01220F331F280FDC |
:10363000391F809191039927880F991F880F991F2F |
:10364000280F391F37FDDBC0C901959587959595E2 |
:10365000879590931803809317039093F6038093B4 |
:10366000F5038091380981FF74C080910D09682F9E |
:1036700077278827992720912105309122054091AD |
:1036800023055091240557FDF7C0A7E055954795B0 |
:1036900037952795AA95D1F70E94876B9B01AC01BE |
:1036A00097FDDBC0F6E05595479537952795FA9538 |
:1036B000D1F78091F5039091F603820F931F9093B9 |
:1036C000F6038093F50380910E09282F3327220FEC |
:1036D000331F220F331F8091F5039091F603821759 |
:1036E00093077CF080910F09282F3327220F331F77 |
:1036F000220F331F8091F5039091F60328173907A5 |
:1037000024F43093F6032093F5038091F503909110 |
:10371000F6032091040430910504820F931F80501A |
:10372000924090930504809304048091F503909156 |
:10373000F60397FD62C0959587959595879590932B |
:10374000F6038093F50335CF2D5F3F4F72CD03967F |
:10375000E3CD80910D09682F77278827992720913D |
:10376000210530912205409123055091240557FDF4 |
:103770007EC0E7E05595479537952795EA95D1F7AF |
:103780000E94876B9B01AC0197FD6CC066E055956C |
:103790004795379527956A95D1F78091F5039091D4 |
:1037A000F603821B930B8BCF215C3F4F4F4F5F4F34 |
:1037B0006ECD21583F4F4F4F5F4F5CCD215C3F4F47 |
:1037C0004F4F5F4FDFCE21583F4F4F4F5F4FCDCE12 |
:1037D0008091E708E82FFF27EE0FFF1FE155F74F15 |
:1037E00080819181805E9F4F0CF0DFCE87E791E072 |
:1037F0009093050480930404DCCE03969CCF2D5F48 |
:103800003F4F22CF80910909682F77278827992772 |
:103810002091290530912A0540912B0550912C05C6 |
:1038200057FD43C0A7E05595479537952795AA952D |
:10383000D1F70E94876B9B01AC0197FD31C0F6E088 |
:103840005595479537952795FA95D1F78091F703C8 |
:103850009091F803821B930B30CE215C3F4F4F4F6A |
:103860005F4F20CF215C3F4F4F4F5F4F8FCF21588D |
:103870003F4F4F4F5F4F7DCF21583F4F4F4F5F4FCF |
:1038800004CF039656CE2D5F3F4FDCCD21583F4FDE |
:103890004F4F5F4FF8CD215C3F4F4F4F5F4F00CEF2 |
:1038A000215C3F4F4F4F5F4FCACF21583F4F4F4F83 |
:1038B0005F4FB8CFFF91EF91BF91AF919F918F91E3 |
:1038C0007F916F915F914F913F912F910F900FBE1C |
:1038D0000F901F90189510927C008FEC80937A00C7 |
:1038E0000895EF92FF920F931F93CF93DF9303E01E |
:1038F00010E0D8010E94166C802DC82FDD27C5313D |
:10390000D10508F02A97C7BD1092120484E690E012 |
:103910000E94171880911D0390911E0380529340BE |
:1039200010F4C0E0D0E0CA3FD105E0F48AEAE82E06 |
:1039300083E0F82EC7BD82E390E00E941718FF9243 |
:10394000EF921F920E94761480911D0390911E03A6 |
:103950000F900F900F908052934020F02196CA3F15 |
:10396000D10540F3D8010C2E0E94236CC09373083C |
:103970008CE291E00E941718DF91CF911F910F9177 |
:10398000FF90EF900895EF92FF920F931F93CF93C4 |
:10399000DF9300E000930D0400930C0400930B04EC |
:1039A00080ED97E00E94F517EC011CE821E0F22E73 |
:1039B00095EFE92E033009F4ABC000E080912204BA |
:1039C000909123048C5F93400CF091C080911C0374 |
:1039D000815080931C0380912004909121048C5F7E |
:1039E00093400CF079C080911B03815080931B039E |
:1039F00080911E0490911F048C5F93400CF04AC08C |
:103A000080911A03815080931A0388E080934904BF |
:103A10000E94ED2A80911C038A3008F055C0F09274 |
:103A20000D048AE080931C0380911B038A3008F008 |
:103A300043C0F0920C048AE080931B0380911A0328 |
:103A40008A3098F5F0920B048AE080931A038091F3 |
:103A50004904882379F0CE010E94FE178823B9F328 |
:103A60008CEA93E09F938F931F920E9476140F909D |
:103A70000F900F90109219038FEC80937A00809131 |
:103A800019038823E1F31A3008F447C0115009F0F4 |
:103A900091CF48C080911E0490911F04875094409C |
:103AA0008CF180911A038F5FAECF863F80F2F09247 |
:103AB0000B04E0921A03CBCF863F08F4BFCFF092FD |
:103AC0000C04E0921B03BACF863F08F4ADCFF0920E |
:103AD0000D04E0921C03A8CF809120049091210452 |
:103AE000875094408CF080911B038F5F7FCF809133 |
:103AF0002204909123048750944044F080911C0349 |
:103B00008F5F67CF0F5F81CF0F5F72CF01E063CF11 |
:103B10001B3008F452CF19E050CF8AE090E00E94A9 |
:103B20001718B4CF86E490E00E941718DF91CF9168 |
:103B30001F910F91FF90EF9008951F920F920FB673 |
:103B40000F921124AF92BF92CF92DF92EF92FF9229 |
:103B50000F931F932F933F934F935F936F937F9395 |
:103B60008F939F93AF93BF93EF93FF9320912B0479 |
:103B7000822F9927AA27BB272F5FFC01429740F489 |
:103B8000E25CFF4FEE0FFF1F0590F491E02D0994CA |
:103B900010922B0482E080932A0480912A0480935F |
:103BA0007C0080912B04882309F443C48FEC80931C |
:103BB0007A003FC420932B04809178009091790083 |
:103BC0002091300430913104820F931F909331047F |
:103BD0008093300481E0DFCF20932B048091780024 |
:103BE0009091790020912E0430912F04820F931F21 |
:103BF00090932F0480932E0484E0CDCF20932B0448 |
:103C000080917800909179002091370530913805A6 |
:103C1000821B930B909372088093710880917108B6 |
:103C200090917208909339048093380482E0B3CF66 |
:103C300020932B04809135059091360520917800D2 |
:103C400030917900821B930B9093680880936708EA |
:103C500080916708909168089093370480933604A8 |
:103C600087E099CF20932B04809178009091790080 |
:103C700090932D0480932C0486E08DCF20932B0409 |
:103C8000209178003091790030932F0420932E04F6 |
:103C900010922A0482CF20932B0420917800309137 |
:103CA0007900309331042093300481E074CF109276 |
:103CB0002B0481E08093190380910E0490910F04EE |
:103CC000019690930F0480930E0480917800909158 |
:103CD000790090931E0380931D0380911D039091A2 |
:103CE0001E035C01CC24DD2480913A0490913B04B6 |
:103CF000A0913C04B0913D04A80EB91ECA1EDB1E63 |
:103D000080913E048F5F823108F4E8C280911F03E6 |
:103D100090912003A0912103B09122037C018D0199 |
:103D200023E0EE0CFF1C001F111F2A95D1F7E81AA3 |
:103D3000F90A0A0B1B0BEA0CFB1C0C1D1D1D8091C4 |
:103D40001204992787FD9095A92FB92FBC01CD01A9 |
:103D500026EC34E240E050E00E94876BDC01CB01AE |
:103D6000E81AF90A0A0B1B0BD801C7010496A11D1A |
:103D7000B11DB7FD23C313E0B595A795979587951A |
:103D80001A95D1F780931F0390932003A0932103EA |
:103D9000B093220380916B0890916C087C010027FE |
:103DA000F7FC0095102F80911F0390912003A091A4 |
:103DB0002103B0912203E81AF90A0A0B1B0BE092C7 |
:103DC000D004F092D1040093D2041093D304209134 |
:103DD000130430911404409115045091160457FDBA |
:103DE000FDC2A4E05595479537952795AA95D1F73B |
:103DF0008091130490911404A0911504B0911604BD |
:103E0000821B930BA40BB50B8093130490931404A3 |
:103E1000A0931504B0931604809113049091140498 |
:103E2000A0911504B09116048E0D9F1DA01FB11F07 |
:103E30008093130490931404A0931504B093160474 |
:103E40008091100490911104BC0162957295707F6D |
:103E50007627607F7627681B790B209113043091B9 |
:103E60001404409115045091160457FDB2C2E4E0C9 |
:103E70005595479537952795EA95D1F78091D004C8 |
:103E80009091D104821B930B880F991F880F991F63 |
:103E9000880F991F860F971F97FDA9C29595879543 |
:103EA0009595879595958795959587959093110408 |
:103EB00080931004D601C501D7FC95C2B595A7958E |
:103EC0009795879580933A0490933B04A0933C0484 |
:103ED000B0933D0489E080933E0482E05CCE209361 |
:103EE0002B04209178003091790080912E049091DC |
:103EF0002F04280F391F809102018A3009F448C22B |
:103F0000220F331F220F331F30932F0420932E04D0 |
:103F1000C90137FD73C295958795959587959595B8 |
:103F2000879590932104809320048091340490918C |
:103F30003504820F931F97FD66C2959587959093E0 |
:103F400035048093340420913F0530914005821B55 |
:103F5000930B9093240380932303209126043091A4 |
:103F600027048091230390912403280F391F37FDE4 |
:103F700047C235952795309327042093260483E084 |
:103F80000ACE20932B042091780030917900809103 |
:103F9000300490913104280F391F809102018A303A |
:103FA00009F407C2220F331F220F331F309331044D |
:103FB00020933004C90137FDFFC1959587959595EC |
:103FC00087959595879590932304809322048091FB |
:103FD000320490913304820F931F97FD0DC2959583 |
:103FE000879590933304809332042091410530915A |
:103FF0004205821B930B9093260380932503209107 |
:104000002804309129048091250390912603280FDC |
:10401000391F37FDEEC1359527953093290420933C |
:10402000280481E0B8CD20932B04809178009091F2 |
:1040300079002091370530913805821B930B9093BE |
:104040007208809371088091710890917208209194 |
:10405000380430913904820F931F90931B0480938E |
:104060001A0482E098CD20932B048091350590911D |
:1040700036052091780030917900821B930B909344 |
:10408000680880936708809167089091680820917C |
:10409000360430913704820F931F90931D04809350 |
:1040A0001C0487E078CD20932B04809102018A3094 |
:1040B00009F471C1843109F4A8C18091780090910C |
:1040C000790020912C0430912D04820F931F90933E |
:1040D0001F0480931E0486E05ECD20932B04809104 |
:1040E00078009091790020912E0430912F04820F56 |
:1040F000931F90932F0480932E0410922A044DCD89 |
:1041000020932B04E2CD20932B0480917800909192 |
:104110007900AA2797FDA095BA2FBC01CD010E9476 |
:104120000D6B7B018C0180912F0590913005A09142 |
:104130003105B09132059C01AD01C801B7010E9463 |
:10414000AD6ADC01CB01BC01CD010E94F06ADC014B |
:10415000CB019093190480931804809118049091D6 |
:10416000190402970CF4C6C080912F059091300578 |
:10417000A0913105B091320520E030E84BE354E4E2 |
:10418000BC01CD010E94176B8823DCF580912F05BF |
:1041900090913005A0913105B09132052AE037EDBC |
:1041A00043EA5CE3BC01CD010E94AE6ADC01CB01B5 |
:1041B00080932F0590933005A0933105B09332057D |
:1041C0008091AE049091AF04845F9140D0F48091CF |
:1041D0002F0590913005A0913105B09132052DEC5D |
:1041E0003CEC4CEC5DE3BC01CD010E94AE6ADC010D |
:1041F000CB0180932F0590933005A0933105B093A8 |
:10420000320581E0809317048091780090917900C5 |
:1042100090936A088093690880911804909119041A |
:10422000AA2797FDA095BA2F2091F1043091F204AE |
:104230004091F3045091F404820F931FA41FB51F03 |
:104240008093F1049093F204A093F304B093F404E8 |
:104250002091F1043091F2044091F3045091F40460 |
:1042600057FDB2C00AE055954795379527950A95B1 |
:10427000D1F78091F1049091F204A091F304B091F0 |
:10428000F404821B930BA40BB50B8093F104909361 |
:10429000F204A093F304B093F40483E07CCC209365 |
:1042A0002B0480912703909128039C01220F331F38 |
:1042B000280F391F809178009091790063E070E0B9 |
:1042C0000E94B26B260F371F369527953695279596 |
:1042D000309328032093270385E05DCC80933E0430 |
:1042E000A0923A04B0923B04C0923C04D0923D04A8 |
:1042F00082E051CC80911804909119048F5F9F4FF8 |
:104300000CF07FCF80912F0590913005A091310561 |
:10431000B091320520E030E849E054E4BC01CD0121 |
:104320000E941A6B18160CF06CCF80912F0590919B |
:104330003005A0913105B09132052AE037ED43EA0E |
:104340005CE3BC01CD010E94AD6ADC01CB0180932E |
:104350002F0590933005A0933105B09332058091DD |
:10436000AE049091AF04845F914008F04ACF8091F1 |
:104370002F0590913005A0913105B09132052DECBB |
:104380003CEC4CEC5DE3BC01CD010E94AD6A2FCF4B |
:10439000220F331FB9CD8091780090917900209140 |
:1043A0002C0430912D04820F931F019696958795CA |
:1043B0008ECE220F331FFACD0796FFCDD801C7014D |
:1043C0000B96A11DB11DD7CC21503C4F4F4F5F4FD5 |
:1043D00049CF215F3F4F4F4F5F4F49CD215F3F4F47 |
:1043E0004F4F5F4FFECC0196A11DB11D67CD0F96BB |
:1043F00055CD2F5F3F4F0FCE0196F1CD07968BCD58 |
:104400002F5F3F4FB6CD019698CD80917800909167 |
:10441000790020912C0430912D04820F931F2FEFEF |
:1044200037E0281B390B30931F0420931E0486E0CD |
:10443000B2CBFF91EF91BF91AF919F918F917F91FF |
:104440006F915F914F913F912F911F910F91FF902D |
:10445000EF90DF90CF90BF90AF900F900FBE0F9076 |
:104460001F90189590E2EAE2F3E08FE49193815077 |
:1044700087FFFCCF08951F93CF93DF938091400473 |
:1044800020912903281710F42093400490913F04B1 |
:1044900090FF08C080914004882309F41EC1815018 |
:1044A0008093400491FF08C080914004821709F472 |
:1044B000E4C18F5F80934004892F992780FF02C059 |
:1044C00081FD08C10E943222909140049A3008F088 |
:1044D000A2C081E180934104892F99279F938F93F4 |
:1044E00083EE93E09F938F9381E08F930E947614E5 |
:1044F0000F900F900F900F900F9080914004C82F55 |
:10450000DD27C730D10509F4BBC1C830D1050CF097 |
:104510008CC0C330D10509F455C2C430D1050CF0AC |
:10452000DFC0C130D10509F4BBC2C230D1050CF4E3 |
:1045300038C3109241048CEA94E09F938F93C1E0BA |
:10454000CF930E94761484E1809341040F900F90E2 |
:104550000F908091290590912A05A0912B05B0918B |
:104560002C05B7FD58C63AE0B595A7959795879560 |
:104570003A95D1F7BF93AF939F938F9386EB94E0D7 |
:104580009F938F93CF930E94761488E28093410487 |
:104590008DB79EB707960FB6F8949EBF0FBE8DBF1E |
:1045A0008091210590912205A0912305B0912405C9 |
:1045B000B7FD2CC62AE0B595A795979587952A95BE |
:1045C000D1F7BF93AF939F938F9385EC94E09F9324 |
:1045D0008F93CF930E9476148CE3809341042DB780 |
:1045E0003EB7295F3F4F0FB6F8943EBF0FBE2DBFB9 |
:1045F0008091EF049091F0049F938F9384ED94E069 |
:104600009F938F93CF930E9476140F900F900F90EB |
:104610000F900F90D6C780E180934104892F99278E |
:104620009F938F9388EE93E05DCFCB30D10509F453 |
:104630005DC1CC30D1050CF00FC1C930D10509F4F2 |
:104640000BC52A970CF01CC3109241048BE796E02F |
:104650009F938F9311E01F930E94761484E18093BF |
:1046600041040F900F900F908091EB049091EC0417 |
:104670009F938F938AE896E09F938F931F930E9456 |
:10468000761488E2809341040F900F900F900F9062 |
:104690000F908091EF049091F0049F938F9389E99C |
:1046A00096E09F938F931F930E9476148CE38093E0 |
:1046B00041040F900F900F900F900F908091ED0498 |
:1046C0009091EE049F938F9388EA96E09F938F9347 |
:1046D0001F9399CF10924004F5CE20934004E2CE70 |
:1046E000C530D10509F403C426970CF08CC3109291 |
:1046F00041048091E208E82FFF27EE0FFF1FE155EC |
:10470000F74F808191819F938F938091E108E82FEB |
:10471000FF27EE0FFF1FE155F74F808191819F9397 |
:104720008F9383E295E09F938F9311E01F930E94F4 |
:10473000761484E1809341048DB79EB707960FB637 |
:10474000F8949EBF0FBE8DBF8091E408E82FFF272D |
:10475000EE0FFF1FE155F74F808191819F938F935B |
:104760008091E308E82FFF27EE0FFF1FE155F74F79 |
:104770008081918188589F4F9F938F9383E395E029 |
:104780009F938F931F930E94761488E28093410435 |
:104790002DB73EB7295F3F4F0FB6F8943EBF0FBE0F |
:1047A0002DBF8091E608E82FFF27EE0FFF1FE15590 |
:1047B000F74F8081918182599F4F9F938F93809172 |
:1047C000E508E82FFF27EE0FFF1FE155F74F808127 |
:1047D000918182599F4F9F938F9383E495E09F939C |
:1047E0008F931F930E9476148CE3809341046DB7DE |
:1047F0007EB7695F7F4F0FB6F8947EBF0FBE6DBF67 |
:104800008091E808E82FFF27EE0FFF1FE155F74FD3 |
:104810008081918182599F4F9F938F938091E70868 |
:10482000E82FFF27EE0FFF1FE155F74F80819181A1 |
:1048300082599F4F9F938F9383E595E09F938F932A |
:104840001F930E9476148DB79EB707960FB6F89403 |
:104850009EBF0FBE8DBFB5C6CD30D10509F447C48C |
:10486000CD30D1050CF452C22E9709F4D9C4815031 |
:104870008093290310924004A4C6109240041CCED9 |
:1048800084E18093410480912703909128039F93B2 |
:104890008F938DE496E09F938F9311E01F930E9476 |
:1048A000761488E2809341040F900F900F900F9040 |
:1048B0000F908091DE0499279F938F938CE596E06B |
:1048C0009F938F931F930E9476148CE380934104EF |
:1048D0000F900F900F900F900F908091AE08992736 |
:1048E00001979F938F938BE696E0F0CE1092410450 |
:1048F00089E197E09F938F9311E01F930E947614B4 |
:1049000084E1809341040F900F900F908091840771 |
:10491000992787FD90959F938F938091830799277F |
:1049200087FD90959F938F9389E297E09F938F9354 |
:104930001F930E94761488E2809341048DB79EB73E |
:1049400007960FB6F8949EBF0FBE8DBF8091850766 |
:10495000992787FD90959F938F938091860799273C |
:104960009F938F9389E397E09F938F931F930E9468 |
:1049700076148CE3809341042DB73EB7295F3F4FF7 |
:104980000FB6F8943EBF0FBE2DBF80918A079927BE |
:104990009F938F9380918707992787FD90959F9389 |
:1049A0008F9389E497E09F938F931F930E947614CF |
:1049B0006DB77EB7695F7F4F0FB6F8947EBF0FBEAD |
:1049C0006DBFFFC5109241048091B3089091B40867 |
:1049D0009F938F938091B1089091B2089F938F938A |
:1049E00083EE94E09F938F9311E01F930E947614BF |
:1049F00084E1809341046DB77EB7695F7F4F0FB646 |
:104A0000F8947EBF0FBE6DBF8091B7089091B80833 |
:104A10009F938F938091B5089091B6089F938F9341 |
:104A200083EF94E09F938F931F930E94761488E204 |
:104A3000809341048DB79EB707960FB6F8949EBF3A |
:104A40000FBE8DBF8091BB089091BC089F938F9340 |
:104A50008091B9089091BA089F938F9383E095E075 |
:104A60009F938F931F930E9476148CE3809341044D |
:104A70002DB73EB7295F3F4F0FB6F8943EBF0FBE2C |
:104A80002DBF8091BF089091C0089F938F93809114 |
:104A9000BD089091BE089F938F9383E195E083CFEB |
:104AA0008091E90880FD1CC084E18093410487E97E |
:104AB00094E09F938F9311E01F930E94761488E2F5 |
:104AC000809341040F900F900F908EE994E09F9394 |
:104AD0008F931F930E9476140F900F900F9071C5C3 |
:104AE000109241048091D0049091D104A091D204FD |
:104AF000B091D304BC01CD0125E030E040E050E0AE |
:104B00000E94FB6B3F932F938BE594E09F938F93D1 |
:104B100011E01F930E94761484E1809341040F906A |
:104B20000F900F900F900F908091CC049091CD0436 |
:104B3000A091CE04B091CF04BC01CD0125E030E0BE |
:104B400040E050E00E94FB6B3F932F938AE694E095 |
:104B50009F938F931F930E94761488E28093410461 |
:104B60000F900F900F900F900F9080911D039091D8 |
:104B70001E039F938F9389E794E09F938F931F93D6 |
:104B80000E9476148CE3809341040F900F900F9055 |
:104B90000F900F9087B599279F938F9388E894E0A3 |
:104BA00095CD209709F063CE109241048DEE93E0ED |
:104BB0009F938F9311E01F930E94761484E180935A |
:104BC00041040F900F900F9087E690E09F938F9392 |
:104BD0008CE490E09F938F93DF93CF9380910201B9 |
:104BE0006AE00E94A66B892F99279F938F938091EB |
:104BF00002010E94A66B99279F938F938DEF93E0FC |
:104C00009F938F931F930E94761488E280934104B0 |
:104C10002DB73EB7235F3F4F0FB6F8943EBF0FBE90 |
:104C20002DBF84ED95E09F938F930E94B505992742 |
:104C30009F938F938BE194E09F938F931F930E9498 |
:104C400076148091AC039091AD036DB77EB7695F28 |
:104C50007F4F0FB6F8947EBF0FBE6DBF069708F466 |
:104C600088C490914604992309F47DC48CE3809311 |
:104C70004104892F99279F938F9386E394E026CD53 |
:104C80001092410487EE96E09F938F9311E01F935B |
:104C90000E94761484E1809341040F900F900F904E |
:104CA0008091920399279F938F938FEE96E09F9325 |
:104CB0008F931F930E94761488E2809341040F9093 |
:104CC0000F900F900F900F908091F7039091F80341 |
:104CD0009F938F938DEF96E09F938F931F930E94E6 |
:104CE00076148CE3809341040F900F900F900F90F7 |
:104CF0000F9080910B0999279F938F9380910A09B8 |
:104D000099279F938F938BE097E04DCE10924104AB |
:104D100089E597E09F938F9311E01F930E9476148B |
:104D200084E1809341040F900F900F908091890847 |
:104D300099279F938F938091880899279F938F93AA |
:104D40008091870899279F938F9380918608992750 |
:104D50009F938F9389E697E09F938F931F930E9471 |
:104D6000761488E2809341048DB79EB70B960FB6F8 |
:104D7000F8949EBF0FBE8DBF80918D0899279F9399 |
:104D80008F9380918C0899279F938F9380918B08A4 |
:104D900099279F938F9380918A0899279F938F9348 |
:104DA0008EE797E09F938F931F930E9476148CE376 |
:104DB000809341042DB73EB7255F3F4F0FB6F8945F |
:104DC0003EBF0FBE2DBF8091910899279F938F936F |
:104DD0008091900899279F938F9380918F089927AE |
:104DE0009F938F9380918E0899279F938F9383E948 |
:104DF00097E09F938F931F930E9476146DB77EB7B1 |
:104E0000655F7F4FD9CD1092410483E196E09F9377 |
:104E10008F9311E01F930E94761484E180934104E4 |
:104E20000F900F900F9080913705909138059F93C8 |
:104E30008F9380911A0490911B049F938F9380E22B |
:104E400096E09F938F931F930E94761488E280933D |
:104E500041046DB77EB7695F7F4F0FB6F8947EBF90 |
:104E60000FBE6DBF80913505909136059F938F934E |
:104E700080911C0490911D049F938F938FE296E084 |
:104E80009F938F931F930E9476148CE38093410429 |
:104E90008DB79EB707960FB6F8949EBF0FBE8DBF15 |
:104EA00080912F0590913005A0913105B091320588 |
:104EB000BC01CD010E94F06ADC01CB019F938F936E |
:104EC00080916209909163099F938F938EE396E09E |
:104ED0009F938F931F930E9476142DB73EB7295F3F |
:104EE0003F4F0FB6F8943EBF0FBE2DBF6AC310925E |
:104EF000410483E695E09F938F93C1E0CF930E9496 |
:104F00007614809102010F900F900F908A3009F46F |
:104F1000A5C28B3009F4DEC1843109F4DBC18D30C8 |
:104F200009F04FC384E18093410480911C039927C9 |
:104F30009F938F934091410550914205CA0157FDBF |
:104F400039C3959587959595879595958795959569 |
:104F500087959F938F939A0157FD29C33595279580 |
:104F600035952795359527958091220490912304B6 |
:104F7000821B930B9F938F9387ED95E09F938F9365 |
:104F8000CF930E94761488E2809341046DB77EB778 |
:104F9000675F7F4F0FB6F8947EBF0FBE6DBF8091E5 |
:104FA0001B0399279F938F9340913F055091400594 |
:104FB000CA0157FD04C39595879595958795959555 |
:104FC0008795959587959F938F939A0157FDF4C286 |
:104FD000359527953595279535952795809120040A |
:104FE00090912104821B930B9F938F938BEE95E0FE |
:104FF0009F938F93CF930E9476148CE38093410408 |
:105000008DB79EB709960FB6F8949EBF0FBE8DBFA1 |
:1050100080911A0399279F938F9320913D0530919A |
:105020003E05C90137FDC1C2959587959F938F9322 |
:1050300080911E0490911F04281B390B3F932F93DE |
:105040008FEF95E09F938F93CF930E9476142DB7A7 |
:105050003EB7275F3F4F45CF109241048091E50452 |
:105060009091E6049F938F9387EB96E09F938F93A5 |
:1050700011E01F930E94761484E1809341040F9005 |
:105080000F900F900F900F908091E3049091E404A3 |
:105090009F938F9383EC96E09F938F931F930E942F |
:1050A000761488E2809341040F900F900F900F9038 |
:1050B0000F908091E1049091E2049F938F938FEC85 |
:1050C00096E09F938F931F930E9476148CE38093B6 |
:1050D00041040F900F900F900F900F908091DF047C |
:1050E0009091E0049F938F938BED96E0EFCA10921E |
:1050F000410488EA97E09F938F93C1E0CF930E9489 |
:10510000761484E1809341040F900F900F9080916A |
:10511000A50899278D969F938F938091A40899272E |
:105120008D969F938F938091A30899278D969F9337 |
:105130008F938091A20899278D969F938F9387EBE9 |
:1051400097E09F938F93CF930E94761488E2809389 |
:1051500041048DB79EB70B960FB6F8949EBF0FBE55 |
:105160008DBF8091A90899278D969F938F938091E9 |
:10517000A80899278D969F938F938091A7089927C8 |
:105180008D969F938F938091A60899278D969F93D4 |
:105190008F938BEC97E09F938F93CF930E9476141D |
:1051A0008CE3809341042DB73EB7255F3F4F0FB688 |
:1051B000F8943EBF0FBE2DBF8091AA0899278D9607 |
:1051C0009F938F938FED97E09F938F93CF930E9440 |
:1051D00076140F900F900F900F900F908091AB0866 |
:1051E000882309F02DC18091AC08882309F01AC1E9 |
:1051F0008091AD08882309F4E4C188E480934104D8 |
:1052000085EF97E09F938F93CF9364CC81509C4F11 |
:10521000AF4FBF4FCFC981509C4FAF4FBF4FA3C9B6 |
:105220001092410488EF97E09F938F9311E01F93B2 |
:105230000E94761484E1809341040F900F900F90A8 |
:105240008091D8039091D9039F938F9386E098E043 |
:105250009F938F931F930E94761488E2809341045A |
:105260000F900F900F900F900F908091D603909118 |
:10527000D7039F938F9383E198E09F938F931F931E |
:105280000E94761489E4809341040F900F900F9050 |
:105290000F900F9080E298E09F938F931F930E944E |
:1052A000761480913F040F900F900F9083FF89C177 |
:1052B0001092D9031092D803AEE0B0E080E0082E3F |
:1052C0000E94236CAFE0B0E08091D803082E0E94CA |
:1052D000236C77C184E18093410440914105509152 |
:1052E0004205CA0157FD57C19C0135952795359553 |
:1052F00027953595279535952795C90182959295DE |
:10530000907F9827807F9827BA01681B790BCB0183 |
:1053100077FD3FC1959587959F938F933F932F93EB |
:105320009A0157FD33C135952795359527953595C4 |
:1053300027958091220490912304821B930B9F93C5 |
:105340008F9384EA95E09F938F93CF930E94761476 |
:1053500088E2809341048DB79EB709960FB6F89402 |
:105360009EBF0FBE8DBF40913F0550914005CA01C1 |
:1053700057FD0AC19C01359527953595279535959B |
:10538000279535952795C90182959295907F982705 |
:10539000807F9827BA01681B790BCB0177FDF2C09B |
:1053A000959587959F938F933F932F939A0157FDE0 |
:1053B000E6C03595279535952795359527958091A4 |
:1053C000200490912104821B930B9F938F9386EB73 |
:1053D00095E09F938F93CF930E9476148CE38093F4 |
:1053E00041048DB79EB709960FB6F8949EBF0FBEC5 |
:1053F0008DBF20913D0530913E05C90137FDCDC0DF |
:10540000959587959F938F9380911E0490911F048B |
:10541000281B390B3F932F9388EC95E09F938F9334 |
:10542000CF9359CD84E48093410482EF97E09F931A |
:105430008F93CF930E9476140F900F900F90D8CE39 |
:1054400080E4809341048FEE97E09F938F93CF93F6 |
:105450000E9476140F900F900F90C5CE84E1809338 |
:10546000410440914105509142059A0157FD9AC06F |
:10547000359527953595279535952795C901880F39 |
:10548000991F880F991F880F991F481B590B5F930D |
:105490004F933F932F938091220490912304821B7A |
:1054A000930B9F938F9381E795E09F938F93CF9377 |
:1054B0000E94761488E2809341042DB73EB7275F9F |
:1054C0003F4F0FB6F8943EBF0FBE2DBF40913F0532 |
:1054D000509140059A0157FD62C035952795359545 |
:1054E000279535952795C901880F991F880F991F12 |
:1054F000880F991F481B590B5F934F933F932F932E |
:105500008091200490912104821B930B9F938F9391 |
:1055100083E895E09F938F93CF930E9476148CE35A |
:10552000809341046DB77EB7675F7F4F0FB6F894E5 |
:105530007EBF0FBE6DBF80913D0590913E059F934C |
:105540008F9380913D0590913E0520911E043091EE |
:105550001F04821B930B9F938F9385E995E09F9384 |
:105560008F93CF936EC98CE3809341048BE494E0D6 |
:10557000AECA8CE38093410489E294E0A8CA295F13 |
:105580003F4F17CF01960CCF0F96F4CE295F3F4FB8 |
:10559000CACE0196BFCE0F96A7CE019631CF295F16 |
:1055A0003F4F9BCF295F3F4F63CF01963DCD295F92 |
:1055B0003F4FD4CC0F96C5CC295F3F4F09CD0F96F6 |
:1055C000FACC10923F04DF91CF911F910895109271 |
:1055D000B9008AE28093B800089585EA8093BC0000 |
:1055E000089584E98093BC0008951092B9008093D7 |
:1055F000BB0085E88093BC0008950E94F12A1092B8 |
:1056000049048091BB001092480480E88093BC005C |
:105610001092BD001092BA001092BB001092B90017 |
:105620001092B8000E94E72A0E94ED2A80E00E94B2 |
:10563000F52A08958093BB0085E88093BC00089507 |
:1056400085EC8093BC00089585E88093BC000895A4 |
:105650001F920F920FB60F9211242F933F934F93E7 |
:105660005F936F937F938F939F93AF93BF93EF93CA |
:10567000FF9380914904282F3327442755278F5FB4 |
:1056800080934904F90127313105C8F4E05BFF4FED |
:10569000EE0FFF1F0590F491E02D099480914704CF |
:1056A000E82FFF27EA58F74F9091BB0090838F5F58 |
:1056B0008C3008F49DC0109247040E94F12A109289 |
:1056C0004904E0C080E80E94F52ADCC088E90E9415 |
:1056D000F52AD8C00E94F12A8AE090E09093AD03A9 |
:1056E0008093AC030E94ED2ACDC084E10E94F52A8C |
:1056F000C9C082E10E94F52AC5C080911C030E94A6 |
:10570000F52AC0C080E10E94F52ABCC080911B032D |
:105710000E94F52AB7C080911A030E94F52AB2C0F0 |
:1057200080914804E82FFF27EA56F64F8F5F809359 |
:10573000480480810E94F52AA5C090914804292F31 |
:10574000E92FFF27EE0FFF1FEE0FFF1FED52FA4F5D |
:10575000858518160CF054C09C3009F467C0990F69 |
:10576000892F8E5A0E94F52A8DC080914704E82F18 |
:10577000FF27EE56F74F8091BB0080830E94242BB9 |
:1057800081C08091B900803409F46EC080914704D3 |
:10579000E82FFF27EE55F74F10828F5F8C3068F1AE |
:1057A000109247040E94F12A1092490480914A0401 |
:1057B0008093460410924A0465C08091B9008033FA |
:1057C00009F440C00E94F12A8AE090E09093AD0372 |
:1057D0008093AC03109249040E94ED2A53C00E94AA |
:1057E000F12A8AE090E09093AD038093AC0367CFF9 |
:1057F000809347040E94F12A62CF80934704D2CF5E |
:105800009C3008F0A9CF922F9F5FE92FFF27EE0F62 |
:10581000FF1FEE0FFF1FED52FA4F858518161CF083 |
:10582000292F9C3080F39093480496CF109248041F |
:1058300083E08093490480914704880F8D5A0E9429 |
:10584000F52A20C080914A048823C9F49091480425 |
:1058500090934A04E92FFF27EB57F74F80818F5F22 |
:1058600009F48FEF8083AECF80914704E82FFF27A4 |
:10587000EE55F74F8C5F80830E94202B97CF90913D |
:105880004804E8CF8091BC0080688093BC00FF9101 |
:10589000EF91BF91AF919F918F917F916F915F91A8 |
:1058A0004F913F912F910F900FBE0F901F90189521 |
:1058B00083EC8093810080916F00806280936F0001 |
:1058C00010923E0510923D051092400510923F0542 |
:1058D000109242051092410508951F920F920FB643 |
:1058E0000F921124EF92FF920F931F932F933F93E8 |
:1058F0004F935F936F937F938F939F93AF93BF93D8 |
:10590000CF93DF93EF93FF938091390982FD2CC0F1 |
:10591000209186003091870080914C0490914D0435 |
:10592000281B390B809186009091870090934D043D |
:1059300080934C04C9018D549440835F9A4108F0D0 |
:10594000B5C080914E048093AE0880914E04909132 |
:105950004F04049714F010928403C1E0D0E0D09378 |
:105960004F04C0934E0415C24091860050918700A9 |
:105970008091500490915104481B590B80918600EE |
:10598000909187009093510480935004CA018D54E4 |
:105990009440835F9A4138F58091AA0480934B0428 |
:1059A00080914B04843008F00EC18091AB048536A1 |
:1059B00008F47BC18AE08093AB04809102018A30B5 |
:1059C00009F476C1843109F473C1289881E0809389 |
:1059D000AA048091D404882309F0DBC180914B0490 |
:1059E0008093AE08D6C10091AA040A3008F0E4C042 |
:1059F000CA018B5F9040845B914008F05BC1425DBF |
:105A00005140E02FFF27EE0FFF1FEE5AFB4F808122 |
:105A10009181FA01E81BF90BCF0105960B9708F469 |
:105A20005CC1E02FFF27EE0FFF1FEE5AFB4F808176 |
:105A300091819C01220F331F280F391F240F351F1E |
:105A400037FDA4C1E901D595C795D595C795CA017C |
:105A500001968C179D070CF071C121978091DE048F |
:105A60008E3B08F462C1E02FFF27EE0FFF1FDF011E |
:105A7000AE5ABB4F8D919C919E01281B390BC901D9 |
:105A800063E070E00E94C66BCB01880F991F860F00 |
:105A9000971FE859FB4F91838083E02FFF27EE0F7C |
:105AA000FF1FEE5AFB4FD183C0830BC1C0914E0440 |
:105AB000D0914F04CA30D1050CF06BC1C9018B5F86 |
:105AC0009040845B914008F060C0225D3140FE014F |
:105AD000EC0FFD1FE155F74F80819181D901A81B83 |
:105AE000B90BCD01B7FD0EC1069754F48091DE04C9 |
:105AF000883C08F046C18091DE04865F8093DE0416 |
:105B0000FE01EC0FFD1FE155F74F80819181AC0143 |
:105B1000440F551F480F591F420F531F57FD33C1E4 |
:105B20007A01F594E794F594E794C90101968E15EE |
:105B30009F050CF013C10894E108F1088091DE0480 |
:105B4000833C08F403C18E010C0F1D1FF801E155C1 |
:105B5000F74F80819181F701E81BF90BCF0163E0DA |
:105B600070E00E94C66BCB01880F991F860F971FAC |
:105B70000B53174FD80111969C938E93FE01EC0F97 |
:105B8000FD1FE155F74FF182E082FE013196F0935F |
:105B90004F04E0934E04E530F10509F4B9C05D9877 |
:105BA000E630F10509F4BFC05C98379709F4B9C035 |
:105BB0005B98EFC05C9A5B98043108F054C00F5FAB |
:105BC0000093AA04E6C09091AE0880914B04981708 |
:105BD00009F0EBCE4091AB044B3008F49BC010921F |
:105BE00084031092AA043AC00091AA04E02FFF2770 |
:105BF000EE0FFF1F9F0122583B4FDF01A155B74F0A |
:105C00008D919C91D9018D939C93DF01AB53B74F3C |
:105C10008D919C91EC56FB4F91838083E02FFF2761 |
:105C2000EE0FFF1F9F012155374FDF01AE5ABB4FCB |
:105C30008D919C91D90111969C938E93DF01A85967 |
:105C4000BB4F8D919C91EB53F74F91838083E02F55 |
:105C5000EF5FEB3008F05EC0E093AA044F3120F60E |
:105C60000091AA04DBCF043109F093C080910201B6 |
:105C70008A3009F47DC0843109F47AC028988EE115 |
:105C80008093AA042AE0C5ECD8E0AEE7B4E0EFEADE |
:105C9000F8E08D919D9191838083329619821882CC |
:105CA0002296215027FFF5CF74C01092AB0485CE09 |
:105CB000289A8CCE809102018A3011F1843101F151 |
:105CC0002898053019F15D98063009F473CF5C9877 |
:105CD000073009F070CF5B9A72CF8091AB048A31A4 |
:105CE00008F448C08091DE04865F8093DE048091D2 |
:105CF000DE04893C08F495CE88EC8093DE0491CED6 |
:105D0000289ADFCF909581959F4FEECE5D9ADFCF99 |
:105D10005D9A46CF4F3F09F459CE4F5F4093AB0495 |
:105D200055CE5B9A36C05C9A40CFE02FFF27EE0F2E |
:105D3000FF1FE859FB4F11821082AFCE41505040F7 |
:105D4000C417D5070CF08ACE219688CEFE01EC0F41 |
:105D5000FD1FEB53F74F1182108210CF21503040BE |
:105D6000E216F3060CF0EACE0894E11CF11CE6CE34 |
:105D7000289A85CF8B3008F4BACF8091DE048E5FED |
:105D8000B4CF88ECBBCE4D5F5F4FCACE2D5F3F4F87 |
:105D900059CEFF91EF91DF91CF91BF91AF919F913C |
:105DA0008F917F916F915F914F913F912F911F91B3 |
:105DB0000F91FF90EF900F900FBE0F901F901895CE |
:105DC00081E08093E30882E08093E20883E080939F |
:105DD000E10884E08093E40885E08093E50886E0AC |
:105DE0008093E60887E08093E70888E08093E808DE |
:105DF00008951F938AE68093E90851E0509339098A |
:105E00004EE14093EA088BEF8093EC088AE08093A0 |
:105E1000ED084093EB084093EF0885E08093F0088D |
:105E200080E48093F1081092F20884E18093EE08F8 |
:105E30008EE08093F308E0E1E093F4081CE0109317 |
:105E4000F508F8E0F093F60886EE8093F7084093A3 |
:105E5000F80880E88093F90830E53093FA0896E96D |
:105E60009093FB0883E08093FC083093FD089093A7 |
:105E7000FE0881E28093FF0883E28093000940934B |
:105E800001091092020960E260930309109204096B |
:105E900010920509109206091092070910921C0928 |
:105EA00010921D0910921E0910921F0924E62093DA |
:105EB000080998E2909309095093380910920A0949 |
:105EC0008AEF80930B0976E07093100920930C09F8 |
:105ED00090930D0910920E0980930F0982E380932D |
:105EE00011099AE5909312098093130910923709CA |
:105EF00090931409309315095093160985E5809302 |
:105F0000170980931809E093190960931A092093DF |
:105F10001B098FE58093200983EF809322098AEA89 |
:105F200080932409809325098FE080932109809331 |
:105F300023098CEF80932609209327099093280941 |
:105F40009093290990932A098BE480932B098093DD |
:105F50002C0980932D0910922E0970932F09F0932C |
:105F600030099093310940933209209333092093EB |
:105F7000340984E080933509AEEAB3E0EAE3F9E05E |
:105F80000D9001921A95E1F71F9108958AE680938A |
:105F9000E90871E0709339095EE15093EA088BEFEC |
:105FA0008093EC089AE09093ED085093EB0850939F |
:105FB000EF0885E08093F00880E48093F108109268 |
:105FC000F2088FE08093EE089093F30880E18093CD |
:105FD000F40866E06093F508E8E0E093F60886EEE2 |
:105FE0008093F7085093F80880E88093F9082AE531 |
:105FF0002093FA0898E79093FB0883E08093FC08CD |
:106000002093FD089093FE0881E28093FF0883E2CD |
:1060100080930009509301091092020940E24093D5 |
:1060200003091092040910920509109206091092B2 |
:10603000070910921C0910921D0910921E09109256 |
:106040001F0934E63093080998E290930909709388 |
:10605000380910920A098AEF80930B09609310099E |
:1060600030930C0990930D0910920E0980930F093B |
:1060700082E38093110920931209809313091092EF |
:1060800037092093140980E5809315098CE38093E8 |
:10609000160985E58093170980931809409319091B |
:1060A00040931A099BE490931B098FE58093200984 |
:1060B00083EF809322098AEA80932409809325093B |
:1060C00084E180932109809323098CEF8093260932 |
:1060D00030932709209328092093290920932A091E |
:1060E00090932B0990932C0990932D0910922E09CF |
:1060F00060932F09E09330092093310950933209BE |
:10610000309333093093340984E0809335098CE06F |
:10611000A5EBB3E0EAE3F9E00D9001928A95E1F78F |
:1061200008958AE68093E90871E0709339094EE199 |
:106130004093EA088BEF8093EC088AE08093ED08A7 |
:106140004093EB084093EF0885E08093F00880E4EB |
:106150008093F1081092F2088FE08093EE0868E0D7 |
:106160006093F30820E12093F40856E05093F5087B |
:106170006093F60886EE8093F7084093F80880E86D |
:106180008093F90834E63093FA0898E79093FB0877 |
:1061900083E08093FC083093FD089093FE0881E231 |
:1061A0008093FF0883E28093000984E180930109D2 |
:1061B0001092020920930309109204091092050914 |
:1061C000109206091092070910921C0910921D09DD |
:1061D00010921E0910921F093093080998E29093BB |
:1061E00009097093380910920A098AEF80930B0904 |
:1061F0005093100930930C0990930D0910920E09D9 |
:1062000080930F0992E3909311092AE520931209D4 |
:1062100090931309109237092093140980E5809315 |
:10622000150986E48093160985E580931709809304 |
:10623000180980E28093190980931A0990931B0929 |
:106240008FE58093200983EF809322098AEA809367 |
:1062500024098093250940932109409323098CEF59 |
:106260008093260930932709209328092093290930 |
:1062700020932A098BE480932B0980932C09809327 |
:106280002D0910922E0950932F0960933009209305 |
:10629000310940933209309333093093340984E053 |
:1062A000809335098CE0ADEBB3E0EAE3F9E00D90C3 |
:1062B00001928A95E1F70895FC01681779073CF48B |
:1062C000680F791F77FD19C07595679525C02091D6 |
:1062D000BC04222331F4681B790BE61BF70BBF01CA |
:1062E0001BC0213069F03327CB018E1B9F0BB901F6 |
:1062F0000E94C66B6E0F7F1F0FC06F5F7F4FE4CF92 |
:10630000681B790B77FD03C075956795E6CF6F5FC6 |
:106310007F4F75956795E1CFCB010895EF92FF927E |
:106320000F931F93CF93C82F8B018091D4048823A0 |
:10633000A9F4C150CF3F91F07B01E60EF71E1093F8 |
:10634000FC030093FB038091FB039091FC03892BDA |
:10635000D1F7C7010E940A18C15088F7CF911F9149 |
:106360000F91FF90EF9008952F923F924F925F927E |
:106370006F927F928F929F92AF92BF92CF92DF9255 |
:10638000EF92FF920F931F93CF93DF93CDB7DEB7BA |
:10639000ED970FB6F894DEBF0FBECDBF20913D053F |
:1063A00030913E0580911E0490911F04281B390BEB |
:1063B0003A8729873093A5092093A40920912804BE |
:1063C0003091290437FDD4C7359527953595279504 |
:1063D000359527953AA729A73C872B8779012091E6 |
:1063E00026043091270437FDC0C73595279535958C |
:1063F0002795359527953CA72BA73E872D87F092AB |
:106400006509E092640930935B0920935A098091F1 |
:10641000930990919409AA2797FDA095BA2F7C0122 |
:106420008D01EE0CFF1C001F111FE80EF91E0A1F44 |
:106430001B1F80911A0490911B049C01442737FD77 |
:106440004095542FDA01C901880F991FAA1FBB1F5D |
:10645000880F991FAA1FBB1F820F931FA41FB51F70 |
:10646000820F931FA41FB51FE80EF91E0A1F1B1FE2 |
:1064700017FD9CC715950795F794E7941595079513 |
:10648000F794E794F0929409E09293098091AF0910 |
:106490009091B009AA2797FDA095BA2F7C018D0194 |
:1064A000EE0CFF1C001F111FE80EF91E0A1F1B1F18 |
:1064B00080911C0490911D049C01442737FD409558 |
:1064C000542FDA01C901880F991FAA1FBB1F880F1B |
:1064D000991FAA1FBB1F820F931FA41FB51F820FF6 |
:1064E000931FA41FB51FE80EF91E0A1F1B1F17FDDF |
:1064F00054C715950795F794E79415950795F79464 |
:10650000E794F092B009E092AF098091620990910E |
:106510006309AA2797FDA095BA2F9C01AD01220F10 |
:10652000331F441F551F280F391F4A1F5B1F8091BF |
:10653000180490911904AA2797FDA095BA2F280F47 |
:10654000391F4A1F5B1F57FD16C75595479537954D |
:10655000279555954795379527953093630920934F |
:10656000620920911A0430911B04C901880F991FF8 |
:10657000880F991F820F931F820F931FAA2797FDE1 |
:10658000A095BA2F2091190530911A0540911B054D |
:1065900050911C05820F931FA41FB51F80931905EE |
:1065A00090931A05A0931B05B0931C0520911C0421 |
:1065B00030911D04C901880F991F880F991F820F00 |
:1065C000931F820F931FAA2797FDA095BA2F2091A2 |
:1065D0001505309116054091170550911805820F49 |
:1065E000931FA41FB51F8093150590931605A093C4 |
:1065F0001705B093180580916D0990916E0920914F |
:106600001A0430911B04820F931F90936E0980939C |
:106610006D098091A7099091A80920911C043091DF |
:106620001D04820F931F9093A8098093A70980915E |
:10663000330590913405019690933405809333058A |
:106640008091110590911205A0911305B091140548 |
:10665000BC01CD010E940D6B5B016C01809169084A |
:1066600090916A08AA2797FDA095BA2FBC01CD0189 |
:106670000E940D6B7B018C0180912F05909130055C |
:10668000A0913105B09132059C01AD01C801B7015F |
:106690000E94AD6ADC01CB019C01AD01C601B501D0 |
:1066A0000E94AE6ADC01CB01BC01CD010E94F06A00 |
:1066B000DC01CB018093110590931205A093130583 |
:1066C000B09314058FEC80937A00109219032090F8 |
:1066D000010530900205409003055090040539E40F |
:1066E00023163BE6330631E0430630E053060CF454 |
:1066F00014C188E49BE6A1E0B0E08D839E83AF8364 |
:10670000B8876090090570900A0580900B059090FD |
:106710000C0539E463163BE6730631E0830630E08E |
:1067200093060CF4DCC488E49BE6A1E0B0E0898326 |
:106730009A83AB83BC8349855A85CA01AA2797FDF2 |
:10674000A095BA2F2091F9043091FA044091FB04EE |
:106750005091FC04280F391F4A1F5B1F2DA33EA335 |
:106760004FA358A7A090AB09B090AC09C090AD0959 |
:10677000D090AE09A80EB91ECA1EDB1E8601750197 |
:106780003091C7043BA3332309F0DAC08091C604DB |
:10679000882309F0C2C44091E9084CA346FF13C600 |
:1067A000EBA5FCA5CF01AA2797FDA095BA2FBC01A8 |
:1067B000CD0129813A814B815C810E94876B9B01CD |
:1067C000AC0197FD2CC7BBE05595479537952795AC |
:1067D000BA95D1F780918E03E82EFF240027112768 |
:1067E000C801B7010E94876B97FD14C7ACE095956F |
:1067F000879577956795AA95D1F76F87788B898B61 |
:106800009A8B60934D0570934E0580934F0590933E |
:10681000500529A53AA5C901AA2797FDA095BA2F29 |
:10682000BC01CD012D813E814F8158850E94876B2F |
:106830009B01AC0197FD01C7FBE055954795379546 |
:106840002795FA95D1F7C801B7010E94876B97FD8C |
:10685000EFC6DC01CB01ECE0B595A7959795879540 |
:10686000EA95D1F78093510590935205A093530573 |
:10687000B093540520914D0530914E053093DC08BE |
:106880002093DB0820915105309152053093E008A8 |
:106890002093DF082F85388949895A89821B930BF9 |
:1068A000A40BB50B8AAF9BAFACAFBDAF80935105C6 |
:1068B00090935205A0935305B0935405A80EB91EAA |
:1068C000CA1EDB1E8601750130918D033DA733235F |
:1068D00009F0A3C58EA79FA7A8ABB9ABB7FD61C64A |
:1068E0002EA53FA548A959A95595479537952795B0 |
:1068F0008DA19EA1AFA1B8A5821B930BA40BB50BD4 |
:106900008DA39EA3AFA3B8A78093F9049093FA0434 |
:10691000A093FB04B093FC048CC598EB291694E972 |
:1069200039069EEF49069FEF59060CF0F1C328EB9C |
:1069300034E94EEF5FEF2D833E834F835887E1CEDE |
:106940002DA13EA14FA158A52093F9043093FA043C |
:106950004093FB045093FC043091E9083CA310924F |
:10696000E0081092DF081092DC081092DB08109209 |
:10697000490510924A0510924B0510924C05109251 |
:106980004505109246051092470510924805309132 |
:106990008D033DA78091490590914A05A0914B0533 |
:1069A000B0914C05BC01CD0124E630E040E050E060 |
:1069B0000E94FB6BDA01C9014091450550914605E3 |
:1069C000481B590B58A34F8F809145059091460560 |
:1069D000A0914705B0914805BC01CD0124E630E007 |
:1069E00040E050E00E94FB6BDA01C90120914905AB |
:1069F00030914A05821B930B9AA389A38091860349 |
:106A000090918703A0918803B0918903BC01CD01C7 |
:106A100028E631E040E050E00E94876BE616F7067A |
:106A20000807190744F057016801A61AB70AC80AEF |
:106A3000D90A8601750117FDA3C4A092AB09B092D3 |
:106A4000AC09C092AD09D092AE092BA53CA58F8DA3 |
:106A500098A1280F391F79010027F7FC0095102F06 |
:106A60008091FD049091FE04A091FF04B091000577 |
:106A7000E80EF91E0A1F1B1F570168018091CA0406 |
:106A80009091CB04281B390BC901AA2797FDA0952B |
:106A9000BA2F280E391E4A1E5B1E2091A203309188 |
:106AA000A3034091A4035091A50322153305440587 |
:106AB000550574F4A8EAEA2EA1E6FA2E012D112D4F |
:106AC000E21AF30A040B150B17012801570168019C |
:106AD00088279927DC01821B930BA40BB50B281682 |
:106AE00039064A065B060CF0E9C2F8E52F2EFEE9EE |
:106AF0003F2EFFEF4F2EFFEF5F2E220E331E441E60 |
:106B0000551E2092010530920205409203055092D5 |
:106B10000405820171012092FD043092FE0440922E |
:106B2000FF045092000529A53AA5A9A1BAA12A0FF0 |
:106B30003B1FA901662757FD6095762F80910505BB |
:106B400090910605A0910705B0910805480F591FBF |
:106B50006A1F7B1F5A016B018091C8049091C90480 |
:106B6000281B390BC901AA2797FDA095BA2F680EDB |
:106B7000791E8A1E9B1E8091A6039091A703A09167 |
:106B8000A803B091A9038EAB9FABA8AFB9AF861590 |
:106B90009705A805B90564F448EA51E660E070E09D |
:106BA000481B590B6A0B7B0B3A014B015A016B01D5 |
:106BB0008EA99FA9A8ADB9ADB095A09590958195E6 |
:106BC0009F4FAF4FBF4F681679068A069B060CF0A1 |
:106BD00064C2E8E56E2EEEE97E2EEFEF8E2EEFEF2B |
:106BE0009E2E2EA93FA948AD59AD620E731E841E7C |
:106BF000951E6092090570920A0580920B0590928D |
:106C00000C05B401A30160920505709206058092FF |
:106C10000705909208058DA19EA1AFA1B8A580930C |
:106C20000D0590930E05A0930F05B093100560928B |
:106C3000290570922A0580922B0590922C052092AE |
:106C4000210530922205409223055092240540935D |
:106C50002505509326056093270570932805E0923B |
:106C60001D05F0921E0500931F05109320058091CD |
:106C700025039091260397FDA4C37C01F594E79426 |
:106C8000F594E794F594E794FAA6E9A68091230396 |
:106C90009091240397FD93C38C0115950795159545 |
:106CA0000795159507951CA70BA780912204909135 |
:106CB00023040F9734F458E1E52E5CEFF52EFAA685 |
:106CC000E9A68091220490912304079734F440E3CD |
:106CD000E42E48EFF42EFAA6E9A6209102012A300C |
:106CE00009F46BC28091220490912304815D974046 |
:106CF0000CF007C28091220490912304805E97409B |
:106D000034F080EDE82E87E0F82EFAA6E9A680910F |
:106D10002004909121040F9724F408E11CEF1CA794 |
:106D20000BA78091200490912104079724F400E39D |
:106D300018EF1CA70BA72A3009F455C28091200434 |
:106D400090912104815D974024F008EE13E01CA788 |
:106D50000BA78091200490912104805E974024F03D |
:106D600000ED17E01CA70BA7A0919903AA2309F433 |
:106D700097C06091250370912603809155059091ED |
:106D80005605681B790B2091250330912603280FA7 |
:106D9000391F37FD3FC3359527953093560520930E |
:106DA0005505613871050CF43AC260E870E07093E3 |
:106DB0005C0560935B058A2F9927869FF001879F6A |
:106DC000F00D969FF00D1124CF01F7FD21C37C013A |
:106DD000F594E794F594E794F594E794F594E794A3 |
:106DE00029A53AA5E20EF31EFAA6E9A640912303CF |
:106DF000509124038091570590915805481B590BD9 |
:106E00002091230330912403280F391F37FDFDC241 |
:106E100035952795309358052093570541385105EE |
:106E20000CF4F5C140E850E050935A0540935905E1 |
:106E30008A2F9927849FD001859FB00D949FB00D14 |
:106E40001124AD019D01B7FDDDC28901159507959E |
:106E5000159507951595079515950795EBA5FCA52F |
:106E60000E0F1F1F1CA70BA7869F9001879F300D39 |
:106E7000969F300D1124C9012091250330912603DE |
:106E8000820F931F90932603809325038091230301 |
:106E900090912403480F591F5093240340932303D8 |
:106EA0004D855E85141615060CF0C1C18091DB0876 |
:106EB0009091DC0897FDA2C2AA2797FDA095BA2F52 |
:106EC0006DA5262F332744275527BC01CD010E94ED |
:106ED000876B97FD8EC256E0959587957795679558 |
:106EE0005A95D1F7AF8DB8A1A60FB71FB093560929 |
:106EF000A09355094B855C85141615060CF0C1C18D |
:106F00008091DF089091E00897FD6FC2AA2797FD56 |
:106F1000A095BA2F6DA5262F332744275527BC01EE |
:106F2000CD010E94876B97FD5BC236E095958795F2 |
:106F3000779567953A95D1F7A9A1BAA1A60FB71F82 |
:106F4000B0934B09A0934A093CA137FDC1C11093EE |
:106F5000490900934809F0925809E0925709809135 |
:106F6000E508E82FFF27EE0FFF1FE155F74F80815F |
:106F7000918182599F4FA091E504B091E604A81732 |
:106F8000B9070CF0EEC0CD0101969093E604809312 |
:106F9000E504DC018091E608E82FFF27EE0FFF1FD4 |
:106FA000E155F74F8081918182599F4F6091E304B1 |
:106FB0007091E404681779070CF0C4C0CB01019606 |
:106FC0009093E4048093E304BC018091E708E82FE8 |
:106FD000FF27EE0FFF1FE155F74F80819181825906 |
:106FE0009F4F4091E1045091E204481759070CF07B |
:106FF000D5C0CA0101969093E2048093E104AC01EC |
:107000008091E808E82FFF27EE0FFF1FE155F74FAB |
:107010008081918182599F4F2091DF043091E0045B |
:10702000281739070CF0ABC0C90101969093E00412 |
:107030008093DF049C01B7FD93C1AF3FB10539F0E8 |
:1070400034F08FEF90E09093E6048093E50477FDB1 |
:1070500076C16F3F710539F034F08FEF90E0909377 |
:10706000E4048093E30457FD70C14F3F510539F0AC |
:1070700034F08FEF90E09093E2048093E10437FDC9 |
:107080006AC12F3F310509F00CF4EEC28FEF90E09A |
:107090009093E0048093DF04E7C260920905709248 |
:1070A0000A0580920B0590920C05A0920505B092FE |
:1070B0000605C0920705D0920805ADCD20920105C6 |
:1070C000309202054092030550920405A092FD04FF |
:1070D000B092FE04C092FF04D092000524CD98EB3C |
:1070E000691694E979069EEF89069FEF99062CF5BB |
:1070F00028EB34E94EEF5FEF29833A834B835C83BF |
:107100001ACB98EEE92E93E0F92EFAA6E9A6F2CD75 |
:107110002D823E824F825886F4CA8DA19EA1AFA1D6 |
:10712000B8A58093F9049093FA04A093FB04B0935C |
:10713000FC049091E9089CA312CC69827A828B822C |
:107140009C82F9CA8081918182599F4F8617970747 |
:107150000CF03BCF6115710509F437CFCB010197D6 |
:107160002FCF8081918182599F4F8A179B070CF006 |
:1071700011CF109709F40ECFCD01019706CF808172 |
:10718000918182599F4F821793070CF054CF21159C |
:10719000310509F450CFC901019748CF8081918111 |
:1071A00082599F4F841795070CF02ACF411551053E |
:1071B00009F426CFCA0101971ECF80912204909135 |
:1071C0002304835F934034F038EEE32E33E0F32E54 |
:1071D000FAA6E9A680912204909123048A5F934045 |
:1071E0000CF495CD8ECD8091200490912104835F85 |
:1071F000934024F008EE13E01CA70BA78091200415 |
:10720000909121048A5F93400CF4AECDA9CD3FEF5D |
:10721000403853070CF008CE40E85FEF05CE8FEF03 |
:10722000603878070CF0C3CD60E87FEFC0CD809167 |
:10723000DB089091DC0897FD9BC1AA2797FDA095DC |
:10724000BA2FEDA52E2F332744275527BC01CD019A |
:107250000E94876B97FDADC146E095958795779520 |
:1072600067954A95D1F72F8D38A1261B370B3093A0 |
:107270005609209355094B855C85141615060CF4A8 |
:107280003FCE8091DF089091E00897FD6DC1AA275D |
:1072900097FDA095BA2FEDA52E2F3327442755270C |
:1072A000BC01CD010E94876B97FD88C126E09595B2 |
:1072B0008795779567952A95D1F729A13AA1261B3D |
:1072C000370B30934B0920934A093CA137FF3FCE3F |
:1072D0004BA1442309F03BCE8091C604882309F0DA |
:1072E00036CE8B859C85A1E081309A070CF044C195 |
:1072F0002B853C854FEF203034070CF0A3C189A5C6 |
:107300009AA5280F391F3C872B8720503F4F309379 |
:10731000580920935709AD85BE85E1E0A130BE072D |
:107320000CF465C12BA53CA5A20FB31FBE87AD878A |
:10733000A050B140B0934909A093480910CE1092D3 |
:10734000E4041092E30457FF90CE1092E2041092EE |
:10735000E10437FF96CE1092E0041092DF0484C15E |
:107360001092E6041092E50472CE295F3F4F3DC8AB |
:10737000295F3F4F29C82D5F3F4F4F4F5F4FE5C8F3 |
:10738000E60EF71E081F191FE092AB09F092AC0938 |
:107390000093AD091093AE0958CB23E030E040E0F4 |
:1073A00050E0E20EF31E041F151FA3C883E090E017 |
:1073B000A0E0B0E0E80EF91E0A1F1B1F5BC807968D |
:1073C0006BCC07965ACC2DA13EA14FA158A5209376 |
:1073D000F9043093FA044093FB045093FC04BFCAB1 |
:1073E000615C7F4F8F4F9F4FA0CD909581959F4FB0 |
:1073F0008DCD615C7F4F8F4F9F4F6DCD9095819567 |
:107400009F4F5ACD215F3F4F20CD2F5F3F4F00CD83 |
:107410000F96DDCC2F5F3F4FBECC2DA13EA14FA1DB |
:1074200058A52093F9043093FA044093FB04509339 |
:10743000FC0489859A85AA2797FDA095BA2F2AADC5 |
:107440003BAD4CAD5DAD820F931FA41FB51F8B8B61 |
:107450009C8BAD8BBE8BBC01CD0129813A814B81C8 |
:107460005C810E94876B9B01AC0197FDBBC06BE008 |
:1074700055954795379527956A95D1F760918F0374 |
:10748000862F9927AA27BB278F8B988FA98FBA8F12 |
:10749000BC01CD010E94876B97FD9FC02CE09595A4 |
:1074A0008795779567952A95D1F76B8F7C8F8D8F10 |
:1074B0009E8F609345057093460580934705909392 |
:1074C00048056B897C898D899E892D813E814F81FC |
:1074D00058850E94876B9B01AC0197FD79C08BE0BA |
:1074E00055954795379527958A95D1F76F89788D6A |
:1074F000898D9A8D0E94876B97FD65C0BCE095953C |
:10750000879577956795BA95D1F76AAB7BAB8CABCE |
:107510009DAB6093490570934A0580934B0590930A |
:107520004C0529853A8537FD7FC0213431050CF49F |
:1075300031CA6B8D7C8D8D8D9E8D97FD2AC06138F3 |
:1075400071058105910564F46AA97BA98CA99DA99F |
:1075500097FD82C061387105810591050CF41ACA46 |
:1075600081E08093E90416CA909581959F4F8FCE54 |
:10757000909581959F4F61CEE9A5FAA58E0F9F1F2B |
:107580009C878B878050914090935809809357092E |
:10759000C2CE90958095709561957F4F8F4F9F4F8C |
:1075A000CECF0196A11DB11D8EA79FA7A8ABB9ABE9 |
:1075B00097C9615C7F4F8F4F9F4F4ECE615C7F4F6D |
:1075C0008F4F9F4F73CE6150704F8F4F9F4F96CF0D |
:1075D0002150384F4F4F5F4F82CF6150704F8F4FC8 |
:1075E0009F4F5CCF2150384F4F4F5F4F40CF4D855D |
:1075F0005E856FEF4030560754F58BA59CA5480F6C |
:10760000591F5E874D8740505F4F50934909409303 |
:107610004809A5CC6150704F8F4F9F4FE7C821504C |
:10762000384F4F4F5F4FCFC8309521953F4F7DCF9B |
:107630006150704F8F4F9F4F0CC92150384F4F4FA3 |
:107640005F4FFAC8F0925809E092570964CE109340 |
:1076500049090093480983CC909580957095619570 |
:107660007F4F8F4F9F4F76CFED960FB6F894DEBFCA |
:107670000FBECDBFDF91CF911F910F91FF90EF9083 |
:10768000DF90CF90BF90AF909F908F907F906F9042 |
:107690005F904F903F902F900895809102018D3020 |
:1076A00009F455C110927A0080912204909123042C |
:1076B0009093580980935709809120049091210458 |
:1076C000909349098093480980911E0490911F046A |
:1076D0009093A5098093A40980911A0490911B04AA |
:1076E0009C01442737FD4095542FDA01C901880FCA |
:1076F000991FAA1FBB1F880F991FAA1FBB1F820FAC |
:10770000931FA41FB51F820F931FA41FB51F909333 |
:1077100094098093930980911C0490911D049C010D |
:10772000442737FD4095542FDA01C901880F991F6E |
:10773000AA1FBB1F880F991FAA1FBB1F820F931F71 |
:10774000A41FB51F820F931FA41FB51F9093B009EC |
:107750008093AF0980911804909119049093630964 |
:10776000809362098FEC80937A008091E508E82F7E |
:10777000FF27EE0FFF1FE155F74F8081918182595E |
:107780009F4FA091E504B091E604A817B9070CF04B |
:1077900085C0CD0101969093E6048093E504DC0159 |
:1077A0008091E608E82FFF27EE0FFF1FE155F74F06 |
:1077B0008081918182599F4F6091E3047091E4042C |
:1077C000681779070CF096C0CB0101969093E404FA |
:1077D0008093E304BC018091E708E82FFF27EE0FB8 |
:1077E000FF1FE155F74F8081918182599F4F409152 |
:1077F000E1045091E204481759070CF06CC0CA012B |
:1078000001969093E2048093E104AC018091E80832 |
:10781000E82FFF27EE0FFF1FE155F74F8081918181 |
:1078200082599F4F2091DF043091E00428173907D7 |
:107830000CF042C0C90101969093E0048093DF04EC |
:107840009C01B7FD7FC0AF3FB10511F00CF061C0E6 |
:1078500077FD67C06F3F710539F034F08FEF90E02E |
:107860009093E4048093E30457FD61C04F3F5105BA |
:1078700039F034F08FEF90E09093E2048093E104CC |
:1078800037FD5BC02F3F310509F00CF463C08FEF6B |
:1078900090E09093E0048093DF045CC0808191814C |
:1078A00082599F4F8A179B070CF07ACF109709F4E3 |
:1078B00077CFCD0101976FCF8081918182599F4F02 |
:1078C000821793070CF0BDCF2115310509F4B9CF0C |
:1078D000C9010197B1CF8081918182599F4F84174F |
:1078E00095070CF093CF4115510509F48FCFCA01CC |
:1078F000019787CF8081918182599F4F8617970783 |
:107900000CF069CF6115710509F465CFCB010197C2 |
:107910005DCF8FEF90E09093E6048093E50477FFCE |
:1079200099CF1092E4041092E30457FF9FCF109276 |
:10793000E2041092E10437FFA5CF1092E004109208 |
:10794000DF0408C01092E6041092E50481CF0E9483 |
:10795000C31CA8CE809117099927AA27BB27BC0171 |
:10796000CD0124EC39E040E050E00E94876BDC015F |
:10797000CB018093A6039093A703A093A803B09391 |
:10798000A903809118099927AA27BB27BC01CD011B |
:107990000E94876BDC01CB018093A2039093A30329 |
:1079A000A093A403B093A50308956F927F928F9242 |
:1079B0009F92AF92BF92CF92DF92EF92FF920F937E |
:1079C0001F93CF9300E010E078016801469A10936E |
:1079D000380500933705109336050093350580E090 |
:1079E00090E0A0E0B0E080932F0590933005A09345 |
:1079F0003105B09332051093420500934105109371 |
:107A0000400500933F0510933E0500933D051093FC |
:107A100075090093740910928F0310928E031092CF |
:107A200012040E944D3B84E690E00E9417180E94C9 |
:107A30004D3B8091E90880FF10C080911D0390911B |
:107A40001E03875B934008F0FBC180911D0390915A |
:107A50001E038E5E924008F4F3C1CFE18AE090E00D |
:107A60000E94171880911E0490911F04080F191F7F |
:107A70008091220490912304E80EF91E8091200445 |
:107A800090912104C80ED91EC150C7FFE7CFA701AE |
:107A9000405F5F4F569547955695479550934205E1 |
:107AA000409341059601205F3F4F369527953695C7 |
:107AB00027953093400520933F05C8014096969541 |
:107AC0008795929582958F7089279F7089279093CB |
:107AD0003E0580933D05909375098093740930931A |
:107AE0003C0520933B0550933A054093390544E00B |
:107AF00050E0DA010E94166C802D853008F4A3C195 |
:107B00008091AF099091B00997FDD2C16CE070E00F |
:107B10000E94C66B7093360560933505809193097A |
:107B20009091940997FDD5C16CE070E00E94C66BFE |
:107B300070933805609337058091690890916A08C1 |
:107B4000AA2797FDA095BA2FBC01CD010E940D6B0D |
:107B5000DC01CB0180932F0590933005A093310574 |
:107B6000B0933205109258091092570910924909A2 |
:107B7000109248091092A5091092A40984E690E099 |
:107B80000E94171880911A0490911B04AA2797FD50 |
:107B9000A095BA2F9C01AD01220F331F441F551F22 |
:107BA000220F331F441F551F280F391F4A1F5B1F09 |
:107BB000280F391F4A1F5B1F3093940920939309A4 |
:107BC00080911C0490911D04AA2797FDA095BA2FBF |
:107BD0007C018D01EE0CFF1C001F111FEE0CFF1C21 |
:107BE000001F111FE80EF91E0A1F1B1FE80EF91EC9 |
:107BF0000A1F1B1FF092B009E092AF098091F808AC |
:107C0000682E772488249924C9019C01442737FDD4 |
:107C10004095542FC401B3010E94876B5B016C0136 |
:107C20006093290570932A0580932B0590932C056A |
:107C30009701442737FD4095542FC401B3010E949A |
:107C4000876BDC01CB018093210590932205A093E3 |
:107C50002305B0932405A0920505B0920605C092B5 |
:107C60000705D09208058093FD049093FE04A0932D |
:107C7000FF04B09300051092F9041092FA041092D8 |
:107C8000FB041092FC0480911F0390912003A091AB |
:107C90002103B091220390936C0880936B0810929B |
:107CA0001104109210041092F1041092F204109238 |
:107CB000F3041092F4048091EF049091F0049093F7 |
:107CC000EE048093ED040E94DC6182E390E09093E7 |
:107CD000FC038093FB03809117099927AA27BB27F0 |
:107CE000BC01CD0124EC39E040E050E00E94876BFC |
:107CF000DC01CB018856954CAF4FBF4F8093A60354 |
:107D00009093A703A093A803B093A90380911809A7 |
:107D10009927AA27BB27BC01CD010E94876BDC01F4 |
:107D2000CB018856954CAF4FBF4F8093A2039093E1 |
:107D3000A303A093A403B093A50310928B03109206 |
:107D40008A038091EF049091F004AA2797FDA095F3 |
:107D5000BA2F209186033091870340918803509178 |
:107D60008903BC01CD010E94876BDC01CB018093AC |
:107D7000AB099093AC09A093AD09B093AE091092F2 |
:107D8000E8041092E70481E0809301010E94D1652C |
:107D90008091AD0484608093AD048FEF8093140ACA |
:107DA0001092150A80E28093160A8091E508E82F68 |
:107DB000FF27EE0FFF1FE155F74F80819181825918 |
:107DC0009F4F9093E6048093E5048091E608E82FA6 |
:107DD000FF27EE0FFF1FE155F74F808191818259F8 |
:107DE0009F4F9093E4048093E3048091E708E82F89 |
:107DF000FF27EE0FFF1FE155F74F808191818259D8 |
:107E00009F4F9093E2048093E1048091E808E82F6B |
:107E1000FF27EE0FFF1FE155F74F808191818259B7 |
:107E20009F4F9093E0048093DF0484E68093DE0408 |
:107E30008091F903882309F450C0469A579A4DC09F |
:107E40000E94711C0ACEDA010E94166C802D9927BF |
:107E5000982F8827DA0111960E94166C202D820F28 |
:107E6000911D9093380580933705DA0112960E9490 |
:107E7000166C802D9927982F8827DA0113960E9477 |
:107E8000166C202D820F911D909336058093350539 |
:107E9000DA0114960E94166C802D9927982F882756 |
:107EA000DA0115960E94166C202D820F911D48CE86 |
:107EB000909581959F4F6CE070E00E94C66B709327 |
:107EC000360560933505809193099091940997FF49 |
:107ED0002BCE909581959F4F27CECF911F910F91DB |
:107EE000FF90EF90DF90CF90BF90AF909F908F90DA |
:107EF0007F906F9008959091D404992381F580919B |
:107F0000AD048C7F8093AD0410C0A92FBB27FD0169 |
:107F1000E859F84F8083FD01E859F84F8081AA564F |
:107F2000B64F8C939F5F9C3080F48091DC03882354 |
:107F300061F3A92FBB27FD01E859F84F8081AA56AC |
:107F4000B64F8C939F5F9C3080F38091DC03882335 |
:107F500059F08091DC0381508093DC0305C080914F |
:107F6000AD0481608093AD04809196099927909328 |
:107F70003E0880933D088091970999279093400887 |
:107F800080933F08809199099927909342088093A4 |
:107F90004108809198099927909344088093430859 |
:107FA00010924904109248040E94ED2A089580918D |
:107FB000EC088B3F68F08B3F09F4D5C28C3F09F485 |
:107FC00074C38D3F09F4F6C28E3F21F48091DF0423 |
:107FD00080939E038091EB088B3F08F439C28B3F5E |
:107FE00009F434C28C3F09F448C38D3F09F4D9C267 |
:107FF0008E3F09F478C380919F03882309F02DC236 |
:1080000080939F038091ED088B3F08F42DC28B3F36 |
:1080100009F428C28C3F09F442C38D3F09F4C4C25D |
:108020008E3F09F45AC380919D03882309F021C231 |
:1080300080939D038091EF088B3F68F08B3F09F49C |
:1080400095C28C3F09F42EC38D3F09F4B0C28E3F18 |
:1080500021F48091DF0480939C038091F1088B3F91 |
:1080600068F08B3F09F479C28C3F09F4E2C28D3F7E |
:1080700009F4BEC28E3F21F48091DF0480939A03FD |
:108080008091F9088B3F68F08B3F09F469C28C3FFF |
:1080900009F4FCC28D3F09F490C28E3F21F4809117 |
:1080A000DF0480939B038091FA088B3F08F4E8C1BA |
:1080B0008B3F09F4E3C18C3F09F4EEC28D3F09F414 |
:1080C00094C28E3F09F412C3809198038B3008F458 |
:1080D000DCC18F3F11F4809398038091FB088B3FA4 |
:1080E00068F08B3F09F427C28C3F09F4D2C28D3F60 |
:1080F00009F466C28E3F21F48091DF0480939703D8 |
:108100008091FC088B3F68F08B3F09F417C28C3FCD |
:1081100009F489C28D3F09F46EC28E3F21F480912B |
:10812000DF04809399038091FD088B3F68F08B3FBB |
:1081300009F407C28C3F09F479C28D3F09F452C299 |
:108140008E3F21F48091DF04809396038091FE0896 |
:108150008B3F68F08B3F09F4F7C18C3F09F4ABC249 |
:108160008D3F09F43CC28E3F21F48091DF0480935F |
:108170009503209103092B3F08F48BC12B3F09F491 |
:1081800086C12C3F09F47CC22D3F09F404C22E3F66 |
:1081900009F4A6C220919303809104098B3F08F053 |
:1081A0007FC18093C104809105098B3F68F08B3FAC |
:1081B00009F4D0C18C3F09F466C28D3F09F4EEC1C9 |
:1081C0008E3F21F48091DF048093C00480910609E2 |
:1081D0008B3F68F08B3F09F484C18C3F09F471C276 |
:1081E0008D3F09F4D2C18E3F21F48091DF0480934A |
:1081F000BF04809107098B3F68F08B3F09F474C17D |
:108200008C3F09F461C28D3F09F4C2C18E3F21F455 |
:108210008091DF048093BE0480911C098B3F68F03D |
:108220008B3F09F464C18C3F09F454C28D3F09F4BB |
:10823000A3C18E3F21F48091DF048093BD0480911F |
:108240001D098B3F68F08B3F09F454C18C3F09F442 |
:108250002FC28D3F09F493C18E3F21F48091DF043A |
:108260008093BC0480911E098B3F68F08B3F09F41A |
:1082700044C18C3F09F4ECC18D3F09F4C5C18E3F68 |
:1082800021F48091DF048093BB0480911F098B3F10 |
:1082900068F08B3F09F434C18C3F09F4DCC18D3F99 |
:1082A00009F4B5C18E3F21F48091DF048093BA04B4 |
:1082B000809108098B3F68F08B3F09F424C18C3F03 |
:1082C00009F4CFC18D3F09F484C18E3F21F4809120 |
:1082D000DF048093920380910C098B3F68F08B3F01 |
:1082E00009F414C18C3F09F4BFC18D3F09F474C176 |
:1082F0008E3F21F48091DF048093910380911109D6 |
:108300008B3F68F08B3F09F404C18C3F09F4AFC187 |
:108310008D3F09F458C18E3F21F48091DF04809392 |
:108320009003809114098B3F68F08B3F09F4F4C0EF |
:108330008C3F09F49FC18D3F09F448C18E3F21F461 |
:108340008091DF0480938F03809115098B3F68F043 |
:108350008B3F09F4E4C08C3F09F46EC18D3F09F4F2 |
:108360004DC18E3F21F48091DF0480938E03809174 |
:1083700016098B3F68F08B3F09F4D4C08C3F09F499 |
:1083800064C18D3F09F43DC18E3F21F48091DF042B |
:1083900080938D0380911B098B3F68F08B3F09F41C |
:1083A000C4C08C3F09F45AC18D3F09F433C18E3FDC |
:1083B00021F48091DF0480938C03809121098B3F0D |
:1083C00008F47FC08B3F09F47AC08C3F09F437C1B1 |
:1083D0008D3F09F422C18E3F09F48BC180916F0952 |
:1083E000823008F473C08F3F11F480936F0980913D |
:1083F00023098B3F08F46EC08B3F09F469C08C3FA2 |
:1084000009F420C18D3F09F40BC18E3F09F474C1FA |
:108410008091A209823008F462C08F3F11F48093EA |
:10842000A209809136098B3F70F08B3F09F480C020 |
:108430008C3F09F44CC18D3F09F49BC08E3F09F07D |
:108440005EC18091DF048093B20959C18091E50437 |
:1084500080939F03882309F4D3CD843608F4D2CDCA |
:1084600084E6CECD8091E50480939D03882309F4B2 |
:10847000DFCD843608F4DECD84E6DACD8091E504E4 |
:10848000809398038B3008F024CE8AE024CE20918C |
:10849000E50420939303809104098B3F08F481CE77 |
:1084A0008B3F09F454C08C3F09F408C18D3F09F497 |
:1084B00069C08E3F09F077CE8091DF0472CE809143 |
:1084C000E50480936F09823008F08DCF81E08DCF75 |
:1084D0008091E5048093A209823008F09ECF81E06C |
:1084E0009ECF8091E50483CE8091E50493CE809168 |
:1084F000E504A3CE8091E504B3CE8091E504C3CE1C |
:108500008091E504D3CE8091E504E3CE8091E5042B |
:10851000F3CE8091E50403CF8091E50413CF8091E1 |
:10852000E50423CF8091E50433CF8091E50443CF68 |
:108530008091E50488CF8091E504E0CD8091E50449 |
:10854000F0CD8091E50400CE8091E50410CE8091BD |
:10855000E50427CE8091E50437CE8091E5048ECDE9 |
:108560008091E5049ECD8091E50432CD8091E504B3 |
:1085700072CD8091E10467CF8091E1045ECE80915D |
:10858000E1046ECE8091E1040CCE8091E1042FCE07 |
:108590008091E1043FCE2091E1047BCF8091E10402 |
:1085A00013CE8091E10454CF8091E1045DCF80919E |
:1085B000E10451CD8091E1040BCD8091E10471CDB6 |
:1085C0008091E1049BCD8091E104A9CE8091E104EA |
:1085D000B9CE8091E1047DCE8091E1048DCE809171 |
:1085E000E104C5CD8091E104AFCD8091E10448CF95 |
:1085F0008091E10443CD8091E10493CD8091E10429 |
:10860000B4CE8091E104C4CE8091E1043CCE80914F |
:10861000E1044CCE8091E104CECE8091E10451CFB3 |
:108620008091E10457CF8091E3047BCD8091E304F6 |
:108630008BCD8091E30422CD8091E30496CE80918E |
:10864000E3043FCF8091E30445CF8091E304A0CEC3 |
:108650008091E30418CE8091E30428CE8091E30456 |
:10866000AACE8091E30435CE8091E30445CE80917B |
:10867000E30455CE8091E30465CE8091E304E8CE17 |
:108680002091E30406CF8091E3049ECD8091E30422 |
:1086900008CD8091E30432CD8091E304F1CE809146 |
:1086A000E304E2CE8091E304D6CC8091E30490CC45 |
:1086B0008091E304D5CD8091E30459CD8091E3040A |
:1086C00070CD8091E30493CD8091E304A3CD80919C |
:1086D000E304B9CE8091E304B0CD8091DF04C4CE31 |
:1086E0002091DF04D6CE8091DF04B2CE8091DF04EA |
:1086F000C7CE8091DF04E5CE8091DF04EBCE332737 |
:108700002F5F3F4F8CE398E2B9010E94C66B7093D4 |
:10871000A1036093A0038091F7088093A30980913F |
:10872000F60880935C0908952F923F924F925F92D2 |
:108730006F927F928F929F92AF92BF92CF92DF9271 |
:10874000EF92FF920F931F93CF93DF93CDB7DEB7D6 |
:10875000ED970FB6F894DEBF0FBECDBF8091AC048D |
:10876000815009F485E08093AC040E94B4312091DB |
:1087700002012C3008F0BAC2299AA090D504B0901A |
:10878000D604BA82A98280915C0999270A96A81614 |
:10879000B90614F49A8389838091DE04843608F044 |
:1087A000A7C28091790590917A05009709F081C45C |
:1087B0001092D4048091AD048F7E8093AD042A3052 |
:1087C00009F47FC4243109F47CC428988091AE0454 |
:1087D0009091AF04895E934008F47CC480910009B5 |
:1087E000282F33273A8329838091AD0480618093B9 |
:1087F000AD048091E108A82FBB27AA0FBB1FFD0184 |
:10880000EB53F74F118210828091E208282F332713 |
:10881000220F331FC9018B53974FFC011182108225 |
:10882000A155B74F11961C921E922155374FD90171 |
:1088300011961C921E928091E408E82FFF27EE0FFC |
:10884000FF1FE155F74F1182108280918403815000 |
:1088500080938403809184038F3F21F08091AD0445 |
:1088600084FF3BC40E94D73F809188059091890581 |
:10887000AC01440F551F480F591F0091E108A02F6C |
:10888000BB27AA0FBB1FFD01E155F74FE090F3088E |
:10889000CE2CDD24808191818C9D50018D9DB00C6A |
:1088A0009C9DB00C11244A0D5B1D57FF02C00C9417 |
:1088B0008B585595479555954795AB53B74F809134 |
:1088C000F408682F77278D919C91869F9001879F50 |
:1088D000300D969F300D1124240F351F30938905DC |
:1088E000209388058091BF059091C0054091BB05FC |
:1088F0005091BC05840F951F281B390B3093DC0465 |
:108900002093DB0480918A0590918B05AC01440F84 |
:10891000551F480F591F1091E208A12FBB27AA0F1E |
:10892000BB1FFD01E155F74F808191818C9D900126 |
:108930008D9D300D9C9D300D1124420F531F57FF0C |
:1089400002C00C9487585595479555954795AB535C |
:10895000B74F8D919C91869F9001879F300D969F78 |
:10896000300D1124240F351F30938B0520938A0579 |
:108970008091BD059091BE054091B9055091BA0511 |
:10898000840F951F281B390B3093DA042093D904E8 |
:108990008091E408E82FFF27EE0FFF1FE155F74F06 |
:1089A00080819181909581959F4F8330910514F43A |
:1089B0000C94594F02979093D8048093D7048091D8 |
:1089C000E308E82FFF27EE0FFF1FE155F74FC080A8 |
:1089D000D18048E750E0C40ED51E809198039927B6 |
:1089E000AA2797FDA095BA2FBC01CD010E940D6B5F |
:1089F000DC01CB0120E030E040E251E4BC01CD01DC |
:108A00000E94AE6ADC01CB01BC01CD010E94F06A7C |
:108A1000DC01CB018093A909F09097038091960324 |
:108A20009927AA2797FDA095BA2FBC01CD010E94D6 |
:108A30000D6BDC01CB0120E030E040E251E4BC01F1 |
:108A4000CD010E94AE6ADC01CB01BC01CD010E94C8 |
:108A5000F06ADC01CB0180934F095091950350934C |
:108A6000660980918A0780FF06C08091B20981382B |
:108A700010F00C94BC4FD092D604C092D5048091D3 |
:108A8000D5049091D60497FF02C00C948158F091C0 |
:108A9000E908FAA3F2FD02C00C94A34F10927609E4 |
:108AA0004091DB045091DC04CA0157FF02C00C94D2 |
:108AB000AE4F959587959595879597FF02C00C9435 |
:108AC000B74F2091B2043091B3042817390714F03E |
:108AD0000C94614FCA0157FF02C00C944C5C97FF85 |
:108AE00002C00C94515CBC017595679575956795AE |
:108AF0006536710514F40C94644F64E670E040919F |
:108B0000D9045091DA04CA0157FD02C00C946D4F8C |
:108B10000396959587959595879597FD02C00C943A |
:108B2000754F909581959F4F2091B0043091B1047D |
:108B30002817390714F40C947E4F2150304080914F |
:108B4000AD0484FD02C00C94994F1092B3041092AE |
:108B5000B2041092B1041092B004E12FFF27EE0F7F |
:108B6000FF1FE155F74F40911209242F33278081D1 |
:108B700091812817390734F48091370982FF02C0A8 |
:108B80000C943050E12FFF27EE0FFF1FE155F74FF8 |
:108B9000842F992720911309821B9109208131810B |
:108BA0002817390714F41092C504E12FFF27EE0FA0 |
:108BB000FF1FE155F74F842F992722273327281BC2 |
:108BC000390B808191818217930734F480913709A2 |
:108BD00083FF02C00C942B508091C404882391F031 |
:108BE000E12FFF27EE0FFF1FE155F74F809113098B |
:108BF0009927841B9109208131818217930714F4EE |
:108C00000C945C50E02FFF27EE0FFF1FE155F74F4C |
:108C1000242F3327808191812817390734F48091DC |
:108C2000370980FF02C00C9425505091C20455238F |
:108C300099F0E02FFF27EE0FFF1FE155F74F842F2C |
:108C4000992720911309821B9109208131812817CE |
:108C5000390714F40C945750E02FFF27EE0FFF1F35 |
:108C6000E155F74F842F992722273327281B390BEB |
:108C7000808191818217930734F48091370981FFB5 |
:108C800002C00C9420508091C304882391F0E02FFF |
:108C9000FF27EE0FFF1FE155F74F8091130999272A |
:108CA000841B9109208131818217930714F40C945D |
:108CB00060508091C504882331F48091C4048823D6 |
:108CC00011F40C941D5091E0552331F48091C304AC |
:108CD000882311F40C943B5081E08093C7041092D8 |
:108CE000C6041092C5041092C404FAC1299845CD57 |
:108CF0008091DE048D3808F4A8CD8091AD048F7E7C |
:108D00008093AD049091010982E3989FC0011124E2 |
:108D100090937A0580937905E981FA81B99714F0E7 |
:108D20000C9440508091AE049091AF048F3F910518 |
:108D300019F010F00C947A5810925D0510925E05AF |
:108D400010925F0510926005109261051092620505 |
:108D500010926305109264058A3F910511F40C94FA |
:108D6000A05D3091E308E32FFF27EE0FFF1FE155D1 |
:108D7000F74F80819181813591050CF4E9C04091D4 |
:108D8000D404442309F0E4C08091E408E82FFF27CD |
:108D9000EE0FFF1FE155F74F808191818C349105D3 |
:108DA00014F40C94E75C80917B058F5F893C10F490 |
:108DB0000C94D15D2C3010F00C94A75F2998109280 |
:108DC000D40410927B051092AF041092AE0400916F |
:108DD000E108E02FFF27EE0FFF1FE155F74F8081DD |
:108DE00091818734910514F00C94615F1091E20831 |
:108DF000E12FFF27EE0FFF1FE155F74F8081918193 |
:108E00000190F081E02DF7FF02C00C944B61E73434 |
:108E1000F1050CF470C021E0A12FBB27AA0FBB1FE6 |
:108E2000A155B74F8D919C9111978734910544F0CE |
:108E3000E02FFF27EE0FFF1FE155F74F8081918153 |
:108E40008D919C918734910564F0E02FFF27EE0F00 |
:108E5000FF1FE155F74F80819181873491050CF018 |
:108E600022E0E12FFF27EE0FFF1FE155F74F808132 |
:108E700091818634910564F4E02FFF27EE0FFF1FE8 |
:108E8000E155F74F80819181873491050CF023E003 |
:108E9000E12FFF27EE0FFF1FE155F74F80819181F2 |
:108EA0008A5B9F4F64F4E02FFF27EE0FFF1FE15511 |
:108EB000F74F80819181873491050CF024E0E12FF8 |
:108EC000FF27EE0FFF1FE155F74F808191818A5BED |
:108ED0009F4F64F4E02FFF27EE0FFF1FE155F74F80 |
:108EE00080819181863491050CF425E0822F0E94C7 |
:108EF0007A051091E208E12FFF27EE0FFF1FE155E1 |
:108F0000F74F808191810190F081E02DF7FF02C041 |
:108F10000C9472607E9714F00C944D5E8091E10881 |
:108F2000E82FFF27EE0FFF1FE155F74F808191815A |
:108F30008A5B9F4F14F00C944D5E81E080937E0716 |
:108F400088EE93E09093FC038093FB033091E30859 |
:108F5000E32FFF27EE0FFF1FE155F74F808191812F |
:108F60008B5A9F4F0CF071CCD090E408ED2DFF2769 |
:108F7000EE0FFF1FE155F74F80819181855B9F4F79 |
:108F800014F00C949D5980917C058F5F893C10F4FE |
:108F90000C94DB5C88EC80937C0581E090E09093FE |
:108FA000AF048093AE0481E08093D40410926505F1 |
:108FB0001092660510926705109268051092F904E8 |
:108FC0001092FA041092FB041092FC041092F50423 |
:108FD0001092F6041092F7041092F8048091F808A9 |
:108FE000E82EFF240027112780919309909194097E |
:108FF0009C01442737FD4095542FC801B7010E94BA |
:10900000876BDC01CB018093090590930A05A0933F |
:109010000B05B0930C058091AF099091B0099C01AC |
:10902000442737FD4095542FC801B7010E94876B34 |
:10903000DC01CB018093010590930205A093030509 |
:10904000B09304058091290590912A05A0912B05E4 |
:10905000B0912C058093050590930605A093070514 |
:10906000B09308058091210590912205A0912305D8 |
:10907000B09124058093FD049093FE04A093FF0417 |
:10908000B093000510925D0510925E0510925F0589 |
:1090900010926005109261051092620510926305AE |
:1090A000109264058091AD0488608093AD040C94A7 |
:1090B0009F59019790937A05809379052A3009F09A |
:1090C00081CB289A8091AE049091AF04895E934041 |
:1090D00008F084CB1092D404B8CBA090E908AAA2DF |
:1090E0000091C6040E8B002321F48091C7048823CD |
:1090F00069F080911109992729813A818217930794 |
:1091000014F49A83898381E08093E9048091AD040B |
:1091100084FFCBC61092D8041092D7041092DC04BE |
:109120001092DB041092DA041092D9049AE590931D |
:10913000A90988E78093760990934F0989A38093C2 |
:1091400066091092C6041092C7041E8A209169090C |
:1091500030916A0940916B0950916C096091290521 |
:1091600070912A0580912B0590912C05698B7A8B43 |
:109170008B8B9C8B260F371F481F591F80917009BE |
:1091800090917109A0917209B0917309A090210585 |
:10919000B0902205C0902305D0902405AFA2B8A6B8 |
:1091A000C9A6DAA68A0D9B1DAC1DBD1DC0905E0927 |
:1091B000D0905F09E0906009F0906109C8AAD9AA2F |
:1091C000EAAAFBAAE0902505F09026050091270564 |
:1091D00010912805E88EF98E0A8F1B8FA8A8B9A8D0 |
:1091E000CAA8DBA8AE0CBF1CC01ED11EA8AAB9AA73 |
:1091F000CAAADBAAC0905009D0905109E090520948 |
:10920000F0905309CCA6DDA6EEA6FFA6E0901D05C2 |
:10921000F0901E0500911F0510912005EBA2FCA205 |
:109220000DA31EA3ACA4BDA4CEA4DFA4AE0CBF1C92 |
:10923000C01ED11EACA6BDA6CEA6DFA6B090C704A8 |
:10924000BF8ABB2009F0D0C50E89002309F0CCC528 |
:109250008093700990937109A0937209B093730978 |
:109260002093690930936A0940936B0950936C0904 |
:109270008091690890916A08815092400CF07EC4F8 |
:109280008091D404882309F079C480910E049091D0 |
:109290000F048F3F910509F008F47FC5BF89BB23F8 |
:1092A00009F017C7EE89EE2309F013C7F091E9041E |
:1092B000FD8BFF2309F00DC7A0901A09ABA6AA20C9 |
:1092C00009F407C7C8A8D9A8EAA8FBA8C0925E09F4 |
:1092D000D0925F09E0926009F0926109ECA4FDA4CC |
:1092E0000EA51FA5E0925009F09251090093520972 |
:1092F000109353098091690990916A09A0916B09B3 |
:10930000B0916C09B7FF02C00C94E55F292E3A2E8C |
:109310004B2E552447FC5A942092690930926A09D1 |
:1093200040926B0950926C0980917009909171097B |
:10933000A0917209B0917309B7FF02C00C94DF5F6E |
:10934000892F9A2FAB2FBB27A7FDBA958D839E83BC |
:10935000AF83B8878093700990937109A0937209C5 |
:10936000B09373098091F808E82EFF240027112795 |
:109370002091190530911A0540911B0550911C054B |
:10938000C801B7010E94876B97FF02C00C94FD5F74 |
:10939000672E782E892E992487FC9A9420911505A2 |
:1093A000309116054091170550911805C801B70175 |
:1093B0000E94876B97FF02C00C94F75FA72EB82E10 |
:1093C000C92EDD24C7FCDA94D201C10186199709A0 |
:1093D000A809B90920911909E22EFF2400271127B5 |
:1093E000BC01CD01A80197010E94FB6B39014A0124 |
:1093F00019012A018D819E81AF81B8858A199B0947 |
:10940000AC09BD09BC01CD01A80197010E94FB6B0D |
:10941000D401C30197FE02C00C94F15F892F9A2FEB |
:10942000AB2FBB27A7FDBA95BC01DA01C90157FFD5 |
:1094300002C00C94EB5F892F9A2FAB2FBB27A7FD9F |
:10944000BA956C018091B2049091B3048134910576 |
:10945000D4F48091B0049091B104813491059CF4CE |
:109460008091E408E82FFF27EE0FFF1FE155F74F2B |
:10947000808191810190F081E02DF7FF02C00C9472 |
:109480005C617A9734F08091140A8F3F11F40C9448 |
:10949000915F088D198D2A8D3B8D89899A89AB89B9 |
:1094A000BC89081B190B2A0B3B0B0AAF1BAF2CAF57 |
:1094B0003DAF0093690510936A0520936B053093C7 |
:1094C0006C05EBA0FCA00DA11EA12FA138A549A5FC |
:1094D0005AA5E21AF30A040B150BE986FA860B87E4 |
:1094E0001C87E0926D05F0926E0500936F05109356 |
:1094F00070058AAD9BADACADBDAD80937105909309 |
:109500007205A0937305B0937405E0927505F0920F |
:109510007605009377051093780580910505909165 |
:109520000605A0910705B0910805EAACFBAC0CADAF |
:109530001DAD8E199F09A00BB10B8093050590936B |
:109540000605A0930705B09308058091FD0490914E |
:10955000FE04A091FF04B091000509851A852B85B2 |
:109560003C85801B910BA20BB30B8093FD04909361 |
:10957000FE04A093FF04B09300051BA5112371F115 |
:109580002091E7043091E8042138310594F080916E |
:109590003D0590913E05019690933E0580933D05D3 |
:1095A0008091740990917509019690937509809343 |
:1095B000740920583F4F94F480913D0590913E05E9 |
:1095C000019790933E0580933D0580917409909199 |
:1095D0007509019790937509809374091092E804B6 |
:1095E0001092E70401E0A02EB12C8AAD9BADACAD8A |
:1095F000BDADB7FF02C00C94B35F81509240A04054 |
:10960000B0401CF014E0A12EB12C809192059091F5 |
:109610009305A0919405B0919505E0906909F090AB |
:109620006A0900916B0910916C098E199F09A00BB2 |
:10963000B10B815E914BAF4FBF4F8F539C49A04000 |
:10964000B04010F40C94E35DF091150AFC8FF931F1 |
:1096500014F40C947B5FB0928D05A0928C058AADBA |
:109660009BADACADBDAD81509041A040B04014F475 |
:109670000C94EC5D80918E05882311F40C940360AA |
:109680007093C9046093C8048AAD9BADACADBDAD09 |
:10969000B7FF02C00C9442619C01AD01B7FF02C04C |
:1096A0000C943C61B9E05595479537952795BA9547 |
:1096B000D1F780918C0590918D05820F931F909327 |
:1096C0008D0580938C052AAD3BAD4CAD5DAD57FF4C |
:1096D00002C00C94366139014A01A3E09594879445 |
:1096E00077946794AA95D1F713012401F9E86F16CE |
:1096F000F3E17F06F0E08F06F0E09F0644F0F8E823 |
:109700006F2EF3E17F2E812C912C13012401D401C3 |
:10971000C30197FE02C00C947061892F9A2FAB2F62 |
:10972000BB27A7FDBA95680F791F2AAD3BAD4CAD9D |
:109730005DAD203080EF38078FEF48078FEF580777 |
:1097400014F00C94FC5D80918F05882311F40C9427 |
:10975000D25F7093C9046093C804DA01C90157FF4E |
:1097600002C00C942D619C01AD01B7FF02C00C94A6 |
:10977000856169E055954795379527956A95D1F7A5 |
:1097800080918C0590918D05820F931F90938D058C |
:1097900080938C052AAD3BAD4CAD5DAD57FF02C04B |
:1097A0000C947F6139014A0143E095948794779442 |
:1097B00067944A95D1F798E769169CEE79069FEF72 |
:1097C00089069FEF990644F438E7632E3CEE732E2A |
:1097D0003FEF832E3FEF932E6092800570928105BC |
:1097E0008092820590928305D401C30197FE02C046 |
:1097F0000C942761892F9A2FAB2FBB27A7FDBA9511 |
:109800006091C8047091C904680F791FABA52A2F15 |
:10981000332780918C0590918D052817390724F402 |
:1098200030938D0520938C05BC8DBB2379F02B2FB5 |
:10983000332727FD309580918C0590918D05281751 |
:10984000390724F430938D0520938C052AAD3BAD68 |
:109850004CAD5DAD213831054105510574F0809165 |
:1098600041059091420520918C0530918D05820F24 |
:10987000931F90934205809341058AAD9BADACAD9B |
:10988000BDAD80589F4FAF4FBF4F74F480914105DD |
:109890009091420520918C0530918D05821B930B90 |
:1098A0009093420580934105B1E0AB2EB12C8985A0 |
:1098B0009A85AB85BC85B7FF02C00C94C95F815007 |
:1098C0009240A040B0401CF0A4E0AA2EB12C20E0B1 |
:1098D00030E040E050E08091960590919705A0918E |
:1098E0009805B09199056090700970907109809009 |
:1098F00072099090730986199709A809B909815EC0 |
:10990000914BAF4FBF4F8F539C49A040B04028F0C0 |
:10991000FC8DF93114F40C94655FB0928D05A09222 |
:109920008C0589859A85AB85BC8581509041A04086 |
:10993000B04014F40C94F05D80919005882311F4EC |
:109940000C94BC5FD092CB04C092CA0489859A85DE |
:10995000AB85BC85B7FF02C00C947661B7FF02C02F |
:109960000C942161F9E0B595A79597958795FA959F |
:10997000D1F7A80EB91EB0928D05A0928C0529854D |
:109980003A854B855C8557FF02C00C941B61E3E070 |
:109990005595479537952795EA95D1F72938F3E1FD |
:1099A0003F07F0E04F07F0E05F0714F40C94B1605C |
:1099B00088E893E1A0E0B0E080938405909385056A |
:1099C000A0938605B09387058091840590918505C5 |
:1099D000A0918605B0918705B7FF02C00C94FF6087 |
:1099E000892F9A2FAB2FBB27A7FDBA95C090CA0429 |
:1099F000D090CB04C80ED91E29853A854B855C854D |
:109A0000203080EF38078FEF48078FEF580714F0AA |
:109A10000C94085E80919105882311F40C94AA5F40 |
:109A2000D092CB04C092CA04DA01C90157FF02C028 |
:109A30000C9467619C01AD01B7FF02C00C94616199 |
:109A4000B9E05595479537952795BA95D1F7809107 |
:109A50008C0590918D05820F931F90938D058093B7 |
:109A60008C0529853A854B855C8557FF02C00C948F |
:109A70000961A3E05595479537952795AA95D1F7A4 |
:109A800028379CEE39079FEF49079FEF590714F0DD |
:109A90000C94BB6088E79CEEAFEFBFEF809384052A |
:109AA00090938505A0938605B093870580918405E2 |
:109AB00090918505A0918605B0918705B7FF02C0FA |
:109AC0000C945661892F9A2FAB2FBB27A7FDBA950F |
:109AD000C090CA04D090CB04C80ED91EABA52A2FC3 |
:109AE000332780918C0590918D052817390724F430 |
:109AF00030938D0520938C05BC8DBB2379F02B2FE3 |
:109B0000332727FD309580918C0590918D0528177E |
:109B1000390724F430938D0520938C0529853A85E7 |
:109B20004B855C85213831054105510574F08091E4 |
:109B30003F059091400520918C0530918D05820F55 |
:109B4000931F9093400580933F0589859A85AB8547 |
:109B5000BC8580589F4FAF4FBF4F0CF0D0C2809153 |
:109B60003F059091400520918C0530918D05821B19 |
:109B7000930B9093400580933F05C1C29090140AC7 |
:109B80006FEF961611F40C9491588091F808A82E56 |
:109B9000BB24CC24DD2469897A898B899C89A60120 |
:109BA00095010E94FB6B79018A0180919309909144 |
:109BB0009409AA2797FDA095BA2FE81AF90A0A0B6B |
:109BC0001B0B6FA178A589A59AA5A60195010E94F6 |
:109BD000FB6B59016A018091AF099091B009AA27E6 |
:109BE00097FDA095BA2FA81AB90ACA0ADB0A292C30 |
:109BF000332427FC3094432C532CC201B101A8011B |
:109C000097010E94876B97FD5FC23B014C01F9E011 |
:109C10009594879477946794FA95D1F7C201B1012E |
:109C2000A60195010E94876B97FF02C00C94A45C6B |
:109C30005B016C01E9E0D594C794B794A794EA95C9 |
:109C4000D1F78091B2049091B304813491053CF432 |
:109C50008091B0049091B10481349105C4F0D40195 |
:109C6000C30197FE02C00C949B5D3C014D0195948D |
:109C7000879477946794D601C501D7FE02C00C94EF |
:109C8000965D5C016D01D594C794B794A7948091BB |
:109C9000E408E82FFF27EE0FFF1FE155F74F808103 |
:109CA00091810190F081E02DF7FF02C00C949F5C40 |
:109CB0007A97A4F0C401B30123E030E040E050E023 |
:109CC0000E94FB6B39014A01C601B50123E030E077 |
:109CD00040E050E00E94FB6B59016A018091160A36 |
:109CE000282F332727FD3095432F532F261537056F |
:109CF0004805590514F439014A01992787FD9095C3 |
:109D0000909581959F4FAA2797FDA095BA2F681629 |
:109D100079068A069B0614F43C014D012A153B0581 |
:109D20004C055D0514F459016A01A816B906CA0666 |
:109D3000DB0614F45C016D018091090590910A0520 |
:109D4000A0910B05B0910C0586199709A809B909CE |
:109D50008093090590930A05A0930B05B0930C0519 |
:109D60008091010590910205A0910305B091040531 |
:109D70008A199B09AC09BD098093010590930205DE |
:109D8000A0930305B093040580910E0490910F04F5 |
:109D90008F3F910511F008F081CAA8A8B9A8CAA8F8 |
:109DA000DBA8A0925E09B0925F09C0926009D092D0 |
:109DB0006109CCA4DDA4EEA4FFA4C0925009D09206 |
:109DC0005109E0925209F09253090091E9040D8B78 |
:109DD000A090D704B090D804C501B7FEF0C1882781 |
:109DE00099278A199B09EBC11092190510921A053F |
:109DF00010921B0510921C05109215051092160565 |
:109E000010921705109218051092690910926A09AC |
:109E100010926B0910926C091092700910927109DE |
:109E200010927209109273091CA61DA61EA61FA6E9 |
:109E300020E030E040E050E028AB39AB4AAB5BAB10 |
:109E40008091090590910A05A0910B05B0910C0530 |
:109E50008093050590930605A0930705B093080528 |
:109E60008091010590910205A0910305B091040530 |
:109E70008093FD049093FE04A093FF04B09300052B |
:109E800010920F0410920E041092C9041092C8048C |
:109E90001092CB041092CA043F89332309F0F5C90C |
:109EA0004E89442309F0F1C9E3C93091660939A309 |
:109EB0004DC93FEF8E3F93070CF0D7C002960C942C |
:109EC000DB44B901615070404091D9045091DA04EB |
:109ED000CA0157FF02C00C948845959587959595C2 |
:109EE000879597FF02C00C9491452091B004309162 |
:109EF000B1042817390714F00C949D45CA0157FF87 |
:109F000002C00C94575C97FF02C00C94545C9C01F7 |
:109F100035952795359527952536310514F40C94FC |
:109F20009F4524E630E08091AD0484FF02C00C948C |
:109F3000A5453093B1042093B0047093B3046093AB |
:109F4000B2040C94AD45F09276094091DB04509137 |
:109F5000DC04CA0157FD02C00C945945039695953F |
:109F600087959595879597FD02C00C9461459095CE |
:109F700081959F4F0C94614580918307992787FDB8 |
:109F800090954E2D5527849FB001859F700D949F0D |
:109F9000700D1124CB012091DB043091DC04820F81 |
:109FA000931F9093DC048093DB04809184079927AE |
:109FB00087FD9095849FD001859FB00D949FB00D33 |
:109FC0001124CD012091D9043091DA04820F931F1E |
:109FD0009093DA048093D90480918507992787FDAF |
:109FE00090952091D7043091D804820F931F9093BD |
:109FF000D8048093D70480918707282F332727FD23 |
:10A0000030958091EE089927289FF001299FF00D47 |
:10A01000389FF00D1124F0938B03E0938A03809115 |
:10A02000860799278C159D0514F00C943B45909359 |
:10A03000D6048093D5040C943F45982F0C94644625 |
:10A0400081E08093C3040C94594681E08093C2045C |
:10A05000582F0C942C4681E08093C4040C94024643 |
:10A0600081E08093C5040C94D5451092D8041092D9 |
:10A07000D7040C94DF449093C6048093C70430C87F |
:10A080008091D404882311F40C9492468091AE04FC |
:10A090009091AF04FFEF8F3F9F0711F40C94964609 |
:10A0A00001969093AF048093AE040C949646109260 |
:10A0B000C20450E00C942C461092C4040C94024646 |
:10A0C0001092C3040C94594661507E4F8F4F9F4F9E |
:10A0D0009CCD60E070E06B011092E9041D8AE09075 |
:10A0E0006909F0906A0900916B0910916C09609000 |
:10A0F0007009709071098090720990907309809135 |
:10A100007609882309F0B6C71092CB041092CA04CE |
:10A110001092C9041092C804E0929205F09293053F |
:10A12000009394051093950560929605709297059B |
:10A1300080929805909299051092190510921A052F |
:10A1400010921B0510921C05109215051092160511 |
:10A150001092170510921805109211051092120511 |
:10A1600010921305109214051092690910926A0951 |
:10A1700010926B0910926C0910927009109271097B |
:10A18000109272091092730910925E0910925F0981 |
:10A1900010926009109261091092500910925109B1 |
:10A1A000109252091092530910920F0410920E044B |
:10A1B000A090D704B090D804C501B7FC10CE40974A |
:10A1C00074F068EE262E63E0362E3092AB032092B8 |
:10A1D000AA031AA114FD03C081E080937F05D090EB |
:10A1E000F508ED2CFF2400271127B501882777FDFE |
:10A1F0008095982F9501B7FC78C7442737FD409587 |
:10A20000542F0E94876B9B01AC01C801B7010E94CB |
:10A21000876B97FD65C759E0959587957795679505 |
:10A220005A95D1F79B018D2D99278A9DA0018B9D71 |
:10A23000500D9A9D500D1124CA0157FD43C79595A5 |
:10A24000879595958795280F391FC901AA2797FDEE |
:10A25000A095BA2F8093650590936605A093670536 |
:10A26000B0936805E090F904F090FA040091FB04C3 |
:10A270001091FC04E81AF90A0A0B1B0B51E5E516CC |
:10A2800053ECF50650E0050750E015070CF4E9C65D |
:10A2900080E593ECA0E0B0E08093F9049093FA0499 |
:10A2A000A093FB04B093FC048091F9049091FA040C |
:10A2B000A091FB04B091FC04805B9C43AF4FBF4F67 |
:10A2C00064F480EB9CE3AFEFBFEF8093F9049093CD |
:10A2D000FA04A093FB04B093FC04C090EF04D09068 |
:10A2E000F004C114D10409F4B5C57AA173FFB2C555 |
:10A2F00089899A89AB89BC89B7FF02C00C946E5CCE |
:10A3000009E0B595A795979587950A95D1F79BAFE5 |
:10A310008AAF97FF02C00C947A5C8FA198A5A9A57B |
:10A32000BAA5B7FF02C00C94745C19E0B595A79567 |
:10A33000979587951A95D1F7BC0197FF02C00C94A9 |
:10A34000695CAAADBBADA617B70714F47BAF6AAFC3 |
:10A350006AAD7BAD77FF02C00C94655C2B01559410 |
:10A36000479455944794559447940894411C511C24 |
:10A37000ECE1F2E0CE0EDF1E76010027F7FC00953F |
:10A38000102FA4EEAA2EADEFBA2ECA0CDB1C6090E3 |
:10A39000AB097090AC098090AD099090AE09209106 |
:10A3A00086033091870340918803509189032D8F54 |
:10A3B0003E8F4F8F58A3C401B3010E94FB6BE21A7A |
:10A3C000F30A040B150BC801B70128E631E040E0A1 |
:10A3D00050E00E94FB6BDC01CB018C01045B104060 |
:10A3E000A090A409B090A509C501B7FE02C00C94C5 |
:10A3F0005F5C8138910514F000E010E02090AA0322 |
:10A400003090AB0321143104A9F44AAD5BAD49315E |
:10A41000510584F48091E7049091E804800F911F26 |
:10A420009093E8048093E70480917F05882311F0DE |
:10A430000C94715DC801880F991F880F991F880FB0 |
:10A44000991FB2010E94C66B9B01442737FD4095BE |
:10A45000542F260D371D481D591D2093AB093093ED |
:10A46000AC094093AD095093AE09F0909B036F2D5A |
:10A470007727AAADBBAD6A9FC0016B9F900D7A9FF5 |
:10A48000900D112497FF02C00C945C5C9595879504 |
:10A4900095958795959587959595879595958795A4 |
:10A4A000681B790B7BAF6AAF77FF02C00C94815CAD |
:10A4B0002114310411F00C94965C0091B2041091B7 |
:10A4C000B3048091B0049091B104080F191F17FFD5 |
:10A4D00002C00C94BE5D15950795159507951595C9 |
:10A4E0000795005C1F4FCA01B9012D8D3E8D4F8D20 |
:10A4F00058A10E94FB6BDA01C9012091ED04309153 |
:10A50000EE04442737FD4095542F821B930BA40B78 |
:10A51000B50B845E9D4FAF4FBF4FBC01CD0128E608 |
:10A5200031E040E050E00E94FB6BDC01CB01845B3A |
:10A5300090402AAD3BAD829FF001839FF00D929F2A |
:10A54000F00D1124CF01B8010E94C66B83E0F89E84 |
:10A55000A00111245BAF4AAF4617570714F00C94C3 |
:10A56000895CBA01CB01AA2797FDA095BA2F20914B |
:10A57000F9043091FA044091FB045091FC04820FDD |
:10A58000931FA41FB51F8093F9049093FA04A0931E |
:10A59000FB04B093FC0480917E0581508F3F09F449 |
:10A5A00062C480937E055D89552381F01092610518 |
:10A5B00010926205109263051092640510925D0579 |
:10A5C00010925E0510925F05109260056F896623F8 |
:10A5D00009F044C5809176099927AA27BB27BC01B9 |
:10A5E000CD0129893A894B895C890E94876BDC01FE |
:10A5F000CB01BC01CD0128EF3AE240E050E00E94DF |
:10A60000FB6B19017E89772309F025C580917609B6 |
:10A610009927AA27BB27BC01CD012FA138A549A5A1 |
:10A620005AA50E94876BDC01CB01BC01CD0128EF4C |
:10A630003AE240E050E00E94FB6B3C832B83809029 |
:10A640004A0990904B0989EC881691040CF4F8C4DF |
:10A65000B8EC8B2E912C90924B0980924A09009174 |
:10A66000550910915609093C11050CF4E1C408EC98 |
:10A6700010E0109356090093550980915709909165 |
:10A680005809AA2797FDA095BA2F2091A909C22E93 |
:10A69000DD24EE24FF24BC01CD01A70196010E9418 |
:10A6A000876B9B01AC01C401AA2797FDA095BA2F27 |
:10A6B000F7E0880F991FAA1FBB1FFA95D1F7280F43 |
:10A6C000391F4A1F5B1F57FDECC4E6E055954795BF |
:10A6D00037952795EA95D1F74101820E931E240103 |
:10A6E0008091480990914909AA2797FDA095BA2F12 |
:10A6F000BC01CD01A70196010E94876B9B01AC01B3 |
:10A70000C801AA2797FDA095BA2F77E0880F991F57 |
:10A71000AA1FBB1F7A95D1F7280F391F4A1F5B1F4D |
:10A7200057FDBAC466E055954795379527956A95C4 |
:10A73000D1F76B807C80620E731E6301AA0CBB1C78 |
:10A74000C501AA2797FDA095BA2F20914F0933275D |
:10A7500044275527BC01CD010E94876B7B018C01EA |
:10A7600097FD91C456E015950795F794E7945A958F |
:10A77000D1F739A1832F9927AA27BB2720910D054F |
:10A7800030910E0540910F0550911005BC01CD018F |
:10A790000E94876BDC01CB01BC01CD0120EF35E5C8 |
:10A7A00040E050E00E94FB6B5701A20EB31EC501B2 |
:10A7B00041E0841640E4940624F0812C40E4942E79 |
:10A7C000240150E0851650EC95060CF02CC4812C29 |
:10A7D00030EC932E909258098092570961E06616EA |
:10A7E00060E4760624F0612C20E4722E630170E0B0 |
:10A7F000671670EC77060CF011C4612C00EC702E1B |
:10A800007092490960924809A1E0AA16A0E4BA062C |
:10A8100024F0A12C10E4B12EC501B0E0AB16B0ECD1 |
:10A82000BB060CF0F6C3A12CB0ECBB2EB092A50970 |
:10A83000A092A40980910001482F552780912703F9 |
:10A84000909128034817590794F4209127033091D9 |
:10A850002803E981FA814E9FC0014F9F900D5E9FB2 |
:10A86000900D1124B9010E94B26B7A836983C9806B |
:10A87000DA80CC0CDD1CCC0CDD1CDA82C982DAA0BB |
:10A88000D0FE51C00E89002309F04DC01F8911234D |
:10A8900009F049C080919E0590919F0590935008C2 |
:10A8A00080934F08809110049091110490934A086E |
:10A8B00080934908209143053091440521153105C5 |
:10A8C00009F0F8C480911D0390911E0389599340AB |
:10A8D00010F00C94DE5C80911D0390911E03843671 |
:10A8E000910510F00C94D95D87B58B3010F40C9461 |
:10A8F000745E809112048F5F809312049AE0890243 |
:10A900009001112480917308821B87BD8CE291E035 |
:10A910009093FC038093FB038EE591E090934405B4 |
:10A9200080934305E8C45090A30940905C09242D0E |
:10A930003327C901880F991F880F991F8896E981CD |
:10A94000FA81E817F90714F49A838983852D9927EA |
:10A95000880F991F880F991F80559040C980DA8011 |
:10A960008C159D0514F49A8389838091460488236D |
:10A97000A1F08091AE049091AF040297C09768F463 |
:10A98000E980FA801E141F0444F481E090E0909363 |
:10A99000AF048093AE043A83298309811A8110930E |
:10A9A0003408009333088091650590916605A09165 |
:10A9B0006705B0916805880F991FAA1FBB1F880FF4 |
:10A9C000991FAA1FBB1FA81AB90AB9AEA8AE013AAF |
:10A9D00011050CF40AC3C80117FDA1C3959587950D |
:10A9E00028AD39AD8217930714F499AF88AF9095CD |
:10A9F00081959F4F48AD59AD4817590714F499AF49 |
:10AA000088AF252D3327220F331F220F331FC90193 |
:10AA100049815A81841B950B68AD79AD86179707DC |
:10AA200014F499AF88AF89819A81821B930BA8ADEA |
:10AA3000B9ADA817B90714F499AF88AF8091DB04BA |
:10AA40009091DC048401081B190B10936809009392 |
:10AA50006709A0907609AA2009F4C1C2281A390A08 |
:10AA6000C101AA2797FDA095BA2F20915D053091CD |
:10AA70005E0540915F0550916005820F931FA41FF2 |
:10AA8000B51F80935D0590935E05A0935F05B0931D |
:10AA9000600560915D0570915E0580915F05909104 |
:10AAA00060056130BAEF7B07B0E08B07B0E09B0731 |
:10AAB00074F080E09AEFA0E0B0E080935D059093A1 |
:10AAC0005E05A0935F05B0936005BC01CD016030C9 |
:10AAD000E6E07E07EFEF8E07EFEF9E0774F480E06D |
:10AAE00096E0AFEFBFEF80935D0590935E05A09376 |
:10AAF0005F05B0936005BC01CD01E090A003F0902C |
:10AB0000A1039701442737FD4095542F0E94FB6B0A |
:10AB10006801C20ED31EB0908C036B2D7727882757 |
:10AB2000992728AD39AD37FDC9C237FDC4C2359567 |
:10AB3000279509811A81200F311F442737FD409541 |
:10AB4000542F0E94876B97FDB1C226E0959587959B |
:10AB5000779567952A95D1F79B016C157D050CF4C7 |
:10AB60006B01309521953F4FC216D3060CF4690155 |
:10AB70008091D9049091DA048301081B190B10937A |
:10AB8000470900934609AA2009F423C22B813C817E |
:10AB9000281B390BC901AA2797FDA095BA2F209130 |
:10ABA0006105309162054091630550916405820F03 |
:10ABB000931FA41FB51F8093610590936205A09316 |
:10ABC0006305B093640560916105709162058091A1 |
:10ABD00063059091640561303AEF730730E08307B5 |
:10ABE00030E0930774F080E09AEFA0E0B0E080934B |
:10ABF000610590936205A0936305B0936405BC0161 |
:10AC0000CD01603046E074074FEF84074FEF9407A3 |
:10AC100074F480E096E0AFEFBFEF8093610590930E |
:10AC20006205A0936305B0936405BC01CD01970153 |
:10AC3000442737FD4095542F0E94FB6B7801E20EAC |
:10AC4000F31E6B2D77278827992728AD39AD37FD5F |
:10AC500043C237FD3EC235952795A981BA812A0F97 |
:10AC60003B1F442737FD4095542F0E94876B97FD6B |
:10AC70002BC216E095958795779567951A95D1F72C |
:10AC80009B016E157F050CF47B01309521953F4F9C |
:10AC9000E216F3060CF479018601222717FD2095B0 |
:10ACA000322F0D871E872F87388B242D33273DABFE |
:10ACB0002CAB452D55275FAB4EABB6E9CB2EB9E09B |
:10ACC000DB2E03ED15E02701662457FC6094762CFB |
:10ACD00068AD79AD4B01AA2497FCA094BA2CABE0E7 |
:10ACE0003A2EF7E7EF2EF9E0FF2E07C0FBAFEAAFF1 |
:10ACF000EAADD601EC930C94B561F80125851216E6 |
:10AD00000CF08FC049815A81CA01AA2797FDA095EE |
:10AD1000BA2F332727FD3095432F532FBC01CD0188 |
:10AD20000E94876B97FD91C0E6E095958795779592 |
:10AD30006795EA95D1F77BAF6AAFF8018685282F32 |
:10AD4000332727FD3095432F532F6D857E858F85C3 |
:10AD500098890E94876B97FD73C056E095958795FB |
:10AD6000779567955A95D1F72AAD3BAD260F371FDA |
:10AD70003BAF2AAFF8018785282F332727FD309571 |
:10AD8000432F532FC301B2010E94876B97FD51C01F |
:10AD900046E095958795779567954A95D1F72AADC1 |
:10ADA0003BAD260F371F3BAF2AAFF8018089282F14 |
:10ADB000332727FD3095432F532FC501B4010E943F |
:10ADC000876BDC01CB01B7FD30C036E0B595A795A8 |
:10ADD000979587953A95D1F7F701608171812AADF2 |
:10ADE0003BAD820F931F0E945C31D7018D939C93E2 |
:10ADF00097FD24C095958795959587959BAF8AAFCC |
:10AE0000ECA9FDA98E179F070CF470CF2EA93FA9BE |
:10AE10004AAD5BAD241735070CF06ACF3BAF2AAFC4 |
:10AE200067CFD6011C920C94B561CF96A11DB11DC0 |
:10AE3000CCCF615C7F4F8F4F9F4FAACF0396DACF65 |
:10AE4000615C7F4F8F4F9F4F88CF615C7F4F8F4FEB |
:10AE50009F4F6ACFA090A409B090A50980917E056C |
:10AE6000815008F09ECB88E180937E058091F808A0 |
:10AE70009927880F991F880F991F7C010027F7FCDD |
:10AE80000095102F69897A898B899C89A80197017F |
:10AE90000E94FB6B30932608209325086FA178A5AC |
:10AEA00089A59AA5A80197010E94FB6B30932808F9 |
:10AEB00020932708809193099091940997FDEAC403 |
:10AEC000959587959595879590932A08809329085D |
:10AED0008091AF099091B00997FDDAC49595879557 |
:10AEE0009595879590932C0880932B08B0922E0807 |
:10AEF000A0922D088091D0049091D104A091D20409 |
:10AF0000B091D304BC01CD0125E030E040E050E039 |
:10AF10000E94FB6B3093300820932F0880916908C2 |
:10AF200090916A089093320880933108D092360845 |
:10AF3000C092350880912703909128039093380898 |
:10AF4000809337088091DE04992790933A08809384 |
:10AF500039088091AB099091AC09A091AD09B091ED |
:10AF6000AE09209186033091870340918803509168 |
:10AF70008903BC01CD010E94FB6B30933C082093F8 |
:10AF80003B08809110049091110490934A0880939B |
:10AF9000490880917E07992790934C0880934B082D |
:10AFA0008091F7039091F80390934E0880934D0899 |
:10AFB0008091BF059091C0059093620880936108CD |
:10AFC0008091BD059091BE059093640880936308BD |
:10AFD000EACAC801AA2797FDA095BA2FE0CDC801FB |
:10AFE000AA2797FDA095BA2F40CD68AD79AD613500 |
:10AFF000710524F080E590E099AF88AFA8ADB9ADB8 |
:10B00000A05BBF4F0CF0FDCC00EB1FEF19AF08AFFA |
:10B01000F8CC9093A5098093A4090CCCD09249094F |
:10B02000C0924809F1CB5092580940925709D6CBAB |
:10B03000AFEF08331A070CF020CB08E31FEF19CB52 |
:10B0400098E389169FEF99060CF009CBA8E38A2EA6 |
:10B05000AFEF9A2E00CB1C821B82F1CA222433242C |
:10B06000D1CAE092F904F092FA040093FB04109321 |
:10B07000FC041AC9D092CB04C092CA047093C904CC |
:10B080006093C80449C82FE330E040E050E0E20E8E |
:10B09000F31E041F151F66CB215C3F4F4F4F5F4FC0 |
:10B0A00041CB215C3F4F4F4F5F4F0FCB615C7F4FD8 |
:10B0B0008F4F9F4F4ACD2F5F3F4F39CD3095219510 |
:10B0C0003F4F33CD0396BBC8615C7F4F8F4F9F4F7F |
:10B0D000D0CD2F5F3F4FBFCD309521953F4FB9CD9C |
:10B0E00061507E4F8F4F9F4F96C8222733272A19D2 |
:10B0F0003B0983C88091AD0482608093AD040C94B9 |
:10B10000B1461092D6041092D5040C9447454D5F79 |
:10B110005F4F0C94A3444D5F5F4F0C9459440196CC |
:10B120005DCC8091F808E82EFF240027112769895B |
:10B130007A898B899C89A80197010E94FB6B390150 |
:10B140004A018091930990919409AA2797FDA095AF |
:10B15000BA2F681A790A8A0A9B0A6FA178A589A56D |
:10B160009AA5A80197010E94FB6B59016A01809181 |
:10B17000AF099091B009AA2797FDA095BA2FA81AF8 |
:10B18000B90ACA0ADB0AD401C30197FCF3C43C0123 |
:10B190004D0154E095948794779467945A95D1F72C |
:10B1A000D601C501D7FCF2C45C016D0144E0D59421 |
:10B1B000C794B794A7944A95D1F78091B20490911F |
:10B1C000B304813491050CF4C5C3C401B30123E079 |
:10B1D00030E040E050E00E94FB6B39014A01C601BB |
:10B1E000B50123E030E040E050E00E94FB6B5901E4 |
:10B1F0006A018091E408E82FFF27EE0FFF1FE15559 |
:10B20000F74F808191810190F081E02DF7FDBAC464 |
:10B210007A97A4F0C401B30123E030E040E050E0AD |
:10B220000E94FB6B39014A01C601B50123E030E001 |
:10B2300040E050E00E94FB6B59016A0171E2671621 |
:10B240007104810491042CF030E2632E712C812C66 |
:10B25000912C80EE68168FEF78068FEF88068FEFBF |
:10B26000980644F420EE622E2FEF722E2FEF822EDE |
:10B270002FEF922E91E2A916B104C104D1042CF053 |
:10B2800090E2A92EB12CC12CD12CA0EEAA16AFEFC2 |
:10B29000BA06AFEFCA06AFEFDA0614F00C949C4E74 |
:10B2A00080EEA82E8FEFB82E8FEFC82E8FEFD82EFE |
:10B2B0000C949C4E8091D0049091D104A091D20422 |
:10B2C000B091D304F4E0880F991FAA1FBB1FFA9511 |
:10B2D000D1F78093130490931404A0931504B093B2 |
:10B2E0001604109211041092100421503040309333 |
:10B2F0004405209343054AA141FF3EC080919E032F |
:10B30000823308F051C38091CB03815098F410929E |
:10B31000EA048091D0049091D104A091D204B0911C |
:10B32000D3048093CC049093CD04A093CE04B09327 |
:10B33000CF0481E08093CB0341C010927C05ED2DBA |
:10B34000FF27EE0FFF1FE155F74F808191818C346D |
:10B3500091050CF499C280917D058F5F893C08F4BA |
:10B360001FC31092D40488EC80937D051092AF0423 |
:10B370001092AE040C94254420919E0380918A0380 |
:10B3800090918B03820F911D2091EE083327829FAD |
:10B39000B001839F700D929F700D1124CB01AA27DD |
:10B3A00097FDA095BA2F8093CC049093CD04A093E1 |
:10B3B000CE04B093CF0481E08093EA04E09086034A |
:10B3C000F0908703009188031091890369897A8935 |
:10B3D0008B899C89A80197010E94FB6B59016A0126 |
:10B3E0006FA178A589A59AA5A80197010E94FB6B7A |
:10B3F000B901C5010E94766A6C01CD971CF0ECE39F |
:10B40000CE2ED12CC6010E941C696C018091EA04E9 |
:10B41000882309F469C18091AD0499279C012071AA |
:10B42000307084FD61C1B0903909B0FC04C08091D6 |
:10B43000E90881FD5DC409811A8130939B05209341 |
:10B440009A056090D0047090D1048090D2049090BE |
:10B45000D3048091CC049091CD04A091CE04B091FE |
:10B46000CF0486159705A805B90514F0B0FC52C1A4 |
:10B47000E090D004F090D1048091CC049091CD0460 |
:10B48000E81AF90A80919D0399278E9D90018F9D5E |
:10B49000300D9E9D300D1124C90137FDDAC59595FB |
:10B4A0008795959587959595879595958795081B8B |
:10B4B000190B209110043091110437FDC7C5359543 |
:10B4C00027953595279535952795293031050CF425 |
:10B4D000CCC328E030E0229FA001239F500D329F73 |
:10B4E000500D11249A0157FDAEC535952795359518 |
:10B4F00027958091100490911104280F391F809195 |
:10B500009F039927AA27BB27442737FD4095542F2F |
:10B51000BC01CD010E94876B97FD90C5B7E0959562 |
:10B52000879577956795BA95D1F79B015FEF61385D |
:10B5300075070CF092C321E83FEF021B130B6090DC |
:10B54000F1047090F2048090F3049090F40497FC5E |
:10B5500064C5A7E09594879477946794AA95D1F7EA |
:10B5600080919C03282F332744275527C401B3011A |
:10B570000E94876B97FD4CC5F5E09595879577956B |
:10B580006795FA95D1F79B017FEF213837070CF0CB |
:10B590004BC321E83FEF021B130B85E990E0E80E57 |
:10B5A000F91E9BE2E91691E0F906E8F480919A050C |
:10B5B00090919B05892BB9F480919E0590919F05F0 |
:10B5C0001816190684F48091A0059091A10508171A |
:10B5D00019070CF49FC28091C9039091CA03801788 |
:10B5E00091070CF497C28091430590914405892BF3 |
:10B5F00021F000919E0510919F0580919A03992753 |
:10B60000AA27BB272091180A332727FD3095432FFF |
:10B61000532FBC01CD010E94876B97FD0AC5E7E05F |
:10B620009595879577956795EA95D1F79B01AFEF4B |
:10B6300061387A070CF0F0C221E83FEF021B130BD0 |
:10B64000C801AA2797FDA095BA2F5DE0880F991F22 |
:10B65000AA1FBB1F5A95D1F79601442737FD409585 |
:10B66000542FBC01CD010E94FB6B20936D053093DC |
:10B670006E0540936F055093700500916D05109114 |
:10B680006E0580919C0590919D059C01220F331FB2 |
:10B69000280F391F200F311F37FDC8C4A901559548 |
:10B6A000479555954795BA018091EA08282F332789 |
:10B6B000220F331F220F331F421753070CF0BCC257 |
:10B6C000A901B9015090A309B0FE64C2E981FA81D1 |
:10B6D000E417F5070CF05EC2AF01F0939D05E0930F |
:10B6E0009C055A83498318C06091F208662309F4C7 |
:10B6F0003AC17727663471050CF00EC226E430E0BB |
:10B700003093C8032093C703E980FA80F0929D0527 |
:10B71000E0929C055090A3098091AD0481FFA7C0E1 |
:10B720008091AD0484FDA3C0E090A205F090A30534 |
:10B730000091A4051091A505E114F104010511057E |
:10B74000B1F429813A8179010027F7FC0095102F87 |
:10B75000ECE0EE0CFF1C001F111FEA95D1F7E09200 |
:10B76000A205F092A3050093A4051093A50580916E |
:10B77000100490911104809110049091110497FD90 |
:10B78000EEC3843691050CF072C069817A819B0109 |
:10B79000442737FD4095542FC601AA2797FDA09551 |
:10B7A000BA2FBC01CD010E94876B97FD6CC49B0131 |
:10B7B000AC017DE055954795379527957A95D1F75A |
:10B7C00020936D0530936E0540936F05509370057F |
:10B7D0008091AE049091AF0477E0803D970708F028 |
:10B7E00053C3D801C70169E0B695A795979587958A |
:10B7F0006A95D1F7E81AF90A0A0B1B0BDA01C9019D |
:10B8000023E0880F991FAA1FBB1F2A95D1F7E80EC6 |
:10B81000F91E0A1F1B1FE092A205F092A3050093D8 |
:10B82000A4051093A505D801C7011CE0B695A795FE |
:10B83000979587951A95D1F790939F0580939E05CC |
:10B840004091F008442309F414C355279C01BA0120 |
:10B850000E94C66BC901861B970B9093A10580932C |
:10B86000A005260F371F3093CA032093C903A09069 |
:10B87000A409B090A509809057099090580960904C |
:10B8800048097090490951C810927D050C942544CF |
:10B89000039624CB039614CB909581959F4F0C94DF |
:10B8A0006F4503960C94734503960C94874F9095BF |
:10B8B00081959F4F0C94834F4F960C944652882746 |
:10B8C00099278A199B090C94F951695F7F4F0C9451 |
:10B8D000AE51709561957F4F0C94A15181509E4F50 |
:10B8E000AF4FBF4F0C94805181509E4FAF4FBF4F11 |
:10B8F0000C949551909581959F4F9BAF8AAF0C9476 |
:10B900008D5184EF91E09093AB038093AA030C9444 |
:10B91000CB528AAD9BAD909581959F4F6817790763 |
:10B9200014F00C94B252BC010C94B2520894210849 |
:10B9300031083092AB032092AA030C94CB52F095BD |
:10B94000E195FF4F0C94584E61507E4F8F4F9F4FA3 |
:10B950000C94184E8091B0049091B10481349105FB |
:10B960000CF447CC32CC40919E0550919F0557FD79 |
:10B97000B8C1559547955595479580912703909166 |
:10B980002803209100013327489F5001499FB00CA4 |
:10B99000589FB00C1124C501B9010E94C66BAACEF4 |
:10B9A00080937D050C94254481E08093EA0488EC23 |
:10B9B0008093CB0303CD80937C05C1CC87B5853FB5 |
:10B9C00008F0F3C08091120481500C947C54808163 |
:10B9D0009181855B9F4F0CF0F2C080917B058F5F5A |
:10B9E00080937B05893C10F40C94A8472C3008F018 |
:10B9F0007EC32998A4E0B0E08FEF082E0E94236C4C |
:10BA00001092D40410927B051092AF041092AE04F1 |
:10BA10000E94D53CA4E0B0E08091370590913805B4 |
:10BA200097FD41C4892F990F990B082E0E94236C12 |
:10BA3000A5E0B0E08091370590913805082E0E946E |
:10BA4000236CA6E0B0E0809135059091360597FD16 |
:10BA500027C4892F990F990B082E0E94236CA7E009 |
:10BA6000B0E08091350590913605082E0E94236C38 |
:10BA700008E010E080912F0590913005A0913105EC |
:10BA8000B0913205BC01CD010E94F06ADC01CB010E |
:10BA90009C0197FDCDC3832F992787FD9A95D801E7 |
:10BAA000082E0E94236C09E010E080912F059091F0 |
:10BAB0003005A0913105B0913205BC01CD010E9445 |
:10BAC000F06ADC01CB01D801082E0E94236C0E9491 |
:10BAD000B50568E770E00E948E313091E3080C9460 |
:10BAE000A847C601AA2797FDA095BA2FBC01CD0192 |
:10BAF0002D8D3E8D4F8D58A10E94876B3B014C01CF |
:10BB00000E94FB6B3093EE042093ED0410927F05AE |
:10BB10000C941A528C0167CD6739710534F186E9AE |
:10BB200090E09093C8038093C703EECD0196A11DCA |
:10BB3000B11D0C94414E0196A11DB11D0C94354EC2 |
:10BB400081E080937F051092650510926605109242 |
:10BB50006705109268051092F9041092FA04109289 |
:10BB6000FB041092FC040C94B1467093C8036093DC |
:10BB7000C703CACD0F96A11DB11D09CB095F1F4F89 |
:10BB80000C946B52F095E195FF4F42CB0F96A11D9F |
:10BB9000B11D0ACB70939D0560939C055A83498320 |
:10BBA000BBCD80937B050C94A84781E08093A705CB |
:10BBB000A2CB3F893093A6053093A7059CCB409339 |
:10BBC0007B050C94A847B0928D05A0928C0520911E |
:10BBD000150A2C8F0C942F4B10928E050C94954BBC |
:10BBE00020938405309385054093860550938705FF |
:10BBF000109290050C94FC4C2092800530928105A7 |
:10BC0000409282055092830510928F050C94064C49 |
:10BC1000109291050C946E4D6F3F710509F00CF474 |
:10BC20000DCD2FEF30E00ACD2F3F310509F00CF498 |
:10BC3000B2CC2FEF30E0AFCC5090A309252D3327A5 |
:10BC4000220F331F220F331F205530402417350792 |
:10BC50000CF03ACDA901B90137CD6F3F710509F05C |
:10BC60000CF46BCC2FEF30E068CC121613060CF4FA |
:10BC700032CC229FC001239F900D329F900D112442 |
:10BC800097FD6DC39595879595958795209110049F |
:10BC900030911104281B390B32CC0E94B50545E6C2 |
:10BCA00061EE78E00E945D058091E90880FF10C098 |
:10BCB00080911D0390911E03875B934038F480911F |
:10BCC0001D0390911E038E5E924010F40E94711C21 |
:10BCD0001092F9030E94D53C81E08093F903579AB2 |
:10BCE000F6CE4D5F5F4F45CE81E08093A60503CB36 |
:10BCF0008091AD0481FFD1C12091C7033091C80369 |
:10BD0000C9010F964091D5045091D6048417950728 |
:10BD10000CF0EFC18091A605882309F0EAC180915B |
:10BD2000A80581FFF8C28D7F6090D0047090D10487 |
:10BD30008090D2049090D3046092CC047092CD0491 |
:10BD40008092CE049092CF0481608093A805421B1C |
:10BD5000530B9A012F50304037FDF4C280919A0561 |
:10BD600090919B05280F391F30939B0520939A05CE |
:10BD700020919A0530919B05C90137FF04C088279F |
:10BD80009927821B930B815092400CF481C18091C2 |
:10BD9000EE089927829FF001839FF00D929FF00D8E |
:10BDA0001124CF0160E075E00E94C66BCB01AA2789 |
:10BDB00097FDA095BA2F2091CC043091CD044091ED |
:10BDC000CE045091CF04820F931FA41FB51F809300 |
:10BDD000CC049093CD04A093CE04B093CF041092E2 |
:10BDE0009B0510929A05B1FE06C08BE490E09093FB |
:10BDF000FC038093FB038091F208882309F048C17B |
:10BE000000919E0510919F05A80117FD93C25595BD |
:10BE10004795559547958091270390912803209148 |
:10BE200000013327489F7001499FF00C589FF00C88 |
:10BE30001124C701B9010E94C66B663471050CF06C |
:10BE400073C226E430E03093C8032093C703809187 |
:10BE5000430590914405892B09F4FBCAD401C30121 |
:10BE60006092CC047092CD048092CE049092CF0464 |
:10BE7000F8CA1092A1051092A0058FEF93E090935D |
:10BE8000CA038093C903F3CCAFE0803A9A0708F065 |
:10BE9000E2C0D801C701FAE0B695A79597958795B6 |
:10BEA000FA95D1F7E81AF90A0A0B1B0BDA01C90156 |
:10BEB000880F991FAA1FBB1F880F991FAA1FBB1F9E |
:10BEC000A6CC1091E2080C940B4720938405309384 |
:10BED0008505409386055093870510928D05109235 |
:10BEE0008C05E8EE2E2EE3E03E2E3092AB0320923E |
:10BEF000AA030C946E4D6092800570928105809229 |
:10BF000082059092830510928D0510928C0588EE23 |
:10BF1000282E83E0382E3092AB032092AA030C9493 |
:10BF2000064C7093C9046093C804D092CB04C092AD |
:10BF3000CA04CB0177FD6BC1BC0175956795C6013D |
:10BF4000D7FC63C16C01D594C7940C94494A299AD3 |
:10BF50000C94DF4681E0809391050C946E4D909592 |
:10BF600081959F4F0ECCB095A095909581959F4F50 |
:10BF7000AF4FBF4F0C94FD4A209384053093850545 |
:10BF8000409386055093870581E0809390050C943B |
:10BF9000FC4CB095A095909581959F4FAF4FBF4FAA |
:10BFA0000C945F4C2092800530928105409282056E |
:10BFB0005092830581E080938F050C94064C81504C |
:10BFC0009F4FAF4FBF4F0C94A04981509F4FAF4F31 |
:10BFD000BF4F0C94864981509F4FAF4FBF4F0C9479 |
:10BFE0001B4A81509F4FAF4FBF4F0C940E4A615078 |
:10BFF0007F4F8F4F9F4F0C94DE4961507F4F8F4F83 |
:10C000009F4F0C94C84981E080938E050C94954B0A |
:10C01000615E7F4F8F4F9F4FAFCA6FE770E080E048 |
:10C0200090E0660E771E881E991E93CA2D5F3F4FC3 |
:10C0300035CB61587F4F8F4F9F4FF1CA61587F4F6B |
:10C040008F4F9F4F6BCA2D5F3F4F4FCA295F3F4FA6 |
:10C0500036CA0F9624CA80549F4108F096C0D80172 |
:10C06000C7017BE0B695A795979587957A95D1F707 |
:10C07000E81AF90A0A0B1B0BDA01C901820F931F98 |
:10C08000A41FB51FC4CB6150704E8F4F9F4F8FCBF5 |
:10C0900000919E0510919F05DACE6090D0047090BB |
:10C0A000D1048090D2049090D304D401C30180596C |
:10C0B0009140A040B0408093CC049093CD04A093D5 |
:10C0C000CE04B093CF042091F208222309F446C095 |
:10C0D00033273093C8032093C70300919E05109126 |
:10C0E0009F05BFC9F095E195FF4F0C948A47299AA7 |
:10C0F00081CCC9010F97481759070CF058C080919F |
:10C10000A705882309F053C08091A80580FF1EC1B0 |
:10C110008E7F6090D0047090D1048090D204909073 |
:10C12000D3046092CC047092CD048092CE0490929D |
:10C13000CF0482608093A805421B530B9A01215FB4 |
:10C140003F4F37FD0EC180919A0590919B05821B50 |
:10C15000930B90939B0580939A050ACE28E730E0D5 |
:10C16000B8CF20938405309385054093860550937E |
:10C1700087050C94E44C2093840530938505409307 |
:10C180008605509387050C94564DD801C7016CE085 |
:10C19000B695A795979587956A95D1F7E81AF90A04 |
:10C1A0000A0B1B0BE20EF31E041F151F34CB20914C |
:10C1B000A805822F992783709070892B81F12C7F9D |
:10C1C0002093A80510929B0510929A056090D004C8 |
:10C1D0007090D1048090D2049090D3046092CC04EB |
:10C1E0007092CD048092CE049092CF04B1FEC0CD67 |
:10C1F00084EF91E09093FC038093FB03B9CD8150D1 |
:10C200009F4FAF4FBF4F0C94F04C01969BCE0196C1 |
:10C2100093CE295F3F4F4F4F5F4F0C94394D609045 |
:10C22000D0047090D1048090D2049090D304A0CD1B |
:10C2300021503F4F30CC295F3F4F4F4F5F4F0C9401 |
:10C24000C74C81509E4FAF4FBF4F0C94B24C8150A2 |
:10C250009F4FAF4FBF4F0C94FA4BB095A095909560 |
:10C2600081959F4FAF4FBF4F0C94B34B295F3F4F0A |
:10C270004F4F5F4F0C946B4B21503E4F4F4F5F4FD2 |
:10C280000C94524BB095A095909581959F4FAF4FD0 |
:10C29000BF4F0C944C4BF095E195FF4F0C94074722 |
:10C2A00081509F4FD6CB81509F4FBCCB81509F4F29 |
:10C2B000AF4FBF4F0C94624DF095E195FF4F0C943A |
:10C2C000414A21503E4F4F4F5F4F0C94204DB09547 |
:10C2D000A095909581959F4FAF4FBF4F0C941A4DED |
:10C2E00081509F4FAF4FBF4F0C948D4BB095A09591 |
:10C2F000909581959F4FAF4FBF4F0C94AE4C295FE7 |
:10C300003F4F4F4F5F4F0C94D24B21503E4F4F4FFA |
:10C310005F4F0C94B94B6090D0047090D104809022 |
:10C32000D2049090D30410CD6739710534F026E91A |
:10C3300030E089CD4D5F5F4F6ACD7093C803609345 |
:10C34000C70385CD309521953F4F08CD6090D0042F |
:10C350007090D1048090D2049090D304EACE0396DA |
:10C3600091CC309521953F4FEECE3A94E2E0F0E04B |
:10C37000EE0EFF1E0C5F1F4F0894C11CD11C37FC32 |
:10C3800002C00C947D56ED960FB6F894DEBF0FBE3A |
:10C39000CDBFDF91CF911F910F91FF90EF90DF9074 |
:10C3A000CF90BF90AF909F908F907F906F905F9055 |
:10C3B0004F903F902F9008958091B5059091B605CC |
:10C3C000A091B705B091B8058093AD059093AE05E7 |
:10C3D000A093AF05B093B0058091B1059091B205DF |
:10C3E000A091B305B091B4058093A9059093AA05D7 |
:10C3F000A093AB05B093AC0508951092C0051092C0 |
:10C40000BF051092BE051092BD05089584B1806AE3 |
:10C4100084B93D9A82E58CBD1DBC459A81E080932C |
:10C42000B5098AEA8093B90983E88093BA099AE04A |
:10C430009093BB091092BD091092BC091092BF09DC |
:10C440001092BE091092170A1092DB091092DC09B3 |
:10C450008CE48093DD0986E08093DE099093DF0908 |
:10C460000895EF92FF920F931F938091F8089927F8 |
:10C47000880F991F880F991F7C010027F7FC0095F2 |
:10C48000102F8091290590912A05A0912B05B0913C |
:10C490002C05BC01CD01A80197010E94FB6B3093D4 |
:10C4A000BD092093BC098091210590912205A0919E |
:10C4B0002305B0912405BC01CD01A80197010E947C |
:10C4C000FB6B3093BF092093BE092091AB093091DB |
:10C4D000AC094091AD095091AE09DA01C901E3E020 |
:10C4E000880F991FAA1FBB1FEA95D1F7820F931FD0 |
:10C4F000A41FB51F820F931FA41FB51F2091860391 |
:10C50000309187034091880350918903BC01CD018C |
:10C510000E94FB6B3093C5092093C409E091330559 |
:10C52000F091340580916D0990916E09BF010E94D0 |
:10C53000C66BCB019B01220F331F220F331F280F25 |
:10C54000391F280F391F37FD1CC1359527953595A3 |
:10C5500027953093C1092093C0098091A709909134 |
:10C56000A809BF010E94C66B9B01220F331F220F37 |
:10C57000331F260F371F260F371F37FDFFC0359596 |
:10C580002795359527953093C3092093C2091092BA |
:10C5900034051092330510926E0910926D091092B5 |
:10C5A000A8091092A7098091BB0999278C309105A1 |
:10C5B00009F4A1C08D3091050CF069C08A30910555 |
:10C5C00009F4A4C10B9709F410C18091DB098823F9 |
:10C5D00009F4CBC02091E1093091E209C9018150F1 |
:10C5E0009E4F8F5F9340C8F44091E3095091E40956 |
:10C5F000CA0181509E4F8F5F934078F48091E90883 |
:10C6000085FF0BC03093C0052093BF055093BE0536 |
:10C610004093BD058AEF8093C2058091E709909110 |
:10C62000E80921E0893692070CF056C19C019093ED |
:10C63000F0048093EF048091ED049091EE04281BA8 |
:10C64000390BC901845E9D4F68E671E00E94C66B9C |
:10C65000845B90409093EC048093EB042091EB0971 |
:10C660003091EC098091FB039091FC0382179307B2 |
:10C6700040F480917E07882321F43093FC032093BB |
:10C68000FB038091E009873609F0ADC12AC18E30E5 |
:10C69000910509F476C18E3091050CF475C00F97A1 |
:10C6A00009F093CF809110098093CC0980913809CB |
:10C6B0008093CD09809192038093CE0980910909DE |
:10C6C0008093CF0980910A098093D00980910B094A |
:10C6D0008093D109809191038093D20980910D09B3 |
:10C6E0008093D30980910E098093D40980910F091A |
:10C6F0008093D5096ACF80917E07863018F010921A |
:10C700007E0785E08093CC09809135098093CD091F |
:10C7100080912F08909130089093CF098093CE0993 |
:10C720008091CC049091CD04A091CE04B091CF041F |
:10C73000BC01CD0125E030E040E050E00E94FB6B01 |
:10C740003093D1092093D00980912B098093D2098D |
:10C7500080912C098093D30980912D098093D4096D |
:10C760008091DB09882309F035CF1092C005109223 |
:10C77000BF051092BE051092BD0535C12D5F3F4F1C |
:10C78000FECE2D5F3F4FE1CE809126098093CC09EC |
:10C79000809127098093CD09809128098093CE0943 |
:10C7A000809129098093CF0980912A098093D0092B |
:10C7B00080912E098093D10980912F098093D2090D |
:10C7C000809130098093D309809133098093D409F3 |
:10C7D000809131098093D509809132098093D609DF |
:10C7E000809134098093D709F0CEF8948091E308C2 |
:10C7F000E82FFF27EE0FFF1FE155F74F0190F08163 |
:10C80000E02DE038F1050CF0D1C02FEFE138F20750 |
:10C8100014F4E1E8FFEFE093CC098091E408E82FFD |
:10C82000FF27EE0FFF1FE155F74F0190F081E02D3C |
:10C83000E038F1050CF4CDC0EFE7F0E0E093CD096E |
:10C840008091E208E82FFF27EE0FFF1FE155F74F19 |
:10C850000190F081E02DE038F1050CF4B2C0EFE773 |
:10C86000F0E0E093CE098091E108E82FFF27EE0F7A |
:10C87000FF1FE155F74F0190F081E02DE038F10501 |
:10C880000CF497C0EFE7F0E07894E093CF09809143 |
:10C89000E5048093D0098091E3048093D1098091CD |
:10C8A000E1048093D2098091DF048093D3098091C1 |
:10C8B000DE048093D4098091DD048093D5098091B2 |
:10C8C00033089091340897FD8CC095958795959580 |
:10C8D00087958093D60979CE2091EF043091F004AA |
:10C8E000AACE8091ED098093140A8091EE0980937D |
:10C8F000160A8091EF098093150A8091F0098093C0 |
:10C90000170A8091F1098093180A6DC08091C104C3 |
:10C910008093CC098091C0048093CD098091BF049D |
:10C920008093CE098091BE048093CF098091BD048D |
:10C930008093D0098091BC048093D1098091BB047D |
:10C940008093D2098091BA048093D3098091AD0479 |
:10C950008093D4098091AD04837F8093AD0480914E |
:10C960002703909128038093D5098091000180933B |
:10C97000D609A2E0B0E00E94166C802D8093D70902 |
:10C9800024CE8091DC098093CC098091DD098093CD |
:10C99000CD098091DE098093CE098091DF098093D3 |
:10C9A000CF09809102018093D0090FCEEFE7F0E02C |
:10C9B00032CF8FEFE138F8070CF066CFE1E8FFEFF8 |
:10C9C00063CF6FEFE138F6070CF04BCFE1E8FFEFF4 |
:10C9D00048CF4FEFE138F4070CF030CFE1E8FFEF3C |
:10C9E0002DCF039672CF1F910F91FF90EF90089576 |
:10C9F0008091B509882309F43BC0459889EB99E0FB |
:10CA00009093B7098093B6098091C105E82FFF275D |
:10CA1000E453FC4F982F9F5F80818093BB09973030 |
:10CA200008F027C09093C1051092B5090E943162A9 |
:10CA300081E08093B80900000000000000000000C1 |
:10CA400000000000000000000000000000000000E6 |
:10CA500000000000000000000000000000000000D6 |
:10CA60000000000000008091B9098093D8098EBDB4 |
:10CA700008951092C105D8CF2091B509222309F05D |
:10CA800045C00DB407FE42C084E08093FA03459A86 |
:10CA90003EB58091C30599278130910509F437C0CF |
:10CAA000823091050CF451C0029709F439C02091ED |
:10CAB000B809203208F030C045980000000000009E |
:10CAC0000000000000000000000000000000000066 |
:10CAD0000000000000000000000000000000000056 |
:10CAE00000000000000000000000E091B609F09195 |
:10CAF000B709E20FF11D80818EBD8091D809908128 |
:10CB0000890F8093D8092F5F2093B8090895353590 |
:10CB100051F12093C305CBCF81E08093B509F3CFCA |
:10CB20008091DA09E82FFF27E650F64F30838F5FB8 |
:10CB30008093DA098A3100F18091C405381711F128 |
:10CB40002093DB091092C305B2CF892B09F0AFCF38 |
:10CB50002093DA093093C405313809F0A8CF81E079 |
:10CB60008093C305A4CF8091C405830F8093C4052F |
:10CB700082E08093C3059BCF8091C405830F80938F |
:10CB8000C40595CF8AE1EAEFF9E0A0EEB9E00190A3 |
:10CB90000D928A95E1F781E08093DB091092C3053D |
:10CBA00086CF87B18C6087B9429843981092C605AA |
:10CBB00080E88093D4031092C5058093D303089531 |
:10CBC0008091CB0581508F3F19F08093CB0508955C |
:10CBD00084E08093CB058091AD0485FF16C0409121 |
:10CBE00024094093CC05609125096093CD055091AF |
:10CBF0003709252F332724FF13C08091D4048823BD |
:10CC000079F425FF17C0429A33C08091DE0488234F |
:10CC100034F7409120094093CC0560912209E5CF7B |
:10CC2000909121099B3FB8F080916F098D3D98F05C |
:10CC300047FDE9CF4298252F332724FD1DC0909151 |
:10CC400023099B3F08F18091A209873EE8F067FD28 |
:10CC500019C0439808959B3F20F080916F098A3056 |
:10CC600008F18091C60581508F3F21F18093C60560 |
:10CC7000252F332724FFE3CF8091D4048823F9F6AE |
:10CC800026FFE7CF439A08959B3F20F08091A209A9 |
:10CC90008A3060F08091C50581508F3FE1F080932C |
:10CCA000C505089547FDC6CF429AE2CF67FDD1CFB3 |
:10CCB000439A089580916F0981508093C6058091B1 |
:10CCC000D4038130C9F086958093D403842309F47A |
:10CCD000B1CF429ACDCF8091A20981508093C505F2 |
:10CCE0008091D303813051F086958093D3038623BE |
:10CCF00009F4AFCF439A089580E8E6CF80E8F5CFF6 |
:10CD00008091C9008F778093C9008091C9008F7B83 |
:10CD10008093C9008091C9008F7D8093C9005A9A81 |
:10CD200052981092CD0084E190E08093CC008091E5 |
:10CD3000C80082608093C80080E18093C900809120 |
:10CD4000CA008F778093CA008091CA008F7B80933E |
:10CD5000CA008091CA008F7D8093CA008091CA006A |
:10CD60008F7E8093CA008091CA00877F8093CA001B |
:10CD70008091C9008B7F8093C9008091CA00846034 |
:10CD80008093CA008091CA0082608093CA0080911B |
:10CD9000C80087FF0CC08091CE008091C800882316 |
:10CDA00034F48091CE008091C8008823A4F3809150 |
:10CDB000C90080688093C90008951F93CF93DF93C3 |
:10CDC00080E197E20E94F517EC0110E08091C90024 |
:10CDD0008F778093C9008091C9008F7E8093C900AE |
:10CDE0005A9888E298E09F938F931F930E9476143D |
:10CDF0000F900F900F90CE010E94FE17882309F02C |
:10CE000066C04A9BF8CF8AE590E00E94F517EC01D6 |
:10CE10008EE598E09F938F931F920E947614529A0A |
:10CE20000F900F900F90CE010E94FE178823D9F328 |
:10CE300083E690E05A9A019797FFFCCF8FE891E044 |
:10CE40005A98019797FFFCCF89E090E05A9A019792 |
:10CE500097FFFCCF89E090E05A98019797FFFCCFAD |
:10CE60008FE891E05A9A019797FFFCCF8FE891E005 |
:10CE70005A98019797FFFCCF89E090E05A9A019762 |
:10CE800097FFFCCF89E090E05A98019797FFFCCF7D |
:10CE90008FE891E05A9A019797FFFCCF8FE891E0D5 |
:10CEA0005A98019797FFFCCF89E090E05A9A019732 |
:10CEB00097FFFCCF89E090E05A98019797FFFCCF4D |
:10CEC0008FE891E05A9A019797FFFCCF0AC084E659 |
:10CED00098E09F938F931F930E9476140F900F906A |
:10CEE0000F9052985A980E948066DF91CF911F91BF |
:10CEF00008951F920F920FB60F921124EF92FF9296 |
:10CF00000F931F932F933F934F935F936F937F9351 |
:10CF10008F939F93AF93BF93CF93DF93EF93FF9341 |
:10CF20002091CE008091D503813009F44BC08091CF |
:10CF3000CE058823C9F040E050E08091CF058823DA |
:10CF4000C9F4452B09F44AC081E08093CF05809154 |
:10CF5000D0058F5F8093D00543E08091D00580316C |
:10CF6000E8F44093CE0504C141E050E08091CF0544 |
:10CF7000882339F3813009F44AC08230B9F1833013 |
:10CF800009F44AC081E08093D5031092D005109235 |
:10CF9000D20544E48091D005803118F38091D20508 |
:10CFA000882331F48091D503882311F4809384037E |
:10CFB0001092D0051092D2051092CF0584E4809390 |
:10CFC000CE05D6C01092D50384E48093CE0510928E |
:10CFD000D0051092CF051092D105CAC044E48093C9 |
:10CFE000D0058093CF058093D105D4CF452B51F642 |
:10CFF00043E02093D1059091D005923009F492C07E |
:10D0000083E08093CF059F5F9093D005C3CF452BDE |
:10D0100009F0B8CF82E099CF452B09F0B3CF482F64 |
:10D0200082E08093CF058091D0058F5F8093D005FB |
:10D030009091D105892F86958695E82FFF27EF706F |
:10D04000F0703196892F9927982F88273327822BC4 |
:10D05000932B93708050924063E070E00E94C66B07 |
:10D06000EB30F10508F057C07F01EE0EFF1EF7010F |
:10D07000E155F74F808191819B01281B390BC90134 |
:10D0800037FD6EC0069754F48091DE04883C08F0AA |
:10D090005BC08091DE04865F8093DE04F701E1557A |
:10D0A000F74F808191819C01220F331F280F391F78 |
:10D0B000260F371F37FD51C0E901D595C795D59586 |
:10D0C000C795CB0101968C179D07BCF521978091E0 |
:10D0D000DE04843B60F187010B53174FF701E155E4 |
:10D0E000F74F80819181FE01E81BF90BCF0163E0CE |
:10D0F00070E00E94C66BCB01880F991F860F971FA7 |
:10D10000F801918380832FEA38E0E20EF31EF701E5 |
:10D11000D183C0833FCF729708F43CCF81E08093E6 |
:10D12000D50338CF27FD20C01092D20569CFF70173 |
:10D13000EB53F74F11821082E6CF61507040C61753 |
:10D14000D7072CF62196C3CF88EC8093DE0480911C |
:10D150006F008F7D80936F00A1CF2D5F3F4FACCFCD |
:10D16000909581959F4F8ECF81E08093D20548CFD7 |
:10D17000FF91EF91DF91CF91BF91AF919F918F91EF |
:10D180007F916F915F914F913F912F911F910F91DF |
:10D19000FF90EF900F900FBE0F901F901895CF93B8 |
:10D1A000FC0197FD21C0C1E028E631E0CF01B901C3 |
:10D1B0000E94C66BFC018B35910554F08B55904055 |
:10D1C0008A35910538F484EB90E08E1B9F0BFC01AF |
:10D1D00041E013C0CF01855B90408A35910548F44A |
:10D1E000E45BF0404FEF09C0CFEFF095E195FF4FC2 |
:10D1F000DBCF2E1B3F0BF9014FEFEE0FFF1FE75365 |
:10D20000F64F259134918C2F992787FD9095829F19 |
:10D21000B001839F700D929F700D1124842F992768 |
:10D2200087FD9095689FA001699F500D789F500DD4 |
:10D230001124CA01CF9108952AE530E0281B390B4B |
:10D24000C9010E94CF6808951F93CF93DF93EB012C |
:10D250006115710519F4009709F494C097FD3EC05B |
:10D2600011E0209729F48AE51802B00111248AC040 |
:10D27000AA2797FDA095BA2F26E0880F991FAA1F0D |
:10D28000BB1F2A95D1F79E01442737FD4095542FA7 |
:10D29000BC01CD010E94FB6BF90137FD2CC081E080 |
:10D2A000EA35F807ACF08CE1E73AF807CCF02AE56C |
:10D2B00030E01C161D061CF5812F992787FD9095DF |
:10D2C000829FB001839F700D929F700D11245AC0F0 |
:10D2D000E159F74F8491282F3327EBCF1FEFC1CFB0 |
:10D2E00089E0ED38F8078CF485E0EA3BF80784F034 |
:10D2F00028E530E0DECFF095E195FF4FD0CFD7FDA8 |
:10D300000EC0B901645B70403DC029E530E0D1CF6B |
:10D3100084E0E731F80754F027E530E0CACF111672 |
:10D3200084F764EB70E0621B730B2CC083E0EE3279 |
:10D33000F8071CF026E530E0BCCF82E0E939F807B9 |
:10D340001CF025E530E0B5CF82E0E233F8071CF0B1 |
:10D3500024E530E0AECF81E0E73EF8071CF023E59E |
:10D3600030E0A7CF81E0ED3AF8071CF022E530E08D |
:10D37000A0CFEF57F1401CF021E530E09ACF20E537 |
:10D3800030E097CFCB01DF91CF911F910895EF92BD |
:10D39000FF920F931F93CF93DF937B018C0120E0CB |
:10D3A00030E040E050E0FA01E9016FE00BC0C21B41 |
:10D3B000D30BE40BF50B2F5F3F4F4F4F5F4F615087 |
:10D3C00067FD31C0220F331F441F551FCC0FDD1FD7 |
:10D3D000EE1FFF1FCC0FDD1FEE1FFF1FD801C7017F |
:10D3E0007EE1B695A795979587957A95D1F7C80F61 |
:10D3F000D91FEA1FFB1FEE0CFF1C001F111FEE0CB4 |
:10D40000FF1C001F111F2F5F3F4F4F4F5F4FC21771 |
:10D41000D307E407F50758F621503040404050400C |
:10D42000615067FFCFCF5695479537952795CA012D |
:10D43000B901DF91CF911F910F91FF90EF90089567 |
:10D44000002422273327442751E0BB27EE27FF275C |
:10D45000A0E1660F771F881F991F001C221F331F32 |
:10D46000441F660F771F881F991F001C221F331F40 |
:10D47000441F2AF4050E2B1F3E1F4F1F04C0051A20 |
:10D480002B0B3E0B4F0B550FBB1FEE1F587F5560EC |
:10D4900047FD5250AA95E9F6E695B7955795E6955A |
:10D4A000B7955795852F9B2F08952227332741E065 |
:10D4B000552768E0880F991F221F331F880F991F77 |
:10D4C000221F331F1AF4240F351F02C0241B350BF3 |
:10D4D000440F551F487F456037FD42506A9551F70C |
:10D4E0005695479556954795842F0895AA2797FFF7 |
:10D4F00004C0809590958A1F9A1F77FF04C060959D |
:10D5000070956A1F7A1F669F9001779FA001679FA1 |
:10D51000300D411D5A1F300D411D5A1F889FF001CB |
:10D52000999F2E0F3F1F401D511D899F300D411D9A |
:10D530005A1F300D411D5A1FCA01B901112480CF55 |
:10D54000FC014150504030F001900616D1F7319760 |
:10D55000CF0108958827992708955058192EA6D0ED |
:10D5600001D08CC0BA176207730784079507B1F121 |
:10D5700088F40EF410940B2EBA2FA02D062E622FD5 |
:10D58000202D072E732F302D082E842F402D092E8D |
:10D59000952F502DFF275523B9F0591B49F0573EC1 |
:10D5A00098F0469537952795A795F0405395C9F77C |
:10D5B00076F0BA0F621F731F841F30F4879577953A |
:10D5C0006795B795F040939517FA0F2E0895BF1BF6 |
:10D5D000BB27BA0B620B730B840BF6CFDEF692C03F |
:10D5E00097FB70D09F3738F0FEE9F91B982F872FF3 |
:10D5F000762F6B2F05C083C0969587957795679595 |
:10D60000F150D0F73EF490958095709561957F4FDD |
:10D610008F4F9F4F0895E89403C097FB0EF4F3DFFC |
:10D62000B62F672F782F892F9EE9002427C00ED0B0 |
:10D630005EF004C00BD026F001C008D019F020F431 |
:10D640008FEF089580E0089581E0089597FB092EFB |
:10D65000052600F868942DD0E89407FC07C06217EF |
:10D6600073078407950721F008F4009407949894B1 |
:10D6700008959A95BB0F661F771F881F1124992361 |
:10D68000A1F08823B2F79F3F59F0BB0F48F421F473 |
:10D69000002011F460FF04C06F5F7F4F8F4F9F4FDA |
:10D6A000881F9795879597F9089529C0052E092613 |
:10D6B00007FA440F551F5F3F79F0AA27A51708F016 |
:10D6C00051E04795880F991F9F3F31F0BB27B9174D |
:10D6D00008F091E0879508959F919F91112414C0BF |
:10D6E00097FB880F991F9F3F31F0BB27B91708F0B0 |
:10D6F00091E0879508959F919F91112405C0662719 |
:10D7000077278827992708959FEF80EC0895629FD7 |
:10D71000D001739FF001829FE00DF11D649FE00D29 |
:10D72000F11D929FF00D839FF00D749FF00D659F8A |
:10D73000F00D9927729FB00DE11DF91F639FB00D89 |
:10D74000E11DF91FBD01CF0111240895991B79E056 |
:10D7500004C0991F961708F0961B881F7A95C9F781 |
:10D7600080950895AA1BBB1B51E107C0AA1FBB1FD0 |
:10D77000A617B70710F0A61BB70B881F991F5A955D |
:10D78000A9F780959095BC01CD01089597FB092ECE |
:10D7900007260AD077FD04D0E5DF06D000201AF472 |
:10D7A000709561957F4F0895F6F7909581959F4FFD |
:10D7B0000895A1E21A2EAA1BBB1BFD010DC0AA1FD2 |
:10D7C000BB1FEE1FFF1FA217B307E407F50720F0EA |
:10D7D000A21BB30BE40BF50B661F771F881F991F65 |
:10D7E0001A9469F760957095809590959B01AC01AE |
:10D7F000BD01CF01089597FB092E05260ED057FDD8 |
:10D8000004D0D7DF0AD0001C38F4509540953095ED |
:10D8100021953F4F4F4F5F4F0895F6F790958095B4 |
:10D82000709561957F4F8F4F9F4F0895F999FECF67 |
:10D83000B2BDA1BDF89A119600B40895F7DF019228 |
:10D840001A94E1F70895F999FECFB2BDA1BD00BCCD |
:10D8500011960FB6F894FA9AF99A0FBE08950190AE |
:08D86000F2DF1A94E1F70895CC |
:10D868005E010A0151756164726F0000416E676C58 |
:10D87800654E69636B20202020202020416E676C54 |
:10D8880065526F6C6C202020202020204163634E5D |
:10D8980069636B20202020202020202041636352D0 |
:10D8A8006F6C6C2020202020202020204779726F68 |
:10D8B8004769657220202020202020204869676859 |
:10D8C800742056616C756520202020204163635ABE |
:10D8D8002020202020202020202020204761732085 |
:10D8E800202020202020202020202020436F6D7021 |
:10D8F8006173732056616C7565202020566F6C74B7 |
:10D90800616765202020202020202020456D70663A |
:10D91800616E672020202020202020204779726F08 |
:10D92800204B6F6D70617373202020204D6F746FD2 |
:10D93800722046726F6E7420202020204D6F746F05 |
:10D948007220526561722020202020204D6F746F54 |
:10D9580072204C6566742020202020204D6F746F43 |
:10D9680072205269676874202020202020202020FF |
:10D97800202020202020202020202020202020209F |
:10D98800202020202020202020202020566172697D |
:10D998006F4D657465722020202020204D4B334D3B |
:10D9A80061672043616C53746174652053657276B6 |
:10D9B8006F2020202020202020202020486F6F76F4 |
:10D9C80065726761732020202020202020202020DD |
:10D9D800202020202020202020202020202020203F |
:10D9E800202020202020202020202020202020202F |
:10D9F800202020202020202020202020202020201F |
:10DA0800202020202020202020202020202020200E |
:10DA180020202020202020202020202020202020FE |
:10DA28002020202020202020202020204932432D83 |
:10DA38004572726F72202020202020202020202074 |
:10DA48002020202020202020202020204750535F05 |
:10DA58004E69636B20202020202020204750535FF0 |
:10DA6800526F6C6C2020202020202020C8000164E8 |
:10DA7800FF01FFFF01FC01FC0101737373FF030049 |
:10DA88007D0000C409C40964000E48616C6C6F20F5 |
:10DA980057656C74000000000000000000000000E2 |
:10DAA800000000000000000000000000000000006E |
:10DAB800000000000000000000000000000000005E |
:10DAC800000000000000000000000000000000004E |
:10DAD8000000000000000000000001020304050629 |
:10DAE8000708090A01040B050000ECFF6440415ACD |
:10DAF8004664640A02969696960840403A10FB30AF |
:10DB0800380190D0030090D00300F40164005370F2 |
:10DB18006F727400004E6F726D616C000042656731 |
:10DB2800696E6E657200007800FF03640A0B0D0BC6 |
:06DB38000C0E0F010101BB |
:00000001FF |
/branches/V0.76g_WKN-hef/Hex-Files/Flight-Ctrl_MEGA644_V0_76g_S3D.hex |
---|
0,0 → 1,3454 |
:100000000C943B050C9456050C9456050C9456051F |
:100010000C9456050C9456050C9456050C945605F4 |
:100020000C9456050C9472180C9456050C945605B5 |
:100030000C94562C0C9456050C9456050C945605AD |
:100040000C9456050C9456050C9406170C94560502 |
:100050000C940A0C0C9456050C94D10B0C94560578 |
:100060000C94861D0C9456050C94112B0C9456057B |
:100070000C94BD650C9456050C945605341E271E31 |
:100080001B1E011EE71DC31DD51D38216C206920D4 |
:10009000C31D56203C201C20FC1FAA1F581F401EB9 |
:1000A000862B792BC62BAA2B9E2B372B482B482B24 |
:1000B0004F2B6B2B662B4B2B532B4F2B622B6F2B0A |
:1000C0004B2B532B4F2B5E2B742B4B2BD82B0A0D0A |
:1000D000426174743A0020332043656C6C732020B5 |
:1000E0000020342043656C6C73202000204C6F7717 |
:1000F000207761726E696E67206C6576656C3A2058 |
:1001000025642E2564000A0D3D3D3D3D3D3D3D3DB0 |
:100110003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D0F |
:100120003D3D3D3D3D3D3D3D3D3D3D000A0D466C67 |
:1001300069676874436F6E74726F6C0A0D48617200 |
:1001400064776172653A25642E25640A0D536F66E3 |
:1001500074776172653A5625642E25642563200004 |
:100160000A0D74686520757365206F662074686970 |
:100170007320736F667477617265206973206F6E88 |
:100180006C79207065726D6974746564200A0D6FF6 |
:100190006E206F726967696E616C204D696B726F5A |
:1001A0004B6F707465722D4861726477617265007F |
:1001B0000A0D7777772E4D696B726F4B6F70746590 |
:1001C000722E646520286329204869537973746509 |
:1001D0006D7320476D6248000A0D3D3D3D3D3D3D3C |
:1001E0003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3F |
:1001F0003D3D3D3D3D3D3D3D3D3D3D3D3D000A0DCF |
:1002000047656E65726174696E67206465666175C5 |
:100210006C74204D69786572205461626C65000AC7 |
:100220000D4D697865722D436F6E6669673A2027B8 |
:1002300025732720282575204D6F746F7273290050 |
:100240000A0D466F756E6420424C2D4374726C3AF1 |
:100250002000256420000A0D0A0D2121204D49535C |
:1002600053494E4720424C2D4354524C3A2025646A |
:10027000202121000A0D3D3D3D3D3D3D3D3D3D3DA3 |
:100280003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D9E |
:100290003D3D3D3D3D3D3D3D3D000A0D496E69748E |
:1002A0002E20454550524F4D003A2047656E6572ED |
:1002B0006174696E672044656661756C742D506168 |
:1002C00072616D65746572207573696E67206F6CFD |
:1002D0006420537469636B2053657474696E67732B |
:1002E000000A0D466C696768742D74696D65202578 |
:1002F00075206D696E2020546F74616C3A257520ED |
:100300006D696E000A0D414343206E6F7420636176 |
:100310006C696272617465642021000A0D5573690D |
:100320006E6720706172616D6574657273657420AB |
:100330002564000A0D43616C6962726174696E67BD |
:100340002070726573737572652073656E736F725A |
:100350002E2E004F4B0A0D000A0D436F6E74726F04 |
:100360006C3A200048656164696E67486F6C640090 |
:100370004E6F726D616C20284143432D4D6F646553 |
:1003800029000A0D3D3D3D3D3D3D3D3D3D3D3D3D51 |
:100390003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D8D |
:1003A0003D3D3D3D3D3D3D0A0D002E000A0D2044E2 |
:1003B0004143206F7220493243204552524F52210F |
:1003C00020436865636B204932432C2033567265A5 |
:1003D000662C2044414320616E6420424C2D4374BE |
:1003E000726C005B25695D005B25695D002B204D0B |
:1003F000696B726F4B6F70746572202B0048573AAF |
:100400005625642E25642053573A25642E256425ED |
:10041000630053657474696E673A25642025730020 |
:10042000493243204552524F52212121004D6973D8 |
:1004300073696E6720424C2D4374726C3A256421B7 |
:10044000210028632920486F6C676572204275730C |
:100450007300486F6568653A2020202020253569A3 |
:1004600000536F6C6C486F6568653A2025356900EC |
:100470004C756674647275636B3A20253569004F5C |
:1004800066662020202020203A20253569004B6513 |
:10049000696E65200048F668656E726567656C7503 |
:1004A0006E6700616B742E204C616765004E696356 |
:1004B0006B3A20202020202025356900526F6C6C7B |
:1004C0003A202020202020253569004B6F6D706177 |
:1004D00073733A202020253569004B313A25346961 |
:1004E00020204B323A25346920004B333A253469B9 |
:1004F00020204B343A25346920004B353A253469A5 |
:1005000020204B363A25346920004B373A25346990 |
:1005100020204B383A25346920004E693A25346949 |
:100520002020526F3A253469200047733A253469F8 |
:10053000202047693A253469200050313A25346932 |
:10054000202050323A253469200050333A2534694E |
:10055000202050343A25346920004779726F202DCD |
:100560002053656E736F72004E69636B202534698A |
:1005700020282533692E25692900526F6C6C2025AF |
:10058000346920282533692E256929004769657259 |
:1005900020253469202825336929004E69636B20A2 |
:1005A00025346920282533692E25782900526F6C5F |
:1005B0006C2025346920282533692E2578290047A9 |
:1005C00069657220253469202825336929004E6920 |
:1005D000636B202534692028253369292825336950 |
:1005E0002900526F6C6C2025346920282533692935 |
:1005F0002825336929004769657220253469202838 |
:1006000025336929282533692900414343202D20BA |
:1006100053656E736F72004E69636B2025346920D9 |
:10062000282533692900526F6C6C202534692028F5 |
:100630002533692900486F636820253469202825FF |
:1006400033692900566F6C746167653A2020202554 |
:1006500035690052432D4C6576656C3A202025356E |
:10066000690052432D4368616E6E656C733A2534A0 |
:1006700069004B6F6D706173732020202020202053 |
:10068000005269636874756E673A202025356900E9 |
:100690004D657373776572743A2020253569005370 |
:1006A000746172743A202020202025356900506F33 |
:1006B0007469313A202025336900506F7469323AE9 |
:1006C000202025336900506F7469333A2020253388 |
:1006D0006900506F7469343A2020253369005365EE |
:1006E00072766F202000536574706F696E742020DD |
:1006F000253369005374656C6C756E673A20253339 |
:10070000690052616E67653A2533692D25336900AA |
:1007100045787465726E436F6E74726F6C20200042 |
:100720004E693A2534692020526F3A2534692000F9 |
:1007300047733A253469202047693A2534692000F7 |
:1007400048693A253469202043663A2534692000F7 |
:10075000424C2D4374726C204572726F727320008C |
:100760002025336420202533642020253364202075 |
:100770002533642000202533642020253364202085 |
:100780002533642020253364200020253364202075 |
:100790002533642020253364202025336420004243 |
:1007A0004C2D4374726C20666F756E64200020259A |
:1007B000632020202563202020256320202025631E |
:1007C0002000202563202020256320202025632071 |
:1007D0002020256320002025632020202D2020209C |
:1007E0002D2020202D0031300031310031320046E3 |
:1007F0006C696768742D54696D6520200020202085 |
:100800002020202535756D696E00546F74616C3A37 |
:100810002535756D696E0028726573657429000A47 |
:100820000D506C6561736520636F6E6E6563742037 |
:100830005370656B7472756D20726563656976655A |
:100840007220666F722062696E64696E67204E4F17 |
:10085000572E2E2E006F6B2E0A0D0054696D656F9A |
:1008600075742E0A0D000001020304040506070832 |
:10087000090A0B0B0C0D0E0F101111121314151584 |
:1008800016171818191A1B1B1C1D1D1E1F1F2021AF |
:100890002122232324242525262727282829292AFD |
:1008A0002A2B2B2C2C2D2D2D2E2E2F2F303030316E |
:1008B00031323232333333343434353535363636FB |
:1008C00037373737383838393939393A3A3A3A3B9D |
:1008D0003B3B3B3C3C3C3C3C3D3D3D3D3E3E3E3E4F |
:1008E0003E3F3F3F3F3F3F4040404040404141410D |
:1008F00041414142424242424242434343434343D5 |
:1009000043444444444444444445454545454545A1 |
:100910004545464646464646464646474747474774 |
:10092000474747474747484848484848484848484D |
:100930004849494949494949494949494949494A27 |
:100940004A4A4A4A4A4A4A4A4A4A4A4A4A4B4B4B04 |
:100950004B4B4B4B4B4B4B4B4B4B4B4B4B4B4C4CE5 |
:100960004C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4CC7 |
:100970004C4D4D4D4D4D4D4D4D4D4D4D4D4D4D4DA8 |
:100980004D4D4D4D4D4D4D4E4E4E4E4E4E4E4E4E8E |
:100990004E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E77 |
:1009A0004E4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F58 |
:1009B0004F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F47 |
:1009C00000008F001E01AD013B02CA025803E6037E |
:1009D000740402058F051B06A7063307BE074808E7 |
:1009E000D2085B09E3096B0AF20A780BFD0B810C54 |
:1009F000040D860D070E870E060F840F00107B1066 |
:100A0000F5106E11E5115B12CF124213B3132314CC |
:100A10009214FE146A15D3153B16A1160517671715 |
:100A2000C81727188318DE1837198E19E319361AD4 |
:100A3000871AD61A231B6E1BB61BFD1B411C831C79 |
:100A4000C31C001D3C1D751DAB1DE01D121E421E6A |
:100A50006F1E9A1EC31EE91E0D1F2E1F4D1F691FFC |
:100A6000841F9B1FB01FC31FD31FE11FEC1FF51F67 |
:100A7000FB1FFF1F002011241FBECFEFD0E1DEBF00 |
:100A8000CDBF13E0A0E0B1E0E0EFF4ED02C00590CF |
:100A90000D92A63DB107D9F719E0A6EDB3E001C06C |
:100AA0001D92AD3BB107E1F70C9487060C94000052 |
:100AB000282FFB018150853008F023E0842F9927EF |
:100AC000332721503040829FD001839FB00D929FE9 |
:100AD000B00D1124AC59BF4F019724F00E945A6AFF |
:100AE0000192FACF0E9415640895863038F085E0AF |
:100AF000A2E0B0E0082E0E94676A08958823C1F73B |
:100B00000895582F863048F155E0842F9927252FD6 |
:100B1000332721503040829FD001839FB00D929F98 |
:100B2000B00D1124AC59BF4FFB01019724F0019087 |
:100B30000E94676AFACFA2E6B0E0042E0E94676ABC |
:100B4000A0E5B0E088E0FB01182E0E94736A852FB3 |
:100B50000E9475050E94156408958823B1F60895D2 |
:100B6000CF93A2E0B0E00E945A6A802DC82F815036 |
:100B7000853020F0C3E08C2F0E9475058C2F9927BB |
:100B8000CF91089580918508E82FFF27EE0FFF1F72 |
:100B9000ED5AF74F808191818D5E9F4F14F0109236 |
:100BA0000301808191818A5B9F4F24F4809103012E |
:100BB000882319F02091220717C081E08093030158 |
:100BC00020912207280F20932207253038F088EE45 |
:100BD00093E09093FC038093FB0306C066E970E00A |
:100BE000822F0E94D22FE6CF822F99279093F00771 |
:100BF0008093EF0708951F93CF93DF93182F8823D7 |
:100C000051F48091A3088233A0F080930001112356 |
:100C100009F479C038C08EEC90E09F938F931F92B7 |
:100C20000E9471140F900F900F908091A30882334F |
:100C300060F784EF91E00E94F017EC01112309F0B6 |
:100C400042C08091270390912803823891050CF0CF |
:100C500046C08091A30823E0829FC00111248093A5 |
:100C600000011123A1F268EC70E0822F0E94D22FC4 |
:100C700086ED90E09F938F931F920E9471140F90C6 |
:100C80000F900F90C4CF809100016AE00E94EA6942 |
:100C9000892F99279F938F93809100010E94EA6981 |
:100CA00099279F938F938CEE90E09F938F931F9241 |
:100CB0000E9471148DB79EB707960FB6F8949EBF29 |
:100CC0000FBE8DBF20C0CE010E94F917882309F006 |
:100CD000B8CFCE010E94F9178823A9F3B2CF809133 |
:100CE000A3089927880F991F880F991F80930001E7 |
:100CF000112309F48CCF68EC70E084E00E94D22FBD |
:100D000081EE90E0B7CFDF91CF911F910895CFEFA3 |
:100D1000D0E1DEBFCDBFEE24FF2414B815B8C7EE76 |
:100D2000D3E0E297D7FFFDCF189B6FC1199B78C125 |
:100D30002DE02093020181E887B93E9A8FEF88B9B0 |
:100D40008BE184B981E085B98EE38AB987E48BB9F8 |
:100D5000469A84B7877F84BF8091600088618093C2 |
:100D600060001092600080ED97E09093FC03809308 |
:100D7000FB0310927C0410927B041092580810928E |
:100D8000570810927E0410927D04109280041092F5 |
:100D90007F04243108F43FC188E894E0A0E0B0E08B |
:100DA0008093860390938703A0938803B09389036D |
:100DB0002A3009F465C1243109F462C1289A0E94DD |
:100DC0005B180E942C180E9446110E94412C0E9420 |
:100DD000541C0E94D02A0E944A60789486E091E0D8 |
:100DE0009F938F931F920E9471140F900F900F90FA |
:100DF00087E690E09F938F938CE490E09F938F938E |
:100E00001F921F92809102016AE00E94EA69892F75 |
:100E100099279F938F93809102010E94EA699927F5 |
:100E20009F938F938CE291E09F938F931F920E94E8 |
:100E300071148DB79EB70D960FB6F8949EBF0FBE76 |
:100E40008DBF80E691E09F938F931F920E94711453 |
:100E50000F900F900F9080EB91E09F938F931F92D4 |
:100E60000E9471140F900F900F9088ED91E09F9366 |
:100E70008F931F920E9471148091C8000F900F9061 |
:100E80000F90803209F4F4C0809102018C3008F098 |
:100E9000C0C0299A49E065E878E083E00E945805DF |
:100EA000C8EED3E0DE010E945A6A802D813009F439 |
:100EB000B9C08EEF91E09F938F931F920E9471149F |
:100EC0000F900F900F9027E735E0F9018FE015861E |
:100ED00016861786108A8150349687FFF8CF80E4F3 |
:100EE00080938405809385051092860580938705FD |
:100EF0008093880590EC9093890510928A058093E1 |
:100F00008B0580938C0510928D0590938E059093A0 |
:100F10008F05809390051092910580939205909390 |
:100F2000930581E08093770548E755E08BE0E4E0A6 |
:100F3000F1E0DA0101900D928A95E1F78DE4DE018E |
:100F4000F901182E0E94736A8091850399279F9357 |
:100F50008F935F934F938FE192E09F938F931F92B4 |
:100F60000E9471148DB79EB707960FB6F8949EBF76 |
:100F70000FBE8DBF80E492E09F938F931F920E94DB |
:100F80007114109247041092FF030E94BF3D0F900E |
:100F90000F900F908091FF038823E1F31092470494 |
:100FA00080ED97E00E94F017EC01CC24DD2472E57F |
:100FB000A72E72E0B72E1092FF030E94BF3D8091D2 |
:100FC000FF038823E1F3F601EE0FFF1FEE0FFF1F73 |
:100FD000E958FA4F858518160CF054C086010A5B53 |
:100FE000174FCE010E94F917882309F04EC0D8018F |
:100FF0008C91882309F049C08093FF030E94BF3D74 |
:101000008091FF038823E1F3ECCF199B2FC024E1EB |
:1010100090CE29983FCF8BE095E0A0E0B0E0C0CE25 |
:101020002BE087CEA1E0B0E00E945A6A802D8F3F6E |
:1010300009F43FCF1092850327E735E08DE4DE0108 |
:10104000F901182E0E94626A90918503F9013D967C |
:101050002FE08081349618160CF49F5F215027FFF3 |
:10106000F8CF9093850348E755E06ECF2AE061CE34 |
:101070008091CA00863009F007CF0E94C46404CF73 |
:1010800028989DCE86010A5B174FF801808188233E |
:1010900009F03FC086010F5F1F4F68010C3011053A |
:1010A00008F489CFCC24DD2456E5A52E52E0B52ED8 |
:1010B000C1E025C0F601EE0FFF1FEE0FFF1FE9583C |
:1010C000FA4F858518160CF586010F5F1F4F1F9389 |
:1010D0000F93BF92AF929F930E947114C093F90334 |
:1010E0000F900F900F900F900F908AE298E0C80E2B |
:1010F000D91ED6011C9268010C301105D0F4F601FE |
:10110000EA5BF74F90819923A9F286010F5F1F4F89 |
:10111000ECCF86010F5F1F4F1F930F93BF92AF92CB |
:101120001F920E9471140F900F900F900F900F90CC |
:10113000B4CF84E792E09F938F931F920E94711423 |
:101140000E94BF3D0F900F900F90A1E0B0E00E9471 |
:101150005A6A802D803509F029C20EE010E0D801CE |
:101160000E945A6A802D9927582F442748010894D5 |
:10117000811C911CD4010E945A6A802D480F511D78 |
:10118000ECEFAE2EEFEFBE2EA00EB11ED5010E94E9 |
:101190005A6A802D9927382F22276DEFC62E6FEFC0 |
:1011A000D62EC00ED11ED6010E945A6A802D280F5D |
:1011B000311DEFEF2F3F3E0709F4B9C2FFEF4F3F5C |
:1011C0005F0709F4B4C23093D7032093D60350933A |
:1011D000D9034093D8038091D6039091D7039F936E |
:1011E0008F938091D8039091D9039F938F9381EE31 |
:1011F00092E09F938F931F920E9471148DB79EB7B8 |
:1012000007960FB6F8949EBF0FBE8DBFA4E0B0E066 |
:101210000E945A6A802D853008F0B8C20E94B0053D |
:1012200045E665E878E00E9458050E94B0059927D8 |
:101230009F938F938BE193E09F938F931F920E94D4 |
:10124000711480918D080F900F900F900F900F9058 |
:1012500080FD7BC20E94193B809102018A3009F413 |
:1012600072C2843109F46FC2289A80ED97E090939E |
:10127000FC038093FB0385E58093240788E593E0D6 |
:101280009F938F931F920E94711480918D080F90ED |
:101290000F900F9082FF54C284E693E09F938F9348 |
:1012A0001F920E9471140F900F900F900E941B22AA |
:1012B00088E893E19093AD038093AC0381E0809341 |
:1012C00023070E94FB0582E893E09F938F931F9270 |
:1012D0000E94711480ED97E00E94F017EC010F90CE |
:1012E0000F900F908091FF03882309F4A1C0809193 |
:1012F0001903882309F49CC01092FF0380912207F0 |
:10130000882309F4D0C00E94C2050E94BF3D2091ED |
:1013100002012A3009F4D0C0243109F4CDC0289A42 |
:1013200080918204882309F4CDC080918204815089 |
:101330008093820480916605882369F081508093B0 |
:101340006605882341F4109264051092630510929B |
:101350006205109261058091AC039091AD030197F5 |
:101360009093AD038093AC038091AC039091AD0357 |
:10137000892B29F080914604882309F4D7C08091F5 |
:10138000AC039091AD03892B09F4D6C08091120370 |
:10139000909113038F5F9F4F09F4E7C08091FF0383 |
:1013A000882321F080917804882311F40E9482110F |
:1013B0000E946B0ECE010E94F9178823B9F1649642 |
:1013C00080910F03882309F489C0815080930F0313 |
:1013D00080910001282F33278091270390912803C3 |
:1013E000821793070CF074C080915104806280933F |
:1013F000510480911203909113038F5F9F4F09F462 |
:10140000C8C00E943C6384E08093FA038091780412 |
:10141000882321F45AEAE52E55E0F52E0894E11CC4 |
:10142000F11CF2E7EF16FBE0FF0651F00E94246486 |
:101430008091FA03882309F055CF0E94806352CF30 |
:10144000EE24FF242091D8033091D9032F5F3F4F22 |
:101450003093D9032093D8038091D6039091D7037A |
:1014600001969093D7038093D603832F9927D801B1 |
:10147000082E0E94676A8091D803D401082E0E942A |
:10148000676A8091D703D501082E0E94676A809110 |
:10149000D603D601082E0E94676A84E190E00E947C |
:1014A000F017EC01C3CF0E94D8410E94BF3D2091AC |
:1014B00002012A3009F030CF2898809182048823D5 |
:1014C00009F033CF80916F00806280936F0032CF3C |
:1014D000809151048F7D8093510493CF80932E0788 |
:1014E00010925D0410925C0410925B0410925A04F6 |
:1014F0001092590410925804809112039091130392 |
:101500008F5F9F4F09F064CF80918204882309F098 |
:101510005FCF88E99AE39093FC038093FB0380E01C |
:101520009CE0909313038093120352CF2A3079F1F9 |
:10153000243169F1289A32CF0E94E62A85E090E0B2 |
:101540009093AD038093AC038091010890910208C1 |
:101550000196909302088093010880911203909164 |
:1015600013038F5F9F4F09F019CF80917804882370 |
:1015700009F414CF80E197E29093FC038093FB037E |
:1015800080E890E0909313038093120307CF28988C |
:1015900005CF80E797E19093FC038093FB0380E005 |
:1015A00093E090931303809312032BCF0E94592D45 |
:1015B0008AE992E09F938F931F920E94711431E009 |
:1015C000932E0F900F900F90C0E5D0E08E010F5F2B |
:1015D0001F4F22E0C22ED12CCC0EDD1E93E0A92E8F |
:1015E000B12CAC0EBD1E84E0682E712C6C0E7D1EDD |
:1015F000B5E04B2E512C4C0E5D1EA6E02A2E312C50 |
:101600002C0E3D1EE2E09E1609F48BC0F3E09F16FF |
:1016100009F48AC023E0291508F483C080910201EF |
:10162000843168F085E08093A0081092BE088BE1B9 |
:1016300080939C088EE48093BB088093BC08DE01F5 |
:101640000E945A6A802D8C3008F068C0D8010E9430 |
:101650005A6A802D8C3008F061C0D6010E945A6A07 |
:10166000802D8C3008F05AC0D5010E945A6A802D16 |
:101670008C3008F053C0DE010E945A6A802D80939E |
:101680008508D8010E945A6A802D80938608D60169 |
:101690000E945A6A802D80938708D5010E945A6A59 |
:1016A000802D80938808D3010E945A6A802D8093F0 |
:1016B0008908D2010E945A6A802D80938A08D1013C |
:1016C0000E945A6A802D80938B08A7E5B0E00E94A3 |
:1016D0005A6A802D80938C0881E0981651F4A9EA0B |
:1016E000B2E0BF93AF931F920E9471140F900F90BE |
:1016F0000F9045E665E878E0892D0E948105939476 |
:10170000B5E0B91508F07ECF83E00E94750580E54D |
:10171000A1E0B0E0082E0E94676A1FCD0E94402D14 |
:10172000E8CF0E94262E7ACF0E94F12E77CF10921A |
:10173000D9031092D8031092D7031092D6034BCD41 |
:1017400080E793E0ABCD289890CD83E393E09F931F |
:101750008F931F920E94711488EE93E00E94F017FD |
:10176000EC010E945A1C0F900F900F90CE010E9426 |
:10177000F9178823D9F383E593E09F938F931F9202 |
:101780000E9471140F900F900F9064CD84E093E04D |
:101790009F938F931F920E9471140F900F900F9040 |
:1017A0003DCD1F920F920FB60F9211248F939F93EE |
:1017B000EF93FF93809111038823A9F48091ED03A7 |
:1017C0009091EE030196FC01EC52FA4FE081ED306E |
:1017D00079F08639910561F09093EE038093ED03E3 |
:1017E000E093C6000EC01092EE031092ED0309C004 |
:1017F0001092EE031092ED0381E080931103E093C9 |
:10180000C600FF91EF919F918F910F900FBE0F90A7 |
:101810001F9018951F920F920FB60F9211242F93BD |
:101820003F934F935F938F939F93AF93BF93EF93A8 |
:10183000FF9390E08091C6008093E5035091F303FD |
:10184000563910F09093F4038091E5038D3091F0B8 |
:101850002091F403822F99278130910509F46CC0FF |
:10186000823091050CF48EC0029709F47FC010926B |
:10187000F403A8C02091F403223061F79093F4039D |
:10188000852F99278F5C984FFC01329740812091DA |
:10189000EF033091F003241B3109DC0111978C9187 |
:1018A000281B3109C9019F709093F0038093EF03C7 |
:1018B0000024880F991F001C880F991F001C892F76 |
:1018C000902D982F935C9093F1032F733070235CCD |
:1018D0002093F2038081891709F46EC090E0809113 |
:1018E000E2038F5F8093E2033091E403332309F036 |
:1018F00069C0992309F466C081E08093E403580F1E |
:101900005093E1035150E52FFF27EF5CF84F8DE036 |
:10191000808380913307823509F054C088E190E0DC |
:101920002CE00FB6F894A895809360000FBE20932A |
:1019300060003093F90346C02F5F2093F403E52F36 |
:10194000FF27EF5CF84F8091E50380835F5F509342 |
:10195000F3032091E5038091EF039091F003820F50 |
:10196000911D9093F0038093EF032CC0E52FFF2788 |
:10197000EF5CF84F8091E5038083563938F310927D |
:10198000F403E7CF892B09F072CF8091E50383320E |
:1019900059F08091E5038093310781E08093F30350 |
:1019A0008091E5039927DDCF8091E403882389F7AF |
:1019B00081E08093F403EDCF8C91821709F08ECFF4 |
:1019C00091E092CFFF91EF91BF91AF919F918F9155 |
:1019D0005F914F913F912F910F900FBE0F901F90ED |
:1019E0001895AC01A0E0B0E09D01A817B90748F434 |
:1019F000E4EDF5E08191280F311D1196A417B5078C |
:101A0000C8F33F70FD01EC52FA4FC9010024880F62 |
:101A1000991F001C880F991F001C892F902D835C33 |
:101A200080831196FD01EC52FA4F2F733070822F94 |
:101A3000835C8083AB52BA4F8DE08C93109211037C |
:101A40008091D4058093C6000895BF92CF92DF9213 |
:101A5000EF92FF920F931F93CF93DF93CDB7DEB733 |
:101A60002C859D857E85BB2483E28093D4059F5978 |
:101A70009093D5052093D60503E010E0772309F471 |
:101A8000ADC0CF84D88843E1E42EF12CEC0EFD1ECE |
:101A9000A989BA897150109709F4A0C0109709F468 |
:101AA0003CC0F601EB0DF11DB3949081119789F4C0 |
:101AB0007723A1F1F70122E030E0E20EF31ED70117 |
:101AC000C080D180E20EF31E0D90BC91A02DBB24EE |
:101AD0007150109719F1F601EB0DF11DB39440818F |
:101AE000119709F466C01097D1F0F601EB0DF11DC6 |
:101AF000B39460811197A1F4772391F0F7013296A6 |
:101B0000D701CD90DC9032E0E32EF12CEE0EFF1EDB |
:101B1000A081B181BB24715003C090E040E060E03F |
:101B2000F801EC52FA4F892F86958695835C808365 |
:101B30000F5F1F4FF801EC52FA4F892F99278370DE |
:101B4000907082959295907F9827807F982755274F |
:101B50009A01329522952F7023273F702327822BDD |
:101B6000835C80830F5F1F4FF801EC52FA4F4F7078 |
:101B70005070440F551F440F551F862F992700247E |
:101B8000880F991F001C880F991F001C892F902D0A |
:101B9000842B835C80830F5F1F4FF801EC52FA4F58 |
:101BA0006F73635C60830F5F1F4F109709F076CFF0 |
:101BB00015C0772309F4B3CFF701A2E0B0E0EA0E35 |
:101BC000FB1ED701C080D18022E030E0E20EF31E80 |
:101BD0000D90BC91A02DBB24715085CFC8010E94EF |
:101BE000F10CDF91CF911F910F91FF90EF90DF905B |
:101BF000CF90BF900895A3E07A2F4091E103465023 |
:101C000009F45FC0E72FFF27EF5CF84F80818D5309 |
:101C10007F5FE72FFF27EF5CF84F20812D537F5F19 |
:101C2000E72FFF27EF5CF84F30813D537F5FE72FB1 |
:101C3000FF27EF5CF84F60816D537F5F9927880F16 |
:101C4000991F880F991F522F52955F70582B822F22 |
:101C500099278F70907082959295907F9827807FBA |
:101C60009827232F26952695282B832F9927837035 |
:101C7000907000249695879507949695879507947C |
:101C8000982F802D682B41504F3FD9F0EA2FFF2726 |
:101C9000EF5CF84F5083AF5F41504F3F91F0EA2F18 |
:101CA000FF27EF5CF84F2083AF5F41504F3F49F073 |
:101CB000EA2FFF27EF5CF84F6083AF5F442309F002 |
:101CC000A1CF84E397E09093E0038093DF03A350D8 |
:101CD000A093DE030895CF93DF93CDB7DEB72297AD |
:101CE0000FB6F894DEBF0FBECDBF8091E40388230A |
:101CF00009F4AFC20E94FB0D80913207823609F4CD |
:101D000071C08091330799278436910509F457C033 |
:101D10008536910584F58136910509F44EC18236E8 |
:101D200091050CF4C2C08236910509F49AC183363C |
:101D30009105C1F48091DA039091DB03892B09F0BE |
:101D40004FC2A091DF03B091E0039C91992309F069 |
:101D50003DC29C918AE0989FC00111249093DB03BF |
:101D60008093DA031092E4031092E0031092DF03F1 |
:101D70001092DE036EC28C36910509F410C18D36C7 |
:101D800091050CF0B3C08736910509F42BC1883654 |
:101D9000910541F78FEF80930F03E091DF03F091FE |
:101DA000E003808190913F04892B80933F04882336 |
:101DB00011F01092E60381E08093EA03D3CFE09123 |
:101DC000DF03F091E00390818AE0989FC001112425 |
:101DD00090930D0380930C03892B21F281E0809373 |
:101DE000E903C0CF8091330799278037910509F423 |
:101DF000F2C0813791050CF485C08337910509F451 |
:101E00005BC1843791050CF03CC18137910509F025 |
:101E100078CFA091DF03B091E0038C918F3F09F45C |
:101E20000CC28C91882309F003C281E08C93A091AD |
:101E3000DF03B091E00345E665E878E08C910E940D |
:101E40005805809111038823E1F3E091DF03F091BD |
:101E5000E0038081898380E58A8385E690E09F9313 |
:101E60008F9385E898E09F938F9321E030E03F9334 |
:101E70002F93CE0102969F938F933F932F93CE0182 |
:101E8000820F931F9F938F9383E08F9381E08F93B3 |
:101E900081E58F930E94250DADB7BEB71F960FB693 |
:101EA000F894BEBF0FBEADBF2CCF8B34910509F0A7 |
:101EB00059CFE091DF03F091E0038081918190930D |
:101EC0009404809393042091910430919204821B96 |
:101ED000930B845E9D4F68E671E00E940A6A845B02 |
:101EE00090409093900480938F043CCF8437910569 |
:101EF00009F47CC08637910509F034CF81E08093E6 |
:101F0000E80330CF8D36910529F18E3691050CF01E |
:101F100093C08B34910509F0F4CEA091DF03B0910A |
:101F2000E0038D919C91909394048093930420916D |
:101F3000910430919204821B930B845E9D4F68E65E |
:101F400071E00E940A6A845B9040909390048093B1 |
:101F50008F04D7CE809111038823E1F3A091DF0392 |
:101F6000B091E0039C91913009F43FC1198281E066 |
:101F700090E09F938F93CE0101969F938F9381E082 |
:101F80008F938F938DE48F930E94250D8DB79EB70D |
:101F900007960FB6F8949EBF0FBE8DBFB2CE8FEFDF |
:101FA00080930F03E091DF03F091E0038081809341 |
:101FB000400481E08093EB03D5CEE091DF03F09104 |
:101FC000E003E081E03258F08FE1809310038FEF5F |
:101FD00080930F03C7CE81E08093E70392CEE09316 |
:101FE0001003F5CF81E08093EC03BCCE8091E10338 |
:101FF000853108F4DAC0E091DF03F091E00380E17D |
:10200000ACE0B7E001900D928A95E1F78091110361 |
:102010008823E1F31F9280910E038F9384E58F93C1 |
:102020000E94250D8AEF8093DC038FEF80930F03CE |
:102030000F900F900F9096CE8E36910509F061CEDD |
:10204000809111038823E1F38DE490E09F938F93B7 |
:1020500087E795E09F938F9381E08F938F938EE432 |
:1020600092CFA091DF03B091E0038BE0E4E2F7E0D0 |
:102070000D9001928A95E1F780912D0780930908D0 |
:10208000A6CF8437910509F03CCE8091E1038531DC |
:1020900008F4BCC0A091DF03B091E00380E1ECE064 |
:1020A000F7E00D9001928A95E1F780EF8093DC03D1 |
:1020B0008FEF80930F0325CE2091DF033091E00353 |
:1020C000F90180818150853018F481818035E9F0F3 |
:1020D0001982809111038823E1F381E090E09F93BE |
:1020E0008F93CE0101969F938F9381E08F938F936F |
:1020F00083E58F930E94250DEDB7FEB737960FB697 |
:10210000F894FEBF0FBEEDBFFCCD65E878E085E634 |
:102110002E5F3F4FDB01F901982F01900D929A95A8 |
:10212000E1F722503040482FD9018C910E9481055F |
:102130008091BB089927AA27BB27BC01CD0124ECBD |
:1021400039E040E050E00E94CB69DC01CB01809394 |
:10215000A6039093A703A093A803B093A90380912B |
:10216000BC089927AA27BB27BC01CD010E94CB69D7 |
:10217000DC01CB018093A2039093A303A093A4035B |
:10218000B093A503E091DF03F091E00380810E940A |
:1021900075050E94B005898380E00E94FB056EE60C |
:1021A00070E089810E94D22F94CFE091DF03F091FB |
:1021B000E00380819181A281B38180930C07909389 |
:1021C0000D07A0930E07B0930F0720CF8AE0989FCA |
:1021D000C00111240E94F0179093D3058093D2057B |
:1021E000A091DF03B091E003B4CD47E755E08DE463 |
:1021F000FA01282F0D9001922A95E1F7A8EEB3E09D |
:10220000FA01182E0E94736A9983B1CEA091DF0360 |
:10221000B091E0038D919D910D90BC91A02D809384 |
:102220000C0790930D07A0930E07B0930F073DCFB7 |
:10223000863008F400CE85E0F9CD0E94B005E0912B |
:10224000DF03F091E0038083A091DF03B091E0030E |
:10225000E8CD22960FB6F894DEBF0FBECDBFDF915A |
:10226000CF910895CF93C82F8A3029F08091C00074 |
:1022700085FFFCCF04C08DE00E943211F7CFC093E0 |
:10228000C60080E090E0CF910895089588E18093A2 |
:10229000C1008091C00082608093C0008091C10025 |
:1022A00080688093C1008091C10080648093C100E8 |
:1022B0008AE28093C40080910C0390910D030E94E8 |
:1022C000F01790930107809300078CED90E00E9437 |
:1022D000F0179093300780932F07109202078CE439 |
:1022E0008093030786E0809306078AE080930407C3 |
:1022F00081E0809305071092E0031092DF031092B3 |
:10230000DE030895EF92FF920F931F9380911103C4 |
:10231000882309F478C28091EA03882309F082C0F7 |
:102320008091EB03882329F080911103882309F021 |
:102330007FC18091E803882329F0809111038823CD |
:1023400009F05BC18091EC03882329F0809111038F |
:10235000882309F036C180912F07909130070E94A1 |
:10236000F917882329F080911103882309F0C8C048 |
:1023700080910C0390910D03892B09F084C1809109 |
:10238000E903882329F080911103882309F00FC203 |
:102390008091DA039091DB03892B09F07EC12091B3 |
:1023A00010032F3F59F180E190E09F938F93822F8C |
:1023B000992782959295907F9827807F9827845FB0 |
:1023C0009E4F9F938F9381E090E09F938F9380E146 |
:1023D00093E09F938F9382E08F9381E08F9381E4CA |
:1023E0008F930E94250D8FEF809310038DB79EB7BA |
:1023F0000B960FB6F8949EBF0FBE8DBF8091090853 |
:10240000882329F080911103882309F05EC0809110 |
:10241000E703882309F4F7C180911103882309F4A5 |
:10242000F2C139C080911103882309F479CF0E9449 |
:10243000242284E190E09F938F939091E60384E1BE |
:10244000989FC0011124865D9C4F9F938F9381E0DC |
:1024500090E09F938F9386EE93E09F938F9382E01B |
:102460008F9381E08F9388E48F930E94250D809154 |
:10247000E6038F5F2DB73EB7255F3F4F0FB6F89449 |
:102480003EBF0FBE2DBF843008F4B8C11092E603E2 |
:102490001092EA0345CF86E190E09F938F9383E506 |
:1024A00098E09F938F9381E08F938F9380E58F9334 |
:1024B0000E94250D1092E7038DB79EB707960FB6C1 |
:1024C000F8949EBF0FBE8DBF9EC181E090E09F93A8 |
:1024D0008F9389E098E09F938F9381E08F938F9300 |
:1024E00082E48F930E94250D109209082DB73EB704 |
:1024F000295F3F4F0FB6F8943EBF0FBE2DBF87CF69 |
:1025000080919C089927880F991F880F991F7C013B |
:102510000027F7FC0095102F8091CD049091CE04F8 |
:10252000A091CF04B091D004BC01CD01A8019701C6 |
:102530000E943F6A30931D0720931C078091C504B9 |
:102540009091C604A091C704B091C804BC01CD010C |
:10255000A80197010E943F6A30931F0720931E072E |
:102560008091650480932007809164048093210703 |
:1025700088E090E09F938F938CE197E09F938F93F7 |
:1025800081E08F9383E08F9387E78F930E94250DDF |
:10259000809122072DB73EB7295F3F4F0FB6F894C1 |
:1025A0003EBF0FBE2DBF853018F086E08093220716 |
:1025B00083E690E00E94F0179093300780932F07F6 |
:1025C000D7CE8BE090E09F938F9384E297E09F9328 |
:1025D0008F9381E08F9380910E038F9387E48F9385 |
:1025E0000E94250D1092EC038DB79EB707960FB68B |
:1025F000F8949EBF0FBE8DBFAECE8AE090E09F9351 |
:102600008F9382E097E09F938F9381E08F938F93D6 |
:1026100086E58F930E94250D1092E8032DB73EB7F3 |
:10262000295F3F4F0FB6F8943EBF0FBE2DBF8ACE35 |
:102630000E94242280E590E09F938F938AE293E0AA |
:102640009F938F9321E030E03F932F9389E293E0B3 |
:102650009F938F933F932F9380E494E09F938F9366 |
:1026600083E08F9381E08F938CE48F930E94250DFC |
:102670001092EB038DB79EB70F960FB6F8949EBFDE |
:102680000FBE8DBF56CE80910007909101070E942A |
:10269000F917882309F077CE72CE8091D2059091F8 |
:1026A000D3050E94F917882309F479CE809111038C |
:1026B000882309F474CE80919C089927880F991F6C |
:1026C000880F991F7C010027F7FC0095102F80913F |
:1026D000CD049091CE04A091CF04B091D004BC0160 |
:1026E000CD01A80197010E943F6A3093C505209350 |
:1026F000C4058091C5049091C604A091C704B0910F |
:10270000C804BC01CD01A80197010E943F6A309323 |
:10271000C7052093C60520914F093091500940917B |
:10272000510950915209DA01C90103E0880F991F3C |
:10273000AA1FBB1F0A95D1F7820F931FA41FB51FB5 |
:10274000820F931FA41FB51F20918603309187032A |
:102750004091880350918903BC01CD010E943F6ADA |
:102760003093C9052093C8058EE090E09F938F9326 |
:1027700084EC95E09F938F9381E08F938F9383E414 |
:102780008F930E94250D8091DA039091DB030E94C4 |
:10279000F0179093D3058093D2052DB73EB7295FEC |
:1027A0003F4F0FB6F8943EBF0FBE2DBFF8CD82E469 |
:1027B00090E09F938F9387EC97E09F938F9381E0B6 |
:1027C0008F938F9384E48F930E94250D1092E903D9 |
:1027D0008DB79EB707960FB6F8949EBF0FBE8DBFFC |
:1027E00080910C0390910D03009709F4D1CD0E94C4 |
:1027F000F0179093010780930007CACD8093E603FA |
:102800001092EA038DCD1F910F91FF90EF900895E4 |
:10281000982F80910A08813031F0892F0E9432115F |
:10282000282F33270CC080914104E82FFF27E65D55 |
:10283000FC4F90838F5F8093410421E030E0C90119 |
:1028400008950F931F93CF93DF938C01EB01672BB8 |
:1028500071F0F80181918F010E940814219739F0DD |
:10286000F80181918F010E940814219791F7DF915F |
:10287000CF911F910F9108950F931F93CF93DF93E3 |
:102880008C01EB01672B81F0F8010F5F1F4F8491E2 |
:102890000E940814219741F0F8010F5F1F4F8491A7 |
:1028A0000E940814219781F7DF91CF911F910F911A |
:1028B0000895CF93C82F181634F480E20E940814AC |
:1028C000C1501C16D4F3CF910895CF93C82F18167A |
:1028D00034F480E30E940814C1501C16D4F3CF9145 |
:1028E00008952F923F924F925F926F927F928F92B4 |
:1028F0009F92AF92BF92CF92DF92EF92FF920F938F |
:102900001F93CF93DF93CDB7DEB7E0970FB6F89460 |
:10291000DEBF0FBECDBF26968FAD26972896EEADB3 |
:10292000FFAD289788249924540180930A0848E42D |
:10293000C42ED12CCC0EDD1E7F01C701F7011491EE |
:10294000112331F0153221F00894E11CF11CF6CF6F |
:10295000B701681B790B09F095C0112309F43DC23A |
:102960000894E11CF11C1FA63FA4232C0FEF39A6ED |
:10297000F7010894E11CF11C14911537C9F1812F5E |
:1029800080628837A9F1103209F440C0133209F48B |
:102990008DC01A3209F479C01D3209F476C01B3299 |
:1029A000C9F11E32C9F1103309F48AC0812F815355 |
:1029B000893008F07EC060E070E0CB01880F991F7D |
:1029C000880F991F880F991F860F971F680F791F0F |
:1029D000610F711D60537040F7010894E11CF11CF8 |
:1029E0001491812F80538A3040F3262E153739F603 |
:1029F00030FE3DC0F60184E090E0C80ED91E808014 |
:102A00009180A280B380103209F0C0CF89A58823BD |
:102A100009F0AECF19A7ACCFF7010894E11CF11C67 |
:102A200014911A3209F451C060E070E014C0CB0177 |
:102A3000880F991F880F991F880F991F860F971F5E |
:102A4000680F791F610F711D60537040F701089482 |
:102A5000E11CF11C1491812F80538A3040F3EFEF79 |
:102A60006F3F7E0714F46FEF7FEF062F86CFF601DE |
:102A700082E090E0C80ED91E808191814C01AA2489 |
:102A8000BB2481CF0E943C1468CF1A3251F4F60166 |
:102A900082E090E0C80ED91E208022200CF068CF82 |
:102AA000219490E1392AEFED3E2262CF98E0392A55 |
:102AB0005FCF1836C9F01C36D1F481E0382A58CFE0 |
:102AC00034FC56CFF0E23F2A53CFF60182E090E08B |
:102AD000C80ED91E608171819FEF6F3F790714F492 |
:102AE0006FEF7FEF062F44CF24E0322A41CF133619 |
:102AF00009F44DC1143409F41FC1143609F41CC182 |
:102B0000193609F419C11F3409F40FC11F3609F42D |
:102B10000CC1103709F4F9C0133709F4B2C01535E8 |
:102B200009F4ECC0153709F4E9C0183509F444C0BC |
:102B3000183709F441C0112309F44FC1CE010196A1 |
:102B40009DA78CA7198381E0482E19A6632C7724B2 |
:102B5000042D5FA4541857FC2DC029A5222331F160 |
:102B60000F5F050DC30180739070892B09F42FC18D |
:102B7000222309F027C166FC1BC1C301807390703A |
:102B8000809709F410C1852D0E946514842D992722 |
:102B900087FD9095BC018CA59DA50E94211464FE23 |
:102BA000CCCE822D801B0E945914C7CE66FED9CF91 |
:102BB0000E5FD7CF5524D1CFE0E1EEA733FE07C09B |
:102BC00081149104A104B10411F0F0E43F2A19A684 |
:102BD0000FA707FD02C02FED3222CE0189969DA7D7 |
:102BE0008CA781149104A104B10419F49FA5992321 |
:102BF00061F1EEA54E2E55246624772418AA84147C |
:102C00009504A604B70410F0F1E0F8ABC501B401D7 |
:102C1000A30192010E941D6ADC01CB01082F8A30BA |
:102C2000F0F4005DECA5FDA50293FDA7ECA7C5019E |
:102C3000B401A30192010E941D6A49015A01F8A939 |
:102C4000FF23E1F62EA5283079F0632C7724CE01FE |
:102C50000196482EFCA54F1A28E2420E79CF095A58 |
:102C6000183501F70F7DDECF632C772463FEEFCF9D |
:102C7000003369F380E3ECA5FDA58293FDA7ECA7E3 |
:102C8000E6CFF60182E090E0C80ED91E0190F081F7 |
:102C9000E02DFDA7ECA7EF2B81F4FE013196FDA7F7 |
:102CA000ECA788E289838EE6818385E78B838CE6B7 |
:102CB0008C838D8389E28E831F8207FD15C0802F50 |
:102CC000992787FD9095AC0160E070E08CA59DA5EB |
:102CD0000E94E468009731F0482EFCA54F1A0415B5 |
:102CE0000CF033CF402E31CFECA5FDA50190002094 |
:102CF000E9F731974E2E2CA5421A27CF153511F43E |
:102D000081E0382A9AE09EA762CFF60182E090E047 |
:102D1000C80ED91E808191814C01AA24BB2490E168 |
:102D20009EA7E0E43E2A18E752CF1F3411F4E1E0F9 |
:102D30003E2AF8E0FEA74BCF143411F491E0392A73 |
:102D400030FE18C0F60184E090E0C80ED91E8080E5 |
:102D50009180A280B380B7FE0AC0B094A0949094F2 |
:102D60008094811C911CA11CB11C8DE289A79AE062 |
:102D70009EA72ECFF60182E090E0C80ED91E80817A |
:102D800091814C01AA2497FCA094BA2CE4CFFE01B7 |
:102D90003196FDA7ECA7F60182E090E0C80ED91E9F |
:102DA00080818983D0CE822D801B0E946514EBCE5A |
:102DB00080E38AA71BA762E070E0CE018A960E949A |
:102DC0002114DBCE61E070E0CE018996F8CF822D30 |
:102DD000801B0E94591429A5CBCEE0960FB6F8941B |
:102DE000DEBF0FBECDBFDF91CF911F910F91FF903E |
:102DF000EF90DF90CF90BF90AF909F908F907F909B |
:102E00006F905F904F903F902F9008951F920F9278 |
:102E10000FB60F9211242F933F935F936F937F937D |
:102E20008F939F93AF93BF93EF93FF938091FA0398 |
:102E3000882329F08091FA0381508093FA038091CE |
:102E40007205882319F081508093720580910204E5 |
:102E500081508F3F09F493C0809302048091FB035B |
:102E60009091FC03892B01F18091FB039091FC036D |
:102E700001979093FC038093FB038091FB03909157 |
:102E8000FC03209112033091130382239323892B97 |
:102E900089F0809102018A3009F48BC0479A8091B1 |
:102EA0008D0883FF8DC010C08FEF9FEF90931303A9 |
:102EB00080931203809102018A3009F478C0479808 |
:102EC00080918D0883FF7CC086B19927FC01E07159 |
:102ED000F07084FF0AC08091FD039091FE0301967B |
:102EE0009093FE038093FD036BC08091FD0390914E |
:102EF000FE03892B49F18091FD039091FE038A56D0 |
:102F0000914010F58091FD039091FE0369E270E01D |
:102F10000E94F6698091FD039091FE03860F971F32 |
:102F20009093FE038093FD038091FD039091FE0337 |
:102F30000B9708F440C08091FD039091FE030A971F |
:102F400090939404809393048091930490919404BB |
:102F50002091910430919204821B930B845E9D4FCB |
:102F600068E671E00E940A6A845B90409093900446 |
:102F700080938F041092FE031092FD0321C089E01C |
:102F800080930204809114038F5F817080931403F7 |
:102F9000882319F481E08093FF03809100049091CD |
:102FA00001040196909301048093000457CF5A982E |
:102FB00087CF5A9A85CFF0939404E0939304C4CFBB |
:102FC000FF91EF91BF91AF919F918F917F916F9101 |
:102FD0005F913F912F910F900FBE0F901F9018950A |
:102FE0002091000430910104280F391FC901019676 |
:102FF00008952091000430910104821B930B892FC6 |
:1030000099278695807490700895CF93DF930E94DE |
:10301000F017EC01CE010E94F9178823D9F3DF9154 |
:10302000CF9108951F93CF93DF930E94F017EC0187 |
:103030001FEC08C080911903882321F09093190395 |
:1030400010937A00CE010E94F917982F882391F3EC |
:10305000DF91CF911F9108959FB7F8945F983E9AA2 |
:10306000469A8091B0008F708093B0008091B0003C |
:1030700083608093B0008091B1008B738093B10026 |
:103080008091B1008B608093B1001092B2008FEFFD |
:103090008093B3008091B00080688093B0008091ED |
:1030A00070008A7F809370008091700082608093AE |
:1030B00070009FBF08958AE090E00E94F0179093FF |
:1030C0000A048093090482E085BD83EA84BD17BCAD |
:1030D00088E788BD86E086BD80916E008160809320 |
:1030E0006E0008951F920F920FB60F9211242F9326 |
:1030F0003F934F935F936F937F938F939F93AF9380 |
:10310000BF93EF93FF93809102018431C0F48091CB |
:103110000304882309F446C0209104043091050477 |
:1031200041E02F37340708F49CC08FEF8093B30041 |
:103130002F5F30403093050420930404A4C3809192 |
:103140000304882349F78091B00086FFADC08091C9 |
:10315000B0008F7B8093B000E0910804EE2309F06B |
:10316000EFC08091B408282F33278DED96E0289F7B |
:10317000A001299F500D389F500D1124CA012091A4 |
:10318000060430910704821B930B909305048093EF |
:1031900004041092070410920604469A81E080937A |
:1031A0000304BACF8091B00086FFA8C08091B00020 |
:1031B0008F7B8093B00089EA93E09093050480931D |
:1031C000040480911503909116039C01220F331F74 |
:1031D000280F391F809192039927880F991F880F14 |
:1031E000991F280F391F37FD25C2C901959587956D |
:1031F0009595879590931603809315039093F80304 |
:103200008093F7038091DC0880FFDDC08091AD08DA |
:10321000682F7727882799272091CD043091CE04F5 |
:103220004091CF045091D00457FDE9C1A7E05595D6 |
:10323000479537952795AA95D1F70E94CB699B01B1 |
:10324000AC0197FDFAC1F6E055954795379527955E |
:10325000FA95D1F78091F7039091F803820F931FAD |
:10326000DCC02F3F310569F060F0A9014F5F50408D |
:103270004F37510588F480E88093B30020583040E0 |
:1032800059CF809104048093B300109205041092EA |
:10329000040410920304F7C28FEF8093B30050939D |
:1032A000050440930404EFC28091B00080648093D1 |
:1032B000B0008CEB90E0909305048093040480911F |
:1032C00006049091070484549F4F909307048093C1 |
:1032D00006048091F903882329F080918204853BBC |
:1032E00008F0F2C0469A909108049F5F8091B4085C |
:1032F000891708F0E6C01092080450CF8091B00002 |
:1033000080648093B0008091B408282F33278DED1E |
:1033100096E0289FA001299F500D389F500D112441 |
:10332000CA012091060430910704821B930B9093ED |
:103330000504809304049C0181E080930304F0CE93 |
:1033400089EA93E090930504809304048E2F9927D3 |
:103350008130910509F4BAC0029709F478C1FF27BA |
:10336000EE0FFF1FED5AF74F80819181880F991F53 |
:103370002091040430910504820F931F909305045B |
:1033800080930404209104043091050455E02D3D00 |
:10339000350708F440C18CED95E0909305048093C7 |
:1033A00004049C012C5B30403093050420930404FA |
:1033B0008091060490910704820F931F9093070455 |
:1033C00080930604EBCE8091AD08682F772788277D |
:1033D00099272091CD043091CE044091CF04509193 |
:1033E000D00457FD07C1E7E05595479537952795D8 |
:1033F000EA95D1F70E94CB699B01AC0197FD22C1F0 |
:1034000076E055954795379527957A95D1F7809130 |
:10341000F7039091F803821B930B9093F80380932A |
:10342000F7038091AE08282F3327220F331F220F76 |
:10343000331F8091F7039091F803821793077CF074 |
:103440008091AF08282F3327220F331F220F331FFD |
:103450008091F7039091F8032817390724F43093EB |
:10346000F8032093F7032091F7033091F80380913C |
:10347000040490910504280F391F20503240809198 |
:10348000F7039091F80397FDD3C09595879595958F |
:1034900087959093F8038093F70345E02D3D34071B |
:1034A00008F4B2C08CED95E0909305048093040479 |
:1034B00020910404309105043093070420930604FE |
:1034C0003BCF909308046ACE46980DCF80911503A8 |
:1034D000909116039C01220F331F280F391F8091F2 |
:1034E00092039927880F991F880F991F280F391F5A |
:1034F00037FD99C1C90195958795959587959093C5 |
:103500001603809315039093F8038093F70380913B |
:10351000DC0880FF30C18091AD08682F77278827AD |
:1035200099272091CD043091CE044091CF04509141 |
:10353000D00457FD85C1E7E0559547953795279508 |
:10354000EA95D1F70E94CB699B01AC0197FD73C14D |
:10355000B6E05595479537952795BA95D1F780915F |
:10356000F7039091F803820F931F9093F8038093D1 |
:10357000F7038091AE08282F3327220F331F220F25 |
:10358000331F8091F7039091F803821793077CF023 |
:103590008091AF08282F3327220F331F220F331FAC |
:1035A0008091F7039091F8032817390724F430939A |
:1035B000F8032093F7038091F7039091F80320918B |
:1035C000040430910504820F931F80509240909321 |
:1035D0000504809304048091F7039091F80397FD0C |
:1035E00020C195958795959587959093F80380933D |
:1035F000F703C8CE21583F4F4F4F5F4FF4CE2158AD |
:103600003F4F4F4F5F4F12CE51E02737350758F4E9 |
:1036100087E791E049CF81E02737380708F0C2CE2D |
:1036200087E791E0BACE309305042093040440CF9D |
:1036300003962BCF2D5F3F4FD8CD215C3F4F4F4F8F |
:103640005F4F01CE215C3F4F4F4F5F4FD9CE8091EE |
:103650001703909118039C01220F331F280F391F65 |
:10366000809191039927880F991F880F991F280F20 |
:10367000391F37FDDBC0C9019595879595958795CD |
:1036800090931803809317039093F6038093F503A8 |
:103690008091DC0881FF9AC08091B108682F77275C |
:1036A000882799272091C5043091C6044091C7040A |
:1036B0005091C80457FDE2C0A7E05595479537954E |
:1036C0002795AA95D1F70E94CB699B01AC0197FD84 |
:1036D000D0C0F6E05595479537952795FA95D1F7DF |
:1036E0008091F5039091F603820F931F9093F60358 |
:1036F0008093F5038091B208282F3327220F331FC0 |
:10370000220F331F8091F5039091F60382179307E0 |
:103710007CF08091B308282F3327220F331F220F0C |
:10372000331F8091F5039091F6032817390724F48D |
:103730003093F6032093F5038091F5039091F603FF |
:103740002091040430910504820F931F8050924011 |
:1037500090930504809304048091F5039091F603FF |
:1037600097FD67C095958795959587959093F603F6 |
:103770008093F50307CE8091AD08682F77278827BF |
:1037800099272091CD043091CE044091CF045091DF |
:10379000D00457FD5FC0A7E055954795379527950D |
:1037A000AA95D1F70E94CB699B01AC0197FD4DC052 |
:1037B000F6E05595479537952795FA95D1F780917D |
:1037C000F7039091F803821B930BCFCE8091B10841 |
:1037D000682F7727882799272091C5043091C60440 |
:1037E0004091C7045091C80457FD3EC0E7E055958D |
:1037F000479537952795EA95D1F70E94CB699B01AC |
:10380000AC0197FD2CC066E05595479537952795F7 |
:103810006A95D1F78091F5039091F603821B930B83 |
:1038200065CF0396DECE2D5F3F4F64CE2D5F3F4FB9 |
:1038300022CF039697CF215C3F4F4F4F5F4F88CEEB |
:1038400021583F4F4F4F5F4F76CE215C3F4F4F4F38 |
:103850005F4FAECF21583F4F4F4F5F4F9CCF215C02 |
:103860003F4F4F4F5F4FCFCF21583F4F4F4F5F4F8D |
:10387000BDCF215C3F4F4F4F5F4F2BCF21583F4F64 |
:103880004F4F5F4F19CFFF91EF91BF91AF919F9134 |
:103890008F917F916F915F914F913F912F910F90F9 |
:1038A0000FBE0F901F90189510927C008FEC8093A4 |
:1038B0007A000895EF92FF920F931F93CF93DF93B7 |
:1038C00003E010E0D8010E945A6A802DC82FDD273E |
:1038D000C531D10508F02A97C7BD1092120484E6BD |
:1038E00090E00E94121880911D0390911E03805257 |
:1038F000934010F4C0E0D0E0CA3FD105E0F48AEA7A |
:10390000E82E83E0F82EC7BD82E390E00E941218F3 |
:10391000FF92EF921F920E94711480911D0390916B |
:103920001E030F900F900F908052934020F021962D |
:10393000CA3FD10540F3D8010C2E0E94676AC0939C |
:1039400017088CE291E00E941218DF91CF911F912D |
:103950000F91FF90EF900895EF92FF920F931F93B6 |
:10396000CF93DF9300E000930D0400930C040093C9 |
:103970000B0480ED97E00E94F017EC011CE821E0B9 |
:10398000F22E95EFE92E033009F4ABC000E08091F0 |
:103990002204909123048C5F93400CF091C080919D |
:1039A0001C03815080931C0380912004909121047A |
:1039B0008C5F93400CF079C080911B038150809301 |
:1039C0001B0380911E0490911F048C5F93400CF0A8 |
:1039D0004AC080911A03815080931A0388E0809333 |
:1039E00049040E94D62A80911C038A3008F055C0F1 |
:1039F000F0920D048AE080931C0380911B038A30AF |
:103A000008F043C0F0920C048AE080931B0380917D |
:103A10001A038A3098F5F0920B048AE080931A0317 |
:103A200080914904882379F0CE010E94F9178823F8 |
:103A3000B9F38CEA93E09F938F931F920E947114C5 |
:103A40000F900F900F90109219038FEC80937A00D3 |
:103A5000809119038823E1F31A3008F447C011500C |
:103A600009F091CF48C080911E0490911F048750A7 |
:103A700094408CF180911A038F5FAECF863F80F225 |
:103A8000F0920B04E0921A03CBCF863F08F4BFCF2D |
:103A9000F0920C04E0921B03BACF863F08F4ADCF3E |
:103AA000F0920D04E0921C03A8CF80912004909125 |
:103AB0002104875094408CF080911B038F5F7FCF4F |
:103AC00080912204909123048750944044F0809187 |
:103AD0001C038F5F67CF0F5F81CF0F5F72CF01E055 |
:103AE00063CF1B3008F452CF19E050CF8AE090E04A |
:103AF0000E941218B4CF86E490E00E941218DF9161 |
:103B0000CF911F910F91FF90EF9008951F920F9208 |
:103B10000FB60F921124AF92BF92CF92DF92EF9225 |
:103B2000FF920F931F932F933F934F935F936F9346 |
:103B30007F938F939F93AF93BF93EF93FF932091C6 |
:103B40002B04822F9927AA27BB272F5FFC014297BE |
:103B500040F4E25CFF4FEE0FFF1F0590F491E02D63 |
:103B6000099410922B0482E080932A0480912A0405 |
:103B700080937C0080912B04882309F443C48FEC4C |
:103B800080937A003FC420932B0480917800909119 |
:103B900079002091300430913104820F931F90936B |
:103BA00031048093300481E0DFCF20932B04809197 |
:103BB00078009091790020912E0430912F04820F8B |
:103BC000931F90932F0480932E0484E0CDCF2093F5 |
:103BD0002B0480917800909179002091DB04309142 |
:103BE000DC04821B930B9093160880931508809138 |
:103BF000150890911608909339048093380482E058 |
:103C0000B3CF20932B048091D9049091DA042091B2 |
:103C1000780030917900821B930B90930C0880936D |
:103C20000B0880910B0890910C08909337048093B7 |
:103C3000360487E099CF20932B04809178009091EF |
:103C4000790090932D0480932C0486E08DCF2093EF |
:103C50002B04209178003091790030932F04209329 |
:103C60002E0410922A0482CF20932B0420917800F6 |
:103C700030917900309331042093300481E074CF87 |
:103C800010922B0481E08093190380910E0490918F |
:103C90000F04019690930F0480930E048091780096 |
:103CA0009091790090931E0380931D0380911D03D2 |
:103CB00090911E035C01CC24DD2480913A04909104 |
:103CC0003B04A0913C04B0913D04A80EB91ECA1E4D |
:103CD000DB1E80913E048F5F823108F4E8C2809140 |
:103CE0001F0390912003A0912103B09122037C0136 |
:103CF0008D0123E0EE0CFF1C001F111F2A95D1F748 |
:103D0000E81AF90A0A0B1B0BEA0CFB1C0C1D1D1D03 |
:103D100080911204992787FD9095A92FB92FBC0196 |
:103D2000CD0126EC34E240E050E00E94CB69DC019A |
:103D3000CB01E81AF90A0A0B1B0BD801C70104963C |
:103D4000A11DB11DB7FD23C313E0B595A7959795A8 |
:103D500087951A95D1F780931F0390932003A09322 |
:103D60002103B093220380910F08909110087C01E9 |
:103D70000027F7FC0095102F80911F0390912003DE |
:103D8000A0912103B0912203E81AF90A0A0B1B0B38 |
:103D9000E0927404F0927504009376041093770413 |
:103DA000209113043091140440911504509116048D |
:103DB00057FDFDC2A4E05595479537952795AA95DF |
:103DC000D1F78091130490911404A0911504B0913F |
:103DD0001604821B930BA40BB50B809313049093D2 |
:103DE0001404A0931504B0931604809113049091C9 |
:103DF0001404A0911504B09116048E0D9F1DA01FF0 |
:103E0000B11F8093130490931404A0931504B093EE |
:103E100016048091100490911104BC016295729572 |
:103E2000707F7627607F7627681B790B20911304BB |
:103E300030911404409115045091160457FDB2C2FC |
:103E4000E4E05595479537952795EA95D1F7809108 |
:103E5000740490917504821B930B880F991F880F2F |
:103E6000991F880F991F860F971F97FDA9C29595D7 |
:103E70008795959587959595879595958795909331 |
:103E8000110480931004D601C501D7FC95C2B595E5 |
:103E9000A7959795879580933A0490933B04A093B8 |
:103EA0003C04B0933D0489E080933E0482E05CCE04 |
:103EB00020932B04209178003091790080912E047A |
:103EC00090912F04280F391F809102018A3009F444 |
:103ED00048C2220F331F220F331F30932F04209329 |
:103EE0002E04C90137FD73C29595879595958795E1 |
:103EF00095958795909321048093200480913404B4 |
:103F000090913504820F931F97FD66C29595879512 |
:103F100090933504809334042091E3043091E404B9 |
:103F2000821B930B909324038093230320912604F8 |
:103F3000309127048091230390912403280F391F87 |
:103F400037FD47C2359527953093270420932604E3 |
:103F500083E00ACE20932B042091780030917900E1 |
:103F60008091300490913104280F391F8091020113 |
:103F70008A3009F407C2220F331F220F331F3093F8 |
:103F8000310420933004C90137FDFFC19595879511 |
:103F90009595879595958795909323048093220412 |
:103FA0008091320490913304820F931F97FD0DC2CC |
:103FB0009595879590933304809332042091E5047E |
:103FC0003091E604821B930B909326038093250384 |
:103FD0002091280430912904809125039091260393 |
:103FE000280F391F37FDEEC13595279530932904E9 |
:103FF0002093280481E0B8CD20932B048091780091 |
:10400000909179002091DB043091DC04821B930BAA |
:1040100090931608809315088091150890911608C2 |
:104020002091380430913904820F931F90931B0420 |
:1040300080931A0482E098CD20932B048091D904B8 |
:104040009091DA042091780030917900821B930BD3 |
:1040500090930C0880930B0880910B0890910C08AA |
:104060002091360430913704820F931F90931D04E2 |
:1040700080931C0487E078CD20932B04809102016B |
:104080008A3009F471C1843109F4A8C180917800A3 |
:104090009091790020912C0430912D04820F931F70 |
:1040A00090931F0480931E0486E05ECD20932B0422 |
:1040B000809178009091790020912E0430912F0406 |
:1040C000820F931F90932F0480932E0410922A0442 |
:1040D0004DCD20932B04E2CD20932B0480917800CA |
:1040E00090917900AA2797FDA095BA2FBC01CD0128 |
:1040F0000E9451697B018C018091D3049091D4047A |
:10410000A091D504B091D6049C01AD01C801B701BE |
:104110000E94F168DC01CB01BC01CD010E94346931 |
:10412000DC01CB019093190480931804809118044A |
:104130009091190402970CF4C6C08091D304909119 |
:10414000D404A091D504B091D60420E030E84BE32C |
:1041500054E4BC01CD010E945B698823DCF58091A9 |
:10416000D3049091D404A091D504B091D6042AE050 |
:1041700037ED43EA5CE3BC01CD010E94F268DC014B |
:10418000CB018093D3049093D404A093D504B0932F |
:10419000D6048091520490915304845F9140D0F4EE |
:1041A0008091D3049091D404A091D504B091D60409 |
:1041B0002DEC3CEC4CEC5DE3BC01CD010E94F268BF |
:1041C000DC01CB018093D3049093D404A093D50455 |
:1041D000B093D60481E08093170480917800909189 |
:1041E000790090930E0880930D08809118049091A7 |
:1041F0001904AA2797FDA095BA2F20919504309114 |
:1042000096044091970450919804820F931FA41F25 |
:10421000B51F8093950490939604A0939704B09350 |
:104220009804209195043091960440919704509100 |
:10423000980457FDB2C00AE05595479537952795E4 |
:104240000A95D1F78091950490919604A0919704D6 |
:10425000B0919804821B930BA40BB50B809395042B |
:1042600090939604A0939704B093980483E07CCC39 |
:1042700020932B0480912703909128039C01220F07 |
:10428000331F280F391F809178009091790063E0E7 |
:1042900070E00E94F669260F371F369527953695F0 |
:1042A0002795309328032093270385E05DCC8093E6 |
:1042B0003E04A0923A04B0923B04C0923C04D092D7 |
:1042C0003D0482E051CC80911804909119048F5FD5 |
:1042D0009F4F0CF07FCF8091D3049091D404A09194 |
:1042E000D504B091D60420E030E849E054E4BC01A4 |
:1042F000CD010E945E6918160CF06CCF8091D3043A |
:104300009091D404A091D504B091D6042AE037ED61 |
:1043100043EA5CE3BC01CD010E94F168DC01CB0102 |
:104320008093D3049093D404A093D504B093D6047F |
:104330008091520490915304845F914008F04ACFD9 |
:104340008091D3049091D404A091D504B091D60467 |
:104350002DEC3CEC4CEC5DE3BC01CD010E94F1681E |
:104360002FCF220F331FB9CD809178009091790023 |
:1043700020912C0430912D04820F931F0196969565 |
:1043800087958ECE220F331FFACD0796FFCDD80129 |
:10439000C7010B96A11DB11DD7CC21503C4F4F4FEB |
:1043A0005F4F49CF215F3F4F4F4F5F4F49CD215F57 |
:1043B0003F4F4F4F5F4FFECC0196A11DB11D67CD02 |
:1043C0000F9655CD2F5F3F4F0FCE0196F1CD07963B |
:1043D0008BCD2F5F3F4FB6CD019698CD8091780061 |
:1043E0009091790020912C0430912D04820F931F1D |
:1043F0002FEF37E0281B390B30931F0420931E0446 |
:1044000086E0B2CBFF91EF91BF91AF919F918F91D9 |
:104410007F916F915F914F913F912F911F910F91DC |
:10442000FF90EF90DF90CF90BF90AF900F900FBEB6 |
:104430000F901F90189590E2EAE2F3E08FE49193D9 |
:10444000815087FFFCCF08951F93CF93DF93809116 |
:10445000400420912903281710F4209340049091E0 |
:104460003F0490FF08C080914004882309F41EC1D6 |
:1044700081508093400491FF08C0809140048217CE |
:1044800009F4E4C18F5F80934004892F992780FF4E |
:1044900002C081FD08C10E941B22909140049A3005 |
:1044A00008F0A2C081E180934104892F99279F934E |
:1044B0008F9383EE93E09F938F9381E08F930E947D |
:1044C00071140F900F900F900F900F9080914004F7 |
:1044D000C82FDD27C730D10509F4BBC1C830D105CD |
:1044E0000CF08CC0C330D10509F455C2C430D105DD |
:1044F0000CF0DFC0C130D10509F4BBC2C230D10518 |
:104500000CF438C31092410483EA94E09F938F9394 |
:10451000C1E0CF930E94711484E1809341040F9015 |
:104520000F900F908091CD049091CE04A091CF0474 |
:10453000B091D004B7FD58C63AE0B595A7959795C8 |
:1045400087953A95D1F7BF93AF939F938F938DEA59 |
:1045500094E09F938F93CF930E94711488E280938D |
:1045600041048DB79EB707960FB6F8949EBF0FBE55 |
:104570008DBF8091C5049091C604A091C704B091ED |
:10458000C804B7FD2CC62AE0B595A79597958795E1 |
:104590002A95D1F7BF93AF939F938F938CEB94E0C1 |
:1045A0009F938F93CF930E9471148CE38093410467 |
:1045B0002DB73EB7295F3F4F0FB6F8943EBF0FBEF1 |
:1045C0002DBF80919304909194049F938F938BECD3 |
:1045D00094E09F938F93CF930E9471140F900F904C |
:1045E0000F900F900F90D6C780E180934104892FE0 |
:1045F00099279F938F9388EE93E05DCFCB30D105C1 |
:1046000009F45DC1CC30D1050CF00FC1C930D10522 |
:1046100009F40BC52A970CF01CC31092410482E7E1 |
:1046200096E09F938F9311E01F930E94711484E191 |
:10463000809341040F900F900F9080918F04909180 |
:1046400090049F938F9381E896E09F938F931F939D |
:104650000E94711488E2809341040F900F900F9094 |
:104660000F900F9080919304909194049F938F9357 |
:1046700080E996E09F938F931F930E9471148CE3BF |
:10468000809341040F900F900F900F900F908091A6 |
:104690009104909192049F938F938FE996E09F935A |
:1046A0008F931F9399CF10924004F5CE209340042E |
:1046B000E2CEC530D10509F403C426970CF08CC3B3 |
:1046C0001092410480918608E82FFF27EE0FFF1F0C |
:1046D000ED5AF74F808191819F938F938091850848 |
:1046E000E82FFF27EE0FFF1FED5AF74F80819181D2 |
:1046F0009F938F938AE195E09F938F9311E01F938F |
:104700000E94711484E1809341048DB79EB707968F |
:104710000FB6F8949EBF0FBE8DBF80918808E82F1A |
:10472000FF27EE0FFF1FED5AF74F808191819F9376 |
:104730008F9380918708E82FFF27EE0FFF1FED5A18 |
:10474000F74F8081918188589F4F9F938F938AE282 |
:1047500095E09F938F931F930E94711488E280933A |
:1047600041042DB73EB7295F3F4F0FB6F8943EBFC7 |
:104770000FBE2DBF80918A08E82FFF27EE0FFF1F85 |
:10478000ED5AF74F8081918182599F4F9F938F936C |
:1047900080918908E82FFF27EE0FFF1FED5AF74F92 |
:1047A0008081918182599F4F9F938F938AE395E0F7 |
:1047B0009F938F931F930E9471148CE38093410405 |
:1047C0006DB77EB7695F7F4F0FB6F8947EBF0FBE9F |
:1047D0006DBF80918C08E82FFF27EE0FFF1FED5A69 |
:1047E000F74F8081918182599F4F9F938F93809142 |
:1047F0008B08E82FFF27EE0FFF1FED5AF74F808140 |
:10480000918182599F4F9F938F938AE495E09F9364 |
:104810008F931F930E9471148DB79EB707960FB6A2 |
:10482000F8949EBF0FBE8DBFB5C6CD30D10509F43B |
:1048300047C4CD30D1050CF452C22E9709F4D9C427 |
:1048400081508093290310924004A4C61092400422 |
:104850001CCE84E18093410480912703909128032A |
:104860009F938F9384E496E09F938F9311E01F931F |
:104870000E94711488E2809341040F900F900F9072 |
:104880000F900F908091820499279F938F9383E5D7 |
:1048900096E09F938F931F930E9471148CE38093F3 |
:1048A00041040F900F900F900F900F90809152083D |
:1048B000992701979F938F9382E696E0F0CE10920E |
:1048C000410480E197E09F938F9311E01F930E9432 |
:1048D000711484E1809341040F900F900F908091A8 |
:1048E0002807992787FD90959F938F93809127079D |
:1048F000992787FD90959F938F9380E297E09F93F0 |
:104900008F931F930E94711488E2809341048DB7A6 |
:104910009EB707960FB6F8949EBF0FBE8DBF8091CD |
:104920002907992787FD90959F938F9380912A0758 |
:1049300099279F938F9380E397E09F938F931F9383 |
:104940000E9471148CE3809341042DB73EB7295F18 |
:104950003F4F0FB6F8943EBF0FBE2DBF80912E077C |
:1049600099279F938F9380912B07992787FD909587 |
:104970009F938F9380E497E09F938F931F930E9460 |
:1049800071146DB77EB7695F7F4F0FB6F8947EBF25 |
:104990000FBE6DBFFFC510924104809157089091E2 |
:1049A00058089F938F9380915508909156089F9334 |
:1049B0008F938AED94E09F938F9311E01F930E9451 |
:1049C000711484E1809341046DB77EB7695F7F4FB6 |
:1049D0000FB6F8947EBF0FBE6DBF80915B089091BB |
:1049E0005C089F938F938091590890915A089F93E8 |
:1049F0008F938AEE94E09F938F931F930E9471147C |
:104A000088E2809341048DB79EB707960FB6F8945D |
:104A10009EBF0FBE8DBF80915F08909160089F93ED |
:104A20008F9380915D0890915E089F938F938AEF9A |
:104A300094E09F938F931F930E9471148CE3809353 |
:104A400041042DB73EB7295F3F4F0FB6F8943EBFE4 |
:104A50000FBE2DBF80916308909164089F938F9340 |
:104A600080916108909162089F938F938AE095E00E |
:104A700083CF80918D0880FD1CC084E18093410428 |
:104A80008EE894E09F938F9311E01F930E9471141E |
:104A900088E2809341040F900F900F9085E994E095 |
:104AA0009F938F931F930E9471140F900F900F90FC |
:104AB00071C5109241048091740490917504A09185 |
:104AC0007604B0917704BC01CD0125E030E040E0F0 |
:104AD00050E00E943F6A3F932F9382E594E09F93BA |
:104AE0008F9311E01F930E94711484E1809341041D |
:104AF0000F900F900F900F900F90809170049091F5 |
:104B00007104A0917204B0917304BC01CD0125E041 |
:104B100030E040E050E00E943F6A3F932F9381E6EF |
:104B200094E09F938F931F930E94711488E2809367 |
:104B300041040F900F900F900F900F9080911D03E4 |
:104B400090911E039F938F9380E794E09F938F93A0 |
:104B50001F930E9471148CE3809341040F900F9077 |
:104B60000F900F900F9087B599279F938F938FE7A2 |
:104B700094E095CD209709F063CE109241048DEE1C |
:104B800093E09F938F9311E01F930E94711484E12F |
:104B9000809341040F900F900F9087E690E09F93D1 |
:104BA0008F938CE490E09F938F93DF93CF938091CA |
:104BB00002016AE00E94EA69892F99279F938F93E7 |
:104BC000809102010E94EA6999279F938F938DEF4C |
:104BD00093E09F938F931F930E94711488E28093B8 |
:104BE00041042DB73EB7235F3F4F0FB6F8943EBF49 |
:104BF0000FBE2DBF88E795E09F938F930E94B0056D |
:104C000099279F938F9382E194E09F938F931F93B3 |
:104C10000E9471148091AC039091AD036DB77EB783 |
:104C2000695F7F4F0FB6F8947EBF0FBE6DBF0697CA |
:104C300008F488C490914604992309F47DC48CE358 |
:104C400080934104892F99279F938F938DE294E05D |
:104C500026CD109241048EED96E09F938F9311E044 |
:104C60001F930E94711484E1809341040F900F9070 |
:104C70000F908091920399279F938F9386EE96E0F1 |
:104C80009F938F931F930E94711488E28093410435 |
:104C90000F900F900F900F900F908091F7039091CD |
:104CA000F8039F938F9384EF96E09F938F931F93C6 |
:104CB0000E9471148CE3809341040F900F900F9029 |
:104CC0000F900F908091AF0899279F938F938091B9 |
:104CD000AE0899279F938F9382E097E04DCE109274 |
:104CE000410480E597E09F938F9311E01F930E940A |
:104CF000711484E1809341040F900F900F90809184 |
:104D00002D0899279F938F9380912C0899279F9323 |
:104D10008F9380912B0899279F938F9380912A08D6 |
:104D200099279F938F9380E697E09F938F931F938C |
:104D30000E94711488E2809341048DB79EB70B9650 |
:104D40000FB6F8949EBF0FBE8DBF80913108992792 |
:104D50009F938F938091300899279F938F93809191 |
:104D60002F0899279F938F9380912E0899279F93BF |
:104D70008F9385E797E09F938F931F930E94711401 |
:104D80008CE3809341042DB73EB7255F3F4F0FB6AC |
:104D9000F8943EBF0FBE2DBF8091350899279F9391 |
:104DA0008F938091340899279F938F938091330834 |
:104DB00099279F938F938091320899279F938F9380 |
:104DC0008AE897E09F938F931F930E9471146DB7A9 |
:104DD0007EB7655F7F4FD9CD109241048AE096E09F |
:104DE0009F938F9311E01F930E94711484E180932D |
:104DF00041040F900F900F908091DB049091DC04A0 |
:104E00009F938F9380911A0490911B049F938F938B |
:104E100087E196E09F938F931F930E94711488E21D |
:104E2000809341046DB77EB7695F7F4F0FB6F894EA |
:104E30007EBF0FBE6DBF8091D9049091DA049F931D |
:104E40008F9380911C0490911D049F938F9386E211 |
:104E500096E09F938F931F930E9471148CE380932D |
:104E600041048DB79EB707960FB6F8949EBF0FBE4C |
:104E70008DBF8091D3049091D404A091D504B091BA |
:104E8000D604BC01CD010E943469DC01CB019F93A3 |
:104E90008F9380910609909107099F938F9385E3E3 |
:104EA00096E09F938F931F930E9471142DB73EB786 |
:104EB000295F3F4F0FB6F8943EBF0FBE2DBF6AC3A8 |
:104EC000109241048AE595E09F938F93C1E0CF93C0 |
:104ED0000E947114809102010F900F900F908A3000 |
:104EE00009F4A5C28B3009F4DEC1843109F4DBC1B9 |
:104EF0008D3009F04FC384E18093410480911C03FD |
:104F000099279F938F934091E5045091E604CA013D |
:104F100057FD39C39595879595958795959587956F |
:104F2000959587959F938F939A0157FD29C3359542 |
:104F30002795359527953595279580912204909151 |
:104F40002304821B930B9F938F938EEC95E09F938A |
:104F50008F93CF930E94711488E2809341046DB7C0 |
:104F60007EB7675F7F4F0FB6F8947EBF0FBE6DBFF1 |
:104F700080911B0399279F938F934091E304509155 |
:104F8000E404CA0157FD04C39595879595958795C7 |
:104F900095958795959587959F938F939A0157FD42 |
:104FA000F4C23595279535952795359527958091A8 |
:104FB000200490912104821B930B9F938F9382EE88 |
:104FC00095E09F938F93CF930E9471148CE380930D |
:104FD00041048DB79EB709960FB6F8949EBF0FBED9 |
:104FE0008DBF80911A0399279F938F932091E1049D |
:104FF0003091E204C90137FDC1C2959587959F9311 |
:105000008F9380911E0490911F04281B390B3F93AE |
:105010002F9386EF95E09F938F93CF930E94711407 |
:105020002DB73EB7275F3F4F45CF10924104809187 |
:10503000890490918A049F938F938EEA96E09F93C0 |
:105040008F9311E01F930E94711484E180934104B7 |
:105050000F900F900F900F900F9080918704909178 |
:1050600088049F938F938AEB96E09F938F931F936F |
:105070000E94711488E2809341040F900F900F906A |
:105080000F900F9080918504909186049F938F9349 |
:1050900086EC96E09F938F931F930E9471148CE38C |
:1050A000809341040F900F900F900F900F9080917C |
:1050B0008304909184049F938F9382ED96E0EFCACE |
:1050C000109241048FE997E09F938F93C1E0CF93B3 |
:1050D0000E94711484E1809341040F900F900F900F |
:1050E0008091490899278D969F938F9380914808C6 |
:1050F00099278D969F938F938091470899278D9636 |
:105100009F938F938091460899278D969F938F93B5 |
:105110008EEA97E09F938F93CF930E94711488E259 |
:10512000809341048DB79EB70B960FB6F8949EBF3F |
:105130000FBE8DBF80914D0899278D969F938F93B9 |
:1051400080914C0899278D969F938F9380914B085F |
:1051500099278D969F938F9380914A0899278D96D2 |
:105160009F938F9382EC97E09F938F93CF930E94AE |
:1051700071148CE3809341042DB73EB7255F3F4FF8 |
:105180000FB6F8943EBF0FBE2DBF80914E089927F1 |
:105190008D969F938F9386ED97E09F938F93CF93F8 |
:1051A0000E9471140F900F900F900F900F908091AC |
:1051B0004F08882309F02DC180915008882309F0F9 |
:1051C0001AC180915108882309F4E4C188E48093CE |
:1051D00041048CEE97E09F938F93CF9364CC8150E2 |
:1051E0009C4FAF4FBF4FCFC981509C4FAF4FBF4F68 |
:1051F000A3C9109241048FEE97E09F938F9311E023 |
:105200001F930E94711484E1809341040F900F90CA |
:105210000F908091D8039091D9039F938F938DEF36 |
:1052200097E09F938F931F930E94711488E280935D |
:1052300041040F900F900F900F900F908091D60324 |
:105240009091D7039F938F938AE098E09F938F93D9 |
:105250001F930E94711489E4809341040F900F9072 |
:105260000F900F900F9087E198E09F938F931F937B |
:105270000E94711480913F040F900F900F9083FF54 |
:1052800089C11092D9031092D803AEE0B0E080E05B |
:10529000082E0E94676AAFE0B0E08091D803082E24 |
:1052A0000E94676A77C184E1809341044091E504DC |
:1052B0005091E604CA0157FD57C19C0135952795C9 |
:1052C000359527953595279535952795C90182956B |
:1052D0009295907F9827807F9827BA01681B790B59 |
:1052E000CB0177FD3FC1959587959F938F933F9312 |
:1052F0002F939A0157FD33C13595279535952795FD |
:10530000359527958091220490912304821B930B5D |
:105310009F938F938BE995E09F938F93CF930E94F8 |
:10532000711488E2809341048DB79EB709960FB639 |
:10533000F8949EBF0FBE8DBF4091E3045091E404EA |
:10534000CA0157FD0AC19C013595279535952795CA |
:105350003595279535952795C90182959295907F2A |
:105360009827807F9827BA01681B790BCB0177FDBE |
:10537000F2C0959587959F938F933F932F939A01B2 |
:1053800057FDE6C035952795359527953595279591 |
:105390008091200490912104821B930B9F938F9303 |
:1053A0008DEA95E09F938F93CF930E9471148CE3C5 |
:1053B000809341048DB79EB709960FB6F8949EBFAF |
:1053C0000FBE8DBF2091E1043091E204C90137FD89 |
:1053D000CDC0959587959F938F9380911E04909152 |
:1053E0001F04281B390B3F932F938FEB95E09F935E |
:1053F0008F93CF9359CD84E48093410489EE97E055 |
:105400009F938F93CF930E9471140F900F900F90E2 |
:10541000D8CE80E48093410486EE97E09F938F93EB |
:10542000CF930E9471140F900F900F90C5CE84E11E |
:10543000809341044091E5045091E6049A0157FDA0 |
:105440009AC0359527953595279535952795C901A6 |
:10545000880F991F880F991F880F991F481B590B98 |
:105460005F934F933F932F93809122049091230455 |
:10547000821B930B9F938F9388E695E09F938F9366 |
:10548000CF930E94711488E2809341042DB73EB7F8 |
:10549000275F3F4F0FB6F8943EBF0FBE2DBF409120 |
:1054A000E3045091E4049A0157FD62C035952795B5 |
:1054B0003595279535952795C901880F991F880F30 |
:1054C000991F880F991F481B590B5F934F933F9368 |
:1054D0002F938091200490912104821B930B9F9322 |
:1054E0008F938AE795E09F938F93CF930E947114D7 |
:1054F0008CE3809341046DB77EB7675F7F4F0FB633 |
:10550000F8947EBF0FBE6DBF8091E1049091E204DC |
:105510009F938F938091E1049091E20420911E0467 |
:1055200030911F04821B930B9F938F938CE895E01F |
:105530009F938F93CF936EC98CE38093410482E451 |
:1055400094E0AECA8CE38093410480E294E0A8CA60 |
:10555000295F3F4F17CF01960CCF0F96F4CE295FEE |
:105560003F4FCACE0196BFCE0F96A7CE019631CF40 |
:10557000295F3F4F9BCF295F3F4F63CF01963DCDC2 |
:10558000295F3F4FD4CC0F96C5CC295F3F4F09CD43 |
:105590000F96FACC10923F04DF91CF911F9108959E |
:1055A0001092B9008AE28093B800089585EA80934A |
:1055B000BC00089584E98093BC0008951092B9005E |
:1055C0008093BB0085E88093BC0008950E94DA2A8E |
:1055D000109249048091BB001092480480E88093A7 |
:1055E000BC001092BD001092BA001092BB00109245 |
:1055F000B9001092B8000E94D02A0E94D62A80E0FA |
:105600000E94DE2A08958093BB0085E88093BC0049 |
:10561000089585EC8093BC00089585E88093BC00D4 |
:1056200008951F920F920FB60F9211242F933F935C |
:105630004F935F936F937F938F939F93AF93BF939A |
:10564000EF93FF9380914904282F33274427552750 |
:105650008F5F80934904F90127313105C8F4E05B7D |
:10566000FF4FEE0FFF1F0590F491E02D09948091FC |
:105670004704E82FFF27E65EF74F9091BB00908329 |
:105680008F5F8C3008F49DC0109247040E94DA2A84 |
:1056900010924904E0C080E80E94DE2ADCC088E95C |
:1056A0000E94DE2AD8C00E94DA2A8AE090E0909315 |
:1056B000AD038093AC030E94D62ACDC084E10E9442 |
:1056C000DE2AC9C082E10E94DE2AC5C080911C0387 |
:1056D0000E94DE2AC0C080E10E94DE2ABCC0809108 |
:1056E0001B030E94DE2AB7C080911A030E94DE2AA3 |
:1056F000B2C080914804E82FFF27E65CF64F8F5F29 |
:105700008093480480810E94DE2AA5C090914804BD |
:10571000292FE92FFF27EE0FFF1FEE0FFF1FE9587C |
:10572000FA4F858518160CF054C09C3009F467C0F8 |
:10573000990F892F8E5A0E94DE2A8DC080914704CE |
:10574000E82FFF27EA5CF74F8091BB0080830E941F |
:105750000D2B81C08091B900803409F46EC0809116 |
:105760004704E82FFF27EA5BF74F10828F5F8C30EA |
:1057700068F1109247040E94DA2A1092490480913D |
:105780004A048093460410924A0465C08091B9008F |
:10579000803309F440C00E94DA2A8AE090E09093B6 |
:1057A000AD038093AC03109249040E94D62A53C0E3 |
:1057B0000E94DA2A8AE090E09093AD038093AC03D4 |
:1057C00067CF809347040E94DA2A62CF8093470410 |
:1057D000D2CF9C3008F0A9CF922F9F5FE92FFF27EF |
:1057E000EE0FFF1FEE0FFF1FE958FA4F85851816C1 |
:1057F0001CF0292F9C3080F39093480496CF109290 |
:10580000480483E08093490480914704880F8D5AAF |
:105810000E94DE2A20C080914A048823C9F4909116 |
:10582000480490934A04E92FFF27E75DF74F8081F2 |
:105830008F5F09F48FEF8083AECF80914704E82F0C |
:10584000FF27EA5BF74F8C5F80830E94092B97CF7D |
:1058500090914804E8CF8091BC0080688093BC00A0 |
:10586000FF91EF91BF91AF919F918F917F916F9138 |
:105870005F914F913F912F910F900FBE0F901F900E |
:10588000189582EC8093810080916F0080628093F4 |
:105890006F001092E2041092E1041092E40410925E |
:1058A000E3041092E6041092E50408951F920F920B |
:1058B0000FB60F921124EF92FF920F931F932F9325 |
:1058C0003F934F935F936F937F938F939F93AF9388 |
:1058D000BF93CF93DF93EF93FF9320918600309196 |
:1058E000870080914C0490914D04281B390B309314 |
:1058F000EA072093E907C90137FD8BC09C01359564 |
:105900002795809186009091870090934D04809315 |
:105910004C04C90189599840875E954370F4809181 |
:105920004E0490914F0404970CF070C0C1E0D0E099 |
:10593000D0934F04C0934E048CC0C0914E04D091BC |
:105940004F04CA30D1050CF084C0C9018B5F904070 |
:105950008356944008F058C0225C3340FE01EC0F9F |
:10596000FD1FED5AF74F80819181F901E81BF90B7A |
:10597000CF01F7FD6AC006972CF480918204883C21 |
:1059800008F45AC0FE01EC0FFD1FED5AF74F80815D |
:105990009181AC01440F551F480F591F420F531FEF |
:1059A00057FD50C07A01F594E794F594E794C90146 |
:1059B00001968E159F057CF50894E108F108809109 |
:1059C0008204833C88F18E010C0F1D1FF801ED5AF3 |
:1059D000F74F808191819701281B390BC90163E042 |
:1059E00070E00E940A6ACB01880F991F860F971FEB |
:1059F0000759174FF80191838083FE01EC0FFD1FBB |
:105A0000ED5AF74FF182E082219692CF10928403F3 |
:105A10008DCF019673CF21503040E216F3067CF60D |
:105A20000894E11CF11CCBCFFE01EC0FFD1FE759E0 |
:105A3000F74F11821082E1CF80918204865F8093BC |
:105A40008204A0CF4D5F5F4FADCF909581959F4F62 |
:105A500092CFFF91EF91DF91CF91BF91AF919F9145 |
:105A60008F917F916F915F914F913F912F911F91F6 |
:105A70000F91FF90EF900F900FBE0F901F90189511 |
:105A800081E08093870882E08093860883E080939A |
:105A9000850884E08093880885E08093890886E003 |
:105AA00080938A0887E080938B0888E080938C0835 |
:105AB00008951F938AE680938D0851E05093DD0886 |
:105AC0004EE140938E088BEF809390088AE080939C |
:105AD000910840938F084093930885E08093940841 |
:105AE00080E4809395081092960884E18093920850 |
:105AF0008EE080939708E0E1E09398081CE0109313 |
:105B00009908F8E0F0939A0886EE80939B084093FA |
:105B10009C0880E880939D0830E530939E0896E9C4 |
:105B200090939F0883E08093A0083093A1089093FE |
:105B3000A20881E28093A30883E28093A4084093A3 |
:105B4000A5081092A60860E26093A7081092A80822 |
:105B50001092A9081092AA081092AB081092C008DF |
:105B60001092C1081092C2081092C30824E6209334 |
:105B7000AC0898E29093AD085093DC081092AE0800 |
:105B80008AEF8093AF0876E07093B4082093B00852 |
:105B90009093B1081092B2088093B30882E3809387 |
:105BA000B5089AE59093B6088093B7081092DB0881 |
:105BB0009093B8083093B9085093BA0885E580935C |
:105BC000BB088093BC08E093BD086093BE08209397 |
:105BD000BF088FE58093C40883EF8093C6088AEAE4 |
:105BE0008093C8088093C9088FE08093C50880938C |
:105BF000C7088CEF8093CA082093CB089093CC08F9 |
:105C00009093CD089093CE088BE48093CF08809337 |
:105C1000D0088093D1081092D2087093D308F093E3 |
:105C2000D4089093D5084093D6082093D7082093A2 |
:105C3000D80884E08093D908AEEAB3E0EEEDF8E04E |
:105C40000D9001921A95E1F71F9108958AE68093CD |
:105C50008D0871E07093DD085EE150938E088BEF44 |
:105C6000809390089AE09093910850938F085093F6 |
:105C7000930885E08093940880E4809395081092BF |
:105C800096088FE0809392089093970880E1809324 |
:105C9000980866E060939908E8E0E0939A0886EE39 |
:105CA00080939B0850939C0880E880939D082AE588 |
:105CB00020939E0898E790939F0883E08093A00824 |
:105CC0002093A1089093A20881E28093A30883E225 |
:105CD0008093A4085093A5081092A60840E2409330 |
:105CE000A7081092A8081092A9081092AA0810926A |
:105CF000AB081092C0081092C1081092C20810920E |
:105D0000C30834E63093AC0898E29093AD087093E2 |
:105D1000DC081092AE088AEF8093AF086093B40855 |
:105D20003093B0089093B1081092B2088093B308F2 |
:105D300082E38093B5082093B6088093B708109249 |
:105D4000DB082093B80880E58093B9088CE3809342 |
:105D5000BA0885E58093BB088093BC084093BD08D2 |
:105D60004093BE089BE49093BF088FE58093C408DE |
:105D700083EF8093C6088AEA8093C8088093C90895 |
:105D800084E18093C5088093C7088CEF8093CA088C |
:105D90003093CB082093CC082093CD082093CE08D5 |
:105DA0009093CF089093D0089093D1081092D20886 |
:105DB0006093D308E093D4082093D5085093D60875 |
:105DC0003093D7083093D80884E08093D9088CE0CA |
:105DD000A5EBB3E0EEEDF8E00D9001928A95E1F7C6 |
:105DE00008958AE680938D0871E07093DD084EE196 |
:105DF00040938E088BEF809390088AE080939108FF |
:105E000040938F084093930885E08093940880E442 |
:105E100080939508109296088FE08093920868E02E |
:105E20006093970820E12093980856E050939908D2 |
:105E300060939A0886EE80939B0840939C0880E8C4 |
:105E400080939D0834E630939E0898E790939F08CE |
:105E500083E08093A0083093A1089093A20881E288 |
:105E60008093A30883E28093A40884E18093A5082B |
:105E70001092A6082093A7081092A8081092A908CB |
:105E80001092AA081092AB081092C0081092C10894 |
:105E90001092C2081092C3083093AC0898E2909315 |
:105EA000AD087093DC081092AE088AEF8093AF08BB |
:105EB0005093B4083093B0089093B1081092B20890 |
:105EC0008093B30892E39093B5082AE52093B6082F |
:105ED0009093B7081092DB082093B80880E5809370 |
:105EE000B90886E48093BA0885E58093BB0880935F |
:105EF000BC0880E28093BD088093BE089093BF08E1 |
:105F00008FE58093C40883EF8093C6088AEA809364 |
:105F1000C8088093C9084093C5084093C7088CEF10 |
:105F20008093CA083093CB082093CC082093CD08E7 |
:105F30002093CE088BE48093CF088093D008809381 |
:105F4000D1081092D2085093D3086093D4082093BC |
:105F5000D5084093D6083093D7083093D80884E00A |
:105F60008093D9088CE0ADEBB3E0EEEDF8E00D9056 |
:105F700001928A95E1F708956817790744F4680F4C |
:105F8000791F77FD09C0CB01959587950895681B0A |
:105F9000790B861B970B08956F5F7F4FCB0195950B |
:105FA00087950895EF92FF920F931F93CF93C82F79 |
:105FB0008B01809178048823A9F4C150CF3F91F0E0 |
:105FC0007B01E60EF71E1093FC030093FB03809108 |
:105FD000FB039091FC03892BD1F7C7010E940518A0 |
:105FE000C15088F7CF911F910F91FF90EF900895C6 |
:105FF0002F923F924F925F926F927F928F929F92D9 |
:10600000AF92BF92CF92DF92EF92FF920F931F93C6 |
:10601000CF93DF93CDB7DEB7ED970FB6F894DEBF21 |
:106020000FBECDBF2091E1043091E20480911E04A7 |
:1060300090911F04281B390B3A872987309349090F |
:1060400020934809209128043091290437FDD4C7B2 |
:106050003595279535952795359527953AA729A7FD |
:106060003C872B877901209126043091270437FD46 |
:10607000C0C73595279535952795359527953CA724 |
:106080002BA73E872D87F0920909E09208093093EB |
:10609000FF082093FE088091370990913809AA27BC |
:1060A00097FDA095BA2F7C018D01EE0CFF1C001FFF |
:1060B000111FE80EF91E0A1F1B1F80911A049091F0 |
:1060C0001B049C01442737FD4095542FDA01C90178 |
:1060D000880F991FAA1FBB1F880F991FAA1FBB1FDC |
:1060E000820F931FA41FB51F820F931FA41FB51FFC |
:1060F000E80EF91E0A1F1B1F17FD9CC71595079573 |
:10610000F794E79415950795F794E794F09238097A |
:10611000E09237098091530990915409AA2797FD7D |
:10612000A095BA2F7C018D01EE0CFF1C001F111FE2 |
:10613000E80EF91E0A1F1B1F80911C0490911D047C |
:106140009C01442737FD4095542FDA01C901880F7F |
:10615000991FAA1FBB1F880F991FAA1FBB1F820F61 |
:10616000931FA41FB51F820F931FA41FB51FE80E16 |
:10617000F91E0A1F1B1F17FD54C715950795F794A5 |
:10618000E79415950795F794E794F0925409E092F7 |
:1061900053098091060990910709AA2797FDA095B8 |
:1061A000BA2F9C01AD01220F331F441F551F280F2A |
:1061B000391F4A1F5B1F8091180490911904AA2768 |
:1061C00097FDA095BA2F280F391F4A1F5B1F57FD57 |
:1061D00016C7559547953795279555954795379502 |
:1061E0002795309307092093060920911A043091CE |
:1061F0001B04C901880F991F880F991F820F931FD5 |
:10620000820F931FAA2797FDA095BA2F2091BD0456 |
:106210003091BE044091BF045091C004820F931F7F |
:10622000A41FB51F8093BD049093BE04A093BF0428 |
:10623000B093C00420911C0430911D04C901880F43 |
:10624000991F880F991F820F931F820F931FAA27F0 |
:1062500097FDA095BA2F2091B9043091BA044091CE |
:10626000BB045091BC04820F931FA41FB51F8093E1 |
:10627000B9049093BA04A093BB04B093BC0480917A |
:1062800011099091120920911A0430911B04820F78 |
:10629000931F909312098093110980914B0990915B |
:1062A0004C0920911C0430911D04820F931F909380 |
:1062B0004C0980934B098091D7049091D8040196A2 |
:1062C0009093D8048093D7048091B5049091B6043C |
:1062D000A091B704B091B804BC01CD010E945169EE |
:1062E0005B016C0180910D0890910E08AA2797FD23 |
:1062F000A095BA2FBC01CD010E9451697B018C0190 |
:106300008091D3049091D404A091D504B091D60487 |
:106310009C01AD01C801B7010E94F168DC01CB010D |
:106320009C01AD01C601B5010E94F268DC01CB0100 |
:10633000BC01CD010E943469DC01CB018093B5041E |
:106340009093B604A093B704B093B8048FEC8093F5 |
:106350007A00109219032090A5043090A604409072 |
:10636000A7045090A80439E423163BE6330631E035 |
:10637000430630E053060CF414C188E49BE6A1E028 |
:10638000B0E08D839E83AF83B8876090AD0470903A |
:10639000AE048090AF049090B00439E463163BE6FD |
:1063A000730631E0830630E093060CF4DCC488E425 |
:1063B0009BE6A1E0B0E089839A83AB83BC834985E7 |
:1063C0005A85CA01AA2797FDA095BA2F20919D044E |
:1063D00030919E0440919F045091A004280F391FD2 |
:1063E0004A1F5B1F2DA33EA34FA358A7A0904F09A0 |
:1063F000B0905009C0905109D0905209A80EB91E12 |
:10640000CA1EDB1E8601750130916B043BA333234A |
:1064100009F0DAC080916A04882309F0C2C440916F |
:106420008D084CA346FF13C6EBA5FCA5CF01AA27F8 |
:1064300097FDA095BA2FBC01CD0129813A814B81EE |
:106440005C810E94CB699B01AC0197FD2CC7BBE02E |
:106450005595479537952795BA95D1F780918E0335 |
:10646000E82EFF2400271127C801B7010E94CB693D |
:1064700097FD14C7ACE09595879577956795AA9594 |
:10648000D1F76F87788B898B9A8B6093F104709327 |
:10649000F2048093F3049093F40429A53AA5C9016A |
:1064A000AA2797FDA095BA2FBC01CD012D813E8171 |
:1064B0004F8158850E94CB699B01AC0197FD01C7B4 |
:1064C000FBE05595479537952795FA95D1F7C80183 |
:1064D000B7010E94CB6997FDEFC6DC01CB01ECE070 |
:1064E000B595A79597958795EA95D1F78093F5048B |
:1064F0009093F604A093F704B093F8042091F1046C |
:106500003091F2043093800820937F082091F504A5 |
:106510003091F60430938408209383082F853889BE |
:1065200049895A89821B930BA40BB50B8AAF9BAF89 |
:10653000ACAFBDAF8093F5049093F604A093F7043D |
:10654000B093F804A80EB91ECA1EDB1E86017501A1 |
:1065500030918D033DA7332309F0A3C58EA79FA7D4 |
:10656000A8ABB9ABB7FD61C62EA53FA548A959A9EF |
:1065700055954795379527958DA19EA1AFA1B8A5B3 |
:10658000821B930BA40BB50B8DA39EA3AFA3B8A73F |
:1065900080939D0490939E04A0939F04B093A004C5 |
:1065A0008CC598EB291694E939069EEF49069FEFB2 |
:1065B00059060CF0F1C328EB34E94EEF5FEF2D8361 |
:1065C0003E834F835887E1CE2DA13EA14FA158A510 |
:1065D00020939D0430939E0440939F045093A00405 |
:1065E00030918D083CA31092840810928308109279 |
:1065F000800810927F081092ED041092EE04109221 |
:10660000EF041092F0041092E9041092EA04109240 |
:10661000EB041092EC0430918D033DA78091ED04C2 |
:106620009091EE04A091EF04B091F004BC01CD0173 |
:1066300024E630E040E050E00E943F6ADA01C90100 |
:106640004091E9045091EA04481B590B58A34F8F1D |
:106650008091E9049091EA04A091EB04B091EC04DC |
:10666000BC01CD0124E630E040E050E00E943F6AEA |
:10667000DA01C9012091ED043091EE04821B930BE5 |
:106680009AA389A38091860390918703A0918803A0 |
:10669000B0918903BC01CD0128E631E040E050E033 |
:1066A0000E94CB69E616F7060807190744F0570160 |
:1066B0006801A61AB70AC80AD90A8601750117FD2A |
:1066C000A3C4A0924F09B0925009C0925109D09230 |
:1066D00052092BA53CA58F8D98A1280F391F790150 |
:1066E0000027F7FC0095102F8091A1049091A2043F |
:1066F000A091A304B091A404E80EF91E0A1F1B1F69 |
:106700005701680180916E0490916F04281B390B2A |
:10671000C901AA2797FDA095BA2F280E391E4A1E37 |
:106720005B1E2091A2033091A3034091A4035091DA |
:10673000A503221533054405550574F4A8EAEA2E8D |
:10674000A1E6FA2E012D112DE21AF30A040B150B06 |
:10675000170128015701680188279927DC01821B4E |
:10676000930BA40BB50B281639064A065B060CF0F2 |
:10677000E9C2F8E52F2EFEE93F2EFFEF4F2EFFEF87 |
:106780005F2E220E331E441E551E2092A504309209 |
:10679000A6044092A7045092A8048201710120929D |
:1067A000A1043092A2044092A3045092A40429A50B |
:1067B0003AA5A9A1BAA12A0F3B1FA901662757FD37 |
:1067C0006095762F8091A9049091AA04A091AB04C2 |
:1067D000B091AC04480F591F6A1F7B1F5A016B010F |
:1067E00080916C0490916D04281B390BC901AA2774 |
:1067F00097FDA095BA2F680E791E8A1E9B1E809168 |
:10680000A6039091A703A091A803B091A9038EAB12 |
:106810009FABA8AFB9AF86159705A805B90564F475 |
:1068200048EA51E660E070E0481B590B6A0B7B0BAD |
:106830003A014B015A016B018EA99FA9A8ADB9ADD0 |
:10684000B095A095909581959F4FAF4FBF4F68161B |
:1068500079068A069B060CF064C2E8E56E2EEEE926 |
:106860007E2EEFEF8E2EEFEF9E2E2EA93FA948AD84 |
:1068700059AD620E731E841E951E6092AD04709217 |
:10688000AE048092AF049092B004B401A301609270 |
:10689000A9047092AA048092AB049092AC048DA1DA |
:1068A0009EA1AFA1B8A58093B1049093B204A09328 |
:1068B000B304B093B4046092CD047092CE0480927D |
:1068C000CF049092D0042092C5043092C604409226 |
:1068D000C7045092C8044093C9045093CA046093FB |
:1068E000CB047093CC04E092C104F092C2040093F4 |
:1068F000C3041093C404809125039091260397FD4F |
:10690000A4C37C01F594E794F594E794F594E79497 |
:10691000FAA6E9A6809123039091240397FD93C3DF |
:106920008C011595079515950795159507951CA745 |
:106930000BA780912204909123040F9734F458E11F |
:10694000E52E5CEFF52EFAA6E9A68091220490913F |
:106950002304079734F440E3E42E48EFF42EFAA61C |
:10696000E9A6209102012A3009F46BC28091220429 |
:1069700090912304815D97400CF007C2809122041E |
:1069800090912304805E974034F080EDE82E87E0FC |
:10699000F82EFAA6E9A680912004909121040F9781 |
:1069A00024F408E11CEF1CA70BA780912004909110 |
:1069B0002104079724F400E318EF1CA70BA72A3043 |
:1069C00009F455C28091200490912104815D974083 |
:1069D00024F008EE13E01CA70BA7809120049091EF |
:1069E0002104805E974024F000ED17E01CA70BA760 |
:1069F000A0919903AA2309F497C06091250370918F |
:106A000026038091F9049091FA04681B790B209178 |
:106A1000250330912603280F391F37FD3FC33595D5 |
:106A200027953093FA042093F904613871050CF42A |
:106A30003AC260E870E0709300056093FF048A2F0B |
:106A40009927869FF001879FF00D969FF00D1124E6 |
:106A5000CF01F7FD21C37C01F594E794F594E79409 |
:106A6000F594E794F594E79429A53AA5E20EF31E70 |
:106A7000FAA6E9A640912303509124038091FB04D8 |
:106A80009091FC04481B590B20912303309124035F |
:106A9000280F391F37FDFDC2359527953093FC042B |
:106AA0002093FB04413851050CF4F5C140E850E057 |
:106AB0005093FE044093FD048A2F9927849FD001B0 |
:106AC000859FB00D949FB00D1124AD019D01B7FDC0 |
:106AD000DDC28901159507951595079515950795BB |
:106AE00015950795EBA5FCA50E0F1F1F1CA70BA75F |
:106AF000869F9001879F300D969F300D1124C9010C |
:106B00002091250330912603820F931F9093260333 |
:106B1000809325038091230390912403480F591FEC |
:106B200050932403409323034D855E851416150668 |
:106B30000CF0C1C180917F089091800897FDA2C29E |
:106B4000AA2797FDA095BA2F6DA5262F3327442796 |
:106B50005527BC01CD010E94CB6997FD8EC2E6E0AE |
:106B60009595879577956795EA95D1F7AF8DB8A1FB |
:106B7000A60FB71FB093FA08A093F9084B855C8560 |
:106B8000141615060CF0C1C18091830890918408F9 |
:106B900097FD6FC2AA2797FDA095BA2F6DA5262F46 |
:106BA000332744275527BC01CD010E94CB6997FDAF |
:106BB0005BC246E095958795779567954A95D1F79D |
:106BC000A9A1BAA1A60FB71FB093EF08A093EE0832 |
:106BD0003CA137FDC1C11093ED080093EC08F09281 |
:106BE000FC08E092FB0880918908E82FFF27EE0F50 |
:106BF000FF1FED5AF74F8081918182599F4FA091DD |
:106C00008904B0918A04A817B9070CF0EEC0CD0131 |
:106C1000019690938A0480938904DC0180918A080C |
:106C2000E82FFF27EE0FFF1FED5AF74F808191816C |
:106C300082599F4F60918704709188046817790783 |
:106C40000CF0C4C0CB010196909388048093870414 |
:106C5000BC0180918B08E82FFF27EE0FFF1FED5A34 |
:106C6000F74F8081918182599F4F409185045091C7 |
:106C70008604481759070CF0D5C0CA0101969093B5 |
:106C8000860480938504AC0180918C08E82FFF274F |
:106C9000EE0FFF1FED5AF74F8081918182599F4F70 |
:106CA0002091830430918404281739070CF0ABC07D |
:106CB000C901019690938404809383049C01B7FDDD |
:106CC00093C1AF3FB10539F034F08FEF90E090936E |
:106CD0008A048093890477FD76C16F3F710539F08E |
:106CE00034F08FEF90E0909388048093870457FDF1 |
:106CF00070C14F3F510539F034F08FEF90E0909321 |
:106D000086048093850437FD6AC12F3F310509F061 |
:106D10000CF4EEC28FEF90E0909384048093830490 |
:106D2000E7C26092AD047092AE048092AF0490927C |
:106D3000B004A092A904B092AA04C092AB04D0926D |
:106D4000AC04ADCD2092A5043092A6044092A704D5 |
:106D50005092A804A092A104B092A204C092A304ED |
:106D6000D092A40424CD98EB691694E979069EEF9D |
:106D700089069FEF99062CF528EB34E94EEF5FEF7B |
:106D800029833A834B835C831ACB98EEE92E93E0F8 |
:106D9000F92EFAA6E9A6F2CD2D823E824F825886C0 |
:106DA000F4CA8DA19EA1AFA1B8A580939D04909334 |
:106DB0009E04A0939F04B093A00490918D089CA37F |
:106DC00012CC69827A828B829C82F9CA80819181FD |
:106DD00082599F4F861797070CF03BCF61157105BD |
:106DE00009F437CFCB0101972FCF80819181825950 |
:106DF0009F4F8A179B070CF011CF109709F40ECF05 |
:106E0000CD01019706CF8081918182599F4F8217D2 |
:106E100093070CF054CF2115310509F450CFC90167 |
:106E2000019748CF8081918182599F4F84179507A0 |
:106E30000CF02ACF4115510509F426CFCA0101975C |
:106E40001ECF8091220490912304835F934034F0FD |
:106E500038EEE32E33E0F32EFAA6E9A68091220461 |
:106E6000909123048A5F93400CF495CD8ECD809150 |
:106E7000200490912104835F934024F008EE13E0F6 |
:106E80001CA70BA780912004909121048A5F934056 |
:106E90000CF4AECDA9CD3FEF403853070CF008CE2F |
:106EA00040E85FEF05CE8FEF603878070CF0C3CD78 |
:106EB00060E87FEFC0CD80917F089091800897FDBA |
:106EC0009BC1AA2797FDA095BA2FEDA52E2F33279A |
:106ED00044275527BC01CD010E94CB6997FDADC168 |
:106EE00056E095958795779567955A95D1F72F8DAB |
:106EF00038A1261B370B3093FA082093F9084B85ED |
:106F00005C85141615060CF43FCE80918308909191 |
:106F1000840897FD6DC1AA2797FDA095BA2FEDA50E |
:106F20002E2F332744275527BC01CD010E94CB6962 |
:106F300097FD88C136E095958795779567953A9541 |
:106F4000D1F729A13AA1261B370B3093EF082093E4 |
:106F5000EE083CA137FF3FCE4BA1442309F03BCEC6 |
:106F600080916A04882309F036CE8B859C85A1E048 |
:106F700081309A070CF044C12B853C854FEF2030BF |
:106F800034070CF0A3C189A59AA5280F391F3C87A7 |
:106F90002B8720503F4F3093FC082093FB08AD8592 |
:106FA000BE85E1E0A130BE070CF465C12BA53CA570 |
:106FB000A20FB31FBE87AD87A050B140B093ED08BC |
:106FC000A093EC0810CE109288041092870457FF0B |
:106FD00090CE109286041092850437FF96CE1092C0 |
:106FE00084041092830484C110928A04109289044C |
:106FF00072CE295F3F4F3DC8295F3F4F29C82D5FA3 |
:107000003F4F4F4F5F4FE5C8E60EF71E081F191F91 |
:10701000E0924F09F09250090093510910935209E0 |
:1070200058CB23E030E040E050E0E20EF31E041FB6 |
:10703000151FA3C883E090E0A0E0B0E0E80EF91EC1 |
:107040000A1F1B1F5BC807966BCC07965ACC2DA155 |
:107050003EA14FA158A520939D0430939E044093D8 |
:107060009F045093A004BFCA615C7F4F8F4F9F4F16 |
:10707000A0CD909581959F4F8DCD615C7F4F8F4FB7 |
:107080009F4F6DCD909581959F4F5ACD215F3F4F7A |
:1070900020CD2F5F3F4F00CD0F96DDCC2F5F3F4FB0 |
:1070A000BECC2DA13EA14FA158A520939D043093A5 |
:1070B0009E0440939F045093A00489859A85AA2733 |
:1070C00097FDA095BA2F2AAD3BAD4CAD5DAD820FBB |
:1070D000931FA41FB51F8B8B9C8BAD8BBE8BBC01EC |
:1070E000CD0129813A814B815C810E94CB699B0152 |
:1070F000AC0197FDBBC06BE055954795379527953B |
:107100006A95D1F760918F03862F9927AA27BB270D |
:107110008F8B988FA98FBA8FBC01CD010E94CB694C |
:1071200097FD9FC02CE095958795779567952A9553 |
:10713000D1F76B8F7C8F8D8F9E8F6093E904709356 |
:10714000EA048093EB049093EC046B897C898D892D |
:107150009E892D813E814F8158850E94CB699B017C |
:10716000AC0197FD79C08BE05595479537952795EC |
:107170008A95D1F76F89788D898D9A8D0E94CB6918 |
:1071800097FD65C0BCE09595879577956795BA950D |
:10719000D1F76AAB7BAB8CAB9DAB6093ED04709386 |
:1071A000EE048093EF049093F00429853A8537FD2F |
:1071B0007FC0213431050CF431CA6B8D7C8D8D8DEF |
:1071C0009E8D97FD2AC0613871058105910564F493 |
:1071D0006AA97BA98CA99DA997FD82C06138710518 |
:1071E000810591050CF41ACA81E080938D0416CABA |
:1071F000909581959F4F8FCE909581959F4F61CEB1 |
:10720000E9A5FAA58E0F9F1F9C878B878050914020 |
:107210009093FC088093FB08C2CE90958095709562 |
:1072200061957F4F8F4F9F4FCECF0196A11DB11D0E |
:107230008EA79FA7A8ABB9AB97C9615C7F4F8F4F53 |
:107240009F4F4ECE615C7F4F8F4F9F4F73CE6150EB |
:10725000704F8F4F9F4F96CF2150384F4F4F5F4FFA |
:1072600082CF6150704F8F4F9F4F5CCF2150384F6E |
:107270004F4F5F4F40CF4D855E856FEF40305607D3 |
:1072800054F58BA59CA5480F591F5E874D8740502C |
:107290005F4F5093ED084093EC08A5CC6150704FC0 |
:1072A0008F4F9F4FE7C82150384F4F4F5F4FCFC888 |
:1072B000309521953F4F7DCF6150704F8F4F9F4F3D |
:1072C0000CC92150384F4F4F5F4FFAC8F092FC085D |
:1072D000E092FB0864CE1093ED080093EC0883CC99 |
:1072E00090958095709561957F4F8F4F9F4F76CF8A |
:1072F000ED960FB6F894DEBF0FBECDBFDF91CF91F4 |
:107300001F910F91FF90EF90DF90CF90BF90AF90C3 |
:107310009F908F907F906F905F904F903F902F90B5 |
:107320000895809102018D3009F455C110927A00C0 |
:1073300080912204909123049093FC088093FB0891 |
:1073400080912004909121049093ED088093EC08A3 |
:1073500080911E0490911F049093490980934809DD |
:1073600080911A0490911B049C01442737FD40959D |
:10737000542FDA01C901880F991FAA1FBB1F880F5C |
:10738000991FAA1FBB1F820F931FA41FB51F820F37 |
:10739000931FA41FB51F90933809809337098091DC |
:1073A0001C0490911D049C01442737FD4095542FE7 |
:1073B000DA01C901880F991FAA1FBB1F880F991FE7 |
:1073C000AA1FBB1F820F931FA41FB51F820F931FFD |
:1073D000A41FB51F909354098093530980911804FA |
:1073E0009091190490930709809306098FEC80937C |
:1073F0007A0080918908E82FFF27EE0FFF1FED5AD2 |
:10740000F74F8081918182599F4FA0918904B0915B |
:107410008A04A817B9070CF085C0CD010196909396 |
:107420008A0480938904DC0180918A08E82FFF2771 |
:10743000EE0FFF1FED5AF74F8081918182599F4FC8 |
:107440006091870470918804681779070CF096C0E2 |
:10745000CB0101969093880480938704BC018091AE |
:107460008B08E82FFF27EE0FFF1FED5AF74F8081A3 |
:10747000918182599F4F409185045091860448170D |
:1074800059070CF06CC0CA01019690938604809352 |
:107490008504AC0180918C08E82FFF27EE0FFF1FB9 |
:1074A000ED5AF74F8081918182599F4F209183043B |
:1074B00030918404281739070CF042C0C9010196A5 |
:1074C00090938404809383049C01B7FD7FC0AF3FF9 |
:1074D000B10511F00CF061C077FD67C06F3F710519 |
:1074E00039F034F08FEF90E0909388048093870414 |
:1074F00057FD61C04F3F510539F034F08FEF90E0F8 |
:10750000909386048093850437FD5BC02F3F31053F |
:1075100009F00CF463C08FEF90E0909384048093A3 |
:1075200083045CC08081918182599F4F8A179B0799 |
:107530000CF07ACF109709F477CFCD0101976FCF78 |
:107540008081918182599F4F821793070CF0BDCFA4 |
:107550002115310509F4B9CFC9010197B1CF808157 |
:10756000918182599F4F841795070CF093CF411555 |
:10757000510509F48FCFCA01019787CF808191818E |
:1075800082599F4F861797070CF069CF61157105D7 |
:1075900009F465CFCB0101975DCF8FEF90E0909319 |
:1075A0008A048093890477FF99CF109288041092FF |
:1075B000870457FF9FCF109286041092850437FFEF |
:1075C000A5CF109284041092830408C010928A04FC |
:1075D0001092890481CF0E94AC1CA8CE8091BB0878 |
:1075E0009927AA27BB27BC01CD0124EC39E040E054 |
:1075F00050E00E94CB69DC01CB018093A6039093FD |
:10760000A703A093A803B093A9038091BC0899276E |
:10761000AA27BB27BC01CD010E94CB69DC01CB01AD |
:107620008093A2039093A303A093A403B093A50314 |
:1076300008956F927F928F929F92AF92BF92CF9256 |
:10764000DF92EF92FF920F931F93CF9300E010E031 |
:1076500078016801469A1093DC040093DB041093D0 |
:10766000DA040093D90480E090E0A0E0B0E08093D9 |
:10767000D3049093D404A093D504B093D60410936C |
:10768000E6040093E5041093E4040093E3041093EC |
:10769000E2040093E1041093190900931809109271 |
:1076A0008F0310928E03109212040E94913984E687 |
:1076B00090E00E9412180E94913980918D0880FFFD |
:1076C00010C080911D0390911E03875B934008F0CA |
:1076D000FBC180911D0390911E038E5E924008F4C1 |
:1076E000F3C1CFE18AE090E00E94121880911E045D |
:1076F00090911F04080F191F809122049091230478 |
:10770000E80EF91E8091200490912104C80ED91E24 |
:10771000C150C7FFE7CFA701405F5F4F5695479520 |
:10772000569547955093E6044093E5049601205FF3 |
:107730003F4F36952795369527953093E40420934F |
:10774000E304C801409696958795929582958F702F |
:1077500089279F7089279093E2048093E104909396 |
:107760001909809318093093E0042093DF045093A3 |
:10777000DE044093DD0444E050E0DA010E945A6ADE |
:10778000802D853008F4A3C180915309909154094C |
:1077900097FDD2C16CE070E00E940A6A7093DA042F |
:1077A0006093D904809137099091380997FDD5C12C |
:1077B0006CE070E00E940A6A7093DC046093DB0462 |
:1077C00080910D0890910E08AA2797FDA095BA2FD9 |
:1077D000BC01CD010E945169DC01CB018093D3042F |
:1077E0009093D404A093D504B093D6041092FC08CF |
:1077F0001092FB081092ED081092EC0810924909C3 |
:107800001092480984E690E00E94121880911A04B0 |
:1078100090911B04AA2797FDA095BA2F9C01AD015A |
:10782000220F331F441F551F220F331F441F551FA4 |
:10783000280F391F4A1F5B1F280F391F4A1F5B1F64 |
:10784000309338092093370980911C0490911D04CE |
:10785000AA2797FDA095BA2F7C018D01EE0CFF1C85 |
:10786000001F111FEE0CFF1C001F111FE80EF91E58 |
:107870000A1F1B1FE80EF91E0A1F1B1FF092540956 |
:10788000E092530980919C08682E772488249924DB |
:10789000C9019C01442737FD4095542FC401B30111 |
:1078A0000E94CB695B016C016093CD047093CE04A0 |
:1078B0008093CF049093D0049701442737FD4095DF |
:1078C000542FC401B3010E94CB69DC01CB0180932A |
:1078D000C5049093C604A093C704B093C804A092B3 |
:1078E000A904B092AA04C092AB04D092AC048093D5 |
:1078F000A1049093A204A093A304B093A4041092B3 |
:107900009D0410929E0410929F041092A0048091F6 |
:107910001F0390912003A0912103B0912203909323 |
:10792000100880930F081092110410921004109206 |
:1079300095041092960410929704109298048091E6 |
:1079400093049091940490939204809391040E94E4 |
:10795000206082E390E09093FC038093FB0380918E |
:10796000BB089927AA27BB27BC01CD0124EC39E02D |
:1079700040E050E00E94CB69DC01CB018856954C79 |
:10798000AF4FBF4F8093A6039093A703A093A80384 |
:10799000B093A9038091BC089927AA27BB27BC01F3 |
:1079A000CD010E94CB69DC01CB018856954CAF4FCD |
:1079B000BF4F8093A2039093A303A093A403B0931B |
:1079C000A50310928B0310928A03809193049091E7 |
:1079D0009404AA2797FDA095BA2F20918603309191 |
:1079E00087034091880350918903BC01CD010E9417 |
:1079F000CB69DC01CB0180934F0990935009A09390 |
:107A00005109B093520910928C0410928B0481E0BA |
:107A1000809301010E9415648091510484608093D9 |
:107A200051048FEF8093B8091092B90980E28093D6 |
:107A3000BA0980918908E82FFF27EE0FFF1FED5A42 |
:107A4000F74F8081918182599F4F90938A04809350 |
:107A5000890480918A08E82FFF27EE0FFF1FED5A57 |
:107A6000F74F8081918182599F4F90938804809332 |
:107A7000870480918B08E82FFF27EE0FFF1FED5A38 |
:107A8000F74F8081918182599F4F90938604809314 |
:107A9000850480918C08E82FFF27EE0FFF1FED5A19 |
:107AA000F74F8081918182599F4F909384048093F6 |
:107AB000830484E6809382048091F903882309F487 |
:107AC00050C0469A579A4DC00E945A1C0ACEDA01FD |
:107AD0000E945A6A802D9927982F8827DA011196DB |
:107AE0000E945A6A202D820F911D9093DC0480938E |
:107AF000DB04DA0112960E945A6A802D9927982F8A |
:107B00008827DA0113960E945A6A202D820F911D50 |
:107B10009093DA048093D904DA0114960E945A6A89 |
:107B2000802D9927982F8827DA0115960E945A6A86 |
:107B3000202D820F911D48CE909581959F4F6CE02E |
:107B400070E00E940A6A7093DA046093D90480910D |
:107B500037099091380997FF2BCE909581959F4FCB |
:107B600027CECF911F910F91FF90EF90DF90CF9094 |
:107B7000BF90AF909F908F907F906F90089590915D |
:107B80007804992381F5809151048C7F809351046E |
:107B900010C0A92FBB27FD01E45FF84F8083FD01D2 |
:107BA000E45FF84F8081A65CB64F8C939F5F9C305A |
:107BB00080F48091DC03882361F3A92FBB27FD01AA |
:107BC000E45FF84F8081A65CB64F8C939F5F9C303A |
:107BD00080F38091DC03882359F08091DC0381508D |
:107BE0008093DC0305C0809151048160809351042F |
:107BF00080913A0999279093E2078093E107809159 |
:107C00003B0999279093E4078093E30780913D090E |
:107C100099279093E6078093E50780913C0999277F |
:107C20009093E8078093E707109249041092480464 |
:107C30000E94D62A0895809190088B3F68F08B3F70 |
:107C400009F4D5C28C3F09F474C38D3F09F4F6C220 |
:107C50008E3F21F48091830480939E0380918F084E |
:107C60008B3F08F439C28B3F09F434C28C3F09F4CE |
:107C700048C38D3F09F4D9C28E3F09F478C380917F |
:107C80009F03882309F02DC280939F038091910860 |
:107C90008B3F08F42DC28B3F09F428C28C3F09F4B6 |
:107CA00042C38D3F09F4C4C28E3F09F45AC3809188 |
:107CB0009D03882309F021C280939D03809193083E |
:107CC0008B3F68F08B3F09F495C28C3F09F42EC3BB |
:107CD0008D3F09F4B0C28E3F21F4809183048093DC |
:107CE0009C03809195088B3F68F08B3F09F479C223 |
:107CF0008C3F09F4E2C28D3F09F4BEC28E3F21F4ED |
:107D00008091830480939A0380919D088B3F68F053 |
:107D10008B3F09F469C28C3F09F4FCC28D3F09F422 |
:107D200090C28E3F21F48091830480939B038091C5 |
:107D30009E088B3F08F4E8C18B3F09F4E3C18C3FF8 |
:107D400009F4EEC28D3F09F494C28E3F09F412C3C8 |
:107D5000809198038B3008F4DCC18F3F11F480933D |
:107D6000980380919F088B3F68F08B3F09F427C2EE |
:107D70008C3F09F4D2C28D3F09F466C28E3F21F4D4 |
:107D800080918304809397038091A0088B3F68F0D3 |
:107D90008B3F09F417C28C3F09F489C28D3F09F467 |
:107DA0006EC28E3F21F48091830480939903809169 |
:107DB000A1088B3F68F08B3F09F407C28C3F09F4A0 |
:107DC00079C28D3F09F452C28E3F21F48091830421 |
:107DD000809396038091A2088B3F68F08B3F09F453 |
:107DE000F7C18C3F09F4ABC28D3F09F43CC28E3F12 |
:107DF00021F480918304809395032091A7082B3F61 |
:107E000008F48BC12B3F09F486C12C3F09F47CC2D6 |
:107E10002D3F09F404C22E3F09F4A6C2209193031A |
:107E20008091A8088B3F08F07FC180936504809102 |
:107E3000A9088B3F68F08B3F09F4D0C18C3F09F44F |
:107E400066C28D3F09F4EEC18E3F21F48091830418 |
:107E5000809364048091AA088B3F68F08B3F09F4FB |
:107E600084C18C3F09F471C28D3F09F4D2C18E3FA9 |
:107E700021F480918304809363048091AB088B3F4D |
:107E800068F08B3F09F474C18C3F09F461C28D3FE7 |
:107E900009F4C2C18E3F21F480918304809362046F |
:107EA0008091C0088B3F68F08B3F09F464C18C3F20 |
:107EB00009F454C28D3F09F4A3C18E3F21F480918F |
:107EC0008304809361048091C1088B3F68F08B3FED |
:107ED00009F454C18C3F09F42FC28D3F09F493C1BA |
:107EE0008E3F21F480918304809360048091C208C6 |
:107EF0008B3F68F08B3F09F444C18C3F09F4ECC11F |
:107F00008D3F09F4C5C18E3F21F480918304809395 |
:107F10005F048091C3088B3F68F08B3F09F434C144 |
:107F20008C3F09F4DCC18D3F09F4B5C18E3F21F4CB |
:107F30008091830480935E048091AC088B3F68F04D |
:107F40008B3F09F424C18C3F09F4CFC18D3F09F464 |
:107F500084C18E3F21F480918304809392038091A9 |
:107F6000B0088B3F68F08B3F09F414C18C3F09F4D3 |
:107F7000BFC18D3F09F474C18E3F21F48091830409 |
:107F8000809391038091B5088B3F68F08B3F09F493 |
:107F900004C18C3F09F4AFC18D3F09F458C18E3F35 |
:107FA00021F480918304809390038091B8088B3FE3 |
:107FB00068F08B3F09F4F4C08C3F09F49FC18D3FFA |
:107FC00009F448C18E3F21F48091830480938F038C |
:107FD0008091B9088B3F68F08B3F09F4E4C08C3F77 |
:107FE00009F46EC18D3F09F44DC18E3F21F480919B |
:107FF000830480938E038091BA088B3F68F08B3F97 |
:1080000009F4D4C08C3F09F464C18D3F09F43DC12B |
:108010008E3F21F48091830480938D038091BF086B |
:108020008B3F68F08B3F09F4C4C08C3F09F45AC100 |
:108030008D3F09F433C18E3F21F4809183048093F6 |
:108040008C038091C5088B3F08F47FC08B3F09F4F7 |
:108050007AC08C3F09F437C18D3F09F422C18E3FAD |
:1080600009F48BC180911309823008F473C08F3FEB |
:1080700011F4809313098091C7088B3F08F46EC0F8 |
:108080008B3F09F469C08C3F09F420C18D3F09F48E |
:108090000BC18E3F09F474C180914609823008F407 |
:1080A00062C08F3F11F4809346098091DA088B3FBC |
:1080B00070F08B3F09F480C08C3F09F44CC18D3FB8 |
:1080C00009F49BC08E3F09F05EC1809183048093C8 |
:1080D000560959C18091890480939F03882309F42C |
:1080E000D3CD843608F4D2CD84E6CECD80918904F8 |
:1080F00080939D03882309F4DFCD843608F4DECD18 |
:1081000084E6DACD80918904809398038B3008F05F |
:1081100024CE8AE024CE2091890420939303809179 |
:10812000A8088B3F08F481CE8B3F09F454C08C3FE4 |
:1081300009F408C18D3F09F469C08E3F09F077CE7C |
:108140008091830472CE80918904809313098230D8 |
:1081500008F08DCF81E08DCF80918904809346090E |
:10816000823008F09ECF81E09ECF8091890483CE3B |
:108170008091890493CE80918904A3CE8091890453 |
:10818000B3CE80918904C3CE80918904D3CE8091EF |
:108190008904E3CE80918904F3CE8091890403CFD2 |
:1081A0008091890413CF8091890423CF8091890421 |
:1081B00033CF8091890443CF8091890488CF809107 |
:1081C0008904E0CD80918904F0CD8091890400CEAE |
:1081D0008091890410CE8091890427CE80918904F2 |
:1081E00037CE809189048ECD809189049ECD809177 |
:1081F000890432CD8091890472CD8091850467CF46 |
:10820000809185045ECE809185046ECE8091850438 |
:108210000CCE809185042FCE809185043FCE209195 |
:1082200085047BCF8091850413CE8091850454CF43 |
:10823000809185045DCF8091850451CD8091850426 |
:108240000BCD8091850471CD809185049BCD80916B |
:108250008504A9CE80918504B9CE809185047DCE18 |
:10826000809185048DCE80918504C5CD8091850453 |
:10827000AFCD8091850448CF8091850443CD809116 |
:10828000850493CD80918504B4CE80918504C4CEBD |
:10829000809185043CCE809185044CCE80918504EC |
:1082A000CECE8091850451CF8091850457CF8091A7 |
:1082B00087047BCD809187048BCD8091870422CD6C |
:1082C0008091870496CE809187043FCF8091870468 |
:1082D00045CF80918704A0CE8091870418CE8091ED |
:1082E000870428CE80918704AACE8091870435CE5A |
:1082F0008091870445CE8091870455CE8091870474 |
:1083000065CE80918704E8CE2091870406CF8091C6 |
:1083100087049ECD8091870408CD8091870432CD5B |
:1083200080918704F1CE80918704E2CE809187040A |
:10833000D6CC8091870490CC80918704D5CD809154 |
:10834000870459CD8091870470CD8091870493CDA7 |
:1083500080918704A3CD80918704B9CE8091870452 |
:10836000B0CD80918304C4CE20918304D6CE809179 |
:108370008304B2CE80918304C7CE80918304E5CE7E |
:1083800080918304EBCE33272F5F3F4F8CE398E23D |
:10839000B9010E940A6A7093A1036093A0038091BF |
:1083A0009B088093470980919A088093000908955B |
:1083B0002F923F924F925F926F927F928F929F92F5 |
:1083C000AF92BF92CF92DF92EF92FF920F931F93E3 |
:1083D000CF93DF93CDB7DEB7ED970FB6F894DEBF3E |
:1083E0000FBECDBF80915004815009F485E0809389 |
:1083F00050040E94F82F209102012C3008F0BAC2DC |
:10840000299AA0907904B0907A04BA82A9828091C6 |
:10841000000999270A96A816B90614F49A83898345 |
:1084200080918204843608F0A7C280911D05909146 |
:108430001E05009709F081C41092780480915104C0 |
:108440008F7E809351042A3009F47FC4243109F4CB |
:108450007CC428988091520490915304895E934083 |
:1084600008F47CC48091A408282F33273A832983F9 |
:108470008091510480618093510480918508A82FD8 |
:10848000BB27AA0FBB1FFD01E759F74F11821082CE |
:1084900080918608282F3327220F331FC90187595F |
:1084A000974FFC0111821082AD5AB74F11961C9262 |
:1084B0001E922D5A374FD90111961C921E9280910F |
:1084C0008808E82FFF27EE0FFF1FED5AF74F1182A4 |
:1084D000108280918403815080938403809184036F |
:1084E0008F3F21F08091510484FF3BC40E941B3ECA |
:1084F00080912C0590912D05AC01440F551F480F1C |
:10850000591F00918508A02FBB27AA0FBB1FFD0193 |
:10851000ED5AF74FE0909708CE2CDD2480819181B1 |
:108520008C9D50018D9DB00C9C9DB00C11244A0D6A |
:108530005B1D57FF02C00C94CF5655954795559536 |
:108540004795A759B74F80919808682F77278D9145 |
:108550009C91869F9001879F300D969F300D11242E |
:10856000240F351F30932D0520932C058091630532 |
:108570009091640540915F0550916005840F951FAF |
:10858000281B390B3093800420937F0480912E05A3 |
:1085900090912F05AC01440F551F480F591F1091A2 |
:1085A0008608A12FBB27AA0FBB1FFD01ED5AF74F6D |
:1085B000808191818C9D90018D9D300D9C9D300D11 |
:1085C0001124420F531F57FF02C00C94CB565595F0 |
:1085D000479555954795A759B74F8D919C91869F83 |
:1085E0009001879F300D969F300D1124240F351F69 |
:1085F00030932F0520932E0580916105909162059F |
:1086000040915D0550915E05840F951F281B390B25 |
:1086100030937E0420937D0480918808E82FFF2703 |
:10862000EE0FFF1FED5AF74F808191819095819554 |
:108630009F4F8330910514F40C949D4D02979093B5 |
:108640007C0480937B0480918708E82FFF27EE0F3E |
:10865000FF1FED5AF74FC080D18048E750E0C40EAD |
:10866000D51E809198039927AA2797FDA095BA2F28 |
:10867000BC01CD010E945169DC01CB0120E030E05A |
:1086800040E251E4BC01CD010E94F268DC01CB0163 |
:10869000BC01CD010E943469DC01CB0180934D09FE |
:1086A000F0909703809196039927AA2797FDA095AC |
:1086B000BA2FBC01CD010E945169DC01CB0120E041 |
:1086C00030E040E251E4BC01CD010E94F268DC01DF |
:1086D000CB01BC01CD010E943469DC01CB01809348 |
:1086E000F3085091950350930A0980912E0780FF5B |
:1086F00006C080915609813810F00C94004ED0923B |
:108700007A04C09279048091790490917A0497FF59 |
:1087100002C00C94C556F0918D08FAA3F2FD02C078 |
:108720000C94E74D10921A0940917F0450918004F7 |
:10873000CA0157FF02C00C94F24D95958795959507 |
:10874000879597FF02C00C94FB4D20915604309101 |
:1087500057042817390714F00C94A54DCA0157FF88 |
:1087600002C00C94905A97FF02C00C94955ABC0119 |
:1087700075956795759567956536710514F40C9434 |
:10878000A84D64E670E040917D0450917E04CA01DA |
:1087900057FD02C00C94B14D03969595879595951C |
:1087A000879597FD02C00C94B94D909581959F4F88 |
:1087B00020915404309155042817390714F40C946F |
:1087C000C24D215030408091510484FD02C00C9470 |
:1087D000DD4D1092570410925604109255041092D9 |
:1087E0005404E12FFF27EE0FFF1FED5AF74F409182 |
:1087F000B608242F3327808191812817390734F454 |
:108800008091DB0882FF02C00C94744EE12FFF2799 |
:10881000EE0FFF1FED5AF74F842F99272091B708CD |
:10882000821B9109208131812817390714F4109295 |
:108830006904E12FFF27EE0FFF1FED5AF74F842F3A |
:10884000992722273327281B390B80819181821792 |
:10885000930734F48091DB0883FF02C00C946F4EC1 |
:1088600080916804882391F0E12FFF27EE0FFF1F0E |
:10887000ED5AF74F8091B7089927841B9109208101 |
:1088800031818217930714F40C94A04EE02FFF2738 |
:10889000EE0FFF1FED5AF74F242F33278081918170 |
:1088A0002817390734F48091DB0880FF02C00C944C |
:1088B000694E50916604552399F0E02FFF27EE0F83 |
:1088C000FF1FED5AF74F842F99272091B708821B7D |
:1088D0009109208131812817390714F40C949B4E9B |
:1088E000E02FFF27EE0FFF1FED5AF74F842F992738 |
:1088F00022273327281B390B808191818217930708 |
:1089000034F48091DB0881FF02C00C94644E8091A6 |
:108910006704882391F0E02FFF27EE0FFF1FED5A29 |
:10892000F74F8091B7089927841B910920813181E5 |
:108930008217930714F40C94A44E80916904882341 |
:1089400031F480916804882311F40C94614E91E015 |
:10895000552331F480916704882311F40C947F4EE1 |
:1089600081E080936B0410926A0410926904109263 |
:108970006804FAC1299845CD809182048D3808F4A5 |
:10898000A8CD809151048F7E809351049091A508C9 |
:1089900082E3989FC001112490931E0580931D05CA |
:1089A000E981FA81B99714F00C94844E80915204B5 |
:1089B000909153048F3F910519F010F00C94BE561E |
:1089C0001092010510920205109203051092040501 |
:1089D00010920505109206051092070510920805E1 |
:1089E0008A3F910511F40C94E45B30918708E32FE2 |
:1089F000FF27EE0FFF1FED5AF74F808191818135E0 |
:108A000091050CF4E9C040917804442309F0E4C0D6 |
:108A100080918808E82FFF27EE0FFF1FED5AF74FD0 |
:108A2000808191818C34910514F40C942B5B80919E |
:108A30001F058F5F893C10F40C94155C2C3010F0EE |
:108A40000C94EB5D29981092780410921F051092F7 |
:108A500053041092520400918508E02FFF27EE0F77 |
:108A6000FF1FED5AF74F808191818734910514F0F3 |
:108A70000C94A55D10918608E12FFF27EE0FFF1FD4 |
:108A8000ED5AF74F808191810190F081E02DF7FF41 |
:108A900002C00C948F5FE734F1050CF470C021E044 |
:108AA000A12FBB27AA0FBB1FAD5AB74F8D919C9129 |
:108AB00011978734910544F0E02FFF27EE0FFF1F39 |
:108AC000ED5AF74F808191818D919C91873491056A |
:108AD00064F0E02FFF27EE0FFF1FED5AF74F808164 |
:108AE0009181873491050CF022E0E12FFF27EE0FF2 |
:108AF000FF1FED5AF74F808191818634910564F410 |
:108B0000E02FFF27EE0FFF1FED5AF74F8081918175 |
:108B1000873491050CF023E0E12FFF27EE0FFF1FB4 |
:108B2000ED5AF74F808191818A5B9F4F64F4E02F6B |
:108B3000FF27EE0FFF1FED5AF74F80819181873499 |
:108B400091050CF024E0E12FFF27EE0FFF1FED5AF7 |
:108B5000F74F808191818A5B9F4F64F4E02FFF275C |
:108B6000EE0FFF1FED5AF74F8081918186349105FA |
:108B70000CF425E0822F0E94750510918608E12FE4 |
:108B8000FF27EE0FFF1FED5AF74F80819181019073 |
:108B9000F081E02DF7FF02C00C94B65E7E9714F0D2 |
:108BA0000C94915C80918508E82FFF27EE0FFF1F42 |
:108BB000ED5AF74F808191818A5B9F4F14F00C949E |
:108BC000915C81E08093220788EE93E09093FC0310 |
:108BD0008093FB0330918708E32FFF27EE0FFF1FE1 |
:108BE000ED5AF74F808191818B5A9F4F0CF071CCD9 |
:108BF000D0908808ED2DFF27EE0FFF1FED5AF74F9D |
:108C000080819181855B9F4F14F00C94E157809196 |
:108C100020058F5F893C10F40C941F5B88EC8093D7 |
:108C2000200581E090E0909353048093520481E00A |
:108C3000809378041092090510920A0510920B0592 |
:108C400010920C0510929D0410929E0410929F04A5 |
:108C50001092A0041092990410929A0410929B040E |
:108C600010929C0480919C08E82EFF240027112775 |
:108C700080913709909138099C01442737FD409530 |
:108C8000542FC801B7010E94CB69DC01CB0180934E |
:108C9000AD049093AE04A093AF04B093B004809160 |
:108CA0005309909154099C01442737FD4095542F56 |
:108CB000C801B7010E94CB69DC01CB018093A504F8 |
:108CC0009093A604A093A704B093A8048091CD0428 |
:108CD0009091CE04A091CF04B091D0048093A904C8 |
:108CE0009093AA04A093AB04B093AC048091C50404 |
:108CF0009091C604A091C704B091C8048093A104C8 |
:108D00009093A204A093A304B093A404109201052D |
:108D100010920205109203051092040510920505A9 |
:108D200010920605109207051092080580915104D3 |
:108D30008860809351040C94E357019790931E052B |
:108D400080931D052A3009F081CB289A8091520426 |
:108D500090915304895E934008F084CB109278047C |
:108D6000B8CBA0908D08AAA200916A040E8B0023B4 |
:108D700021F480916B04882369F08091B5089927CC |
:108D800029813A818217930714F49A83898381E0B9 |
:108D900080938D048091510484FFCBC610927C0493 |
:108DA00010927B041092800410927F0410927E0433 |
:108DB00010927D049AE590934D0988E780931A09F3 |
:108DC0009093F30889A380930A0910926A04109281 |
:108DD0006B041E8A20910D0930910E0940910F09F4 |
:108DE000509110096091CD047091CE048091CF0410 |
:108DF0009091D004698B7A8B8B8B9C8B260F371FBD |
:108E0000481F591F8091140990911509A0911609C6 |
:108E1000B0911709A090C504B090C604C090C704D3 |
:108E2000D090C804AFA2B8A6C9A6DAA68A0D9B1D29 |
:108E3000AC1DBD1DC0900209D0900309E09004094B |
:108E4000F0900509C8AAD9AAEAAAFBAAE090C90429 |
:108E5000F090CA040091CB041091CC04E88EF98EF6 |
:108E60000A8F1B8FA8A8B9A8CAA8DBA8AE0CBF1C84 |
:108E7000C01ED11EA8AAB9AACAAADBAAC090F4082B |
:108E8000D090F508E090F608F090F708CCA6DDA6A3 |
:108E9000EEA6FFA6E090C104F090C2040091C304C6 |
:108EA0001091C404EBA2FCA20DA31EA3ACA4BDA40C |
:108EB000CEA4DFA4AE0CBF1CC01ED11EACA6BDA6A6 |
:108EC000CEA6DFA6B0906B04BF8ABB2009F0D0C548 |
:108ED0000E89002309F0CCC58093140990931509DD |
:108EE000A0931609B093170920930D0930930E092A |
:108EF00040930F095093100980910D0890910E082E |
:108F0000815092400CF07EC480917804882309F04F |
:108F100079C480910E0490910F048F3F910509F060 |
:108F200008F47FC5BF89BB2309F017C7EE89EE237C |
:108F300009F013C7F0918D04FD8BFF2309F00DC7D5 |
:108F4000A090BE08ABA6AA2009F407C7C8A8D9A854 |
:108F5000EAA8FBA8C0920209D0920309E092040992 |
:108F6000F0920509ECA4FDA40EA51FA5E092F4085B |
:108F7000F092F5080093F6081093F70880910D0918 |
:108F800090910E09A0910F09B0911009B7FF02C08E |
:108F90000C94295E292E3A2E4B2E552447FC5A94C8 |
:108FA00020920D0930920E0940920F09509210093B |
:108FB0008091140990911509A0911609B091170993 |
:108FC000B7FF02C00C94235E892F9A2FAB2FBB27CB |
:108FD000A7FDBA958D839E83AF83B88780931409CC |
:108FE00090931509A0931609B093170980919C08D6 |
:108FF000E82EFF24002711272091BD043091BE04E4 |
:109000004091BF045091C004C801B7010E94CB69D0 |
:1090100097FF02C00C94415E672E782E892E99240A |
:1090200087FC9A942091B9043091BA044091BB0412 |
:109030005091BC04C801B7010E94CB6997FF02C0E0 |
:109040000C943B5EA72EB82EC92EDD24C7FCDA9403 |
:10905000D201C10186199709A809B9092091BD0853 |
:10906000E22EFF2400271127BC01CD01A8019701A2 |
:109070000E943F6A39014A0119012A018D819E81AE |
:10908000AF81B8858A199B09AC09BD09BC01CD0126 |
:10909000A80197010E943F6AD401C30197FE02C054 |
:1090A0000C94355E892F9A2FAB2FBB27A7FDBA955D |
:1090B000BC01DA01C90157FF02C00C942F5E892F51 |
:1090C0009A2FAB2FBB27A7FDBA956C018091560450 |
:1090D0009091570481349105D4F480915404909177 |
:1090E0005504813491059CF480918808E82FFF276E |
:1090F000EE0FFF1FED5AF74F808191810190F081B3 |
:10910000E02DF7FF02C00C94A05F7A9734F08091B5 |
:10911000B8098F3F11F40C94D55D088D198D2A8DF7 |
:109120003B8D89899A89AB89BC89081B190B2A0B4D |
:109130003B0B0AAF1BAF2CAF3DAF00930D05109357 |
:109140000E0520930F0530931005EBA0FCA00DA198 |
:109150001EA12FA138A549A55AA5E21AF30A040BAE |
:10916000150BE986FA860B871C87E0921105F092B1 |
:10917000120500931305109314058AAD9BADACAD99 |
:10918000BDAD8093150590931605A0931705B09378 |
:109190001805E0921905F0921A0500931B0510932B |
:1091A0001C058091A9049091AA04A091AB04B091F0 |
:1091B000AC04EAACFBAC0CAD1DAD8E199F09A00B45 |
:1091C000B10B8093A9049093AA04A093AB04B0932D |
:1091D000AC048091A1049091A204A091A304B09149 |
:1091E000A40409851A852B853C85801B910BA20B55 |
:1091F000B30B8093A1049093A204A093A304B09313 |
:10920000A4041BA5112371F120918B0430918C04CF |
:109210002138310594F08091E1049091E2040196A7 |
:109220009093E2048093E1048091180990911909C8 |
:109230000196909319098093180920583F4F94F490 |
:109240008091E1049091E20401979093E20480936D |
:10925000E1048091180990911909019790931909D7 |
:109260008093180910928C0410928B0401E0A02EB8 |
:10927000B12C8AAD9BADACADBDADB7FF02C00C94B7 |
:10928000F75D81509240A040B0401CF014E0A12E48 |
:10929000B12C8091360590913705A0913805B09199 |
:1092A0003905E0900D09F0900E0900910F09109119 |
:1092B00010098E199F09A00BB10B815E914BAF4F26 |
:1092C000BF4F8F539C49A040B04010F40C94275CD2 |
:1092D000F091B909FC8FF93114F40C94BF5DB09290 |
:1092E0003105A09230058AAD9BADACADBDAD8150CE |
:1092F0009041A040B04014F40C94305C8091320551 |
:10930000882311F40C94475E70936D0460936C0491 |
:109310008AAD9BADACADBDADB7FF02C00C94865F0E |
:109320009C01AD01B7FF02C00C94805FB9E0559578 |
:10933000479537952795BA95D1F78091300590914B |
:109340003105820F931F90933105809330052AAD2C |
:109350003BAD4CAD5DAD57FF02C00C947A5F390157 |
:109360004A01A3E09594879477946794AA95D1F7DE |
:1093700013012401F9E86F16F3E17F06F0E08F0690 |
:10938000F0E09F0644F0F8E86F2EF3E17F2E812C89 |
:10939000912C13012401D401C30197FE02C00C9447 |
:1093A000B45F892F9A2FAB2FBB27A7FDBA95680F03 |
:1093B000791F2AAD3BAD4CAD5DAD203080EF380755 |
:1093C0008FEF48078FEF580714F00C94405C8091A2 |
:1093D0003305882311F40C94165E70936D0460932A |
:1093E0006C04DA01C90157FF02C00C94715F9C0143 |
:1093F000AD01B7FF02C00C94C95F69E05595479570 |
:10940000379527956A95D1F7809130059091310570 |
:10941000820F931F90933105809330052AAD3BADA9 |
:109420004CAD5DAD57FF02C00C94C35F39014A01DA |
:1094300043E095948794779467944A95D1F798E799 |
:1094400069169CEE79069FEF89069FEF990644F412 |
:1094500038E7632E3CEE732E3FEF832E3FEF932EC3 |
:10946000609224057092250580922605909227052A |
:10947000D401C30197FE02C00C946B5F892F9A2F11 |
:10948000AB2FBB27A7FDBA9560916C0470916D045A |
:10949000680F791FABA52A2F332780913005909153 |
:1094A00031052817390724F430933105209330050E |
:1094B000BC8DBB2379F02B2F332727FD309580916E |
:1094C0003005909131052817390724F43093310580 |
:1094D000209330052AAD3BAD4CAD5DAD2138310553 |
:1094E0004105510574F08091E5049091E6042091C6 |
:1094F000300530913105820F931F9093E6048093DD |
:10950000E5048AAD9BADACADBDAD80589F4FAF4F6C |
:10951000BF4F74F48091E5049091E60420913005EA |
:1095200030913105821B930B9093E6048093E50400 |
:10953000B1E0AB2EB12C89859A85AB85BC85B7FF90 |
:1095400002C00C940D5E81509240A040B0401CF0CF |
:10955000A4E0AA2EB12C20E030E040E050E0809161 |
:109560003A0590913B05A0913C05B0913D05609076 |
:1095700014097090150980901609909017098619A2 |
:109580009709A809B909815E914BAF4FBF4F8F531F |
:109590009C49A040B04028F0FC8DF93114F40C94A3 |
:1095A000A95DB0923105A092300589859A85AB8579 |
:1095B000BC8581509041A040B04014F40C94345CC0 |
:1095C00080913405882311F40C94005ED0926F04CE |
:1095D000C0926E0489859A85AB85BC85B7FF02C0B1 |
:1095E0000C94BA5FB7FF02C00C94655FF9E0B595C3 |
:1095F000A79597958795FA95D1F7A80EB91EB092C1 |
:109600003105A092300529853A854B855C8557FF49 |
:1096100002C00C945F5FE3E0559547953795279519 |
:10962000EA95D1F72938F3E13F07F0E04F07F0E082 |
:109630005F0714F40C94F55E88E893E1A0E0B0E0D5 |
:109640008093280590932905A0932A05B0932B05B4 |
:109650008091280590912905A0912A05B0912B05AC |
:10966000B7FF02C00C94435F892F9A2FAB2FBB2703 |
:10967000A7FDBA95C0906E04D0906F04C80ED91E95 |
:1096800029853A854B855C85203080EF38078FEF40 |
:1096900048078FEF580714F00C944C5C8091350507 |
:1096A000882311F40C94EE5DD0926F04C0926E0486 |
:1096B000DA01C90157FF02C00C94AB5F9C01AD01F8 |
:1096C000B7FF02C00C94A55FB9E055954795379553 |
:1096D0002795BA95D1F78091300590913105820F89 |
:1096E000931F909331058093300529853A854B85EA |
:1096F0005C8557FF02C00C944D5FA3E055954795DC |
:1097000037952795AA95D1F728379CEE39079FEF13 |
:1097100049079FEF590714F00C94FF5E88E79CEE11 |
:10972000AFEFBFEF8093280590932905A0932A05FA |
:10973000B0932B058091280590912905A0912A05C9 |
:10974000B0912B05B7FF02C00C949A5F892F9A2F16 |
:10975000AB2FBB27A7FDBA95C0906E04D0906F04C5 |
:10976000C80ED91EABA52A2F3327809130059091C2 |
:1097700031052817390724F430933105209330053B |
:10978000BC8DBB2379F02B2F332727FD309580919B |
:109790003005909131052817390724F430933105AD |
:1097A0002093300529853A854B855C852138310524 |
:1097B0004105510574F08091E3049091E4042091F7 |
:1097C000300530913105820F931F9093E40480930C |
:1097D000E30489859A85AB85BC8580589F4FAF4F40 |
:1097E000BF4F0CF0D0C28091E3049091E40420912B |
:1097F000300530913105821B930B9093E4048093E4 |
:10980000E304C1C29090B8096FEF961611F40C945E |
:10981000D55680919C08A82EBB24CC24DD246989D0 |
:109820007A898B899C89A60195010E943F6A7901FA |
:109830008A018091370990913809AA2797FDA09550 |
:10984000BA2FE81AF90A0A0B1B0B6FA178A589A594 |
:109850009AA5A60195010E943F6A59016A0180916B |
:10986000530990915409AA2797FDA095BA2FA81AD9 |
:10987000B90ACA0ADB0A292C332427FC3094432C6A |
:10988000532CC201B101A80197010E94CB6997FD39 |
:109890005FC23B014C01F9E09594879477946794FB |
:1098A000FA95D1F7C201B101A60195010E94CB69D9 |
:1098B00097FF02C00C94E85A5B016C01E9E0D59473 |
:1098C000C794B794A794EA95D1F7809156049091E4 |
:1098D0005704813491053CF48091540490915504CF |
:1098E00081349105C4F0D401C30197FE02C00C94E9 |
:1098F000DF5B3C014D019594879477946794D60182 |
:10990000C501D7FE02C00C94DA5B5C016D01D594F1 |
:10991000C794B794A79480918808E82FFF27EE0F8B |
:10992000FF1FED5AF74F808191810190F081E02D6A |
:10993000F7FF02C00C94E35A7A97A4F0C401B30174 |
:1099400023E030E040E050E00E943F6A39014A01E4 |
:10995000C601B50123E030E040E050E00E943F6ADC |
:1099600059016A018091BA09282F332727FD3095C4 |
:10997000432F532F261537054805590514F439018F |
:109980004A01992787FD9095909581959F4FAA2729 |
:1099900097FDA095BA2F681679068A069B0614F4DF |
:1099A0003C014D012A153B054C055D0514F4590198 |
:1099B0006A01A816B906CA06DB0614F45C016D013B |
:1099C0008091AD049091AE04A091AF04B091B00429 |
:1099D00086199709A809B9098093AD049093AE043C |
:1099E000A093AF04B093B0048091A5049091A60415 |
:1099F000A091A704B091A8048A199B09AC09BD09DC |
:109A00008093A5049093A604A093A704B093A80400 |
:109A100080910E0490910F048F3F910511F008F092 |
:109A200081CAA8A8B9A8CAA8DBA8A0920209B092C6 |
:109A30000309C0920409D0920509CCA4DDA4EEA4C8 |
:109A4000FFA4C092F408D092F508E092F608F092D4 |
:109A5000F70800918D040D8BA0907B04B0907C04DE |
:109A6000C501B7FEF0C1882799278A199B09EBC168 |
:109A70001092BD041092BE041092BF041092C00454 |
:109A80001092B9041092BA041092BB041092BC0454 |
:109A900010920D0910920E0910920F0910921009E0 |
:109AA00010921409109215091092160910921709B4 |
:109AB0001CA61DA61EA61FA620E030E040E050E038 |
:109AC00028AB39AB4AAB5BAB8091AD049091AE044F |
:109AD000A091AF04B091B0048093A9049093AA041C |
:109AE000A093AB04B093AC048091A5049091A6041C |
:109AF000A091A704B091A8048093A1049093A2041C |
:109B0000A093A304B093A40410920F0410920E0427 |
:109B100010926D0410926C0410926F0410926E04F7 |
:109B20003F89332309F0F5C94E89442309F0F1C96F |
:109B3000E3C930910A0939A34DC93FEF8E3F93071E |
:109B40000CF0D7C002960C941F43B90161507040CD |
:109B500040917D0450917E04CA0157FF02C00C94CD |
:109B6000CC43959587959595879597FF02C00C9462 |
:109B7000D54320915404309155042817390714F027 |
:109B80000C94E143CA0157FF02C00C949B5A97FF03 |
:109B900002C00C94985A9C013595279535952795C8 |
:109BA0002536310514F40C94E34324E630E080912B |
:109BB000510484FF02C00C94E94330935504209370 |
:109BC000540470935704609356040C94F143F0923C |
:109BD0001A0940917F0450918004CA0157FD02C0C8 |
:109BE0000C949D430396959587959595879597FD3C |
:109BF00002C00C94A543909581959F4F0C94A5436A |
:109C000080912707992787FD90954E2D5527849F92 |
:109C1000B001859F700D949F700D1124CB01209190 |
:109C20007F0430918004820F931F9093800480936F |
:109C30007F0480912807992787FD9095849FD00104 |
:109C4000859FB00D949FB00D1124CD0120917D040E |
:109C500030917E04820F931F90937E0480937D0445 |
:109C600080912907992787FD909520917B04309159 |
:109C70007C04820F931F90937C0480937B048091DB |
:109C80002B07282F332727FD30958091920899279D |
:109C9000289FF001299FF00D389FF00D1124F093BB |
:109CA0008B03E0938A0380912A0799278C159D05E1 |
:109CB00014F00C947F4390937A04809379040C946D |
:109CC0008343982F0C94A84481E0809367040C94FC |
:109CD0009D4481E080936604582F0C94704481E089 |
:109CE000809368040C94464481E0809369040C944A |
:109CF000194410927C0410927B040C94234390939B |
:109D00006A0480936B0430C880917804882311F42E |
:109D10000C94D6448091520490915304FFEF8F3FEE |
:109D20009F0711F40C94DA440196909353048093A6 |
:109D300052040C94DA441092660450E00C9470447F |
:109D4000109268040C944644109267040C949D444D |
:109D500061507E4F8F4F9F4F9CCD60E070E06B0154 |
:109D600010928D041D8AE0900D09F0900E0900916B |
:109D70000F091091100960901409709015098090D6 |
:109D800016099090170980911A09882309F0B6C71F |
:109D900010926F0410926E0410926D0410926C0475 |
:109DA000E0923605F0923705009338051093390597 |
:109DB00060923A0570923B0580923C0590923D0579 |
:109DC0001092BD041092BE041092BF041092C00401 |
:109DD0001092B9041092BA041092BB041092BC0401 |
:109DE0001092B5041092B6041092B7041092B80401 |
:109DF00010920D0910920E0910920F09109210097D |
:109E00001092140910921509109216091092170950 |
:109E10001092020910920309109204091092050988 |
:109E20001092F4081092F5081092F6081092F708B4 |
:109E300010920F0410920E04A0907B04B0907C044A |
:109E4000C501B7FC10CE409774F068EE262E63E093 |
:109E5000362E3092AB032092AA031AA114FD03C040 |
:109E600081E080932305D0909908ED2CFF240027F2 |
:109E70001127B501882777FD8095982F9501B7FCAC |
:109E800078C7442737FD4095542F0E94CB699B012A |
:109E9000AC01C801B7010E94CB6997FD65C759E0C5 |
:109EA00095958795779567955A95D1F79B018D2D57 |
:109EB00099278A9DA0018B9D500D9A9D500D1124CC |
:109EC000CA0157FD43C79595879595958795280FA6 |
:109ED000391FC901AA2797FDA095BA2F80930905BC |
:109EE00090930A05A0930B05B0930C05E0909D0498 |
:109EF000F0909E0400919F041091A004E81AF90AC2 |
:109F00000A0B1B0B51E5E51653ECF50650E005076F |
:109F100050E015070CF4E9C680E593ECA0E0B0E052 |
:109F200080939D0490939E04A0939F04B093A004FB |
:109F300080919D0490919E04A0919F04B091A004F3 |
:109F4000805B9C43AF4FBF4F64F480EB9CE3AFEF6B |
:109F5000BFEF80939D0490939E04A0939F04B093C1 |
:109F6000A004C0909304D0909404C114D10409F4C7 |
:109F7000B5C57AA173FFB2C589899A89AB89BC89B5 |
:109F8000B7FF02C00C94B25A09E0B595A795979512 |
:109F900087950A95D1F79BAF8AAF97FF02C00C94C3 |
:109FA000BE5A8FA198A5A9A5BAA5B7FF02C00C9467 |
:109FB000B85A19E0B595A795979587951A95D1F751 |
:109FC000BC0197FF02C00C94AD5AAAADBBADA61759 |
:109FD000B70714F47BAF6AAF6AAD7BAD77FF02C001 |
:109FE0000C94A95A2B015594479455944794559431 |
:109FF00047940894411C511CECE1F2E0CE0EDF1EA8 |
:10A0000076010027F7FC0095102FA4EEAA2EADEFE5 |
:10A01000BA2ECA0CDB1C60904F09709050098090DA |
:10A020005109909052092091860330918703409105 |
:10A030008803509189032D8F3E8F4F8F58A3C40101 |
:10A04000B3010E943F6AE21AF30A040B150BC80120 |
:10A05000B70128E631E040E050E00E943F6ADC01B1 |
:10A06000CB018C01045B1040A0904809B0904909D5 |
:10A07000C501B7FE02C00C94A35A8138910514F0B3 |
:10A0800000E010E02090AA033090AB0321143104CB |
:10A09000A9F44AAD5BAD4931510584F480918B043C |
:10A0A00090918C04800F911F90938C0480938B046B |
:10A0B00080912305882311F00C94B55BC801880FAB |
:10A0C000991F880F991F880F991FB2010E940A6A71 |
:10A0D0009B01442737FD4095542F260D371D481D01 |
:10A0E000591D20934F0930935009409351095093C3 |
:10A0F0005209F0909B036F2D7727AAADBBAD6A9FE5 |
:10A10000C0016B9F900D7A9F900D112497FF02C0A4 |
:10A110000C94A05A959587959595879595958795D3 |
:10A120009595879595958795681B790B7BAF6AAF59 |
:10A1300077FF02C00C94C55A2114310411F00C941D |
:10A14000DA5A00915604109157048091540490916A |
:10A150005504080F191F17FF02C00C94025C1595D7 |
:10A1600007951595079515950795005C1F4FCA0132 |
:10A17000B9012D8D3E8D4F8D58A10E943F6ADA01A5 |
:10A18000C9012091910430919204442737FD4095F4 |
:10A19000542F821B930BA40BB50B845E9D4FAF4FC6 |
:10A1A000BF4FBC01CD0128E631E040E050E00E9405 |
:10A1B0003F6ADC01CB01845B90402AAD3BAD829FBE |
:10A1C000F001839FF00D929FF00D1124CF01B80193 |
:10A1D0000E940A6A83E0F89EA00111245BAF4AAF97 |
:10A1E0004617570714F00C94CD5ABA01CB01AA2791 |
:10A1F00097FDA095BA2F20919D0430919E04409127 |
:10A200009F045091A004820F931FA41FB51F809339 |
:10A210009D0490939E04A0939F04B093A00480910A |
:10A22000220581508F3F09F462C4809322055D8925 |
:10A23000552381F01092050510920605109207052E |
:10A240001092080510920105109202051092030564 |
:10A25000109204056F89662309F044C580911A099C |
:10A260009927AA27BB27BC01CD0129893A894B89A7 |
:10A270005C890E94CB69DC01CB01BC01CD0128EFD8 |
:10A280003AE240E050E00E943F6A19017E8977235C |
:10A2900009F025C580911A099927AA27BB27BC0177 |
:10A2A000CD012FA138A549A55AA50E94CB69DC0193 |
:10A2B000CB01BC01CD0128EF3AE240E050E00E9422 |
:10A2C0003F6A3C832B838090EE089090EF0889ECE6 |
:10A2D000881691040CF4F8C4B8EC8B2E912C909253 |
:10A2E000EF088092EE080091F9081091FA08093CF5 |
:10A2F00011050CF4E1C408EC10E01093FA08009387 |
:10A30000F9088091FB089091FC08AA2797FDA09579 |
:10A31000BA2F20914D09C22EDD24EE24FF24BC016A |
:10A32000CD01A70196010E94CB699B01AC01C4013C |
:10A33000AA2797FDA095BA2FF7E0880F991FAA1FAB |
:10A34000BB1FFA95D1F7280F391F4A1F5B1F57FD16 |
:10A35000ECC4E6E05595479537952795EA95D1F7F2 |
:10A360004101820E931E24018091EC089091ED082A |
:10A37000AA2797FDA095BA2FBC01CD01A701960190 |
:10A380000E94CB699B01AC01C801AA2797FDA0954B |
:10A39000BA2F77E0880F991FAA1FBB1F7A95D1F7B4 |
:10A3A000280F391F4A1F5B1F57FDBAC466E0559539 |
:10A3B0004795379527956A95D1F76B807C80620E1B |
:10A3C000731E6301AA0CBB1CC501AA2797FDA095AB |
:10A3D000BA2F2091F308332744275527BC01CD011C |
:10A3E0000E94CB697B018C0197FD91C456E01595C5 |
:10A3F0000795F794E7945A95D1F739A1832F9927B8 |
:10A40000AA27BB272091B1043091B2044091B30434 |
:10A410005091B404BC01CD010E94CB69DC01CB0199 |
:10A42000BC01CD0120EF35E540E050E00E943F6ADD |
:10A430005701A20EB31EC50141E0841640E4940604 |
:10A4400024F0812C40E4942E240150E0851650EC39 |
:10A4500095060CF02CC4812C30EC932E9092FC08C5 |
:10A460008092FB0861E0661660E4760624F0612CB9 |
:10A4700020E4722E630170E0671670EC77060CF032 |
:10A4800011C4612C00EC702E7092ED086092EC0803 |
:10A49000A1E0AA16A0E4BA0624F0A12C10E4B12E83 |
:10A4A000C501B0E0AB16B0ECBB060CF0F6C3A12CB6 |
:10A4B000B0ECBB2EB0924909A092480980910001EE |
:10A4C000482F552780912703909128034817590753 |
:10A4D00094F42091270330912803E981FA814E9F5B |
:10A4E000C0014F9F900D5E9F900D1124B9010E94F5 |
:10A4F000F6697A836983C980DA80CC0CDD1CCC0CC8 |
:10A50000DD1CDA82C982DAA0D0FE51C00E89002398 |
:10A5100009F04DC01F89112309F049C080914205FF |
:10A52000909143059093F4078093F3078091100472 |
:10A53000909111049093EE078093ED072091E7042A |
:10A540003091E8042115310509F0F8C480911D030C |
:10A5500090911E038959934010F00C94225B8091D6 |
:10A560001D0390911E038436910510F00C941D5C20 |
:10A5700087B58B3010F40C94B85C809112048F5F17 |
:10A58000809312049AE089029001112480911708A7 |
:10A59000821B87BD8CE291E09093FC038093FB03C8 |
:10A5A0008EE591E09093E8048093E704E8C450902E |
:10A5B000470940900009242D3327C901880F991FAE |
:10A5C000880F991F8896E981FA81E817F90714F432 |
:10A5D0009A838983852D9927880F991F880F991F42 |
:10A5E00080559040C980DA808C159D0514F49A83BB |
:10A5F0008983809146048823A1F080915204909130 |
:10A6000053040297C09768F4E980FA801E141F046F |
:10A6100044F481E090E090935304809352043A8391 |
:10A62000298309811A811093D8070093D707809155 |
:10A63000090590910A05A0910B05B0910C05880FB2 |
:10A64000991FAA1FBB1F880F991FAA1FBB1FA81AFB |
:10A65000B90AB9AEA8AE013A11050CF40AC3C80193 |
:10A6600017FDA1C39595879528AD39AD821793073E |
:10A6700014F499AF88AF909581959F4F48AD59AD2F |
:10A680004817590714F499AF88AF252D3327220FA7 |
:10A69000331F220F331FC90149815A81841B950B37 |
:10A6A00068AD79AD8617970714F499AF88AF8981A3 |
:10A6B0009A81821B930BA8ADB9ADA817B90714F402 |
:10A6C00099AF88AF80917F04909180048401081B2A |
:10A6D000190B10930C0900930B09A0901A09AA20DA |
:10A6E00009F4C1C2281A390AC101AA2797FDA09509 |
:10A6F000BA2F209101053091020540910305509138 |
:10A700000405820F931FA41FB51F8093010590932A |
:10A710000205A0930305B0930405609101057091B3 |
:10A72000020580910305909104056130BAEF7B0723 |
:10A73000B0E08B07B0E09B0774F080E09AEFA0E0F8 |
:10A74000B0E08093010590930205A0930305B093B8 |
:10A750000405BC01CD016030E6E07E07EFEF8E0717 |
:10A76000EFEF9E0774F480E096E0AFEFBFEF8093C9 |
:10A77000010590930205A0930305B0930405BC0165 |
:10A78000CD01E090A003F090A1039701442737FD8D |
:10A790004095542F0E943F6A6801C20ED31EB090AC |
:10A7A0008C036B2D77278827992728AD39AD37FD86 |
:10A7B000C9C237FDC4C23595279509811A81200F7A |
:10A7C000311F442737FD4095542F0E94CB6997FDD8 |
:10A7D000B1C226E095958795779567952A95D1F72B |
:10A7E0009B016C157D050CF46B01309521953F4F55 |
:10A7F000C216D3060CF4690180917D0490917E0409 |
:10A800008301081B190B1093EB080093EA08AA2098 |
:10A8100009F423C22B813C81281B390BC901AA27CB |
:10A8200097FDA095BA2F209105053091060540911E |
:10A83000070550910805820F931FA41FB51F809331 |
:10A84000050590930605A0930705B0930805609150 |
:10A850000505709106058091070590910805613006 |
:10A860003AEF730730E0830730E0930774F080E03D |
:10A870009AEFA0E0B0E08093050590930605A093C1 |
:10A880000705B0930805BC01CD01603046E07407B0 |
:10A890004FEF84074FEF940774F480E096E0AFEF3A |
:10A8A000BFEF8093050590930605A0930705B0932D |
:10A8B0000805BC01CD019701442737FD4095542F71 |
:10A8C0000E943F6A7801E20EF31E6B2D77278827DE |
:10A8D000992728AD39AD37FD43C237FD3EC23595C6 |
:10A8E0002795A981BA812A0F3B1F442737FD409540 |
:10A8F000542F0E94CB6997FD2BC216E09595879542 |
:10A90000779567951A95D1F79B016E157F050CF425 |
:10A910007B01309521953F4FE216F3060CF4790147 |
:10A920008601222717FD2095322F0D871E872F873E |
:10A93000388B242D33273DAB2CAB452D55275FABF2 |
:10A940004EABBAE3CB2EB9E0DB2E07E715E02701CB |
:10A95000662457FC6094762C68AD79AD4B01AA242F |
:10A9600097FCA094BA2CABE03A2EFBE1EF2EF9E075 |
:10A97000FF2E07C0FBAFEAAFEAADD601EC930C9413 |
:10A98000F95FF801258512160CF08FC049815A81B4 |
:10A99000CA01AA2797FDA095BA2F332727FD309526 |
:10A9A000432F532FBC01CD010E94CB6997FD91C06D |
:10A9B000E6E09595879577956795EA95D1F77BAF12 |
:10A9C0006AAFF8018685282F332727FD3095432F5E |
:10A9D000532F6D857E858F8598890E94CB6997FD61 |
:10A9E00073C056E095958795779567955A95D1F7F9 |
:10A9F0002AAD3BAD260F371F3BAF2AAFF801878545 |
:10AA0000282F332727FD3095432F532FC301B20141 |
:10AA10000E94CB6997FD51C046E095958795779543 |
:10AA200067954A95D1F72AAD3BAD260F371F3BAF4F |
:10AA30002AAFF8018089282F332727FD3095432F2F |
:10AA4000532FC501B4010E94CB69DC01CB01B7FDD6 |
:10AA500030C036E0B595A795979587953A95D1F78B |
:10AA6000F701608171812AAD3BAD820F931F0E9477 |
:10AA7000BC2FD7018D939C9397FD24C09595879506 |
:10AA8000959587959BAF8AAFECA9FDA98E179F0777 |
:10AA90000CF470CF2EA93FA94AAD5BAD2417350742 |
:10AAA0000CF06ACF3BAF2AAF67CFD6011C920C9453 |
:10AAB000F95FCF96A11DB11DCCCF615C7F4F8F4F49 |
:10AAC0009F4FAACF0396DACF615C7F4F8F4F9F4F86 |
:10AAD00088CF615C7F4F8F4F9F4F6ACFA09048090E |
:10AAE000B090490980912205815008F09ECB88E101 |
:10AAF0008093220580919C089927880F991F880FC1 |
:10AB0000991F7C010027F7FC0095102F69897A892D |
:10AB10008B899C89A80197010E943F6A3093CA07DC |
:10AB20002093C9076FA178A589A59AA5A8019701C7 |
:10AB30000E943F6A3093CC072093CB07809137095E |
:10AB40009091380997FDEAC49595879595958795D5 |
:10AB50009093CE078093CD0780915309909154092B |
:10AB600097FDDAC495958795959587959093D0072D |
:10AB70008093CF07B092D207A092D107809174043E |
:10AB800090917504A0917604B0917704BC01CD0139 |
:10AB900025E030E040E050E00E943F6A3093D40767 |
:10ABA0002093D30780910D0890910E089093D607BB |
:10ABB0008093D507D092DA07C092D90780912703F6 |
:10ABC000909128039093DC078093DB0780918204A7 |
:10ABD00099279093DE078093DD0780914F0990912C |
:10ABE0005009A0915109B0915209209186033091EA |
:10ABF00087034091880350918903BC01CD010E94D5 |
:10AC00003F6A3093E0072093DF0780911004909112 |
:10AC100011049093EE078093ED0780912207992706 |
:10AC20009093F0078093EF078091F7039091F803DA |
:10AC30009093F2078093F1078091630590916405EA |
:10AC400090930608809305088091610590916205B4 |
:10AC50009093080880930708EACAC801AA2797FDBD |
:10AC6000A095BA2FE0CDC801AA2797FDA095BA2FCD |
:10AC700040CD68AD79AD6135710524F080E590E097 |
:10AC800099AF88AFA8ADB9ADA05BBF4F0CF0FDCCBC |
:10AC900000EB1FEF19AF08AFF8CC909349098093F0 |
:10ACA00048090CCCD092ED08C092EC08F1CB509240 |
:10ACB000FC084092FB08D6CBAFEF08331A070CF024 |
:10ACC00020CB08E31FEF19CB98E389169FEF990675 |
:10ACD0000CF009CBA8E38A2EAFEF9A2E00CB1C8292 |
:10ACE0001B82F1CA22243324D1CAE0929D04F0923F |
:10ACF0009E0400939F041093A0041AC9D0926F047D |
:10AD0000C0926E0470936D0460936C0449C82FE385 |
:10AD100030E040E050E0E20EF31E041F151F66CB4A |
:10AD2000215C3F4F4F4F5F4F41CB215C3F4F4F4F17 |
:10AD30005F4F0FCB615C7F4F8F4F9F4F4ACD2F5F8F |
:10AD40003F4F39CD309521953F4F33CD0396BBC84A |
:10AD5000615C7F4F8F4F9F4FD0CD2F5F3F4FBFCD57 |
:10AD6000309521953F4FB9CD61507E4F8F4F9F4F0A |
:10AD700096C8222733272A193B0983C8809151049A |
:10AD80008260809351040C94F54410927A041092DE |
:10AD900079040C948B434D5F5F4F0C94E7424D5FF9 |
:10ADA0005F4F0C949D4201965DCC80919C08E82EEB |
:10ADB000FF240027112769897A898B899C89A8013A |
:10ADC00097010E943F6A39014A01809137099091A9 |
:10ADD0003809AA2797FDA095BA2F681A790A8A0A16 |
:10ADE0009B0A6FA178A589A59AA5A80197010E9441 |
:10ADF0003F6A59016A018091530990915409AA2729 |
:10AE000097FDA095BA2FA81AB90ACA0ADB0AD4017D |
:10AE1000C30197FCF3C43C014D0154E09594879421 |
:10AE2000779467945A95D1F7D601C501D7FCF2C43F |
:10AE30005C016D0144E0D594C794B794A7944A95FA |
:10AE4000D1F78091560490915704813491050CF408 |
:10AE5000C5C3C401B30123E030E040E050E00E94EC |
:10AE60003F6A39014A01C601B50123E030E040E004 |
:10AE700050E00E943F6A59016A0180918808E82FDA |
:10AE8000FF27EE0FFF1FED5AF74F80819181019050 |
:10AE9000F081E02DF7FDBAC47A97A4F0C401B301A4 |
:10AEA00023E030E040E050E00E943F6A39014A016F |
:10AEB000C601B50123E030E040E050E00E943F6A67 |
:10AEC00059016A0171E267167104810491042CF042 |
:10AED00030E2632E712C812C912C80EE68168FEF5E |
:10AEE00078068FEF88068FEF980644F420EE622EE6 |
:10AEF0002FEF722E2FEF822E2FEF922E91E2A916B6 |
:10AF0000B104C104D1042CF090E2A92EB12CC12CC3 |
:10AF1000D12CA0EEAA16AFEFBA06AFEFCA06AFEF7C |
:10AF2000DA0614F00C94E04C80EEA82E8FEFB82EC9 |
:10AF30008FEFC82E8FEFD82E0C94E04C80917404C4 |
:10AF400090917504A0917604B0917704F4E0880F95 |
:10AF5000991FAA1FBB1FFA95D1F7809313049093F2 |
:10AF60001404A0931504B0931604109211041092C7 |
:10AF70001004215030403093E8042093E7044AA1A4 |
:10AF800041FF3EC080919E03823308F051C38091FF |
:10AF9000CB03815098F410928E04809174049091A8 |
:10AFA0007504A0917604B091770480937004909317 |
:10AFB0007104A0937204B093730481E08093CB0377 |
:10AFC00041C010922005ED2DFF27EE0FFF1FED5A17 |
:10AFD000F74F808191818C3491050CF499C2809156 |
:10AFE00021058F5F893C08F41FC31092780488EC18 |
:10AFF0008093210510925304109252040C946942DC |
:10B0000020919E0380918A0390918B03820F911D62 |
:10B01000209192083327829FB001839F700D929FE9 |
:10B02000700D1124CB01AA2797FDA095BA2F80930C |
:10B03000700490937104A0937204B093730481E040 |
:10B0400080938E04E0908603F0908703009188033C |
:10B050001091890369897A898B899C89A801970154 |
:10B060000E943F6A59016A016FA178A589A59AA536 |
:10B07000A80197010E943F6AB901C5010E94BA6800 |
:10B080006C01CD971CF0ECE3CE2ED12CC6010E94B2 |
:10B0900060676C0180918E04882309F469C18091F6 |
:10B0A000510499279C012071307084FD61C1B090DA |
:10B0B000DD08B0FC04C080918D0881FD5DC409816C |
:10B0C0001A8130933F0520933E0560907404709080 |
:10B0D000750480907604909077048091700490912C |
:10B0E0007104A0917204B091730486159705A805A8 |
:10B0F000B90514F0B0FC52C1E0907404F0907504EE |
:10B100008091700490917104E81AF90A80919D036E |
:10B1100099278E9D90018F9D300D9E9D300D11249D |
:10B12000C90137FDDAC595958795959587959595CC |
:10B13000879595958795081B190B209110043091E0 |
:10B14000110437FDC7C53595279535952795359554 |
:10B150002795293031050CF4CCC328E030E0229F3C |
:10B16000A001239F500D329F500D11249A0157FDCD |
:10B17000AEC535952795359527958091100490910A |
:10B180001104280F391F80919F039927AA27BB27F5 |
:10B19000442737FD4095542FBC01CD010E94CB6957 |
:10B1A00097FD90C5B7E09595879577956795BA9582 |
:10B1B000D1F79B015FEF613875070CF092C321E86E |
:10B1C0003FEF021B130B60909504709096048090E3 |
:10B1D00097049090980497FC64C5A7E09594879491 |
:10B1E00077946794AA95D1F780919C03282F3327F1 |
:10B1F00044275527C401B3010E94CB6997FD4CC574 |
:10B20000F5E09595879577956795FA95D1F79B0128 |
:10B210007FEF213837070CF04BC321E83FEF021BCB |
:10B22000130B85E990E0E80EF91E9BE2E91691E028 |
:10B23000F906E8F480913E0590913F05892BB9F419 |
:10B2400080914205909143051816190684F4809167 |
:10B25000440590914505081719070CF49FC2809189 |
:10B26000C9039091CA03801791070CF497C280918B |
:10B27000E7049091E804892B21F000914205109198 |
:10B28000430580919A039927AA27BB272091BC09DF |
:10B29000332727FD3095432F532FBC01CD010E944A |
:10B2A000CB6997FD0AC5E7E09595879577956795F2 |
:10B2B000EA95D1F79B01AFEF61387A070CF0F0C245 |
:10B2C00021E83FEF021B130BC801AA2797FDA095A9 |
:10B2D000BA2F5DE0880F991FAA1FBB1F5A95D1F79F |
:10B2E0009601442737FD4095542FBC01CD010E94A3 |
:10B2F0003F6A209311053093120540931305509334 |
:10B30000140500911105109112058091400590914E |
:10B3100041059C01220F331F280F391F200F311FB9 |
:10B3200037FDC8C4A9015595479555954795BA016C |
:10B3300080918E08282F3327220F331F220F331FAF |
:10B34000421753070CF0BCC2A901B901509047093C |
:10B35000B0FE64C2E981FA81E417F5070CF05EC221 |
:10B36000AF01F0934105E09340055A83498318C02B |
:10B3700060919608662309F43AC17727663471050F |
:10B380000CF00EC226E430E03093C8032093C703CC |
:10B39000E980FA80F0924105E0924005509047091B |
:10B3A0008091510481FFA7C08091510484FDA3C006 |
:10B3B000E0904605F0904705009148051091490539 |
:10B3C000E114F10401051105B1F429813A817901F3 |
:10B3D0000027F7FC0095102FECE0EE0CFF1C001F7F |
:10B3E000111FEA95D1F7E0924605F09247050093C8 |
:10B3F00048051093490580911004909111048091A3 |
:10B4000010049091110497FDEEC3843691050CF061 |
:10B4100072C069817A819B01442737FD4095542F82 |
:10B42000C601AA2797FDA095BA2FBC01CD010E94A5 |
:10B43000CB6997FD6CC49B01AC017DE055954795A8 |
:10B44000379527957A95D1F72093110530931205FA |
:10B450004093130550931405809152049091530426 |
:10B4600077E0803D970708F053C3D801C70169E032 |
:10B47000B695A795979587956A95D1F7E81AF90A31 |
:10B480000A0B1B0BDA01C90123E0880F991FAA1FC1 |
:10B49000BB1F2A95D1F7E80EF91E0A1F1B1FE09269 |
:10B4A0004605F09247050093480510934905D801D9 |
:10B4B000C7011CE0B695A795979587951A95D1F782 |
:10B4C000909343058093420540919408442309F4E6 |
:10B4D00014C355279C01BA010E940A6AC901861B40 |
:10B4E000970B9093450580934405260F371F3093A3 |
:10B4F000CA032093C903A0904809B09049098090DD |
:10B50000FB089090FC086090EC087090ED0851C822 |
:10B51000109221050C946942039624CB039614CB18 |
:10B52000909581959F4F0C94B34303960C94B74329 |
:10B5300003960C94CB4D909581959F4F0C94C74DDD |
:10B540004F960C948A50882799278A199B090C9446 |
:10B550003D50695F7F4F0C94F24F709561957F4F1E |
:10B560000C94E54F81509E4FAF4FBF4F0C94C44F8A |
:10B5700081509E4FAF4FBF4F0C94D94F90958195FE |
:10B580009F4F9BAF8AAF0C94D14F84EF91E0909383 |
:10B59000AB038093AA030C940F518AAD9BAD909599 |
:10B5A00081959F4F6817790714F00C94F650BC01F1 |
:10B5B0000C94F6500894210831083092AB03209285 |
:10B5C000AA030C940F51F095E195FF4F0C949C4CFD |
:10B5D00061507E4F8F4F9F4F0C945C4C8091540470 |
:10B5E00090915504813491050CF447CC32CC4091B4 |
:10B5F00042055091430557FDB8C15595479555955E |
:10B6000047958091270390912803209100013327CB |
:10B61000489F5001499FB00C589FB00C1124C501A0 |
:10B62000B9010E940A6AAACE809321050C9469424E |
:10B6300081E080938E0488EC8093CB0303CD8093CC |
:10B640002005C1CC87B5853F08F0F3C08091120476 |
:10B6500081500C94C05280819181855B9F4F0CF08A |
:10B66000F2C080911F058F5F80931F05893C10F405 |
:10B670000C94EC452C3008F07EC32998A4E0B0E08F |
:10B680008FEF082E0E94676A1092780410921F05AF |
:10B6900010925304109252040E94193BA4E0B0E0AF |
:10B6A0008091DB049091DC0497FD41C4892F990FB0 |
:10B6B000990B082E0E94676AA5E0B0E08091DB0438 |
:10B6C0009091DC04082E0E94676AA6E0B0E08091A9 |
:10B6D000D9049091DA0497FD27C4892F990F990B0B |
:10B6E000082E0E94676AA7E0B0E08091D90490918B |
:10B6F000DA04082E0E94676A08E010E08091D30403 |
:10B700009091D404A091D504B091D604BC01CD0190 |
:10B710000E943469DC01CB019C0197FDCDC3832FCE |
:10B72000992787FD9A95D801082E0E94676A09E03B |
:10B7300010E08091D3049091D404A091D504B091ED |
:10B74000D604BC01CD010E943469DC01CB01D801D3 |
:10B75000082E0E94676A0E94B00568E770E00E94A8 |
:10B76000D22F309187080C94EC45C601AA2797FD8B |
:10B77000A095BA2FBC01CD012D8D3E8D4F8D58A1C6 |
:10B780000E94CB693B014C010E943F6A30939204B6 |
:10B7900020939104109223050C945E508C0167CD88 |
:10B7A0006739710534F186E990E09093C80380937E |
:10B7B000C703EECD0196A11DB11D0C94854C0196D9 |
:10B7C000A11DB11D0C94794C81E08093230510924A |
:10B7D000090510920A0510920B0510920C051092A3 |
:10B7E0009D0410929E0410929F041092A0040C9449 |
:10B7F000F5447093C8036093C703CACD0F96A11D8B |
:10B80000B11D09CB095F1F4F0C94AF50F095E19526 |
:10B81000FF4F42CB0F96A11DB11D0ACB709341057E |
:10B82000609340055A834983BBCD80931F050C94D8 |
:10B83000EC4581E080934B05A2CB3F8930934A05CC |
:10B8400030934B059CCB40931F050C94EC45B09274 |
:10B850003105A09230052091B9092C8F0C947349C1 |
:10B86000109232050C94D94920932805309329056C |
:10B8700040932A0550932B05109234050C94404BAD |
:10B8800020922405309225054092260550922705E6 |
:10B89000109233050C944A4A109235050C94B24B21 |
:10B8A0006F3F710509F00CF40DCD2FEF30E00ACD9C |
:10B8B0002F3F310509F00CF4B2CC2FEF30E0AFCCC4 |
:10B8C00050904709252D3327220F331F220F331F96 |
:10B8D00020553040241735070CF03ACDA901B901A5 |
:10B8E00037CD6F3F710509F00CF46BCC2FEF30E0D2 |
:10B8F00068CC121613060CF432CC229FC001239F91 |
:10B90000900D329F900D112497FD6DC395958795ED |
:10B91000959587952091100430911104281B390BBF |
:10B9200032CC0E94B00545E665E878E00E945805F3 |
:10B9300080918D0880FF10C080911D0390911E039F |
:10B94000875B934038F480911D0390911E038E5EB7 |
:10B95000924010F40E945A1C1092F9030E94193B65 |
:10B9600081E08093F903579AF6CE4D5F5F4F45CE45 |
:10B9700081E080934A0503CB8091510481FFD1C1BE |
:10B980002091C7033091C803C9010F9640917904F3 |
:10B9900050917A04841795070CF0EFC180914A0505 |
:10B9A000882309F0EAC180914C0581FFF8C28D7FA0 |
:10B9B0006090740470907504809076049090770481 |
:10B9C0006092700470927104809272049092730479 |
:10B9D000816080934C05421B530B9A012F503040DD |
:10B9E00037FDF4C280913E0590913F05280F391F25 |
:10B9F00030933F0520933E0520913E0530913F0551 |
:10BA0000C90137FF04C088279927821B930B8150F7 |
:10BA100092400CF481C1809192089927829FF00195 |
:10BA2000839FF00D929FF00D1124CF0160E075E02F |
:10BA30000E940A6ACB01AA2797FDA095BA2F2091F0 |
:10BA40007004309171044091720450917304820F1C |
:10BA5000931FA41FB51F8093700490937104A0934B |
:10BA60007204B093730410923F0510923E05B1FE2C |
:10BA700006C08BE490E09093FC038093FB038091DD |
:10BA80009608882309F048C10091420510914305AA |
:10BA9000A80117FD93C255954795559547958091F7 |
:10BAA000270390912803209100013327489F7001BC |
:10BAB000499FF00C589FF00C1124C701B9010E9456 |
:10BAC0000A6A663471050CF073C226E430E03093E4 |
:10BAD000C8032093C7038091E7049091E804892B61 |
:10BAE00009F4FBCAD401C30160927004709271041E |
:10BAF0008092720490927304F8CA109245051092D5 |
:10BB000044058FEF93E09093CA038093C903F3CC6D |
:10BB1000AFE0803A9A0708F0E2C0D801C701FAE026 |
:10BB2000B695A79597958795FA95D1F7E81AF90AEA |
:10BB30000A0B1B0BDA01C901880F991FAA1FBB1F33 |
:10BB4000880F991FAA1FBB1FA6CC109186080C94C2 |
:10BB50004F45209328053093290540932A0550939B |
:10BB60002B051092310510923005E8EE2E2EE3E001 |
:10BB70003E2E3092AB032092AA030C94B24B6092FB |
:10BB80002405709225058092260590922705109233 |
:10BB900031051092300588EE282E83E0382E309241 |
:10BBA000AB032092AA030C944A4A70936D046093ED |
:10BBB0006C04D0926F04C0926E04CB0177FD6BC110 |
:10BBC000BC0175956795C601D7FC63C16C01D5941E |
:10BBD000C7940C948D48299A0C94234581E0809356 |
:10BBE00035050C94B24B909581959F4F0ECCB09536 |
:10BBF000A095909581959F4FAF4FBF4F0C944149B1 |
:10BC0000209328053093290540932A0550932B054E |
:10BC100081E0809334050C94404BB095A0959095AD |
:10BC200081959F4FAF4FBF4F0C94A34A209224059C |
:10BC300030922505409226055092270581E0809399 |
:10BC400033050C944A4A81509F4FAF4FBF4F0C941D |
:10BC5000E44781509F4FAF4FBF4F0C94CA4781506C |
:10BC60009F4FAF4FBF4F0C945F4881509F4FAF4FD6 |
:10BC7000BF4F0C94524861507F4F8F4F9F4F0C9491 |
:10BC8000224861507F4F8F4F9F4F0C940C4881E0AA |
:10BC9000809332050C94D949615E7F4F8F4F9F4F3F |
:10BCA000AFCA6FE770E080E090E0660E771E881EF6 |
:10BCB000991E93CA2D5F3F4F35CB61587F4F8F4FF1 |
:10BCC0009F4FF1CA61587F4F8F4F9F4F6BCA2D5FB7 |
:10BCD0003F4F4FCA295F3F4F36CA0F9624CA805440 |
:10BCE0009F4108F096C0D801C7017BE0B695A795A3 |
:10BCF000979587957A95D1F7E81AF90A0A0B1B0BE5 |
:10BD0000DA01C901820F931FA41FB51FC4CB615074 |
:10BD1000704E8F4F9F4F8FCB00914205109143057E |
:10BD2000DACE6090740470907504809076049090E0 |
:10BD30007704D401C30180599140A040B040809362 |
:10BD4000700490937104A0937204B09373042091D3 |
:10BD50009608222309F446C033273093C803209362 |
:10BD6000C7030091420510914305BFC9F095E195C5 |
:10BD7000FF4F0C94CE45299A81CCC9010F974817E3 |
:10BD800059070CF058C080914B05882309F053C027 |
:10BD900080914C0580FF1EC18E7F6090740470906E |
:10BDA000750480907604909077046092700470928D |
:10BDB00071048092720490927304826080934C05A7 |
:10BDC000421B530B9A01215F3F4F37FD0EC18091FB |
:10BDD0003E0590913F05821B930B90933F05809306 |
:10BDE0003E050ACE28E730E0B8CF209328053093EF |
:10BDF000290540932A0550932B050C94284B20933A |
:10BE000028053093290540932A0550932B050C945F |
:10BE10009A4BD801C7016CE0B695A7959795879581 |
:10BE20006A95D1F7E81AF90A0A0B1B0BE20EF31E0A |
:10BE3000041F151F34CB20914C05822F9927837046 |
:10BE40009070892B81F12C7F20934C0510923F0537 |
:10BE500010923E0560907404709075048090760492 |
:10BE600090907704609270047092710480927204D2 |
:10BE700090927304B1FEC0CD84EF91E09093FC03E7 |
:10BE80008093FB03B9CD81509F4FAF4FBF4F0C94B0 |
:10BE9000344B01969BCE019693CE295F3F4F4F4F77 |
:10BEA0005F4F0C947D4B609074047090750480908B |
:10BEB000760490907704A0CD21503F4F30CC295F7D |
:10BEC0003F4F4F4F5F4F0C940B4B81509E4FAF4FE6 |
:10BED000BF4F0C94F64A81509F4FAF4FBF4F0C9409 |
:10BEE0003E4AB095A095909581959F4FAF4FBF4F1B |
:10BEF0000C94F749295F3F4F4F4F5F4F0C94AF4968 |
:10BF000021503E4F4F4F5F4F0C949649B095A095EE |
:10BF1000909581959F4FAF4FBF4F0C949049F095EE |
:10BF2000E195FF4F0C944B4581509F4FD6CB8150EC |
:10BF30009F4FBCCB81509F4FAF4FBF4F0C94A64B30 |
:10BF4000F095E195FF4F0C94854821503E4F4F4F9F |
:10BF50005F4F0C94644BB095A095909581959F4F41 |
:10BF6000AF4FBF4F0C945E4B81509F4FAF4FBF4FB1 |
:10BF70000C94D149B095A095909581959F4FAF4F66 |
:10BF8000BF4F0C94F24A295F3F4F4F4F5F4F0C94C5 |
:10BF9000164A21503E4F4F4F5F4F0C94FD49609021 |
:10BFA000740470907504809076049090770410CD9E |
:10BFB0006739710534F026E930E089CD4D5F5F4F78 |
:10BFC0006ACD7093C8036093C70385CD30952195E2 |
:10BFD0003F4F08CD60907404709075048090760493 |
:10BFE00090907704EACE039691CC309521953F4FFF |
:10BFF000EECE3A94E2E0F0E0EE0EFF1E0C5F1F4F33 |
:10C000000894C11CD11C37FC02C00C94C154ED969D |
:10C010000FB6F894DEBF0FBECDBFDF91CF911F9159 |
:10C020000F91FF90EF90DF90CF90BF90AF909F90D7 |
:10C030008F907F906F905F904F903F902F900895DA |
:10C040008091590590915A05A0915B05B0915C05CE |
:10C050008093510590935205A0935305B0935405D6 |
:10C060008091550590915605A0915705B0915805BE |
:10C0700080934D0590934E05A0934F05B0935005C6 |
:10C080000895109264051092630510926205109253 |
:10C090006105089584B1806A84B93D9A82E58CBDBA |
:10C0A0001DBC459A81E0809359098AEA80935D0915 |
:10C0B00083E880935E099AE090935F09109261098A |
:10C0C0001092600910926309109262091092BB09E4 |
:10C0D00010927F09109280098CE48093810986E098 |
:10C0E00080938209909383090895EF92FF920F93B2 |
:10C0F0001F9380919C089927880F991F880F991F7B |
:10C100007C010027F7FC0095102F8091CD049091C1 |
:10C11000CE04A091CF04B091D004BC01CD01A80100 |
:10C1200097010E943F6A30936109209360098091D2 |
:10C13000C5049091C604A091C704B091C804BC0185 |
:10C14000CD01A80197010E943F6A309363092093B3 |
:10C15000620920914F093091500940915109509145 |
:10C160005209DA01C901E3E0880F991FAA1FBB1F1A |
:10C17000EA95D1F7820F931FA41FB51F820F931F5B |
:10C18000A41FB51F20918603309187034091880337 |
:10C1900050918903BC01CD010E943F6A3093690927 |
:10C1A00020936809E091D704F091D8048091110997 |
:10C1B00090911209BF010E940A6ACB019B01220FD4 |
:10C1C000331F220F331F280F391F280F391F37FD48 |
:10C1D0001CC1359527953595279530936509209392 |
:10C1E000640980914B0990914C09BF010E940A6A31 |
:10C1F0009B01220F331F220F331F260F371F260FDD |
:10C20000371F37FDFFC03595279535952795309316 |
:10C210006709209366091092D8041092D7041092EF |
:10C2200012091092110910924C0910924B09809139 |
:10C230005F0999278C30910509F4A1C08D309105D3 |
:10C240000CF069C08A30910509F4A4C10B9709F478 |
:10C2500010C180917F09882309F4CBC02091850902 |
:10C2600030918609C90181509E4F8F5F9340C8F479 |
:10C270004091870950918809CA0181509E4F8F5F74 |
:10C28000934078F480918D0885FF0BC0309364054E |
:10C290002093630550936205409361058AEF809374 |
:10C2A000660580918B0990918C0921E0893692076F |
:10C2B0000CF056C19C019093940480939304809158 |
:10C2C000910490919204281B390BC901845E9D4F03 |
:10C2D00068E671E00E940A6A845B90409093900443 |
:10C2E00080938F0420918F09309190098091FB03F6 |
:10C2F0009091FC038217930740F4809122078823D2 |
:10C3000021F43093FC032093FB038091840987364A |
:10C3100009F0ADC12AC18E30910509F476C18E3085 |
:10C3200091050CF475C00F9709F093CF8091B40874 |
:10C33000809370098091DC08809371098091920349 |
:10C34000809372098091AD08809373098091AE0843 |
:10C35000809374098091AF0880937509809191034F |
:10C36000809376098091B108809377098091B20813 |
:10C37000809378098091B308809379096ACF80917E |
:10C380002207863018F01092220785E0809370090A |
:10C390008091D908809371098091D3079091D40737 |
:10C3A0009093730980937209809170049091710445 |
:10C3B000A0917204B0917304BC01CD0125E030E07E |
:10C3C00040E050E00E943F6A309375092093740961 |
:10C3D0008091CF08809376098091D0088093770967 |
:10C3E0008091D1088093780980917F09882309F092 |
:10C3F00035CF109264051092630510926205109279 |
:10C40000610535C12D5F3F4FFECE2D5F3F4FE1CE21 |
:10C410008091CA08809370098091CB08809371093C |
:10C420008091CC08809372098091CD088093730924 |
:10C430008091CE08809374098091D2088093750909 |
:10C440008091D308809376098091D40880937709EE |
:10C450008091D708809378098091D50880937909D5 |
:10C460008091D60880937A098091D80880937B09BF |
:10C47000F0CEF89480918708E82FFF27EE0FFF1F7A |
:10C48000ED5AF74F0190F081E02DE038F1050CF006 |
:10C49000D1C02FEFE138F20714F4E1E8FFEFE093A9 |
:10C4A000700980918808E82FFF27EE0FFF1FED5AD3 |
:10C4B000F74F0190F081E02DE038F1050CF4CDC08C |
:10C4C000EFE7F0E0E093710980918608E82FFF27FD |
:10C4D000EE0FFF1FED5AF74F0190F081E02DE0388D |
:10C4E000F1050CF4B2C0EFE7F0E0E093720980913F |
:10C4F0008508E82FFF27EE0FFF1FED5AF74F019039 |
:10C50000F081E02DE038F1050CF497C0EFE7F0E0A2 |
:10C510007894E093730980918904809374098091E1 |
:10C5200087048093750980918504809376098091B2 |
:10C5300083048093770980918204809378098091A5 |
:10C540008104809379098091D7079091D80797FD4E |
:10C550008CC0959587959595879580937A0979CE26 |
:10C560002091930430919404AACE809191098093F4 |
:10C57000B809809192098093BA09809193098093B8 |
:10C58000B909809194098093BB09809195098093A2 |
:10C59000BC096DC08091650480937009809164042A |
:10C5A0008093710980916304809372098091620481 |
:10C5B0008093730980916104809374098091600471 |
:10C5C0008093750980915F048093760980915E0461 |
:10C5D0008093770980915104809378098091510468 |
:10C5E000837F809351048091270390912803809347 |
:10C5F00079098091000180937A09A2E0B0E00E945D |
:10C600005A6A802D80937B0924CE80918009809383 |
:10C6100070098091810980937109809182098093CA |
:10C62000720980918309809373098091020180933C |
:10C6300074090FCEEFE7F0E032CF8FEFE138F80763 |
:10C640000CF066CFE1E8FFEF63CF6FEFE138F6075C |
:10C650000CF04BCFE1E8FFEF48CF4FEFE138F407A4 |
:10C660000CF030CFE1E8FFEF2DCF039672CF1F9192 |
:10C670000F91FF90EF90089580915909882309F454 |
:10C680003BC045988DE599E090935B0980935A09EA |
:10C6900080916505E82FFF27E453FC4F982F9F5F9B |
:10C6A000808180935F09973008F027C090936505DB |
:10C6B000109259090E94756081E080935C09000026 |
:10C6C000000000000000000000000000000000006A |
:10C6D000000000000000000000000000000000005A |
:10C6E0000000000000000000000000000000809139 |
:10C6F0005D0980937C098EBD089510926505D8CFA1 |
:10C7000020915909222309F045C00DB407FE42C00B |
:10C7100084E08093FA03459A3EB580916705992796 |
:10C720008130910509F437C0823091050CF451C075 |
:10C73000029709F439C020915C09203208F030C01A |
:10C74000459800000000000000000000000000000C |
:10C7500000000000000000000000000000000000D9 |
:10C7600000000000000000000000000000000000C9 |
:10C770000000E0915A09F0915B09E20FF11D808100 |
:10C780008EBD80917C099081890F80937C092F5FF9 |
:10C7900020935C090895353551F120936705CBCF7F |
:10C7A00081E080935909F3CF80917E09E82FFF271C |
:10C7B000E256F64F30838F5F80937E098A3100F115 |
:10C7C00080916805381711F120937F091092670551 |
:10C7D000B2CF892B09F0AFCF20937E093093680543 |
:10C7E000313809F0A8CF81E080936705A4CF80910C |
:10C7F0006805830F8093680582E0809367059BCF6F |
:10C8000080916805830F8093680595CF8AE1EEE9F2 |
:10C81000F9E0A4E8B9E001900D928A95E1F781E092 |
:10C8200080937F091092670586CF87B18C6087B9A6 |
:10C830004298439810926A0580E88093D40310923E |
:10C8400069058093D303089580916F0581508F3FD0 |
:10C8500019F080936F05089584E080936F058091AF |
:10C86000510485FF16C04091C8084093700560913F |
:10C87000C908609371055091DB08252F332724FFE9 |
:10C8800013C080917804882379F425FF17C0429A59 |
:10C8900033C080918204882334F74091C4084093C8 |
:10C8A00070056091C608E5CF9091C5089B3FB8F030 |
:10C8B000809113098D3D98F047FDE9CF4298252FCF |
:10C8C000332724FD1DC09091C7089B3F08F180913C |
:10C8D0004609873EE8F067FD19C0439808959B3FDD |
:10C8E00020F0809113098A3008F180916A05815007 |
:10C8F0008F3F21F180936A05252F332724FFE3CF53 |
:10C90000809178048823F9F626FFE7CF439A0895AB |
:10C910009B3F20F0809146098A3060F08091690544 |
:10C9200081508F3FE1F080936905089547FDC6CFA0 |
:10C93000429AE2CF67FDD1CF439A089580911309BF |
:10C94000815080936A058091D4038130C9F0869527 |
:10C950008093D403842309F4B1CF429ACDCF809140 |
:10C9600046098150809369058091D303813051F04D |
:10C9700086958093D303862309F4AFCF439A089515 |
:10C9800080E8E6CF80E8F5CF8091C9008F7780936B |
:10C99000C9008091C9008F7B8093C9008091C90034 |
:10C9A0008F7D8093C9005A9A52981092CD0084E1ED |
:10C9B00090E08093CC008091C80082608093C80092 |
:10C9C00080E18093C9008091CA008F778093CA006C |
:10C9D0008091CA008F7B8093CA008091CA008F7DAE |
:10C9E0008093CA008091CA008F7E8093CA00809194 |
:10C9F000CA00877F8093CA008091C9008B7F809393 |
:10CA0000C9008091CA0084608093CA008091CA00E6 |
:10CA100082608093CA008091C80087FF0CC080911B |
:10CA2000CE008091C800882334F48091CE0080919C |
:10CA3000C8008823A4F38091C90080688093C9004E |
:10CA400008951F93CF93DF9380E197E20E94F01740 |
:10CA5000EC0110E08091C9008F778093C90080912C |
:10CA6000C9008F7E8093C9005A988FE198E09F9308 |
:10CA70008F931F930E9471140F900F900F90CE010F |
:10CA80000E94F917882309F066C04A9BF8CF8AE50F |
:10CA900090E00E94F017EC0185E598E09F938F935A |
:10CAA0001F920E947114529A0F900F900F90CE0116 |
:10CAB0000E94F9178823D9F383E690E05A9A0197E8 |
:10CAC00097FFFCCF8FE891E05A98019797FFFCCF32 |
:10CAD00089E090E05A9A019797FFFCCF89E090E0B7 |
:10CAE0005A98019797FFFCCF8FE891E05A9A0197E7 |
:10CAF00097FFFCCF8FE891E05A98019797FFFCCF02 |
:10CB000089E090E05A9A019797FFFCCF89E090E086 |
:10CB10005A98019797FFFCCF8FE891E05A9A0197B6 |
:10CB200097FFFCCF8FE891E05A98019797FFFCCFD1 |
:10CB300089E090E05A9A019797FFFCCF89E090E056 |
:10CB40005A98019797FFFCCF8FE891E05A9A019786 |
:10CB500097FFFCCF0AC08BE598E09F938F931F93BC |
:10CB60000E9471140F900F900F9052985A980E9443 |
:10CB7000C464DF91CF911F9108951F920F920FB659 |
:10CB80000F921124EF92FF920F931F932F933F93D5 |
:10CB90004F935F936F937F938F939F93AF93BF93C5 |
:10CBA000CF93DF93EF93FF932091CE008091D50335 |
:10CBB000813009F44BC0809172058823C9F040E0B0 |
:10CBC00050E0809173058823C9F4452B09F44AC0CD |
:10CBD00081E080937305809174058F5F8093740565 |
:10CBE00043E0809174058031E8F44093720504C1FC |
:10CBF00041E050E080917305882339F3813009F4D6 |
:10CC00004AC08230B9F1833009F44AC081E0809390 |
:10CC1000D503109274051092760544E48091740552 |
:10CC2000803118F380917605882331F48091D50303 |
:10CC3000882311F480938403109274051092760572 |
:10CC40001092730584E480937205D6C01092D503C8 |
:10CC500084E480937205109274051092730510920B |
:10CC60007505CAC044E4809374058093730580936E |
:10CC70007505D4CF452B51F643E02093750590916F |
:10CC80007405923009F492C083E0809373059F5F2E |
:10CC900090937405C3CF452B09F0B8CF82E099CFAC |
:10CCA000452B09F0B3CF482F82E080937305809124 |
:10CCB00074058F5F8093740590917505892F869513 |
:10CCC0008695E82FFF27EF70F0703196892F99270E |
:10CCD000982F88273327822B932B93708050924074 |
:10CCE00063E070E00E940A6AEB30F10508F057C07B |
:10CCF0007F01EE0EFF1EF701ED5AF74F8081918103 |
:10CD00009B01281B390BC90137FD6EC0069754F4EF |
:10CD100080918204883C08F05BC080918204865F29 |
:10CD200080938204F701ED5AF74F808191819C0135 |
:10CD3000220F331F280F391F260F371F37FD51C011 |
:10CD4000E901D595C795D595C795CB0101968C1767 |
:10CD50009D07BCF5219780918204843B60F1870197 |
:10CD60000759174FF701ED5AF74F80819181FE0166 |
:10CD7000E81BF90BCF0163E070E00E940A6ACB0167 |
:10CD8000880F991F860F971FF8019183808323E5F1 |
:10CD900038E0E20EF31EF701D183C0833FCF7297D4 |
:10CDA00008F43CCF81E08093D50338CF27FD20C025 |
:10CDB0001092760569CFF701E759F74F118210827B |
:10CDC000E6CF61507040C617D7072CF62196C3CF27 |
:10CDD00088EC8093820480916F008F7D80936F0038 |
:10CDE000A1CF2D5F3F4FACCF909581959F4F8ECFB8 |
:10CDF00081E08093760548CFFF91EF91DF91CF914D |
:10CE0000BF91AF919F918F917F916F915F914F9162 |
:10CE10003F912F911F910F91FF90EF900F900FBEB8 |
:10CE20000F901F901895CF93FC0197FD21C0C1E092 |
:10CE300028E631E0CF01B9010E940A6AFC018B3576 |
:10CE4000910554F08B5590408A35910538F484EB68 |
:10CE500090E08E1B9F0BFC0141E013C0CF01855B6E |
:10CE600090408A35910548F4E45BF0404FEF09C0EB |
:10CE7000CFEFF095E195FF4FDBCF2E1B3F0BF90174 |
:10CE80004FEFEE0FFF1FE054F64F259134918C2F9A |
:10CE9000992787FD9095829FB001839F700D929F87 |
:10CEA000700D1124842F992787FD9095689FA0010C |
:10CEB000699F500D789F500D1124CA01CF9108959C |
:10CEC0002AE530E0281B390BC9010E941367089539 |
:10CED0001F93CF93DF93EB016115710519F4009750 |
:10CEE00009F494C097FD3EC011E0209729F48AE52B |
:10CEF0001802B00111248AC0AA2797FDA095BA2F65 |
:10CF000026E0880F991FAA1FBB1F2A95D1F79E0103 |
:10CF1000442737FD4095542FBC01CD010E943F6A44 |
:10CF2000F90137FD2CC081E0EA35F807ACF08CE15F |
:10CF3000E73AF807CCF02AE530E01C161D061CF590 |
:10CF4000812F992787FD9095829FB001839F700D57 |
:10CF5000929F700D11245AC0EA59F74F8491282FDF |
:10CF60003327EBCF1FEFC1CF89E0ED38F8078CF402 |
:10CF700085E0EA3BF80784F028E530E0DECFF09565 |
:10CF8000E195FF4FD0CFD7FD0EC0B901645B704073 |
:10CF90003DC029E530E0D1CF84E0E731F80754F017 |
:10CFA00027E530E0CACF111684F764EB70E0621B0E |
:10CFB000730B2CC083E0EE32F8071CF026E530E05E |
:10CFC000BCCF82E0E939F8071CF025E530E0B5CFA9 |
:10CFD00082E0E233F8071CF024E530E0AECF81E0D8 |
:10CFE000E73EF8071CF023E530E0A7CF81E0ED3AFB |
:10CFF000F8071CF022E530E0A0CFEF57F1401CF01D |
:10D0000021E530E09ACF20E530E097CFCB01DF91EA |
:10D01000CF911F910895EF92FF920F931F93CF939B |
:10D02000DF937B018C0120E030E040E050E0FA012A |
:10D03000E9016FE00BC0C21BD30BE40BF50B2F5FB4 |
:10D040003F4F4F4F5F4F615067FD31C0220F331F7D |
:10D05000441F551FCC0FDD1FEE1FFF1FCC0FDD1F20 |
:10D06000EE1FFF1FD801C7017EE1B695A7959795E2 |
:10D0700087957A95D1F7C80FD91FEA1FFB1FEE0CD1 |
:10D08000FF1C001F111FEE0CFF1C001F111F2F5F44 |
:10D090003F4F4F4F5F4FC217D307E407F50758F6CE |
:10D0A0002150304040405040615067FFCFCF5695EF |
:10D0B000479537952795CA01B901DF91CF911F9107 |
:10D0C0000F91FF90EF9008950024222733274427E3 |
:10D0D00051E0BB27EE27FF27A0E1660F771F881FCF |
:10D0E000991F001C221F331F441F660F771F881FC4 |
:10D0F000991F001C221F331F441F2AF4050E2B1FEB |
:10D100003E1F4F1F04C0051A2B0B3E0B4F0B550F34 |
:10D11000BB1FEE1F587F556047FD5250AA95E9F698 |
:10D12000E695B7955795E695B7955795852F9B2F1B |
:10D1300008952227332741E0552768E0880F991F7B |
:10D14000221F331F880F991F221F331F1AF4240F29 |
:10D15000351F02C0241B350B440F551F487F456007 |
:10D1600037FD42506A9551F7569547955695479524 |
:10D17000842F0895AA2797FF04C0809590958A1F51 |
:10D180009A1F77FF04C0609570956A1F7A1F669F8B |
:10D190009001779FA001679F300D411D5A1F300DF0 |
:10D1A000411D5A1F889FF001999F2E0F3F1F401D60 |
:10D1B000511D899F300D411D5A1F300D411D5A1FB1 |
:10D1C000CA01B901112480CFFC014150504030F018 |
:10D1D00001900616D1F73197CF0108958827992736 |
:10D1E00008955058192EA6D001D08CC0BA176207E6 |
:10D1F000730784079507B1F188F40EF410940B2E91 |
:10D20000BA2FA02D062E622F202D072E732F302D22 |
:10D21000082E842F402D092E952F502DFF275523A2 |
:10D22000B9F0591B49F0573E98F046953795279528 |
:10D23000A795F0405395C9F776F0BA0F621F731F98 |
:10D24000841F30F4879577956795B795F04093954F |
:10D2500017FA0F2E0895BF1BBB27BA0B620B730B77 |
:10D26000840BF6CFDEF692C097FB70D09F3738F074 |
:10D27000FEE9F91B982F872F762F6B2F05C083C0EF |
:10D280009695879577956795F150D0F73EF49095F0 |
:10D290008095709561957F4F8F4F9F4F0895E894CB |
:10D2A00003C097FB0EF4F3DFB62F672F782F892F7B |
:10D2B0009EE9002427C00ED05EF004C00BD026F0FB |
:10D2C00001C008D019F020F48FEF089580E0089590 |
:10D2D00081E0089597FB092E052600F868942DD06B |
:10D2E000E89407FC07C0621773078407950721F0CD |
:10D2F00008F400940794989408959A95BB0F661FBC |
:10D30000771F881F11249923A1F08823B2F79F3F2C |
:10D3100059F0BB0F48F421F4002011F460FF04C061 |
:10D320006F5F7F4F8F4F9F4F881F9795879597F916 |
:10D33000089529C0052E092607FA440F551F5F3F9F |
:10D3400079F0AA27A51708F051E04795880F991F93 |
:10D350009F3F31F0BB27B91708F091E087950895FA |
:10D360009F919F91112414C097FB880F991F9F3F95 |
:10D3700031F0BB27B91708F091E0879508959F9188 |
:10D380009F91112405C0662777278827992708953C |
:10D390009FEF80EC0895629FD001739FF001829F00 |
:10D3A000E00DF11D649FE00DF11D929FF00D839F34 |
:10D3B000F00D749FF00D659FF00D9927729FB00DD1 |
:10D3C000E11DF91F639FB00DE11DF91FBD01CF01E4 |
:10D3D00011240895991B79E004C0991F961708F04D |
:10D3E000961B881F7A95C9F780950895AA1BBB1BC9 |
:10D3F00051E107C0AA1FBB1FA617B70710F0A61B55 |
:10D40000B70B881F991F5A95A9F780959095BC0175 |
:10D41000CD01089597FB092E07260AD077FD04D089 |
:10D42000E5DF06D000201AF4709561957F4F0895CE |
:10D43000F6F7909581959F4F0895A1E21A2EAA1BA9 |
:10D44000BB1BFD010DC0AA1FBB1FEE1FFF1FA217B4 |
:10D45000B307E407F50720F0A21BB30BE40BF50BB1 |
:10D46000661F771F881F991F1A9469F7609570953A |
:10D47000809590959B01AC01BD01CF01089597FB6C |
:10D48000092E05260ED057FD04D0D7DF0AD0001C88 |
:10D4900038F450954095309521953F4F4F4F5F4F51 |
:10D4A0000895F6F790958095709561957F4F8F4F11 |
:10D4B0009F4F0895F999FECFB2BDA1BDF89A11967C |
:10D4C00000B40895F7DF01921A94E1F70895F999ED |
:10D4D000FECFB2BDA1BD00BC11960FB6F894FA9A6A |
:10D4E000F99A0FBE08950190F2DF1A94E1F70895BA |
:10D4F0005E010A0151756164726F0000416E676CD4 |
:10D50000654E69636B20202020202020416E676CCF |
:10D5100065526F6C6C202020202020204163634ED8 |
:10D5200069636B202020202020202020416363524B |
:10D530006F6C6C2020202020202020204779726FE3 |
:10D5400047696572202020202020202048696768D4 |
:10D55000742056616C756520202020204163635A39 |
:10D560002020202020202020202020204761732000 |
:10D57000202020202020202020202020436F6D709C |
:10D580006173732056616C7565202020566F6C7432 |
:10D59000616765202020202020202020456D7066B6 |
:10D5A000616E672020202020202020204779726F84 |
:10D5B000204B6F6D70617373202020204D6F746F4E |
:10D5C000722046726F6E7420202020204D6F746F81 |
:10D5D0007220526561722020202020204D6F746FD0 |
:10D5E00072204C6566742020202020204D6F746FBF |
:10D5F000722052696768742020202020202020207B |
:10D60000202020202020202020202020202020201A |
:10D6100020202020202020202020202056617269F8 |
:10D620006F4D657465722020202020204D4B334DB6 |
:10D6300061672043616C5374617465205365727631 |
:10D640006F2020202020202020202020486F6F766F |
:10D650006572676173202020202020202020202058 |
:10D6600020202020202020202020202020202020BA |
:10D6700020202020202020202020202020202020AA |
:10D68000202020202020202020202020202020209A |
:10D69000202020202020202020202020202020208A |
:10D6A000202020202020202020202020202020207A |
:10D6B0002020202020202020202020204932432DFF |
:10D6C0004572726F722020202020202020202020F0 |
:10D6D0002020202020202020202020204750535F81 |
:10D6E0004E69636B20202020202020204750535F6C |
:10D6F000526F6C6C2020202020202020C800016464 |
:10D70000FF01FFFF01FC01FC0101737373FF0300C4 |
:10D710007D0000C409C40964000E48616C6C6F2070 |
:10D7200057656C740000000000000000000000005D |
:10D7300000000000000000000000000000000000E9 |
:10D7400000000000000000000000000000000000D9 |
:10D7500000000000000000000000000000000000C9 |
:10D7600000000000000000000000010203040506A4 |
:10D770000708090A01040B050000ECFF6440415A48 |
:10D780004664640A02969696960840403A10FB302A |
:10D79000380190D0030090D00300F401640053706E |
:10D7A0006F727400004E6F726D616C0000426567AD |
:10D7B000696E6E657200007800FF03640A0B0D0B42 |
:06D7C0000C0E0F01010137 |
:00000001FF |
/branches/V0.76g_WKN-hef/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 |
/branches/V0.76g_WKN-hef/License.txt |
---|
0,0 → 1,52 |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Copyright (c) Holger Buss, Ingo Busker |
// + Nur für den privaten Gebrauch / NON-COMMERCIAL USE ONLY |
// + www.MikroKopter.com |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Es gilt für das gesamte Projekt (Hardware, Software, Binärfiles, Sourcecode und Dokumentation), |
// + dass eine Nutzung (auch auszugsweise) nur für den privaten und nichtkommerziellen Gebrauch zulässig ist. |
// + Sollten direkte oder indirekte kommerzielle Absichten verfolgt werden, ist mit uns (info@mikrokopter.de) Kontakt |
// + bzgl. der Nutzungsbedingungen aufzunehmen. |
// + Eine kommerzielle Nutzung ist z.B.Verkauf von MikroKoptern, Bestückung und Verkauf von Platinen oder Bausätzen, |
// + Verkauf von Luftbildaufnahmen, usw. |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Werden Teile des Quellcodes (mit oder ohne Modifikation) weiterverwendet oder veröffentlicht, |
// + unterliegen sie auch diesen Nutzungsbedingungen und diese Nutzungsbedingungen incl. Copyright müssen dann beiliegen |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Sollte die Software (auch auszugesweise) oder sonstige Informationen des MikroKopter-Projekts |
// + auf anderen Webseiten oder sonstigen Medien veröffentlicht werden, muss unsere Webseite "http://www.mikrokopter.de" |
// + eindeutig als Ursprung verlinkt und genannt werden |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Keine Gewähr auf Fehlerfreiheit, Vollständigkeit oder Funktion |
// + Benutzung auf eigene Gefahr |
// + Wir übernehmen keinerlei Haftung für direkte oder indirekte Personen- oder Sachschäden |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Die Portierung oder Nutzung der Software (oder Teile davon) auf andere Systeme (ausser der Hardware von www.mikrokopter.de) ist nur |
// + mit unserer Zustimmung zulässig |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Die Funktion printf_P() unterliegt ihrer eigenen Lizenz und ist hiervon nicht betroffen |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Redistributions of source code (with or without modifications) must retain the above copyright notice, |
// + this list of conditions and the following disclaimer. |
// + * Neither the name of the copyright holders nor the names of contributors may be used to endorse or promote products derived |
// + from this software without specific prior written permission. |
// + * The use of this project (hardware, software, binary files, sources and documentation) is only permittet |
// + for non-profit use (directly or indirectly) |
// + Commercial use (for excample: selling of MikroKopters, selling of PCBs, assembly, ...) is only permitted |
// + with our written permission |
// + * If sources or documentations are redistributet, our webpage (http://www.MikroKopter.de) must be |
// + clearly linked and named as origin |
// + * porting the sources to other systems or using the software on other systems (except hardware from www.mikrokopter.de) is not allowed |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
// + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
// + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
// + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE |
// + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
// + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
// + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
// + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
// + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
// + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
// + POSSIBILITY OF SUCH DAMAGE. |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
/branches/V0.76g_WKN-hef/Settings.h |
---|
--- V0.76g_WKN-hef/Spectrum.c (nonexistent) |
+++ V0.76g_WKN-hef/Spectrum.c (revision 1548) |
@@ -0,0 +1,321 @@ |
+/*####################################################################################### |
+Decodieren eines RC Summen Signals oder Spektrum Empfänger-Satellit |
+#######################################################################################*/ |
+ |
+#include "Spectrum.h" |
+#include "main.h" |
+unsigned char SpektrumTimer = 0; |
+ |
+//--------------------------------------------------------------// |
+ |
+//--------------------------------------------------------------// |
+void SpektrumBinding(void) |
+{ |
+ unsigned int timerTimeout = SetDelay(10000); // Timeout 10 sec. |
+ unsigned char connected = 0; |
+ unsigned int delaycounter; |
+ |
+ UCSR1B &= ~(1 << RXCIE1); // disable rx-interrupt |
+ UCSR1B &= ~(1<<RXEN1); // disable Uart-Rx |
+ PORTD &= ~(1 << PORTD2); // disable pull-up |
+ |
+ printf("\n\rPlease connect Spektrum receiver for binding NOW..."); |
+ |
+ while(!CheckDelay(timerTimeout)) |
+ { |
+ if (PIND & (1 << PORTD2)) { timerTimeout = SetDelay(90); connected = 1; break; } |
+ } |
+ |
+ if (connected) |
+ { |
+ |
+ printf("ok.\n\r"); |
+ DDRD |= (1 << DDD2); // Rx as output |
+ |
+ while(!CheckDelay(timerTimeout)); // delay after startup of RX |
+ for (delaycounter = 0; delaycounter < 100; delaycounter++) PORTD |= (1 << PORTD2); |
+ for (delaycounter = 0; delaycounter < 400; delaycounter++) PORTD &= ~(1 << PORTD2); |
+ |
+ for (delaycounter = 0; delaycounter < 10; delaycounter++) PORTD |= (1 << PORTD2); |
+ for (delaycounter = 0; delaycounter < 10; delaycounter++) PORTD &= ~(1 << PORTD2); |
+ for (delaycounter = 0; delaycounter < 400; delaycounter++) PORTD |= (1 << PORTD2); |
+ for (delaycounter = 0; delaycounter < 400; delaycounter++) PORTD &= ~(1 << PORTD2); |
+ |
+ for (delaycounter = 0; delaycounter < 10; delaycounter++) PORTD |= (1 << PORTD2); |
+ for (delaycounter = 0; delaycounter < 10; delaycounter++) PORTD &= ~(1 << PORTD2); |
+ for (delaycounter = 0; delaycounter < 400; delaycounter++) PORTD |= (1 << PORTD2); |
+ for (delaycounter = 0; delaycounter < 400; delaycounter++) PORTD &= ~(1 << PORTD2); |
+ |
+ for (delaycounter = 0; delaycounter < 10; delaycounter++) PORTD |= (1 << PORTD2); |
+ for (delaycounter = 0; delaycounter < 10; delaycounter++) PORTD &= ~(1 << PORTD2); |
+ for (delaycounter = 0; delaycounter < 400; delaycounter++) PORTD |= (1 << PORTD2); |
+ |
+ } |
+ else |
+ { printf("Timeout.\n\r"); |
+ |
+ |
+ } |
+ |
+ DDRD &= ~(1 << DDD2); // RX as input |
+ PORTD &= ~(1 << PORTD2); |
+ |
+ Uart1Init(); // init Uart again |
+} |
+ |
+//############################################################################ |
+// 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 |
+// |
+// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
+ |
+#define MIN_FRAMEGAP 68 // 7ms |
+#define MAX_BYTEGAP 3 // 310us |
+ |
+//############################################################################ |
+//Diese Routine startet und inizialisiert den USART1 für seriellen Spektrum satellite reciever |
+SIGNAL(USART1_RX_vect) |
+//############################################################################ |
+{ |
+ static unsigned char Sync=0, FrameCnt=0, ByteHigh=0, ReSync=1, Frame2=0; |
+ 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; |
+ SpektrumTimer = MIN_FRAMEGAP; |
+ FrameCnt = 0; |
+ Sync = 0; |
+ ByteHigh = 0; |
+ } |
+ else |
+ { |
+ if(!SpektrumTimer) bCheckDelay = 1; else bCheckDelay = 0;//CheckDelay(FrameTimer); |
+ if ( Sync == 0 ) |
+ { |
+ if(bCheckDelay) |
+ { |
+ // nach einer Pause von mind. 7ms erstes Sync-Character gefunden |
+ // Zeichen ignorieren, da Bedeutung unbekannt |
+ Sync = 1; |
+ FrameCnt ++; |
+ SpektrumTimer = MAX_BYTEGAP; |
+ } |
+ else |
+ { |
+ // Zeichen kam vor Ablauf der 7ms Sync-Pause |
+ // warten auf erstes Sync-Zeichen |
+ SpektrumTimer = MIN_FRAMEGAP; |
+ FrameCnt = 0; |
+ Sync = 0; |
+ ByteHigh = 0; |
+ } |
+ } |
+ else if((Sync == 1) && !bCheckDelay) |
+ { |
+ // zweites Sync-Character ignorieren, Bedeutung unbekannt |
+ Sync = 2; |
+ FrameCnt ++; |
+ SpektrumTimer = MAX_BYTEGAP; |
+ } |
+ else if((Sync == 2) && !bCheckDelay) |
+ { |
+ SpektrumTimer = MAX_BYTEGAP; |
+ // Datenbyte high |
+ ByteHigh = c; |
+ if (FrameCnt == 2) |
+ { |
+ // is 1st Byte of Channel-data |
+ // Frame 1 with Channel 1-7 comming next |
+ Frame2 = 0; |
+ if(ByteHigh & 0x80) |
+ { |
+ // DS9: Frame 2 with Channel 8-9 comming next |
+ Frame2 = 1; |
+ } |
+ } |
+ Sync = 3; |
+ FrameCnt ++; |
+ } |
+ else if((Sync == 3) && !bCheckDelay) |
+ { |
+ // Datenbyte low |
+ // High-Byte for next channel comes next |
+ SpektrumTimer = MAX_BYTEGAP; |
+ Sync = 2; |
+ FrameCnt ++; |
+ index = (ByteHigh >> 2) & 0x0f; |
+ index++; |
+ Channel = ((unsigned int)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; |
+ TIMSK1 &= ~_BV(ICIE1); // disable PPM-Input |
+ } |
+ } |
+ 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 if(index > 17) ReSync = 1; // hier stimmt was nicht: neu synchronisieren |
+ } |
+ else |
+ { |
+ // hier stimmt was nicht: neu synchronisieren |
+ ReSync = 1; |
+ FrameCnt = 0; |
+ Frame2 = 0; |
+ // new frame next, nach fruehestens 7ms erwartet |
+ SpektrumTimer = MIN_FRAMEGAP; |
+ } |
+ |
+ // 16 Bytes eingetroffen -> Komplett |
+ if(FrameCnt >= 16) |
+ { |
+ // Frame complete |
+ if(Frame2 == 0) |
+ { |
+ // Null bedeutet: Neue Daten |
+ // nur beim ersten Frame (CH 0-7) setzen |
+ if(!ReSync) NewPpmData = 0; |
+ } |
+ FrameCnt = 0; |
+ Frame2 = 0; |
+ Sync = 0; |
+ SpektrumTimer = MIN_FRAMEGAP; |
+ } |
+ } |
+} |
+ |
+ |
/branches/V0.76g_WKN-hef/Spectrum.h |
---|
0,0 → 1,10 |
/*####################################################################################### |
Dekodieren eines Spectrum Signals |
#######################################################################################*/ |
#ifndef _SPECTRUM_H |
#define _SPECTRUM_H |
void Uart1Init(void); |
void SpektrumBinding(void); |
extern unsigned char SpektrumTimer; |
#endif //_RC_H |
/branches/V0.76g_WKN-hef/_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 |
/branches/V0.76g_WKN-hef/analog.c |
---|
0,0 → 1,466 |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Copyright (c) Holger Buss, Ingo Busker |
// + only for non-profit use |
// + www.MikroKopter.com |
// + porting the sources to other systems or using the software on other systems (except hardware from www.mikrokopter.de) is not allowed |
// + see the File "License.txt" for further Informations |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
#include "main.h" |
volatile int Aktuell_Nick,Aktuell_Roll,Aktuell_Gier,Aktuell_ax, Aktuell_ay,Aktuell_az, UBat = 100; |
volatile int AdWertNickFilter = 0, AdWertRollFilter = 0, AdWertGierFilter = 0; |
volatile int HiResNick = 2500, HiResRoll = 2500; |
volatile int AdWertNick = 0, AdWertRoll = 0, AdWertGier = 0; |
volatile int AdWertAccRoll = 0,AdWertAccNick = 0,AdWertAccHoch = 0; |
volatile char messanzahl_AccHoch = 0; |
volatile long Luftdruck = 32000; |
volatile long SummenHoehe = 0; |
volatile int StartLuftdruck; |
volatile unsigned int MessLuftdruck = 1023; |
unsigned char DruckOffsetSetting; |
signed char ExpandBaro = 0; |
volatile int VarioMeter = 0; |
volatile unsigned int ZaehlMessungen = 0; |
unsigned char AnalogOffsetNick = 115,AnalogOffsetRoll = 115,AnalogOffsetGier = 115; |
unsigned char GyroDefektN = 0,GyroDefektR = 0,GyroDefektG = 0; |
volatile unsigned char AdReady = 1; |
//####################################################################################### |
// |
void ADC_Init(void) |
//####################################################################################### |
{ |
ADMUX = 0;//Referenz ist extern |
ANALOG_ON; |
} |
#define DESIRED_H_ADC 800 |
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 < DESIRED_H_ADC) off = 0; |
for(; off < 250;off++) |
{ |
OCR0A = off; |
Delay_ms_Mess(50); |
printf("."); |
if(MessLuftdruck < DESIRED_H_ADC) break; |
} |
eeprom_write_byte(&EEPromArray[EEPROM_ADR_LAST_OFFSET], off); |
DruckOffsetSetting = off; |
Delay_ms_Mess(300); |
} |
void SucheGyroOffset(void) |
{ |
unsigned char i, ready = 0; |
int timeout; |
GyroDefektN = 0; GyroDefektR = 0; GyroDefektG = 0; |
timeout = SetDelay(2000); |
for(i=140; i != 0; i--) |
{ |
if(ready == 3 && i > 10) i = 9; |
ready = 0; |
if(AdWertNick < 1020) AnalogOffsetNick--; else if(AdWertNick > 1030) AnalogOffsetNick++; else ready++; |
if(AdWertRoll < 1020) AnalogOffsetRoll--; else if(AdWertRoll > 1030) AnalogOffsetRoll++; else ready++; |
if(AdWertGier < 1020) AnalogOffsetGier--; else if(AdWertGier > 1030) AnalogOffsetGier++; else ready++; |
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) if(CheckDelay(timeout)) {printf("\n\r DAC or I2C ERROR! Check I2C, 3Vref, DAC and BL-Ctrl"); break;} |
AdReady = 0; |
ANALOG_ON; |
while(!AdReady); |
if(i<10) Delay_ms_Mess(10); |
} |
Delay_ms_Mess(70); |
} |
/* |
0 n |
1 r |
2 g |
3 y |
4 x |
5 n |
6 r |
7 u |
8 z |
9 L |
10 n |
11 r |
12 g |
13 y |
14 x |
15 n |
16 r |
17 L |
*/ |
//####################################################################################### |
// |
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; |
static long tmpLuftdruck = 0; |
static char messanzahl_Druck = 0; |
switch(state++) |
{ |
case 0: |
nick1 = ADC; |
kanal = AD_ROLL; |
break; |
case 1: |
roll1 = ADC; |
kanal = AD_GIER; |
break; |
case 2: |
gier1 = ADC; |
kanal = AD_ACC_Y; |
break; |
case 3: |
Aktuell_ay = NeutralAccY - ADC; |
accy = Aktuell_ay; |
kanal = AD_ACC_X; |
break; |
case 4: |
Aktuell_ax = ADC - NeutralAccX; |
accx = Aktuell_ax; |
kanal = AD_NICK; |
break; |
case 5: |
nick1 += ADC; |
kanal = AD_ROLL; |
break; |
case 6: |
roll1 += ADC; |
kanal = AD_UBAT; |
break; |
case 7: |
UBat = (3 * UBat + ADC / 3) / 4; |
kanal = AD_ACC_Z; |
break; |
case 8: |
AdWertAccHoch = (signed int) ADC - NeutralAccZ; |
if(AdWertAccHoch > 1) |
{ |
if(NeutralAccZ < 750) |
{ |
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: |
MessLuftdruck = ADC; |
tmpLuftdruck += MessLuftdruck; |
if(++messanzahl_Druck >= 18) |
{ |
Luftdruck = (7 * Luftdruck + tmpLuftdruck - (18 * 523) * (long)ExpandBaro + 4) / 8; // -523.19 counts per 10 counts offset step |
HoehenWert = StartLuftdruck - Luftdruck; |
SummenHoehe -= SummenHoehe/SM_FILTER; |
SummenHoehe += HoehenWert; |
VarioMeter = (15 * VarioMeter + 8 * (int)(HoehenWert - SummenHoehe/SM_FILTER))/16; |
tmpLuftdruck /= 2; |
messanzahl_Druck = 18/2; |
} |
kanal = AD_NICK; |
break; |
default: |
kanal = 0; state = 0; kanal = AD_NICK; |
break; |
} |
ADMUX = kanal; |
if(state != 0) ANALOG_ON; |
} |
/* |
//####################################################################################### |
// |
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; |
} |
*/ |
/branches/V0.76g_WKN-hef/analog.h |
---|
0,0 → 1,48 |
#ifndef _ANALOG_H |
#define _ANALOG_H |
/*####################################################################################### |
#######################################################################################*/ |
#define SM_FILTER 16 |
extern volatile int UBat; |
extern volatile int AdWertNick, AdWertRoll, AdWertGier; |
extern volatile int AdWertAccRoll,AdWertAccNick,AdWertAccHoch; |
extern volatile int HiResNick, HiResRoll; |
extern volatile int AdWertNickFilter, AdWertRollFilter, AdWertGierFilter; |
extern volatile int Aktuell_Nick,Aktuell_Roll,Aktuell_Gier,Aktuell_ax, Aktuell_ay,Aktuell_az; |
extern volatile long Luftdruck; |
extern volatile long SummenHoehe; |
extern volatile char messanzahl_Druck; |
extern volatile unsigned int ZaehlMessungen; |
extern unsigned char DruckOffsetSetting; |
extern signed char ExpandBaro; |
extern volatile int VarioMeter; |
extern volatile unsigned int MessLuftdruck; |
extern volatile int StartLuftdruck; |
extern volatile char MessanzahlNick; |
extern unsigned char AnalogOffsetNick,AnalogOffsetRoll,AnalogOffsetGier; |
extern volatile unsigned char AdReady; |
unsigned int ReadADC(unsigned char adc_input); |
void ADC_Init(void); |
void SucheLuftruckOffset(void); |
void SucheGyroOffset(void); |
#define AD_GIER 0 |
#define AD_ROLL 1 |
#define AD_NICK 2 |
#define AD_DRUCK 3 |
#define AD_UBAT 4 |
#define AD_ACC_Z 5 |
#define AD_ACC_Y 6 |
#define AD_ACC_X 7 |
#define ANALOG_OFF ADCSRA=0 |
#define ANALOG_ON ADCSRA=(1<<ADEN)|(1<<ADSC)|(0<<ADATE)|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0)|(1<<ADIE) |
//Signle trigger Mode, Interrupt on |
#endif //_ANALOG_H |
/branches/V0.76g_WKN-hef/eeprom.c |
---|
0,0 → 1,272 |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Konstanten |
// + 0-250 -> normale Werte |
// + 251 -> Poti1 |
// + 252 -> Poti2 |
// + 253 -> Poti3 |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
void DefaultStickMapping(void) // mode 2 |
{ |
EE_Parameter.Kanalbelegung[K_GAS] = 1; |
EE_Parameter.Kanalbelegung[K_ROLL] = 2; |
EE_Parameter.Kanalbelegung[K_NICK] = 3; |
EE_Parameter.Kanalbelegung[K_GIER] = 4; |
EE_Parameter.Kanalbelegung[K_POTI1] = 5; |
EE_Parameter.Kanalbelegung[K_POTI2] = 6; |
EE_Parameter.Kanalbelegung[K_POTI3] = 7; |
EE_Parameter.Kanalbelegung[K_POTI4] = 8; |
} |
void DefaultKonstanten1(void) |
{ |
EE_Parameter.GlobalConfig = CFG_ACHSENKOPPLUNG_AKTIV | CFG_KOMPASS_AKTIV | CFG_GPS_AKTIV | CFG_HOEHEN_SCHALTER; |
EE_Parameter.ExtraConfig = CFG2_HEIGHT_LIMIT;// | CFG2_VARIO_BEEP | CFG_SENSITIVE_RC |
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_HoverBand = 5; // Wert : 0-250 |
EE_Parameter.Hoehe_GPS_Z = 64; // Wert : 0-250 |
EE_Parameter.Hoehe_StickNeutralPoint = 0; // Wert : 0-250 (0 = Hoover-Estimation) |
EE_Parameter.Hoehe_Verstaerkung = 20; // Wert : 0-50 |
EE_Parameter.Stick_P = 14; // Wert : 1-6 |
EE_Parameter.Stick_D = 16; // 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.Gyro_Gier_P = 80; // Wert : 0-250 |
EE_Parameter.Gyro_Gier_I = 150; // Wert : 0-250 |
EE_Parameter.UnterspannungsWarnung = 33; // Wert : 0-250 ( Automatische Zellenerkennung bei < 50) |
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.ServoCompInvert = 1; // Wert : 0-250 // Richtung Einfluss Gyro/Servo |
EE_Parameter.ServoNickMin = 0; // Wert : 0-250 // Anschlag |
EE_Parameter.ServoNickMax = 250; // Wert : 0-250 // Anschlag |
EE_Parameter.ServoNickRefresh = 6; |
EE_Parameter.ServoRollControl = 100; // Wert : 0-250 // Stellung des Servos |
EE_Parameter.ServoRollComp = 40; // Wert : 0-250 // Einfluss Gyro/Servo |
EE_Parameter.ServoRollMin = 0; // Wert : 0-250 // Anschlag |
EE_Parameter.ServoRollMax = 250; // Wert : 0-250 // Anschlag |
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 = 80; |
EE_Parameter.CouplingYawCorrection = 1; |
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.WARN_J16_Bitmask = 0xAA; |
EE_Parameter.WARN_J17_Bitmask = 0xAA; |
EE_Parameter.J16Timing = 15; |
EE_Parameter.J17Timing = 15; |
EE_Parameter.NaviGpsModeControl = 252; |
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; |
EE_Parameter.ExtraConfig = CFG2_HEIGHT_LIMIT;// | CFG2_VARIO_BEEP | CFG_SENSITIVE_RC |
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_HoverBand = 5; // Wert : 0-250 |
EE_Parameter.Hoehe_GPS_Z = 64; // Wert : 0-250 |
EE_Parameter.Hoehe_StickNeutralPoint = 0; // Wert : 0-250 (0 = Hoover-Estimation) |
EE_Parameter.Hoehe_Verstaerkung = 15; // Wert : 0-50 |
EE_Parameter.Stick_P = 10; // 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 = 90; // Wert : 0-250 |
EE_Parameter.Gyro_I = 120; // Wert : 0-250 |
EE_Parameter.Gyro_D = 3; // Wert : 0-250 |
EE_Parameter.Gyro_Gier_P = 90; // Wert : 0-250 |
EE_Parameter.Gyro_Gier_I = 120; // Wert : 0-250 |
EE_Parameter.UnterspannungsWarnung = 33; // Wert : 0-250 ( Automatische Zellenerkennung bei < 50) |
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.ServoCompInvert = 1; // Wert : 0-250 // Richtung Einfluss Gyro/Servo |
EE_Parameter.ServoNickMin = 0; // Wert : 0-250 // Anschlag |
EE_Parameter.ServoNickMax = 250; // Wert : 0-250 // Anschlag |
EE_Parameter.ServoNickRefresh = 6; |
EE_Parameter.ServoRollControl = 100; // Wert : 0-250 // Stellung des Servos |
EE_Parameter.ServoRollComp = 40; // Wert : 0-250 // Einfluss Gyro/Servo |
EE_Parameter.ServoRollMin = 0; // Wert : 0-250 // Anschlag |
EE_Parameter.ServoRollMax = 250; // Wert : 0-250 // Anschlag |
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 = 80; |
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.WARN_J16_Bitmask = 0xAA; |
EE_Parameter.WARN_J17_Bitmask = 0xAA; |
EE_Parameter.J16Timing = 20; |
EE_Parameter.J17Timing = 20; |
EE_Parameter.NaviGpsModeControl = 252; |
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; |
EE_Parameter.ExtraConfig = CFG2_HEIGHT_LIMIT;// | CFG2_VARIO_BEEP | CFG_SENSITIVE_RC |
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_HoverBand = 5; // Wert : 0-250 |
EE_Parameter.Hoehe_GPS_Z = 64; // Wert : 0-250 |
EE_Parameter.Hoehe_StickNeutralPoint = 0; // Wert : 0-250 (0 = Hoover-Estimation) |
EE_Parameter.Hoehe_Verstaerkung = 15; // 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.Gyro_Gier_P = 100; // Wert : 0-250 |
EE_Parameter.Gyro_Gier_I = 120; // Wert : 0-250 |
EE_Parameter.UnterspannungsWarnung = 33; // Wert : 0-250 ( Automatische Zellenerkennung bei < 50) |
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.ServoCompInvert = 1; // Wert : 0-250 // Richtung Einfluss Gyro/Servo |
EE_Parameter.ServoNickMin = 0; // Wert : 0-250 // Anschlag |
EE_Parameter.ServoNickMax = 250; // Wert : 0-250 // Anschlag |
EE_Parameter.ServoNickRefresh = 6; |
EE_Parameter.ServoRollControl = 100; // Wert : 0-250 // Stellung des Servos |
EE_Parameter.ServoRollComp = 40; // Wert : 0-250 // Einfluss Gyro/Servo |
EE_Parameter.ServoRollMin = 0; // Wert : 0-250 // Anschlag |
EE_Parameter.ServoRollMax = 250; // Wert : 0-250 // Anschlag |
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 = 80; |
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.WARN_J16_Bitmask = 0xAA; |
EE_Parameter.WARN_J17_Bitmask = 0xAA; |
EE_Parameter.J16Timing = 30; |
EE_Parameter.J17Timing = 30; |
EE_Parameter.NaviGpsModeControl = 252; |
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); |
} |
/branches/V0.76g_WKN-hef/fc.c |
---|
0,0 → 1,1635 |
/*####################################################################################### |
Flight Control |
#######################################################################################*/ |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Copyright (c) Holger Buss, Ingo Busker |
// + Nur für den privaten Gebrauch / NON-COMMERCIAL USE ONLY |
// + www.MikroKopter.com |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Es gilt für das gesamte Projekt (Hardware, Software, Binärfiles, Sourcecode und Dokumentation), |
// + dass eine Nutzung (auch auszugsweise) nur für den privaten (nicht-kommerziellen) Gebrauch zulässig ist. |
// + Sollten direkte oder indirekte kommerzielle Absichten verfolgt werden, ist mit uns (info@mikrokopter.de) Kontakt |
// + bzgl. der Nutzungsbedingungen aufzunehmen. |
// + Eine kommerzielle Nutzung ist z.B.Verkauf von MikroKoptern, Bestückung und Verkauf von Platinen oder Bausätzen, |
// + Verkauf von Luftbildaufnahmen, usw. |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Werden Teile des Quellcodes (mit oder ohne Modifikation) weiterverwendet oder veröffentlicht, |
// + unterliegen sie auch diesen Nutzungsbedingungen und diese Nutzungsbedingungen incl. Copyright müssen dann beiliegen |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Sollte die Software (auch auszugesweise) oder sonstige Informationen des MikroKopter-Projekts |
// + auf anderen Webseiten oder sonstigen Medien veröffentlicht werden, muss unsere Webseite "http://www.mikrokopter.de" |
// + eindeutig als Ursprung verlinkt werden |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Keine Gewähr auf Fehlerfreiheit, Vollständigkeit oder Funktion |
// + Benutzung auf eigene Gefahr |
// + Wir übernehmen keinerlei Haftung für direkte oder indirekte Personen- oder Sachschäden |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Die Portierung oder Nutzung der Software (oder Teile davon) auf andere Systeme (ausser der Hardware von www.mikrokopter.de) ist nur |
// + mit unserer Zustimmung zulässig |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Die Funktion printf_P() unterliegt ihrer eigenen Lizenz und ist hiervon nicht betroffen |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Redistributions of source code (with or without modifications) must retain the above copyright notice, |
// + this list of conditions and the following disclaimer. |
// + * Neither the name of the copyright holders nor the names of contributors may be used to endorse or promote products derived |
// + from this software without specific prior written permission. |
// + * The use of this project (hardware, software, binary files, sources and documentation) is only permittet |
// + for non-commercial use (directly or indirectly) |
// + Commercial use (for excample: selling of MikroKopters, selling of PCBs, assembly, ...) is only permitted |
// + with our written permission |
// + * If sources or documentations are redistributet on other webpages, out webpage (http://www.MikroKopter.de) must be |
// + clearly linked as origin |
// + * porting the sources to other systems or using the software on other systems (except hardware from www.mikrokopter.de) is not allowed |
// + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
// + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
// + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
// + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE |
// + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
// + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
// + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
// + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
// + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
// + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
// + POSSIBILITY OF SUCH DAMAGE. |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
#include "main.h" |
#include "eeprom.c" |
#include "mymath.h" |
#include "isqrt.h" |
unsigned char h,m,s; |
unsigned int BaroExpandActive = 0; |
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 HoehenReglerAktiv = 0; |
unsigned char TrichterFlug = 0; |
long Umschlag180Nick = 250000L, Umschlag180Roll = 250000L; |
long ErsatzKompass; |
int ErsatzKompassInGrad; // Kompasswert in Grad |
int GierGyroFehler = 0; |
char GyroFaktor,GyroFaktorGier; |
char IntegralFaktor,IntegralFaktorGier; |
int DiffNick,DiffRoll; |
int Poti1 = 0, Poti2 = 0, Poti3 = 0, Poti4 = 0; |
volatile unsigned char SenderOkay = 0; |
volatile unsigned char SenderRSSI = 0; |
int StickNick = 0,StickRoll = 0,StickGier = 0,StickGas = 0; |
char MotorenEin = 0; |
long HoehenWert = 0; |
long 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_Hoehe_GPS_Z = 64; // Wert : 0-250 |
unsigned char Parameter_Gyro_D = 8; // Wert : 0-250 |
unsigned char Parameter_Gyro_P = 150; // Wert : 10-250 |
unsigned char Parameter_Gyro_I = 150; // Wert : 0-250 |
unsigned char Parameter_Gyro_Gier_P = 150; // Wert : 10-250 |
unsigned char Parameter_Gyro_Gier_I = 150; // Wert : 10-250 |
unsigned char Parameter_Gier_P = 2; // Wert : 1-20 |
unsigned char Parameter_I_Faktor = 10; // Wert : 1-20 |
unsigned char Parameter_UserParam1 = 0; |
unsigned char Parameter_UserParam2 = 0; |
unsigned char Parameter_UserParam3 = 0; |
unsigned char Parameter_UserParam4 = 0; |
unsigned char Parameter_UserParam5 = 0; |
unsigned char Parameter_UserParam6 = 0; |
unsigned char Parameter_UserParam7 = 0; |
unsigned char Parameter_UserParam8 = 0; |
unsigned char Parameter_ServoNickControl = 100; |
unsigned char Parameter_ServoRollControl = 100; |
unsigned char Parameter_LoopGasLimit = 70; |
unsigned char Parameter_AchsKopplung1 = 90; |
unsigned char Parameter_AchsKopplung2 = 65; |
unsigned char Parameter_CouplingYawCorrection = 64; |
//unsigned char Parameter_AchsGegenKopplung1 = 0; |
unsigned char Parameter_DynamicStability = 100; |
unsigned char Parameter_J16Bitmask; // for the J16 Output |
unsigned char Parameter_J16Timing; // for the J16 Output |
unsigned char Parameter_J17Bitmask; // for the J17 Output |
unsigned char Parameter_J17Timing; // for the J17 Output |
unsigned char Parameter_NaviGpsModeControl; // Parameters for the Naviboard |
unsigned char Parameter_NaviGpsGain; |
unsigned char Parameter_NaviGpsP; |
unsigned char Parameter_NaviGpsI; |
unsigned char Parameter_NaviGpsD; |
unsigned char Parameter_NaviGpsACC; |
unsigned char Parameter_NaviOperatingRadius; |
unsigned char Parameter_NaviWindCorrection; |
unsigned char Parameter_NaviSpeedCompensation; |
unsigned char Parameter_ExternalControl; |
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; |
volatile unsigned char MikroKopterFlags = 0; |
long GIER_GRAD_FAKTOR = 1291; |
signed int KopplungsteilNickRoll,KopplungsteilRollNick; |
unsigned char RequiredMotors = 4; |
unsigned char Motor[MAX_MOTORS]; |
signed int tmp_motorwert[MAX_MOTORS]; |
unsigned char LoadHandler = 0; |
#define LIMIT_MIN(value, min) {if(value < min) value = min;} |
#define LIMIT_MAX(value, max) {if(value > max) value = max;} |
#define LIMIT_MIN_MAX(value, min, max) {if(value < min) value = min; else if(value > max) value = max;} |
int MotorSmoothing(int neu, int alt) |
{ |
int motor; |
if(neu > alt) |
{ |
motor = (1*(int)alt + neu) / 2; |
} |
else |
{ |
// Arthur P: the original code allowed the motor value to drop to 0 or negative values |
// straight off, i.e. could amplify an intended decrease excessively while upregulation |
// is dampened. The modification would still allow immediate drop below intended value |
// but would dampen this. This would still allow for airbraking of the prop to have effect |
// but it might lead to less sudden excessive drops in rpm with only gradual recovery. |
// 090807 Arthur P: Due to problems with uart.c which still refers to user parameter 1 and 2 and |
// possible timing issues with the shutter interval load, removed the shutter interval functions |
// and switched to use of userparam6 for the motor smoothing. |
// 091114 Inserted modification into 0.76g source code. |
if(Parameter_UserParam6 < 1) |
{ // Original function |
motor = neu - (alt - neu)*1; |
} |
else |
{ |
if(Parameter_UserParam6 == 1) // If userpara1 = 1 then 150% down on the first step followed by upsmoothing. |
{ |
motor = neu - (1*(alt - neu)/2); |
} |
else // If userpara5 > 1 then allow >= 50% of the intended step down to rapidly reach the intended value. |
{ |
motor = neu + ((alt - neu)/Parameter_UserParam6); |
} |
} |
} |
return(motor); |
} |
void Piep(unsigned char Anzahl, unsigned int dauer) |
{ |
if(MotorenEin) return; //auf keinen Fall im Flug! |
while(Anzahl--) |
{ |
beeptime = dauer; |
while(beeptime); |
Delay_ms(dauer * 2); |
} |
} |
//############################################################################ |
// Nullwerte ermitteln |
void SetNeutral(void) |
//############################################################################ |
{ |
unsigned char i; |
unsigned int gier_neutral=0, nick_neutral=0, roll_neutral=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; |
VarioMeter = 0; |
Mess_Integral_Hoch = 0; |
KompassStartwert = KompassValue; |
GPS_Neutral(); |
beeptime = 50; |
Umschlag180Nick = ((long) EE_Parameter.WinkelUmschlagNick * 2500L) + 15000L; |
Umschlag180Roll = ((long) EE_Parameter.WinkelUmschlagRoll * 2500L) + 15000L; |
ExternHoehenValue = 0; |
ErsatzKompass = KompassValue * GIER_GRAD_FAKTOR; |
GierGyroFehler = 0; |
SendVersionToNavi = 1; |
LED_Init(); |
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; |
SenderOkay = 100; |
if(ServoActive) |
{ |
HEF4017R_ON; |
DDRD |=0x80; // enable J7 -> Servo signal |
} |
} |
//############################################################################ |
// 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; |
// 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(abs(MesswertGier) > 64) if(labs(tmpl) > 128 || labs(tmpl2) > 128) TrichterFlug = 1; |
//MesswertGier += (Parameter_CouplingYawCorrection * tmpl4) / 256; |
} |
else tmpl = tmpl2 = KopplungsteilNickRoll = KopplungsteilRollNick = 0; |
TrimRoll = tmpl - tmpl2 / 100L; |
TrimNick = -tmpl2 + tmpl / 100L; |
// Kompasswert begrenzen ++++++++++++++++++++++++++++++++++++++++++++++++ |
if(ErsatzKompass >= (360L * GIER_GRAD_FAKTOR)) ErsatzKompass -= 360L * GIER_GRAD_FAKTOR; // 360° Umschlag |
if(ErsatzKompass < 0) ErsatzKompass += 360L * GIER_GRAD_FAKTOR; |
// Roll ++++++++++++++++++++++++++++++++++++++++++++++++ |
Mess_IntegralRoll2 += MesswertRoll + TrimRoll; |
Mess_IntegralRoll += MesswertRoll + TrimRoll - LageKorrekturRoll; |
if(Mess_IntegralRoll > Umschlag180Roll) |
{ |
Mess_IntegralRoll = -(Umschlag180Roll - 25000L); |
Mess_IntegralRoll2 = Mess_IntegralRoll; |
} |
if(Mess_IntegralRoll <-Umschlag180Roll) |
{ |
Mess_IntegralRoll = (Umschlag180Roll - 25000L); |
Mess_IntegralRoll2 = Mess_IntegralRoll; |
} |
// Nick ++++++++++++++++++++++++++++++++++++++++++++++++ |
Mess_IntegralNick2 += MesswertNick + TrimNick; |
Mess_IntegralNick += MesswertNick + TrimNick - LageKorrekturNick; |
if(Mess_IntegralNick > Umschlag180Nick) |
{ |
Mess_IntegralNick = -(Umschlag180Nick - 25000L); |
Mess_IntegralNick2 = Mess_IntegralNick; |
} |
if(Mess_IntegralNick <-Umschlag180Nick) |
{ |
Mess_IntegralNick = (Umschlag180Nick - 25000L); |
Mess_IntegralNick2 = Mess_IntegralNick; |
} |
Integral_Gier = Mess_Integral_Gier; |
IntegralNick = Mess_IntegralNick; |
IntegralRoll = Mess_IntegralRoll; |
IntegralNick2 = Mess_IntegralNick2; |
IntegralRoll2 = Mess_IntegralRoll2; |
#define D_LIMIT 128 |
MesswertNick = HiResNick / 8; |
MesswertRoll = HiResRoll / 8; |
if(AdWertNick < 15) MesswertNick = -1000; if(AdWertNick < 7) MesswertNick = -2000; |
if(PlatinenVersion == 10) { if(AdWertNick > 1010) MesswertNick = +1000; if(AdWertNick > 1017) MesswertNick = +2000; } |
else { if(AdWertNick > 2000) MesswertNick = +1000; if(AdWertNick > 2015) MesswertNick = +2000; } |
if(AdWertRoll < 15) MesswertRoll = -1000; if(AdWertRoll < 7) MesswertRoll = -2000; |
if(PlatinenVersion == 10) { if(AdWertRoll > 1010) MesswertRoll = +1000; if(AdWertRoll > 1017) MesswertRoll = +2000; } |
else { if(AdWertRoll > 2000) MesswertRoll = +1000; if(AdWertRoll > 2015) MesswertRoll = +2000; } |
if(Parameter_Gyro_D) |
{ |
d2Nick = HiResNick - oldNick; |
oldNick = (oldNick + HiResNick)/2; |
if(d2Nick > D_LIMIT) d2Nick = D_LIMIT; |
else if(d2Nick < -D_LIMIT) d2Nick = -D_LIMIT; |
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) |
//############################################################################ |
{ |
unsigned char i; |
if(!MotorenEin) |
{ |
MikroKopterFlags &= ~(FLAG_MOTOR_RUN | FLAG_FLY); |
for(i=0;i<MAX_MOTORS;i++) |
{ |
if(!PC_MotortestActive) MotorTest[i] = 0; |
Motor[i] = MotorTest[i]; |
} |
if(PC_MotortestActive) PC_MotortestActive--; |
} |
else MikroKopterFlags |= FLAG_MOTOR_RUN; |
DebugOut.Analog[12] = Motor[0]; |
DebugOut.Analog[13] = Motor[1]; |
DebugOut.Analog[14] = Motor[3]; |
DebugOut.Analog[15] = Motor[2]; |
//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_Hoehe_GPS_Z,EE_Parameter.Hoehe_GPS_Z,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_Gyro_Gier_P,EE_Parameter.Gyro_Gier_P,10,255); |
CHK_POTI(Parameter_Gyro_Gier_I,EE_Parameter.Gyro_Gier_I,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_ServoRollControl,EE_Parameter.ServoRollControl,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 pd_ergebnis_nick,pd_ergebnis_roll,tmp_int, tmp_int2; |
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 char TimerWerteausgabe = 0; |
static char NeueKompassRichtungMerken = 0; |
static long ausgleichNick, ausgleichRoll; |
int IntegralNickMalFaktor,IntegralRollMalFaktor; |
unsigned char i; |
if(--LoadHandler == 0) LoadHandler = 5; // verteilt die Prozessorlast |
Mittelwert(); |
GRN_ON; |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// Gaswert ermitteln |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
GasMischanteil = StickGas; |
if(GasMischanteil < MIN_GAS + 10) GasMischanteil = MIN_GAS + 10; |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// Empfang schlecht |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
if(SenderOkay < 100) |
{ |
if(RcLostTimer) RcLostTimer--; |
else |
{ |
MotorenEin = 0; |
MikroKopterFlags &= ~FLAG_NOTLANDUNG; |
} |
ROT_ON; |
if(modell_fliegt > 1000) // wahrscheinlich in der Luft --> langsam absenken |
{ |
GasMischanteil = EE_Parameter.NotGas; |
MikroKopterFlags |= FLAG_NOTLANDUNG; |
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) |
{ |
MikroKopterFlags &= ~FLAG_NOTLANDUNG; |
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(); |
} |
ServoActive = 0; |
SetNeutral(); |
ServoActive = 1; |
DDRD |=0x80; // enable J7 -> Servo signal |
Piep(GetActiveParamSetNumber(),120); |
} |
} |
} |
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(),120); |
} |
} |
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-- || (MikroKopterFlags & FLAG_NOTLANDUNG)) |
{ |
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; |
GyroFaktor = (Parameter_Gyro_P + 10.0); |
IntegralFaktor = Parameter_Gyro_I; |
GyroFaktorGier = (Parameter_Gyro_Gier_P + 10.0); |
IntegralFaktorGier = Parameter_Gyro_Gier_I; |
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
//+ Analoge Steuerung per Seriell |
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
if(ExternControl.Config & 0x01 && Parameter_ExternalControl > 128) |
{ |
StickNick += (int) ExternControl.Nick * (int) EE_Parameter.Stick_P; |
StickRoll += (int) ExternControl.Roll * (int) EE_Parameter.Stick_P; |
StickGier += ExternControl.Gier; |
ExternHoehenValue = (int) ExternControl.Hight * (int)EE_Parameter.Hoehe_Verstaerkung; |
if(ExternControl.Gas < StickGas) StickGas = ExternControl.Gas; |
} |
if(StickGas < 0) StickGas = 0; |
if(EE_Parameter.GlobalConfig & CFG_HEADING_HOLD) IntegralFaktor = 0; |
//if(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(MikroKopterFlags & FLAG_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(MikroKopterFlags & FLAG_NOTLANDUNG) |
{ |
StickGier = 0; |
StickNick = 0; |
StickRoll = 0; |
GyroFaktor = 90; |
IntegralFaktor = 120; |
GyroFaktorGier = 90; |
IntegralFaktorGier = 120; |
Looping_Roll = 0; |
Looping_Nick = 0; |
} |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// Integrale auf ACC-Signal abgleichen |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
#define ABGLEICH_ANZAHL 256L |
MittelIntegralNick += IntegralNick; // Für die Mittelwertbildung aufsummieren |
MittelIntegralRoll += IntegralRoll; |
MittelIntegralNick2 += IntegralNick2; |
MittelIntegralRoll2 += IntegralRoll2; |
if(Looping_Nick || Looping_Roll) |
{ |
IntegralAccNick = 0; |
IntegralAccRoll = 0; |
MittelIntegralNick = 0; |
MittelIntegralRoll = 0; |
MittelIntegralNick2 = 0; |
MittelIntegralRoll2 = 0; |
Mess_IntegralNick2 = Mess_IntegralNick; |
Mess_IntegralRoll2 = Mess_IntegralRoll; |
ZaehlMessungen = 0; |
LageKorrekturNick = 0; |
LageKorrekturRoll = 0; |
} |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
if(!Looping_Nick && !Looping_Roll && (Aktuell_az > 512 || MotorenEin)) |
{ |
long tmp_long, tmp_long2; |
if(FromNaviCtrl_Value.Kalman_K != -1 /*&& !TrichterFlug*/) |
{ |
tmp_long = (long)(IntegralNick / EE_Parameter.GyroAccFaktor - (long)Mittelwert_AccNick); |
tmp_long2 = (long)(IntegralRoll / EE_Parameter.GyroAccFaktor - (long)Mittelwert_AccRoll); |
tmp_long = (tmp_long * FromNaviCtrl_Value.Kalman_K) / (32 * 16); |
tmp_long2 = (tmp_long2 * FromNaviCtrl_Value.Kalman_K) / (32 * 16); |
if((MaxStickNick > 64) || (MaxStickRoll > 64)) |
{ |
tmp_long /= 2; |
tmp_long2 /= 2; |
} |
if(abs(PPM_in[EE_Parameter.Kanalbelegung[K_GIER]]) > 25) |
{ |
tmp_long /= 3; |
tmp_long2 /= 3; |
} |
if(tmp_long > (long) FromNaviCtrl_Value.Kalman_MaxFusion) tmp_long = (long) FromNaviCtrl_Value.Kalman_MaxFusion; |
if(tmp_long < (long)-FromNaviCtrl_Value.Kalman_MaxFusion) tmp_long = (long)-FromNaviCtrl_Value.Kalman_MaxFusion; |
if(tmp_long2 > (long) FromNaviCtrl_Value.Kalman_MaxFusion) tmp_long2 = (long) FromNaviCtrl_Value.Kalman_MaxFusion; |
if(tmp_long2 < (long)-FromNaviCtrl_Value.Kalman_MaxFusion) tmp_long2 = (long)-FromNaviCtrl_Value.Kalman_MaxFusion; |
} |
else |
{ |
tmp_long = (long)(IntegralNick / EE_Parameter.GyroAccFaktor - (long)Mittelwert_AccNick); |
tmp_long2 = (long)(IntegralRoll / EE_Parameter.GyroAccFaktor - (long)Mittelwert_AccRoll); |
tmp_long /= 16; |
tmp_long2 /= 16; |
if((MaxStickNick > 64) || (MaxStickRoll > 64)) |
{ |
tmp_long /= 3; |
tmp_long2 /= 3; |
} |
if(abs(PPM_in[EE_Parameter.Kanalbelegung[K_GIER]]) > 25) |
{ |
tmp_long /= 3; |
tmp_long2 /= 3; |
} |
#define AUSGLEICH 32 |
if(tmp_long > AUSGLEICH) tmp_long = AUSGLEICH; |
if(tmp_long < -AUSGLEICH) tmp_long =-AUSGLEICH; |
if(tmp_long2 > AUSGLEICH) tmp_long2 = AUSGLEICH; |
if(tmp_long2 <-AUSGLEICH) tmp_long2 =-AUSGLEICH; |
} |
//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; |
if(EE_Parameter.Driftkomp) |
{ |
if(GierGyroFehler > ABGLEICH_ANZAHL/2) { AdNeutralGier++; AdNeutralGierBias++; } |
if(GierGyroFehler <-ABGLEICH_ANZAHL/2) { AdNeutralGier--; AdNeutralGierBias--; } |
} |
GierGyroFehler = 0; |
#define FEHLER_LIMIT (ABGLEICH_ANZAHL / 2) |
#define FEHLER_LIMIT1 (ABGLEICH_ANZAHL * 2) //4 |
#define FEHLER_LIMIT2 (ABGLEICH_ANZAHL * 16) //16 |
#define BEWEGUNGS_LIMIT 20000 |
// Nick +++++++++++++++++++++++++++++++++++++++++++++++++ |
cnt = 1;// + labs(IntegralFehlerNick) / 4096; |
if(labs(IntegralFehlerNick) > FEHLER_LIMIT1) cnt = 4; |
if(labs(MittelIntegralNick_Alt - MittelIntegralNick) < BEWEGUNGS_LIMIT || (FromNaviCtrl_Value.Kalman_MaxDrift > 3*8)) |
{ |
if(IntegralFehlerNick > FEHLER_LIMIT2) |
{ |
if(last_n_p) |
{ |
cnt += labs(IntegralFehlerNick) / (FEHLER_LIMIT2 / 8); |
ausgleichNick = IntegralFehlerNick / 8; |
if(ausgleichNick > 5000) ausgleichNick = 5000; |
LageKorrekturNick += ausgleichNick / ABGLEICH_ANZAHL; |
} |
else last_n_p = 1; |
} else last_n_p = 0; |
if(IntegralFehlerNick < -FEHLER_LIMIT2) |
{ |
if(last_n_n) |
{ |
cnt += labs(IntegralFehlerNick) / (FEHLER_LIMIT2 / 8); |
ausgleichNick = IntegralFehlerNick / 8; |
if(ausgleichNick < -5000) ausgleichNick = -5000; |
LageKorrekturNick += ausgleichNick / ABGLEICH_ANZAHL; |
} |
else last_n_n = 1; |
} else last_n_n = 0; |
} |
else |
{ |
cnt = 0; |
KompassSignalSchlecht = 1000; |
} |
if(cnt > EE_Parameter.Driftkomp) cnt = EE_Parameter.Driftkomp; |
if(FromNaviCtrl_Value.Kalman_MaxDrift) if(cnt > FromNaviCtrl_Value.Kalman_MaxDrift) cnt = FromNaviCtrl_Value.Kalman_MaxDrift; |
if(IntegralFehlerNick > FEHLER_LIMIT) AdNeutralNick += cnt; |
if(IntegralFehlerNick < -FEHLER_LIMIT) AdNeutralNick -= cnt; |
// Roll +++++++++++++++++++++++++++++++++++++++++++++++++ |
cnt = 1;// + labs(IntegralFehlerNick) / 4096; |
if(labs(IntegralFehlerRoll) > FEHLER_LIMIT1) cnt = 4; |
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(!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/5; |
DebugOut.Analog[6] = Aktuell_az;//(Mess_Integral_Hoch / 512);//Aktuell_az; |
DebugOut.Analog[8] = KompassValue; |
DebugOut.Analog[9] = UBat; |
DebugOut.Analog[10] = SenderOkay; |
DebugOut.Analog[11] = ErsatzKompass / GIER_GRAD_FAKTOR; |
//DebugOut.Analog[16] = Mittelwert_AccHoch; |
//DebugOut.Analog[17] = FromNaviCtrl_Value.Distance; |
DebugOut.Analog[18] = VarioMeter; |
DebugOut.Analog[19] = WinkelOut.CalcState; |
DebugOut.Analog[20] = ServoNickValue; |
// DebugOut.Analog[22] = FromNaviCtrl_Value.GpsZ; |
// 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[28] = I2CError; |
// DebugOut.Analog[29] = FromNaviCtrl_Value.SerialDataOkay; |
DebugOut.Analog[30] = GPS_Nick; |
DebugOut.Analog[31] = GPS_Roll; |
} |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// Drehgeschwindigkeit und -winkel zu einem Istwert zusammenfassen |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
if(TrichterFlug) { SummeRoll = 0; SummeNick = 0;}; |
if(!Looping_Nick) IntegralNickMalFaktor = (IntegralNick * IntegralFaktor) / (44000 / STICK_GAIN); else IntegralNickMalFaktor = 0; |
if(!Looping_Roll) IntegralRollMalFaktor = (IntegralRoll * IntegralFaktor) / (44000 / STICK_GAIN); else IntegralRollMalFaktor = 0; |
#define TRIM_MAX 200 |
if(TrimNick > TRIM_MAX) TrimNick = TRIM_MAX; else if(TrimNick <-TRIM_MAX) TrimNick =-TRIM_MAX; |
if(TrimRoll > TRIM_MAX) TrimRoll = TRIM_MAX; else if(TrimRoll <-TRIM_MAX) TrimRoll =-TRIM_MAX; |
MesswertNick = IntegralNickMalFaktor + (long)((long)MesswertNick * GyroFaktor + (long)TrimNick * 128L) / (256L / STICK_GAIN); |
MesswertRoll = IntegralRollMalFaktor + (long)((long)MesswertRoll * GyroFaktor + (long)TrimRoll * 128L) / (256L / STICK_GAIN); |
MesswertGier = (long)(MesswertGier * 2 * (long)GyroFaktorGier) / (256L / STICK_GAIN) + (long)(Integral_Gier * IntegralFaktorGier) / (2 * (44000 / STICK_GAIN)); |
// Maximalwerte abfangen |
// #define MAX_SENSOR (4096*STICK_GAIN) |
#define MAX_SENSOR (4096*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 |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
if(UBat > BattLowVoltageWarning) GasMischanteil = ((unsigned int)GasMischanteil * BattLowVoltageWarning) / UBat; // Gas auf das aktuelle Spannungvieveau beziehen |
GasMischanteil *= STICK_GAIN; |
// if height control is activated |
if((EE_Parameter.GlobalConfig & CFG_HOEHENREGELUNG) && !(Looping_Roll || Looping_Nick)) // Höhenregelung |
{ |
#define HOOVER_GAS_AVERAGE 4096L // 4096 * 2ms = 8.2s averaging |
#define HC_GAS_AVERAGE 4 // 4 * 2ms= 8ms averaging |
#define OPA_OFFSET_STEP 10 |
int HCGas, HeightDeviation; |
static int HeightTrimming = 0; // rate for change of height setpoint |
static int FilterHCGas = 0; |
static int StickGasHoover = 120, HooverGas = 0, HooverGasMin = 0, HooverGasMax = 1023; |
static unsigned long HooverGasFilter = 0; |
static unsigned char delay = 100, BaroAtUpperLimit = 0, BaroAtLowerLimit = 0; |
int CosAttitude; // for projection of hoover gas |
// get the current hooverpoint |
// if(LoadHandler == 1) |
{ |
DebugOut.Analog[21] = HooverGas; |
DebugOut.Analog[18] = VarioMeter; |
// Expand the measurement |
// measurement of air pressure close to upper limit and no overflow in correction of the new OCR0A value occurs |
if(!BaroExpandActive) |
{ |
if(MessLuftdruck > 920) |
{ // increase offset |
if(OCR0A < (255 - OPA_OFFSET_STEP)) |
{ |
ExpandBaro -= 1; |
OCR0A = DruckOffsetSetting - OPA_OFFSET_STEP * ExpandBaro; // increase offset to shift ADC down |
beeptime = 300; |
BaroExpandActive = 350; |
} |
else |
{ |
BaroAtLowerLimit = 1; |
} |
} |
// measurement of air pressure close to lower limit and |
else |
if(MessLuftdruck < 100) |
{ // decrease offset |
if(OCR0A > OPA_OFFSET_STEP) |
{ |
ExpandBaro += 1; |
OCR0A = DruckOffsetSetting - OPA_OFFSET_STEP * ExpandBaro; // decrease offset to shift ADC up |
beeptime = 300; |
BaroExpandActive = 350; |
} |
else |
{ |
BaroAtUpperLimit = 1; |
} |
} |
else |
{ |
BaroAtUpperLimit = 0; |
BaroAtLowerLimit = 0; |
} |
} |
else // delay, because of expanding the Baro-Range |
{ |
// now clear the D-values |
SummenHoehe = HoehenWert * SM_FILTER; |
VarioMeter = 0; |
BaroExpandActive--; |
} |
// if height control is activated by an rc channel |
if(EE_Parameter.GlobalConfig & CFG_HOEHEN_SCHALTER) // Regler wird über Schalter gesteuert |
{ // check if parameter is less than activation threshold |
if(Parameter_MaxHoehe < 50) // for 3 or 2-state switch height control is disabled in lowest position |
{ //height control not active |
if(!delay--) |
{ |
HoehenReglerAktiv = 0; // disable height control |
SollHoehe = HoehenWert; // update SetPoint with current reading |
delay = 1; |
} |
} |
else |
{ //height control is activated |
HoehenReglerAktiv = 1; // enable height control |
delay = 200; |
} |
} |
else // no switchable height control |
{ |
SollHoehe = ((int16_t) ExternHoehenValue + (int16_t) Parameter_MaxHoehe) * (int)EE_Parameter.Hoehe_Verstaerkung; |
HoehenReglerAktiv = 1; |
} |
// calculate cos of nick and roll angle used for projection of the vertical hoover gas |
tmp_int = (int)(IntegralNick/GIER_GRAD_FAKTOR); // nick angle in deg |
tmp_int2 = (int)(IntegralRoll/GIER_GRAD_FAKTOR); // roll angle in deg |
CosAttitude = (int16_t)ihypot(tmp_int, tmp_int2); // phytagoras gives effective attitude angle in deg |
LIMIT_MAX(CosAttitude, 60); // limit effective attitude angle |
CosAttitude = c_cos_8192(CosAttitude); // cos of actual attitude |
if(HoehenReglerAktiv && !(MikroKopterFlags & FLAG_NOTLANDUNG)) |
{ |
#define HEIGHT_TRIM_UP 0x01 |
#define HEIGHT_TRIM_DOWN 0x02 |
static unsigned char HeightTrimmingFlag = 0x00; |
#define HEIGHT_CONTROL_STICKTHRESHOLD 15 |
// Holger original version |
// start of height control algorithm |
// the height control is only an attenuation of the actual gas stick. |
// I.e. it will work only if the gas stick is higher than the hover gas |
// and the hover height will be allways larger than height setpoint. |
if((EE_Parameter.ExtraConfig & CFG2_HEIGHT_LIMIT) || !(EE_Parameter.GlobalConfig & CFG_HOEHEN_SCHALTER)) // Regler wird über Schalter gesteuert) |
{ // old version |
HCGas = GasMischanteil; // take current stick gas as neutral point for the height control |
HeightTrimming = 0; |
} |
else |
{ |
// alternative height control |
// PD-Control with respect to hoover point |
// the thrust loss out of horizontal attitude is compensated |
// the setpoint will be fine adjusted with the gas stick position |
if(MikroKopterFlags & FLAG_FLY) // trim setpoint only when flying |
{ // gas stick is above hoover point |
if(StickGas > (StickGasHoover + HEIGHT_CONTROL_STICKTHRESHOLD) && !BaroAtUpperLimit) |
{ |
if(HeightTrimmingFlag & HEIGHT_TRIM_DOWN) |
{ |
HeightTrimmingFlag &= ~HEIGHT_TRIM_DOWN; |
SollHoehe = HoehenWert; // update setpoint to current heigth |
} |
HeightTrimmingFlag |= HEIGHT_TRIM_UP; |
HeightTrimming += abs(StickGas - (StickGasHoover + HEIGHT_CONTROL_STICKTHRESHOLD)); |
} // gas stick is below hoover point |
else if(StickGas < (StickGasHoover - HEIGHT_CONTROL_STICKTHRESHOLD) && !BaroAtLowerLimit ) |
{ |
if(HeightTrimmingFlag & HEIGHT_TRIM_UP) |
{ |
HeightTrimmingFlag &= ~HEIGHT_TRIM_UP; |
SollHoehe = HoehenWert; // update setpoint to current heigth |
} |
HeightTrimmingFlag |= HEIGHT_TRIM_DOWN; |
HeightTrimming -= abs(StickGas - (StickGasHoover - HEIGHT_CONTROL_STICKTHRESHOLD)); |
} |
else // Gas Stick in Hoover Range |
{ |
if(HeightTrimmingFlag & (HEIGHT_TRIM_UP | HEIGHT_TRIM_DOWN)) |
{ |
HeightTrimmingFlag &= ~(HEIGHT_TRIM_UP | HEIGHT_TRIM_DOWN); |
HeightTrimming = 0; |
SollHoehe = HoehenWert; // update setpoint to current height |
if(EE_Parameter.ExtraConfig & CFG2_VARIO_BEEP) beeptime = 500; |
} |
} |
// Trim height set point |
if(abs(HeightTrimming) > 512) |
{ |
SollHoehe += (HeightTrimming * EE_Parameter.Hoehe_Verstaerkung)/(5 * 512 / 2); // move setpoint |
HeightTrimming = 0; |
if(EE_Parameter.ExtraConfig & CFG2_VARIO_BEEP) beeptime = 75; |
//update hoover gas stick value when setpoint is shifted |
if(!EE_Parameter.Hoehe_StickNeutralPoint) |
{ |
StickGasHoover = HooverGas/STICK_GAIN; //rescale back to stick value |
StickGasHoover = (StickGasHoover * UBat) / BattLowVoltageWarning; |
if(StickGasHoover < 70) StickGasHoover = 70; |
else if(StickGasHoover > 150) StickGasHoover = 150; |
} |
} |
if(BaroExpandActive) SollHoehe = HoehenWert; // update setpoint to current altitude if Expanding is active |
} //if MikroKopterFlags & MKFLAG_FLY |
else |
{ |
SollHoehe = HoehenWert - 400; |
if(EE_Parameter.Hoehe_StickNeutralPoint) StickGasHoover = EE_Parameter.Hoehe_StickNeutralPoint; |
else StickGasHoover = 120; |
} |
HCGas = HooverGas; // take hoover gas (neutral point) |
} |
if(HoehenWert > SollHoehe || !(EE_Parameter.ExtraConfig & CFG2_HEIGHT_LIMIT)) |
{ |
// ------------------------- P-Part ---------------------------- |
HeightDeviation = (int)(HoehenWert - SollHoehe); // positive when too high |
tmp_int = (HeightDeviation * (int)Parameter_Hoehe_P) / 16; // p-part |
HCGas -= tmp_int; |
// ------------------------- D-Part 1: Vario Meter ---------------------------- |
tmp_int = VarioMeter / 8; |
if(tmp_int > 8) tmp_int = 8; // limit quadratic part on upward movement to avoid to much gas reduction |
if(tmp_int > 0) tmp_int = VarioMeter + (tmp_int * tmp_int) / 4; |
else tmp_int = VarioMeter - (tmp_int * tmp_int) / 4; |
tmp_int = (Parameter_Luftdruck_D * (long)(tmp_int)) / 128L; // scale to d-gain parameter |
LIMIT_MIN_MAX(tmp_int, -127, 255); |
HCGas -= tmp_int; |
// ------------------------ D-Part 2: ACC-Z Integral ------------------------ |
tmp_int = ((Mess_Integral_Hoch / 128) * (long) Parameter_Hoehe_ACC_Wirkung) / (128 / STICK_GAIN); |
LIMIT_MIN_MAX(tmp_int, -127, 255); |
HCGas -= tmp_int; |
// limit deviation from hoover point within the target region |
if( (abs(HeightDeviation) < 150) && (!HeightTrimming) && (HooverGas > 0)) // height setpoint is not changed and hoover gas not zero |
{ |
LIMIT_MIN_MAX(HCGas, HooverGasMin, HooverGasMax); // limit gas around the hoover point |
} |
if(BaroExpandActive) HCGas = HooverGas; |
// ------------------------ D-Part 3: GpsZ ---------------------------------- |
tmp_int = (Parameter_Hoehe_GPS_Z * (long)FromNaviCtrl_Value.GpsZ)/128L; |
LIMIT_MIN_MAX(tmp_int, -127, 255); |
HCGas -= tmp_int; |
// strech control output by inverse attitude projection 1/cos |
// + 1/cos(angle) ++++++++++++++++++++++++++ |
tmp_long2 = (int32_t)HCGas; |
tmp_long2 *= 8192L; |
tmp_long2 /= CosAttitude; |
HCGas = (int16_t)tmp_long2; |
// update height control gas averaging |
FilterHCGas = (FilterHCGas * (HC_GAS_AVERAGE - 1) + HCGas) / HC_GAS_AVERAGE; |
// limit height control gas pd-control output |
LIMIT_MIN_MAX(FilterHCGas, EE_Parameter.Hoehe_MinGas * STICK_GAIN, (MAX_GAS - 20) * STICK_GAIN); |
// set GasMischanteil to HeightControlGasFilter |
if(EE_Parameter.ExtraConfig & CFG2_HEIGHT_LIMIT) |
{ // old version |
if(FilterHCGas > GasMischanteil) FilterHCGas = GasMischanteil; // nicht mehr als Gas |
} |
GasMischanteil = FilterHCGas; |
} |
}// EOF height control active |
else // HC not active |
{ |
//update hoover gas stick value when HC is not active |
if(!EE_Parameter.Hoehe_StickNeutralPoint) |
{ |
StickGasHoover = HooverGas/STICK_GAIN; // rescale back to stick value |
StickGasHoover = (StickGasHoover * UBat) / BattLowVoltageWarning; |
} |
else StickGasHoover = EE_Parameter.Hoehe_StickNeutralPoint; |
if(StickGasHoover < 70) StickGasHoover = 70; |
else if(StickGasHoover > 150) StickGasHoover = 150; |
FilterHCGas = GasMischanteil; |
} |
// Hoover gas estimation by averaging gas control output on small z-velocities |
// this is done only if height contol option is selected in global config and aircraft is flying |
if((MikroKopterFlags & FLAG_FLY) && !(MikroKopterFlags & FLAG_NOTLANDUNG)) |
{ |
if(HooverGasFilter == 0) HooverGasFilter = HOOVER_GAS_AVERAGE * (unsigned long)(GasMischanteil); // init estimation |
if(abs(VarioMeter) < 100) // only on small vertical speed |
{ |
tmp_long2 = (int32_t)GasMischanteil; // take current thrust |
tmp_long2 *= CosAttitude; // apply attitude projection |
tmp_long2 /= 8192; |
// average vertical projected thrust |
if(modell_fliegt < 2000) // the first 4 seconds |
{ // reduce the time constant of averaging by factor of 8 to get much faster a stable value |
HooverGasFilter -= HooverGasFilter/(HOOVER_GAS_AVERAGE/8L); |
HooverGasFilter += 8L * tmp_long2; |
} |
else if(modell_fliegt < 4000) // the first 8 seconds |
{ // reduce the time constant of averaging by factor of 4 to get much faster a stable value |
HooverGasFilter -= HooverGasFilter/(HOOVER_GAS_AVERAGE/4L); |
HooverGasFilter += 4L * tmp_long2; |
} |
else if(modell_fliegt < 8000) // the first 16 seconds |
{ // reduce the time constant of averaging by factor of 2 to get much faster a stable value |
HooverGasFilter -= HooverGasFilter/(HOOVER_GAS_AVERAGE/2L); |
HooverGasFilter += 2L * tmp_long2; |
} |
else //later |
{ |
HooverGasFilter -= HooverGasFilter/HOOVER_GAS_AVERAGE; |
HooverGasFilter += tmp_long2; |
} |
HooverGas = (int16_t)(HooverGasFilter/HOOVER_GAS_AVERAGE); |
if(EE_Parameter.Hoehe_HoverBand) |
{ |
int16_t band; |
band = HooverGas / EE_Parameter.Hoehe_HoverBand; // the higher the parameter the smaller the range |
HooverGasMin = HooverGas - band; |
HooverGasMax = HooverGas + band; |
} |
else |
{ // no limit |
HooverGasMin = 0; |
HooverGasMax = 1023; |
} |
} |
} |
} |
//DebugOut.Analog[26] = HooverGasMax; |
}// EOF ParamSet.GlobalConfig & CFG_HEIGHT_CONTROL |
// limit gas to parameter setting |
LIMIT_MIN(GasMischanteil, (MIN_GAS + 10) * STICK_GAIN); |
if(GasMischanteil > (MAX_GAS - 20) * STICK_GAIN) GasMischanteil = (MAX_GAS - 20) * STICK_GAIN; |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// all BL-Ctrl connected? |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
if(MissingMotor) |
if(modell_fliegt > 1 && modell_fliegt < 50 && GasMischanteil > 0) |
{ |
modell_fliegt = 1; |
GasMischanteil = MIN_GAS; |
} |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Mischer und PI-Regler |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
DebugOut.Analog[7] = GasMischanteil; |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// Gier-Anteil |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
GierMischanteil = MesswertGier - sollGier * STICK_GAIN; // Regler für Gier |
#define MIN_GIERGAS (40*STICK_GAIN) // unter diesem Gaswert trotzdem Gieren |
if(GasMischanteil > MIN_GIERGAS) |
{ |
if(GierMischanteil > (GasMischanteil / 2)) GierMischanteil = GasMischanteil / 2; |
if(GierMischanteil < -(GasMischanteil / 2)) GierMischanteil = -(GasMischanteil / 2); |
} |
else |
{ |
if(GierMischanteil > (MIN_GIERGAS / 2)) GierMischanteil = MIN_GIERGAS / 2; |
if(GierMischanteil < -(MIN_GIERGAS / 2)) GierMischanteil = -(MIN_GIERGAS / 2); |
} |
tmp_int = MAX_GAS*STICK_GAIN; |
if(GierMischanteil > ((tmp_int - GasMischanteil))) GierMischanteil = ((tmp_int - GasMischanteil)); |
if(GierMischanteil < -((tmp_int - GasMischanteil))) GierMischanteil = -((tmp_int - GasMischanteil)); |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// Nick-Achse |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
DiffNick = MesswertNick - StickNick; // Differenz bestimmen |
if(IntegralFaktor) SummeNick += IntegralNickMalFaktor - StickNick; // I-Anteil bei Winkelregelung |
else SummeNick += DiffNick; // I-Anteil bei HH |
if(SummeNick > (STICK_GAIN * 16000L)) SummeNick = (STICK_GAIN * 16000L); |
if(SummeNick < -(16000L * STICK_GAIN)) SummeNick = -(16000L * STICK_GAIN); |
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; |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// Universal Mixer |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
for(i=0; i<MAX_MOTORS; i++) |
{ |
signed int tmp_int; |
if(Mixer.Motor[i][0] > 0) |
{ |
tmp_int = ((long)GasMischanteil * Mixer.Motor[i][0]) / 64L; |
tmp_int += ((long)pd_ergebnis_nick * Mixer.Motor[i][1]) / 64L; |
tmp_int += ((long)pd_ergebnis_roll * Mixer.Motor[i][2]) / 64L; |
tmp_int += ((long)GierMischanteil * Mixer.Motor[i][3]) / 64L; |
tmp_motorwert[i] = MotorSmoothing(tmp_int,tmp_motorwert[i]); // Filter |
tmp_int = tmp_motorwert[i] / STICK_GAIN; |
CHECK_MIN_MAX(tmp_int,MIN_GAS,MAX_GAS); |
Motor[i] = tmp_int; |
} |
else Motor[i] = 0; |
} |
/* |
if(Poti1 > 20) Motor1 = 0; |
if(Poti1 > 90) Motor6 = 0; |
if(Poti1 > 140) Motor2 = 0; |
//if(Poti1 > 200) Motor7 = 0; |
*/ |
} |
/branches/V0.76g_WKN-hef/fc.h |
---|
0,0 → 1,201 |
/*####################################################################################### |
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 FLAG_NOTLANDUNG 16 |
#define FLAG_LOWBAT 32 |
#define MAX_MOTORS 12 |
#define CHECK_MIN_MAX(wert,min,max) {if(wert < min) wert = min; else if(wert > max) wert = max;} |
extern volatile unsigned char MikroKopterFlags; |
extern volatile unsigned int I2CTimeout; |
extern unsigned char Sekunde,Minute; |
extern unsigned int BaroExpandActive; |
extern long IntegralNick,IntegralNick2; |
extern long IntegralRoll,IntegralRoll2; |
//extern int IntegralNick,IntegralNick2; |
//extern int IntegralRoll,IntegralRoll2; |
extern 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 long HoehenWert; |
extern long SollHoehe; |
extern int MesswertNick,MesswertRoll,MesswertGier; |
extern int AdNeutralNick,AdNeutralRoll,AdNeutralGier, Mittelwert_AccNick, Mittelwert_AccRoll; |
extern int NeutralAccX, NeutralAccY,Mittelwert_AccHoch; |
extern unsigned char HoehenReglerAktiv; |
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, unsigned int dauer); |
extern unsigned char h,m,s; |
extern volatile unsigned char Timeout ; |
extern unsigned char CosinusNickWinkel, CosinusRollWinkel; |
extern int DiffNick,DiffRoll; |
extern int Poti1, Poti2, Poti3, Poti4; |
extern volatile unsigned char SenderOkay; |
extern volatile unsigned char SenderRSSI; |
extern unsigned char RequiredMotors; |
extern int StickNick,StickRoll,StickGier; |
extern char MotorenEin; |
extern void DefaultKonstanten1(void); |
extern void DefaultKonstanten2(void); |
extern void DefaultKonstanten3(void); |
extern void DefaultStickMapping(void); |
#define STRUCT_PARAM_LAENGE sizeof(EE_Parameter) |
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 Hoehe_HoverBand; // Wert : 0-250 |
unsigned char Hoehe_GPS_Z; // Wert : 0-250 |
unsigned char Hoehe_StickNeutralPoint;// Wert : 0-250 |
unsigned char Stick_P; // Wert : 1-6 |
unsigned char Stick_D; // Wert : 0-64 |
unsigned char Gier_P; // Wert : 1-20 |
unsigned char Gas_Min; // Wert : 0-32 |
unsigned char Gas_Max; // Wert : 33-250 |
unsigned char GyroAccFaktor; // Wert : 1-64 |
unsigned char KompassWirkung; // Wert : 0-32 |
unsigned char Gyro_P; // Wert : 10-250 |
unsigned char Gyro_I; // Wert : 0-250 |
unsigned char Gyro_D; // Wert : 0-250 |
unsigned char Gyro_Gier_P; // Wert : 10-250 |
unsigned char Gyro_Gier_I; // Wert : 0-250 |
unsigned char 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 |
//--- Seit V0.75 |
unsigned char ServoRollControl; // Wert : 0-250 // Stellung des Servos |
unsigned char ServoRollComp; // Wert : 0-250 |
unsigned char ServoRollMin; // Wert : 0-250 |
unsigned char ServoRollMax; // Wert : 0-250 |
//--- |
unsigned char ServoNickRefresh; // |
unsigned char LoopGasLimit; // Wert: 0-250 max. Gas während Looping |
unsigned char LoopThreshold; // Wert: 0-250 Schwelle für Stickausschlag |
unsigned char LoopHysterese; // Wert: 0-250 Hysterese für Stickausschlag |
unsigned char AchsKopplung1; // Wert: 0-250 Faktor, mit dem Gier die Achsen Roll und Nick koppelt (NickRollMitkopplung) |
unsigned char AchsKopplung2; // Wert: 0-250 Faktor, mit dem Nick und Roll verkoppelt werden |
unsigned char CouplingYawCorrection; // Wert: 0-250 Faktor, mit dem Nick und Roll verkoppelt werden |
unsigned char WinkelUmschlagNick; // Wert: 0-250 180°-Punkt |
unsigned char WinkelUmschlagRoll; // Wert: 0-250 180°-Punkt |
unsigned char GyroAccAbgleich; // 1/k (Koppel_ACC_Wirkung) |
unsigned char Driftkomp; |
unsigned char DynamicStability; |
unsigned char UserParam5; // Wert : 0-250 |
unsigned char UserParam6; // Wert : 0-250 |
unsigned char UserParam7; // Wert : 0-250 |
unsigned char UserParam8; // Wert : 0-250 |
//---Output --------------------------------------------- |
unsigned char J16Bitmask; // for the J16 Output |
unsigned char J16Timing; // for the J16 Output |
unsigned char J17Bitmask; // for the J17 Output |
unsigned char J17Timing; // for the J17 Output |
// seit version V0.75c |
unsigned char WARN_J16_Bitmask; // for the J16 Output |
unsigned char WARN_J17_Bitmask; // for the J17 Output |
//---NaviCtrl--------------------------------------------- |
unsigned char NaviGpsModeControl; // Parameters for the Naviboard |
unsigned char NaviGpsGain; |
unsigned char NaviGpsP; |
unsigned char NaviGpsI; |
unsigned char NaviGpsD; |
unsigned char NaviGpsPLimit; |
unsigned char NaviGpsILimit; |
unsigned char NaviGpsDLimit; |
unsigned char NaviGpsACC; |
unsigned char NaviGpsMinSat; |
unsigned char NaviStickThreshold; |
unsigned char NaviWindCorrection; |
unsigned char NaviSpeedCompensation; |
unsigned char NaviOperatingRadius; |
unsigned char NaviAngleLimitation; |
unsigned char NaviPH_LoginTime; |
//---Ext.Ctrl--------------------------------------------- |
unsigned char ExternalControl; // for serial Control |
//------------------------------------------------ |
unsigned char BitConfig; // (war Loop-Cfg) Bitcodiert: 0x01=oben, 0x02=unten, 0x04=links, 0x08=rechts / wird getrennt behandelt |
unsigned char ServoCompInvert; // // 0x01 = Nick, 0x02 = Roll 0 oder 1 // WICHTIG!!! am Ende lassen |
unsigned char ExtraConfig; // bitcodiert |
char Name[12]; |
}; |
struct |
{ |
char Revision; |
char Name[12]; |
signed char Motor[16][4]; |
} Mixer; |
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_ServoRollControl; |
extern unsigned char Parameter_AchsKopplung1; |
extern unsigned char Parameter_AchsKopplung2; |
//extern unsigned char Parameter_AchsGegenKopplung1; |
extern unsigned char Parameter_J16Bitmask; // for the J16 Output |
extern unsigned char Parameter_J16Timing; // for the J16 Output |
extern unsigned char Parameter_J17Bitmask; // for the J17 Output |
extern unsigned char Parameter_J17Timing; // for the J17 Output |
extern signed char MixerTable[MAX_MOTORS][4]; |
extern unsigned char Motor[MAX_MOTORS]; |
#endif //_FC_H |
/branches/V0.76g_WKN-hef/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><File path="mymath.c"></File><File path="mymath.h"></File><File path="isqrt.S"></File></Project> |
/branches/V0.76g_WKN-hef/flight.pnps |
---|
0,0 → 1,0 |
<pd><ViewState><e p="Flight-Ctrl" x="true"></e></ViewState></pd> |
/branches/V0.76g_WKN-hef/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); |
/branches/V0.76g_WKN-hef/isqrt.S |
---|
0,0 → 1,203 |
;-----------------------------------------------------------------------------; |
; Fast integer squareroot routines for avr-gcc project (C)ChaN, 2008 |
; http://elm-chan.org/docs/avrlib/sqrt32.S |
;-----------------------------------------------------------------------------; |
; uint16_t isqrt32 (uint32_t n); |
; uint8_t isqrt16 (uint16_t n); |
; uint16_t ihypot (int16_t x, int16_t y); |
;-----------------------------------------------------------------------------: |
; 32bit integer squareroot |
;-----------------------------------------------------------------------------; |
; uint16_t isqrt32 ( |
; uint32_t n |
; ); |
; |
; Return Value: |
; Squareroot of n. |
; |
; Size = 53 words |
; Clock = 532..548 cycles |
; Stack = 0 byte |
.global isqrt32 |
.func isqrt32 |
isqrt32: |
clr r0 |
clr r18 |
clr r19 |
clr r20 |
ldi r21, 1 |
clr r27 |
clr r30 |
clr r31 |
ldi r26, 16 |
1: lsl r22 |
rol r23 |
rol r24 |
rol r25 |
rol r0 |
rol r18 |
rol r19 |
rol r20 |
lsl r22 |
rol r23 |
rol r24 |
rol r25 |
rol r0 |
rol r18 |
rol r19 |
rol r20 |
brpl 2f |
add r0, r21 |
adc r18, r27 |
adc r19, r30 |
adc r20, r31 |
rjmp 3f |
2: sub r0, r21 |
sbc r18, r27 |
sbc r19, r30 |
sbc r20, r31 |
3: lsl r21 |
rol r27 |
rol r30 |
andi r21, 0b11111000 |
ori r21, 0b00000101 |
sbrc r20, 7 |
subi r21, 2 |
dec r26 |
brne 1b |
lsr r30 |
ror r27 |
ror r21 |
lsr r30 |
ror r27 |
ror r21 |
mov r24, r21 |
mov r25, r27 |
ret |
.endfunc |
;-----------------------------------------------------------------------------: |
; 16bit integer squareroot |
;-----------------------------------------------------------------------------; |
; uint8_t isqrt16 ( |
; uint16_t n |
; ); |
; |
; Return Value: |
; Squareroot of n. |
; |
; Size = 33 words |
; Clock = 181..189 cycles |
; Stack = 0 byte |
.global isqrt16 |
.func isqrt16 |
isqrt16: |
clr r18 |
clr r19 |
ldi r20, 1 |
clr r21 |
ldi r22, 8 |
1: lsl r24 |
rol r25 |
rol r18 |
rol r19 |
lsl r24 |
rol r25 |
rol r18 |
rol r19 |
brpl 2f |
add r18, r20 |
adc r19, r21 |
rjmp 3f |
2: sub r18, r20 |
sbc r19, r21 |
3: lsl r20 |
rol r21 |
andi r20, 0b11111000 |
ori r20, 0b00000101 |
sbrc r19, 7 |
subi r20, 2 |
dec r22 |
brne 1b |
lsr r21 |
ror r20 |
lsr r21 |
ror r20 |
mov r24, r20 |
ret |
.endfunc |
;-----------------------------------------------------------------------------: |
; 16bit integer hypot (megaAVR is required) |
;-----------------------------------------------------------------------------; |
; uint16_t ihypot ( |
; int16_t x, |
; int16_t y |
; ); |
; |
; Return Value: |
; Squareroot of (x*x + y*y) |
; |
; Size = 42 words |
; Clock = 581..597 cycles |
; Stack = 0 byte |
.global ihypot |
.func ihypot |
ihypot: |
clr r26 |
sbrs r25, 7 |
rjmp 1f |
com r24 |
com r25 |
adc r24, r26 |
adc r25, r26 |
1: sbrs r23, 7 |
rjmp 2f |
com r22 |
com r23 |
adc r22, r26 |
adc r23, r26 |
2: mul r22, r22 |
movw r18, r0 |
mul r23, r23 |
movw r20, r0 |
mul r22, r23 |
add r19, r0 |
adc r20, r1 |
adc r21, r26 |
add r19, r0 |
adc r20, r1 |
adc r21, r26 |
mul r24, r24 |
movw r30, r0 |
mul r25, r25 |
add r18, r30 |
adc r19, r31 |
adc r20, r0 |
adc r21, r1 |
mul r24, r25 |
add r19, r0 |
adc r20, r1 |
adc r21, r26 |
add r19, r0 |
adc r20, r1 |
adc r21, r26 |
movw r24, r20 |
movw r22, r18 |
clr r1 |
rjmp isqrt32 |
.endfunc |
/branches/V0.76g_WKN-hef/isqrt.h |
---|
0,0 → 1,11 |
#ifndef _ISQRT_H |
#define _ISQRT_H |
#include <inttypes.h> |
// coded in assembler file |
extern uint16_t isqrt32(uint32_t n); |
extern uint8_t isqrt16(uint16_t n); |
extern uint16_t ihypot(int16_t x, int16_t y); |
#endif // _ISQRT_H |
/branches/V0.76g_WKN-hef/led.c |
---|
0,0 → 1,67 |
#include <inttypes.h> |
#include "main.h" |
uint16_t LED1_Timing = 0; |
uint16_t LED2_Timing = 0; |
unsigned char J16Blinkcount = 0, J16Mask = 1; |
unsigned char J17Blinkcount = 0, J17Mask = 1; |
// initializes the LED control outputs J16, J17 |
void LED_Init(void) |
{ |
// set PC2 & PC3 as output (control of J16 & J17) |
DDRC |= (1<<DDC2)|(1<<DDC3); |
J16_OFF; |
J17_OFF; |
J16Blinkcount = 0; J16Mask = 128; |
J17Blinkcount = 0; J17Mask = 128; |
} |
// called in UpdateMotors() every 2ms |
void LED_Update(void) |
{ |
static char delay = 0; |
static unsigned char J16Bitmask = 0; |
static unsigned char J17Bitmask = 0; |
if(!delay--) // 10ms Intervall |
{ |
delay = 4; |
if(MikroKopterFlags & FLAG_LOWBAT || SenderOkay < 128) |
{ |
J16Bitmask = EE_Parameter.WARN_J16_Bitmask; |
J17Bitmask = EE_Parameter.WARN_J17_Bitmask; |
} |
else |
{ |
J16Bitmask = EE_Parameter.J16Bitmask; |
J17Bitmask = EE_Parameter.J17Bitmask; |
} |
if((EE_Parameter.BitConfig & CFG_MOTOR_BLINK) && !MotorenEin) {if(EE_Parameter.BitConfig & CFG_MOTOR_OFF_LED1) J16_ON; else J16_OFF;} |
else |
if((EE_Parameter.J16Timing > 250) && (Parameter_J16Timing > 220)) {if(J16Bitmask & 128) J16_ON; else J16_OFF;} |
else |
if((EE_Parameter.J16Timing > 250) && (Parameter_J16Timing < 10)) {if(J16Bitmask & 128) J16_OFF; else J16_ON;} |
else |
if(!J16Blinkcount--) |
{ |
J16Blinkcount = Parameter_J16Timing-1; |
if(J16Mask == 1) J16Mask = 128; else J16Mask /= 2; |
if(J16Mask & J16Bitmask) J16_ON; else J16_OFF; |
} |
if((EE_Parameter.BitConfig & CFG_MOTOR_BLINK) && !MotorenEin) {if(EE_Parameter.BitConfig & CFG_MOTOR_OFF_LED2) J17_ON; else J17_OFF;} |
else |
if((EE_Parameter.J17Timing > 250) && (Parameter_J17Timing > 230)) {if(J17Bitmask & 128) J17_ON; else J17_OFF;} |
else |
if((EE_Parameter.J17Timing > 250) && (Parameter_J17Timing < 10)) {if(J17Bitmask & 128) J17_OFF; else J17_ON;} |
else |
if(!J17Blinkcount--) |
{ |
J17Blinkcount = Parameter_J17Timing-1; |
if(J17Mask == 1) J17Mask = 128; else J17Mask /= 2; |
if(J17Mask & J17Bitmask) J17_ON; else J17_OFF; |
} |
} |
} |
/branches/V0.76g_WKN-hef/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); |
/branches/V0.76g_WKN-hef/main.c |
---|
0,0 → 1,445 |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Copyright (c) Holger Buss, Ingo Busker |
// + Nur für den privaten Gebrauch / NON-COMMERCIAL USE ONLY |
// + www.MikroKopter.com |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Es gilt für das gesamte Projekt (Hardware, Software, Binärfiles, Sourcecode und Dokumentation), |
// + dass eine Nutzung (auch auszugsweise) nur für den privaten und nicht-kommerziellen Gebrauch zulässig ist. |
// + Sollten direkte oder indirekte kommerzielle Absichten verfolgt werden, ist mit uns (info@mikrokopter.de) Kontakt |
// + bzgl. der Nutzungsbedingungen aufzunehmen. |
// + Eine kommerzielle Nutzung ist z.B.Verkauf von MikroKoptern, Bestückung und Verkauf von Platinen oder Bausätzen, |
// + Verkauf von Luftbildaufnahmen, usw. |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Werden Teile des Quellcodes (mit oder ohne Modifikation) weiterverwendet oder veröffentlicht, |
// + unterliegen sie auch diesen Nutzungsbedingungen und diese Nutzungsbedingungen incl. Copyright müssen dann beiliegen |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Sollte die Software (auch auszugesweise) oder sonstige Informationen des MikroKopter-Projekts |
// + auf anderen Webseiten oder Medien veröffentlicht werden, muss unsere Webseite "http://www.mikrokopter.de" |
// + eindeutig als Ursprung verlinkt und genannt werden |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Keine Gewähr auf Fehlerfreiheit, Vollständigkeit oder Funktion |
// + Benutzung auf eigene Gefahr |
// + Wir übernehmen keinerlei Haftung für direkte oder indirekte Personen- oder Sachschäden |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Die Portierung oder Nutzung der Software (oder Teile davon) auf andere Systeme (ausser der Hardware von www.mikrokopter.de) ist nur |
// + mit unserer Zustimmung zulässig |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Die Funktion printf_P() unterliegt ihrer eigenen Lizenz und ist hiervon nicht betroffen |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Redistributions of source code (with or without modifications) must retain the above copyright notice, |
// + this list of conditions and the following disclaimer. |
// + * Neither the name of the copyright holders nor the names of contributors may be used to endorse or promote products derived |
// + from this software without specific prior written permission. |
// + * The use of this project (hardware, software, binary files, sources and documentation) is only permittet |
// + for non-commercial use (directly or indirectly) |
// + Commercial use (for excample: selling of MikroKopters, selling of PCBs, assembly, ...) is only permitted |
// + with our written permission |
// + * If sources or documentations are redistributet on other webpages, out webpage (http://www.MikroKopter.de) must be |
// + clearly linked as origin |
// + * porting the sources to other systems or using the software on other systems (except hardware from www.mikrokopter.de) is not allowed |
// + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
// + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
// + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
// + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE |
// + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
// + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
// + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
// + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
// + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
// + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
// + POSSIBILITY OF SUCH DAMAGE. |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
#include "main.h" |
unsigned char EEPromArray[E2END+1] EEMEM; |
unsigned char PlatinenVersion = 10; |
unsigned char SendVersionToNavi = 1; |
unsigned char BattLowVoltageWarning = 94; |
unsigned int FlugMinuten = 0,FlugMinutenGesamt = 0; |
// -- 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,150); |
} |
DebugOut.Analog[19] = WinkelOut.CalcState; |
} |
void LipoDetection(unsigned char print) |
{ |
unsigned int timer; |
if(print) printf("\n\rBatt:"); |
if(EE_Parameter.UnterspannungsWarnung < 50) // automatische Zellenerkennung |
{ |
timer = SetDelay(500); |
if(print) while (!CheckDelay(timer)); |
if(UBat < 130) |
{ |
BattLowVoltageWarning = 3 * EE_Parameter.UnterspannungsWarnung; |
if(print) |
{ |
Piep(3,200); |
printf(" 3 Cells "); |
} |
} |
else |
{ |
BattLowVoltageWarning = 4 * EE_Parameter.UnterspannungsWarnung; |
if(print) |
{ |
Piep(4,200); |
printf(" 4 Cells "); |
} |
} |
} |
else BattLowVoltageWarning = EE_Parameter.UnterspannungsWarnung; |
// if(BattLowVoltageWarning < 93) BattLowVoltageWarning = 93; |
if(print) printf(" Low warning level: %d.%d",BattLowVoltageWarning/10,BattLowVoltageWarning%10); |
} |
//############################################################################ |
//Hauptprogramm |
int main (void) |
//############################################################################ |
{ |
unsigned int timer,i,timer2 = 0; |
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 |
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\r==================================="); |
printf("\n\rFlightControl\n\rHardware:%d.%d\n\rSoftware:V%d.%d%c ",PlatinenVersion/10,PlatinenVersion%10, VERSION_MAJOR, VERSION_MINOR,VERSION_PATCH + 'a'); |
printf("\n\rthe use of this software is only permitted \n\ron original MikroKopter-Hardware"); |
printf("\n\rwww.MikroKopter.de (c) HiSystems GmbH"); |
printf("\n\r==================================="); |
if(UCSR1A == 0x20 && UCSR1C == 0x06) // initial Values for 644P |
{ |
Uart1Init(); |
} |
GRN_ON; |
ReadParameterSet(3, (unsigned char *) &EE_Parameter.Kanalbelegung[0], 9); // read only the first bytes |
if((eeprom_read_byte(&EEPromArray[EEPROM_ADR_MIXER_TABLE]) == MIXER_REVISION) && // Check Revision in the first Byte |
(eeprom_read_byte(&EEPromArray[EEPROM_ADR_VALID]) != 0xff)) // Settings reset via Koptertool |
{ |
unsigned char i; |
RequiredMotors = 0; |
eeprom_read_block(&Mixer, &EEPromArray[EEPROM_ADR_MIXER_TABLE], sizeof(Mixer)); |
for(i=0; i<16;i++) { if(Mixer.Motor[i][0] > 0) RequiredMotors++;} |
} |
else // default |
{ |
unsigned char i; |
printf("\n\rGenerating default Mixer Table"); |
for(i=0; i<16;i++) { Mixer.Motor[i][0] = 0;Mixer.Motor[i][1] = 0;Mixer.Motor[i][2] = 0;Mixer.Motor[i][3] = 0;}; |
// default = Quadro |
Mixer.Motor[0][0] = 64; Mixer.Motor[0][1] = +64; Mixer.Motor[0][2] = 0; Mixer.Motor[0][3] = +64; |
Mixer.Motor[1][0] = 64; Mixer.Motor[1][1] = -64; Mixer.Motor[1][2] = 0; Mixer.Motor[1][3] = +64; |
Mixer.Motor[2][0] = 64; Mixer.Motor[2][1] = 0; Mixer.Motor[2][2] = -64; Mixer.Motor[2][3] = -64; |
Mixer.Motor[3][0] = 64; Mixer.Motor[3][1] = 0; Mixer.Motor[3][2] = +64; Mixer.Motor[3][3] = -64; |
Mixer.Revision = MIXER_REVISION; |
memcpy(Mixer.Name, "Quadro\0", 11); |
eeprom_write_block(&Mixer, &EEPromArray[EEPROM_ADR_MIXER_TABLE], sizeof(Mixer)); |
} |
printf("\n\rMixer-Config: '%s' (%u Motors)",Mixer.Name,RequiredMotors); |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Check connected BL-Ctrls |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
printf("\n\rFound BL-Ctrl: "); |
motorread = 0; UpdateMotor = 0; SendMotorData(); while(!UpdateMotor); motorread = 0; // read the first I2C-Data |
timer = SetDelay(2000); |
for(i=0; i < MAX_MOTORS; i++) |
{ |
UpdateMotor = 0; |
SendMotorData(); |
while(!UpdateMotor); |
if(Mixer.Motor[i][0] > 0) // wait max 2 sec for the BL-Ctrls to wake up |
{ |
while(!CheckDelay(timer) && !MotorPresent[i]) {UpdateMotor = 0; SendMotorData(); while(!UpdateMotor);}; |
} |
if(MotorPresent[i]) printf("%d ",i+1); |
} |
for(i=0; i < MAX_MOTORS; i++) |
{ |
if(!MotorPresent[i] && Mixer.Motor[i][0] > 0) |
{ |
printf("\n\r\n\r!! MISSING BL-CTRL: %d !!",i+1); |
ServoActive = 1; // just in case the FC would be used as camera-stabilizer |
} |
MotorError[i] = 0; |
} |
printf("\n\r==================================="); |
SendMotorData(); |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Check Settings |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
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); |
} |
FlugMinuten = (int)eeprom_read_byte(&EEPromArray[EEPROM_ADR_MINUTES2]) * 256 + (int)eeprom_read_byte(&EEPromArray[EEPROM_ADR_MINUTES2+1]); |
FlugMinutenGesamt = (int)eeprom_read_byte(&EEPromArray[EEPROM_ADR_MINUTES]) * 256 + (int)eeprom_read_byte(&EEPromArray[EEPROM_ADR_MINUTES+1]); |
if(FlugMinutenGesamt == 0xffff || FlugMinuten == 0xffff) |
{ |
FlugMinuten = 0; |
FlugMinutenGesamt = 0; |
} |
printf("\n\rFlight-time %u min Total:%u min" ,FlugMinuten,FlugMinutenGesamt); |
if(eeprom_read_byte(&EEPromArray[EEPROM_ADR_ACC_NICK]) > 4) |
{ |
printf("\n\rACC not calibrated !"); |
} |
ReadParameterSet(GetActiveParamSetNumber(), (unsigned char *) &EE_Parameter.Kanalbelegung[0], STRUCT_PARAM_LAENGE); |
printf("\n\rUsing parameterset %d", GetActiveParamSetNumber()); |
if(EE_Parameter.GlobalConfig & CFG_HOEHENREGELUNG) |
{ |
printf("\n\rCalibrating pressure sensor.."); |
timer = SetDelay(1000); |
SucheLuftruckOffset(); |
while (!CheckDelay(timer)); |
printf("OK\n\r"); |
} |
SetNeutral(); |
ROT_OFF; |
beeptime = 2000; |
ExternControl.Digital[0] = 0x55; |
printf("\n\rControl: "); |
if (EE_Parameter.GlobalConfig & CFG_HEADING_HOLD) printf("HeadingHold"); |
else printf("Normal (ACC-Mode)"); |
LcdClear(); |
I2CTimeout = 5000; |
WinkelOut.Orientation = 1; |
LipoDetection(1); |
printf("\n\r===================================\n\r"); |
//SpektrumBinding(); |
timer = SetDelay(2000); |
while (1) |
{ |
if(UpdateMotor && AdReady) // ReglerIntervall |
{ |
UpdateMotor=0; |
if(WinkelOut.CalcState) CalMk3Mag(); |
else MotorRegler(); |
SendMotorData(); |
ROT_OFF; |
if(SenderOkay) SenderOkay--; |
else TIMSK1 |= _BV(ICIE1); // enable PPM-Input |
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
//if(HoehenReglerAktiv && NaviDataOkay && SenderOkay < 160 && SenderOkay > 10 && FromNaviCtrl_Value.SerialDataOkay > 220) SenderOkay = 160; |
//if(HoehenReglerAktiv && NaviDataOkay && SenderOkay < 101 && SenderOkay > 10 && FromNaviCtrl_Value.SerialDataOkay > 1) SenderOkay = 101; |
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
if(NaviDataOkay) |
{ |
if(--NaviDataOkay == 0) |
{ |
GPS_Nick = 0; |
GPS_Roll = 0; |
} |
} |
if(!--I2CTimeout || MissingMotor) |
{ |
if(!I2CTimeout) |
{ |
i2c_reset(); |
I2CTimeout = 5; |
DebugOut.Analog[28]++; // I2C-Error |
} |
if((BeepMuster == 0xffff) && MotorenEin) |
{ |
beeptime = 10000; |
BeepMuster = 0x0080; |
} |
} |
else |
{ |
ROT_OFF; |
} |
if(SIO_DEBUG && (!UpdateMotor || !MotorenEin)) |
{ |
DatenUebertragung(); |
BearbeiteRxDaten(); |
} |
else BearbeiteRxDaten(); |
if(CheckDelay(timer)) |
{ |
timer += 20; |
if(PcZugriff) PcZugriff--; |
else |
{ |
ExternControl.Config = 0; |
ExternStickNick = 0; |
ExternStickRoll = 0; |
ExternStickGier = 0; |
if(BeepMuster == 0xffff && SenderOkay == 0) |
{ |
beeptime = 15000; |
BeepMuster = 0x0c00; |
} |
} |
if(UBat < BattLowVoltageWarning) |
{ |
MikroKopterFlags |= FLAG_LOWBAT; |
if(BeepMuster == 0xffff) |
{ |
beeptime = 6000; |
BeepMuster = 0x0300; |
} |
} |
else MikroKopterFlags &= ~FLAG_LOWBAT; |
SPI_StartTransmitPacket(); |
SendSPI = 4; |
if(!MotorenEin) timer2 = 1450; // 0,5 Minuten aufrunden |
if(++timer2 == 2930) // eine Minute |
{ |
timer2 = 0; |
FlugMinuten++; |
FlugMinutenGesamt++; |
eeprom_write_byte(&EEPromArray[EEPROM_ADR_MINUTES2],FlugMinuten / 256); |
eeprom_write_byte(&EEPromArray[EEPROM_ADR_MINUTES2+1],FlugMinuten % 256); |
eeprom_write_byte(&EEPromArray[EEPROM_ADR_MINUTES],FlugMinutenGesamt / 256); |
eeprom_write_byte(&EEPromArray[EEPROM_ADR_MINUTES+1],FlugMinutenGesamt % 256); |
timer = SetDelay(20); // falls "timer += 20;" mal nicht geht |
} |
} |
LED_Update(); |
} |
if(!SendSPI) { SPI_TransmitByte(); } |
} |
return (1); |
} |
/branches/V0.76g_WKN-hef/main.h |
---|
0,0 → 1,136 |
#ifndef _MAIN_H |
#define _MAIN_H |
#define QUADRO |
//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 80 // wird angepasst, wenn sich die EEPROM-Daten geändert haben |
#define MIXER_REVISION 1 // wird angepasst, wenn sich die Mixer-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_MINUTES 10 |
#define EEPROM_ADR_MINUTES2 14 |
#define EEPROM_ADR_CHANNELS 80 |
#define EEPROM_ADR_PARAM_LENGTH 98 |
#define EEPROM_ADR_PARAM_BEGIN 100 |
#define EEPROM_ADR_MIXER_TABLE 1000 // 1001 - 1100 |
#define CFG_HOEHENREGELUNG 0x01 |
#define CFG_HOEHEN_SCHALTER 0x02 |
#define CFG_HEADING_HOLD 0x04 |
#define CFG_KOMPASS_AKTIV 0x08 |
#define CFG_KOMPASS_FIX 0x10 |
#define CFG_GPS_AKTIV 0x20 |
#define CFG_ACHSENKOPPLUNG_AKTIV 0x40 |
#define CFG_DREHRATEN_BEGRENZER 0x80 |
#define CFG_LOOP_OBEN 0x01 |
#define CFG_LOOP_UNTEN 0x02 |
#define CFG_LOOP_LINKS 0x04 |
#define CFG_LOOP_RECHTS 0x08 |
#define CFG_MOTOR_BLINK 0x10 |
#define CFG_MOTOR_OFF_LED1 0x20 |
#define CFG_MOTOR_OFF_LED2 0x40 |
#define CFG_RES4 0x80 |
#define CFG2_HEIGHT_LIMIT 0x01 |
#define CFG2_VARIO_BEEP 0x02 |
#define CFG_SENSITIVE_RC 0x04 |
#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 BattLowVoltageWarning; |
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); |
void LipoDetection(unsigned char print); |
extern unsigned char EEPromArray[]; |
extern unsigned int FlugMinuten,FlugMinutenGesamt; |
#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 |
/branches/V0.76g_WKN-hef/makefile |
---|
0,0 → 1,450 |
#-------------------------------------------------------------------- |
# MCU name |
MCU = atmega644p |
F_CPU = 20000000 |
#------------------------------------------------------------------- |
VERSION_MAJOR = 0 |
VERSION_MINOR = 76 |
VERSION_PATCH = 6 |
VERSION_SERIAL_MAJOR = 10 # Serial Protocol |
VERSION_SERIAL_MINOR = 1 # Serial Protocol |
NC_SPI_COMPATIBLE = 10 # 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 |
SRC += mymath.c |
########################################################################################################## |
# List Assembler source files here. |
# Make them always end in a capital .S. Files ending in a lowercase .s |
# will not be considered source files but generated files (assembler |
# output from the compiler), and will be deleted upon "make clean"! |
# Even though the DOS/Win* filesystem matches both .s and .S the same, |
# it will preserve the spelling of the filenames, and gcc itself does |
# care about how the name is spelled on its command-line. |
ASRC = isqrt.S |
# List any extra directories to look for include files here. |
# Each directory must be seperated by a space. |
EXTRAINCDIRS = |
# Optional compiler flags. |
# -g: generate debugging information (for GDB, or for COFF conversion) |
# -O*: optimization level |
# -f...: tuning, see gcc manual and avr-libc documentation |
# -Wall...: warning level |
# -Wa,...: tell GCC to pass this to the assembler. |
# -ahlms: create assembler listing |
CFLAGS = -O$(OPT) \ |
-funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums \ |
-Wall -Wstrict-prototypes \ |
-Wa,-adhlns=$(<:.c=.lst) \ |
$(patsubst %,-I%,$(EXTRAINCDIRS)) |
# Set a "language standard" compiler flag. |
# Unremark just one line below to set the language standard to use. |
# gnu99 = C99 + GNU extensions. See GCC manual for more information. |
#CFLAGS += -std=c89 |
#CFLAGS += -std=gnu89 |
#CFLAGS += -std=c99 |
CFLAGS += -std=gnu99 |
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 |
/branches/V0.76g_WKN-hef/menu.c |
---|
0,0 → 1,188 |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Copyright (c) Holger Buss, Ingo Busker |
// + only for non-profit use |
// + www.MikroKopter.com |
// + porting the sources to other systems or using the software on other systems (except hardware from www.mikrokopter.de) is not allowed |
// + see the File "License.txt" for further Informations |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
#include "main.h" |
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 = 14; |
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 +"); |
// 091114 Modified the next line by adding -Arthur P after the verion text. |
LCD_printfxy(0,1,"HW:V%d.%d SW:%d.%d%c-Arthur P",PlatinenVersion/10,PlatinenVersion%10, VERSION_MAJOR, VERSION_MINOR, VERSION_PATCH +'a'); |
LCD_printfxy(0,2,"Setting:%d %s",GetActiveParamSetNumber(),Mixer.Name); |
if(I2CTimeout < 6) LCD_printfxy(0,3,"I2C ERROR!!!") |
else |
if(MissingMotor) LCD_printfxy(0,3,"Missing BL-Ctrl:%d!!",MissingMotor) |
else 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",(int)(HoehenWert/5)); |
LCD_printfxy(0,1,"SollHoehe: %5i",(int)(SollHoehe/5)); |
LCD_printfxy(0,2,"Luftdruck: %5i",MessLuftdruck); |
LCD_printfxy(0,3,"Off : %5i",OCR0A); |
} |
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]]+120,PPM_in[EE_Parameter.Kanalbelegung[K_GIER]]); |
LCD_printfxy(0,2,"P1:%4i P2:%4i ",PPM_in[EE_Parameter.Kanalbelegung[K_POTI1]]+110,PPM_in[EE_Parameter.Kanalbelegung[K_POTI2]]+110); |
LCD_printfxy(0,3,"P3:%4i P4:%4i ",PPM_in[EE_Parameter.Kanalbelegung[K_POTI3]]+110,PPM_in[EE_Parameter.Kanalbelegung[K_POTI4]]+110); |
break; |
case 5: |
LCD_printfxy(0,0,"Gyro - Sensor"); |
if(PlatinenVersion == 10) |
{ |
LCD_printfxy(0,1,"Nick %4i (%3i.%i)",AdWertNick - AdNeutralNick/8, AdNeutralNick/8, AdNeutralNick%8); |
LCD_printfxy(0,2,"Roll %4i (%3i.%i)",AdWertRoll - AdNeutralRoll/8, AdNeutralRoll/8, AdNeutralRoll%8); |
LCD_printfxy(0,3,"Gier %4i (%3i)",AdNeutralGier - AdWertGier, AdNeutralGier); |
} |
else |
if((PlatinenVersion == 11) || (PlatinenVersion == 20)) |
{ |
LCD_printfxy(0,1,"Nick %4i (%3i.%x)",AdWertNick - AdNeutralNick/8, AdNeutralNick/16, (AdNeutralNick%16)/2); |
LCD_printfxy(0,2,"Roll %4i (%3i.%x)",AdWertRoll - AdNeutralRoll/8, AdNeutralRoll/16, (AdNeutralRoll%16)/2); |
LCD_printfxy(0,3,"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,"Voltage: %5i",UBat); |
LCD_printfxy(0,2,"RC-Level: %5i",SenderOkay); |
LCD_printfxy(0,3,"RC-Channels:%4i",Channels-1); |
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",ServoNickValue); |
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; |
case 12: |
LCD_printfxy(0,0,"BL-Ctrl Errors " ); |
LCD_printfxy(0,1," %3d %3d %3d %3d ",MotorError[0],MotorError[1],MotorError[2],MotorError[3]); |
LCD_printfxy(0,2," %3d %3d %3d %3d ",MotorError[4],MotorError[5],MotorError[6],MotorError[7]); |
LCD_printfxy(0,3," %3d %3d %3d %3d ",MotorError[8],MotorError[9],MotorError[10],MotorError[11]); |
break; |
case 13: |
LCD_printfxy(0,0,"BL-Ctrl found " ); |
LCD_printfxy(0,1," %c %c %c %c ",MotorPresent[0] + '-',MotorPresent[1] + '-',MotorPresent[2] + '-',MotorPresent[3] + '-'); |
LCD_printfxy(0,2," %c %c %c %c ",MotorPresent[4] + '-',MotorPresent[5] + '-',MotorPresent[6] + '-',MotorPresent[7] + '-'); |
LCD_printfxy(0,3," %c - - -",MotorPresent[8] + '-'); |
if(MotorPresent[9]) LCD_printfxy(4,3,"10"); |
if(MotorPresent[10]) LCD_printfxy(8,3,"11"); |
if(MotorPresent[11]) LCD_printfxy(12,3,"12"); |
break; |
case 14: |
LCD_printfxy(0,0,"Flight-Time " ); |
LCD_printfxy(0,1," %5umin",FlugMinuten); |
LCD_printfxy(0,2,"Total:%5umin",FlugMinutenGesamt); |
LCD_printfxy(13,3,"(reset)"); |
if(RemoteKeys & KEY4) |
{ |
FlugMinuten = 0; |
eeprom_write_byte(&EEPromArray[EEPROM_ADR_MINUTES2],FlugMinuten / 256); |
eeprom_write_byte(&EEPromArray[EEPROM_ADR_MINUTES2+1],FlugMinuten % 256); |
} |
/* if(RemoteKeys & KEY3 && FlugMinuten == 0) |
{ |
FlugMinutenGesamt = 0; |
eeprom_write_byte(&EEPromArray[EEPROM_ADR_MINUTES],FlugMinutenGesamt / 256); |
eeprom_write_byte(&EEPromArray[EEPROM_ADR_MINUTES+1],FlugMinutenGesamt % 256); |
} */ |
break; |
default: MaxMenue = MenuePunkt - 1; |
MenuePunkt = 0; |
break; |
} |
RemoteKeys = 0; |
} |
/branches/V0.76g_WKN-hef/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; |
/branches/V0.76g_WKN-hef/mymath.c |
---|
0,0 → 1,106 |
#include <stdlib.h> |
#include <avr/pgmspace.h> |
#include "mymath.h" |
// discrete mathematics |
// Sinus with argument in degree at an angular resolution of 1 degree and a discretisation of 13 bit. |
const uint16_t pgm_sinlookup[91] PROGMEM = {0, 143, 286, 429, 571, 714, 856, 998, 1140, 1282, 1423, 1563, 1703, 1843, 1982, 2120, 2258, 2395, 2531, 2667, 2802, 2936, 3069, 3201, 3332, 3462, 3591, 3719, 3846, 3972, 4096, 4219, 4341, 4462, 4581, 4699, 4815, 4930, 5043, 5155, 5266, 5374, 5482, 5587, 5691, 5793, 5893, 5991, 6088, 6183, 6275, 6366, 6455, 6542, 6627, 6710, 6791, 6870, 6947, 7022, 7094, 7165, 7233, 7299, 7363, 7424, 7484, 7541, 7595, 7648, 7698, 7746, 7791, 7834, 7875, 7913, 7949, 7982, 8013, 8041, 8068, 8091, 8112, 8131, 8147, 8161, 8172, 8181, 8187, 8191, 8192}; |
int16_t c_sin_8192(int16_t angle) |
{ |
int8_t m,n; |
int16_t sinus; |
// avoid negative angles |
if (angle < 0) |
{ |
m = -1; |
angle = abs(angle); |
} |
else m = +1; |
// fold angle to intervall 0 to 359 |
angle %= 360; |
// check quadrant |
if (angle <= 90) n=1; // first quadrant |
else if ((angle > 90) && (angle <= 180)) {angle = 180 - angle; n = 1;} // second quadrant |
else if ((angle > 180) && (angle <= 270)) {angle = angle - 180; n = -1;} // third quadrant |
else {angle = 360 - angle; n = -1;} //fourth quadrant |
// get lookup value |
sinus = pgm_read_word(&pgm_sinlookup[angle]); |
// calculate sinus value |
return (sinus * m * n); |
} |
// Cosinus with argument in degree at an angular resolution of 1 degree and a discretisation of 13 bit. |
int16_t c_cos_8192(int16_t angle) |
{ |
return (c_sin_8192(90 - angle)); |
} |
// Arcustangens returns degree in a range of +/. 180 deg |
const uint8_t pgm_atanlookup[346] PROGMEM = {0,1,2,3,4,4,5,6,7,8,9,10,11,11,12,13,14,15,16,17,17,18,19,20,21,21,22,23,24,24,25,26,27,27,28,29,29,30,31,31,32,33,33,34,35,35,36,36,37,37,38,39,39,40,40,41,41,42,42,43,43,44,44,45,45,45,46,46,47,47,48,48,48,49,49,50,50,50,51,51,51,52,52,52,53,53,53,54,54,54,55,55,55,55,56,56,56,57,57,57,57,58,58,58,58,59,59,59,59,60,60,60,60,60,61,61,61,61,62,62,62,62,62,63,63,63,63,63,63,64,64,64,64,64,64,65,65,65,65,65,65,66,66,66,66,66,66,66,67,67,67,67,67,67,67,68,68,68,68,68,68,68,68,69,69,69,69,69,69,69,69,69,70,70,70,70,70,70,70,70,70,71,71,71,71,71,71,71,71,71,71,71,72,72,72,72,72,72,72,72,72,72,72,73,73,73,73,73,73,73,73,73,73,73,73,73,73,74,74,74,74,74,74,74,74,74,74,74,74,74,74,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79}; |
int16_t c_atan2(int16_t y, int16_t x) |
{ |
int16_t index, angle; |
int8_t m; |
if (!x && !y) return 0; //atan2(0, 0) is undefined |
if (y < 0) m = -1; |
else m = 1; |
if (!x) return (90 * m); // atan2(y,0) = +/- 90 deg |
index = (int16_t)(((int32_t)y * 64) / x);// calculate index for lookup table |
if (index < 0) index = -index; |
if (index < 346) angle = pgm_read_byte(&pgm_atanlookup[index]); // lookup for 0 deg to 79 deg |
else if (index > 7334) angle = 90; // limit is 90 deg |
else if (index > 2444) angle = 89; // 89 deg to 80 deg is mapped via intervalls |
else if (index > 1465) angle = 88; |
else if (index > 1046) angle = 87; |
else if (index > 813) angle = 86; |
else if (index > 664) angle = 85; |
else if (index > 561) angle = 84; |
else if (index > 486) angle = 83; |
else if (index > 428) angle = 82; |
else if (index > 382) angle = 81; |
else angle = 80; // (index>345) |
if (x > 0) return (angle * m); // 1st and 4th quadrant |
else if ((x < 0) && (m > 0)) return (180 - angle); // 2nd quadrant |
else return (angle - 180); // ( (x < 0) && (y < 0)) 3rd quadrant |
} |
// Integer square root |
// For details of the algorithm see the article http://www.embedded.com/98/9802fe2.htm |
uint32_t c_sqrt(uint32_t a) |
{ |
uint32_t rem = 0; |
uint32_t root = 0; |
uint8_t i; |
for(i = 0; i < 16; i++) |
{ |
root <<= 1; |
rem = ((rem << 2) + (a >> 30)); |
a <<= 2; |
root++; |
if(root <= rem) |
{ |
rem -= root; |
root++; |
} |
else root--; |
} |
return (root >> 1); |
} |
/branches/V0.76g_WKN-hef/mymath.h |
---|
0,0 → 1,10 |
#ifndef _MYMATH_H |
#define _MYMATH_H |
#include <inttypes.h> |
extern int16_t c_sin_8192(int16_t angle); |
extern int16_t c_cos_8192(int16_t angle); |
extern int16_t c_atan2(int16_t y, int16_t x); |
extern uint32_t c_sqrt(uint32_t a); |
#endif // _MYMATH_H |
/branches/V0.76g_WKN-hef/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 |
/branches/V0.76g_WKN-hef/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); |
} |
/branches/V0.76g_WKN-hef/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 |
/branches/V0.76g_WKN-hef/rc.c |
---|
0,0 → 1,212 |
/*####################################################################################### |
Decodieren eines RC Summen Signals |
#######################################################################################*/ |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Copyright (c) Holger Buss, Ingo Busker |
// + only for non-profit use |
// + www.MikroKopter.com |
// + porting the sources to other systems or using the software on other systems (except hardware from www.mikrokopter.de) is not allowed |
// + see the File "License.txt" for further Informations |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
#include "rc.h" |
#include "main.h" |
//#define ACT_S3D_SUMMENSIGNAL |
volatile int PPM_in[11]; |
volatile int PPM_diff[11]; // das diffenzierte Stick-Signal |
volatile char Channels,tmpChannels = 0; |
volatile unsigned char NewPpmData = 1; |
//############################################################################ |
//zum decodieren des PPM-Signals wird Timer1 mit seiner Input |
//Capture Funktion benutzt: |
void rc_sum_init (void) |
//############################################################################ |
{ |
#ifndef ACT_S3D_SUMMENSIGNAL |
TCCR1B=(1<<CS11)|(1<<CS10)|(1<<ICES1)|(1<<ICNC1);//|(1 << WGM12); //timer1 prescale 64 |
#else |
TCCR1B=(1<<CS11)|(0<<CS10)|(1<<ICES1)|(1<<ICNC1); //timer1 prescale 64 |
#endif |
TIMSK1 |= _BV(ICIE1); |
AdNeutralGier = 0; |
AdNeutralRoll = 0; |
AdNeutralNick = 0; |
return; |
} |
#ifndef ACT_S3D_SUMMENSIGNAL |
//############################################################################ |
//Diese Routine startet und inizialisiert den Timer für RC |
SIGNAL(SIG_INPUT_CAPTURE1) |
//############################################################################ |
{ |
if(!(EE_Parameter.ExtraConfig & CFG_SENSITIVE_RC)) |
{ |
static unsigned int AltICR=0; |
signed int signal = 0,tmp; |
static int index; |
signal = (unsigned int) ICR1 - AltICR; |
AltICR = ICR1; |
//Syncronisationspause? (3.52 ms < signal < 25.6 ms) |
if((signal > 1100) && (signal < 8000)) |
{ |
Channels = index; |
if(index >= 4) NewPpmData = 0; // Null bedeutet: Neue Daten |
index = 1; |
} |
else |
{ |
if(index < 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 |
} |
} |
} |
else |
{ |
static unsigned int AltICR=0; |
static int ppm_in[11]; |
static int ppm_diff[11]; |
static int old_ppm_in[11]; |
static int old_ppm_diff[11]; |
signed int signal = 0,tmp; |
static unsigned char index, okay_cnt = 0; |
signal = (unsigned int) ICR1 - AltICR; |
AltICR = ICR1; |
//Syncronisationspause? (3.52 ms < signal < 25.6 ms) |
if((signal > 1100) && (signal < 8000)) |
{ |
tmpChannels = index; |
if(tmpChannels >= 4 && Channels == tmpChannels) |
{ |
if(okay_cnt > 10) |
{ |
NewPpmData = 0; // Null bedeutet: Neue Daten |
for(index = 0; index < 11; index++) |
{ |
if(okay_cnt > 30) |
{ |
old_ppm_in[index] = PPM_in[index]; |
old_ppm_diff[index] = PPM_diff[index]; |
} |
PPM_in[index] = ppm_in[index]; |
PPM_diff[index] = ppm_diff[index]; |
} |
} |
if(okay_cnt < 255) okay_cnt++; |
} |
else |
{ |
if(okay_cnt > 100) okay_cnt = 10; else okay_cnt = 0; |
ROT_ON; |
} |
index = 1; |
if(!MotorenEin) Channels = tmpChannels; |
} |
else |
{ |
if(index < 10) |
{ |
if((signal > 250) && (signal < 687)) |
{ |
signal -= 466; |
// Stabiles Signal |
if((abs(signal - ppm_in[index]) < 6)) |
{ |
if(okay_cnt > 25) SenderOkay += 10; |
else |
if(okay_cnt > 10) SenderOkay += 2; |
if(SenderOkay > 200) SenderOkay = 200; |
} |
tmp = (3 * (ppm_in[index]) + signal) / 4; |
if(tmp > signal+1) tmp--; else |
if(tmp < signal-1) tmp++; |
if(SenderOkay >= 190) ppm_diff[index] = ((tmp - ppm_in[index]) / 3) * 3; |
else ppm_diff[index] = 0; |
ppm_in[index] = tmp; |
} |
else ROT_ON; |
if(index == 5) J3High; else J3Low; // Servosignal an J3 anlegen |
if(index == 6) J4High; else J4Low; // Servosignal an J4 anlegen |
if(index == 7) J5High; else J5Low; // Servosignal an J5 anlegen |
} |
if(index < 20) index++; |
else |
if(index == 20) |
{ |
unsigned char i; |
ROT_ON; |
index = 30; |
for(i=0;i<11;i++) // restore from older data |
{ |
PPM_in[i] = old_ppm_in[i]; |
PPM_diff[i] = 0; |
// okay_cnt /= 2; |
} |
} |
} |
} |
} |
#else |
//############################################################################ |
//Diese Routine startet und inizialisiert den Timer für RC |
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++; |
} |
} |
} |
#endif |
/branches/V0.76g_WKN-hef/rc.h |
---|
0,0 → 1,31 |
/*####################################################################################### |
Derkodieren eines RC Summen Signals |
#######################################################################################*/ |
#ifndef _RC_H |
#define _RC_H |
#if defined (__AVR_ATmega32__) |
#define TIMER_TEILER CK64 |
#define TIMER_RELOAD_VALUE 250 |
#endif |
#if defined (__AVR_ATmega644__) |
#define TIMER_RELOAD_VALUE 250 |
#endif |
#if defined (__AVR_ATmega644P__) |
#define TIMER_RELOAD_VALUE 250 |
#endif |
#define GAS PPM_in[2] |
extern void rc_sum_init (void); |
extern volatile int PPM_in[11]; |
extern volatile int PPM_diff[11]; // das diffenzierte Stick-Signal |
extern volatile unsigned char NewPpmData; |
extern volatile char Channels,tmpChannels; |
#endif //_RC_H |
/branches/V0.76g_WKN-hef/spi.c |
---|
0,0 → 1,297 |
// ######################## 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,NaviDataOkay = 0; |
unsigned char SPI_CommandSequence[] = { SPI_CMD_USER, SPI_CMD_STICK, SPI_CMD_PARAMETER1, SPI_CMD_STICK, SPI_CMD_MISC, SPI_CMD_VERSION, SPI_CMD_SERVOS }; |
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; |
FromNaviCtrl_Value.SerialDataOkay = 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) |
{ |
signed int tmp; |
ToNaviCtrl.IntegralNick = (int) (IntegralNick / (long)(EE_Parameter.GyroAccFaktor * 4)); |
ToNaviCtrl.IntegralRoll = (int) (IntegralRoll / (long)(EE_Parameter.GyroAccFaktor * 4)); |
ToNaviCtrl.GyroCompass = (10 * ErsatzKompass) / GIER_GRAD_FAKTOR; |
ToNaviCtrl.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) BattLowVoltageWarning; |
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: |
cli(); |
tmp = PPM_in[EE_Parameter.Kanalbelegung[K_GAS]]; if(tmp > 127) tmp = 127; else if(tmp < -127) tmp = -127; |
ToNaviCtrl.Param.Byte[0] = (char) tmp; |
tmp = PPM_in[EE_Parameter.Kanalbelegung[K_GIER]]; if(tmp > 127) tmp = 127; else if(tmp < -127) tmp = -127; |
ToNaviCtrl.Param.Byte[1] = (char) tmp; |
tmp = PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]]; if(tmp > 127) tmp = 127; else if(tmp < -127) tmp = -127; |
ToNaviCtrl.Param.Byte[2] = (char) tmp; |
tmp = PPM_in[EE_Parameter.Kanalbelegung[K_NICK]]; if(tmp > 127) tmp = 127; else if(tmp < -127) tmp = -127; |
sei(); |
ToNaviCtrl.Param.Byte[3] = (char) tmp; |
ToNaviCtrl.Param.Byte[4] = (unsigned char) 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; |
ToNaviCtrl.Param.Byte[9] = (unsigned char) SenderRSSI; |
ToNaviCtrl.Param.Byte[10] = DebugOut.Analog[7] / 4; //GasMischanteil |
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.Byte[1] = EE_Parameter.NaviPH_LoginTime; |
ToNaviCtrl.Param.Int[1] = DebugOut.Analog[5];// = HoehenWert/5; |
ToNaviCtrl.Param.Int[2] = (int)(SollHoehe/5); |
ToNaviCtrl.Param.Byte[6] = EE_Parameter.NaviGpsPLimit; |
ToNaviCtrl.Param.Byte[7] = EE_Parameter.NaviGpsILimit; |
ToNaviCtrl.Param.Byte[8] = EE_Parameter.NaviGpsDLimit; |
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; |
case SPI_CMD_SERVOS: |
ToNaviCtrl.Param.Byte[0] = EE_Parameter.ServoNickRefresh; // Parameters for the Servo Control |
ToNaviCtrl.Param.Byte[1] = EE_Parameter.ServoCompInvert; |
ToNaviCtrl.Param.Byte[2] = Parameter_ServoNickControl; |
ToNaviCtrl.Param.Byte[3] = EE_Parameter.ServoNickComp; |
ToNaviCtrl.Param.Byte[4] = EE_Parameter.ServoNickMin; |
ToNaviCtrl.Param.Byte[5] = EE_Parameter.ServoNickMax; |
ToNaviCtrl.Param.Byte[6] = Parameter_ServoRollControl; |
ToNaviCtrl.Param.Byte[7] = EE_Parameter.ServoRollComp; |
ToNaviCtrl.Param.Byte[8] = EE_Parameter.ServoRollMin; |
ToNaviCtrl.Param.Byte[9] = EE_Parameter.ServoRollMax; |
break; |
} |
if(SPI_RxDataValid) |
{ |
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; |
NaviDataOkay = 250; |
} |
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.sByte[0]; |
FromNaviCtrl_Value.Kalman_MaxFusion = FromNaviCtrl.Param.sByte[1]; |
FromNaviCtrl_Value.Kalman_MaxDrift = FromNaviCtrl.Param.sByte[2]; |
FromNaviCtrl_Value.SerialDataOkay = FromNaviCtrl.Param.Byte[3]; |
FromNaviCtrl_Value.GpsZ = FromNaviCtrl.Param.Byte[4]; |
break; |
default: |
break; |
} |
} |
else |
{ |
// KompassValue = 0; |
// KompassRichtung = 0; |
GPS_Nick = 0; |
GPS_Roll = 0; |
} |
} |
#endif |
/branches/V0.76g_WKN-hef/spi.h |
---|
0,0 → 1,144 |
// ######################## SPI - FlightCtrl ################### |
#ifndef _SPI_H |
#define _SPI_H |
#include <util/delay.h> |
#define USE_SPI_COMMUNICATION |
//----------------------------------------- |
#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 |
#define SPI_CMD_SERVOS 15 |
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 sByte[12]; |
unsigned 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 sByte[12]; |
unsigned 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; |
unsigned char SerialDataOkay; |
signed char GpsZ; |
}; |
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,NaviDataOkay; |
//#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 |
/branches/V0.76g_WKN-hef/timer0.c |
---|
0,0 → 1,462 |
#include "main.h" |
#include "spectrum.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; |
volatile int16_t ServoNickValue = 0; |
volatile int16_t ServoRollValue = 0; |
// Arthur P: Added two variables for control of the shutter servo cycle. |
// 091114 Inserted same changes into v.0.76g code. |
// 091114 Inactivated the following two lines as the shutter interval funtion is not |
// used at the moment. |
// volatile static unsigned int CameraShutterCycleCounter = 0; |
// volatile static unsigned int CameraShutterCycle = 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) // 9,7kHz |
{ |
static unsigned char cnt_1ms = 1,cnt = 0; |
unsigned char pieper_ein = 0; |
if(SendSPI) SendSPI--; |
if(SpektrumTimer) SpektrumTimer--; |
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 =r 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(); |
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 |
static int16_t ServoRollOffset = (255 / 2) * MULTIPLYER; // initial value near center positon |
// Arthur P: Added initialization of the CameraShutterCycle value here as this routine is only |
// called once. This retains all code changes in timer0.c. If parameter 6 > 0 then the user |
// has set a value for the cycle. CameraShuytterCycle == 5x Para6 to get approx 0.1sec increments. |
// 090807: Arthur P.: Removed the shutter cycle parts as they may be impacting timing loops. |
// CameraShutterCycle = 5 * Parameter_UserParam6; |
// CameraShutterCycle = Parameter_UserParam6; |
// Arthur P: Modified the code to scheck the value of parameter 8. If 128 or higher then a HEF4017 is |
// expected and will be used. Else J7 and J9 are seen as separate normal outputs. |
// if((PlatinenVersion < 20) |
// 091114. Inserted same changes into v.0.76g code. |
if((PlatinenVersion < 20) && (Parameter_UserParam8 < 128 )) |
{ |
//--------------------------- |
// 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.ServoCompInvert & 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; |
// 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.ServoCompInvert & 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; |
break; |
case 2: // Roll Compensation Servo |
ServoRollOffset = (ServoRollOffset * 3 + (int16_t) Parameter_ServoRollControl * MULTIPLYER) / 4; // lowpass offset |
ServoRollValue = ServoRollOffset; // offset (Range from 0 to 255 * 3 = 765) |
if(EE_Parameter.ServoCompInvert & 0x02) |
{ // inverting movement of servo |
ServoRollValue += (int16_t)( ( (int32_t) EE_Parameter.ServoRollComp * MULTIPLYER * (IntegralRoll / 128L ) ) / (256L) ); |
} |
else |
{ // non inverting movement of servo |
ServoRollValue -= (int16_t)( ( (int32_t) EE_Parameter.ServoRollComp * MULTIPLYER * (IntegralRoll / 128L ) ) / (256L) ); |
} |
// limit servo value to its parameter range definition |
if(ServoRollValue < ((int16_t)EE_Parameter.ServoRollMin * MULTIPLYER) ) |
{ |
ServoRollValue = (int16_t)EE_Parameter.ServoRollMin * MULTIPLYER; |
} |
else |
if(ServoRollValue > ((int16_t)EE_Parameter.ServoRollMax * MULTIPLYER) ) |
{ |
ServoRollValue = (int16_t)EE_Parameter.ServoRollMax * MULTIPLYER; |
} |
RemainingPulse += ServoRollValue - (256 / 2) * MULTIPLYER; // shift ServoNickValue to center position |
ServoRollValue /= MULTIPLYER; |
//DebugOut.Analog[20] = ServoRollValue; |
break; |
case 3: // Arthur P: Shutter Servo including interval control over parameter 5 and 6. |
// 091114 Inserted same modification into v.0.76g code, removing previously REM-ed out modified parts. |
if(PPM_in[EE_Parameter.Kanalbelegung[K_POTI3]] < -32) |
{ |
// Set servo to null position, turning camera off. |
RemainingPulse = MINSERVOPULSE; |
} |
else |
{ |
RemainingPulse = MINSERVOPULSE + SERVORANGE/2; |
} |
break; |
// 090807 Arthur P: Removed the output of the remaining channels as this just eats time and probably |
// does not have much of a function. Better to add specific outputs as needed. |
// 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 |
else HEF4017R_ON; |
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 |
} |
/branches/V0.76g_WKN-hef/timer0.h |
---|
0,0 → 1,21 |
#define TIMER_TEILER CK8 |
#define TIMER_RELOAD_VALUE 250 |
#define HEF4017R_ON PORTC |= (1<<PORTC6) |
#define HEF4017R_OFF PORTC &= ~(1<<PORTC6) |
void Timer_Init(void); |
void TIMER2_Init(void); |
void Delay_ms(unsigned int); |
void Delay_ms_Mess(unsigned int); |
unsigned int SetDelay (unsigned int t); |
char CheckDelay (unsigned int t); |
extern volatile unsigned int CountMilliseconds; |
extern volatile unsigned char UpdateMotor; |
extern volatile unsigned int beeptime; |
extern volatile unsigned int cntKompass; |
extern unsigned int BeepMuster; |
extern volatile unsigned char SendSPI, ServoActive; |
extern volatile int16_t ServoNickValue; |
extern volatile int16_t ServoRollValue; |
/branches/V0.76g_WKN-hef/twimaster.c |
---|
0,0 → 1,221 |
/*############################################################################ |
############################################################################*/ |
#include "main.h" |
volatile unsigned char twi_state = 0; |
unsigned char motor = 0; |
unsigned char motorread = 0,MissingMotor = 0; |
unsigned char motor_rx[16],motor_rx2[16]; |
unsigned char MotorPresent[MAX_MOTORS]; |
unsigned char MotorError[MAX_MOTORS]; |
unsigned int I2CError = 0; |
//############################################################################ |
//Initzialisieren der I2C (TWI) Schnittstelle |
void i2c_init(void) |
//############################################################################ |
{ |
TWSR = 0; |
TWBR = ((SYSCLK/SCL_CLOCK)-16)/2; |
} |
//############################################################################ |
//Start I2C |
void i2c_start(void) |
//############################################################################ |
{ |
TWCR = (1<<TWSTA) | (1<<TWEN) | (1<<TWINT) | (1<<TWIE); |
} |
//############################################################################ |
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); |
} |
//############################################################################ |
void i2c_write_byte(char byte) |
//############################################################################ |
{ |
TWSR = 0x00; |
TWDR = byte; |
TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWIE); |
} |
/****************************************/ |
/* Write to I2C */ |
/****************************************/ |
void I2C_WriteByte(int8_t byte) |
{ |
// move byte to send into TWI Data Register |
TWDR = byte; |
// clear interrupt flag (TWINT = 1) |
// enable i2c bus (TWEN = 1) |
// enable interrupt (TWIE = 1) |
TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWIE); |
} |
/****************************************/ |
/* Receive byte and send ACK */ |
/****************************************/ |
void I2C_ReceiveByte(void) |
{ |
TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWIE) | (1<<TWEA); |
} |
/****************************************/ |
/* I2C receive last byte and send no ACK*/ |
/****************************************/ |
void I2C_ReceiveLastByte(void) |
{ |
TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWIE); |
} |
//############################################################################ |
SIGNAL (TWI_vect) |
//############################################################################ |
{ |
static unsigned char missing_motor; |
switch(twi_state++) |
{ |
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// Writing the Data |
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
case 0: |
while(Mixer.Motor[motor][0] <= 0 && motor < MAX_MOTORS) motor++; // skip if not used |
if(motor == MAX_MOTORS) // writing finished -> now read |
{ |
motor = 0; |
twi_state = 3; |
i2c_write_byte(0x53+(motorread*2)); |
} |
else i2c_write_byte(0x52+(motor*2)); |
break; |
case 1: |
i2c_write_byte(Motor[motor++]); |
break; |
case 2: |
if(TWSR == 0x30) |
{ |
if(!missing_motor) missing_motor = motor; |
if(++MotorError[motor-1] == 0) MotorError[motor-1] = 255; |
} |
i2c_stop(); |
I2CTimeout = 10; |
twi_state = 0; |
i2c_start(); |
break; |
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// Reading Data |
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
case 3: |
//Transmit 1st byte for reading |
if(TWSR != 0x40) // Error? |
{ |
MotorPresent[motorread] = 0; |
motorread++; |
if(motorread >= MAX_MOTORS) motorread = 0; |
i2c_stop(); |
twi_state = 0; |
} |
else |
{ |
MotorPresent[motorread] = ('1' - '-') + motorread; |
I2C_ReceiveByte(); |
} |
MissingMotor = missing_motor; |
missing_motor = 0; |
break; |
case 4: //Read 1st byte and transmit 2nd Byte |
motor_rx[motorread] = TWDR; |
I2C_ReceiveLastByte(); //nack |
break; |
case 5: |
//Read 2nd byte |
motor_rx2[motorread++] = TWDR; |
if(motorread >= MAX_MOTORS) motorread = 0; |
i2c_stop(); |
twi_state = 0; |
break; |
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// writing Gyro-Offset |
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
case 8: |
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; |
default: twi_state = 0; |
break; |
} |
TWCR |= 0x80; |
} |
/branches/V0.76g_WKN-hef/twimaster.h |
---|
0,0 → 1,35 |
/*############################################################################ |
############################################################################*/ |
#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,MissingMotor; |
extern unsigned char motorread; |
extern unsigned char motor_rx[]; |
extern unsigned char MotorPresent[]; |
extern unsigned char MotorError[]; |
void i2c_reset(void); |
extern void i2c_init (void); // I2C initialisieren |
extern void i2c_start (void); // Start I2C |
extern void i2c_stop (void); // Stop I2C |
extern void i2c_write_byte (char byte); // 1 Byte schreiben |
extern void i2c_reset(void); |
#endif |
/branches/V0.76g_WKN-hef/uart.c |
---|
0,0 → 1,570 |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Copyright (c) Holger Buss, Ingo Busker |
// + only for non-profit use |
// + www.MikroKopter.com |
// + see the File "License.txt" for further Informations |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
#include <stdarg.h> |
#include <string.h> |
#include "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 volatile char PC_MotortestActive = 0; |
unsigned char DebugTextAnforderung = 255; |
unsigned char PcZugriff = 100; |
unsigned char MotorTest[16]; |
unsigned char MeineSlaveAdresse = 1; // Flight-Ctrl |
unsigned char ConfirmFrame; |
struct str_DebugOut DebugOut; |
struct str_ExternControl ExternControl; |
struct str_VersionInfo VersionInfo; |
struct str_WinkelOut WinkelOut; |
struct str_Data3D Data3D; |
int 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 |
" ", |
" ", |
"VarioMeter ", |
"MK3Mag CalState ", |
"Servo ", //20 |
"Hoovergas ", |
" ", |
" ", |
" ", |
" ", //25 |
" ", |
" ", |
"I2C-Error ", |
" ",// "Navi Serial Data", |
"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 |
ServoActive = 0; |
} |
} |
} |
else |
switch(UartState) |
{ |
case 0: |
if(SioTmp == '#' && !NeuerDatensatzEmpfangen) UartState = 1; // Startzeichen und Daten schon verarbeitet |
buf_ptr = 0; |
RxdBuffer[buf_ptr++] = SioTmp; |
crc = SioTmp; |
break; |
case 1: // Adresse auswerten |
UartState++; |
RxdBuffer[buf_ptr++] = SioTmp; |
crc += SioTmp; |
break; |
case 2: // Eingangsdaten sammeln |
RxdBuffer[buf_ptr] = SioTmp; |
if(buf_ptr < MAX_EMPFANGS_BUFF) buf_ptr++; |
else UartState = 0; |
crc += SioTmp; |
break; |
default: |
UartState = 0; |
break; |
} |
} |
// -------------------------------------------------------------------------- |
void AddCRC(unsigned int wieviele) |
{ |
unsigned int tmpCRC = 0,i; |
for(i = 0; i < wieviele;i++) |
{ |
tmpCRC += 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 |
if(AnzahlEmpfangsBytes > 20) memcpy(&MotorTest[0], (unsigned char *)pRxData, sizeof(MotorTest)); |
else memcpy(&MotorTest[0], (unsigned char *)pRxData, 4); |
PC_MotortestActive = 240; |
//while(!UebertragungAbgeschlossen); |
//SendOutData('T', MeineSlaveAdresse, 0); |
PcZugriff = 255; |
break; |
case 'n':// "Get Mixer |
while(!UebertragungAbgeschlossen); |
SendOutData('N', FC_ADDRESS, 1, (unsigned char *) &Mixer,sizeof(Mixer)); |
break; |
case 'm':// "Write Mixer |
while(!UebertragungAbgeschlossen); |
if(pRxData[0] == MIXER_REVISION) |
{ |
memcpy(&Mixer, (unsigned char *)pRxData, sizeof(Mixer)); |
eeprom_write_block(&Mixer, &EEPromArray[EEPROM_ADR_MIXER_TABLE], sizeof(Mixer)); |
tempchar1 = 1; |
} |
else tempchar1 = 0; |
SendOutData('M', FC_ADDRESS, 1, &tempchar1, sizeof(tempchar1)); |
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(); |
LipoDetection(0); |
Piep(tempchar1,110); |
} |
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 |
if(AnzahlEmpfangsBytes > 20) memcpy(&MotorTest[0], (unsigned char *)pRxData, sizeof(MotorTest)); |
else memcpy(&MotorTest[0], (unsigned char *)pRxData, 4); |
while(!UebertragungAbgeschlossen); |
SendOutData('T', MeineSlaveAdresse, 0); |
PC_MotortestActive = 250; |
PcZugriff = 255; |
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) |
{ |
//if(Poti3 > 64) |
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; |
} |
} |
/branches/V0.76g_WKN-hef/uart.h |
---|
0,0 → 1,136 |
#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 volatile char PC_MotortestActive; |
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 Uart1Init(void); |
extern void BearbeiteRxDaten(void); |
extern unsigned char MotorTest[16]; |
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 |
/branches/V0.76g_WKN-hef/version.txt |
---|
0,0 → 1,342 |
------- |
V0.53 27.04.2007 H.Buss |
- erste öffentliche Version |
V0.53b 29.04.2007 H.Buss |
- der FAKTOR_I war versehentlich auf Null, dann liegt der MikroKopter nicht so hart in der Luft |
V0.53c 29.04.2007 H.Buss |
- es gib ein Menü, in dem die Werte der Kanäle nach Nick, Roll, Gas,... sortiert sind. |
Die angezeigten Werte waren nicht die Werte der Funke |
V0.54 01.05.2007 H.Buss |
- die Paramtersätze können jetzt vor dem Start ausgewählt werden |
Dazu wird beim Kalibrieren der Messwerte (Gashebel oben links) der Nick-Rollhebel abgefragt: |
2 3 4 |
1 x 5 |
- - - |
Bedeutet: Nick-Rollhebel Links Mitte = Setting:1 Links Oben = Setting:2 usw. |
- der Faktor_I für den Hauptregler ist hinzugekommen. Im Heading-Hold-Modus sollte er vergössert werden, was Stabilität bringt |
V0.55 14.05.2007 H.Buss |
- es können nun Servos an J3,J4,J5 mit den Kanälen 5-7 gesteuert werden |
V0.56 14.05.2007 H.Buss |
- es gab Probleme mit Funken, die mehr als 8 Kanäle haben, wenn mehrere Kanäle dann auf Null waren |
- Funken, die nicht bis +-120 aussteuern können, sollten jetzt auch gehen |
V0.57 24.05.2007 H.Buss |
- Der Höhenregler kann nun auch mittels Schalter bedient werden |
- Bug im Gier-Algorithmus behoben; Schnelles Gieren fürhrte dazu, dass der MK zu weit gedreht hat |
- Kompass-Einfluss dämpfen bei Neigung |
- Man kann zwischen Kompass FIX (Richtung beim Kalibrieren) und Variabel (einstellbar per Gier) wählen |
- Der Motortest vom Kopter-Tool geht jetzt |
- Man kann den Parametersätzen einen Namen geben |
- Das Kamerasetting ist unter Setting 2 defaultmässig integriert |
V0.58 30.05.2007 H.Buss |
- Der Höhenregler-Algorithmus wird nun umgangen, wenn der Höhenreglerschalter aus ist |
V0.60 17.08.2007 H.Buss |
- "Schwindel-Bug" behoben |
- Die Poti-Werte werden jetzt auf Unterlauf (<0) überprüft |
- Poti4 zugefügt |
- Es werden jetzt 8 Kanäle ausgewertet |
- Kamera-Servo (an J7) |
- Die Settings müssen überschrieben werden |
V0.61 - V0.63 H.Buss 27.09.2007 |
- Poti 4 und Kanal 8 werden im Menü angezeigt |
- ein paar Kleinigkeiten bei den DefaultKonstanten2 bereinigt |
- Analog.c: Aktuell_ax korrigiert |
- auf 32 Debug-Kanäle erweitert |
- Loopings sind jetzt möglich und einzeln im KopterTool freischaltbar |
- leichte Anpassungen im Gier - Geschwindigkeit und Drift |
- die Hardwareversion V1.1 wird erkannt und das Programm stellt sich auf die geänderte Gyroverstärkung und die geänderten Portpins ein |
- die Software startet nach dem Einschalten schneller, weil der Luftdruckoffset schneller gefunden wird |
- die PPM-Ausgänge liegen wieder an den Pins an |
- Details an der Sensordatenverarbeitung -> es fliegt sich geringfügig anders |
- der MK ist bei wenig Gas nicht mehr so giftig -> soll das Landen vereinfachen |
- I2C-Bus läuft jetzt sicher nach einer Störung wieder an |
- Sticksignale werden präziser ausgewertet |
- Stick-Kanäle werden ans Kopter-Tool übertragen |
- Es muss die Version V1.47 des Kopter-Tool verwendet werden |
- Die Settings werden auf Default zurückgesetzt |
- am Piepen kann man die Fehlerart unterscheiden |
1. einzelnes Piepen beim Einschalten und Kalibrieren |
2. langsames Intervall mindestens 1 Sek -> Empfangsausfall |
3. schnelleres Intervall mindestens 1 Sek -> Akku |
4. sehr schnelles Intervall mindestens 1 Sek -> Kommunikation zu den Reglern gestört |
V0.64 H.Buss 30.09.2007 |
- beim Gieren wurden die Achsen nicht hart genug geregelt |
V0.65a H.Buss 15.10.2007 |
- Integral im Mischer wieder integriert |
- Feinabstimmung im ACC/Gyro Abgleich -> 1/32 & 100 |
- ACC/Gyro Abgleich auch bei HH |
V0.66a H.Buss 3.11.2007 |
- Messwertverarbeitung aus dem Analog-Interrupt entfernt |
- Analogmessung hängt jetzt am FC-Timing |
- Looping-Stick-Hysterese eingebaut |
- Looping-180°-Umschlag einstellbar |
- Achsenkopplung: Gierbewegung verkoppelt Nick und Roll |
- Lageregelung nach ACC-Sensor verbessert |
- zusätzlicher I-Anteil in der Lageregelung verbessert die Neutrallage |
- Gyrodriftkompensation überarbeitet |
- Bug in der Gier-Stick-Berechnung behoben |
- Gyro-Messung auf 1kHz beschleunigt |
V0.67a H.Buss 16.11.2007 |
- der Hauptregler-I-Anteil wirkt jetzt nur noch auf den Winkel (ausser im HH-Mode) |
- Gyro-Acc-Abgleich jetzt wieder in jedem Zyklus |
- Feinabstimmung |
- Beim HH-Modus gab es noch Bugs |
V0.67e H.Buss 29.11.2007 |
- Parameter: Dynamic Stability und Driftfaktor eingeführt |
- Die Namen der Analogwerte werden jetzt zum Koptertool übertragen |
- Kompatibilität zum Koptertool erhöht |
V0.67f H.Buss 04.12.2007 |
- Das Integral des Hauptreglers wird jetzt linear entladen und nicht mehr proportional |
- Schub für Gier wird jetzt auf den Gaswert begrenzt, dadurch steigt der MK nicht mehr beim Gieren. Gier ist allerdings nicht mehr so agressiv |
- Die ACC-Nullwerte können jetzt dauerhaft im EEPROM gespeichert werden (Stick:Vollgas und Gier rechts) |
V0.68a I.Busker 28.12.2007 |
- SPI.c & SPI.h ins Projekt aufgenommen |
SPI-Kommuikation kann in SPI.h aktiviert/deaktivert werden |
V0.68c H.Buss 05.01.2008 |
- Stickauswertung verbessert -> träger und präziser |
- Alle Settings angepasst |
V0.69e H.Buss 05.05.2008 |
- kleinere Bugs beseitigt |
- Schneller Sinkflug jetzt möglich |
- Min- und Maxgas in den Settings geändert |
- Lagewinkel wird jetzt in 0,1 Grad an Kompass und Navi gesendet |
- Kalibrierung für MK3Mag -> Nick unten beim Kalibrieren |
- Kompassroutine um den Ersatzkompass (Gyro unterstützt Kompasswert) erweitert |
V0.69h H.Buss 21.05.2008 |
- STICK_GAIN = 4 eingeführt. Das erhöht die Auflösung der Sollwerte. Stick_P und Stick_I müssen nun um Faktor 4 erhöht werden |
- SenderOkay auch an das Naviboard übertragen |
- Bessere Parameter bei Senderausfall |
V0.69j H.Buss 30.05.2008 |
- Höhere Präzision der Achsenkopplung |
V0.69k H.Buss 31.05.2008 |
- Bug in SPI.C behoben |
- in 0.69h war ein Bug, der zu ungewollten Loopings führen konnte |
V0.69L H.Buss 14.06.2008 |
- feinere Cam-Servo-Auflösung |
V0.70a H.Buss 01.07.2008 |
- Unterstützung der V1.3-Hardware mit automatischem Hardware-Gyro-Abgleich |
V0.70b H.Buss 14.07.2008 |
- flexible Einstellungsmöglichkeit von J16 und J17 (Transistorausgänge) |
- eigene Parameter für GPS-Naviboard |
- eigener Parameter für ExternalControl (war vorher UserParameter1 bzw. 8) |
- neue Parameter im EEPROM-Datensatz: J16Bitmask, J16Timing, ExternalControl, Navi... |
- MikroKopterFlags eingeführt, damit das Navi den Status des MKs kennt |
- KopterTool-Kompatibilität auf 8 erhöht |
V0.70c H.Buss 30.07.2008 |
- Parameter der Datenfusion leicht modifiziert |
- EEPROM-Parameter für Looping-Umschlag angepasst (von 100 auf 85) |
- MaxStick wird auf 100 begrenzt |
V0.70d H.Buss 02.08.2008 |
- Transistorausgänge: das oberste Bit der Blinkmaske (im KopterTool linkes Bit) gibt nun den Zustand des Ausgangs im Schalterbetrieb an |
0.71b: H.Buss 19.10.2008 |
Kommunikation zum Navi erweitert: |
- Beeptime jetzt 32Bit |
- Datenfusion und Driftkopensation wird durch NaviBoard unterstützt |
0.71c: H.Buss 20.10.2008 |
- LoopConfig heisst jetzt BitConfig |
- 3-Fach-Schalter für Höhensteuerung möglich -> kann man mit GPS-Schalter zusammenlegen |
- bei den Settings wurde Setting[0] mit abgespeichert, welches es nicht gab. |
- in Zukunft werden bei neuen EEPROM-Settings die Kanäle von Setting 1 übernommen |
- Variablen NaviWindCorrection, NaviSpeedCompensation, NaviOperatingRadius eingeführt |
0.71f: H.Buss 15.11.2008 |
- Ausschalten der Höhenregelung per Schalter um 0,3 sek verzögert |
- bei der seriellen Übertragung hat die FC jetzt als SlaveAdresse die 1 |
- VersionInfo.NaviKompatibel eingeführt |
- wenn manuell gegiert wird, wird der GyroKompass-Wert auf den Kompasswert gesetzt |
- Luftdruckwert wird an das Navi übertragen |
- Der Baro-Offset wird jetzt nachgeführt, um den Messbereich zu erweitern. Geht nur bei Höhenregler mit Schalter |
- Debugdaten können jetzt mit 'f' gepollt werden |
0.71g: Gregor 09.12.2008 |
- Kommunikation überarbeitet |
Infos hier: http://www.mikrokopter.de/ucwiki/en/SerialCommands |
0.71h: H.Buss 15.12.2008 |
- Freigegebene Version |
- NaviAngleLimitation als Parameter zum Navi implementiert |
- Antwort auf CMD: 't' entfernt |
0.72d: H.Buss 22.01.2009 |
- OCTO als Compilerschalter |
- Unterstützung der FC 2.0 (ME) |
- GYRO_D eingeführt |
- Achsenkopplung jetzt auch auf Nick/Roll-Bewegung |
0.72e: H.Buss 27.01.2009 |
- die 0.72d hatte kein Integral im Gier |
- Parameter eingeführt: |
EE_Parameter.NaviGpsPLimit |
EE_Parameter.NaviGpsILimit |
EE_Parameter.NaviGpsDLimit |
EE_Parameter.NaviPH_LoginTime |
EE_Parameter.AchsKopplung2 |
EE_Parameter.CouplingYawCorrection |
0.72f: H.Buss 28.01.2009 |
- Bug im Ersatzkompass entfernt |
0.72h: H.Buss 05.02.2009 |
- Algorithmen beschleunigt -> Floats durch Fixkomma ersetzt |
- Achsentkopplung weiter verbessert |
- Nick- und Roll im Octo-Mischer auf jeweils vier Motoren aufgeteilt |
0.72i: H.Buss 07.02.2009 |
- Abtastrate von 1kHz auf 2kHz erhöht |
0.72j: H.Buss 09.02.2009 |
- neue Implementierung der Servoausgänge |
0.72k: H.Buss 10.02.2009 |
- Abtastrate auf 5kHz erhöht |
0.72L: H.Buss 13.02.2009 |
- Signalfilterung überarbeitet |
- OCTO2 implementiert |
0.72M: H.Buss 13.02.2009 |
- Code Cleanup |
0.72o: H.Buss 24.02.2009 |
- Abtastrate auf 2kHz |
- HW-Version an Navi |
- neuer Datensatz 'c' -> Lagedaten für 3D-Grafik |
- Auswerteroutine für Spectrum-Satteliten implementiert |
- Kanalsettings werden beim Parameterreset nicht mehr gelöscht |
- die Driftkompensation wird jetzt feiner aufgelöst --> EE_Parameter.Driftkomp muss mal 8 genommen werden |
- die Integrale und ACC-Werte werden jetzt im Scope in ca. 0,1° angezeigt (wie beim NaviBrd) |
0.72p: H.Buss 01.03.2009 |
- Octo3 erstellt |
- Analogwerte umbenannt |
0.73a-d: H.Buss 05.04.2009 |
- MixerTabelle implementiert |
- I2C-Bus auf bis zu 12 Motoren erweitert |
- die Busfehler der BL-Regler werden im Menü angezeigt |
- Revision der MixerTabelle eingeführt |
- MixerTabelle wird bei Parameterreset neu initialisiert |
- Motortest auf [12] erweitert |
- Motorschalter nicht mehr 3-Stufig |
0.74a |
- Datenfusion im Flug auch, wenn ACC-Z < 512 |
- Wert für die Luftdruck-Messbereichserweiterung abgefangen |
0.74d |
- Die Driftkompensation ist jetzt dreistufig -> 0,5% pro sekunde zusätzlich eingeführts |
0.75a G.Stobrawa 22.5.2009 |
- Extern Control also received from NC via SPI |
0.75b H.Buss 27.05.2009 |
- Spektrum-Singale schalten den PPM-Eingang aus |
- max. 2 Sekunden nach dem Start auf die BL-Regler warten |
- Automatische Zellenerkennung, wenn Spannungswarnung < 5,0V |
- Bei automatischer Zellenerkennung piept es je nach Zellenzahl |
- EE_DATENREVISION auf 76 erhöht |
- Servo: |
- Roll-Servo für FC ME implementiert |
- Update-Cmd stoppt Servos |
- Servos werden erst nach dem ersten Kalibrieren aktiviert |
0.75c G.Stobrawa 25.7.2009 |
- Übertragung der Servo-Settings zur NC |
- RSSI wird an NC gesendet, derzeit wird der Wert nicht gesetzt |
- Bugfix Messbereichsumschaltung des Luftdrucksensors springt |
- Auflösung des Luftdrucks nun bis auf 1 cm (5mal feiner) zur genaueren Berechnung des D-Anteils |
- Unterstützung von Warnings-Bitmasks für die J16, J17-Outputs bei Unterspannung |
- Unterspannung für einzelne Zelle´n von 3.2V auf 3.3V angehoben (9.6V --> 9.9V für 3S) |
0.75d H.Buss 13.8.2009 |
- RC-Routine: Empfangsausfall soll sicherer erkannt werden |
- Zellenerkennung nun auch beim Speichern der Settings |
- Warnungs-Blinkmaske auch bei Empfangsausfall |
0.75e H.Buss 18.8.2009 |
- LED-Blinken kann an die Motoren gekoppelt werden |
- Feinabstimmung des Höhenreglers |
0.75f H.Buss 27.8.2009 |
- D-Anteil des Höhenreglers jetzt mit Quadratischer Komponente |
- Lagewinkel wirkt jetzt mit 1/Cos(x) mit in den Höhenregler |
- leichte Modifikation der RC-Empfangroutine |
0.75g H.Buss 31.08.2009 |
- die Akkuspannung geht jetzt antiproportional ins Gas ein |
0.75h H.Buss 3.09.2009 |
- im Höhenregler werden jetzt die Stellwerte begrenzt --> max +- 16% vom geschätzten Schwebegas |
0.75i H.Buss 7.09.2009 |
- GpsZ vom Navi zur FC für den Höhenregler |
- "hoovergas-Variation" als Parameter |
- Kompatibilität zu NC und PC erhöht |
0.75j H.Buss 17.09.2009 |
- Laufzeitzähler eingebaut |
0.75k H.Buss 22.09.2009 |
- zweite Variante (Gregor) der Höhenregelung implementiert |
- umschaltbare RC-Routine |
0.75L H.Buss 23.09.2009 |
- SollHoehe und Gas geht nun auch an die NC |
0.75M H.Buss 29.09.2009 |
- Spektrum-Timing wird nun überwacht |
- die FC kann nun stand-Alone als Kamera-Stabilizer eingesetzt werden, weil die Servos aktiviert werden, wenn I2C fehlt |
0.75N H.Buss 29.09.2009 |
- Hoover-Stickpunkt wird bei aktivem Höhenregler nicht nachgeführt |
- Hoover-Stickpunkt kann per Parameter fest eingestellt werden |
- Baro-Messbereichserweiterung auch bei aktiviertem Höhenregler |
- Gyro_Gier_P und Gyro_Gier_I eingeführt |
- I2C_fehler-Zähler jetzt in den Analogdaten |
0.75o H.Buss 01.10.2009 |
- der Höhenregler wird jetzt nur alle 10ms bearbeitet |
- Baro-Messbereichserweiterung auch bei Poti als Sollwert |
0.76d H.Buss 10.10.2009 |
- bei aktiver Messbereichserweiterung wird die aktuelle Höhe übernommen |
0.76e H.Buss 27.10.2009 |
- es werden beim Start einmal alle BL-Regler angesprochen, damit BL-Regler#8 auch einen Selbsttest macht |
- S3D-ACT-Summensignal als Compilerschalter |
0.76f H.Buss 05.11.2009 |
- untere Spannungsgrenze der Unterspannungswarnung (9,3V) entfernt |
0.76g H.Buss 10.11.2009 |
- Casting-Fehler in der Gas-Berechnung |
/branches/V0.76g_WKN-hef |
---|
Property changes: |
Added: tsvn:logminsize |
+8 |
\ No newline at end of property |