Browse Source
add OF_LOITER add AC TUNE options fix default alt issues. make Scripts, 1 at a time. update aerosim-rc plugin. add new "follow me" mode- need a nmea gps and xbee on pc. control-F > follow memission-4.1.18
15 changed files with 4187 additions and 788 deletions
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,135 @@
@@ -0,0 +1,135 @@
|
||||
namespace ArdupilotMega |
||||
{ |
||||
partial class SerialInput |
||||
{ |
||||
/// <summary> |
||||
/// Required designer variable. |
||||
/// </summary> |
||||
private System.ComponentModel.IContainer components = null; |
||||
|
||||
/// <summary> |
||||
/// Clean up any resources being used. |
||||
/// </summary> |
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> |
||||
protected override void Dispose(bool disposing) |
||||
{ |
||||
if (disposing && (components != null)) |
||||
{ |
||||
components.Dispose(); |
||||
} |
||||
base.Dispose(disposing); |
||||
} |
||||
|
||||
#region Windows Form Designer generated code |
||||
|
||||
/// <summary> |
||||
/// Required method for Designer support - do not modify |
||||
/// the contents of this method with the code editor. |
||||
/// </summary> |
||||
private void InitializeComponent() |
||||
{ |
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SerialInput)); |
||||
this.CMB_serialport = new System.Windows.Forms.ComboBox(); |
||||
this.BUT_connect = new ArdupilotMega.MyButton(); |
||||
this.CMB_baudrate = new System.Windows.Forms.ComboBox(); |
||||
this.label1 = new System.Windows.Forms.Label(); |
||||
this.LBL_location = new System.Windows.Forms.Label(); |
||||
this.textBox1 = new System.Windows.Forms.TextBox(); |
||||
this.SuspendLayout(); |
||||
// |
||||
// CMB_serialport |
||||
// |
||||
this.CMB_serialport.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; |
||||
this.CMB_serialport.FormattingEnabled = true; |
||||
this.CMB_serialport.Location = new System.Drawing.Point(13, 13); |
||||
this.CMB_serialport.Name = "CMB_serialport"; |
||||
this.CMB_serialport.Size = new System.Drawing.Size(121, 21); |
||||
this.CMB_serialport.TabIndex = 0; |
||||
// |
||||
// BUT_connect |
||||
// |
||||
this.BUT_connect.Location = new System.Drawing.Point(279, 12); |
||||
this.BUT_connect.Name = "BUT_connect"; |
||||
this.BUT_connect.Size = new System.Drawing.Size(75, 23); |
||||
this.BUT_connect.TabIndex = 1; |
||||
this.BUT_connect.Text = "Connect"; |
||||
this.BUT_connect.UseVisualStyleBackColor = true; |
||||
this.BUT_connect.Click += new System.EventHandler(this.BUT_connect_Click); |
||||
// |
||||
// CMB_baudrate |
||||
// |
||||
this.CMB_baudrate.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; |
||||
this.CMB_baudrate.FormattingEnabled = true; |
||||
this.CMB_baudrate.Items.AddRange(new object[] { |
||||
"4800", |
||||
"9600", |
||||
"14400", |
||||
"19200", |
||||
"28800", |
||||
"38400", |
||||
"57600", |
||||
"115200"}); |
||||
this.CMB_baudrate.Location = new System.Drawing.Point(140, 12); |
||||
this.CMB_baudrate.Name = "CMB_baudrate"; |
||||
this.CMB_baudrate.Size = new System.Drawing.Size(121, 21); |
||||
this.CMB_baudrate.TabIndex = 2; |
||||
// |
||||
// label1 |
||||
// |
||||
this.label1.AutoSize = true; |
||||
this.label1.Location = new System.Drawing.Point(90, 47); |
||||
this.label1.Name = "label1"; |
||||
this.label1.Size = new System.Drawing.Size(187, 13); |
||||
this.label1.TabIndex = 3; |
||||
this.label1.Text = "Pick the Nmea gps port and baud rate\r\n"; |
||||
// |
||||
// LBL_location |
||||
// |
||||
this.LBL_location.AutoSize = true; |
||||
this.LBL_location.Font = new System.Drawing.Font("Microsoft Sans Serif", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); |
||||
this.LBL_location.Location = new System.Drawing.Point(9, 78); |
||||
this.LBL_location.Name = "LBL_location"; |
||||
this.LBL_location.Size = new System.Drawing.Size(50, 24); |
||||
this.LBL_location.TabIndex = 4; |
||||
this.LBL_location.Text = "0,0,0"; |
||||
// |
||||
// textBox1 |
||||
// |
||||
this.textBox1.Enabled = false; |
||||
this.textBox1.Location = new System.Drawing.Point(19, 126); |
||||
this.textBox1.Multiline = true; |
||||
this.textBox1.Name = "textBox1"; |
||||
this.textBox1.Size = new System.Drawing.Size(335, 133); |
||||
this.textBox1.TabIndex = 5; |
||||
this.textBox1.Text = resources.GetString("textBox1.Text"); |
||||
// |
||||
// SerialInput |
||||
// |
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); |
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; |
||||
this.ClientSize = new System.Drawing.Size(369, 300); |
||||
this.Controls.Add(this.textBox1); |
||||
this.Controls.Add(this.LBL_location); |
||||
this.Controls.Add(this.label1); |
||||
this.Controls.Add(this.CMB_baudrate); |
||||
this.Controls.Add(this.BUT_connect); |
||||
this.Controls.Add(this.CMB_serialport); |
||||
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); |
||||
this.Name = "SerialInput"; |
||||
this.Text = "Follow Me"; |
||||
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.SerialOutput_FormClosing); |
||||
this.ResumeLayout(false); |
||||
this.PerformLayout(); |
||||
|
||||
} |
||||
|
||||
#endregion |
||||
|
||||
private System.Windows.Forms.ComboBox CMB_serialport; |
||||
private MyButton BUT_connect; |
||||
private System.Windows.Forms.ComboBox CMB_baudrate; |
||||
private System.Windows.Forms.Label label1; |
||||
private System.Windows.Forms.Label LBL_location; |
||||
private System.Windows.Forms.TextBox textBox1; |
||||
} |
||||
} |
@ -0,0 +1,224 @@
@@ -0,0 +1,224 @@
|
||||
using System; |
||||
using System.Collections.Generic; |
||||
using System.ComponentModel; |
||||
using System.Data; |
||||
using System.Drawing; |
||||
using System.Linq; |
||||
using System.Text; |
||||
using System.Windows.Forms; |
||||
using System.IO.Ports; |
||||
|
||||
namespace ArdupilotMega |
||||
{ |
||||
public partial class SerialInput : Form |
||||
{ |
||||
System.Threading.Thread t12; |
||||
static bool threadrun = false; |
||||
static internal SerialPort comPort = new SerialPort(); |
||||
static internal PointLatLngAlt lastgotolocation = new PointLatLngAlt(0, 0, 0, "Goto last"); |
||||
static internal PointLatLngAlt gotolocation = new PointLatLngAlt(0, 0, 0, "Goto"); |
||||
static internal int intalt = 100; |
||||
|
||||
public SerialInput() |
||||
{ |
||||
InitializeComponent(); |
||||
|
||||
CMB_serialport.DataSource = SerialPort.GetPortNames(); |
||||
|
||||
if (threadrun) |
||||
{ |
||||
BUT_connect.Text = "Stop"; |
||||
} |
||||
} |
||||
|
||||
private void BUT_connect_Click(object sender, EventArgs e) |
||||
{ |
||||
if (comPort.IsOpen) |
||||
{ |
||||
threadrun = false; |
||||
comPort.Close(); |
||||
BUT_connect.Text = "Connect"; |
||||
} |
||||
else |
||||
{ |
||||
try |
||||
{ |
||||
comPort.PortName = CMB_serialport.Text; |
||||
} |
||||
catch { MessageBox.Show("Invalid PortName"); return; } |
||||
try { |
||||
comPort.BaudRate = int.Parse(CMB_baudrate.Text); |
||||
} catch {MessageBox.Show("Invalid BaudRate"); return;} |
||||
try { |
||||
comPort.Open(); |
||||
} catch {MessageBox.Show("Error Connecting\nif using com0com please rename the ports to COM??"); return;} |
||||
|
||||
|
||||
string alt = "100"; |
||||
|
||||
if (MainV2.cs.firmware == MainV2.Firmwares.ArduCopter2) |
||||
{ |
||||
alt = (10 * MainV2.cs.multiplierdist).ToString("0"); |
||||
} |
||||
else |
||||
{ |
||||
alt = (100 * MainV2.cs.multiplierdist).ToString("0"); |
||||
} |
||||
if (DialogResult.Cancel == Common.InputBox("Enter Alt", "Enter Alt", ref alt)) |
||||
return; |
||||
|
||||
intalt = (int)(100 * MainV2.cs.multiplierdist); |
||||
if (!int.TryParse(alt, out intalt)) |
||||
{ |
||||
MessageBox.Show("Bad Alt"); |
||||
return; |
||||
} |
||||
|
||||
t12 = new System.Threading.Thread(new System.Threading.ThreadStart(mainloop)) |
||||
{ |
||||
IsBackground = true, |
||||
Name = "Nmea Input" |
||||
}; |
||||
t12.Start(); |
||||
|
||||
BUT_connect.Text = "Stop"; |
||||
} |
||||
} |
||||
|
||||
void mainloop() |
||||
{ |
||||
|
||||
|
||||
threadrun = true; |
||||
int counter = 0; |
||||
while (threadrun) |
||||
{ |
||||
try |
||||
{ |
||||
string line = comPort.ReadLine(); |
||||
|
||||
|
||||
//string line = string.Format("$GP{0},{1:HHmmss},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},{13},", "GGA", DateTime.Now.ToUniversalTime(), Math.Abs(lat * 100), MainV2.cs.lat < 0 ? "S" : "N", Math.Abs(lng * 100), MainV2.cs.lng < 0 ? "W" : "E", MainV2.cs.gpsstatus, MainV2.cs.satcount, MainV2.cs.gpshdop, MainV2.cs.alt, "M", 0, "M", ""); |
||||
if (line.StartsWith("$GPGGA")) // |
||||
{ |
||||
int c1 = line.IndexOf(',',0)+ 1; |
||||
int c2 = line.IndexOf(',', c1) + 1; |
||||
int c3 = line.IndexOf(',', c2) + 1; |
||||
int c4 = line.IndexOf(',', c3 ) + 1; |
||||
int c5 = line.IndexOf(',', c4 ) + 1; |
||||
int c6 = line.IndexOf(',', c5 ) + 1; |
||||
int c7 = line.IndexOf(',', c6 ) + 1; |
||||
int c8 = line.IndexOf(',', c7 ) + 1; |
||||
int c9 = line.IndexOf(',', c8 ) + 1; |
||||
int c10 = line.IndexOf(',', c9 ) + 1; |
||||
int c11 = line.IndexOf(',', c10 ) + 1; |
||||
int c12 = line.IndexOf(',', c11) + 1; |
||||
|
||||
gotolocation.Lat = double.Parse(line.Substring(c2, c3 - c2 - 1)) / 100.0; |
||||
|
||||
gotolocation.Lat = (int)gotolocation.Lat + ((gotolocation.Lat - (int)gotolocation.Lat) / 0.60); |
||||
|
||||
if (line.Substring(c3, c4 - c3 - 1) == "S") |
||||
gotolocation.Lat *= -1; |
||||
|
||||
gotolocation.Lng = double.Parse(line.Substring(c4, c5 - c4 - 1)) / 100.0; |
||||
|
||||
gotolocation.Lng = (int)gotolocation.Lng + ((gotolocation.Lng - (int)gotolocation.Lng) / 0.60); |
||||
|
||||
if (line.Substring(c5, c6 - c5 - 1) == "W") |
||||
gotolocation.Lng *= -1; |
||||
|
||||
gotolocation.Alt = intalt; // double.Parse(line.Substring(c9, c10 - c9 - 1)) + |
||||
|
||||
} |
||||
|
||||
|
||||
if (counter % 10 == 0 && gotolocation.Lat != 0 && gotolocation.Lng != 0 && gotolocation.Alt != 0) // 200 * 10 = 2 sec /// lastgotolocation != gotolocation && |
||||
{ |
||||
Console.WriteLine("Sending follow wp " +DateTime.Now.ToString("h:MM:ss")+" "+ gotolocation.Lat + " " + gotolocation.Lng + " " +gotolocation.Alt); |
||||
lastgotolocation = new PointLatLngAlt(gotolocation); |
||||
|
||||
Locationwp gotohere = new Locationwp(); |
||||
|
||||
gotohere.id = (byte)MAVLink.MAV_CMD.WAYPOINT; |
||||
gotohere.alt = (float)(gotolocation.Alt); |
||||
gotohere.lat = (float)(gotolocation.Lat); |
||||
gotohere.lng = (float)(gotolocation.Lng); |
||||
|
||||
try |
||||
{ |
||||
updateLocationLabel(gotohere); |
||||
} |
||||
catch { } |
||||
|
||||
if (MainV2.comPort.BaseStream.IsOpen && MainV2.givecomport == false) |
||||
{ |
||||
try |
||||
{ |
||||
MainV2.givecomport = true; |
||||
|
||||
MainV2.comPort.setWP(gotohere, 0, MAVLink.MAV_FRAME.MAV_FRAME_GLOBAL_RELATIVE_ALT, (byte)2); |
||||
|
||||
MainV2.givecomport = false; |
||||
} |
||||
catch { MainV2.givecomport = false; } |
||||
} |
||||
} |
||||
|
||||
System.Threading.Thread.Sleep(200); |
||||
counter++; |
||||
} |
||||
catch { System.Threading.Thread.Sleep(2000); } |
||||
} |
||||
} |
||||
|
||||
private void updateLocationLabel(Locationwp plla) |
||||
{ |
||||
this.BeginInvoke((MethodInvoker)delegate |
||||
{ |
||||
LBL_location.Text = gotolocation.Lat + " " + gotolocation.Lng + " " + gotolocation.Alt; |
||||
} |
||||
); |
||||
|
||||
} |
||||
|
||||
private void SerialOutput_FormClosing(object sender, FormClosingEventArgs e) |
||||
{ |
||||
} |
||||
|
||||
// Calculates the checksum for a sentence |
||||
string GetChecksum(string sentence) |
||||
{ |
||||
// Loop through all chars to get a checksum |
||||
int Checksum = 0; |
||||
foreach (char Character in sentence.ToCharArray()) |
||||
{ |
||||
switch (Character) |
||||
{ |
||||
case '$': |
||||
// Ignore the dollar sign |
||||
break; |
||||
case '*': |
||||
// Stop processing before the asterisk |
||||
continue; |
||||
default: |
||||
// Is this the first value for the checksum? |
||||
if (Checksum == 0) |
||||
{ |
||||
// Yes. Set the checksum to the value |
||||
Checksum = Convert.ToByte(Character); |
||||
} |
||||
else |
||||
{ |
||||
// No. XOR the checksum with this character's value |
||||
Checksum = Checksum ^ Convert.ToByte(Character); |
||||
} |
||||
break; |
||||
} |
||||
} |
||||
// Return the checksum formatted as a two-character hexadecimal |
||||
return Checksum.ToString("X2"); |
||||
} |
||||
|
||||
} |
||||
} |
@ -0,0 +1,208 @@
@@ -0,0 +1,208 @@
|
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<root> |
||||
<!-- |
||||
Microsoft ResX Schema |
||||
|
||||
Version 2.0 |
||||
|
||||
The primary goals of this format is to allow a simple XML format |
||||
that is mostly human readable. The generation and parsing of the |
||||
various data types are done through the TypeConverter classes |
||||
associated with the data types. |
||||
|
||||
Example: |
||||
|
||||
... ado.net/XML headers & schema ... |
||||
<resheader name="resmimetype">text/microsoft-resx</resheader> |
||||
<resheader name="version">2.0</resheader> |
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> |
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> |
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> |
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> |
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> |
||||
<value>[base64 mime encoded serialized .NET Framework object]</value> |
||||
</data> |
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> |
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> |
||||
<comment>This is a comment</comment> |
||||
</data> |
||||
|
||||
There are any number of "resheader" rows that contain simple |
||||
name/value pairs. |
||||
|
||||
Each data row contains a name, and value. The row also contains a |
||||
type or mimetype. Type corresponds to a .NET class that support |
||||
text/value conversion through the TypeConverter architecture. |
||||
Classes that don't support this are serialized and stored with the |
||||
mimetype set. |
||||
|
||||
The mimetype is used for serialized objects, and tells the |
||||
ResXResourceReader how to depersist the object. This is currently not |
||||
extensible. For a given mimetype the value must be set accordingly: |
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format |
||||
that the ResXResourceWriter will generate, however the reader can |
||||
read any of the formats listed below. |
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64 |
||||
value : The object must be serialized with |
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter |
||||
: and then encoded with base64 encoding. |
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64 |
||||
value : The object must be serialized with |
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter |
||||
: and then encoded with base64 encoding. |
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64 |
||||
value : The object must be serialized into a byte array |
||||
: using a System.ComponentModel.TypeConverter |
||||
: and then encoded with base64 encoding. |
||||
--> |
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> |
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> |
||||
<xsd:element name="root" msdata:IsDataSet="true"> |
||||
<xsd:complexType> |
||||
<xsd:choice maxOccurs="unbounded"> |
||||
<xsd:element name="metadata"> |
||||
<xsd:complexType> |
||||
<xsd:sequence> |
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" /> |
||||
</xsd:sequence> |
||||
<xsd:attribute name="name" use="required" type="xsd:string" /> |
||||
<xsd:attribute name="type" type="xsd:string" /> |
||||
<xsd:attribute name="mimetype" type="xsd:string" /> |
||||
<xsd:attribute ref="xml:space" /> |
||||
</xsd:complexType> |
||||
</xsd:element> |
||||
<xsd:element name="assembly"> |
||||
<xsd:complexType> |
||||
<xsd:attribute name="alias" type="xsd:string" /> |
||||
<xsd:attribute name="name" type="xsd:string" /> |
||||
</xsd:complexType> |
||||
</xsd:element> |
||||
<xsd:element name="data"> |
||||
<xsd:complexType> |
||||
<xsd:sequence> |
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> |
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> |
||||
</xsd:sequence> |
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> |
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> |
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> |
||||
<xsd:attribute ref="xml:space" /> |
||||
</xsd:complexType> |
||||
</xsd:element> |
||||
<xsd:element name="resheader"> |
||||
<xsd:complexType> |
||||
<xsd:sequence> |
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> |
||||
</xsd:sequence> |
||||
<xsd:attribute name="name" type="xsd:string" use="required" /> |
||||
</xsd:complexType> |
||||
</xsd:element> |
||||
</xsd:choice> |
||||
</xsd:complexType> |
||||
</xsd:element> |
||||
</xsd:schema> |
||||
<resheader name="resmimetype"> |
||||
<value>text/microsoft-resx</value> |
||||
</resheader> |
||||
<resheader name="version"> |
||||
<value>2.0</value> |
||||
</resheader> |
||||
<resheader name="reader"> |
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> |
||||
</resheader> |
||||
<resheader name="writer"> |
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> |
||||
</resheader> |
||||
<data name="textBox1.Text" xml:space="preserve"> |
||||
<value>What this does. |
||||
1. gets the current gps coords from a nmea gps. |
||||
2. sends a guided mode WP to the AP every 2 seconds. |
||||
|
||||
How to use it |
||||
1. connect to ap. |
||||
2. take off, test guided mode is working. |
||||
3. open this and pick your comport, and baud rate for your nmea gps. |
||||
4. it should now be following you.</value> |
||||
</data> |
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> |
||||
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> |
||||
<value> |
||||
AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAABAAABILAAASCwAAAAAAAAAA |
||||
AAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOxkjAtnoOAKpJ4vyiK |
||||
c+8nh3D/J4Zv/yeHcP8oi3PvKpJ4vy6fg4AzsZIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
||||
AAAAAAAAAAAAAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADjGo2AyspPfLZ+D/yiQ |
||||
d/8hlXj/G6F9/xeqg/8XqYL/GKqD/xuhfv8ilnn/KZB3/y2fhP8yspPfN8ajYAAAAAAAAAAAAAAAAAAA |
||||
AAAAAAAAAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADvRrDA1vpzfL6uN/yel |
||||
hP8XvJD/DMyY/wfQl/8FzJP/A8qS/wPJkf8EypL/BsyU/wnRmP8PzZn/Gb2R/yemhP8tqoz/Mb2a3zbQ |
||||
qkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAA4y6ZgMbWV/yin |
||||
iP8WwZP/Btqf/wDPlf8AyI7/A8aP/yfNnv9T2LP/UNax/03XsP8506b/G8ya/wHKkf8F0Zf/CNuf/xLB |
||||
kv8fpYT/J7KQ/y7IomAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wAAAAAAAAAAAAAAAAAAAAAANcajny+w |
||||
kf8hqoj/CNSd/wDRlf8Axor/Hcyd/3Lhwf+p7Nj/o+vV/57m0/+X5dD/k+TN/4/jzf+K5Mz/fuHH/0PW |
||||
rf8HzJT/ANCT/wDRlv8OpX//HayI/yrFn58AAAAAAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAADDC |
||||
nmAtro7/H62J/wPWmv8Ay47/AMaO/3XhxP+e6tT/mObP/5Pjy/+Q4sr/jODJ/4ffx/+C3MT/f9vC/3nb |
||||
wf9y2r7/adq7/2DauP8ZzZv/Fdae/8T/9/9WxKj/HKuI/y7IomAAAAAAAAAAAAAAAAD///8AAAAAAAAA |
||||
AAAiuZMwKKyM/x6ohf8C1Zr/AMmL/wHGjv+49OL///////////9+3ML/f9zD/4Dcwv9+28L/e9rA/3bZ |
||||
vv9w1rr/Z9S4/17Rs/9Qz63/Qcyn/3LewP////////////n///8MpH7/JbKP/zXQqUAAAAAAAAAAAP// |
||||
/wAAAAAAAAAAABymhN8dnn//BNGa/wDKjP8AxY3/sfHf/////////////////2nXt/9w1rv/c9e8/3TX |
||||
vP9x17z/a9W5/2TTtf9Y0K//SMyp/zXFoP9i07X/////////////////f/LR/wDQlf8epYT/Mb2a3wAA |
||||
AAAAAAAA////AAAAAAADlnJgFZR1/wq4iv8AzpH/AMCD/4rmzf//////////////////////WdGv/2PU |
||||
tf9p1rf/atS4/2nUtv9i0rT/Vc+u/0fKpv8zxZz/Ws+w//////////////////////8GyJL/ANCS/xLB |
||||
kv8tq4z/OMajYAAAAAD///8AAAAAAACHZt8NkW//ANKV/wDChP9i27r//////////////////////9Dx |
||||
6P9MzKn/Vc+v/17Rsv9g0rP/XNCx/1XNrv9Fyaf/McSd/1fPr///////////////////////QM2m/ynK |
||||
oP8JzJX/C9yh/ymmhf80spPfAAAAAP///wAAcUwwAHtc/wCrfP8AyIv/AMKK//////////////////// |
||||
/////////////5Dgyv9Gyqb/TMyq/07Nq/9MzKn/Qcmj/y/Fnf9Wzq3//////////////////////57k |
||||
0v8av5T/Lceg/yzOo/8M05v/Hr6T/zCghf80spIw////AABoRYAAclT/AL2H/wDBhf9R1rL///////// |
||||
////////4vfw//////////////////H8+P9KzKn/Ocah/zTFnv8qwpj/Us2t//////////////////// |
||||
////////DLqM/yDBlv8wxp//OM6m/xPPm/8Xz53/LZF5/y+fg4////8AAGNAvwB7Wf8Aw4j/ALyC/4bj |
||||
yP+g5tL/g93E/2HSsv9Pzqz/Us6s//////////////////////9Yzq//Gr2S/0jLp/////////////// |
||||
/////////////yrDm/8SvI//JMGY/zDHn/81zKT/Is2e/xTUnf8nl3v/LJJ5v////wAAXz3vAIlg/wDA |
||||
hf8AuoD/quzZ/5Hjyv9628D/ada2/1jRsP9Jy6f/a9a4//////////////////////+Y4s7///////// |
||||
//////////////////+c4tD/AbaH/xW8kf8jwZj/LcWd/y/Jn/8kzJ3/E9Ca/yGjgf8ri3Tv////AABd |
||||
PP8Ak2b/AL6D/w/Ekv+m6tf/j+HJ/3vawP9p1rf/W9Gx/0rNqf85yJ//Nsaf//////////////////// |
||||
/////////////////////////////wCwe/8AtoT/ELqP/xu+k/8jwZj/KMeb/yHKm/8QzZf/HqyG/ymI |
||||
cf////8AAF07/wCSZP8AvYL/GMWU/6Dn1P+K38f/ddi+/27Wuf+E3MX/leHN/6fm1f+l5tX/neLQ//// |
||||
////////////////////////////////////////j9/J/27Vuv9Tzq7/JsKY/xa/kv8aw5T/FcaW/wvL |
||||
lf8aqoT/J4dw/////wAAXTv/AJFk/wC9gP8GwY3/mObQ/5rkz/+26dv/y/Hl/8Dt3/+06tz/pebV/5bg |
||||
zP+g5NL//////////////v///f7+//7+/v//////7fn2////////////tOnb/6Ll0v+v6Nj/jeDI/zXK |
||||
o/8IxJD/BMqS/xaqgv8lh2//////AABeO+8AgVf/AL1//wDBif/R9uv/1PPq/8Tv5P+36t3/rujY/6Lk |
||||
0v+U4cv/jt7J//j8+///////+/38//f8+//2+/r/+Pz7//3+/v/m9/P/9Pv6//D6+P9/28L/jd7J/5jj |
||||
z/+h5dL/qOvX/4Hmyf8f1J//E596/yOJcO////8AAGA8vwB3U/8p06P/hufM/8Ty5f/D7+T/s+vb/6bm |
||||
1P+c4c//j9/K/4vcyP/t+fb///7///j8/P/0+/r/8vr5//P7+f/1+/r/+/39///////i9fL/ZNO1/3HW |
||||
vP992sH/htzG/4vhyv+S5dD/mO7W/6X74v80noT/Io90v////wAAZkCAAHla/33ny/945cb/nunV/7Xr |
||||
3v+l5tT/luDN/4ndxv992cL/1vLq//v9/P/1+/n/8vv4//L69//z+/j/9Pv5/7Xo2//x+vn///////// |
||||
//+y59n/aNS3/3LWvP932r//fNzD/4Ljyf+J7ND/l/bd/yORdf8knH6A////AABuRzAAdlT/Xc6x/23o |
||||
xv9s4MH/qurZ/5jiz/+I3cb/edjA/8ju5f/3/Pv/8vv4//H6+P/y+/j/6/f0/7np3v/7/fz//v7+/6fk |
||||
1f+56tz///////////9h0bT/aNW4/23Wu/9v3L//dOLG/37w0f9m1rn/Hpt8/ymujTD///8AAAAAAACD |
||||
X98po4X/Z+7K/1vgvP+A4sf/jOHK/3rZwv+r59f/9Pv6/+/69//v+vf/8vr4/9fy6/9n0rf/VM6t/6Di |
||||
0v/N7+f/adO4/1PMrf9t1Lr/i9zI/1/Rs/9h0rX/ZNe4/2bbvf9s5sb/ePfV/z2ylf8lrozfAAAAAP// |
||||
/wAAAAAAAJNsYAWQbf9U1rP/Vee//0rYsf993sb/pebV//P7+v/s+Pb/6/f1/+749v+s5tj/Vc2u/1jP |
||||
r/9ZzrD/btW5/1bOr/9Wza//Vs6v/1fOr/9Z0LD/WdCy/1vTtP9d1rX/Xt+8/2btyP9k4L//IaaF/y7D |
||||
nmAAAAAA////AAAAAAAAAAAAD6J9zyCjgv9S68L/P9+0/2Pevv/5////7/v6/+v59//j9/L/gtvF/1PN |
||||
r/9Wz7D/Wc+x/1nQsf9Zz7H/WM6w/1fPsP9UzrD/VM+w/1TPrv9U0a//U9Oy/1Tatv9Z5sD/Y/LL/zSx |
||||
lP8qupbPAAAAAAAAAAD///8AAAAAAAAAAAAYto4wGaeE/y23lP8+5rn/6/////j////w//3/ve/i/2bV |
||||
uP9Tzq7/Vc+v/1jPsP9Z0LL/WM+w/1fOsf9Wz7D/Us2w/1HOrf9Qzq3/T9Cu/0zSr/9M2LP/TeC5/1bt |
||||
xP9HxaX/KLKQ/zTPqDAAAAAAAAAAAP///wAAAAAAAAAAAAAAAAAkvpdgG6iF/y++m//e/////P///3rl |
||||
yf9G0K3/VdKy/1bPsf9Wz7H/Vs6w/1bPsP9Sza//Ucyu/0/Nrf9NzKz/S82s/0fOrP9G0a7/QdWv/0Le |
||||
tP9I6L7/Q8Ok/yitjP8yyKJgAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAAAAAAAAmwJlgG6iF/yK3 |
||||
kP8k3q7/H9el/x7Pn/8tzKT/Q9Cs/1HQsP9Q0K7/TM6u/0nMrf9Hzaz/RMyp/0LNqf8+zqn/ONGo/zTV |
||||
qf833rD/O+S4/zvCof8orIv/MMSfYAAAAAAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAA |
||||
AAAkvpdgG6iE/xukgv8gy53/HNql/xzRn/8czJz/HcmZ/yXJnP8qyp7/Lcqg/yzLn/8nypz/JMqc/yTO |
||||
n/8l1KT/KN2r/y3Tpv8nq4n/JaqJ/yzAm2AAAAAAAAAAAAAAAAAAAAAAAAAAAP///wAAAAAAAAAAAAAA |
||||
AAAAAAAAAAAAAAAAAAAato8wFKN/zxCScv8RnHn/DbqM/wjIlP8GyZT/BsaS/wbFkf8GxZH/B8WR/wfH |
||||
k/8IypX/DMmV/xG3jP8WoX3/Fph2/xqkgs8ft5EwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AAAA |
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJVvYACGZM8Aelr/AHlZ/wCFX/8AiWL/AJlr/wCb |
||||
bP8AlGf/AI5k/wB/W/8AeFj/AHtb/wCHZd8ClXBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
||||
AAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwSzAAaESAAGI/vwBf |
||||
Pd8AXTz/AF08/wBdPP8AXz3fAGJAvwBoRIAAcUswAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
||||
AAAAAAAAAAAAAP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// |
||||
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// |
||||
/wD///8A////AP///wD///8A/+AD//+AAP/+AAA//AAAH/gAAA/wAAAH4AAAA+AAAAPAAAABwAAAAYAA |
||||
AACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAwAAAAcAAAAHgAAAD4AAAA/AA |
||||
AAf4AAAP/AAAH/4AAD//gAD//+AD//////8= |
||||
</value> |
||||
</data> |
||||
</root> |
Loading…
Reference in new issue