diff --git a/ProjectCar/ProjectCar.sln b/ProjectCar/ProjectCar.sln index 5f40184..d716521 100644 --- a/ProjectCar/ProjectCar.sln +++ b/ProjectCar/ProjectCar.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.8.34309.116 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProjectCar", "ProjectCar\ProjectCar.csproj", "{0BAD5252-A074-4558-8F3E-7CDB84331644}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProjectGasMachine", "ProjectCar\ProjectGasMachine.csproj", "{0BAD5252-A074-4558-8F3E-7CDB84331644}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/ProjectCar/ProjectCar/DirectionType.cs b/ProjectCar/ProjectCar/Drawnings/DirectionType.cs similarity index 71% rename from ProjectCar/ProjectCar/DirectionType.cs rename to ProjectCar/ProjectCar/Drawnings/DirectionType.cs index 14835d5..8e94ed4 100644 --- a/ProjectCar/ProjectCar/DirectionType.cs +++ b/ProjectCar/ProjectCar/Drawnings/DirectionType.cs @@ -1,9 +1,13 @@ -namespace ProjectCar; + namespace ProjectGasMachine.Drawnings; /// /// Направление перемещения /// public enum DirectionType { + /// + /// неизвестное направление + /// + Unknow = -1, /// /// Вверх /// diff --git a/ProjectCar/ProjectCar/Drawnings/DrawningGasMachine.cs b/ProjectCar/ProjectCar/Drawnings/DrawningGasMachine.cs new file mode 100644 index 0000000..fb23512 --- /dev/null +++ b/ProjectCar/ProjectCar/Drawnings/DrawningGasMachine.cs @@ -0,0 +1,61 @@ +using ProjectGasMachine.Entities; + +namespace ProjectGasMachine.Drawnings; +/// +/// +/// +public class DrawningGasMachine : DrawningMachine +{ + + + /// + /// конструктор + /// + /// Скорость + /// Вес машины + /// Основной цвет + /// Дополнительный цвет + /// Признак наличия бака для бензина + /// Признак наличия маяка + + public DrawningGasMachine(int speed, double weight, Color bodyColor, Color additionalColor, bool gas, bool beacon) : base(115, 70) + { + EntityGas = new EntityMachine(speed, weight, bodyColor, additionalColor, gas, beacon); + } + + + public override void DrawTransport(Graphics g) + { + if (EntityGas == null || EntityGas is not EntityMachine gasmachine || !_startPosX.HasValue || !_startPosY.HasValue) + { + return; + } + + Pen pen = new(Color.Black); + Brush additionalBrush = new SolidBrush(gasmachine.AdditionalColor); + + + //маяк сигнальный + if (gasmachine.Beacon) + { + g.DrawRectangle(pen, _startPosX.Value + 95, _startPosY.Value, 10, 10); + g.FillRectangle(additionalBrush, _startPosX.Value + 95, _startPosY.Value, 10, 10); + } + + //бак с газом + if (gasmachine.Gas) + { + g.DrawEllipse(pen, _startPosX.Value, _startPosY.Value + 10, 80, 30); + + g.FillEllipse(additionalBrush, _startPosX.Value, _startPosY.Value + 10, 80, 30); + } + + _startPosX += 5; + + base.DrawTransport(g); + + _startPosX -= 5; + + } + +} diff --git a/ProjectCar/ProjectCar/DrawningGasMachine.cs b/ProjectCar/ProjectCar/Drawnings/DrawningMachine.cs similarity index 52% rename from ProjectCar/ProjectCar/DrawningGasMachine.cs rename to ProjectCar/ProjectCar/Drawnings/DrawningMachine.cs index 1d427c8..58d9812 100644 --- a/ProjectCar/ProjectCar/DrawningGasMachine.cs +++ b/ProjectCar/ProjectCar/Drawnings/DrawningMachine.cs @@ -1,15 +1,18 @@ -using System.Reflection.Metadata.Ecma335; +using ProjectGasMachine.Entities; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; -namespace ProjectCar; -/// -/// -/// -public class DrawningGasMachine +namespace ProjectGasMachine.Drawnings; + +public class DrawningMachine { /// /// Класс-сущность /// - public EntityMachine? EntityMachine { get; private set; } + public EntityGas? EntityGas { get; protected set; } /// /// Ширина окна /// @@ -22,29 +25,78 @@ public class DrawningGasMachine /// /// Левая координата прорисовки газ автомобиля /// - private int? _startPosX; + protected int? _startPosX; /// /// Верхняя координата прорисовки газ автомобиля /// - private int? _startPosY; + protected int? _startPosY; /// /// Ширина прорисовки газ автомобиля /// - private readonly int _drawningMachineWidth = 115; + private readonly int _drawningMachineWidth = 110; /// /// Высота прорисовки газ автомобиля /// private readonly int _drawningMachineHeight = 70; - public void Init(int speed, double weight, Color bodyColor, Color additionalColor, bool gas, bool beacon) + /// + /// координата X объекта + /// + + public int? GetPosX => _startPosX; + + /// + /// координата Y объекта + /// + public int? GetPosY => _startPosY; + + /// + /// ширина объекта + /// + public int GetWidth => _drawningMachineWidth; + /// + /// высота объекта + /// + public int GetHeight => _drawningMachineHeight; + + + + + /// + /// пустой конструктор + /// + private DrawningMachine() { - EntityMachine = new EntityMachine(); - EntityMachine.Init(speed, weight, bodyColor, additionalColor, gas, beacon); _pictureWidth = null; _pictureHeight = null; _startPosX = null; _startPosY = null; } + + /// + /// Конструктор + /// + /// Скорость + /// Вес машины + /// Основной цвет + + public DrawningMachine(int speed, double weight, Color bodyColor) : this() + { + EntityGas = new EntityGas(speed, weight, bodyColor); + + } + + /// + /// Конструктор для наследников + /// + /// Ширина прорисовки газ автомобиля + /// Высота прорисовки газ автомобиля + + protected DrawningMachine(int drawningMachineWidth, int drawningMachineHeight) : this() + { + _drawningMachineWidth = drawningMachineWidth; + _pictureHeight = drawningMachineHeight; + } /// /// Установка границ поля /// @@ -53,7 +105,7 @@ public class DrawningGasMachine /// true - границы заданы, false - проверка не пройдена, нельзя разместить объект в этих границах public bool SetPictureSize(int width, int height) { - if (EntityMachine == null) + if (EntityGas == null) { return false; } @@ -111,36 +163,36 @@ public class DrawningGasMachine _startPosY = _pictureHeight - _drawningMachineHeight; } } - public bool MoveTransport(DirectionType direction) + public bool MoveTransport(DirectionType direction) { - if (EntityMachine == null || !_startPosX.HasValue || !_startPosY.HasValue) + if (EntityGas == null || !_startPosX.HasValue || !_startPosY.HasValue) { return false; } - switch (direction) + switch (direction) { case DirectionType.Left: - if (_startPosX.Value - EntityMachine.Step > 0) + if (_startPosX.Value - EntityGas.Step > 0) { - _startPosX -= (int)EntityMachine.Step; + _startPosX -= (int)EntityGas.Step; } return true; case DirectionType.Up: - if (_startPosY.Value - EntityMachine.Step > 0) + if (_startPosY.Value - EntityGas.Step > 0) { - _startPosY -= (int)EntityMachine.Step; + _startPosY -= (int)EntityGas.Step; } return true; case DirectionType.Right: - if (_startPosX.Value + EntityMachine.Step + _drawningMachineWidth < _pictureWidth) + if (_startPosX.Value + EntityGas.Step + _drawningMachineWidth < _pictureWidth) { - _startPosX += (int)EntityMachine.Step; + _startPosX += (int)EntityGas.Step; } return true; case DirectionType.Down: - if (_startPosY.Value + EntityMachine.Step + _drawningMachineHeight < _pictureHeight) + if (_startPosY.Value + EntityGas.Step + _drawningMachineHeight < _pictureHeight) { - _startPosY += (int)EntityMachine.Step; + _startPosY += (int)EntityGas.Step; } return true; default: @@ -151,54 +203,41 @@ public class DrawningGasMachine /// Прорисовка объекта /// /// - public void DrawTransport(Graphics g) + public virtual void DrawTransport(Graphics g) { - if (EntityMachine == null || !_startPosX.HasValue || !_startPosY.HasValue) + if (EntityGas == null || !_startPosX.HasValue || !_startPosY.HasValue) { - return; + return; } Pen pen = new(Color.Black); - Brush additionalBrush = new SolidBrush(EntityMachine.AdditionalColor); - //бак с газом - if (EntityMachine.Gas) - { - g.DrawEllipse(pen, _startPosX.Value, _startPosY.Value + 10, 80, 30); - - g.FillEllipse(additionalBrush, _startPosX.Value, _startPosY.Value + 10, 80, 30); - } + //границы автомобиля - g.DrawRectangle(pen, _startPosX.Value + 5, _startPosY.Value + 40, 110, 10); - g.DrawRectangle(pen, _startPosX.Value + 81, _startPosY.Value + 10, 30, 30); + g.DrawRectangle(pen, _startPosX.Value, _startPosY.Value + 40, 110, 10); + g.DrawRectangle(pen, _startPosX.Value + 76, _startPosY.Value + 10, 30, 30); //кузов - Brush br = new SolidBrush(EntityMachine.BodyColor); - g.FillRectangle(br, _startPosX.Value + 5, _startPosY.Value + 40, 110, 10); + Brush br = new SolidBrush(EntityGas.BodyColor); + g.FillRectangle(br, _startPosX.Value, _startPosY.Value + 40, 110, 10); //кабина - g.FillRectangle(br, _startPosX.Value + 81, _startPosY.Value + 10, 30, 30); + g.FillRectangle(br, _startPosX.Value + 76, _startPosY.Value + 10, 30, 30); - //маяк сигнальный - if (EntityMachine.Beacon) - { - g.DrawRectangle(pen, _startPosX.Value + 95, _startPosY.Value, 10, 10); - g.FillRectangle(additionalBrush, _startPosX.Value + 95, _startPosY.Value, 10, 10); - } - + //колеса - - - g.DrawEllipse(pen, _startPosX.Value + 15, _startPosY.Value + 50, 20, 20); - g.FillEllipse(additionalBrush, _startPosX.Value + 15, _startPosY.Value + 50, 20, 20); - g.DrawEllipse(pen, _startPosX.Value + 90, _startPosY.Value + 50, 20, 20); - g.FillEllipse(additionalBrush, _startPosX.Value + 90, _startPosY.Value + 50, 20, 20); - + + + g.DrawEllipse(pen, _startPosX.Value + 10, _startPosY.Value + 50, 20, 20); + g.FillEllipse(br, _startPosX.Value + 10, _startPosY.Value + 50, 20, 20); + g.DrawEllipse(pen, _startPosX.Value + 85, _startPosY.Value + 50, 20, 20); + g.FillEllipse(br, _startPosX.Value + 85, _startPosY.Value + 50, 20, 20); + diff --git a/ProjectCar/ProjectCar/Entities/EntityGas.cs b/ProjectCar/ProjectCar/Entities/EntityGas.cs new file mode 100644 index 0000000..703fdea --- /dev/null +++ b/ProjectCar/ProjectCar/Entities/EntityGas.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ProjectGasMachine.Entities; + +/// +/// Класс-сущность "машина для перевозки газа" +/// +public class EntityGas +{ + /// + /// Скорость + /// + public int Speed { get; private set; } + /// + /// Вес + /// + public double Weight { get; private set; } + /// + /// Основной цвет + /// + + public Color BodyColor { get; private set; } + /// + /// Шаг перемещения машины + /// + public double Step => Speed * 100 / Weight; + + /// + /// Конструктор сущности + /// + /// Скорость + /// Вес машины + /// Основной цвет + public EntityGas(int speed, double weight, Color bodyColor) + { + Speed = speed; + Weight = weight; + BodyColor = bodyColor; + + } +} diff --git a/ProjectCar/ProjectCar/Entities/EntityMachine.cs b/ProjectCar/ProjectCar/Entities/EntityMachine.cs new file mode 100644 index 0000000..c00b373 --- /dev/null +++ b/ProjectCar/ProjectCar/Entities/EntityMachine.cs @@ -0,0 +1,30 @@ +namespace ProjectGasMachine.Entities; +/// +/// Класс-сущность "бензовоз" +/// +public class EntityMachine : EntityGas +{ + + public Color AdditionalColor { get; private set; } + /// + /// Признак (опция) наличия бака для бензина + /// + public bool Gas { get; private set; } + /// + /// Признак (опция) наличия маяка + /// + public bool Beacon { get; private set; } + /// + /// + /// + /// Дополнительный цвет + /// Признак наличия бака для бензина + /// Признак наличия маяка + + public EntityMachine(int speed, double weight, Color bodyColor, Color additionalColor, bool gas, bool beacon) : base(speed, weight, bodyColor) + { + AdditionalColor = additionalColor; + Gas = gas; + Beacon = beacon; + } +} diff --git a/ProjectCar/ProjectCar/EntityMachine.cs b/ProjectCar/ProjectCar/EntityMachine.cs deleted file mode 100644 index 412ff74..0000000 --- a/ProjectCar/ProjectCar/EntityMachine.cs +++ /dev/null @@ -1,53 +0,0 @@ -namespace ProjectCar; -/// -/// Класс-сущность "бензовоз" -/// -public class EntityMachine -{ - /// - /// Скорость - /// - public int Speed { get; private set; } - /// - /// Вес - /// - public double Weight { get; private set; } - /// - /// Основной цвет - /// - public Color BodyColor { get; private set; } - /// - /// Дополнительный цвет - /// - public Color AdditionalColor { get; private set; } - /// - /// Признак (опция) наличия бака для бензина - /// - public bool Gas { get; private set; } - /// - /// Признак (опция) наличия колес(2) - /// - public bool Beacon { get; private set; } - /// - /// Шаг перемещения машины - /// - public double Step => Speed * 100 / Weight; - /// - /// Инициализация полей объекта-класса бензовоза - /// - /// Скорость - /// Вес машины - /// Основной цвет - /// Дополнительный цвет - /// Признак наличия бака для бензина - /// Признак наличия маяка - public void Init(int speed, double weight, Color bodyColor, Color additionalColor, bool gas, bool beacon) - { - Speed = speed; - Weight = weight; - BodyColor = bodyColor; - AdditionalColor = additionalColor; - Gas = gas; - Beacon = beacon; - } -} diff --git a/ProjectCar/ProjectCar/FormGasMachine.Designer.cs b/ProjectCar/ProjectCar/FormGasMachine.Designer.cs index e7e4146..09d6b1b 100644 --- a/ProjectCar/ProjectCar/FormGasMachine.Designer.cs +++ b/ProjectCar/ProjectCar/FormGasMachine.Designer.cs @@ -1,4 +1,4 @@ -namespace ProjectCar +namespace ProjectGasMachine { partial class FormGasMachine { @@ -28,13 +28,15 @@ /// private void InitializeComponent() { - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormGasMachine)); buttonCreate = new Button(); buttonLeft = new Button(); buttonRight = new Button(); buttonUp = new Button(); buttonDown = new Button(); pictureBoxGasMachine = new PictureBox(); + buttonCreateMachine = new Button(); + comboBoxStrategy = new ComboBox(); + buttonStrategyStep = new Button(); ((System.ComponentModel.ISupportInitialize)pictureBoxGasMachine).BeginInit(); SuspendLayout(); // @@ -43,16 +45,16 @@ buttonCreate.Anchor = AnchorStyles.Bottom | AnchorStyles.Left; buttonCreate.Location = new Point(12, 493); buttonCreate.Name = "buttonCreate"; - buttonCreate.Size = new Size(75, 23); + buttonCreate.Size = new Size(216, 23); buttonCreate.TabIndex = 1; - buttonCreate.Text = "Создать"; + buttonCreate.Text = "Создать газовоз"; buttonCreate.UseVisualStyleBackColor = true; buttonCreate.Click += ButtonCreate_Click; // // buttonLeft // buttonLeft.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; - buttonLeft.BackgroundImage = (Image)resources.GetObject("buttonLeft.BackgroundImage"); + buttonLeft.BackgroundImage = Properties.Resources.влево; buttonLeft.BackgroundImageLayout = ImageLayout.Stretch; buttonLeft.Location = new Point(862, 481); buttonLeft.Name = "buttonLeft"; @@ -64,7 +66,7 @@ // buttonRight // buttonRight.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; - buttonRight.BackgroundImage = (Image)resources.GetObject("buttonRight.BackgroundImage"); + buttonRight.BackgroundImage = Properties.Resources.вправо; buttonRight.BackgroundImageLayout = ImageLayout.Stretch; buttonRight.Location = new Point(944, 481); buttonRight.Name = "buttonRight"; @@ -76,7 +78,7 @@ // buttonUp // buttonUp.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; - buttonUp.BackgroundImage = (Image)resources.GetObject("buttonUp.BackgroundImage"); + buttonUp.BackgroundImage = Properties.Resources.вверх; buttonUp.BackgroundImageLayout = ImageLayout.Stretch; buttonUp.Location = new Point(903, 440); buttonUp.Name = "buttonUp"; @@ -88,7 +90,7 @@ // buttonDown // buttonDown.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; - buttonDown.BackgroundImage = (Image)resources.GetObject("buttonDown.BackgroundImage"); + buttonDown.BackgroundImage = Properties.Resources.вниз; buttonDown.BackgroundImageLayout = ImageLayout.Stretch; buttonDown.Location = new Point(903, 481); buttonDown.Name = "buttonDown"; @@ -105,13 +107,46 @@ pictureBoxGasMachine.Size = new Size(988, 528); pictureBoxGasMachine.TabIndex = 0; pictureBoxGasMachine.TabStop = false; - pictureBoxGasMachine.Click += ButtonMove_Click; + // + // buttonCreateMachine + // + buttonCreateMachine.Anchor = AnchorStyles.Bottom | AnchorStyles.Left; + buttonCreateMachine.Location = new Point(245, 493); + buttonCreateMachine.Name = "buttonCreateMachine"; + buttonCreateMachine.Size = new Size(216, 23); + buttonCreateMachine.TabIndex = 6; + buttonCreateMachine.Text = "Создать орнамент на колесах"; + buttonCreateMachine.UseVisualStyleBackColor = true; + buttonCreateMachine.Click += ButtonCreateMachine_Click; + // + // comboBoxStrategy + // + comboBoxStrategy.DropDownStyle = ComboBoxStyle.DropDownList; + comboBoxStrategy.FormattingEnabled = true; + comboBoxStrategy.Items.AddRange(new object[] { "К центру", "К краю" }); + comboBoxStrategy.Location = new Point(858, 12); + comboBoxStrategy.Name = "comboBoxStrategy"; + comboBoxStrategy.Size = new Size(121, 23); + comboBoxStrategy.TabIndex = 7; + // + // buttonStrategyStep + // + buttonStrategyStep.Location = new Point(901, 41); + buttonStrategyStep.Name = "buttonStrategyStep"; + buttonStrategyStep.Size = new Size(75, 23); + buttonStrategyStep.TabIndex = 8; + buttonStrategyStep.Text = "Шаг"; + buttonStrategyStep.UseVisualStyleBackColor = true; + buttonStrategyStep.Click += ButtonStrategyStep_Click; // // FormGasMachine // AutoScaleDimensions = new SizeF(7F, 15F); AutoScaleMode = AutoScaleMode.Font; ClientSize = new Size(988, 528); + Controls.Add(buttonStrategyStep); + Controls.Add(comboBoxStrategy); + Controls.Add(buttonCreateMachine); Controls.Add(buttonDown); Controls.Add(buttonUp); Controls.Add(buttonRight); @@ -131,5 +166,8 @@ private Button buttonUp; private Button buttonDown; private PictureBox pictureBoxGasMachine; + private Button buttonCreateMachine; + private ComboBox comboBoxStrategy; + private Button buttonStrategyStep; } } \ No newline at end of file diff --git a/ProjectCar/ProjectCar/FormGasMachine.cs b/ProjectCar/ProjectCar/FormGasMachine.cs index 2deb26e..8aa8104 100644 --- a/ProjectCar/ProjectCar/FormGasMachine.cs +++ b/ProjectCar/ProjectCar/FormGasMachine.cs @@ -1,103 +1,176 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; +using ProjectGasMachine.Drawnings; +using ProjectGasMachine.MovementStrategy; -namespace ProjectCar + +namespace ProjectGasMachine; +public partial class FormGasMachine : Form { - public partial class FormGasMachine : Form + /// + /// поле-объект для прорисовки объекта + /// + private DrawningMachine? _drawningMachine; + + /// + /// стратегия перемещения + /// + private AbstractStrategy? _strategy; + + /// + /// конструктор формы + /// + public FormGasMachine() { - private DrawningGasMachine? _drawningGasMachine; + InitializeComponent(); + _strategy = null; + } - /// - /// конструктор формы - /// - public FormGasMachine() + + /// + /// метод прорисовки машины + /// + private void Draw() + { + if (_drawningMachine == null) { - InitializeComponent(); + return; } - /// - /// метод прорисовки машины - /// - private void Draw() + Bitmap bmp = new(pictureBoxGasMachine.Width, pictureBoxGasMachine.Height); + Graphics gr = Graphics.FromImage(bmp); + _drawningMachine.DrawTransport(gr); + pictureBoxGasMachine.Image = bmp; + } + /// + /// создание объекта класса-перемещение + /// + /// + private void CreateObject(string type) + { + Random random = new(); + switch (type) { - if (_drawningGasMachine == null) - { + case nameof(DrawningMachine): + _drawningMachine = new DrawningMachine(random.Next(100, 300), random.Next(1000, 3000), + Color.FromArgb(random.Next(0, 256), random.Next(0, 256), random.Next(0, 256))); + break; + case nameof(DrawningGasMachine): + _drawningMachine = new DrawningGasMachine(random.Next(100, 300), random.Next(1000, 3000), + Color.FromArgb(random.Next(0, 256), random.Next(0, 256), random.Next(0, 256), random.Next(0, 256)), + Color.FromArgb(random.Next(0, 256), random.Next(0, 256), random.Next(0, 256), random.Next(0, 256)), + Convert.ToBoolean(random.Next(0, 2)), Convert.ToBoolean(random.Next(0, 2))); + break; + default: return; - } - - - Bitmap bmp = new(pictureBoxGasMachine.Width, pictureBoxGasMachine.Height); - Graphics gr = Graphics.FromImage(bmp); - _drawningGasMachine.DrawTransport(gr); - pictureBoxGasMachine.Image = bmp; } - /// - /// обработка нажатия кнопки "создать" - /// - /// - /// - private void ButtonCreate_Click(object sender, EventArgs e) - { - Random random = new(); - _drawningGasMachine = new DrawningGasMachine(); - _drawningGasMachine.Init(random.Next(100, 300), random.Next(1000, 3000), - Color.FromArgb(random.Next(0, 256), random.Next(0, 256), random.Next(0, 256), random.Next(0, 256)), - Color.FromArgb(random.Next(0, 256), random.Next(0, 256), random.Next(0, 256), random.Next(0, 256)), - Convert.ToBoolean(random.Next(0, 2)), Convert.ToBoolean(random.Next(0, 2))); - _drawningGasMachine.SetPictureSize(pictureBoxGasMachine.Width, pictureBoxGasMachine.Height); - _drawningGasMachine.SetPosition(random.Next(10, 100), random.Next(10, 100)); + _drawningMachine.SetPictureSize(pictureBoxGasMachine.Width, pictureBoxGasMachine.Height); + _drawningMachine.SetPosition(random.Next(10, 100), random.Next(10, 100)); + _strategy = null; + comboBoxStrategy.Enabled = true; + Draw(); + } + + + + + + /// + /// обработка нажатия кнопки "создать газовоз" + /// + /// + /// + private void ButtonCreate_Click(object sender, EventArgs e) => CreateObject(nameof(DrawningGasMachine)); + + + /// + /// обработка нажатия кнопки "создать орнамент на колесах" + /// + /// + /// + + private void ButtonCreateMachine_Click(object sender, EventArgs e) => CreateObject(nameof(DrawningMachine)); + + + + /// + /// перемещение объекта по форме + /// + /// + /// + private void ButtonMove_Click(object sender, EventArgs e) + { + if (_drawningMachine == null) + { + return; + } + string name = ((Button)sender)?.Name ?? string.Empty; + bool result = false; + switch (name) + { + case "buttonUp": + result = _drawningMachine.MoveTransport(DirectionType.Up); + break; + case "buttonDown": + result = _drawningMachine.MoveTransport(DirectionType.Down); + break; + case "buttonRight": + result = _drawningMachine.MoveTransport(DirectionType.Right); + break; + case "buttonLeft": + result = _drawningMachine.MoveTransport(DirectionType.Left); + break; + } + if (result) + { Draw(); } + } - /// - /// перемещение объекта по форме - /// - /// - /// - private void ButtonMove_Click(object sender, EventArgs e) + private void ButtonStrategyStep_Click(object sender, EventArgs e) + { + if (_drawningMachine == null) { - if (_drawningGasMachine == null) + return; + } + + if (comboBoxStrategy.Enabled) + { + _strategy = comboBoxStrategy.SelectedIndex switch + { + 0 => new MoveToCenter(), + 1 => new MoveToBorder(), + _ => null, + }; + + if (_strategy == null) { return; } - string name = ((Button)sender)?.Name ?? string.Empty; - bool result = false; - switch (name) - { - case "buttonUp": - result = _drawningGasMachine.MoveTransport(DirectionType.Up); - break; - case "buttonDown": - result = _drawningGasMachine.MoveTransport(DirectionType.Down); - break; - case "buttonRight": - result = _drawningGasMachine.MoveTransport(DirectionType.Right); - break; - case "buttonLeft": - result = _drawningGasMachine.MoveTransport(DirectionType.Left); - break; - } - if (result) - { - Draw(); - } - - - + _strategy.SetData(new MoveableMachine(_drawningMachine), pictureBoxGasMachine.Width, pictureBoxGasMachine.Height); } - + if (_strategy == null) + { + return; + } + + comboBoxStrategy.Enabled = false; + _strategy.MakeStep(); + Draw(); + + if (_strategy.GetStatus() == StrategyStatus.Finish) + { + comboBoxStrategy.Enabled = true; + _strategy = null; + } + + + + } } + diff --git a/ProjectCar/ProjectCar/FormGasMachine.resx b/ProjectCar/ProjectCar/FormGasMachine.resx index 5ee83f1..af32865 100644 --- a/ProjectCar/ProjectCar/FormGasMachine.resx +++ b/ProjectCar/ProjectCar/FormGasMachine.resx @@ -117,842 +117,4 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - /9j/4AAQSkZJRgABAQEAAAAAAAD/2wBDAAEBAQEBAQEBAQEBAQECAgMCAgICAgQDAwIDBQQFBQUEBAQF - BgcGBQUHBgQEBgkGBwgICAgIBQYJCgkICgcICAj/2wBDAQEBAQICAgQCAgQIBQQFCAgICAgICAgICAgI - CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAj/wAARCAHtAtkDASIAAhEBAxEB/8QA - HwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIh - MUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVW - V1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXG - x8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQF - BgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAV - YnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE - hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq - 8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD+/iiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK - ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK - ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK - ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK - ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK - ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK - ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK - ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK - ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK - ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK - ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK - ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK - ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK - ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK - ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK - ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK - ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAor+M//gvt - /wAHN3h79kOfxZ+x/wD8E/PEfh7xt+1JE0lh4q8cJHHe6Z8PZB8r21qrBorvVFOQwYNDbkbXEkgaOP8A - zzPH37Y37WvxT8dT/E34kftN/Hvxt8QpJzcHWdR8XX813G+cjy5GlzGB2VcBQAAAABQB/ux0V/nEf8G4 - /wDwcV/tGWP7R3wu/YO/bn+J/iD42/Czxvfw+HvBni/xFdNda14Y1qUhLS1uL1yZbu0uJCsA84vJFJJE - Q4jDKP8AR3oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK - ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK - ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK5 - Xxl4z8I/Dnwn4j8eePvE+g+C/BOj2U2patq+qXSW1nplpEheSeeaQhI41VSxZiAAKAOgubiC1t5ru6lj - t7aNTJJJIwVY1AyWYngAAZzX+fh/wcCf8HP8utHxp+xP/wAEzPHzwaMPN0vxt8XdJuMPedUlsfD8y/dj - 6q+oKctyICFxM/xJ/wAF+/8Ag5W8X/tsXHjD9kH9hzxBr3gP9kANJp/iLxRGHtNT+Jig4eNQcSWulNyB - CcSXC8y7VYw1/H3QBK7vK7PIzO7ElmJySfUmoqKKAPdP2Yb+90n9pX9nnVNOuZbTUbbxzoNxBKhw0Ui3 - 8LKwPYggGv8AeEr/AAbf2cf+ThfgP/2Oeif+l0Nf7yVABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR - QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR - QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR - QAUUUUAFFFFABRRRQAUUUUAFFFfIf7bX7cf7N3/BPb4C+J/2iv2n/Htp4J8CaePJtLdAJdQ1++Kkx2Gn - W2Q1xcybThRhVUM7siI7qAer/H34/fBz9lz4R+Nfjv8AH/4heHfhd8JfDto17q2s6nNsigTOFRVGWlld - iqJEgaSR2VEVmYA/5V3/AAXP/wCDgv4yf8FTvFuqfBz4TP4i+D/7DmmX27TvDhl8u+8ZSRvmO/1ooSDy - A8dmCY4jtYmSRQ4+WP8AgsJ/wWm/aS/4K3/F0al4zuLr4bfs4aJeSSeDPh3ZXZe00wYKi8vXGBd37ISD - MwCoGZI1RS278ZKACiiigAooooA9m/Zx/wCThfgP/wBjnon/AKXQ1/vJV/g2/s4/8nC/Af8A7HPRP/S6 - Gv8AeSoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii - igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii - igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiivw9/4LM/8FwP2d/+ - CSHwta21N9N+Kn7Vut2Ty+D/AIe291tdgcquoao65a1sFYHn787KyRj5ZJIgD6S/4Kff8FU/2YP+CVPw - Iuvi98e9fGqeL79JoPB3giwnT+1/GF8qj93Ahz5VuhZDLdOPLiVh953jjf8AySP+Ck3/AAU4/af/AOCo - /wAe7/43ftGeKD/Z9uZbbwt4T093XR/B9gzA/Z7OEnl22oZJ2zJKygscKir4n+2F+2P+0T+3j8dvFv7R - n7TnxC1H4hfEjVW2Bn+S00m0UkxWVjbg7Le1j3ELGvcszFndmb5aoAKKKKACiiigAooooA9m/Zx/5OF+ - A/8A2Oeif+l0Nf7yVf4Nv7OP/JwvwH/7HPRP/S6Gv95KgAooooAKKKKACiiigAooooAKKKKACiiigAoo - ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo - ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo - ooAKKKKACiiigAoor+Mj/g4A/wCDmTw9+yenjH9jP9gDxPovjD9qACXTfFnjq3KXWn/Dx+Ve2tM5judU - XkMTmO2IwweUMkQB9k/8F3/+DiD4Vf8ABMXw5rPwA+ANz4b+Lf7c+oWmI9NaQT6d8PopEyl5q20/NcEM - rxWWQzArJIUjKCX/ACyfjP8AGv4rftE/FLxt8bPjh4+8SfE74q+Ir19Q1nXNWuDLcXszYHJ6KiqFRI1A - REVUVVVQBxXiTxJ4h8Z+Idd8X+Ltf1jxT4r1S7m1DU9S1G6e5utQupXLyTTzSEvJI7MzM7Ekkkk5NYFA - BRRRQAUUUUAFFFFABRRRQB7N+zj/AMnC/Af/ALHPRP8A0uhr/eSr/Bt/Zx/5OF+A/wD2Oeif+l0Nf7yV - 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 - VQqJGoCIiqiqqqAPK6KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA - KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA - K+3f+CZn/KSH/gn3/wBlv8C/+n6zr4ir7d/4Jmf8pIf+Cff/AGW/wL/6frOgD/cbooooAKKKKACiiigA - ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP8aL/g - 4K/aN179pj/gr9+274m1a/uLrS/DPjC6+HmjwMxMdlZ6Mx08pEOyvNbXM59Xnc96/GSv08/4LR/CnXfg - v/wVj/4KGeB9ftZ7S6f4seIdftkkGCbLU7t9StW9w1vfQNnvnNfmHQAUUUUAFFFFABRRRQAUUUUAFFFF - ABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF - ABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAV9u/8EzP+UkP/AAT7/wCy3+Bf/T9Z18RV9u/8EzP+ - UkP/AAT7/wCy3+Bf/T9Z0Af7jdFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR - RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQB/Bv/AMHfn/BJPxb8QIdB/wCCofwG8K3ev3WiaRFoHxZ0 - 6yhLzJp8JP2TW9g5ZIVc207DOyJbZ8BI5XX/ADz6/wB+m+sLPVLG803UrO21HTriJ4J7eeMPHPGwKsjo - 2QykEgg8EGv87n/g4B/4NhL/AOFY8a/tr/8ABNbwPeat8Mcy6n40+FWmQtLceGxy0l9ocS5aWyHLPZqC - 8HLRBovkgAP4XKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK - KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK+3 - f+CZn/KSH/gn3/2W/wAC/wDp+s6+Iq+3f+CZn/KSH/gn3/2W/wAC/wDp+s6AP9xuiiigAooooAKKKKAC - iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP - 4iv+DgP/AINjNI+PS+OP21f+Ccvg7TvD3xzPm6p4y+GdhGsNp4zblpb3SUGFg1E8s9uMR3Jyy7Zsif8A - zk9Y0jV/Dur6p4f1/StS0LXbG4ls72yvYGhuLO4jYpJFLG4DI6srKysAQQQRkV/vw1/K1/wXr/4Nx/hv - /wAFGtI8SftNfssaf4d+Fv7cVrbGa6jwttpnxLVF4gvzwsN/hQsd6eG4jmyuySEA/wAqyivQ/in8K/iP - 8EfiJ4w+Enxe8EeJPhx8TPD99Jpus6Hq9q1td6dcp1SWNgCOCCD0ZSGBIIJ88oAKKKKACiiigAooooAK - KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK - KKKACiiigAooooAKKKKACiiigAooooAKKKKACvt3/gmZ/wApIf8Agn3/ANlv8C/+n6zr4ir7h/4Jlo8n - /BSP/gn0iK7u3xv8CgADJJ/t6z4FAH+4vRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA - BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQB+CH/Ba7/ghB8Av+CtHw8n8V6Wd - G+EH7Y+i2Bh8M+O47b93qMaglNN1lUG6ezJJCyAGW3LFk3KZIZf8oL9qf9lL4+fsV/G7xj+zx+0r8Ota - +GPxU0SXZc2N2uY7qEk+XdWsy5S4tpACyTRkowzg5BA/3bK/Kj/gqz/wSM/Zi/4KyfBF/h18ZtLXwp8U - tKhmfwX8QNOtUbVPC1ywzt5I+0WbsF821dgrgZUxyKkiAH+K9RX3l/wUL/4Jz/tOf8EzPj5q/wAAf2mP - B0mk6gDJPoHiCzV5NI8W6eGwt5p9wQBIhyu6MgSRMdsiq3FfBtABRRRQAUUUUAFFFFABRRRQAUUUUAFF - FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF - FFABRRRQAUUUUAFFFFABX7Q/8G9/7OmvftLf8Fgf2IfDmkWFxc6Z4X8XW/xE1edVJjsbTRj/AGgryHsr - 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 - ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo - ooAKKKKACiiigAooooAKKKKACiiigAr+Ir/g4D/4NjNI+PS+OP21f+Ccvg7TvD3xzPm6p4y+GdhGsNp4 - zblpb3SUGFg1E8s9uMR3Jyy7Zsif+3WigD/Af1jSNX8O6tqvh/X9K1LQtesbmWzvbG9gaG4s7iNikkUs - TgMjqysrKwBBBBGRWPX+qn/wXr/4Nx/hv/wUa0jxJ+01+yxp/h34W/txWtsZrqPC22mfEtUXiC/PCw3+ - FCx3p4biObK7JIf8u/4p/Cv4j/BH4ieMfhJ8XvBHiT4cfEzw/fSabrOh6vatbXenXKdUljYAjggg9GUh - gSCCQDzyiiigAooooAKKKKAPZv2cf+ThfgP/ANjnon/pdDX+8lX+Db+zj/ycL8B/+xz0T/0uhr/eSoAK - KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK - KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK - KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr8EP8Agtd/wQg+AX/BWj4e - T+K9LOjfCD9sfRbAw+GfHcdt+71GNQSmm6yqDdPZkkhZADLbliyblMkMv730UAf4Sf7U/wCyl8ff2K/j - d4x/Z4/aW+HOtfDH4qaJLtubG7XMdzCSfLurWZcpcW0gUsk0ZKMM4OQQPnOv9qH/AIKs/wDBIz9mL/gr - J8EX+HXxm0tfCnxS0qGZ/BfxA061RtU8LXLDO3kj7RZuwXzbV2CuBlTHIqSJ/kof8FDP+Cc/7Tn/AATM - +Pmr/AL9pfwbJpN+DJPoHiCzV5NI8XaeGwt5p9wQBIhyu6MgSRMdsiq3FAHwbRRRQAUUUUAezfs4/wDJ - wvwH/wCxz0T/ANLoa/3kq/wbf2cf+ThfgP8A9jnon/pdDX+8lQAUUUUAFFFFABRRRQAUUUUAFFFFABRR - RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR - RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR - RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAV8R/t7/8ABPz9mb/gpH8ANd/Z7/ad8EReJPDk+640jVrY - LFqvhfUNpVL7TrkqTDMueQQUkXKSK6Myn7cooA/xe/8Agrd/wR2/aZ/4JLfGh/B3xRsJvHPwQ1i4lHgn - 4iWFo0eneIYRlhDMMt9lvkX/AFls7EjBZGkjw5/Iuv8Ad8/aW/Zm+Bn7X/wW8a/s+/tHfDrQvih8J9ft - /Iv9Mv0J2sOUngkXDwXEbYeOaMq6MAVINf5Sv/Bb7/ggZ8cv+CT/AI7vPiF4OHiD4xfsUave+XoPjMW4 - a48PyO3yadraxgLFOMhUuAFiuOCoR90KAH89tFFFAHs37OP/ACcL8B/+xz0T/wBLoa/3kq/wb/2cAT+0 - N8B1AJJ8Z6Jgf9v0Nf7yFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU - AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU - AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU - AFFFFABRRRQAVw3xF+HXgT4u+BfFnww+KHg/w98QPh3r1jNpus6Lq9olzZ6layLteKaJwVZSD0I9+oru - aKAP8tX/AIL4f8G2vj79gHUvE/7U/wCxxo3if4nfsVzyyXeq6Wge71T4Y5OStyeXuNMGfkuzlogNk5yF - ml/kxr/fvngguYZra4hint5FKSRuoZXUjBBB4II4xX5NeO/+CEf/AASC+Jfju4+I/i39gH9n+TxTNObm - dtPsJdNtbiUnJeSytJIrZyxyW3RncSSc5oA/zZv+Den/AIJg/Fb/AIKE/t8fB/xXF4V1aL9mj4b+JNP8 - W+PPEksDCyxaTJcwaUkhG2S5upI44zGp3LE0svRBn/YHrzf4WfCL4V/AzwLonw0+C3w28C/Cf4d6ahjs - NC8OaVBp1hZgnJ8u3gVUUk8kgZJ5OTXpFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF - FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF - FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF - FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF - FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF - FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF - FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF - FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF - FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF - FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF - FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF - FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF - FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF - FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF - FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF - FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF - FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF - FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF - FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF - FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF - FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF - FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF - FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF - FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQB/9k= - - - - - /9j/4AAQSkZJRgABAQEAAAAAAAD/2wBDAAEBAQEBAQEBAQEBAQECAgMCAgICAgQDAwIDBQQFBQUEBAQF - BgcGBQUHBgQEBgkGBwgICAgIBQYJCgkICgcICAj/2wBDAQEBAQICAgQCAgQIBQQFCAgICAgICAgICAgI - CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAj/wAARCAIbAp8DASIAAhEBAxEB/8QA - HwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIh - MUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVW - V1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXG - x8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQF - BgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAV - YnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE - hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq - 8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD+/iiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK - ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK - ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK - ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK - ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK - ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK - ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK - ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK - ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK - ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK - ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK - ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK - ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK - ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK - ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK - ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK - ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK - ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK - ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK - ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK - ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK - ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK - ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK - ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK - ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK - ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK - ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK - ACiiigAooooAKKKKACiiigDJ1jVtJ8P6Vqmva9qdhomh2NvJeXt5dzLDBaQRqXeWWRiFRFVWYsSAACT0 - r+HX9vf/AIPO/h/8NPiP4h+G37A/7Pmj/HbQ9MuXtX8eeMNQnstM1WRCQWsNOgVZ5Lc/wzSyxM3/ADyw - Qx/W7/g6l+N/jT4Lf8EbPjtb+CNTu9Fv/GWtaJ4IvbqBykiaddXPmXUQI/hmhtpLdx3SZx3r/I5oA/0Z - f+Cf3/B5p8NPip8R9D+GX7ffwG0j9n/SdTuFtoPHvhTUJ73SdOkY4X+0LCZWnhg9Z45JtuRmNVDOP7d/ - D/iDQfFmhaJ4p8La3pPiTwvqVpFf6dqOn3KXFrf20qB45oZkJSSN1ZWV1JDAggkGv8COv6g/+CDn/BxV - 8Uv+CaGu6D+zr+0bd+Iviz+wxe3exbYM1xqfw6kkfL3WlgnMloWYvLZZwSWki2uXWYA/1daK8x+D/wAY - vhd+0D8MvBXxn+Cvjvw78TPhZ4hsU1HRdc0m5E1tfwNkZVhyGBDKyMAyOrKwVlIHp1ABRRRQAUUUUAFF - FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF - FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF - FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH8tH/AAeDf8oe9R/7Kb4a/ldV/lPV/qw/8Hg3/KHvUf8A - spvhr+V1X+U9QAUUUUAful/wRe/4Lm/tC/8ABJP4mJpETat8Wf2SNbvll8W+AJ7nAhY4VtR0l3O22vlU - DI4jnVQkmCI5Yv8AWK/ZG/a//Z6/bo+BfhD9or9mX4iaT8SPhlq6ELPCdlxptyoBks723Pz291HuAaJw - CMqwyrKx/wAKOv1A/wCCW3/BWD9p/wD4JRfHOH4p/AvWv7d8A6jJDF4y8CajcONJ8XWan7sijPk3SBmM - V0g3xkkEPG0kTgH+1xRX58f8E4f+Cln7MH/BUD4B6d8c/wBm7xYLiaHyrfxN4XvmRNY8H37Lk2t9ACcA - 7X8uZcxyqpKMdrBf0HoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo - oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo - oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD+Wj/g8G/5Q96j/wBl - N8Nfyuq/ynq/1Yf+Dwb/AJQ96j/2U3w1/K6r/KeoAKKKKACiiigD7K/YZ/bv/aV/4J2fHzw5+0V+zD48 - uPCPjKzxBf2MwaXTfEdgWDSWGo22QJ7d9o4yGRgrxsjorr/rQf8ABIT/AILO/s1/8Fbvg+Nd8AXVr8PP - 2hdFtI5PGvw6vrsPe6O5IU3Vo5C/a7BnICzqAVLKkixuQD/jK17d+zz+0T8a/wBlH4veCvj3+z18RPEH - wt+LXh+6F3per6bLtkjPRo5EIKTQupKPDIGjkRmVlYEigD/eKor+c/8A4Ibf8HAfwV/4KreD9O+E3xKb - w58G/wBuHS7IvqvhUTFLPxZFGuZNQ0RpCS64BeS0JaWEbjmSNfNr+jCgAooooAKKKKACiiigAooooAKK - KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK - KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK - KKACiiigAooooA/lo/4PBv8AlD3qP/ZTfDX8rqv8p6v9WH/g8G/5Q96j/wBlN8Nfyuq/ynqACiiigAoo - ooAKKKKAOv8AAvjnxn8MfGPhj4h/DjxZ4g8DePdFvYdT0jWNJu3tbzTbuNg0c0E0ZDI6sAQwIIr/AE2f - +CBH/Byl4M/bptfCf7I/7bOt+Hvh3+2UiR2Gg+IWCWml/E0gYUKBiO21Q45txiOdjmEAt5C/5e9XbO7u - tPura9srm4s72GRZYZonKPE6nKsrDkMCAQRyCKAP9+uiv4Nf+Df7/g6BtvF58FfsUf8ABTLx5BY+LP3W - l+C/i5qs4WLVTwkVj4gmbhJ+ipfsQsnAnIfM0v8AeQrBgGUhlIyCO9ADqKKKACiiigAooooAKKKKACii - igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii - 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 - 8TfjX8R9TGi/D7wjoGoeJtbu8Am3sbS3eeZwCRkhImIHc4FelV+Df/BzN471b4f/APBEb9uDUdEupbPU - r+x8P6CHQkZgvPEGnW1whx2aCWdffdigD/LI/wCChv7dHxc/4KM/ta/Fj9qv4w6hcvqmu3zx6NpRmLwe - GdGjZhaabbDoI4YyASAPMkaSRstIxPxFRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR - RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR - RRQAV9lfsM/t3/tK/wDBOz4+eHP2iv2YfHlx4R8ZWeIL+xmDS6b4jsCwaSw1G2yBPbvtHGQyMFeNkdFd - fjWigD/Zq/4JCf8ABZ39mv8A4K3fB8a74AurX4eftC6LaRyeNfh1fXYe90dyQpurRyF+12DOQFnUAqWV - JFjcgH9jq/wdf2ef2ifjX+yj8XvBXx7/AGeviJ4g+Fvxa8P3Qu9L1fTZdskZ6NHIhBSaF1JR4ZA0ciMy - srAkV/qs/wDBDb/g4D+Cv/BVbwfp/wAJviU3h34N/tw6XZF9V8LCYpZ+LIo1zJqGiNISXXALyWhLSwjc - cyRr5tAH9GNFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB - RRRQAV/O/wD8HVH/ACg6/a3/AOwj4P8A/Um02v6IK/nf/wCDqj/lB1+1v/2EfB//AKk2m0Af5E9FFFAB - RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB - RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAV1/gXxz4z+GPjHwx8Q/hx4s8QeB - vHui3sOp6RrGk3b2t5pt3GwaOaCaMhkdWAIYEEVyFFAH+oR/wQI/4OUvBn7dVr4S/ZH/AG2dc8PfDv8A - bJRI7HQfELBLTS/iaQMKFAxHbaocc24xHO3MIUt5C/14V/gKWd3dafdW17ZXNxZ3sMiywzROUeJ1OVZW - HIYEAgjkEV/oQ/8ABv8Af8HQNv4vPgr9in/gpl47gsfFf7rS/Bfxc1WcLFqp4SKx8QTNwk/RUv2IWTgT - kPmaUA/vKopqsGAZSGUjII706gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA - KKKKACiiigAr+d//AIOqP+UHX7W//YR8H/8AqTabX9EFfzv/APB1R/yg6/a3/wCwj4P/APUm02gD/Ino - oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo - oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA/tl/4N4/+DlT - xN8AdX+H37Cv/BQDxlceI/2friSHRvBPxD1O4L3XgRiQkNlqUzHMul5KokzHdajAJMAHkf6RsUsc0aSw - yJJEyhlZTkMD0IPcV/gG1/rN/wDBq1+3n4j/AGzv+CZeieBfiPrlxr3xU+EGrHwBeXdzIXuL/SFgSbTJ - 5CSSSsDtaZPLfYixySSQD+l2iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo - oAKKKKACv53/APg6o/5Qdftb/wDYR8H/APqTabX9EFfzv/8AB1R/yg6/a3/7CPg//wBSbTaAP8ieiiig - AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig - AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr+/z/gxtbW/+Nl6 - kzf8I1nwCRuzs+0/8T7O3tnZjd/wD2r+AOv9ZP8A4NU/2DvEf7Gv/BMzSPiB8RtDuNB+KXxh1j/hPbq1 - uIilxY6MYUh0yCQEZG6FHuwDyBfYOCCAAf0y0UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR - RRQAUUUUAFFFFABRRRQAV/O//wAHVH/KDr9rf/sI+D//AFJtNr+iCv53/wDg6o/5Qdftb/8AYR8H/wDq - TabQB/kT0UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF - FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUVdsrS61 - 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 - tri9v55VhhhiQvJNIxAVVUcsxJAAHJJoApV/ar/wQA/4Nkde/aZPgv8AbQ/4KGeFdV8Kfs6kxan4R+Hl - 2j29/wCPE4aO71EcPb6Y3BWPiS5HzfJEVab7f/4N/wD/AINf7bwUfBH7a/8AwUw8CwX/AIyHlar4L+Em - qQB4tIPDRX2vwsMPcdGSwb5YuDMGfMUX94QAAAAGBwAO1AGPoGgaH4V0PRvDHhfRNL8OeGdOtYrHT9Os - LZLe2sLaNAkcMMSALHGiqqqigBQAAABW1RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB - RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB - RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH8tH/AAeDf8oe9R/7 - Kb4a/ldV/lPV/qw/8Hg3/KHvUf8Aspvhr+V1X+U9QAUUUUAFFFFABRRXuX7O37OXxr/ay+MXgn4Bfs8f - DzX/AIo/FjxDdC00zSdOiDO56tLK5ISGCNQXkmkKxxorMzAAmgDz3wL4D8a/FHxn4X+HXw48KeIPHfj7 - W76HTdI0bSbR7q81K6kYLHDBDGCzuxIAUDNf6b3/AAQJ/wCDa/wX+wja+Ev2tv21dG8P/ET9st40vdD0 - Bil3pfwyJAKlCMpc6oM/NcDMcLcQ7ivnv9ef8EN/+Df/AOCf/BKjwbYfFb4jf8I98Yv23tVsfL1fxUIS - 9n4VjkXEmn6IsgDImCUkuiFlm5GI0PlV/RdQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB - RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB - RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAfy0f8A - B4N/yh71H/spvhr+V1X+U9X+rD/weDf8oe9R/wCym+Gv5XVf5T1ABRRRQAUUV+on/BLP/gk3+0//AMFX - /jlD8Lfgbox8P/D/AE6SGXxn481G3c6T4Ss2PVyMefdOFYRWqEPIQSSkaySoAeEfsLfsGftK/wDBRb4+ - eHP2d/2YPAk/i3xfdkT6hfzbotM8N2AYLJf6jcgEQW6ZHOC7sVSNXdlQ/wCtB/wSE/4Izfs1f8EkPg6d - A+HtpbfEL9oDWrWNfGvxEvrRUvdZcYY2tquWNpYI4BW3UksVVpGkcBh9D/8ABOT/AIJrfsw/8Ev/AIB6 - b8CP2bfCYtml8u58S+J79EfWPF9+q4N1fTgDONzCOFcRxKxCKMsW/QSgAooooAKKKKACiiigAooooAKK - KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK - KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK - KKACiiigAooooAKKKKAP5aP+Dwb/AJQ96j/2U3w1/K6r/Ker/XG/4Opfgj4y+NH/AARr+O9x4I0271m/ - 8G61onje9tYELyNp1rc+XdSgD+GGG5kuHPZIXPav8jmgAoor+oj/AIIOf8G6XxQ/4KWa3oP7Rn7SNr4k - +Ev7DNndb0uFU2+p/EWSNsNbaYWGY7QMpWW9xjIaOLc4d4QD5O/4It/8ELv2hP8AgrZ8S49Zxq3wl/ZE - 0S+WLxZ4/mts/aHXDNp2kI423N8ykZbmOBWDyZJjil/1h/2R/wBkP9n39hr4F+D/ANnT9mf4d6T8Ofhl - o0fyQQDfcajcsAJLy9nPz3F1IVBeVyScADCqqj074Q/B/wCGHwC+Gfgr4N/BjwL4b+Gvwt8PWKadouh6 - TbCC1sLdf4VUdWJLMztlnZmZiWYk+mUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA - FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA - FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA - ZOs6RpPiHStU0DX9LsNb0K+t5bO9s7uFZoLy3kUo8UsbAq6MrMpUgggkHrX8OX7fH/BmH4C+JXxH8QfE - f9gX9oPR/gboWp3L3T+AvGOnz3mm6U7nJWw1GAtPHbjosMsUrL/z1xhR/dHRQB/DZ/wT8/4MzPhv8Kvi - RoHxO/b7+PGifH/SdLnS6g8A+FNPns9J1KVTlf7Qv5mWeeDPWCOKHdgZkKlkP9vOgaBofhXQ9G8MeF9E - 0vw54Z061isdP06wtkt7awto0CRwwxIAscaKqqqKAFAAAAFbVFABRRRQAUUUUAFFFFABRRRQAUUUUAFF - FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF - FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF - FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF - FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF - FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF - FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF - FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF - FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF - FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF - FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF - FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF - FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF - FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF - FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF - FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF - FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF - FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF - FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH/9k= - - - - - /9j/4AAQSkZJRgABAQEAAAAAAAD/2wBDAAEBAQEBAQEBAQEBAQECAgMCAgICAgQDAwIDBQQFBQUEBAQF - BgcGBQUHBgQEBgkGBwgICAgIBQYJCgkICgcICAj/2wBDAQEBAQICAgQCAgQIBQQFCAgICAgICAgICAgI - CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAj/wAARCAJhAXkDASIAAhEBAxEB/8QA - HwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIh - MUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVW - V1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXG - x8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQF - BgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAV - YnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE - hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq - 8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD+/iiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK - ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK - ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK - ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK - ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK - ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK - ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK - ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK - ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK - ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK - ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK/Bz/gqZ/wcL/sI/wDB - LrUb/wCGvivWNX+PP7SkcQc+APCMsTz6WWUMh1W8c+VYhgVYIfMn2srCEqwav5Ivit/weu/t869rl1N8 - F/2Xv2Tvhr4WLkw22vpq2vXsa9g1zFd2UbH1IgH4UAf6YFFf5z/7OP8Awe2ftBaXr1haftb/ALHXwf8A - G3hZ5AlzffDvULzRry0jzzIltfS3kc7AfwGWEH+8K/tZ/wCCe/8AwU+/Y4/4Kc/DK4+JX7KXxNj8R3Fi - I11/wzqcYs9e8MSvnal9ZFmKq21gs0bSQuVYJI21sAH6D0UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU - UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAV/K - 7/wcaf8ABezSv+CcXw6vv2XP2Y/Eemar+3J4o07L3URSdPhppkq8X9wpypvpFObeBh8oPnyDYI0m+tP+ - C7//AAWu+Hn/AASX+AP9meFZtD8aftj+MLKaPwJ4YmYSR6dHyjazqSA5WziYEIhwbiVfLXCrNJF/kcfF - T4qfEP43fEfxv8Xfi34x1zx/8TPEepT6vrms6lN5tzqN3KxZ5HbpyTwoAVQAAAAAADmNf1/XfFuu634p - 8U65q3iTxPqV3Nf6jqN/cvcXN/cyuXkmmlclpJHZmZnYkkkkkk1h0UUAFfVX7Gf7ZPx9/YK/aE8B/tMf - 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 - J/oMV/gGI7xOrxsyOpBVgcEH1Br/AEvP+DZv/g4BT9rDw94X/YA/bL8ZA/tP6PZfZ/A3izUp/n+IWnwp - n7JcyN97VIY0zvJzcxqWOZUdpQD+zeiiigAooooAKKKKACiiigAooooAKKKKACiiigAr/Oo/4Oev+DgL - /hal944/4Jq/sU+NHPwxs55NM+K3jPTLjjxJcI22TQ7GVTzZIwK3EoP79wYh+6V/P+4f+DnH/g4CX4Da - R4x/4Jy/sVeNyvxz1C3ex+JnjLS7j5vBdpIuH0mymU8ajKrYllU5to22L++cmD/N9oAKKKKACiiigAoo - ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK6Dw34k8QeDPE - Og+MPCOu6v4X8V6Vew6jpmpafcPb3Wn3UTiSKeGVCGjkR1VldSCCAQciufooA/1if+Dd/wD4LweHP+Cn - Pwpt/gD8fta0nQP26PCWmq2pRnZBF8QNOjAX+1rOMYAuF+UXMCjCsRKgEblIv6b6/wAFz4LfGj4ofs6/ - FfwD8cPgn411r4efFXwxqUWq6JrOnybJrK4Q8HnKujAsjxsCjozIwZWIP+vF/wAEPf8Ags18LP8Agrf+ - zvHqVy+ieB/2rvCttBb/ABC8HxSYCuflXVNPViWewnYHAyWgcmJyf3ckoB+4NFFFABRRRQAUUUUAFFFF - ABRRRQAV+d//AAVi/ah8UfsYf8E4f2w/2l/AhWLx74Y8GXT6BMyB1tNUuGS0tLhkPDLFPcxSlTwwQjvX - 6IV8rftufsw+Hv20/wBkX9or9lXxNf8A9j6Z468J3/h+O/8AL3/2ZdSRn7PdbP4jDOsMu3v5eO9AH+GT - rmt6z4n1nV/EniLVtS17xDqF1Le39/fXDTXF7cyOXkmlkclnkdmZmZiSSSSeaxq+jv2q/wBlP47fsVfH - Tx1+zl+0b4D1X4f/ABR8P3LW9zbXEbeTeQ7iI7u0lICz2soG+OZMq6n1yB840AFFFFABRRRQAUUUUAFF - FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABX6Df8EtP2vvi - F+w3+3x+zP8AtDfD7WNQ09tP8UWFhrtpDIVTWtDuZ0hvrKVRwyyQu+Mg7ZFjcDcikfnzX7wf8G/n/BLX - 4qf8FGf25/hPra+EdVi/Zj+H/iGw8TfEDxJLAy2IitZVuI9KSUja91dNGkXlqdyRPJKRhOQD/YYooooA - KKKKACiiigAooooAKKKKACiiigD5i/aS/Yy/ZP8A2xdA0/w3+1L+zt8IvjvpVnuNifEuhwXk+mlvvG1u - GXzbcnAyY2UnvXwKf+Dev/gjATk/8E/fgxn/AK63/wD8kV+y9FAH4zf8Q9P/AARg/wCkf/wa/wC/1/8A - /JFH/EPT/wAEYP8ApH/8Gv8Av9f/APyRX7M0UAfjN/xD0/8ABGD/AKR//Br/AL/X/wD8kUf8Q9P/AARg - /wCkf/wa/wC/1/8A/JFfszRQB+M3/EPT/wAEYP8ApH/8Gv8Av9f/APyRR/xD0/8ABGD/AKR//Br/AL/X - /wD8kV+zNFAH4zf8Q9P/AARg/wCkf/wa/wC/1/8A/JFH/EPT/wAEYP8ApH/8Gv8Av9f/APyRX7M0UAf5 - kf8Awdt/8E+/2Nf2D9a/YNt/2RfgD4N+BkPii18ZPr66Q9ww1NrV9HFuZPOkf7n2q4xjH+sOc8V/HHX9 - 8f8AwfKf8jF/wTQ/68fH3/ozQa/gcoAKKKKACiiigAooooAKKKKACiiigAooooAK/wBLT/g3n/4I8/8A - BM79rD/gkn+zJ8ef2if2Qvhp8VPi5rN14nj1TXdRkuxcXi2/iDULeEMI5lX5IoIkGAOEFf5pdf68H/Bq - 7/yg2/Y9/wCv3xj/AOpRqlAHv/8AxD0/8EYP+kf/AMGv+/1//wDJFH/EPT/wRg/6R/8Awa/7/X//AMkV - +zNFAH4zf8Q9P/BGD/pH/wDBr/v9f/8AyRR/xD0/8EYP+kf/AMGv+/1//wDJFfszRQB+M3/EPT/wRg/6 - R/8Awa/7/X//AMkUf8Q9P/BGD/pH/wDBr/v9f/8AyRX7M0UAfjN/xD0/8EYP+kf/AMGv+/1//wDJFH/E - PT/wRg/6R/8Awa/7/X//AMkV+zNFAH44af8A8G/P/BGfTLy2v4P+CffwOkniYOq3C3k8ZI/vRyTsjD2Y - EV+pfww+FHww+CXgnRfht8HPhx4G+FHw901DHp+heHNJg02wslJyRFbwKsaZPJwOTya9EooAKKKKACii - igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/AD6v+D5T/kYv+CaH/Xj4+/8ARmg1 - /A5X98f/AAfKf8jF/wAE0P8Arx8ff+jNBr+BygAooooAKKKKACiiigAooooAKKKKACiiigAr/Xg/4NXf - +UG37Hv/AF++Mf8A1KNUr/Ifr/Xg/wCDV3/lBt+x7/1++Mf/AFKNUoA/oYooooAKKKKACiiigAooooAK - KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA/z6v+D5T/AJGL/gmh - /wBePj7/ANGaDX8Dlf3x/wDB8p/yMX/BND/rx8ff+jNBr+BygAooooAKKKKACiiigAooooAKKKKACiii - gAr/AF4P+DV3/lBt+x7/ANfvjH/1KNUr/Ifr/Xg/4NXf+UG37Hv/AF++Mf8A1KNUoA/oYooooAKKKKAC - iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA/z6v8A - g+U/5GL/AIJof9ePj7/0ZoNfwOV/fH/wfKf8jF/wTQ/68fH3/ozQa/gcoAKKKKACiiigAooooAKKKKAC - iiigAooooAK/14P+DV3/AJQbfse/9fvjH/1KNUr/ACH6/wBeD/g1d/5Qbfse/wDX74x/9SjVKAP6GKKK - KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK - KAP8+r/g+U/5GL/gmh/14+Pv/Rmg1/A5X98f/B8p/wAjF/wTQ/68fH3/AKM0Gv4HKACiiigAooooAKKK - KACiiigAooooAKKKKACv9eD/AINXf+UG37Hv/X74x/8AUo1Sv8h+v9eD/g1d/wCUG37Hv/X74x/9SjVK - AP6GKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo - oooAKKKKAP8APq/4PlP+Ri/4Jof9ePj7/wBGaDX8Dlf3x/8AB8p/yMX/AATQ/wCvHx9/6M0Gv4HKACii - igAooooAKKKKACiiigAooooAKKKKACv9eD/g1d/5Qbfse/8AX74x/wDUo1Sv8h+v9eD/AINXf+UG37Hv - /X74x/8AUo1SgD+hiiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA - CiiigAooooAKKKKACiiigD/Pq/4PlP8AkYv+CaH/AF4+Pv8A0ZoNfwOV/fH/AMHyn/Ixf8E0P+vHx9/6 - M0Gv4HKACiiigAooooAKKKKACiiigAooooAKKKKACv8AXg/4NXf+UG37Hv8A1++Mf/Uo1Sv8h+v9eD/g - 1d/5Qbfse/8AX74x/wDUo1SgD+hiiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig - AooooAKKKKACiiigAooooAKKKKACiiigD/Pq/wCD5T/kYv8Agmh/14+Pv/Rmg1/A5X98f/B8p/yMX/BN - D/rx8ff+jNBr+BygAooooAKKKKACiiigAooooAKKKKACiiigAr/Xg/4NXf8AlBt+x7/1++Mf/Uo1Sv8A - Ifr/AF4P+DV3/lBt+x7/ANfvjH/1KNUoA/oYooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi - iigAooooAKKKKACiiigAooooAKKKKACiiigAooooA/z6v+D5T/kYv+CaH/Xj4+/9GaDX8Dlf3x/8Hyn/ - ACMX/BND/rx8ff8AozQa/gcoAKKKKACiiigAooooAKKKKACiiigAooooAK/14P8Ag1d/5Qbfse/9fvjH - /wBSjVK/yH6/14P+DV3/AJQbfse/9fvjH/1KNUoA/oYooooAKKKKACiiigAooooAKKKKACiiigAooooA - KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA/wA+r/g+U/5GL/gmh/14+Pv/AEZoNfwO - V/fH/wAHyn/Ixf8ABND/AK8fH3/ozQa/gcoAKKKKACiiigAooooAKKKKACiiigAooooAK/14P+DV3/lB - t+x7/wBfvjH/ANSjVK/yH6/14P8Ag1d/5Qbfse/9fvjH/wBSjVKAP6GKKKKACiiigAooooAKKKKACiii - gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP8+r/g+U/wCRi/4Jof8A - Xj4+/wDRmg1/A5X98f8AwfKf8jF/wTQ/68fH3/ozQa/gcoAKKKKACiiigAooooAKKKKACiiigAooooAK - /wBeD/g1d/5Qbfse/wDX74x/9SjVK/yH6/14P+DV3/lBt+x7/wBfvjH/ANSjVKAP6GKKKKACiiigAooo - oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP8+r/AIPl - P+Ri/wCCaH/Xj4+/9GaDX8Dlf3x/8Hyn/Ixf8E0P+vHx9/6M0Gv4HKACiiigAooooAKKKKACiiigAooo - oAKKKKACv9eD/g1d/wCUG37Hv/X74x/9SjVK/wAh+v8AXg/4NXf+UG37Hv8A1++Mf/Uo1SgD+hiiiigA - ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD - /Pq/4PlP+Ri/4Jof9ePj7/0ZoNfwOV/fH/wfKf8AIxf8E0P+vHx9/wCjNBr+BygAooooAKKKKACiiigA - ooooAKKKKACiiigAr/Xg/wCDV3/lBt+x7/1++Mf/AFKNUr/Ifr/Xg/4NXf8AlBt+x7/1++Mf/Uo1SgD+ - hiiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK - ACiiigD/AD6v+D5T/kYv+CaH/Xj4+/8ARmg1/A5X98f/AAfKf8jF/wAE0P8Arx8ff+jNBr+BygAooooA - KKKKACiiigAooooAKKKKACiiigAr/Xg/4NXf+UG37Hv/AF++Mf8A1KNUr/Ifr/Xg/wCDV3/lBt+x7/1+ - +Mf/AFKNUoA/oYooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo - ooAKKKKACiiigAooooA/z6v+D5T/AJGL/gmh/wBePj7/ANGaDX8Dlf3x/wDB8p/yMX/BND/rx8ff+jNB - r+BygAooooAKKKKACiiigAooooAKKKKACiiigAr/AF4P+DV3/lBt+x7/ANfvjH/1KNUr/Ifr/Xg/4NXf - +UG37Hv/AF++Mf8A1KNUoA/oYooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK - KKACiiigAooooAKKKKACiiigAooooA/z6v8Ag+U/5GL/AIJof9ePj7/0ZoNfwOV/fH/wfKf8jF/wTQ/6 - 8fH3/ozQa/gcoAKKKKACiiigAooooAKKKKACiiigAooooAK/14P+DV3/AJQbfse/9fvjH/1KNUr/ACH6 - /wBeD/g1d/5Qbfse/wDX74x/9SjVKAP6GKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo - AKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP8+r/g+U/5GL/gmh/14+Pv/Rmg1/A5X98f/B8p/wAj - F/wTQ/68fH3/AKM0Gv4HKACiiigAooooAKKKKACiiigAooooAKKKKACv9eD/AINXf+UG37Hv/X74x/8A - Uo1Sv8h+v9eD/g1d/wCUG37Hv/X74x/9SjVKAP6GKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii - igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP8AP8/4PktLvftf/BM7XFhd9P8AL8f2jSAc - JJnQWAJ7EjcR/ut6V/AVX+st/wAHVX7CXiP9sr/gmRrvj34daJca58Ufg/q48f21rbx7577R1geHU4Yx - 32wSLdkDk/YdoySAf8mmgAooooAKKKKACiiigAooooAKKKKACiiigAr/AF8f+DXDTLzTP+CG37F/22Fo - GuJPF11GrDBMbeKdV2t9CAGHsRX+Sp8JfhZ49+OfxP8Ah/8ABr4W+Hb/AMXfEnxTrFpoOh6ZbLmS+vbi - VYoox6ZZxljwBkkgAmv9wf8AYg/Zl0T9jP8AZB/Zw/ZY0G5g1Cz8C+ENN8PzXkSlV1G8ihX7TdAEDHnT - mabHrJQB9V0UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF - FFFABRRRQAUUUUAV5oYriKSC4SOaF1KOjqCrKRggg9QfSv8AOp/4Ln/8GrvxQ8IeOvG/7V3/AATF8Cyf - ED4XapNLqmvfCbTEH9p+GZ2JaSTRIf8Al7s2JJFmn76EkLEsqYWL/ReooA/wKfE3hbxL4J8Qat4S8Z+H - Nd8JeKbCZre+0zU7OS1u7KUdY5oZArow7qwBFc7X+7z8Zf2U/wBl79otYB+0H+zd8Bvjr5SeXD/wmPg/ - T9Z8pfRftUMm0fSvl1/+CPH/AASid2dv+Cbv7EAJyTj4Y6OAPoBb4FAH+JRRX+2v/wAOdf8Agk//ANI3 - P2Iv/DZaR/8AGKP+HOv/AASf/wCkbn7EX/hstI/+MUAf4lFFf7a//DnX/gk//wBI3P2Iv/DZaR/8Yo/4 - c6/8En/+kbn7EX/hstI/+MUAf4lFFf7a/wDw51/4JP8A/SNz9iL/AMNlpH/xij/hzr/wSf8A+kbn7EX/ - AIbLSP8A4xQB/iUUV/tr/wDDnX/gk/8A9I3P2Iv/AA2Wkf8Axij/AIc6/wDBJ/8A6RufsRf+Gy0j/wCM - UAf4lFe9fs8fsxftC/tZfELTfhT+zX8GviH8a/iBcsoXTvD2mSXTQKTjzZ3UbIIRyWllZI1AJZgATX+z - NZf8Eg/+CVFhcJdW3/BNz9hsyjp5vws0WVR/wF7cj9K+2Phz8Kfhd8HvDsPhH4R/DbwD8LfCcbbk0vw5 - o9vptoh9RBboiA/hQB/L9/wb6/8ABuhpP/BNuaz/AGr/ANrGTw545/bTvLKS30nTrKRbnTfhxbTIVljg - mxtuNQkRmjkuF+REZ44iys8kn9YNFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB - RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB - RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB - RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB - RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB - RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAf/2Q== - - - - - /9j/4AAQSkZJRgABAQEAAAAAAAD/2wBDAAEBAQEBAQEBAQEBAQECAgMCAgICAgQDAwIDBQQFBQUEBAQF - BgcGBQUHBgQEBgkGBwgICAgIBQYJCgkICgcICAj/2wBDAQEBAQICAgQCAgQIBQQFCAgICAgICAgICAgI - CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAj/wAARCAH/AbMDASIAAhEBAxEB/8QA - HwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIh - MUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVW - V1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXG - x8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQF - BgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAV - YnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE - hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq - 8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD+/iiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK - ACiiigAoor4v/bF/4KFfsXfsBeE7bxh+11+0P4A+DVncxvJp9jezvcapqyrwxs9Nt1kurgA8Fo42CkjJ - GaAPtCiv5G/HX/B5v/wSt8MatdaV4W+GH7ZfxKt42ITUdO8L6XbWk4z1T7XqUUw9fmiX8K4T/iNf/wCC - b3/RtH7bv/gp0H/5aUAf2P0V/HB/xGv/APBN7/o2j9t3/wAFOg//AC0o/wCI1/8A4Jvf9G0ftu/+CnQf - /lpQB/Y/RX8cH/Ea/wD8E3v+jaP23f8AwU6D/wDLSj/iNf8A+Cb3/RtH7bv/AIKdB/8AlpQB/Y/RX8cH - /Ea//wAE3v8Ao2j9t3/wU6D/APLSj/iNf/4Jvf8ARtH7bv8A4KdB/wDlpQB/Y/RX8cH/ABGv/wDBN7/o - 2j9t3/wU6D/8tKP+I1//AIJvf9G0ftu/+CnQf/lpQB/Y/RX8jngT/g83/wCCVvijV7XSvFPwx/bL+Gtv - I4D6jqPhfS7m0txnq/2TUpZj6/LE341/Qp+x3/wUJ/Yv/b88KXXjD9kT9obwB8ZrK2jWTULGyne31TSV - bhTeabcLHdW4J4DSRqGIOCcUAfZ9FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA - BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAfg5/wXr/4LLeHP+CSH7NG - nX3g+00Txd+1d43+06f4A0K8y8FmI1Xz9WvUBBNtb+ZGBHkGaV0QEKJHT/JN+O/x9+M37T3xU8W/G34/ - /EjxX8WPirrlwbnU9a1i6M08x/hRf4Y4kGFSJAscagKqqoAH7Cf8HKP7Vev/ALU3/BXz9qY3upT3XhL4 - eakPhh4ftGclLCHS8xXSr2+e/bUJT/10A7V+DFABRRRQAUUUUAFFFFABRRRQAUUUUAFex/Af4/8Axn/Z - g+KvhL43fs//ABK8V/Cb4q6HcC503WtHuTDPAf4kYcrLE4yrxSBo5FJV1ZSQfHKKAP8AYV/4IJ/8FlPD - n/BW79mfUL7xfa6N4S/at8D/AGbTvH+iWnyQXnmK3kavZISSttceXKDHkmGVHQ5Uxu/7x1/j3/8ABtb+ - 1Zr37LP/AAV9/ZZ+yanPaeEviHqLfDDxBahyFv4dTxFaq3b5L9dPlH/XMjvX+whQAUUUUAFFFFABRRRQ - AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ - AUUUUAFFFFAH+Hj/AMFQpJJP+Cl//BRCWRmeRvjp49ZmPUk6/e818K19y/8ABT7/AJSV/wDBQ3/sufjz - /wBP97Xw1QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQB91f8ABL2WSH/gpf8A8E75opGjlT46eAmVh1Uj - X7LBFf7h1f4dn/BMH/lJX/wTy/7Ln4D/APT/AGVf7idABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR - QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAf4dn/AAU+ - /wCUlf8AwUN/7Ln48/8AT/e18NV9y/8ABT7/AJSV/wDBQ3/sufjz/wBP97Xw1QAUUUUAFFFFABRRRQAU - UUUAFFFFABRRRQB9y/8ABMH/AJSV/wDBPL/sufgP/wBP9lX+4nX+HZ/wTB/5SV/8E8v+y5+A/wD0/wBl - X+4nQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA - BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH+HZ/wAFPv8AlJX/AMFDf+y5+PP/AE/3tfDVfcv/AAU+/wCU - lf8AwUN/7Ln48/8AT/e18NUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAfcv/AATB/wCUlf8AwTy/7Ln4 - D/8AT/ZV/uJ1/h2f8Ewf+Ulf/BPL/sufgP8A9P8AZV/uJ0AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF - FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQB/h2f8A - BT7/AJSV/wDBQ3/sufjz/wBP97Xw1X3L/wAFPv8AlJX/AMFDf+y5+PP/AE/3tfDVABRRRQAUUUUAFFFF - ABRRRQAUUUUAFFFFAH3L/wAEwf8AlJX/AME8v+y5+A//AE/2Vf7idf4dn/BMH/lJX/wTy/7Ln4D/APT/ - AGVf7idABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU - UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAf4dn/AAU+/wCUlf8AwUN/7Ln48/8AT/e18NV9y/8ABT7/ - AJSV/wDBQ3/sufjz/wBP97Xw1QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQB9y/8ABMH/AJSV/wDBPL/s - ufgP/wBP9lX+4nX+HZ/wTB/5SV/8E8v+y5+A/wD0/wBlX+4nQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR - QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH+HZ - /wAFPv8AlJX/AMFDf+y5+PP/AE/3tfDVfcv/AAU+/wCUlf8AwUN/7Ln48/8AT/e18NUAFFFFABRRRQAU - UUUAFFFFABRRRQAUUUUAfcv/AATB/wCUlf8AwTy/7Ln4D/8AT/ZV/uJ1/h2f8Ewf+Ulf/BPL/sufgP8A - 9P8AZV/uJ0AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA - BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQB/h2f8ABT7/AJSV/wDBQ3/sufjz/wBP97Xw1X3L/wAF - Pv8AlJX/AMFDf+y5+PP/AE/3tfDVABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH3L/wAEwf8AlJX/AME8 - v+y5+A//AE/2Vf7idf4dn/BMH/lJX/wTy/7Ln4D/APT/AGVf7idABRRRQAUUUUAFFFFABRRRQAUUUUAF - FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAf - 4dn/AAU+/wCUlf8AwUN/7Ln48/8AT/e18NV9y/8ABT7/AJSV/wDBQ3/sufjz/wBP97Xw1QAUUUUAFFFF - ABRRRQAUUUUAFFFFABRRRQB9y/8ABMH/AJSV/wDBPL/sufgP/wBP9lX+4nX+HZ/wTB/5SV/8E8v+y5+A - /wD0/wBlX+4nQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU - UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH+HZ/wAFPv8AlJX/AMFDf+y5+PP/AE/3tfDVfcv/ - AAU+/wCUlf8AwUN/7Ln48/8AT/e18NUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAfcv/AATB/wCUlf8A - wTy/7Ln4D/8AT/ZV/uJ1/h2f8Ewf+Ulf/BPL/sufgP8A9P8AZV/uJ0AFFFFABRRRQAUUUUAFFFFABRRR - QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR - QB/h2f8ABT7/AJSV/wDBQ3/sufjz/wBP97Xw1X3L/wAFPv8AlJX/AMFDf+y5+PP/AE/3tfDVABRRRQAU - UUUAFFFFABRRRQAUUUUAFFFFAH3L/wAEwf8AlJX/AME8v+y5+A//AE/2Vf7idf4dn/BMH/lJX/wTy/7L - n4D/APT/AGVf7idABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA - BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAf4dn/AAU+/wCUlf8AwUN/7Ln48/8AT/e18NV9 - y/8ABT7/AJSV/wDBQ3/sufjz/wBP97Xw1QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQB9y/8ABMH/AJSV - /wDBPL/sufgP/wBP9lX+4nX+HZ/wTB/5SV/8E8v+y5+A/wD0/wBlX+4nQAUUUUAFFFFABRRRQAUUUUAF - FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF - FFFAH+HZ/wAFPv8AlJX/AMFDf+y5+PP/AE/3tfDVfcv/AAU+/wCUlf8AwUN/7Ln48/8AT/e18NUAFFFF - ABRRRQAUUUUAFFFFABRRRQAUUUUAfcv/AATB/wCUlf8AwTy/7Ln4D/8AT/ZV/uJ1/h2f8Ewf+Ulf/BPL - /sufgP8A9P8AZV/uJ0AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU - UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQB/h2f8ABT7/AJSV/wDBQ3/sufjz/wBP97Xw - 1X3L/wAFPv8AlJX/AMFDf+y5+PP/AE/3tfDVABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH3L/wAEwf8A - lJX/AME8v+y5+A//AE/2Vf7idf4dn/BMH/lJX/wTy/7Ln4D/APT/AGVf7idABRRRQAUUUUAFFFFABRRR - QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR - QAUUUUAf4dn/AAU+/wCUlf8AwUN/7Ln48/8AT/e18NV9y/8ABT7/AJSV/wDBQ3/sufjz/wBP97Xw1QAU - UUUAFFFFABRRRQAUUUUAFFFFABRRRQB9y/8ABMH/AJSV/wDBPL/sufgP/wBP9lX+4nX+HZ/wTB/5SV/8 - E8v+y5+A/wD0/wBlX+4nQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA - BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH+HZ/wAFPv8AlJX/AMFDf+y5+PP/AE/3 - tfDVfcv/AAU+/wCUlf8AwUN/7Ln48/8AT/e18NUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAfcv/AATB - /wCUlf8AwTy/7Ln4D/8AT/ZV/uJ1/h2f8Ewf+Ulf/BPL/sufgP8A9P8AZV/uJ0AFFFFABRRRQAUUUUAF - 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 - UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU - UUUAFFFFABRRRQAUUUUAFFFFABX86X/BwD/wQ48Hf8FV/gr/AMLH+FVhonhX9t7wdp8n/CK6u+2CPxVZ - rukOiahKcDYzFmgmb/UyseQkstf0W0UAf4G/jzwJ4y+F3jXxX8OPiL4X1vwT4+0LUJ9J1nSNSt2gutNv - IXKSwTRMAUdWVlIPcVx9f6hv/Byj/wAECbb9u7wZrH7av7JPhKCL9srw7p4bX9Dsogp+JulwpgIFH3tU - gRQIm+9NGogOSsGz/L/vbS6027urG+triyv4JWhmhlQpJDIpIZWU8qwIIIPIIoApUUUUAFFFXbO0utQu - raysra4vL2aRYoYYkLvK7HCqqjksSQABySaAOj8DeBvGXxO8Z+FPh18O/DGt+NfHmu6hBpOj6Rptu093 - qV5M4jighiUFndmZVAHUmv8AWX/4N/P+CG/g3/glT8FV+JfxY07RfFP7cHjHTo18VaqhSeLwlZsVkGia - fKMjapVGnmU4mlQYJjjir5B/4Nrf+CBFt+wt4M0T9tn9rjwjDN+2T4i08t4e0G+hDH4ZaXMmCpU/d1Se - NsSt96CNjANpafd/XfQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR - RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAV/DB/wAHKf8A - wbp638btV8V/8FB/2A/h8NU+K8okvviX8PtIgAl8TsBufWNLgX799gEz26jdcf6xAZt4m/ufooA/wFb2 - yu9MvLvTtRtLix1C3laCeCaMpJDIpIZHU4KsCCCDyCKo1/tD/ty/8EN/+CZn/BQnWNR8Z/tAfs3aFbfF - a5BM3jPwrcSaJrU74x5lzNbFUvHA4BuUmwAAMYFfjkv/AAZZf8EvRrg1A/HX9uY6Nv3f2f8A8JJoWOud - nm/2Ru2dv73+1nmgD/MVsbC91S+s9M0yzudS1K4lSC3ggjLyzysQqoiLksxJAAHJJr/RH/4Nsv8Ag3O1 - 34Jax4R/4KC/8FAPAH9mfFaER3/w1+HerwAzeGHPzJrGqwt9y+AwYLZhut/9Y4EwRYf6Nv2Gv+CH/wDw - TP8A+Ceur2HjD9nv9m3QJPinbj914z8UTya3rcL4wXt57ksloxHBNskOQSDnJr9a6ACiiigAooooAKKK - KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK - KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK - KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK - KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK - KACiiigAooooAKKKKACiiigAooooAKKKKAP/2Q== - - \ No newline at end of file diff --git a/ProjectCar/ProjectCar/MovementStrategy/AbstractStrategy.cs b/ProjectCar/ProjectCar/MovementStrategy/AbstractStrategy.cs new file mode 100644 index 0000000..2a3240b --- /dev/null +++ b/ProjectCar/ProjectCar/MovementStrategy/AbstractStrategy.cs @@ -0,0 +1,136 @@ +namespace ProjectGasMachine.MovementStrategy; + +/// +/// класс-стратегия перемещения объекта +/// +public abstract class AbstractStrategy +{ + /// + /// перемещаемый объект + /// + private IMoveableObjects? _moveableObject; + + /// + /// статус перемещения + /// + private StrategyStatus _state = StrategyStatus.NotInit; + + /// + /// ширина поля + /// + protected int FieldWidth { get; private set; } + + /// + /// высота поля + /// + protected int FieldHeight { get; private set; } + + /// + /// статус перемещения + /// + public StrategyStatus GetStatus() { return _state; } + + /// + /// установка данных + /// + /// перемещаемый объект + /// ширина + /// высота + public void SetData(IMoveableObjects moveableObject, int width, int height) + { + if (moveableObject == null) + { + _state = StrategyStatus.NotInit; + return; + } + _state = StrategyStatus.InProgress; + _moveableObject = moveableObject; + FieldWidth = width; + FieldHeight = height; + } + + public void MakeStep() + { + if (_state != StrategyStatus.InProgress) + { + return; + } + + if (IsTargetDestination()) + { + _state = StrategyStatus.Finish; + return; + } + + MoveToTarget(); + } + + /// + /// Перемещение влево + /// + /// Результат перемещения (true - удалось переместиться, false - неудача) + protected bool MoveLeft() => MoveTo(MovementDirection.Left); + + /// + /// Перемещение вправо + /// + /// Результат перемещения (true - удалось переместиться, false - неудача) + protected bool MoveRight() => MoveTo(MovementDirection.Right); + + /// + /// Перемещение вверх + /// + /// Результат перемещения (true - удалось переместиться, false - неудача) + protected bool MoveUp() => MoveTo(MovementDirection.Up); + + /// + /// Перемещение вниз + /// + /// Результат перемещения (true - удалось переместиться, false - неудача) + protected bool MoveDown() => MoveTo(MovementDirection.Down); + + /// + /// Параметры объекта + /// + protected ObjectParameters? GetObjectParameters => _moveableObject?.GetObjectPosition; + + /// + /// Шаг объекта + /// + /// + protected int? GetStep() + { + if (_state != StrategyStatus.InProgress) + { + return null; + } + return _moveableObject?.GetStep; + } + + /// + /// Перемещение к цели + /// + protected abstract void MoveToTarget(); + + /// + /// Достигнута ли цель + /// + /// + protected abstract bool IsTargetDestination(); + + + /// + /// Попытка перемещения в требуемом направлении + /// + /// Направление + /// Результат попытки (true - удалось переместиться, false - неудача) + private bool MoveTo(MovementDirection movementDirection) + { + if (_state != StrategyStatus.InProgress) + { + return false; + } + return _moveableObject?.TryMoveObject(movementDirection) ?? false; + } + +} diff --git a/ProjectCar/ProjectCar/MovementStrategy/IMoveableObjects.cs b/ProjectCar/ProjectCar/MovementStrategy/IMoveableObjects.cs new file mode 100644 index 0000000..5f0599e --- /dev/null +++ b/ProjectCar/ProjectCar/MovementStrategy/IMoveableObjects.cs @@ -0,0 +1,24 @@ +namespace ProjectGasMachine.MovementStrategy; +/// +/// интерфейс для работы с перемещаемым объектом +/// +public interface IMoveableObjects +{ + /// + /// получение координаты объекта + /// + ObjectParameters? GetObjectPosition { get; } + + /// + /// шаг объекта + /// + int GetStep { get; } + + /// + /// попытка переместить объект в указанном направлении + /// + /// + /// true - объект перемещен, false - перемещение невозможно + bool TryMoveObject(MovementDirection direction); + +} diff --git a/ProjectCar/ProjectCar/MovementStrategy/MoveToBorder.cs b/ProjectCar/ProjectCar/MovementStrategy/MoveToBorder.cs new file mode 100644 index 0000000..ad21831 --- /dev/null +++ b/ProjectCar/ProjectCar/MovementStrategy/MoveToBorder.cs @@ -0,0 +1,52 @@ +namespace ProjectGasMachine.MovementStrategy; +/// +/// Стратегия перемещения объекта к краю +/// +public class MoveToBorder : AbstractStrategy +{ + protected override bool IsTargetDestination() + { + ObjectParameters? objParams = GetObjectParameters; + if (objParams == null) + { + return false; + } + return objParams.RightBorder - GetStep() <= FieldWidth && objParams.RightBorder + GetStep() >= FieldWidth && + objParams.DownBorder - GetStep() <= FieldHeight && objParams.DownBorder + GetStep() >= FieldHeight; + } + + protected override void MoveToTarget() + { + ObjectParameters? objParams = GetObjectParameters; + if (objParams == null) + { + return; + } + + int diffX = objParams.RightBorder - FieldWidth; + if (Math.Abs(diffX) > GetStep()) + { + if (diffX > 0) + { + MoveLeft(); + } + else + { + MoveRight(); + } + } + + int diffY = objParams.DownBorder - FieldHeight; + if (Math.Abs(diffY) > GetStep()) + { + if (diffY > 0) + { + MoveUp(); + } + else + { + MoveDown(); + } + } + } +} \ No newline at end of file diff --git a/ProjectCar/ProjectCar/MovementStrategy/MoveToCenter.cs b/ProjectCar/ProjectCar/MovementStrategy/MoveToCenter.cs new file mode 100644 index 0000000..6dd7b28 --- /dev/null +++ b/ProjectCar/ProjectCar/MovementStrategy/MoveToCenter.cs @@ -0,0 +1,48 @@ +namespace ProjectGasMachine.MovementStrategy; + +internal class MoveToCenter : AbstractStrategy +{ + protected override bool IsTargetDestination() + { + ObjectParameters? objParams = GetObjectParameters; + if (objParams == null) + { + return false; + } + return objParams.ObjectMiddleHorizontal - GetStep() <= FieldWidth / 2 && objParams.ObjectMiddleHorizontal + GetStep() >= FieldWidth / 2 && + objParams.ObjectMiddleVertical - GetStep() <= FieldHeight / 2 && objParams.ObjectMiddleVertical + GetStep() >= FieldHeight / 2; + } + + protected override void MoveToTarget() + { + ObjectParameters? objParams = GetObjectParameters; + if (objParams == null) + { + return; + } + int diffX = objParams.ObjectMiddleHorizontal - FieldWidth / 2; + if (Math.Abs(diffX) > GetStep()) + { + if (diffX > 0) + { + MoveLeft(); + } + else + { + MoveRight(); + } + } + int diffY = objParams.ObjectMiddleVertical - FieldHeight / 2; + if (Math.Abs(diffY) > GetStep()) + { + if (diffY > 0) + { + MoveUp(); + } + else + { + MoveDown(); + } + } + } +} diff --git a/ProjectCar/ProjectCar/MovementStrategy/MoveableMachine.cs b/ProjectCar/ProjectCar/MovementStrategy/MoveableMachine.cs new file mode 100644 index 0000000..5c18839 --- /dev/null +++ b/ProjectCar/ProjectCar/MovementStrategy/MoveableMachine.cs @@ -0,0 +1,70 @@ +using ProjectGasMachine.Drawnings; +using System.Reflection.PortableExecutable; + +namespace ProjectGasMachine.MovementStrategy; + +/// +/// класс-реализация IMoveableObjects с использованием DrawningMachine +/// +public class MoveableMachine : IMoveableObjects +{ + /// + /// поле-объект класса DrawningMachine или его наследника + /// + private readonly DrawningMachine? _machine = null; + + + /// + /// конструктор + /// + /// объект класса DrawningMachine + public MoveableMachine(DrawningMachine machine) + { + _machine = machine; + } + + public ObjectParameters? GetObjectPosition + { + get + { + if (_machine == null || _machine.EntityGas == null || !_machine.GetPosX.HasValue || !_machine.GetPosY.HasValue) + { + return null; + } + return new ObjectParameters(_machine.GetPosX.Value, _machine.GetPosY.Value, _machine.GetWidth, _machine.GetHeight); + } + } + + + + + + public int GetStep => (int)(_machine?.EntityGas?.Step ?? 0); + + public bool TryMoveObject(MovementDirection direction) + { + if (_machine == null || _machine.EntityGas == null) + { + return false; + } + return _machine.MoveTransport(GetDirectionType(direction)); + } + + /// + /// конвертация из MovementDirection в DirectionType + /// + /// MovementDirection + /// DirectionType + private static DirectionType GetDirectionType(MovementDirection direction) + { + return direction switch + { + MovementDirection.Left => DirectionType.Left, + MovementDirection.Right => DirectionType.Right, + MovementDirection.Up => DirectionType.Up, + MovementDirection.Down => DirectionType.Down, + _ => DirectionType.Unknow, + }; + } + +} diff --git a/ProjectCar/ProjectCar/MovementStrategy/MovementDirection.cs b/ProjectCar/ProjectCar/MovementStrategy/MovementDirection.cs new file mode 100644 index 0000000..ee99ae7 --- /dev/null +++ b/ProjectCar/ProjectCar/MovementStrategy/MovementDirection.cs @@ -0,0 +1,21 @@ +namespace ProjectGasMachine.MovementStrategy; + +public enum MovementDirection +{ + /// + /// Вверх + /// + Up = 1, + /// + /// Вниз + /// + Down = 2, + /// + /// Влево + /// + Left = 3, + /// + /// Вправо + /// + Right = 4 +} diff --git a/ProjectCar/ProjectCar/MovementStrategy/ObjectParameters.cs b/ProjectCar/ProjectCar/MovementStrategy/ObjectParameters.cs new file mode 100644 index 0000000..344bd99 --- /dev/null +++ b/ProjectCar/ProjectCar/MovementStrategy/ObjectParameters.cs @@ -0,0 +1,72 @@ +namespace ProjectGasMachine.MovementStrategy; + +public class ObjectParameters +{ + /// + /// координата x + /// + private readonly int _x; + + /// + /// координата y + /// + private readonly int _y; + + /// + /// ширина объекта + /// + private readonly int _width; + + /// + /// высота объекта + /// + private readonly int _height; + + /// + /// левая граница + /// + public int LeftBorder => _x; + + + /// + /// верхняя граница + /// + public int TopBorder => _y; + + + /// + /// правая граница + /// + public int RightBorder => _x + _width; + + + /// + /// нижняя граница + /// + public int DownBorder => _y + _height; + + /// + /// середина объекта + /// + public int ObjectMiddleHorizontal => _x + _width/2; + + /// + /// середина объекта + /// + public int ObjectMiddleVertical => _y + _height / 2; + + /// + /// конструктор + /// + /// координата x + /// координата y + /// ширина объекта + /// высота объекта + public ObjectParameters(int x, int y, int width, int height) + { + _x = x; + _y = y; + _width = width; + _height = height; + } +} diff --git a/ProjectCar/ProjectCar/MovementStrategy/StrategyStatus.cs b/ProjectCar/ProjectCar/MovementStrategy/StrategyStatus.cs new file mode 100644 index 0000000..5c2a13c --- /dev/null +++ b/ProjectCar/ProjectCar/MovementStrategy/StrategyStatus.cs @@ -0,0 +1,22 @@ +namespace ProjectGasMachine.MovementStrategy; + +/// +/// статус выполнения операции перемещения +/// +public enum StrategyStatus +{ + /// + /// все готово к началу + /// + NotInit, + + /// + /// выполняется + /// + InProgress, + + /// + /// завершено + /// + Finish +} diff --git a/ProjectCar/ProjectCar/Program.cs b/ProjectCar/ProjectCar/Program.cs index 87de37b..407e6fa 100644 --- a/ProjectCar/ProjectCar/Program.cs +++ b/ProjectCar/ProjectCar/Program.cs @@ -1,4 +1,4 @@ -namespace ProjectCar +namespace ProjectGasMachine { internal static class Program { diff --git a/ProjectCar/ProjectCar/ProjectCar.csproj b/ProjectCar/ProjectCar/ProjectGasMachine.csproj similarity index 87% rename from ProjectCar/ProjectCar/ProjectCar.csproj rename to ProjectCar/ProjectCar/ProjectGasMachine.csproj index 8913e92..8b53cc9 100644 --- a/ProjectCar/ProjectCar/ProjectCar.csproj +++ b/ProjectCar/ProjectCar/ProjectGasMachine.csproj @@ -9,8 +9,8 @@ - - + + diff --git a/ProjectCar/ProjectCar/Properties/Resources.Designer.cs b/ProjectCar/ProjectCar/Properties/Resources.Designer.cs index 7122bf4..6a8bc47 100644 --- a/ProjectCar/ProjectCar/Properties/Resources.Designer.cs +++ b/ProjectCar/ProjectCar/Properties/Resources.Designer.cs @@ -8,7 +8,7 @@ // //------------------------------------------------------------------------------ -namespace ProjectCar.Properties { +namespace ProjectGasMachine.Properties { using System; @@ -39,7 +39,7 @@ namespace ProjectCar.Properties { internal static global::System.Resources.ResourceManager ResourceManager { get { if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ProjectCar.Properties.Resources", typeof(Resources).Assembly); + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ProjectGasMachine.Properties.Resources", typeof(Resources).Assembly); resourceMan = temp; } return resourceMan; @@ -69,5 +69,45 @@ namespace ProjectCar.Properties { return ((System.Drawing.Bitmap)(obj)); } } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap вверх { + get { + object obj = ResourceManager.GetObject("вверх", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap влево { + get { + object obj = ResourceManager.GetObject("влево", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap вниз { + get { + object obj = ResourceManager.GetObject("вниз", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap вправо { + get { + object obj = ResourceManager.GetObject("вправо", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } } } diff --git a/ProjectCar/ProjectCar/Properties/Resources.resx b/ProjectCar/ProjectCar/Properties/Resources.resx index 2c7a870..3b078d7 100644 --- a/ProjectCar/ProjectCar/Properties/Resources.resx +++ b/ProjectCar/ProjectCar/Properties/Resources.resx @@ -121,4 +121,16 @@ ..\Resources\free-icon-left-arrow-10696518.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\вверх.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\влево.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\вниз.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\вправо.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + \ No newline at end of file diff --git a/ProjectCar/ProjectCar/Resources/вверх.jpg b/ProjectCar/ProjectCar/Resources/вверх.jpg new file mode 100644 index 0000000..be2bf32 Binary files /dev/null and b/ProjectCar/ProjectCar/Resources/вверх.jpg differ diff --git a/ProjectCar/ProjectCar/Resources/влево.jpg b/ProjectCar/ProjectCar/Resources/влево.jpg new file mode 100644 index 0000000..a9904d8 Binary files /dev/null and b/ProjectCar/ProjectCar/Resources/влево.jpg differ diff --git a/ProjectCar/ProjectCar/Resources/вниз.jpg b/ProjectCar/ProjectCar/Resources/вниз.jpg new file mode 100644 index 0000000..b4109f8 Binary files /dev/null and b/ProjectCar/ProjectCar/Resources/вниз.jpg differ diff --git a/ProjectCar/ProjectCar/Resources/вправо.jpg b/ProjectCar/ProjectCar/Resources/вправо.jpg new file mode 100644 index 0000000..a386558 Binary files /dev/null and b/ProjectCar/ProjectCar/Resources/вправо.jpg differ