From b07a1d623857448f2f653baa06415ef938b1accc Mon Sep 17 00:00:00 2001 From: Virenbar Date: Wed, 11 Mar 2026 16:09:22 +0500 Subject: [PATCH 1/6] =?UTF-8?q?feat:=20=D1=84=D0=BE=D1=80=D0=BC=D0=B0=20?= =?UTF-8?q?=D0=B2=D1=8B=D0=B1=D0=BE=D1=80=D0=B0=20=D1=81=D1=83=D0=B1=D1=8A?= =?UTF-8?q?=D0=B5=D0=BA=D1=82=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fixes #6 --- FIAS.Core/Stores/SubjectStore.cs | 110 ++++++++++ FIASUpdate/Extensions/DataExtensions.cs | 3 - FIASUpdate/FIASUpdate.csproj | 9 + FIASUpdate/Forms/FormDBList.cs | 2 +- FIASUpdate/Forms/FormSettings.Designer.cs | 192 ++++++++++++++---- FIASUpdate/Forms/FormSettings.cs | 15 +- FIASUpdate/Forms/FormSubjectList.Designer.cs | 203 +++++++++++++++++++ FIASUpdate/Forms/FormSubjectList.cs | 85 ++++++++ FIASUpdate/Forms/FormSubjectList.resx | 120 +++++++++++ FIASUpdate/Program.cs | 4 +- FIAS_GAR/Security/adm.sql | 2 + FIAS_GAR/Security/mun.sql | 2 + LICENSE | 2 +- 13 files changed, 703 insertions(+), 46 deletions(-) create mode 100644 FIAS.Core/Stores/SubjectStore.cs create mode 100644 FIASUpdate/Forms/FormSubjectList.Designer.cs create mode 100644 FIASUpdate/Forms/FormSubjectList.cs create mode 100644 FIASUpdate/Forms/FormSubjectList.resx diff --git a/FIAS.Core/Stores/SubjectStore.cs b/FIAS.Core/Stores/SubjectStore.cs new file mode 100644 index 0000000..3770fbb --- /dev/null +++ b/FIAS.Core/Stores/SubjectStore.cs @@ -0,0 +1,110 @@ +using System.Collections.Generic; + +namespace FIAS.Core.Stores +{ + public class SubjectStore + { + /// + /// Справочник субъектов РФ + /// + /// + /// console.log(A.addresses.sort((s1,s2)=>{return s1.region_code-s2.region_code}).map(R=>`"{${parseInt(R.region_code)}","${R.full_name}"}`).join(`,\r\n`)) + /// + /// + public static Dictionary GetSubjects() + { + return new Dictionary() { + {"01", "Республика Адыгея (Адыгея)"}, + {"02", "Республика Башкортостан"}, + {"03", "Республика Бурятия"}, + {"04", "Республика Алтай"}, + {"05", "Республика Дагестан"}, + {"06", "Республика Ингушетия"}, + {"07", "Кабардино-Балкарская Республика"}, + {"08", "Республика Калмыкия"}, + {"09", "Карачаево-Черкесская Республика"}, + {"10", "Республика Карелия"}, + {"11", "Республика Коми"}, + {"12", "Республика Марий Эл"}, + {"13", "Республика Мордовия"}, + {"14", "Республика Саха (Якутия)"}, + {"15", "Республика Северная Осетия - Алания"}, + {"16", "Республика Татарстан (Татарстан)"}, + {"17", "Республика Тыва"}, + {"18", "Удмуртская Республика"}, + {"19", "Республика Хакасия"}, + {"20", "Чеченская Республика"}, + {"21", "Чувашская Республика - Чувашия"}, + {"22", "Алтайский край"}, + {"23", "Краснодарский край"}, + {"24", "Красноярский край"}, + {"25", "Приморский край"}, + {"26", "Ставропольский край"}, + {"27", "Хабаровский край"}, + {"28", "Амурская область"}, + {"29", "Архангельская область"}, + {"30", "Астраханская область"}, + {"31", "Белгородская область"}, + {"32", "Брянская область"}, + {"33", "Владимирская область"}, + {"34", "Волгоградская область"}, + {"35", "Вологодская область"}, + {"36", "Воронежская область"}, + {"37", "Ивановская область"}, + {"38", "Иркутская область"}, + {"39", "Калининградская область"}, + {"40", "Калужская область"}, + {"41", "Камчатский край"}, + {"42", "Кемеровская область - Кузбасс"}, + {"43", "Кировская область"}, + {"44", "Костромская область"}, + {"45", "Курганская область"}, + {"46", "Курская область"}, + {"47", "Ленинградская область"}, + {"48", "Липецкая область"}, + {"49", "Магаданская область"}, + {"50", "Московская область"}, + {"51", "Мурманская область"}, + {"52", "Нижегородская область"}, + {"53", "Новгородская область"}, + {"54", "Новосибирская область"}, + {"55", "Омская область"}, + {"56", "Оренбургская область"}, + {"57", "Орловская область"}, + {"58", "Пензенская область"}, + {"59", "Пермский край"}, + {"60", "Псковская область"}, + {"61", "Ростовская область"}, + {"62", "Рязанская область"}, + {"63", "Самарская область"}, + {"64", "Саратовская область"}, + {"65", "Сахалинская область"}, + {"66", "Свердловская область"}, + {"67", "Смоленская область"}, + {"68", "Тамбовская область"}, + {"69", "Тверская область"}, + {"70", "Томская область"}, + {"71", "Тульская область"}, + {"72", "Тюменская область"}, + {"73", "Ульяновская область"}, + {"74", "Челябинская область"}, + {"75", "Забайкальский край"}, + {"76", "Ярославская область"}, + {"77", "город Москва"}, + {"78", "город Санкт-Петербург"}, + {"79", "Еврейская автономная область"}, + {"83", "Ненецкий автономный округ"}, + {"86", "Ханты-Мансийский автономный округ - Югра"}, + {"87", "Чукотский автономный округ"}, + {"89", "Ямало-Ненецкий автономный округ"}, + {"90", "Запорожская область"}, + {"91", "Республика Крым"}, + {"92", "город Севастополь"}, + {"93", "Донецкая Народная Республика"}, + {"94", "Луганская Народная Республика"}, + {"95", "Херсонская область"}, + {"99", "город Байконур"} + }; + } + } +} \ No newline at end of file diff --git a/FIASUpdate/Extensions/DataExtensions.cs b/FIASUpdate/Extensions/DataExtensions.cs index 8705dd5..140e732 100644 --- a/FIASUpdate/Extensions/DataExtensions.cs +++ b/FIASUpdate/Extensions/DataExtensions.cs @@ -1,7 +1,4 @@ using Microsoft.SqlServer.Management.Smo; -using System.Collections.Generic; -using System.Data; -using System.Linq; namespace FIASUpdate { diff --git a/FIASUpdate/FIASUpdate.csproj b/FIASUpdate/FIASUpdate.csproj index bfd69c5..473d26a 100644 --- a/FIASUpdate/FIASUpdate.csproj +++ b/FIASUpdate/FIASUpdate.csproj @@ -401,6 +401,12 @@ FormOperation.cs + + Form + + + FormSubjectList.cs + Form @@ -489,6 +495,9 @@ FormOperation.cs + + FormSubjectList.cs + FormSettings.cs diff --git a/FIASUpdate/Forms/FormDBList.cs b/FIASUpdate/Forms/FormDBList.cs index 0b5d60e..05dbc44 100644 --- a/FIASUpdate/Forms/FormDBList.cs +++ b/FIASUpdate/Forms/FormDBList.cs @@ -1,4 +1,4 @@ -using FIASUpdate.Models; +using FIASUpdate.Controls; using FIASUpdate.Properties; using JANL.Extensions; using Microsoft.Data.ConnectionUI; diff --git a/FIASUpdate/Forms/FormSettings.Designer.cs b/FIASUpdate/Forms/FormSettings.Designer.cs index f6fbbb5..dc3a345 100644 --- a/FIASUpdate/Forms/FormSettings.Designer.cs +++ b/FIASUpdate/Forms/FormSettings.Designer.cs @@ -28,8 +28,7 @@ protected override void Dispose(bool disposing) /// private void InitializeComponent() { - System.Windows.Forms.ListViewItem listViewItem1 = new System.Windows.Forms.ListViewItem(""); - this.Info = new FIASUpdate.Controls.UC_DatabaseInfo(); + System.Windows.Forms.ListViewItem listViewItem3 = new System.Windows.Forms.ListViewItem(""); this.textBox1 = new System.Windows.Forms.TextBox(); this.B_SQLConnection = new System.Windows.Forms.Button(); this.textBox2 = new System.Windows.Forms.TextBox(); @@ -46,22 +45,22 @@ private void InitializeComponent() this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.LV_Tables = new System.Windows.Forms.ListView(); this.groupBox3 = new System.Windows.Forms.GroupBox(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.groupBox2 = new System.Windows.Forms.GroupBox(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.label3 = new System.Windows.Forms.Label(); + this.TB_Version = new System.Windows.Forms.TextBox(); + this.label4 = new System.Windows.Forms.Label(); + this.TB_Subject = new System.Windows.Forms.TextBox(); + this.B_Subjects = new System.Windows.Forms.Button(); this.tableLayoutPanel2.SuspendLayout(); this.tableLayoutPanel3.SuspendLayout(); this.groupBox3.SuspendLayout(); + this.groupBox1.SuspendLayout(); + this.groupBox2.SuspendLayout(); + this.tableLayoutPanel1.SuspendLayout(); this.SuspendLayout(); // - // Info - // - this.Info.AutoSize = true; - this.Info.Dock = System.Windows.Forms.DockStyle.Bottom; - this.Info.Location = new System.Drawing.Point(0, 475); - this.Info.Name = "Info"; - this.Info.Size = new System.Drawing.Size(544, 56); - this.Info.Subjects = null; - this.Info.TabIndex = 10; - this.Info.Version = new System.DateTime(((long)(0))); - // // textBox1 // this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); @@ -69,7 +68,7 @@ private void InitializeComponent() this.textBox1.Location = new System.Drawing.Point(82, 4); this.textBox1.Name = "textBox1"; this.textBox1.ReadOnly = true; - this.textBox1.Size = new System.Drawing.Size(372, 22); + this.textBox1.Size = new System.Drawing.Size(360, 22); this.textBox1.TabIndex = 1; this.textBox1.Text = global::FIASUpdate.Properties.Settings.Default.SQLConnection; // @@ -79,7 +78,7 @@ private void InitializeComponent() this.B_SQLConnection.AutoSize = true; this.B_SQLConnection.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; this.B_SQLConnection.Image = global::FIASUpdate.icons8.PencilDrawing16; - this.B_SQLConnection.Location = new System.Drawing.Point(460, 3); + this.B_SQLConnection.Location = new System.Drawing.Point(448, 3); this.B_SQLConnection.Name = "B_SQLConnection"; this.B_SQLConnection.Padding = new System.Windows.Forms.Padding(1); this.B_SQLConnection.Size = new System.Drawing.Size(81, 25); @@ -96,7 +95,7 @@ private void InitializeComponent() this.textBox2.Location = new System.Drawing.Point(82, 35); this.textBox2.Name = "textBox2"; this.textBox2.ReadOnly = true; - this.textBox2.Size = new System.Drawing.Size(372, 22); + this.textBox2.Size = new System.Drawing.Size(360, 22); this.textBox2.TabIndex = 1; this.textBox2.Text = global::FIASUpdate.Properties.Settings.Default.XMLPath; // @@ -134,13 +133,13 @@ private void InitializeComponent() this.tableLayoutPanel2.Controls.Add(this.label1, 0, 0); this.tableLayoutPanel2.Controls.Add(this.label2, 0, 1); this.tableLayoutPanel2.Controls.Add(this.B_XMLPath, 2, 1); - this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Top; - this.tableLayoutPanel2.Location = new System.Drawing.Point(0, 0); + this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel2.Location = new System.Drawing.Point(3, 18); this.tableLayoutPanel2.Name = "tableLayoutPanel2"; this.tableLayoutPanel2.RowCount = 2; this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle()); this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle()); - this.tableLayoutPanel2.Size = new System.Drawing.Size(544, 62); + this.tableLayoutPanel2.Size = new System.Drawing.Size(532, 62); this.tableLayoutPanel2.TabIndex = 9; // // B_XMLPath @@ -149,7 +148,7 @@ private void InitializeComponent() this.B_XMLPath.AutoSize = true; this.B_XMLPath.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; this.B_XMLPath.Image = global::FIASUpdate.icons8.OpenedFolder16; - this.B_XMLPath.Location = new System.Drawing.Point(460, 34); + this.B_XMLPath.Location = new System.Drawing.Point(448, 34); this.B_XMLPath.Name = "B_XMLPath"; this.B_XMLPath.Padding = new System.Windows.Forms.Padding(1); this.B_XMLPath.Size = new System.Drawing.Size(81, 25); @@ -161,10 +160,11 @@ private void InitializeComponent() // // B_Save // + this.B_Save.Anchor = System.Windows.Forms.AnchorStyles.Right; this.B_Save.AutoSize = true; this.B_Save.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; this.B_Save.Image = global::FIASUpdate.icons8.Save16; - this.B_Save.Location = new System.Drawing.Point(449, 3); + this.B_Save.Location = new System.Drawing.Point(437, 3); this.B_Save.Name = "B_Save"; this.B_Save.Padding = new System.Windows.Forms.Padding(1); this.B_Save.Size = new System.Drawing.Size(92, 25); @@ -194,17 +194,16 @@ private void InitializeComponent() // this.tableLayoutPanel3.AutoSize = true; this.tableLayoutPanel3.ColumnCount = 2; - this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); this.tableLayoutPanel3.Controls.Add(this.B_Save, 1, 0); this.tableLayoutPanel3.Controls.Add(this.B_Refresh, 0, 0); this.tableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Bottom; - this.tableLayoutPanel3.Location = new System.Drawing.Point(0, 531); + this.tableLayoutPanel3.Location = new System.Drawing.Point(3, 456); this.tableLayoutPanel3.Name = "tableLayoutPanel3"; this.tableLayoutPanel3.RowCount = 1; this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle()); - this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 31F)); - this.tableLayoutPanel3.Size = new System.Drawing.Size(544, 31); + this.tableLayoutPanel3.Size = new System.Drawing.Size(532, 31); this.tableLayoutPanel3.TabIndex = 8; // // columnHeader4 @@ -238,13 +237,13 @@ private void InitializeComponent() this.LV_Tables.FullRowSelect = true; this.LV_Tables.GridLines = true; this.LV_Tables.HideSelection = false; - listViewItem1.StateImageIndex = 0; + listViewItem3.StateImageIndex = 0; this.LV_Tables.Items.AddRange(new System.Windows.Forms.ListViewItem[] { - listViewItem1}); + listViewItem3}); this.LV_Tables.Location = new System.Drawing.Point(3, 18); this.LV_Tables.MultiSelect = false; this.LV_Tables.Name = "LV_Tables"; - this.LV_Tables.Size = new System.Drawing.Size(538, 392); + this.LV_Tables.Size = new System.Drawing.Size(526, 358); this.LV_Tables.TabIndex = 0; this.LV_Tables.UseCompatibleStateImageBehavior = false; this.LV_Tables.View = System.Windows.Forms.View.Details; @@ -253,23 +252,127 @@ private void InitializeComponent() // this.groupBox3.Controls.Add(this.LV_Tables); this.groupBox3.Dock = System.Windows.Forms.DockStyle.Fill; - this.groupBox3.Location = new System.Drawing.Point(0, 62); + this.groupBox3.Location = new System.Drawing.Point(3, 77); this.groupBox3.Name = "groupBox3"; - this.groupBox3.Size = new System.Drawing.Size(544, 413); + this.groupBox3.Size = new System.Drawing.Size(532, 379); this.groupBox3.TabIndex = 7; this.groupBox3.TabStop = false; this.groupBox3.Text = "Таблицы для импорта"; // + // groupBox1 + // + this.groupBox1.AutoSize = true; + this.groupBox1.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.groupBox1.Controls.Add(this.tableLayoutPanel2); + this.groupBox1.Dock = System.Windows.Forms.DockStyle.Top; + this.groupBox1.Location = new System.Drawing.Point(3, 3); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(538, 83); + this.groupBox1.TabIndex = 11; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Настройки приложения"; + // + // groupBox2 + // + this.groupBox2.Controls.Add(this.groupBox3); + this.groupBox2.Controls.Add(this.tableLayoutPanel1); + this.groupBox2.Controls.Add(this.tableLayoutPanel3); + this.groupBox2.Dock = System.Windows.Forms.DockStyle.Fill; + this.groupBox2.Location = new System.Drawing.Point(3, 86); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Size = new System.Drawing.Size(538, 490); + this.groupBox2.TabIndex = 12; + this.groupBox2.TabStop = false; + this.groupBox2.Text = "Настройки БД"; + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.AutoSize = true; + this.tableLayoutPanel1.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.tableLayoutPanel1.ColumnCount = 3; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanel1.Controls.Add(this.label3, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.TB_Version, 1, 0); + this.tableLayoutPanel1.Controls.Add(this.label4, 0, 1); + this.tableLayoutPanel1.Controls.Add(this.TB_Subject, 1, 1); + this.tableLayoutPanel1.Controls.Add(this.B_Subjects, 2, 0); + this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Top; + this.tableLayoutPanel1.Location = new System.Drawing.Point(3, 18); + this.tableLayoutPanel1.MinimumSize = new System.Drawing.Size(150, 0); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 2; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel1.Size = new System.Drawing.Size(532, 59); + this.tableLayoutPanel1.TabIndex = 20; + // + // label3 + // + this.label3.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(16, 9); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(45, 13); + this.label3.TabIndex = 0; + this.label3.Text = "Версия"; + // + // TB_Version + // + this.TB_Version.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.TB_Version.Location = new System.Drawing.Point(67, 4); + this.TB_Version.Name = "TB_Version"; + this.TB_Version.ReadOnly = true; + this.TB_Version.Size = new System.Drawing.Size(100, 22); + this.TB_Version.TabIndex = 1; + this.TB_Version.TabStop = false; + // + // label4 + // + this.label4.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(3, 38); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(58, 13); + this.label4.TabIndex = 0; + this.label4.Text = "Субъекты"; + // + // TB_Subject + // + this.TB_Subject.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.tableLayoutPanel1.SetColumnSpan(this.TB_Subject, 2); + this.TB_Subject.Location = new System.Drawing.Point(67, 34); + this.TB_Subject.Name = "TB_Subject"; + this.TB_Subject.ReadOnly = true; + this.TB_Subject.Size = new System.Drawing.Size(462, 22); + this.TB_Subject.TabIndex = 1; + this.TB_Subject.TabStop = false; + // + // B_Subjects + // + this.B_Subjects.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.B_Subjects.AutoSize = true; + this.B_Subjects.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.B_Subjects.Image = global::FIASUpdate.icons8.PencilDrawing16; + this.B_Subjects.Location = new System.Drawing.Point(443, 3); + this.B_Subjects.Name = "B_Subjects"; + this.B_Subjects.Padding = new System.Windows.Forms.Padding(1); + this.B_Subjects.Size = new System.Drawing.Size(86, 25); + this.B_Subjects.TabIndex = 21; + this.B_Subjects.Text = "Субъекты"; + this.B_Subjects.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; + this.B_Subjects.UseVisualStyleBackColor = true; + this.B_Subjects.Click += new System.EventHandler(this.B_Subjects_Click); + // // FormSettings // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.BackColor = global::FIASUpdate.Properties.Settings.Default.DefaultBackColor; - this.ClientSize = new System.Drawing.Size(544, 562); - this.Controls.Add(this.groupBox3); - this.Controls.Add(this.Info); - this.Controls.Add(this.tableLayoutPanel2); - this.Controls.Add(this.tableLayoutPanel3); + this.ClientSize = new System.Drawing.Size(544, 579); + this.Controls.Add(this.groupBox2); + this.Controls.Add(this.groupBox1); this.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::FIASUpdate.Properties.Settings.Default, "DefaultFont", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); this.DataBindings.Add(new System.Windows.Forms.Binding("ForeColor", global::FIASUpdate.Properties.Settings.Default, "DefaultForeColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); this.DataBindings.Add(new System.Windows.Forms.Binding("BackColor", global::FIASUpdate.Properties.Settings.Default, "DefaultBackColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); @@ -279,6 +382,7 @@ private void InitializeComponent() this.MinimizeBox = false; this.MinimumSize = new System.Drawing.Size(560, 600); this.Name = "FormSettings"; + this.Padding = new System.Windows.Forms.Padding(3); this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; this.Text = "Настройки"; this.Load += new System.EventHandler(this.FormSettings_Load); @@ -287,14 +391,18 @@ private void InitializeComponent() this.tableLayoutPanel3.ResumeLayout(false); this.tableLayoutPanel3.PerformLayout(); this.groupBox3.ResumeLayout(false); + this.groupBox1.ResumeLayout(false); + this.groupBox1.PerformLayout(); + this.groupBox2.ResumeLayout(false); + this.groupBox2.PerformLayout(); + this.tableLayoutPanel1.ResumeLayout(false); + this.tableLayoutPanel1.PerformLayout(); this.ResumeLayout(false); this.PerformLayout(); } #endregion - - private Controls.UC_DatabaseInfo Info; private System.Windows.Forms.TextBox textBox1; private System.Windows.Forms.Button B_SQLConnection; private System.Windows.Forms.TextBox textBox2; @@ -311,5 +419,13 @@ private void InitializeComponent() private System.Windows.Forms.ColumnHeader columnHeader1; private System.Windows.Forms.ListView LV_Tables; private System.Windows.Forms.GroupBox groupBox3; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.GroupBox groupBox2; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.TextBox TB_Version; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.TextBox TB_Subject; + private System.Windows.Forms.Button B_Subjects; } } \ No newline at end of file diff --git a/FIASUpdate/Forms/FormSettings.cs b/FIASUpdate/Forms/FormSettings.cs index 5ab0e7f..0529f9b 100644 --- a/FIASUpdate/Forms/FormSettings.cs +++ b/FIASUpdate/Forms/FormSettings.cs @@ -27,8 +27,11 @@ private void RefreshData() LV_Tables.Items.AddRange(Tables.Select(T => new TableLVI(T)).ToArray()); LV_Tables.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent); LV_Tables.EndUpdate(); - Info.Version = Store.GetVersion(); - Info.Subjects = Store.GetSubjects(); + + var version = Store.GetVersion(); + var subjects = Store.GetSubjects(); + TB_Subject.Text = subjects is null ? "" : string.Join(" ", subjects); + TB_Version.Text = version is null ? "" : $"{version:yyyy.MM.dd}"; } private void SaveData() @@ -81,6 +84,14 @@ private void FormSettings_Load(object sender, EventArgs e) LV_Tables.Items.Clear(); } + private void B_Subjects_Click(object sender, EventArgs e) + { + using (var F = new FormSubjectList()) + { + F.ShowDialog(this); + } + } + #endregion UIEvents } } \ No newline at end of file diff --git a/FIASUpdate/Forms/FormSubjectList.Designer.cs b/FIASUpdate/Forms/FormSubjectList.Designer.cs new file mode 100644 index 0000000..42decca --- /dev/null +++ b/FIASUpdate/Forms/FormSubjectList.Designer.cs @@ -0,0 +1,203 @@ +namespace FIASUpdate.Forms +{ + partial class FormSubjectList + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.LV_Subjects = new System.Windows.Forms.ListView(); + this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel(); + this.B_Save = new System.Windows.Forms.Button(); + this.B_Refresh = new System.Windows.Forms.Button(); + this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel(); + this.B_SelectAll = new System.Windows.Forms.Button(); + this.B_DeselectAll = new System.Windows.Forms.Button(); + this.tableLayoutPanel3.SuspendLayout(); + this.flowLayoutPanel1.SuspendLayout(); + this.SuspendLayout(); + // + // LV_Subjects + // + this.LV_Subjects.CheckBoxes = true; + this.LV_Subjects.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.columnHeader1, + this.columnHeader2}); + this.LV_Subjects.Dock = System.Windows.Forms.DockStyle.Fill; + this.LV_Subjects.FullRowSelect = true; + this.LV_Subjects.GridLines = true; + this.LV_Subjects.HideSelection = false; + this.LV_Subjects.Location = new System.Drawing.Point(5, 36); + this.LV_Subjects.Name = "LV_Subjects"; + this.LV_Subjects.Size = new System.Drawing.Size(341, 390); + this.LV_Subjects.TabIndex = 0; + this.LV_Subjects.UseCompatibleStateImageBehavior = false; + this.LV_Subjects.View = System.Windows.Forms.View.Details; + // + // columnHeader1 + // + this.columnHeader1.Text = "Код"; + // + // columnHeader2 + // + this.columnHeader2.Text = "Наименование"; + this.columnHeader2.Width = 119; + // + // tableLayoutPanel3 + // + this.tableLayoutPanel3.AutoSize = true; + this.tableLayoutPanel3.ColumnCount = 2; + this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel3.Controls.Add(this.B_Save, 1, 0); + this.tableLayoutPanel3.Controls.Add(this.B_Refresh, 0, 0); + this.tableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Bottom; + this.tableLayoutPanel3.Location = new System.Drawing.Point(5, 426); + this.tableLayoutPanel3.Name = "tableLayoutPanel3"; + this.tableLayoutPanel3.RowCount = 1; + this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel3.Size = new System.Drawing.Size(341, 31); + this.tableLayoutPanel3.TabIndex = 9; + // + // B_Save + // + this.B_Save.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.B_Save.AutoSize = true; + this.B_Save.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.B_Save.Image = global::FIASUpdate.icons8.Save16; + this.B_Save.Location = new System.Drawing.Point(246, 3); + this.B_Save.Name = "B_Save"; + this.B_Save.Padding = new System.Windows.Forms.Padding(1); + this.B_Save.Size = new System.Drawing.Size(92, 25); + this.B_Save.TabIndex = 2; + this.B_Save.Text = "Сохранить"; + this.B_Save.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; + this.B_Save.UseVisualStyleBackColor = true; + this.B_Save.Click += new System.EventHandler(this.B_Save_Click); + // + // B_Refresh + // + this.B_Refresh.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.B_Refresh.AutoSize = true; + this.B_Refresh.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.B_Refresh.Image = global::FIASUpdate.icons8.Replace16; + this.B_Refresh.Location = new System.Drawing.Point(3, 3); + this.B_Refresh.Name = "B_Refresh"; + this.B_Refresh.Padding = new System.Windows.Forms.Padding(1); + this.B_Refresh.Size = new System.Drawing.Size(89, 25); + this.B_Refresh.TabIndex = 2; + this.B_Refresh.Text = "Обновить"; + this.B_Refresh.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; + this.B_Refresh.UseVisualStyleBackColor = true; + this.B_Refresh.Click += new System.EventHandler(this.B_Refresh_Click); + // + // flowLayoutPanel1 + // + this.flowLayoutPanel1.AutoSize = true; + this.flowLayoutPanel1.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.flowLayoutPanel1.Controls.Add(this.B_SelectAll); + this.flowLayoutPanel1.Controls.Add(this.B_DeselectAll); + this.flowLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Top; + this.flowLayoutPanel1.Location = new System.Drawing.Point(5, 5); + this.flowLayoutPanel1.Name = "flowLayoutPanel1"; + this.flowLayoutPanel1.Size = new System.Drawing.Size(341, 31); + this.flowLayoutPanel1.TabIndex = 10; + // + // B_SelectAll + // + this.B_SelectAll.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.B_SelectAll.AutoSize = true; + this.B_SelectAll.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.B_SelectAll.Location = new System.Drawing.Point(3, 3); + this.B_SelectAll.MinimumSize = new System.Drawing.Size(100, 0); + this.B_SelectAll.Name = "B_SelectAll"; + this.B_SelectAll.Padding = new System.Windows.Forms.Padding(1); + this.B_SelectAll.Size = new System.Drawing.Size(100, 25); + this.B_SelectAll.TabIndex = 11; + this.B_SelectAll.Text = "Выбрать все"; + this.B_SelectAll.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; + this.B_SelectAll.UseVisualStyleBackColor = true; + this.B_SelectAll.Click += new System.EventHandler(this.B_SelectAll_Click); + // + // B_DeselectAll + // + this.B_DeselectAll.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.B_DeselectAll.AutoSize = true; + this.B_DeselectAll.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.B_DeselectAll.Location = new System.Drawing.Point(109, 3); + this.B_DeselectAll.MinimumSize = new System.Drawing.Size(100, 0); + this.B_DeselectAll.Name = "B_DeselectAll"; + this.B_DeselectAll.Padding = new System.Windows.Forms.Padding(1); + this.B_DeselectAll.Size = new System.Drawing.Size(100, 25); + this.B_DeselectAll.TabIndex = 11; + this.B_DeselectAll.Text = "Убрать все"; + this.B_DeselectAll.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; + this.B_DeselectAll.UseVisualStyleBackColor = true; + this.B_DeselectAll.Click += new System.EventHandler(this.B_DeselectAll_Click); + // + // FormSubjectList + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = global::FIASUpdate.Properties.Settings.Default.DefaultBackColor; + this.ClientSize = new System.Drawing.Size(351, 462); + this.Controls.Add(this.LV_Subjects); + this.Controls.Add(this.flowLayoutPanel1); + this.Controls.Add(this.tableLayoutPanel3); + this.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::FIASUpdate.Properties.Settings.Default, "DefaultFont", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.DataBindings.Add(new System.Windows.Forms.Binding("ForeColor", global::FIASUpdate.Properties.Settings.Default, "DefaultForeColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.DataBindings.Add(new System.Windows.Forms.Binding("BackColor", global::FIASUpdate.Properties.Settings.Default, "DefaultBackColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.Font = global::FIASUpdate.Properties.Settings.Default.DefaultFont; + this.ForeColor = global::FIASUpdate.Properties.Settings.Default.DefaultForeColor; + this.MinimumSize = new System.Drawing.Size(350, 500); + this.Name = "FormSubjectList"; + this.Padding = new System.Windows.Forms.Padding(5); + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Список субъектоа БД"; + this.Load += new System.EventHandler(this.FormSubjectList_Load); + this.tableLayoutPanel3.ResumeLayout(false); + this.tableLayoutPanel3.PerformLayout(); + this.flowLayoutPanel1.ResumeLayout(false); + this.flowLayoutPanel1.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.ListView LV_Subjects; + private System.Windows.Forms.ColumnHeader columnHeader1; + private System.Windows.Forms.ColumnHeader columnHeader2; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3; + private System.Windows.Forms.Button B_Save; + private System.Windows.Forms.Button B_Refresh; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1; + private System.Windows.Forms.Button B_SelectAll; + private System.Windows.Forms.Button B_DeselectAll; + } +} \ No newline at end of file diff --git a/FIASUpdate/Forms/FormSubjectList.cs b/FIASUpdate/Forms/FormSubjectList.cs new file mode 100644 index 0000000..8a866cb --- /dev/null +++ b/FIASUpdate/Forms/FormSubjectList.cs @@ -0,0 +1,85 @@ +using FIAS.Core.Stores; +using System; +using System.Data; +using System.Linq; +using System.Windows.Forms; + +namespace FIASUpdate.Forms +{ + public partial class FormSubjectList : Form + { + private readonly FIASDatabaseStore Store = new FIASDatabaseStore(FIASProperties.SQLConnection); + + public FormSubjectList() + { + InitializeComponent(); + } + + private void CheckItems(bool state) + { + LV_Subjects.BeginUpdate(); + foreach (SubjectLVI item in LV_Subjects.Items) + { + item.Checked = state; + } + LV_Subjects.EndUpdate(); + } + + private void LoadData() + { + var subjects = Store.GetSubjects(); + var items = SubjectStore.GetSubjects() + .Select(KV => new SubjectLVI(KV.Key, KV.Value) { Checked = subjects.Contains(KV.Key) }) + .OrderByDescending(I => I.Checked) + .ThenBy(I => I.SubjectCode) + .ToArray(); + + LV_Subjects.BeginUpdate(); + LV_Subjects.Items.Clear(); + LV_Subjects.Items.AddRange(items); + LV_Subjects.AutoResizeColumn(0, ColumnHeaderAutoResizeStyle.HeaderSize); + LV_Subjects.AutoResizeColumn(1, ColumnHeaderAutoResizeStyle.ColumnContent); + LV_Subjects.EndUpdate(); + } + + private void SaveData() + { + var subjects = LV_Subjects.CheckedItems + .Cast() + .Select(I => I.SubjectCode) + .OrderBy(I => I) + .ToList(); + Store.SetSubjects(subjects); + LoadData(); + } + + #region UI Events + + private void B_DeselectAll_Click(object sender, EventArgs e) => CheckItems(false); + + private void B_Refresh_Click(object sender, EventArgs e) => LoadData(); + + private void B_Save_Click(object sender, EventArgs e) => SaveData(); + + private void B_SelectAll_Click(object sender, EventArgs e) => CheckItems(true); + + private void FormSubjectList_Load(object sender, EventArgs e) + { + Icon = Owner.Icon; + LoadData(); + } + + #endregion UI Events + + private class SubjectLVI : ListViewItem + { + public SubjectLVI(string code, string name) : base(code) + { + SubItems.Add(name); + } + + public string SubjectCode => Text; + public string SubjectName => SubItems[1].Text; + } + } +} \ No newline at end of file diff --git a/FIASUpdate/Forms/FormSubjectList.resx b/FIASUpdate/Forms/FormSubjectList.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/FIASUpdate/Forms/FormSubjectList.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/FIASUpdate/Program.cs b/FIASUpdate/Program.cs index 0ad4725..b5d92a3 100644 --- a/FIASUpdate/Program.cs +++ b/FIASUpdate/Program.cs @@ -1,4 +1,5 @@ -using FIASUpdate.Properties; +using FIAS.Core.Extensions; +using FIASUpdate.Properties; using JANL; using System; using System.ComponentModel; @@ -30,6 +31,7 @@ private static void Main() Settings.PropertyChanged += Default_PropertyChanged; Settings.Reload(); Defaults.Connection = Settings.SQLConnection; + SQLExtensions.DefaultConnection = Settings.SQLConnection; Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); diff --git a/FIAS_GAR/Security/adm.sql b/FIAS_GAR/Security/adm.sql index 2e98752..c0b7da5 100644 --- a/FIAS_GAR/Security/adm.sql +++ b/FIAS_GAR/Security/adm.sql @@ -18,6 +18,8 @@ + + GO GRANT SELECT ON SCHEMA::[adm] TO PUBLIC; diff --git a/FIAS_GAR/Security/mun.sql b/FIAS_GAR/Security/mun.sql index 5581f93..b6bff4c 100644 --- a/FIAS_GAR/Security/mun.sql +++ b/FIAS_GAR/Security/mun.sql @@ -16,6 +16,8 @@ + + GO GRANT SELECT ON SCHEMA::[mun] TO PUBLIC; diff --git a/LICENSE b/LICENSE index 4e90f61..6a84c0b 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2025 Artyom Rybakov +Copyright (c) 2026 Artyom Rybakov Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal From bcb28b8b44e753c428029970d618d027fed920ca Mon Sep 17 00:00:00 2001 From: Virenbar Date: Wed, 11 Mar 2026 17:11:47 +0500 Subject: [PATCH 2/6] chore: sql --- FIAS.Core/Extensions/SQLExtensions.cs | 80 +------ FIAS.Core/Models/DownloadState.cs | 5 - FIAS.Core/Stores/FIASDatabaseStore.cs | 41 ++-- FIAS.Core/Stores/FIASStore.cs | 29 ++- FIAS.Core/Stores/SQLCommandExecutor.cs | 289 +++++++++++++++++++++++++ FIAS.Core/Stores/SQLStore.cs | 15 ++ 6 files changed, 346 insertions(+), 113 deletions(-) create mode 100644 FIAS.Core/Stores/SQLCommandExecutor.cs diff --git a/FIAS.Core/Extensions/SQLExtensions.cs b/FIAS.Core/Extensions/SQLExtensions.cs index 591da9f..bd9a370 100644 --- a/FIAS.Core/Extensions/SQLExtensions.cs +++ b/FIAS.Core/Extensions/SQLExtensions.cs @@ -1,9 +1,5 @@ -using System.Data; -using System.Data.SqlClient; -using System.Globalization; +using System.Data.SqlClient; using System.Linq; -using System.Threading; -using System.Threading.Tasks; namespace FIAS.Core.Extensions { @@ -16,78 +12,18 @@ public static SqlParameter AddParameter(this SqlCommand command, string paramete return command.Parameters.AddWithValue(parameter, value); } - public static void ExecuteNonQuery(this SqlCommand command, string connection) - { - using (var Connection = new SqlConnection(connection)) - { - Connection.Open(); - command.Connection = Connection; - command.ExecuteNonQuery(); - } - } - - public static Task ExecuteNonQueryAsync(this SqlCommand command, string connection) => ExecuteNonQueryAsync(command, connection, default); - - public static async Task ExecuteNonQueryAsync(this SqlCommand command, string connection, CancellationToken token) - { - using (var Connection = new SqlConnection(connection)) - { - Connection.Open(); - command.Connection = Connection; - await command.ExecuteNonQueryAsync(token); - } - } - - public static object ExecuteScalar(this SqlCommand command, string connection) - { - using (var Connection = new SqlConnection(connection)) - { - Connection.Open(); - command.Connection = Connection; - return command.ExecuteScalar(); - } - } - - public static T ExecuteScalar(this SqlCommand command, string connection) - { - using (var Connection = new SqlConnection(connection)) - { - Connection.Open(); - command.Connection = Connection; - return (T)command.ExecuteScalar(); - } - } - - public static DataTable ExecuteSelect(this SqlCommand command) - { - return command.ExecuteSelect(DefaultConnection); - } - - public static DataTable ExecuteSelect(this SqlCommand command, string connection) - { - using (var Connection = new SqlConnection(connection)) - { - Connection.Open(); - return command.ExecuteSelect(Connection); - } - } - - public static DataTable ExecuteSelect(this SqlCommand command, SqlConnection connection) - { - var Result = new DataTable { Locale = CultureInfo.CurrentCulture }; - command.Connection = connection; - using (var Reader = command.ExecuteReader()) - { - Result.Load(Reader); - } - return Result; - } - public static SqlCommand SetSchema(this SqlCommand command, string schema) { var name = command.CommandText.Split('.').Last(); command.CommandText = $"{schema}.{name}"; return command; } + + //#region Executor + //public static SQLCommandExecutor Execute(this SqlCommand command) => new SQLCommandExecutor(command, DefaultConnection); + //public static SQLCommandExecutor Execute(this SqlCommand command, string connection) => new SQLCommandExecutor(command, connection); + //public static SQLCommandExecutor ExecuteAs(this SqlCommand command) => new SQLCommandExecutor(command, DefaultConnection); + //public static SQLCommandExecutor ExecuteAt(this SqlCommand command, string connection) => new SQLCommandExecutor(command, connection); + //#endregion Executor } } \ No newline at end of file diff --git a/FIAS.Core/Models/DownloadState.cs b/FIAS.Core/Models/DownloadState.cs index c79e688..25f3bb1 100644 --- a/FIAS.Core/Models/DownloadState.cs +++ b/FIAS.Core/Models/DownloadState.cs @@ -2,11 +2,6 @@ { public class DownloadState { - public DownloadState(float progress) - { - Progress = progress; - } - public DownloadState(long totalBytes, long downloadedBytes) { TotalBytes = totalBytes; diff --git a/FIAS.Core/Stores/FIASDatabaseStore.cs b/FIAS.Core/Stores/FIASDatabaseStore.cs index ca3bf2e..be4dc35 100644 --- a/FIAS.Core/Stores/FIASDatabaseStore.cs +++ b/FIAS.Core/Stores/FIASDatabaseStore.cs @@ -96,62 +96,61 @@ public List TablesInfo() private T UP_DatabasePropertyGet(string name) { - using (var Command = NewProcedure()) + using (var command = NewProcedure()) { - var P = Command.Parameters; + var P = command.Parameters; P.AddWithValue("@Name", name); - return Command.ExecuteScalar(Connection); + return Execute(command).Scalar(); } } private void UP_DatabasePropertySet(string name, object value) { - using (var Command = NewProcedure()) + using (var command = NewProcedure()) { - var P = Command.Parameters; + var P = command.Parameters; P.AddWithValue("@Name", name); P.AddWithValue("@Value", value); - Command.ExecuteNonQuery(Connection); + Execute(command).NonQuery(); } } private async Task UP_RefreshRegistry(FIASDivision division, CancellationToken token) { - using (var Command = NewProcedure()) + using (var command = NewProcedure()) { - Command.SetSchema($"{division}"); - Command.CommandTimeout = 0; - await Command.ExecuteNonQueryAsync(Connection, token); + command.SetSchema($"{division}"); + command.CommandTimeout = 0; + await Execute(command).NonQueryAsync(token); } } private object UP_TablePropertyGet(string table, string name) { - using (var Command = NewProcedure()) + using (var command = NewProcedure()) { - var P = Command.Parameters; + var P = command.Parameters; P.AddWithValue("@Table", table); P.AddWithValue("@Name", name); - return Command.ExecuteScalar(Connection); + return Execute(command).Scalar(); } } private void UP_TablePropertySet(string table, string name, object value) { - using (var Command = NewProcedure()) + using (var command = NewProcedure()) { - var P = Command.Parameters; - P.AddWithValue("@Table", table); - P.AddWithValue("@Name", name); - P.AddWithValue("@Value", value); - Command.ExecuteNonQuery(Connection); + command.AddParameter("@Table", table); + command.AddParameter("@Name", name); + command.AddParameter("@Value", value); + Execute(command).NonQuery(); } } private DataTable UP_TablesInfo() { - using (var Command = NewProcedure()) - return Command.ExecuteSelect(Connection); + using (var command = NewProcedure()) + return Execute(command).Select(); } #endregion SQL diff --git a/FIAS.Core/Stores/FIASStore.cs b/FIAS.Core/Stores/FIASStore.cs index ea18df3..658f245 100644 --- a/FIAS.Core/Stores/FIASStore.cs +++ b/FIAS.Core/Stores/FIASStore.cs @@ -2,7 +2,6 @@ using FIAS.Core.Models; using System.Collections.Generic; using System.Data; -using System.Data.SqlClient; using System.Linq; using System.Threading.Tasks; @@ -129,7 +128,7 @@ public async Task> Statistics() private DataTable UP_CB_Levels() { using (var command = NewProcedure()) - return command.ExecuteSelect(Connection); + return Execute(command).Select(); } private DataTable UP_FIAS_Statistics() @@ -137,36 +136,36 @@ private DataTable UP_FIAS_Statistics() using (var command = NewProcedure()) { command.CommandTimeout = 300; - return command.ExecuteSelect(Connection); + return Execute(command).Select(); } } - private DataTable UP_RegistryHierarchy(string GUID, FIASDivision H) + private long UP_IDByGUID(string GUID) { using (var command = NewProcedure()) { - command.SetSchema($"{H}"); command.AddParameter("@GUID", GUID); - return command.ExecuteSelect(Connection); + return Execute(command).Scalar(); } } - private long UP_IDByGUID(string GUID) + private DataTable UP_ObjectParameters(string GUID) { using (var command = NewProcedure()) { + command.CommandTimeout = 300; command.AddParameter("@GUID", GUID); - return command.ExecuteScalar(Connection); + return Execute(command).Select(); } } - private DataTable UP_ObjectParameters(string GUID) + private DataTable UP_RegistryHierarchy(string GUID, FIASDivision H) { using (var command = NewProcedure()) { - command.CommandTimeout = 300; + command.SetSchema($"{H}"); command.AddParameter("@GUID", GUID); - return command.ExecuteSelect(Connection); + return Execute(command).Select(); } } @@ -178,7 +177,7 @@ private DataTable UP_RegistrySelect(string GUID, FIASDivision H) { command.SetSchema($"{H}"); command.AddParameter("@GUID", GUID); - return command.ExecuteSelect(Connection); + return Execute(command).Select(); } } @@ -188,7 +187,7 @@ private DataTable UP_RegistrySelectChild(string GUID, FIASDivision H) { command.SetSchema($"{H}"); command.AddParameter("@GUID", GUID); - return command.ExecuteSelect(Connection); + return Execute(command).Select(); } } @@ -200,7 +199,7 @@ private DataTable UP_SearchRegistry(FIASDivision H, string Search, int? Level, i command.AddParameter("@Search", Search); command.AddParameter("@Level", Level); command.AddParameter("@Limit", Limit); - return command.ExecuteSelect(Connection); + return Execute(command).Select(); } } @@ -212,7 +211,7 @@ private DataTable UP_SearchRegistryByGUID(FIASDivision H, string GUID, int? Leve command.AddParameter("@GUID", GUID); command.AddParameter("@Level", Level); command.AddParameter("@Limit", Limit); - return command.ExecuteSelect(Connection); + return Execute(command).Select(); } } diff --git a/FIAS.Core/Stores/SQLCommandExecutor.cs b/FIAS.Core/Stores/SQLCommandExecutor.cs new file mode 100644 index 0000000..c6ce89e --- /dev/null +++ b/FIAS.Core/Stores/SQLCommandExecutor.cs @@ -0,0 +1,289 @@ +using System; +using System.Data; +using System.Data.SqlClient; +using System.Globalization; +using System.Threading; +using System.Threading.Tasks; + +namespace FIAS.Core +{ + public class SQLCommandExecutor + { + public SQLCommandExecutor(SqlCommand command, string connection) + { + Command = command; + Connection = connection; + } + + public SqlCommand Command { get; } + + public string Connection { get; set; } + + /// + /// https://dba.stackexchange.com/questions/9840/why-would-set-arithabort-on-dramatically-speed-up-a-query + /// https://dba.stackexchange.com/questions/2500/make-sqlclient-default-to-arithabort-on + /// + /// + private static void SetARITHABORT(SqlConnection connection) + { + SqlCommand ARITHABORT = new SqlCommand("SET ARITHABORT ON", connection); + ARITHABORT.ExecuteNonQuery(); + } + + #region NonQuery + + /// + /// Выполнить с соединением по умолчанию + /// + public void NonQuery() => NonQuery(Connection); + + /// + /// Выполнить с указанным соединением + /// + public void NonQuery(string connection) + { + using (var Connection = new SqlConnection(connection)) + { + Connection.Open(); + Command.Connection = Connection; + Command.ExecuteNonQuery(); + } + } + + /// + /// Выполнить асинхронно с соединением по умолчанию + /// + public async Task NonQueryAsync(CancellationToken token) => await NonQueryAsync(Connection, token); + + /// + /// Выполнить асинхронно с соединением по умолчанию + /// + public async Task NonQueryAsync() => await NonQueryAsync(Connection); + + /// + /// Выполнить асинхронно с указанным соединением + /// + public async Task NonQueryAsync(string connection, CancellationToken token) + { + using (var Connection = new SqlConnection(connection)) + { + Connection.Open(); + Command.Connection = Connection; + await Command.ExecuteNonQueryAsync(token); + } + } + + /// + /// Выполнить асинхронно с указанным соединением + /// + public async Task NonQueryAsync(string connection) + { + using (var Connection = new SqlConnection(connection)) + { + Connection.Open(); + Command.Connection = Connection; + await Command.ExecuteNonQueryAsync(); + } + } + + #endregion NonQuery + + #region Scalar + + public object Scalar() => Scalar(Connection); + + public object Scalar(string connection) + { + using (var Connection = new SqlConnection(connection)) + { + Connection.Open(); + Command.Connection = Connection; + return Command.ExecuteScalar(); + } + } + + public T Scalar() => Scalar(Connection); + + public T Scalar(string connection) + { + using (var Connection = new SqlConnection(connection)) + { + Connection.Open(); + Command.Connection = Connection; + return (T)Command.ExecuteScalar(); + } + } + + #endregion Scalar + + #region ScalarFunction + + public T ScalarFunction() => ScalarFunction(Connection); + + public T ScalarFunction(string connection) + { + var result = Command.Parameters.Add(new SqlParameter("@Result", default(T)) { Direction = ParameterDirection.ReturnValue }); + using (var Connection = new SqlConnection(connection)) + { + Connection.Open(); + Command.Connection = Connection; + Command.ExecuteNonQuery(); + if (result.Value == DBNull.Value) { return default; } + return (T)result.Value; + } + } + + #endregion ScalarFunction + + #region Select + + public DataTable Select() => Select(Connection); + + public DataTable Select(string connection) + { + using (var Connection = new SqlConnection(connection)) + { + Connection.Open(); + return Select(Connection); + } + } + + public Task SelectAsync() => SelectAsync(Connection); + + public async Task SelectAsync(string connection) + { + using (var Connection = new SqlConnection(connection)) + { + Connection.Open(); + return await SelectAsync(Connection); + } + } + + private DataTable Select(SqlConnection connection) + { + var Result = new DataTable { Locale = CultureInfo.CurrentCulture }; + Command.Connection = connection; + using (var Reader = Command.ExecuteReader()) + { + Result.Load(Reader); + } + return Result; + } + + private async Task SelectAsync(SqlConnection connection) + { + var Result = new DataTable { Locale = CultureInfo.CurrentCulture }; + Command.Connection = connection; + using (var Reader = await Command.ExecuteReaderAsync()) + { + await Task.Run(() => Result.Load(Reader)); + } + return Result; + } + + #endregion Select + + #region Select + + public T Select() where T : DataTable, new() => Select(Connection); + + public T Select(string connection) where T : DataTable, new() + { + using (var Connection = new SqlConnection(connection)) + { + Connection.Open(); + return Select(Connection); + } + } + + public Task SelectAsync() where T : DataTable, new() => SelectAsync(Connection); + + public async Task SelectAsync(string connection) where T : DataTable, new() + { + using (var Connection = new SqlConnection(connection)) + { + Connection.Open(); + return await SelectAsync(Connection); + } + } + + private T Select(SqlConnection connection) where T : DataTable, new() + { + var Result = new T { Locale = CultureInfo.CurrentCulture }; + Command.Connection = connection; + using (var Reader = Command.ExecuteReader()) + { + Result.Load(Reader); + } + return Result; + } + + private async Task SelectAsync(SqlConnection connection) where T : DataTable, new() + { + var Result = new T { Locale = CultureInfo.CurrentCulture }; + Command.Connection = connection; + using (var Reader = await Command.ExecuteReaderAsync()) + { + await Task.Run(() => Result.Load(Reader)); + } + return Result; + } + + #endregion Select + + #region SelectRow + + public TResult SelectRow(Func selector, SqlConnection connection) + { + using (var Result = Select(connection)) + { + var row = Result.Rows.Count > 0 ? Result.Rows[0] : null; + return selector(row); + } + } + + public DataRow SelectRow() => SelectRow(Connection); + + public DataRow SelectRow(string connection) + { + using (var Connection = new SqlConnection(connection)) + { + Connection.Open(); + return SelectRow(Connection); + } + } + + private DataRow SelectRow(SqlConnection connection) + { + //var Result = new DataTable { Locale = CultureInfo.CurrentCulture }; + //Command.Connection = connection; + //using (var Reader = Command.ExecuteReader()) + //{ + // Result.Load(Reader); + //} + var Result = Select(connection); + return Result.Rows.Count > 0 ? Result.Rows[0] : null; + } + + #endregion SelectRow + + #region Reader + + public SqlDataReader Reader() => Reader(Connection); + + public SqlDataReader Reader(string connection) + { + var Connection = new SqlConnection(connection); + Connection.Open(); + return Reader(Connection); + } + + private SqlDataReader Reader(SqlConnection connection) + { + Command.Connection = connection; + return Command.ExecuteReader(CommandBehavior.CloseConnection); + } + + #endregion Reader + } +} \ No newline at end of file diff --git a/FIAS.Core/Stores/SQLStore.cs b/FIAS.Core/Stores/SQLStore.cs index 7b5d4a3..4f99385 100644 --- a/FIAS.Core/Stores/SQLStore.cs +++ b/FIAS.Core/Stores/SQLStore.cs @@ -8,11 +8,26 @@ public abstract class SQLStore { protected SQLStore(string connection) => Connection = connection; + /// + /// Соединение по умолчанию + /// public string Connection { get; set; } + /// + /// Создаёт новую команду с именем вызывающего метода + /// + /// + /// protected static SqlCommand NewProcedure([CallerMemberName] string name = null) => new SqlCommand(name) { CommandType = CommandType.StoredProcedure }; + + /// + /// Создаёт новый экземпляр + /// + /// + /// + protected SQLCommandExecutor Execute(SqlCommand command) => new SQLCommandExecutor(command, Connection); } } \ No newline at end of file From c9e568cc0eaf3a08cb2ef7e7786009074a9df871 Mon Sep 17 00:00:00 2001 From: Virenbar Date: Wed, 11 Mar 2026 17:19:35 +0500 Subject: [PATCH 3/6] =?UTF-8?q?feat:=20=D0=BF=D0=B5=D1=80=D0=B5=D0=B4?= =?UTF-8?q?=D0=B5=D0=BB=D0=B0=D0=BD=20=D0=B8=D0=BC=D0=BF=D0=BE=D1=80=D1=82?= =?UTF-8?q?=20=D0=B0=D1=80=D1=85=D0=B8=D0=B2=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FIASUpdate/ArchiveDownloader.cs | 35 +-- .../{Models => Controls}/DBStringLVI.cs | 2 +- FIASUpdate/Controls/TextBoxFileDrop.cs | 57 ++++ FIASUpdate/Database/DBImport.cs | 82 +++++- FIASUpdate/Database/DBImportDelta.cs | 112 +++----- FIASUpdate/Database/DBImportFull.cs | 158 +++++------ FIASUpdate/FIASUpdate.csproj | 10 +- FIASUpdate/Forms/FormImportDelta.Designer.cs | 66 ++--- FIASUpdate/Forms/FormImportDelta.cs | 11 +- FIASUpdate/Forms/FormImportDelta.resx | 2 +- FIASUpdate/Forms/FormImportFull.Designer.cs | 247 ++++++++++++------ FIASUpdate/Forms/FormImportFull.cs | 112 ++++++-- FIASUpdate/Forms/FormImportFull.resx | 2 +- FIASUpdate/Models/FIASArchive.cs | 117 +++++++-- FIASUpdate/Models/FIASArchiveDelta.cs | 26 ++ FIASUpdate/Models/FIASArchiveFull.cs | 14 + FIASUpdate/Models/FIASArchiveLVI.cs | 8 +- FIASUpdate/Models/ImportOptions.cs | 26 -- FIASUpdate/SyncEvent.cs | 8 +- 19 files changed, 671 insertions(+), 424 deletions(-) rename FIASUpdate/{Models => Controls}/DBStringLVI.cs (94%) create mode 100644 FIASUpdate/Controls/TextBoxFileDrop.cs create mode 100644 FIASUpdate/Models/FIASArchiveDelta.cs create mode 100644 FIASUpdate/Models/FIASArchiveFull.cs delete mode 100644 FIASUpdate/Models/ImportOptions.cs diff --git a/FIASUpdate/ArchiveDownloader.cs b/FIASUpdate/ArchiveDownloader.cs index 952c12b..e33be15 100644 --- a/FIASUpdate/ArchiveDownloader.cs +++ b/FIASUpdate/ArchiveDownloader.cs @@ -29,32 +29,17 @@ public ArchiveDownloader(int threads) Semaphore = new SemaphoreSlim(threads); } - public async Task Download(FIASArchive archive, CancellationToken token = default) - { - var LocalFile = new FileInfo(archive.ArchivePath); - try - { - await Semaphore.WaitAsync().ConfigureAwait(false); - token.ThrowIfCancellationRequested(); - Directory.CreateDirectory(LocalFile.DirectoryName); - using (var FS = new FileStream(LocalFile.FullName, FileMode.Create)) - await Client.DownloadAsync(archive.URLDelta, FS, token).ConfigureAwait(false); - } - finally - { - Semaphore.Release(); - } - } + public Task Download(FIASArchiveDelta archive, CancellationToken token = default) => Download(archive, (Progress)default, default); - public async Task Download(FIASArchive archive, IProgress progress, CancellationToken token = default) + public async Task Download(FIASArchiveDelta archive, IProgress progress, CancellationToken token = default) { - var LocalFile = new FileInfo(archive.ArchivePath); + var file = new FileInfo(archive.ArchivePath); try { await Semaphore.WaitAsync().ConfigureAwait(false); token.ThrowIfCancellationRequested(); - Directory.CreateDirectory(LocalFile.DirectoryName); - using (var FS = new FileStream(LocalFile.FullName, FileMode.Create)) + Directory.CreateDirectory(file.DirectoryName); + using (var FS = new FileStream(file.FullName, FileMode.Create)) await Client.DownloadAsync(archive.URLDelta, FS, progress, token).ConfigureAwait(false); } finally @@ -63,15 +48,15 @@ public async Task Download(FIASArchive archive, IProgress progress, Cance } } - public async Task Download(FIASArchive archive, IProgress progress, CancellationToken token = default) + public async Task Download(FIASArchiveDelta archive, IProgress progress, CancellationToken token = default) { - var LocalFile = new FileInfo(archive.ArchivePath); + var file = new FileInfo(archive.ArchivePath); try { await Semaphore.WaitAsync().ConfigureAwait(false); token.ThrowIfCancellationRequested(); - Directory.CreateDirectory(LocalFile.DirectoryName); - using (var FS = new FileStream(LocalFile.FullName, FileMode.Create)) + Directory.CreateDirectory(file.DirectoryName); + using (var FS = new FileStream(file.FullName, FileMode.Create)) await Client.DownloadAsync(archive.URLDelta, FS, progress, token).ConfigureAwait(false); } finally @@ -86,7 +71,7 @@ public async Task Download(FIASArchive archive, IProgress progres /// /// /// - public async Task GetArchiveSize(FIASArchive archive, CancellationToken token = default) + public async Task GetArchiveSize(FIASArchiveDelta archive, CancellationToken token = default) { try { diff --git a/FIASUpdate/Models/DBStringLVI.cs b/FIASUpdate/Controls/DBStringLVI.cs similarity index 94% rename from FIASUpdate/Models/DBStringLVI.cs rename to FIASUpdate/Controls/DBStringLVI.cs index 74a9356..aa993fa 100644 --- a/FIASUpdate/Models/DBStringLVI.cs +++ b/FIASUpdate/Controls/DBStringLVI.cs @@ -1,7 +1,7 @@ using System.Data.SqlClient; using System.Windows.Forms; -namespace FIASUpdate.Models +namespace FIASUpdate.Controls { internal class DBStringLVI : ListViewItem { diff --git a/FIASUpdate/Controls/TextBoxFileDrop.cs b/FIASUpdate/Controls/TextBoxFileDrop.cs new file mode 100644 index 0000000..134ca1f --- /dev/null +++ b/FIASUpdate/Controls/TextBoxFileDrop.cs @@ -0,0 +1,57 @@ +using System.ComponentModel; +using System.IO; +using System.Windows.Forms; + +namespace FIASUpdate.Controls +{ + public class TextBoxFileDrop : TextBox + { + public TextBoxFileDrop() + { + base.ReadOnly = true; + AllowDrop = true; + } + + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + [DefaultValue(true)] + public new bool ReadOnly { get; } = true; + + /// + /// Открыть окно выбора файла + /// + public void SelectFile() + { + var F = new OpenFileDialog { InitialDirectory = Text }; + if (F.ShowDialog() == DialogResult.OK) { Text = F.FileName; } + } + + private static bool IsValid(string file) + { + return file.EndsWith(".zip") && File.Exists(file); + } + + protected override void OnDragDrop(DragEventArgs e) + { + if (e.Data is null) { return; } + var file = ((string[])e.Data.GetData(DataFormats.FileDrop))[0]; + if (IsValid(file)) { Text = file; } + OnTextChanged(new System.EventArgs()); + } + + protected override void OnDragEnter(DragEventArgs e) => ProcessDrag(e); + + protected override void OnDragOver(DragEventArgs e) => ProcessDrag(e); + + private static void ProcessDrag(DragEventArgs e) + { + var Effect = DragDropEffects.None; + if (e.Data is null) { return; } + if (e.Data.GetDataPresent(DataFormats.FileDrop)) + { + var file = ((string[])e.Data.GetData(DataFormats.FileDrop))[0]; + if (IsValid(file)) { Effect = DragDropEffects.Link; } + } + e.Effect = Effect; + } + } +} \ No newline at end of file diff --git a/FIASUpdate/Database/DBImport.cs b/FIASUpdate/Database/DBImport.cs index 7535060..d2e1daa 100644 --- a/FIASUpdate/Database/DBImport.cs +++ b/FIASUpdate/Database/DBImport.cs @@ -1,6 +1,9 @@ using FIAS.Core.Stores; using FIASUpdate.Models; +using FIASUpdate.Readers; using JANL; +using Microsoft.Data.SqlClient; +using Microsoft.SqlServer.Management.Smo; using System; using System.Collections.Generic; using System.IO; @@ -9,11 +12,16 @@ namespace FIASUpdate { - internal abstract class DBImport : DBClient + /// + /// Базовый класс для импорта архива + /// + /// Тип архива + internal abstract class DBImport : DBClient where T : FIASArchive { protected readonly SyncEvent Events; protected readonly FIASDatabaseStore Store = new FIASDatabaseStore(FIASProperties.SQLConnection); protected readonly List Tables = new List(); + protected T Archive; protected IProgress SP; protected CancellationToken Token; @@ -22,44 +30,94 @@ protected DBImport() Events = new SyncEvent(this); } - protected abstract string ScanPath { get; } + /// + /// Список кодов субъектов РФ + /// + public IEnumerable Subjects { get; set; } + + /// + /// Путь к папке с файлами ФИАС + /// + protected string ScanPath => Archive.ExtractPath; public void Import() => Import(default, default); public void Import(IProgress progress) => Import(progress, default); - public abstract void Import(IProgress progress, CancellationToken token); + public virtual void Import(IProgress progress, CancellationToken token) + { + SP = progress; + Token = token; + } + + /// + /// Распаковывает архив + /// + protected void Extract() + { + SP?.Report(new TaskProgress($"Распаковка архива", 0, 0)); + Archive.Extract(Subjects); + } + + /// + /// Импортировать в данные из в таблицу + /// + /// Таблица БД + /// Таблица FIAS + protected virtual void ImportTable(Table target, FIASTable source) + { + using (var connection = NewConnection(DBName)) + using (var SBC = new SqlBulkCopy(connection) { DestinationTableName = target.Name, BulkCopyTimeout = 0, NotifyAfter = 100 }) + { + SBC.SqlRowsCopied += SBC_SqlRowsCopied; + SBC.EnableStreaming = true; + var names = target.Columns.Cast().Select(C => C.Name); + foreach (var file in source.Files) + { + Token.ThrowIfCancellationRequested(); + SP?.Report(new TaskProgress($"Импорт файла: {file.FullName}", 0, 0)); + using (var FR = new FIASReader(file.Path, names)) + { + SBC.WriteToServer(FR); + } + SBC.NotifyAfter = 100; + var count = SBC.RowsCopied; + SP?.Report(new TaskProgress($"Импорт файла завершён: {file.FullName}", count, count)); + Thread.Sleep(200); + } + } + } /// /// Поиск файлов для импорта /// protected void ScanFiles() { - Tables.Clear(); + // Корневые файлы var rootFiles = Directory.EnumerateFiles(ScanPath, "*.xml") .Select(F => new FIASFile(F)); - + // Файлы субъектов var subjectFiles = Directory.EnumerateDirectories(ScanPath) .SelectMany(D => Directory.EnumerateFiles(D)) .Select(F => new FIASFile(F) { Region = Path.GetFileName(Path.GetDirectoryName(F)) }); - + // Параметры объединены в одну таблицу var tables = Enumerable.Concat(rootFiles, subjectFiles) .ToLookup(F => F.Name.Contains("PARAMS") ? "PARAMS" : F.Name) .Select(L => new FIASTable(L.Key, L.ToList())); + Tables.Clear(); Tables.AddRange(tables); } - protected void ShrinkDatabase() + private void SBC_SqlRowsCopied(object sender, SqlRowsCopiedEventArgs e) { - var Size = DB.Size; - SP?.Report(new TaskProgress($"Сжатие БД ({Size:N2} МБ)", 0, 0)); - Thread.Sleep(500); - Shrink(); - SP?.Report(new TaskProgress($"БД сжата ({Size:N2} МБ -> {DB.Size:N2} МБ)")); + SqlBulkCopy SBC = (SqlBulkCopy)sender; + var SBCCount = (int)e.RowsCopied; + SP?.Report(new TaskProgress(SBCCount, SBCCount)); + if (SBCCount >= 10000 && SBC.NotifyAfter != 1000) { SBC.NotifyAfter = 1000; } } } } \ No newline at end of file diff --git a/FIASUpdate/Database/DBImportDelta.cs b/FIASUpdate/Database/DBImportDelta.cs index ff29f88..fdf77ec 100644 --- a/FIASUpdate/Database/DBImportDelta.cs +++ b/FIASUpdate/Database/DBImportDelta.cs @@ -1,7 +1,5 @@ using FIASUpdate.Models; -using FIASUpdate.Readers; using JANL; -using Microsoft.Data.SqlClient; using Microsoft.SqlServer.Management.Smo; using System; using System.Linq; @@ -10,59 +8,33 @@ namespace FIASUpdate { - internal class DBImportDelta : DBImport + /// + /// Класс для импорта дельта архива + /// + internal class DBImportDelta : DBImport { - private readonly FIASArchive Archive; - private readonly ImportDeltaOptions Options; - - public DBImportDelta(FIASArchive archive, ImportDeltaOptions options) + public DBImportDelta(FIASArchiveDelta archive) { - Options = options; Archive = archive; } public override void Import(IProgress progress, CancellationToken token) { - SP = progress; - Token = token; + base.Import(progress, token); Extract(); ScanFiles(); - foreach (var item in Tables) - { - // Проверка существования - var table = DB.Tables[item.Name]; - if (table == null) { continue; } - // Проверка настроек импорта - table.Refresh(); - if (!Store.GetCanImport(table.Name)) { continue; } - - // Импорт - ImportTable(table, item); - Store.SetLastImport(item.Name, item.Date); - Thread.Sleep(500); - } - Store.SetVersion(Archive.Date); - if (Options.ShrinkDatabase) { ShrinkDatabase(); } - } - - private void Extract() - { - SP.Report(new TaskProgress($"Распаковка архива", 0, 0)); - Archive.Extract(Options.Subjects); + ImportTables(); } #region Table Import - protected override string ScanPath => Archive.ExtractPath; - /// /// /// /// Таблица БД /// Таблица FIAS - /// Количество импортированных строк - private long ImportTable(Table target, FIASTable source) + protected override void ImportTable(Table target, FIASTable source) { // Создать временную таблицу var temporaryName = $"_{target.Name}"; @@ -74,58 +46,48 @@ private long ImportTable(Table target, FIASTable source) temporaryTable.Create(); // Импортировать данные во временную таблицу - var columns = target.Columns.Cast(); - using (var connection = NewConnection(DBName)) - using (var SBC = new SqlBulkCopy(connection) { DestinationTableName = temporaryTable.Name, BulkCopyTimeout = 0, NotifyAfter = 100 }) - { - SBC.SqlRowsCopied += SBC_SqlRowsCopied; - SBC.EnableStreaming = true; - var names = target.Columns.Cast().Select(C => C.Name); - foreach (var File in source.Files) - { - Token.ThrowIfCancellationRequested(); - SP?.Report(new TaskProgress($"Импорт файла: {File.FullName}", 0, 0)); - using (var FR = new FIASReader(File.Path, names)) - { - SBC.WriteToServer(FR); - } - SBC.NotifyAfter = 100; - var Count = SBC.RowsCopied; - SP.Report(new TaskProgress($"Импорт файла завершён: {File.FullName}", Count, Count)); - Thread.Sleep(200); - } - } + base.ImportTable(target, source); - SP.Report(new TaskProgress($"Объединение таблиц: {target.Name}", 0, 0)); + SP?.Report(new TaskProgress($"Объединение таблиц: {target.Name}", 0, 0)); // Объединить таблицы + var columns = target.Columns.Cast(); var key = columns.First().Name; var insert = columns.Select(C => $"[{C.Name}]"); var values = columns.Select(C => $"[S].[{C.Name}]"); var update = columns.Skip(1).Select(C => $"[{C.Name}] = [S].[{C.Name}]"); - var query = new StringBuilder(); - query.AppendLine($"MERGE INTO [{target.Name}] AS [T]"); - query.AppendLine($"USING [{temporaryName}] AS [S]"); - query.AppendLine($"ON([T].[{key}] = [S].[{key}])"); - query.AppendLine("WHEN NOT MATCHED BY TARGET THEN"); - query.AppendLine($"INSERT ({string.Join(",", insert)})"); - query.AppendLine($"VALUES ({string.Join(",", values)})"); - query.AppendLine("WHEN MATCHED THEN"); - query.AppendLine($"UPDATE SET { string.Join(",", update)};"); + var query = new StringBuilder() + .AppendLine($"MERGE INTO [{target.Name}] AS [T]") + .AppendLine($"USING [{temporaryName}] AS [S]") + .AppendLine($"ON([T].[{key}] = [S].[{key}])") + .AppendLine("WHEN NOT MATCHED BY TARGET THEN") + .AppendLine($"INSERT ({string.Join(",", insert)})") + .AppendLine($"VALUES ({string.Join(",", values)})") + .AppendLine("WHEN MATCHED THEN") + .AppendLine($"UPDATE SET {string.Join(",", update)};"); DB.ExecuteNonQuery(query.ToString()); temporaryTable.Drop(); - SP.Report(new TaskProgress($"Импорт в таблицу завершён: {target.Name}", 0, 0)); - target.Refresh(); - return target.RowCount; } - private void SBC_SqlRowsCopied(object sender, SqlRowsCopiedEventArgs e) + private void ImportTables() { - SqlBulkCopy SBC = (SqlBulkCopy)sender; - var SBCCount = (int)e.RowsCopied; - SP.Report(new TaskProgress(SBCCount, SBCCount)); - if (SBCCount >= 10000 && SBC.NotifyAfter != 1000) { SBC.NotifyAfter = 1000; } + foreach (var table in Tables) + { + // Проверка существования + var T = DB.Tables[table.Name]; + if (T == null) { continue; } + // Проверка настроек импорта + T.Refresh(); + if (!Store.GetCanImport(T.Name)) { continue; } + + // Импорт + ImportTable(T, table); + SP?.Report(new TaskProgress($"Импорт в таблицу завершён: {T.Name}", 0, 0)); + Store.SetLastImport(table.Name, table.Date); + Thread.Sleep(500); + } + Store.SetVersion(Archive.Date); } #endregion Table Import diff --git a/FIASUpdate/Database/DBImportFull.cs b/FIASUpdate/Database/DBImportFull.cs index 15b49af..8d7f05d 100644 --- a/FIASUpdate/Database/DBImportFull.cs +++ b/FIASUpdate/Database/DBImportFull.cs @@ -1,145 +1,92 @@ using FIASUpdate.Models; -using FIASUpdate.Readers; using JANL; -using Microsoft.Data.SqlClient; using Microsoft.SqlServer.Management.Smo; using System; using System.Collections.Generic; -using System.Data; -using System.IO; -using System.Linq; using System.Threading; namespace FIASUpdate { - internal class DBImportFull : DBImport + /// + /// Класс для импорта полного архива + /// + internal class DBImportFull : DBImport { - private readonly Dictionary _result = new Dictionary(); - private readonly ImportFullOptions Options; + private readonly List _result = new List(); - public DBImportFull() : this(new ImportFullOptions { OnlyEmpty = true }) { } - - public DBImportFull(ImportFullOptions options) + public DBImportFull(FIASArchiveFull archive) { - Options = options; + Archive = archive; } - public IReadOnlyDictionary Result => _result; - private static string GAR_Version => $@"{FIASProperties.GAR_Full}\version.txt"; + /// + /// Импортировать только в пустые таблицы + /// + public bool OnlyEmpty { get; set; } + + /// + /// Результат импорта таблиц + /// + public IReadOnlyList Result => _result; public override void Import(IProgress progress, CancellationToken token) { - SP = progress; - Token = token; + base.Import(progress, token); - _result.Clear(); + Archive.ExtractVersion(); + Extract(); ScanFiles(); ImportTables(); - if (Options.ShrinkDatabase) { ShrinkDatabase(); } } private void AddResult(string table, string status) { - _result.Add(table, status); - OnResultAdded(new ResultAddedEventArgs(table, status)); + var result = new TableImportResult(table, status); + _result.Add(result); + OnResultAdded(new ResultAddedEventArgs(result)); } #region Table Import - protected override string ScanPath => FIASProperties.GAR_Full; - - /// - /// - /// - /// Таблица БД - /// Таблица FIAS - /// Количество импортированных строк - private long ImportTable(Table target, FIASTable source) - { - using (var Connection = NewConnection(DBName)) - using (var SBC = new SqlBulkCopy(Connection) { DestinationTableName = target.Name, BulkCopyTimeout = 0, NotifyAfter = 100 }) - { - SBC.SqlRowsCopied += SBC_SqlRowsCopied; - SBC.EnableStreaming = true; - var names = target.Columns.Cast().Select(C => C.Name); - foreach (var File in source.Files) - { - Token.ThrowIfCancellationRequested(); - SP?.Report(new TaskProgress($"Импорт файла: {File.FullName}", 0, 0)); - using (var FR = new FIASReader(File.Path, names)) - { - SBC.WriteToServer(FR); - } - SBC.NotifyAfter = 100; - var Count = SBC.RowsCopied; - SP?.Report(new TaskProgress($"Импорт файла завершён: {File.FullName}", Count, Count)); - Thread.Sleep(1000); - } - SP?.Report(new TaskProgress($"Импорт в таблицу завершён: {target.Name}", 0, 0)); - target.Refresh(); - return target.RowCount; - } - } - private void ImportTables() { - var subjects = Tables - .SelectMany(T => T.Files.Where(F => !string.IsNullOrEmpty(F.Region)).Select(F => F.Region)) - .Distinct().ToList(); - DateTime date = new DateTime(2000, 1, 1); - if (File.Exists(GAR_Version)) - { - var V = File.ReadAllLines(GAR_Version); - DateTime.TryParse(V[0], out date); - } -#if false - Store.SetSubjects(subjects); - Store.SetVersion(date); -#endif - - foreach (var Table in Tables) + _result.Clear(); + foreach (var table in Tables) { // Проверка существования - Table T = DB.Tables[Table.Name]; + Table T = DB.Tables[table.Name]; if (T == null) { - AddResult(Table.Name, "Таблицы нет в БД"); + AddResult(table.Name, "Таблицы нет в БД"); continue; } // Проверка настроек импорта T.Refresh(); - if (!Store.GetCanImport(Table.Name)) + if (!Store.GetCanImport(table.Name)) { - AddResult(Table.Name, $"Пропущена ({T.RowCount:N0})"); + AddResult(table.Name, $"Пропущена ({T.RowCount:N0})"); continue; } - if (!Options.OnlyEmpty) + if (OnlyEmpty && T.RowCount > 0) { - T.TruncateData(); + AddResult(table.Name, $"Пропущена ({T.RowCount:N0})"); + continue; } - else if (T.RowCount > 0) + else { - AddResult(Table.Name, $"Пропущена ({T.RowCount:N0})"); - continue; + T.TruncateData(); } + // Импорт + ImportTable(T, table); + SP?.Report(new TaskProgress($"Импорт в таблицу завершён: {T.Name}", 0, 0)); + T.Refresh(); + Store.SetLastImport(table.Name, table.Date); - //Импорт - var Count = ImportTable(T, Table); - Store.SetLastImport(Table.Name, Table.Date); - AddResult(Table.Name, $"Импортирована ({Count:N0})"); - Thread.Sleep(2 * 1000); + var count = T.RowCount; + AddResult(table.Name, $"Импортирована ({count:N0})"); + Thread.Sleep(1000); } - - Store.SetSubjects(subjects); - Store.SetVersion(date); - } - - private void SBC_SqlRowsCopied(object sender, SqlRowsCopiedEventArgs e) - { - SqlBulkCopy SBC = (SqlBulkCopy)sender; - var SBCCount = (int)e.RowsCopied; - SP?.Report(new TaskProgress(SBCCount, SBCCount)); - if (SBCCount >= 10000 && SBC.NotifyAfter != 1000) { SBC.NotifyAfter = 1000; } + Store.SetVersion(Archive.Date); } #endregion Table Import @@ -152,15 +99,30 @@ private void SBC_SqlRowsCopied(object sender, SqlRowsCopiedEventArgs e) #endregion Events } + /// + /// + /// internal class ResultAddedEventArgs : EventArgs { - public ResultAddedEventArgs(string table, string status) + public ResultAddedEventArgs(TableImportResult result) + { + Result = result; + } + + public TableImportResult Result { get; } + } + /// + /// Результат импорта таблицы + /// + internal class TableImportResult + { + public TableImportResult(string table, string status) { Table = table; Status = status; } - public string Status { get; private set; } - public string Table { get; private set; } + public string Status { get; } + public string Table { get; } } } \ No newline at end of file diff --git a/FIASUpdate/FIASUpdate.csproj b/FIASUpdate/FIASUpdate.csproj index 473d26a..9ca15fd 100644 --- a/FIASUpdate/FIASUpdate.csproj +++ b/FIASUpdate/FIASUpdate.csproj @@ -374,6 +374,9 @@ + + Component + Component @@ -413,7 +416,8 @@ FormSettings.cs - + + Form @@ -438,8 +442,8 @@ True icons8.resx - - + + diff --git a/FIASUpdate/Forms/FormImportDelta.Designer.cs b/FIASUpdate/Forms/FormImportDelta.Designer.cs index d05c366..40a8940 100644 --- a/FIASUpdate/Forms/FormImportDelta.Designer.cs +++ b/FIASUpdate/Forms/FormImportDelta.Designer.cs @@ -31,14 +31,14 @@ protected override void Dispose(bool disposing) private void InitializeComponent() { this.label1 = new System.Windows.Forms.Label(); - this.statusStrip1 = new System.Windows.Forms.StatusStrip(); + this.Status = new System.Windows.Forms.StatusStrip(); this.TS_Progress = new FIASUpdate.Controls.ToolStripTaskProgress(); this.TS_Stopwatch = new JANL.Controls.ToolStripStopwatch(); this.LV_Archives = new System.Windows.Forms.ListView(); this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); - this.columnHeader3 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.сolumnHeader4 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader3 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.B_Download = new System.Windows.Forms.Button(); this.B_Cancel = new System.Windows.Forms.Button(); this.B_Import = new System.Windows.Forms.Button(); @@ -47,7 +47,7 @@ private void InitializeComponent() this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); this.B_Open = new System.Windows.Forms.Button(); this.Info = new FIASUpdate.Controls.UC_DatabaseInfo(); - this.statusStrip1.SuspendLayout(); + this.Status.SuspendLayout(); this.FLP_Action.SuspendLayout(); this.groupBox1.SuspendLayout(); this.tableLayoutPanel2.SuspendLayout(); @@ -58,30 +58,30 @@ private void InitializeComponent() this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.label1.AutoSize = true; this.label1.Font = new System.Drawing.Font("Comic Sans MS", 72F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); - this.label1.Location = new System.Drawing.Point(362, 345); + this.label1.Location = new System.Drawing.Point(284, 327); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(278, 135); this.label1.TabIndex = 0; this.label1.Text = "OwO"; // - // statusStrip1 + // Status // - this.statusStrip1.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); - this.statusStrip1.GripStyle = System.Windows.Forms.ToolStripGripStyle.Visible; - this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.Status.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.Status.GripStyle = System.Windows.Forms.ToolStripGripStyle.Visible; + this.Status.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.TS_Progress, this.TS_Stopwatch}); - this.statusStrip1.Location = new System.Drawing.Point(0, 458); - this.statusStrip1.Name = "statusStrip1"; - this.statusStrip1.RenderMode = System.Windows.Forms.ToolStripRenderMode.Professional; - this.statusStrip1.Size = new System.Drawing.Size(562, 22); - this.statusStrip1.TabIndex = 16; - this.statusStrip1.Text = "statusStrip1"; + this.Status.Location = new System.Drawing.Point(0, 440); + this.Status.Name = "Status"; + this.Status.RenderMode = System.Windows.Forms.ToolStripRenderMode.Professional; + this.Status.Size = new System.Drawing.Size(484, 22); + this.Status.TabIndex = 16; + this.Status.Text = "statusStrip1"; // // TS_Progress // this.TS_Progress.Name = "TS_Progress"; - this.TS_Progress.Size = new System.Drawing.Size(489, 17); + this.TS_Progress.Size = new System.Drawing.Size(411, 17); this.TS_Progress.Spring = true; this.TS_Progress.Status = "-"; this.TS_Progress.Text = "Статус: - -"; @@ -110,7 +110,7 @@ private void InitializeComponent() this.LV_Archives.Location = new System.Drawing.Point(3, 18); this.LV_Archives.MultiSelect = false; this.LV_Archives.Name = "LV_Archives"; - this.LV_Archives.Size = new System.Drawing.Size(556, 344); + this.LV_Archives.Size = new System.Drawing.Size(478, 332); this.LV_Archives.TabIndex = 17; this.LV_Archives.UseCompatibleStateImageBehavior = false; this.LV_Archives.View = System.Windows.Forms.View.Details; @@ -124,16 +124,16 @@ private void InitializeComponent() this.columnHeader2.Text = "Описание"; this.columnHeader2.Width = 91; // - // columnHeader3 - // - this.columnHeader3.Text = "Статус"; - this.columnHeader3.Width = 200; - // // сolumnHeader4 // this.сolumnHeader4.Text = "Размер"; this.сolumnHeader4.Width = 80; // + // columnHeader3 + // + this.columnHeader3.Text = "Статус"; + this.columnHeader3.Width = 200; + // // B_Download // this.B_Download.AutoSize = true; @@ -189,7 +189,8 @@ private void InitializeComponent() this.FLP_Action.Controls.Add(this.B_Download); this.FLP_Action.Controls.Add(this.B_Import); this.FLP_Action.Controls.Add(this.B_Cancel); - this.FLP_Action.Location = new System.Drawing.Point(224, 3); + this.FLP_Action.Location = new System.Drawing.Point(149, 0); + this.FLP_Action.Margin = new System.Windows.Forms.Padding(0); this.FLP_Action.Name = "FLP_Action"; this.FLP_Action.Size = new System.Drawing.Size(335, 31); this.FLP_Action.TabIndex = 21; @@ -201,7 +202,7 @@ private void InitializeComponent() this.groupBox1.Dock = System.Windows.Forms.DockStyle.Fill; this.groupBox1.Location = new System.Drawing.Point(0, 56); this.groupBox1.Name = "groupBox1"; - this.groupBox1.Size = new System.Drawing.Size(562, 365); + this.groupBox1.Size = new System.Drawing.Size(484, 353); this.groupBox1.TabIndex = 22; this.groupBox1.TabStop = false; this.groupBox1.Text = "Список архивов"; @@ -216,11 +217,11 @@ private void InitializeComponent() this.tableLayoutPanel2.Controls.Add(this.FLP_Action, 1, 0); this.tableLayoutPanel2.Controls.Add(this.B_Open, 0, 0); this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Bottom; - this.tableLayoutPanel2.Location = new System.Drawing.Point(0, 421); + this.tableLayoutPanel2.Location = new System.Drawing.Point(0, 409); this.tableLayoutPanel2.Name = "tableLayoutPanel2"; this.tableLayoutPanel2.RowCount = 1; this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel2.Size = new System.Drawing.Size(562, 37); + this.tableLayoutPanel2.Size = new System.Drawing.Size(484, 31); this.tableLayoutPanel2.TabIndex = 23; // // B_Open @@ -229,7 +230,7 @@ private void InitializeComponent() this.B_Open.AutoSize = true; this.B_Open.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; this.B_Open.Image = global::FIASUpdate.icons8.OpenedFolder16; - this.B_Open.Location = new System.Drawing.Point(3, 6); + this.B_Open.Location = new System.Drawing.Point(3, 3); this.B_Open.Name = "B_Open"; this.B_Open.Padding = new System.Windows.Forms.Padding(1); this.B_Open.Size = new System.Drawing.Size(115, 25); @@ -245,7 +246,7 @@ private void InitializeComponent() this.Info.Dock = System.Windows.Forms.DockStyle.Top; this.Info.Location = new System.Drawing.Point(0, 0); this.Info.Name = "Info"; - this.Info.Size = new System.Drawing.Size(562, 56); + this.Info.Size = new System.Drawing.Size(484, 56); this.Info.Subjects = null; this.Info.TabIndex = 18; this.Info.Version = new System.DateTime(((long)(0))); @@ -255,24 +256,25 @@ private void InitializeComponent() this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.BackColor = global::FIASUpdate.Properties.Settings.Default.DefaultBackColor; - this.ClientSize = new System.Drawing.Size(562, 480); + this.ClientSize = new System.Drawing.Size(484, 462); this.Controls.Add(this.groupBox1); this.Controls.Add(this.Info); this.Controls.Add(this.tableLayoutPanel2); - this.Controls.Add(this.statusStrip1); + this.Controls.Add(this.Status); this.Controls.Add(this.label1); this.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::FIASUpdate.Properties.Settings.Default, "DefaultFont", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); this.DataBindings.Add(new System.Windows.Forms.Binding("ForeColor", global::FIASUpdate.Properties.Settings.Default, "DefaultForeColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); this.DataBindings.Add(new System.Windows.Forms.Binding("BackColor", global::FIASUpdate.Properties.Settings.Default, "DefaultBackColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); this.Font = global::FIASUpdate.Properties.Settings.Default.DefaultFont; this.ForeColor = global::FIASUpdate.Properties.Settings.Default.DefaultForeColor; + this.MinimumSize = new System.Drawing.Size(500, 500); this.Name = "FormImportDelta"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; this.Text = "Импорт БД"; this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FormImportDelta_FormClosing); this.Load += new System.EventHandler(this.FormImportDelta_Load); - this.statusStrip1.ResumeLayout(false); - this.statusStrip1.PerformLayout(); + this.Status.ResumeLayout(false); + this.Status.PerformLayout(); this.FLP_Action.ResumeLayout(false); this.FLP_Action.PerformLayout(); this.groupBox1.ResumeLayout(false); @@ -286,7 +288,7 @@ private void InitializeComponent() #endregion private System.Windows.Forms.Label label1; - private System.Windows.Forms.StatusStrip statusStrip1; + private System.Windows.Forms.StatusStrip Status; private System.Windows.Forms.ListView LV_Archives; private System.Windows.Forms.ColumnHeader columnHeader1; private System.Windows.Forms.ColumnHeader columnHeader2; diff --git a/FIASUpdate/Forms/FormImportDelta.cs b/FIASUpdate/Forms/FormImportDelta.cs index 2ec2efc..01d5b86 100644 --- a/FIASUpdate/Forms/FormImportDelta.cs +++ b/FIASUpdate/Forms/FormImportDelta.cs @@ -22,7 +22,7 @@ public partial class FormImportDelta : Form private static readonly FIASClient Client = new FIASClient(); private static readonly Settings Settings = Settings.Default; private readonly FIASDatabaseStore Store = new FIASDatabaseStore(Settings.SQLConnection); - private List Archives; + private List Archives; private CancellationTokenSource CTS; private List Subjects; private DateTime Version; @@ -64,7 +64,7 @@ private async Task RefreshDatabase() // Бывают выгрузки без ссылок на архивы ГАР. // Если отсутствуют обе,то пропустить такую выгрузку, например от 24.11.2023. Archives = info.Where(I => !(string.IsNullOrEmpty(I.GarXMLFullURL) && string.IsNullOrEmpty(I.GarXMLDeltaURL))) - .Select(I => new FIASArchive(I)) + .Select(I => new FIASArchiveDelta(I)) .ToList(); } catch (SocketException ex) @@ -141,7 +141,7 @@ private async Task TaskDownload(CancellationToken token) var tasks = items.Select(async item => { var size = await AD.GetArchiveSize(item.Archive); - item.Archive.ArchiveSize = size; + item.Size = size; item.Refresh(); }); await Task.WhenAll(tasks); @@ -181,11 +181,10 @@ private async Task TaskImport(CancellationToken token) foreach (var item in items) { item.State = "Импорт данных"; - var Options = new ImportDeltaOptions + using (var FIAS = new DBImportDelta(item.Archive) { Subjects = Subjects - }; - using (var FIAS = new DBImportDelta(item.Archive, Options)) + }) { await Task.Run(() => FIAS.Import(TS_Progress.Progress, token)); } diff --git a/FIASUpdate/Forms/FormImportDelta.resx b/FIASUpdate/Forms/FormImportDelta.resx index 174ebc7..441d946 100644 --- a/FIASUpdate/Forms/FormImportDelta.resx +++ b/FIASUpdate/Forms/FormImportDelta.resx @@ -117,7 +117,7 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + 17, 17 \ No newline at end of file diff --git a/FIASUpdate/Forms/FormImportFull.Designer.cs b/FIASUpdate/Forms/FormImportFull.Designer.cs index f152ea5..5e8c22b 100644 --- a/FIASUpdate/Forms/FormImportFull.Designer.cs +++ b/FIASUpdate/Forms/FormImportFull.Designer.cs @@ -37,31 +37,36 @@ private void InitializeComponent() this.Result = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); this.B_Open = new System.Windows.Forms.Button(); - this.flowLayoutPanel2 = new System.Windows.Forms.FlowLayoutPanel(); + this.FLP_Action = new System.Windows.Forms.FlowLayoutPanel(); this.B_Import = new System.Windows.Forms.Button(); this.B_Cancel = new System.Windows.Forms.Button(); this.groupBox1 = new System.Windows.Forms.GroupBox(); - this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel(); + this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); this.CB_OnlyEmpty = new System.Windows.Forms.CheckBox(); - this.CB_Shrink = new System.Windows.Forms.CheckBox(); - this.statusStrip1 = new System.Windows.Forms.StatusStrip(); + this.B_Select = new System.Windows.Forms.Button(); + this.label2 = new System.Windows.Forms.Label(); + this.TB_Archive = new FIASUpdate.Controls.TextBoxFileDrop(); + this.label1 = new System.Windows.Forms.Label(); + this.TB_Version = new System.Windows.Forms.TextBox(); + this.Status = new System.Windows.Forms.StatusStrip(); this.TS_Progress = new FIASUpdate.Controls.ToolStripTaskProgress(); this.TS_Stopwatch = new JANL.Controls.ToolStripStopwatch(); + this.Info = new FIASUpdate.Controls.UC_DatabaseInfo(); this.groupBox2.SuspendLayout(); this.tableLayoutPanel1.SuspendLayout(); - this.flowLayoutPanel2.SuspendLayout(); + this.FLP_Action.SuspendLayout(); this.groupBox1.SuspendLayout(); - this.flowLayoutPanel1.SuspendLayout(); - this.statusStrip1.SuspendLayout(); + this.tableLayoutPanel2.SuspendLayout(); + this.Status.SuspendLayout(); this.SuspendLayout(); // // groupBox2 // this.groupBox2.Controls.Add(this.LV_Result); this.groupBox2.Dock = System.Windows.Forms.DockStyle.Fill; - this.groupBox2.Location = new System.Drawing.Point(0, 67); + this.groupBox2.Location = new System.Drawing.Point(0, 156); this.groupBox2.Name = "groupBox2"; - this.groupBox2.Size = new System.Drawing.Size(482, 468); + this.groupBox2.Size = new System.Drawing.Size(484, 353); this.groupBox2.TabIndex = 13; this.groupBox2.TabStop = false; this.groupBox2.Text = "Результат"; @@ -79,7 +84,7 @@ private void InitializeComponent() listViewItem1}); this.LV_Result.Location = new System.Drawing.Point(3, 18); this.LV_Result.Name = "LV_Result"; - this.LV_Result.Size = new System.Drawing.Size(476, 447); + this.LV_Result.Size = new System.Drawing.Size(478, 332); this.LV_Result.TabIndex = 10; this.LV_Result.UseCompatibleStateImageBehavior = false; this.LV_Result.View = System.Windows.Forms.View.Details; @@ -87,28 +92,28 @@ private void InitializeComponent() // Table // this.Table.Text = "Таблица"; - this.Table.Width = 38; + this.Table.Width = 65; // // Result // this.Result.Text = "Статус"; - this.Result.Width = 40; + this.Result.Width = 62; // // tableLayoutPanel1 // this.tableLayoutPanel1.AutoSize = true; this.tableLayoutPanel1.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; this.tableLayoutPanel1.ColumnCount = 2; - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); this.tableLayoutPanel1.Controls.Add(this.B_Open, 0, 0); - this.tableLayoutPanel1.Controls.Add(this.flowLayoutPanel2, 1, 0); + this.tableLayoutPanel1.Controls.Add(this.FLP_Action, 1, 0); this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Bottom; - this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 535); + this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 509); this.tableLayoutPanel1.Name = "tableLayoutPanel1"; this.tableLayoutPanel1.RowCount = 1; - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel1.Size = new System.Drawing.Size(482, 37); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(484, 31); this.tableLayoutPanel1.TabIndex = 14; // // B_Open @@ -117,7 +122,7 @@ private void InitializeComponent() this.B_Open.AutoSize = true; this.B_Open.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; this.B_Open.Image = global::FIASUpdate.icons8.OpenedFolder16; - this.B_Open.Location = new System.Drawing.Point(3, 6); + this.B_Open.Location = new System.Drawing.Point(3, 3); this.B_Open.Name = "B_Open"; this.B_Open.Padding = new System.Windows.Forms.Padding(1); this.B_Open.Size = new System.Drawing.Size(115, 25); @@ -127,27 +132,30 @@ private void InitializeComponent() this.B_Open.UseVisualStyleBackColor = true; this.B_Open.Click += new System.EventHandler(this.B_Open_Click); // - // flowLayoutPanel2 + // FLP_Action // - this.flowLayoutPanel2.Anchor = System.Windows.Forms.AnchorStyles.Right; - this.flowLayoutPanel2.AutoSize = true; - this.flowLayoutPanel2.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; - this.flowLayoutPanel2.Controls.Add(this.B_Import); - this.flowLayoutPanel2.Controls.Add(this.B_Cancel); - this.flowLayoutPanel2.Location = new System.Drawing.Point(286, 3); - this.flowLayoutPanel2.Name = "flowLayoutPanel2"; - this.flowLayoutPanel2.Size = new System.Drawing.Size(193, 31); - this.flowLayoutPanel2.TabIndex = 11; + this.FLP_Action.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.FLP_Action.AutoSize = true; + this.FLP_Action.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.FLP_Action.Controls.Add(this.B_Import); + this.FLP_Action.Controls.Add(this.B_Cancel); + this.FLP_Action.Location = new System.Drawing.Point(275, 0); + this.FLP_Action.Margin = new System.Windows.Forms.Padding(0); + this.FLP_Action.Name = "FLP_Action"; + this.FLP_Action.Size = new System.Drawing.Size(209, 31); + this.FLP_Action.TabIndex = 11; + this.FLP_Action.WrapContents = false; // // B_Import // this.B_Import.Anchor = System.Windows.Forms.AnchorStyles.Right; this.B_Import.AutoSize = true; this.B_Import.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.B_Import.Image = global::FIASUpdate.icons8.Replace16; this.B_Import.Location = new System.Drawing.Point(3, 3); this.B_Import.Name = "B_Import"; this.B_Import.Padding = new System.Windows.Forms.Padding(1); - this.B_Import.Size = new System.Drawing.Size(105, 25); + this.B_Import.Size = new System.Drawing.Size(121, 25); this.B_Import.TabIndex = 0; this.B_Import.Text = "Импортировать"; this.B_Import.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; @@ -160,7 +168,7 @@ private void InitializeComponent() this.B_Cancel.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; this.B_Cancel.Enabled = false; this.B_Cancel.Image = global::FIASUpdate.icons8.Cancel16; - this.B_Cancel.Location = new System.Drawing.Point(114, 3); + this.B_Cancel.Location = new System.Drawing.Point(130, 3); this.B_Cancel.Name = "B_Cancel"; this.B_Cancel.Padding = new System.Windows.Forms.Padding(1); this.B_Cancel.Size = new System.Drawing.Size(76, 25); @@ -174,71 +182,124 @@ private void InitializeComponent() // this.groupBox1.AutoSize = true; this.groupBox1.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; - this.groupBox1.Controls.Add(this.flowLayoutPanel1); + this.groupBox1.Controls.Add(this.tableLayoutPanel2); this.groupBox1.Dock = System.Windows.Forms.DockStyle.Top; - this.groupBox1.Location = new System.Drawing.Point(0, 0); + this.groupBox1.Location = new System.Drawing.Point(0, 56); this.groupBox1.Name = "groupBox1"; - this.groupBox1.Size = new System.Drawing.Size(482, 67); + this.groupBox1.Size = new System.Drawing.Size(484, 100); this.groupBox1.TabIndex = 12; this.groupBox1.TabStop = false; this.groupBox1.Text = "Параметры импорта"; // - // flowLayoutPanel1 - // - this.flowLayoutPanel1.AutoSize = true; - this.flowLayoutPanel1.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; - this.flowLayoutPanel1.Controls.Add(this.CB_OnlyEmpty); - this.flowLayoutPanel1.Controls.Add(this.CB_Shrink); - this.flowLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.flowLayoutPanel1.FlowDirection = System.Windows.Forms.FlowDirection.TopDown; - this.flowLayoutPanel1.Location = new System.Drawing.Point(3, 18); - this.flowLayoutPanel1.Name = "flowLayoutPanel1"; - this.flowLayoutPanel1.Size = new System.Drawing.Size(476, 46); - this.flowLayoutPanel1.TabIndex = 2; - this.flowLayoutPanel1.WrapContents = false; + // tableLayoutPanel2 + // + this.tableLayoutPanel2.AutoSize = true; + this.tableLayoutPanel2.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.tableLayoutPanel2.ColumnCount = 3; + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanel2.Controls.Add(this.CB_OnlyEmpty, 1, 2); + this.tableLayoutPanel2.Controls.Add(this.B_Select, 2, 0); + this.tableLayoutPanel2.Controls.Add(this.label2, 0, 0); + this.tableLayoutPanel2.Controls.Add(this.TB_Archive, 1, 0); + this.tableLayoutPanel2.Controls.Add(this.label1, 0, 1); + this.tableLayoutPanel2.Controls.Add(this.TB_Version, 1, 1); + this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Top; + this.tableLayoutPanel2.Location = new System.Drawing.Point(3, 18); + this.tableLayoutPanel2.Name = "tableLayoutPanel2"; + this.tableLayoutPanel2.RowCount = 3; + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel2.Size = new System.Drawing.Size(478, 79); + this.tableLayoutPanel2.TabIndex = 5; // // CB_OnlyEmpty // this.CB_OnlyEmpty.AutoSize = true; this.CB_OnlyEmpty.Checked = true; this.CB_OnlyEmpty.CheckState = System.Windows.Forms.CheckState.Checked; - this.CB_OnlyEmpty.Location = new System.Drawing.Point(3, 3); + this.CB_OnlyEmpty.Location = new System.Drawing.Point(54, 59); this.CB_OnlyEmpty.Name = "CB_OnlyEmpty"; this.CB_OnlyEmpty.Size = new System.Drawing.Size(249, 17); this.CB_OnlyEmpty.TabIndex = 2; this.CB_OnlyEmpty.Text = "Импортировать только в пустые таблицы"; this.CB_OnlyEmpty.UseVisualStyleBackColor = true; // - // CB_Shrink - // - this.CB_Shrink.AutoSize = true; - this.CB_Shrink.Checked = true; - this.CB_Shrink.CheckState = System.Windows.Forms.CheckState.Checked; - this.CB_Shrink.Location = new System.Drawing.Point(3, 26); - this.CB_Shrink.Name = "CB_Shrink"; - this.CB_Shrink.Size = new System.Drawing.Size(160, 17); - this.CB_Shrink.TabIndex = 3; - this.CB_Shrink.Text = "Сжать БД после импорта"; - this.CB_Shrink.UseVisualStyleBackColor = true; - // - // statusStrip1 - // - this.statusStrip1.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); - this.statusStrip1.GripStyle = System.Windows.Forms.ToolStripGripStyle.Visible; - this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + // B_Select + // + this.B_Select.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.B_Select.AutoSize = true; + this.B_Select.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.B_Select.Image = global::FIASUpdate.icons8.OpenedFolder16; + this.B_Select.Location = new System.Drawing.Point(397, 1); + this.B_Select.Margin = new System.Windows.Forms.Padding(0); + this.B_Select.Name = "B_Select"; + this.B_Select.Padding = new System.Windows.Forms.Padding(1); + this.B_Select.Size = new System.Drawing.Size(81, 25); + this.B_Select.TabIndex = 6; + this.B_Select.Text = "Выбрать"; + this.B_Select.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; + this.B_Select.UseVisualStyleBackColor = true; + this.B_Select.Click += new System.EventHandler(this.B_Select_Click); + // + // label2 + // + this.label2.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(9, 7); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(39, 13); + this.label2.TabIndex = 4; + this.label2.Text = "Архив"; + // + // TB_Archive + // + this.TB_Archive.AllowDrop = true; + this.TB_Archive.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.TB_Archive.Location = new System.Drawing.Point(54, 3); + this.TB_Archive.Name = "TB_Archive"; + this.TB_Archive.Size = new System.Drawing.Size(340, 22); + this.TB_Archive.TabIndex = 3; + this.TB_Archive.TextChanged += new System.EventHandler(this.TB_Archive_TextChanged); + // + // label1 + // + this.label1.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(3, 35); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(45, 13); + this.label1.TabIndex = 4; + this.label1.Text = "Версия"; + // + // TB_Version + // + this.TB_Version.Location = new System.Drawing.Point(54, 31); + this.TB_Version.Name = "TB_Version"; + this.TB_Version.ReadOnly = true; + this.TB_Version.Size = new System.Drawing.Size(100, 22); + this.TB_Version.TabIndex = 6; + // + // Status + // + this.Status.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.Status.GripStyle = System.Windows.Forms.ToolStripGripStyle.Visible; + this.Status.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.TS_Progress, this.TS_Stopwatch}); - this.statusStrip1.Location = new System.Drawing.Point(0, 572); - this.statusStrip1.Name = "statusStrip1"; - this.statusStrip1.RenderMode = System.Windows.Forms.ToolStripRenderMode.Professional; - this.statusStrip1.Size = new System.Drawing.Size(482, 22); - this.statusStrip1.TabIndex = 15; - this.statusStrip1.Text = "statusStrip1"; + this.Status.Location = new System.Drawing.Point(0, 540); + this.Status.Name = "Status"; + this.Status.RenderMode = System.Windows.Forms.ToolStripRenderMode.Professional; + this.Status.Size = new System.Drawing.Size(484, 22); + this.Status.TabIndex = 15; + this.Status.Text = "statusStrip1"; // // TS_Progress // this.TS_Progress.Name = "TS_Progress"; - this.TS_Progress.Size = new System.Drawing.Size(409, 17); + this.TS_Progress.Size = new System.Drawing.Size(411, 17); this.TS_Progress.Spring = true; this.TS_Progress.Status = "-"; this.TS_Progress.Text = "Статус: - -"; @@ -251,21 +312,34 @@ private void InitializeComponent() this.TS_Stopwatch.ShowText = false; this.TS_Stopwatch.Size = new System.Drawing.Size(58, 20); // + // Info + // + this.Info.AutoSize = true; + this.Info.Dock = System.Windows.Forms.DockStyle.Top; + this.Info.Location = new System.Drawing.Point(0, 0); + this.Info.Name = "Info"; + this.Info.Size = new System.Drawing.Size(484, 56); + this.Info.Subjects = null; + this.Info.TabIndex = 19; + this.Info.Version = new System.DateTime(((long)(0))); + // // FormImportFull // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.BackColor = global::FIASUpdate.Properties.Settings.Default.DefaultBackColor; - this.ClientSize = new System.Drawing.Size(482, 594); + this.ClientSize = new System.Drawing.Size(484, 562); this.Controls.Add(this.groupBox2); this.Controls.Add(this.tableLayoutPanel1); this.Controls.Add(this.groupBox1); - this.Controls.Add(this.statusStrip1); + this.Controls.Add(this.Info); + this.Controls.Add(this.Status); this.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::FIASUpdate.Properties.Settings.Default, "DefaultFont", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); this.DataBindings.Add(new System.Windows.Forms.Binding("ForeColor", global::FIASUpdate.Properties.Settings.Default, "DefaultForeColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); this.DataBindings.Add(new System.Windows.Forms.Binding("BackColor", global::FIASUpdate.Properties.Settings.Default, "DefaultBackColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); this.Font = global::FIASUpdate.Properties.Settings.Default.DefaultFont; this.ForeColor = global::FIASUpdate.Properties.Settings.Default.DefaultForeColor; + this.MinimumSize = new System.Drawing.Size(500, 600); this.Name = "FormImportFull"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; this.Text = "Импорт БД"; @@ -274,14 +348,14 @@ private void InitializeComponent() this.groupBox2.ResumeLayout(false); this.tableLayoutPanel1.ResumeLayout(false); this.tableLayoutPanel1.PerformLayout(); - this.flowLayoutPanel2.ResumeLayout(false); - this.flowLayoutPanel2.PerformLayout(); + this.FLP_Action.ResumeLayout(false); + this.FLP_Action.PerformLayout(); this.groupBox1.ResumeLayout(false); this.groupBox1.PerformLayout(); - this.flowLayoutPanel1.ResumeLayout(false); - this.flowLayoutPanel1.PerformLayout(); - this.statusStrip1.ResumeLayout(false); - this.statusStrip1.PerformLayout(); + this.tableLayoutPanel2.ResumeLayout(false); + this.tableLayoutPanel2.PerformLayout(); + this.Status.ResumeLayout(false); + this.Status.PerformLayout(); this.ResumeLayout(false); this.PerformLayout(); @@ -296,14 +370,19 @@ private void InitializeComponent() private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; private System.Windows.Forms.Button B_Import; private System.Windows.Forms.GroupBox groupBox1; - private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1; private System.Windows.Forms.CheckBox CB_OnlyEmpty; - private System.Windows.Forms.CheckBox CB_Shrink; - private System.Windows.Forms.StatusStrip statusStrip1; - private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel2; + private System.Windows.Forms.StatusStrip Status; + private System.Windows.Forms.FlowLayoutPanel FLP_Action; private System.Windows.Forms.Button B_Cancel; private Controls.ToolStripTaskProgress TS_Progress; private JANL.Controls.ToolStripStopwatch TS_Stopwatch; private System.Windows.Forms.Button B_Open; + private Controls.UC_DatabaseInfo Info; + private Controls.TextBoxFileDrop TB_Archive; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; + private System.Windows.Forms.Button B_Select; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.TextBox TB_Version; } } \ No newline at end of file diff --git a/FIASUpdate/Forms/FormImportFull.cs b/FIASUpdate/Forms/FormImportFull.cs index 8bae845..581ba62 100644 --- a/FIASUpdate/Forms/FormImportFull.cs +++ b/FIASUpdate/Forms/FormImportFull.cs @@ -1,5 +1,6 @@ -using FIASUpdate.Models; -using JANL; +using FIAS.Core.Stores; +using FIASUpdate.Models; +using FIASUpdate.Properties; using JANL.Extensions; using System; using System.Collections.Generic; @@ -13,68 +14,104 @@ namespace FIASUpdate.Forms { public partial class FormImportFull : Form { + private static readonly Settings Settings = Settings.Default; + private readonly FIASDatabaseStore Store = new FIASDatabaseStore(Settings.SQLConnection); + private FIASArchiveFull Archive; private CancellationTokenSource CTS; + private List Subjects; + private DateTime Version; public FormImportFull() { InitializeComponent(); } - private void AddResult(string table, string status) + private void AddResult(TableImportResult result) { - var LVI = LV_Result.Items.Add(table); - LVI.SubItems.Add(status); + var LVI = LV_Result.Items.Add(result.Table); + LVI.SubItems.Add(result.Status); LV_Result.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent); } - private void FIAS_ResultChanged(object sender, ResultAddedEventArgs e) => AddResult(e.Table, e.Status); + private void FIAS_ResultChanged(object sender, ResultAddedEventArgs e) => AddResult(e.Result); + + private void RefreshDatabase() + { + var version = Store.GetVersion(); + var subjects = Store.GetSubjects(); + if (subjects.Count == 0) + { + this.ShowError("В свойствах БД не указан список субъектов РФ. Импорт невозможно."); + return; + } + Version = version.Value; + Subjects = subjects; + Info.Version = Version; + Info.Subjects = Subjects; + + RefreshUI(); + } private void RefreshUI() { - B_Import.Enabled = CTS == null; + B_Import.Enabled = CTS == null && Archive != null && Archive.Exsists; B_Cancel.Enabled = CTS != null; } - private void SetResult(IReadOnlyDictionary Result) + private void SetResult(IReadOnlyList Result) { LV_Result.BeginUpdate(); LV_Result.Items.Clear(); - foreach (var KV in Result) + foreach (var R in Result) { - var LVI = LV_Result.Items.Add(KV.Key); - LVI.SubItems.Add(KV.Value); + var LVI = LV_Result.Items.Add(R.Table); + LVI.SubItems.Add(R.Status); } LV_Result.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent); LV_Result.EndUpdate(); } - private async Task StartImport() + private async Task StartTask(Func task) { CTS = new CancellationTokenSource(); RefreshUI(); TS_Stopwatch.Start(); + try + { + await task(CTS.Token); + } + catch (Exception ex) { this.ShowException(ex); } + finally + { + CTS.Dispose(); + CTS = null; + TS_Stopwatch.Stop(); + RefreshUI(); + } + } + + private async Task TaskImport(CancellationToken token) + { try { LV_Result.Items.Clear(); - var Options = new ImportFullOptions + using (var FIAS = new DBImportFull(Archive) { - OnlyEmpty = CB_OnlyEmpty.Checked, - ShrinkDatabase = CB_Shrink.Checked - }; - using (var FIAS = new DBImportFull(Options)) + Subjects = Subjects, + OnlyEmpty = CB_OnlyEmpty.Checked + }) { FIAS.ResultAdded += FIAS_ResultChanged; await Task.Run(() => FIAS.Import(TS_Progress.Progress, CTS.Token)); SetResult(FIAS.Result); } + TS_Progress.Status = "Импорт завершён"; + FLP_Action.Enabled = false; } - catch (Exception ex) { this.ShowException(ex); } - finally + catch (OperationCanceledException) { - CTS.Dispose(); - CTS = null; - RefreshUI(); - TS_Stopwatch.Stop(); + TS_Progress.Status = "Импорт отменён"; + TS_Progress.Value = "-"; } } @@ -88,12 +125,7 @@ private void B_Cancel_Click(object sender, EventArgs e) private void B_Import_Click(object sender, EventArgs e) { - _ = StartImport(); - } - - private void FormImportFull_Load(object sender, EventArgs e) - { - Icon = Owner.Icon; + _ = StartTask(TaskImport); } private void B_Open_Click(object sender, EventArgs e) @@ -102,6 +134,11 @@ private void B_Open_Click(object sender, EventArgs e) Process.Start(FIASProperties.GAR_Full); } + private void B_Select_Click(object sender, EventArgs e) + { + TB_Archive.SelectFile(); + } + private void FormImportFull_FormClosing(object sender, FormClosingEventArgs e) { if (CTS != null) @@ -111,6 +148,23 @@ private void FormImportFull_FormClosing(object sender, FormClosingEventArgs e) } } + private void FormImportFull_Load(object sender, EventArgs e) + { + Icon = Owner.Icon; + LV_Result.Items.Clear(); + LV_Result.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize); + RefreshDatabase(); + } + + private void TB_Archive_TextChanged(object sender, EventArgs e) + { + // TB_Archive.Text + Archive = new FIASArchiveFull(TB_Archive.Text); + Archive.ExtractVersion(); + TB_Version.Text = Archive.Date == default ? "" : $"{Archive.Date:yyyy.MM.dd}"; + RefreshUI(); + } + #endregion UI Events } } \ No newline at end of file diff --git a/FIASUpdate/Forms/FormImportFull.resx b/FIASUpdate/Forms/FormImportFull.resx index 174ebc7..441d946 100644 --- a/FIASUpdate/Forms/FormImportFull.resx +++ b/FIASUpdate/Forms/FormImportFull.resx @@ -117,7 +117,7 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + 17, 17 \ No newline at end of file diff --git a/FIASUpdate/Models/FIASArchive.cs b/FIASUpdate/Models/FIASArchive.cs index 67d2014..8f34186 100644 --- a/FIASUpdate/Models/FIASArchive.cs +++ b/FIASUpdate/Models/FIASArchive.cs @@ -1,5 +1,4 @@ -using FIAS.Core.API; -using System; +using System; using System.Collections.Generic; using System.IO; using System.IO.Compression; @@ -7,35 +6,92 @@ namespace FIASUpdate.Models { - internal class FIASArchive + /// + /// Базовый класс архива ФИАС + /// + internal abstract class FIASArchive { - private readonly FileInfo File; - private readonly FIASInfo Info; + protected FileInfo Archive; - public FIASArchive(FIASInfo info) + public FIASArchive(string path) { - Info = info; - File = new FileInfo(ArchivePath); - Refresh(); + SetArchivePath(path); } - public string ArchivePath => $@"{DirectoryPath}\gar_delta_xml.zip"; - public long? ArchiveSize { get; set; } - public DateTime Date => Info.Date; - public bool Exsists { get; private set; } - public string ExtractPath => $@"{DirectoryPath}\gar_delta_xml"; - public string TextVersion => Info.TextVersion; - public string URLDelta => Info.GarXMLDeltaURL; - public string URLFull => Info.GarXMLFullURL; - public int VersionId => Info.VersionId; - private string DirectoryPath => $@"{FIASProperties.GAR_Delta}\{Date:yyyy.MM.dd}"; + protected FIASArchive() { } + + /// + /// Путь до архива + /// + public string ArchivePath { get; protected set; } + + /// + /// Размер архива + /// + public long? ArchiveSize { get; protected set; } + + /// + /// Дата (версия) архива + /// + public DateTime Date { get; protected set; } + + /// + /// Существует ли архив + /// + public bool Exsists { get; protected set; } + + /// + /// Путь для извлечения архива + /// + public abstract string ExtractPath { get; } + /// + /// Путь для хранения версий + /// + // protected abstract string DirectoryPath { get; } + + /// + /// Извлечь дату (версию) архива + /// + public void ExtractVersion() + { + Refresh(); + if (!Exsists) { return; } + + var path = ArchivePath; + using (var zip = ZipFile.OpenRead(path)) + { + var version = zip.Entries.First(E => E.FullName.Contains("version.txt")); + + //var file = Path.GetTempFileName(); + //version.ExtractToFile(file, true); + //var V = File.ReadAllLines(file); + //DateTime.TryParse(V[0], out var date); + //Date = date; + using (var s = version.Open()) + { + using (var SR = new StreamReader(s)) + { + var V = SR.ReadLine(); + DateTime.TryParse(V, out var date); + Date = date; + } + } + } + } + + /// + /// Извлечь файлы из архива для указанных субъектов + /// + /// Перечисление субъектов public void Extract(IEnumerable subjects) { var path = ArchivePath; using (var zip = ZipFile.OpenRead(path)) { + // Корневые файлы var root = zip.Entries.Where(E => !E.FullName.Contains(@"/")); + // Файлы субъектов var files = zip.Entries.Where(E => subjects.Any(S => E.FullName.Contains($@"{S}/"))); foreach (var item in root.Concat(files)) @@ -47,17 +103,23 @@ public void Extract(IEnumerable subjects) } } + /// + /// Обновить состояние файла архива + /// public void Refresh() { - File.Refresh(); - Exsists = File.Exists && IsValid(); + Archive.Refresh(); + Exsists = Archive.Exists && IsValid(); if (Exsists) { - ArchiveSize = File.Length; + ArchiveSize = Archive.Length; } } - private bool IsValid() + /// + /// Проверить корректность архива + /// + protected bool IsValid() { try { @@ -65,7 +127,7 @@ private bool IsValid() // Выдаст ошибку если файл в процессе записи или повреждён // Может зависнуть на повреждённом архиве // Нужна проверка хэша, но увы. Хэш в сделку не входил - using (var zip = ZipFile.OpenRead(File.FullName)) + using (var zip = ZipFile.OpenRead(Archive.FullName)) { return zip.Entries.Count > 0; } @@ -75,5 +137,12 @@ private bool IsValid() return false; } } + + protected void SetArchivePath(string path) + { + ArchivePath = path; + Archive = new FileInfo(ArchivePath); + Refresh(); + } } } \ No newline at end of file diff --git a/FIASUpdate/Models/FIASArchiveDelta.cs b/FIASUpdate/Models/FIASArchiveDelta.cs new file mode 100644 index 0000000..bd1c660 --- /dev/null +++ b/FIASUpdate/Models/FIASArchiveDelta.cs @@ -0,0 +1,26 @@ +using FIAS.Core.API; + +namespace FIASUpdate.Models +{ + /// + /// Класс дельта архива ФИАС + /// + internal class FIASArchiveDelta : FIASArchive + { + private readonly FIASInfo Info; + + public FIASArchiveDelta(FIASInfo info) + { + Info = info; + Date = info.Date; + SetArchivePath($@"{ExtractPath}.zip"); + } + + public override string ExtractPath => $@"{FIASProperties.GAR_Delta}\{Date:yyyy.MM.dd}\gar_delta_xml"; + public string TextVersion => Info.TextVersion; + public string URLDelta => Info.GarXMLDeltaURL; + public string URLFull => Info.GarXMLFullURL; + public int VersionId => Info.VersionId; + // protected override string DirectoryPath => $@"{FIASProperties.GAR_Delta}\{Date:yyyy.MM.dd}"; + } +} \ No newline at end of file diff --git a/FIASUpdate/Models/FIASArchiveFull.cs b/FIASUpdate/Models/FIASArchiveFull.cs new file mode 100644 index 0000000..b43bae0 --- /dev/null +++ b/FIASUpdate/Models/FIASArchiveFull.cs @@ -0,0 +1,14 @@ +namespace FIASUpdate.Models +{ + /// + /// Класс полного архива ФИАС + /// + internal class FIASArchiveFull : FIASArchive + { + public FIASArchiveFull(string path) : base(path) { } + + public override string ExtractPath => $@"{FIASProperties.GAR_Full}\{Date:yyyy.MM.dd}\gar_full_xml"; + + // protected override string DirectoryPath => $@"{FIASProperties.GAR_Full}\{Date:yyyy.MM.dd}"; + } +} \ No newline at end of file diff --git a/FIASUpdate/Models/FIASArchiveLVI.cs b/FIASUpdate/Models/FIASArchiveLVI.cs index c6a63d1..3084fe2 100644 --- a/FIASUpdate/Models/FIASArchiveLVI.cs +++ b/FIASUpdate/Models/FIASArchiveLVI.cs @@ -5,7 +5,7 @@ namespace FIASUpdate.Models { internal class FIASArchiveLVI : ListViewItem { - public FIASArchiveLVI(FIASArchive archive) : base($"{archive.Date:yyyy.MM.dd}") + public FIASArchiveLVI(FIASArchiveDelta archive) : base($"{archive.Date:yyyy.MM.dd}") { Archive = archive; SubItems.Add(Archive.TextVersion); @@ -14,7 +14,8 @@ public FIASArchiveLVI(FIASArchive archive) : base($"{archive.Date:yyyy.MM.dd}") Refresh(); } - public FIASArchive Archive { get; } + public FIASArchiveDelta Archive { get; } + public long? Size { get; set; } public string State { @@ -29,7 +30,8 @@ public string State public void Refresh() { Archive.Refresh(); - SubItems[2].Text = Archive.ArchiveSize.HasValue ? $"{Archive.ArchiveSize / Math.Pow(1024, 2):N2} МБ" : "-"; + var size = Archive.ArchiveSize ?? Size; + SubItems[2].Text = size.HasValue ? $"{size / Math.Pow(1024, 2):N2} МБ" : "-"; SubItems[3].Text = Archive.Exsists ? "Архив скачан" : "Архив не скачан"; } } diff --git a/FIASUpdate/Models/ImportOptions.cs b/FIASUpdate/Models/ImportOptions.cs deleted file mode 100644 index c4f733a..0000000 --- a/FIASUpdate/Models/ImportOptions.cs +++ /dev/null @@ -1,26 +0,0 @@ -using System.Collections.Generic; - -namespace FIASUpdate.Models -{ - internal class ImportDeltaOptions : ImportOptions - { - /// - /// Список кодов субъектов РФ - /// - public IEnumerable Subjects { get; set; } - } - internal class ImportFullOptions : ImportOptions - { - /// - /// Импортировать только в пустые таблицы - /// - public bool OnlyEmpty { get; set; } - } - internal class ImportOptions - { - /// - /// Сжать БД после импорта - /// - public bool ShrinkDatabase { get; set; } - } -} \ No newline at end of file diff --git a/FIASUpdate/SyncEvent.cs b/FIASUpdate/SyncEvent.cs index b77b16b..9cfab41 100644 --- a/FIASUpdate/SyncEvent.cs +++ b/FIASUpdate/SyncEvent.cs @@ -20,19 +20,19 @@ public SyncEvent(object sender) /// /// Отправить асинхронное сообщение в контекст синхронизации. /// - public void PostEvent(EventHandler Handler, T Args) where T : EventArgs => Context.Post(GetCallback(Handler), Args); + public void PostEvent(EventHandler handler, T args) where T : EventArgs => Context.Post(GetCallback(handler), args); /// /// Отправить синхронное сообщение в контекст синхронизации. /// - public void SendEvent(EventHandler Handler, T Args) where T : EventArgs => Context.Send(GetCallback(Handler), Args); + public void SendEvent(EventHandler handler, T args) where T : EventArgs => Context.Send(GetCallback(handler), args); - private SendOrPostCallback GetCallback(EventHandler Handler) + private SendOrPostCallback GetCallback(EventHandler handler) { return (state) => { T E = (T)state; - Handler?.Invoke(Sender, E); + handler?.Invoke(Sender, E); }; } } From c89f5988fc0837e744ba039c02fca1cdc7ae50fb Mon Sep 17 00:00:00 2001 From: Virenbar Date: Wed, 11 Mar 2026 17:21:00 +0500 Subject: [PATCH 4/6] =?UTF-8?q?chore(docs):=20=D0=BE=D0=B1=D0=BD=D0=BE?= =?UTF-8?q?=D0=B2=D0=B8=D0=BB=20=D0=B4=D0=BE=D0=BA=D1=83=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D1=82=D0=B0=D1=86=D0=B8=D1=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- docs/assets/fias/import-delta.png | Bin 35002 -> 53433 bytes docs/assets/fias/import-full.png | Bin 0 -> 47018 bytes docs/assets/fias/import.png | Bin 42524 -> 0 bytes docs/assets/fias/main.png | Bin 27364 -> 55032 bytes docs/assets/fias/settings.png | Bin 73550 -> 72569 bytes docs/fias-update/index.md | 2 +- docs/fias-update/usage.md | 11 ++++++----- mkdocs.yml | 2 +- 9 files changed, 9 insertions(+), 8 deletions(-) create mode 100644 docs/assets/fias/import-full.png delete mode 100644 docs/assets/fias/import.png diff --git a/README.md b/README.md index db96845..ea3f1a7 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ ![Основная форма](/docs/assets/fias/main.png) ![Форма настроек](/docs/assets/fias/settings.png) ![Форма импорта](/docs/assets/fias/import-delta.png) -![Форма импорта](/docs/assets/fias/import.png) +![Форма импорта](/docs/assets/fias/import-full.png) ![Форма поиска адреса в БД](/docs/assets/fias/search.png) *P.S. Данное решение предназначено для разработчик работающих с .NET и SQL Server.* diff --git a/docs/assets/fias/import-delta.png b/docs/assets/fias/import-delta.png index cfac28e4cebfd214c03c9fdcd62db242f29ece29..42060dc186020cc9d9c9875714853111d6fe1c03 100644 GIT binary patch literal 53433 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 diff --git a/docs/assets/fias/import-full.png b/docs/assets/fias/import-full.png new file mode 100644 index 0000000000000000000000000000000000000000..061933e936cb3c86bb2710394a8009f888f6c8ac GIT binary patch literal 47018 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 Hy$t#vZh%-= literal 0 HcmV?d00001 diff --git a/docs/assets/fias/import.png b/docs/assets/fias/import.png deleted file mode 100644 index c230f3cccb55d5b9791837a8d91aa489e04c14f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 42524 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 diff --git a/docs/assets/fias/main.png b/docs/assets/fias/main.png index 1135fb7f4a2ee884347be5aca5c7b1ba6b9add00..5fb8e5c9ae4e65feeb94a125fbc4fc41fdcfc7ad 100644 GIT binary patch literal 55032 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

wMlod!jROP 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 literal 73550 zcmW(+cQ{+^|4t$zcI?;BD~e89BUaEFp;ons*cGc)dn?tK*C?;XPK?mn zqi9P7)mpVx?Vs=OkLNnqbIx_n^UwX<=YBq)`;ND~Y0Azb!~y^S*sotRz6Ah)kmti1 z3OT>?{NA+n`33momMI!gH7K%tJ^{O-%uxV9Z8GbzBjfp;8Gp^@2>`&+`M&||@hNu! z0M1IU8>8+7+pnE4r}1}x*-zd%E7&n;-+A`R%{*T^N2O}*NMlW>vrW14if2ioTrq(- zUuC6It|GJ(^(%DSBw@%(H$JX%foR5*8L zR|jvuvw`lsHybJA)y6sSH4ixOEysIeor(OLDf8zM-acWYQ+uGD(@pb8Klk$*6CO9F z_9o{97B+s2(W*E|rdRSC5bGZ1^Bv~iD;tto2)Pl&|Fh`1YW25AN6Fb9923#sd__Oc z^_N8~*QMT^SglOQ%{=G#cv$}aUB4PV)_jnlCUgcEbl(j<_@JV+aOHt=r4z~{a#u1r zpSFlBxEH<(AACRmsAo6#o}1YRj#G#VKYtIA!-=a~Wy;j@et_q!&tJX2-y3HmHgZpV zHhl~ZGw9jHt8(O1;%aJ@*{{7%xVkTU{cibB8?d~73$%g4>#z8S36xTgF@F4n&99CR zH9I=(2M0B4`K~nw(F2VkeF+bTckgTdYgU)nvoTXv`^<#tSpo$y?8>@~7G4iIR|`Tx z6JGYLk2Ulm$v)QX$$G6U_w?fJ&*XFuyQDUk4o&G?s$uu|S0la3RFYjU%KBM0{QUgm zZEr=iIO_>~LVCSNQ_esvBysGqq`~d8*1(0Y#jV~8P2h*$G!IUq)(0%$_Tp;x51T$* zGkEuG^;L(3AZ>N@Pn`vItiwX5bxwPc-QJ)s@ffp|_zBg%T(_2?czbs3@}G|loo!#e zCNmert8G^?&3`1;{(0zbbA~@Is+FtPT{k%17sr15&#bE{qrv&C>Y)3I=auAyYCE>} zvyE9+83_#u6YZV;xKW>OkAJFAC9Y#yCKy1y23L6k4$0i? zwdus(=|(EJY5f#rzWp;X#^XLI;>A_xx#GvP&eBN>LZ44QIKexIEg{1^y0ouvF6P-= zR)=Sk>ehb0)TcH0l-dI>+WI+b_cvCFT&&82s8we{>e2@ZHj{&d7pra^jGA{S(VBND zxet}162dU~iqE&aMg?XLMHL1cPaR;JjFou(+x-Xb5UwzWfAt?8$zRVi}ng}&P* zm6F-_by#=$n@}M?_cHlc)lR<3cZ{XqygKG^@bvJ%rB#&;_ROC#@8&nybYq5{L`$i= zlNK@Ck7cRjr96(?pMygcXmI6@zYhA`CPTu&5+zX%sh>`mj{=;LbMA*aPV1I%{U9h? zJNT^F)Rwr4{N4N1g>>c$KkJL>EI)8ROjwOpK7VawPGfiJz)$pP|8Xkv&kHMLAQcY( z0ITM#WPN)4x@jwf{750KsC)Zv#OJ_Ib$DLVL&Bo13OCI*!qp+^s4LWJ#-v}A&FB{! zfhzDPc2uynX#dChaHuVF8p)mYH{?Uq1VgsbPMdj=#}I9p{7lMyx`azzGRVhW@B`yF zFU{o_0EPCo1ICR~2Vkg4Eo&2mX)Idl-d0i`H#|d(e<(>cfoVfhQbD3$q_^dky-S){g2ZPA@X0DO?E50$jL4Hy`J)RV z=ndc2H$7(i@~eu|A1XO_^AIyWXouza(4w=hu;K7q;d7($Cytaix8`m=FyYK3^}S-E zP~=A=%h;k&w@aBUL@(Is!(%Y7#IATj+497mPVE*UJ!#0fxd_w#t_JboAC+7x$^XFR zb(@^-{9t`ka%#I1UDDY$gG^%b!z6qYF{oDoPYO5mWKjO`bo43+Y3n12LLDTVS)O7u@_nGx8iFE$6D8XsWOh#%8hw+Vf0;8a0iCZ-vps4w;0 zR!T4Llm*V59$7!eoD0L_W(dP200=PJ(Dm!+$BxCNcTnWwEosy@(hH6t6cxSZ4kDz|i79?ufqqZk#P$pFhAge2kZZ+MsKykK zdmNgAB1pth+e?V;Ke#d^m$XDnC9uUONvIUT$N;z$AgWMi8x9s(tcA)u!|u_PE)1jG zCGgC2*J&a`ucOZ$cOldYzf0B_jumS_rE8`b^6D7#myY#;qK!DvPim~erfelRp3CebX5evjjTa*a{yFlFex3IJr`1>jT z#j!s2J^{@EzxID_(%_Y%reIZWr%`~(6thD8%`e~6+XDzztKKcECd?|m3cCRrkYBk^ z#QfJrxzf*iEQkP0BL5dQ%wQ-0XgtX zHmqCT;Ufxte3rGavzN}_=JTVM-wQIiEi#U(1vt#9PVgwMVA^a$4j0EZt;-l|?uwxV z#H5~ndJcZmC)4@Hj4K%W2y4ZdC7^`r*A&<=K-7s{4TMH+>BOc)RR14W|#W;MZA!};=?yWJ0kpXWd4 zOBcx0x1jC4l4pPV@j?`L6i1X0&~TFLFV+@6bEk4_TsqT7Wf2A7GAZnCeW>bT z7Tx)+wbeykEPr6W+Q{FG3C<=wfUV3Qs%9k53ACUWk(HvvZj_u3iotEXOgXPo;2Hu$ zq63>+m^y8lVJF2Vw0q60;GGsZZBBIG zUBoh0f{jg*AW?`1Vz|3{{bP($;t@0hVJQijBTo!ib;Ogzth#O^7{#aDHI>9*YW|H; zrhAG}L0^`L0U)`0-}Lut8Jfhx1^Qj`Qn_HSK&po%j0aMx1R=xj@_vvu1v451s{*^a z3?aanQz1Y}C8E<&*y%zqy@5AQqQY-)`?LODQ}jZOo5s(#P^4(chuCfqc9YE5B{$~x zL#uKL=IqlqsYH+%!?5Yyys|)2E24gAKdHv|%mh)o?>mSMYg_h1Lt| zdY@P_s?9Y@6+e+Jw!0^76)*wvy=F?pFZTyxzTCHu>xrU7_mmmN(>)LQpqls7oY~5- z3NrCFg4yxK2`NJH1o#N0d~S|z28(3(*NW&TQG+`m&e;<11xI8)&P7R-c`+lIXp>;l z*=^QCb=5Q{T=LF>?)c;r=(ivlwhoXd=}ECR_Y-41SbL~l2hK&FVuz}pn2f~E_F(Uy zQeXu`E$g_N2tyv?$JfDaRb6{fy;s9L0+Iy#h#LF>dDG_$-}X-MvF@p#f||P0LWAm! z4}g7?Dkzd;J8rHi%oVZg%|Dw&YEDE)** zDRa5Lq3b@E|eEXcrm87o?_B-ZP<;LIC*vPTbAIQr zP=orL4)+4oXpaZLDh4OB2GJa$S19w}_+znZFU6FXCkjo%{-tiDzLKGq*YXv4WYKAj z-%|}LJZN#aBzMSl2Lrb)5voF$68lmH%cTNqdEy)kp(X(R+ACNBUt}uHv%Hl8%IMqT zIA+Oq%#tpQ4phQ2&drTJR*vqgYG(U6ixjUSZ?Rb8$3WJ>J7{bC4sp0%WJfV|ul}mw z{yR*7W!o{WZ>CK`^>YrU2g#Yd$gL{_L_;xpYX6#+Xv4pdB=lo~(IK@Xy2tqZ}~ zX+w%Ucrm$}+%$UP!!)svc{L268hN(aSO*C#^~ftWTf3kbGnNX}1K{%B1rPgqtv z>1N$?0yAw*YLqn^hwPS;Iip@~-G@zM8+W#nAggLGaN_R#lEGb4kc}^+yXCPs{Vs)T zn@grdW|~x{mEdzA`}$O4YUCF_V)8987xSf1d?6>+RWgvwN-9knk*D z2)!ZyRS1F?8>^dj`p1x*%HPN1t5eE6?F{<Ctd-47k-+QNqr|KU z3v{rg1&t$|Wr9oMA5P-+*=4BpSema5g(ZUjCkne9zZj(4+5E#dSU``T>0c|YI1brh z6apSsGb}Dqtc+qLLa0m~H`wfZ_1@bsWx|})Q$`$RAgV%LWW$&?o&`oh0g5|pAzF~h zWjx)^@K&WAW&X(sqJ)ZpB8B?pQfeK`WDHFVNgS$=G)xA%w9Z8Z+?7!U*gFNgEt(<` zw-terfH@N|^kSe%-PdI632IDRvPT4)9-mc#9Y9LA4~GEi}QV;EI}JBrLzzOr|rpM~qnN^E)y+_Is?j*Rg1B>rcTY|BV?fz)ik7 zrCrfi+Xst&G}k#cmAD}r-G^*z8TQYZZ39nqqaqGK2!4qu+r5QLj?9q#m2Vl8&p{WC zvURFBLIZHkeYfoWj-09mj!1iU#|st4Gu177H>~}4B!Q?5o?+YYEP@&+J0ZQFt4?h< zF2OKKtiYUGO=VY(SpuT09&+<~a!Skq1ro>Z2fchVTa_=7f1`KA=q}>7r5XHsmM_3wWv2-)~C?gHqUjWrwf#Y4+^YxOe#%uJ<0Kk8MBU~J zjB$u^b+(JKjdL9-$+0O#;vs=|#%gyi_HcMTa#%_ZKgt+egD5RHd<*rUn9401MH+yZ zY|uauT0BzCE2+3F=&@K{%x zm=$rmb{2+=RLT&;Af*r{55nJE5W6(u*?>fm>VsW;p1LqnN$MvxM3JO$fo%Tdm%VjT z$$UtjDFVC?DqJg`P#AD6UdP@9sygpe@58L}J`Cj4HEV_62tVPyLIXgO)$k%tNd5?E zb!;wrA%wGX>6WGQPsRTGbL5L+5+}cAYQ1(@rJ0el>;MSo#eszkThOGaF5A8n4nshm4KoPv8nrB99!t}#i|d-FjB}6FsU(K}OaE2xly<7D6H|0w zXtxH22XI{;#1g^Mm?qYmc3X%DTU+AwC-vO)6&X;XI~iAx17>mo*~sls7}3o7Q*_4(WXb=RkTSA8u3 znWmt=jHdNGFg@bL0Jztm!3FnaE7N`3GfgH0nf_9>hNWui#o{6j&}MzN4tnDd5p4;Q zhQvZif`Du}uLq;iNRacJ8HZizl$U=_ZpGtV);4J5HhRwQW|h(9*<{pk?-xJb6 zcC*pf{pR;wdO?q%el;g_w!DqECwcdSfRM7xWD&5gGT-;S!?nUguI-eL;qRuo$bT)Gc#)2 zXUF?Z9hd-S%pMD7uihMC3e};Ry&mVc zyyPCOweqOig^u=_9w%9T@;CSzeb~>YjOXA}2sUdfzUW!HmHv%bQ7JUj0BM*M*Yau& z2G?141U?6^BM@&|fqcKa^BU`c%pe&&tV<`PslrE(0D0cD@Kz^0`(H~n(9)?^`Di6! z%EW_MFWK5Z#ytjq`n=4)xP>>N=c1~GnP1IWI@#br6Itbhy0^%rCgfChb)aEs7_C8B zc)U^DKn3nBlS4YWbjjO&ql|tmc4HJq?^l|&y^%?ok)fNI{uzXVkC8qq;15bmj|04X;@1t_B>qq0Nnkr!bS5LlCk-GS|F^@zvb z+bkZ(jjH2Tk6%91Z7?ZO?J9^Ni` z$o?uYxfdPrO3qFklPqeC-yhRiG9Is6&7arSn9*AvYN+KY)=_L)=xDC-9{2DFa`pcp zvp(N32-89N{(5T&*0EfHd*}ruQA>p9xW;Qo^P~fI)yu&EV&p54aw6&ylHH}l30q>y zq177?1x&w!{`GKf{DBuw6%OdUlEOfa$33d~&e%T)H=uI3 zxo@`UgtZ#;*QtNSm}@6sB>*6Z|Bh9LH+ z=hJu?Lq&sk{}g!Q2=YGnoz-kXYT&?V+{PgIBvr+TC(Os>LH}SHBS)Ko5x!(-&{$19 zxbyAMuv{TC&aI2h92=T0lUtOfub|G}P!;hoDO#OwdJh2`oRIrgcli@YT{2cpc2}vE za%fRzK6dz5qxHF{?T_ksQ)=t3DEyF*8%Wwq$~=c9i)2n;r@Tydthp3tbSjT53-;;R z$-WUQfx1^evpAQjSyA0`uG>~e_}5RRL8Sk@78()_*GB2$?K_-AoM*>~9vf%i$MB8V zXKi5e%2Gkm-jiyhZ$-C@OxuCOwVoIKoBqm>Pkt{9Z~xc2`R{Bip z$N*x#ORJrB_|E_Gky07l?VdrY?+}B8oM^`CF4=*v5u*aaWIqGj_1M*;g&DS!-?8CG z^P(J$oHKjF{z@q3fD7YADW(uCT68e3*Dl66*7$b+)YDX*_(2XGjTLY#!rwAhiyS$U zb<6Z$Na7zY%X;y+zTJ$8#|*J#9S)oc@0&OsZ=p9!toiDfxQI*~-k;_N?V4=F!L0sT z!#YgIP>ykDj)T9Ekcr;JF3KgQFc0m&G^VAUN8`VO^zPR&GjG*5?6oW@{pxsHG?cn7 zaxg9Q=V_j=fs1qd=&vB^VQOTPNzDRCSl0kJEmxyrpCa1^t&C(x|HI?mUw{)%DT%oG z0}%XZM8a~>h0)BW^20;dM?*!mp?#)~U66$)#oz~3&mD7o(Nf^0g;rz?!BEkRj?KazUBIzu@3vybrHGv@*{Gqm>IcF zteuxENx*HUQHw`LFlGi(8JkbH;jW(aDf-9O@)2j#;ROA$E8sLSm#DOLsPqqSsI*R95>>uS5cKwO~YT?)|He)TsNS-G99WD3NoDoC}gHV=OG;{%Ls!?R5#*xw_ z`~s!+9)9g}p^%ow<_nZId`%}WuVP4E`;unCzs)7<;*0Z7YCPw#XH7$jBgr~1HV&Zr zU|WB&AKD!|F$AM~zwYPm(2o;VQGlDyQNo~Hne7l}ocEH@BMHQLJIr|4YVw{-6F)=3 zs>O#E`)Ee+;)VvOa{I|caDAn>EbbpnMWE8xD__2sDR|%fie>^y`kMk#5sbU_oZi8b zQ&yVj6v z_{jBSyi}rPq!<$DXd(!7qj%kcYcUteY|=kM)jmPBjLO(v=D)y3mTg>kxqK9#>WeiU za}M_q*=0zkP#rX9a&JiKg865qm>u1;NRo748-`S?uR*unAEp_+m(!dU2YuR|!w)HM z#Qf3wMtvP@B-(MqauRl{YYW_CLO}J93ZnmmTiTjnG7*SHIyJJ$t}pFo_h_82`-6>r zqHq;qV&*~THd7e)w}!bd?EhoWjkCRt6r2YAX1Sj?XP&lDmELX}Ak*yTG2hqY6)OG5 z$5(3n9-C$VKE(EZU2vQ83Dk_ zfcm$E>HMtNs;dZ_2A6B<3}~?c!RalvD8AiWHw3(miiJx{S#@2uE+bn57~J(kpz55H znz73tBrA_ex|}iY%kOggx(>h5RTZiaax1v*cpEV-n+)*u?YKLXC`EsR*;eH%x_Lkp zn;4bEZW=bgs+yhU6IePY8 zNlw=U1`FdE3jLoOEa^0G?uw1E7J)ZzngklbCFGbfb#m1H_`jDBrLSs0ua%s#t${ZH z@(f%zA#%>LQQi(W2*mYd0ue7c%_&i;+`-%thZm1Z)t@>jdH9D0EEXVMQx-8C9(Xoi z$eoEbW_pR!6Ty!rilE}i4>!2UY8>9~Ds=fE)le~ZQbaf5U94 zcR$cRuU3C)K5u(J5Yun#Z_KBuZyP2vIX=~Q@I6@^ZhCy_??;9pS_2ma)~x=wIs8CI zNjLG*BJ-2R`bq=a!}-Vf{aJvw_Nn%6@D9?y@wW+_6d`=s`GP_)U5UILnLKx-d;)Ac z`ScJ!5h;xQ+I@SDcut&yuj}SsN(*$lP7d<$J@A*(Gs$Lk9pKZl_CD{fG8;MzrvP!xzc-EmYG5z73Uxf$$ze5tD7-yv+5r+nF%KVlA z%hxV4=xx7r7c@}j+Ej%qwf^D<*W^f35Gi)gdM+a$<5S!W8v!58s@uRQZ;d+&ROQvugWuSxNxW} zm`4?OLv{rQ`Iwc)0lo;j2eVvCx`BF;eZA;rJR%xr3A*NSHD&Z6=mslLZYiIuP<<6e z14b6U(E(l8Tr}~k8Bu^ph@?pJK)H`F~xf7W=)Vng#(C*-NY*d-NIu$krNzPe|>(27p`@7J{JeWlk^-b#5wqO!z zN}4AaB_T`+9QFlVYwp9&5kt%GnI9f#arlJwATE(@n9T{sn#xYvOP7ZK?KV%!j(?qg z@`6KueAcp^XV2*O)plb7&)!|ptFzLIKIC$Xk}Rj?L8J27RRslrsUZi^92@XNmLB7M z2=xZ>(04md)uV)4RMH4ztUkQV_(LcwMKBp}BtvEv0VVx}`FEhKzh15@?7XQZQHZjD z8aPcD4Fr}CrJ8H86dHNed8Q>EHLnWv6?uJ_sG-v?kq+Yy8SmkX0jO9~1W&QED4`&h zv8Gtp^EenzAQ^`L-s|G7^cl~~|7{1qec~7=&&$v* zTZ#C|Ge+w_BLX$MOAdwp8%M)?jlc0HIpI;=;$bX_4eg9)f7fpQ9ZX^v{&Tp94E?UI z@(uZHB--hZ;Uzs(Ih}2?+^efl7wGplpqq{VT`~ zPR)@HhP|1N@qo%nD#v(`%_B^o3x+Ntm_;=+`jmfuf6iLP`F!V2ZI#HR9WiCp^Uq!U z@=ylj^`41a5eVZA!SOQy$H3;OZHqY1<~a= z_%eow9y^~Lx4U_YNNq=GWo|TDEJol9!V@+gd`P+)OpTdhr@?}4 zC9yj&@XZ14bTpR&?qIB$akoIib@I@QE{qq=8Lly-N)zg%xV4>&6>!%;a$6no95Ph9 zW=@k^R3rA>h?&U8E|Z0}W2dN!jnBCc!#LXKLSq;d*%{^nKk~bC92!Mh5V4~du+p$KQ^a@{oG==>5`2zm(oF98^GC29C0>n zaowXtmf1X<1Nga{WGLW*Kx384S%(U)m(?(JUE?28%^;HF*l<(L$Bqu=g^;t+#Ju+$ z8gr!oK*HJo3BEHj2Wx=Nm)uQP({xvP%tJ7TYEt_Xh4D9{`KHUWm>j)SDVZb82-6S5 zgrZj-G8eMhnMDm#93P)x``>08wqm=AKwfXx2=bH;skXltOYl#%u)X1Ssu zdhv__e-z(NvCu!|uDWuntv(w7J>6=YoGXCYpYFXri`fZpWsDij1&%3Yv8esBh<$Mh z*O7ZkIjT{eH8N6L@0N}K*i~eeAgI6oDgL*p*&GC@qDi?cpnjE*#geem$nwb}#w98$ z=Aq9^idEPv+u1dA6zc<@sjq?iul)|rJHa~xqY023o8)+GsXV5Y8TccgLavhkw|NT( zls8w-WMSaC15s)bta=l|-VXORvCPu31+sZHGf&PyHBWy)GWB?q-9iL+yZ1tW+A|B7 z>x&ER7AW8xl-eF~*wz$+aHDH|(zk!Cv9?mYA)(>!P_}$6OIzL(+8-`8WsrRh>P0hG z(;z;Im5)>z0K*tJQxZKQidwJu-vG>0R&lKC99L}`x|Nd%lc%(RAt3qWO$_c#r zxsm^ugDodV4Kr?bJm4oNX9ry~0_Y*+_Bv_ELiGMy)v{f56E5_xXz-bek;rbnHG#M` zF#OVkcF&qA&mOA11oH!}5?(=oym2GbzoH)O%39To)HB znpWoyT_-yjjflDoZ##>H`8(F)f1x77c(%yO#4oJMusW-;U*>$iS@=0ExXzP$a%POV zprn$^75Ua0i2(75yMrym7}m?yBlyT>-bYj8ly^n@(zh2luP}^gTe_k0AOT{disg~i zB-6&Mr8hM@#X43|ynfCrckaGbx)LS=a5sd>SZY7C9xNXQpbLo%Hvkviq%u>6I;gS7 zQogZ?G*tZaGI-&e@N1FjsvNjaZghItF@wsI2MsmyXTKY}{AWM=?AiLMcU`!152;q7 zXWq3yN;mfFLE>PjzgPL{ReQ7D6JZbEe;Mm8&kGqBBn&H5n?21lNl(6HUck!!F*q@& zZ1r?k+cRAI!AvH3`pu<1rgY{ob%qh8g!fmsAf37l7 zeb0?+ydIq*QJCuO@D<|o9p(-mujdObsUc*$H<+N!nU*kh8esK^X6|8V5G}`86~vBW zZ(j^Muxdgn*Zq^r0FZ(959#6*f6o{AHRsNVtyyhJPb{fz6m)s|Q6%))Uyr zSkUf2zt`j|Z(6K7Ku%2eqP6e$$0SteGL*bchG`Bkc+3`ayw?X`WB{4rQ}@^-q_yxoLq&`BJr{AFhCZ@Q}W`+Ys~5i6l$R)^Uj*irL%$1I#6?j0ujb)Zd%mYy8NEI^9A z{zS&`U|N1&N1X3|KQV!SB*^h+hwEg2Nt|>>IxvrB`_9bnjfknnU)kSq&cdB^Q6xn0!Mc zj?h6o3|9<$MgyUWKcMzs|5(vXzUNS`Hu25;ri-Tdv2JNWbyC(x2bv_v;JoCe+^z-0 z+SHXx&Zajgx6rht{B>^+LxlUXAq_~xS@YKOvMLGHL-Ew+CyVfM_2i=?b@&wp$l!zR zpqzQ^z@I5mHIJR#13GVpirm#qqY1hRpWQ3)pYwO_sA*?I3nK|btB z;Bu;pS@mu=Aw+l)g}3*Z?|Dc%D24x{x8SD`^ln)Pv~X(Mra?9HX@8K3OG>M53#ipf zs({(^&)}o~Rt>dOC`U9Vc>GyJZ^69|OBd&j(;RJS*yl?*3r4b>#E9UzKb_=1T@W;T z+&XVLb;MZ`B%q!5f+C5t`$0<3UzNn!gMw4X$lSJF{>lRl*tgu@ua3;5lZ8uk^jDCz z3%qrTQ}13eKj^}+&J6rxir!Yb|9$V1d}x4XB|$obmzQ!wScCv77!hK+;Ci`pl!Zyr zwS_@*eegfvP3&1T3+D7?oiA~m$)vGAM>?~$Cw=U9oW68*n zr+;vmL^_;f80hb{$-3F0eo4yBW!EOFs^byPL>I?0{rJv447cQaTT3l6y-wAya=gb% zTZ(4@2Q44LxsI0zootyukC6%aAtkV;jBoIsUTJ|H%=czI<54ji}kx$WD#NsHuN4)0-GG zZo6|l`p);DR1((U;n0u)Z~L^`ZGC?(r<#|a?zaH4jxORxfsuz&Qontz0LtT(&St^-Lr~QU z5*=K`Vd{V5BORSYx!PeSK`-u1U{};2KW~@ju>K)A*L@lJ(_8l9<_#C_!O_ddqvv{**{FICU+QLY>elzG#eyi!IEVh~bZmH#7laG~$*y z)s!v?v@c!%Bigas{iXMVF#m=nY#{>1; zr$w|I04YjoDL4arc(=a=oSfiPr-X{-?nqdwERSTnvPkDp=dkE$U_ZU~DgA>uW@JOj-|Sx+#7z3u%ge$GXG#5n+aoU-RSrGbv=6H=0M#p$aa5c{ zGgiu?8Da8;U5y+266cb8ZnGi*&#hQ*B1lni&EDRPPxY_v&1NtoOqc|>^aNR5UgDg` zOG@Eg)`*2jxZk!X>G1Trh>K_32vCOEN%EU3c=16}TM5s&(YWb^MRnbYUgl<<^+Yf* z!pH^?$8-bDl)U6LF&Ye{P5HjiVG{x6^_cTBnM4#SbFpXXS`Kz0x`r{N=eg<}G7jpf zmNR2Qzw1~bG0e$axvAN&A$S~(G)lIEf|W|#yg#eFUO>LyP#wsGI*WRaSrj_c4p+*8 zTKaALi-IvGJy&~V?eCe=Rh!vR-U_6m4{}bJn43Zuu+{#y2EOQLVlw)jy~PZ}ZNG~1ZEiD_P`U{jmGokiSpc=0z%ObG3a@75 zaB}f7ygd<7tg$9W`f_<8xMkoAe5dy16OD7H-`!na!lXy06gCuU+le- zkSHsFf={9n>^s#e^RnH?93gw>BE#baa(8ULtnW2}sf#Ui8{0^i|n7SBk=<5`WDc zoWTEwUCijdGjG>15~5OTlR33;;k~DzZ~C4$R(8z4yhA9_t! z7!B^dN70DzGv`vaI+dGo@?tKY1PRkkE+C6GYnNPKfR&AJoJ0)FMQ>iSuaL+%Tf4fOhD&JR!(s{zqC)Kc&gH-Di`(ucFnI zcc-rDU%8c-E>!D2K3~h#q|@3Xy#g;Uv81Exl-`eZCTRi$-g79i*grb7vZB(9zvz({ zAMa!P1}EXqIQxwe!gk6d&ZSG)tm5*n1o*y1bp?ak4=wC?j9p>s2fK5mMPk6n%MjIf z$>|rmE<|9`dv5%ZlHRGkl>tA`Z7gIbzLSshjUaJ|vsm&{Tq59&o*9v4?=LqaWPaD) zIu=C==^zMj#48s8N@2yhP0Qt4jx3rX3xSAa#-00yh=M9=YF=8Td=<3r13{g~Y4E?y zo=d(7eGA-rGWA)q52|z861YQty7yUUP@Hjc$?Cc+D24aOXT0D`{+{#fFLpDb$yrHx zPN>?VGcV)WfK zoK~)Phtp*qZ}lyZYVy57BE}Oy@)P|Zx^_mmBQRK2mvLulVHZ`sTcbE<|G1AFsxoYH zhUFapp_!lr5Qlus8kYa?RX zWO+aXKTx1Yy(?#0P?+JE&aJf1SKi7e|Kz%@qWsmq8l#-VV=_FfxWb(YxUfwbj$Ag6 zv)=Cw<|`T#Eak`9Wpv2fv&D!+6qCT=#{#0jBbT47D@z$BKdTej zf+d33adyMSQe2{>2`X0$HdbMF5nZOa_$g@`k^!>^;Ya355%>}8)h~>SF0wUK4UmTH znr8^t09nRt={>GAv|UQ8O5ygoVQXYm zfz`g(sZ2VGfA5U+qeSw2%Z!(UTjD${4tlShew8B#c)pq6o1T*@q3@j)k1z%4QCa_y z3{DkQ2xuFZxXq;K@OMwjd7}F~#bmz%Cd>6e8s^u;biV|21}EjhjA)N#z*$RQZ^23o zZoM!xL6M1>Yz~`>LQZMsQ$PT-%(_kI&*O zWns6h_ww9VOkKlYa2#3Jok{nF*=)SM-%;|{=8!9x_sG|8yt<^ez(J7|diE++oK-ZD zQ~h37&rA1Q-$bLwnl6HzlS20Un4AA2r`7p})hQ<#rNUtMFpokpvN<_uh>jy&Jvv(R=r9Ij{42?(2Hq z_w(NWGJEf})?RxZ-{0>z*4{4(@Kgn$Fp+Ope@yLcytyZq4nlo4;x$1T|2Z64kp<#B z`zdgb5&Yy7;?`ou;Yi*}t|Onx26=`ibDH#LtM}&17T{)ybTb{(!Bz z{4k#;lYH%cje&qoNyo;K7M{zalCkNH%1!^nDR0(`gVNf34ORP}uFuBTw41?-^1z{d z-$4F*K>6BLgMo`iLgA!0cu|zHXHPw4+;(nDHeKfmqHB5*#x9Nz!!5Xw!Hcc`bU9~= z^B0&*`bJ_b0T$8e{B8E3eW9r`nY=(l;nb{^C!v2$FOQ*(YIh6_;UEYh13HbhjVJ(h z7+s!d9nD9mlN_WU-i^c6uBNzhfJ4r6iNAxAF2kViZa|wlW5NEwnBq#6b->M0vaJcV zuHt7?wBD4d6xL2}FYik7VD5ZW#)sVlemaVe9(+3a11#KQP%|o)_*SFlzz&DYu^~1z z$XU<)c(&j6u=x&QF276M6n19lApYIkR-s{h zP3KbNFauTx^4c4R+iDCx>928t<&nV5P6w0Z2_u@4p%|hDVE1rX{^G2LbjqVh` z!SH^#i*;1+gqD1b?mG6>DTf&WI!xx|PT}QFy(cO`l#27Cc)545(1g~Y4oLB=Z~>!k z<8_w;zGoEGN(R5bDTY}l=Z6hEXG{60cGL3d+2aZk$pw7Vaa(f2m^8KAsZklJ?%8+n z-@m)prI$!{J%DY?q%w;PUF^^ZVNhS3(`C~@;nULtY9sZf^s1_Hze4#jZGUa?LsM*v zo|-{WwnP5u&b;K4a|UiwOwZI@OPIxuMYqw7`d|vdgtf6X)ytPfETR)6h_y?H^8uj7 z;Cj^^3n+SD2!a>QU;ZvkasoTv3Np>@-|QQVyBJIS!v&S z=jJAS#IWE;wWu4jh>$H+bkXc(PTADnKk2#2s?I+BAgh0FI~ zai>+1oUC(Cnoz`b4!7+j;bd^fT_w3tBKt)_!miO=xAtHAMb<6-F8T#b&!6CR7?l_> z`O+<1R?f0cC&{jt>`0Ml3<~1MpQP1De{&fhSDUwS*`-)I7%c%tO#%b#@x$v#xdm3l zw5w`wjy8*Yr+^pCw50lRXTM3y@oaOK=zjw$ZBI#G%o7SE?@=b#+w^vPEKiW0TQ>@@YL z#gy0dNMEyaoFl%&1z)p$=BmZq@em;(ID!PoQN80)|d{ZHWGMCD6>kD z)#AfLqxf%gzYmF2Eqf^5y5HCK+UI$*t)Rid9Zn7s1!nH~Jc{ z9)~%p2YsOBxle?%!PX}H@LU+ah}w4_Yl$v-!o#{=bMU3@frZ3W(^~t&52hre_UAcP zaWza+ir&B~w7A@xWaxcxCdE~B$NON-+M*^&34$77;k8vl$-(U324{~^h!$IcG+25| zc?ehDl7I-Ae?=S*oH&cxgk{sbb)m6#8Dg7oA9qwi>5xLG5Wh)G;&VhWYvnYLA8+_c z=h!Uo3l+C0P>3sl1N|665L+XqquJAa(Qq9($~cK zstr};I7twtuV<*e8JT?B!ecX)b5DQlTAx{Hae=LL#VFQ6KE7j&qFT0_f+xznB{?E#lH3{K5Vg?QK)TFZ89%tcf=y0&IdyH z{o-}M_0>?Fb&y%etk6C+*Jm`#s~;X>$Z_jZ%N=U%HZ#j^I5Xqfb1ciT{-AI8%seU^ zIDcyO_s;7Ate7lz6gQ4lo=n^VrRGh|qZUo7kGDL~Sb(^OuxwtpWG=#RSGDWOXCErgCH^3DPhxob#N#)BN z6xjoKB#tkl9VKFe>LqiR9fFZ~TKlN}$f zw_8Xr(zkzFP~aNUVxi&Y!K{sy3M|qv3OLFK?k%ta)b{Yw#55uNZv6a_9CoZTt}U8D%K{T#{B}e zll~7k;`GB6llvu=s#!D*d(kghs;w)HGo9|*Jgvz$(&EAu@alQmtIhWx&PfirBF_Z- zLML=;U3I!BgcS_M=aTxu2Sr9Kzq&E6WXthtie_lRi8AJ*+7ASm+ZRh*zwbF_uvjk1 z6d=hgv9C+4MkZ6EyK;iP46~3NV@Q2>ecPsP!8?iX9xQR^e=1)OjT%pNkqveChrbxu zMm#j)Bhb!7#eq{zCE!Bd`bM=$n%DMN}3|7p~{j5#S0u{P!8a8l=7*6}$SfF7v zZ`^4-SAi)#&3nja>%)=FfGIO-ER2A0en5vN zy=|S=6C-`9+@X+wJl%Ey)ZO_WHImvndegfdGo4Kt6`1m$$%W^gz3Ca#`{CD}{* zNq1a!kH=vZG@*8Y>B6Gv66YV2no7TNe(?e1*YxfE!js@cTKQH1rZF!$&@L%*f>T>H zZFZw&Es0&I05#+@jj8LhoUDz}jp`VR z2w`3cLR3XGzVAt@h>Uz66q~?)b}nTV`|g%zzvL}FkUbnP6A=VPyEsn~Zq;8x5^9HU zLj^}>KJd!1OVEi(y&l6ym4VnF)6}bmza1CDr^xS&uoxFpawB#k0&|b(fH?R3p3@+P z*fGmn&xtStA;j0MZ`x&N)|y{Y^4f{bb4}Dpp@sUg?^p^6DxYofNMk{0IR+Jhkeb!XpL00x{Zm-52dwL#BAos zvX0Pivr%Ml2-(Mxy!{n?6#YmXIK}@7Xtz#q1fOR6}kygMb45FL-ojQ1sV*t^`jK?~`fvE6IR0)iByvor|)qTo=)< z@f5Gx?UFPx_ldI(qG<}AHE-zy!OZaKX%HgpnAcnNe}>1}*}i6fNUtdbPx^*2*S9~) zp_drGd;~~_D2gh{?N>Je@KI{6vUI`hS#)8V@S5bhFLqmU2rC zq~F3(-Izcy{qob-tHZ5DB)MpOrSk3h$l`?`xc*M|fxFH=z(CD+-j~Ruv8jvZf8QcyvYp0eCn7$GLchT0 zcsI>ciVzT5kQx(Ck9ae5HkEcIp}f9DE+mM19nA#H?zTp7jc})kJ*)D(?C6EUcKl(O zkae2}WU}%ZI)8@3`CNpX9I>2F)X7^0wJI6AE)evMS%nzB$1!;uHS!)LltU@6%DOBW zZGqSUCf5HYqK4_8Y(Iv=_Rs0KFj55PE&C5YuJF~8`cf78gHsg$#~hz)>voou#60>a z2wJoR!;yZpjd09B))SNt`2sn^1IWZe<|i746f19@s<*lAkyw!hE6UQEjnS0vHs0&D zNM_9#!glu)tnG(`9Ap+hb|-ZZ%-8m8rF9`sqGW=f%dmTA@WdIIJUQ`Ku#^-gLxOyB z2|YSHrr&DXUGPb*GO;;fMI%a!+BBM%vi0CdaA}fTF|Z-M3r2E0)7HIlNcXm zAv7TTSmkBqVRf@B9$OUGy}oyTj18_@SirNZca%xn*1?1l@J7d-=Hns~nSd+uHv(&b zf_E6JEX&EI%o!i*@(tq1TQd%vu!g)QBYvdc!8IxSdj2v)FYMb}lkkBCtJI-SEf%LoTs1z?TdPJ6!@X_6yY#{jbZH`>LuZSD+ z6gx!|hD(nFj)m5{i{sna5t#jao!G3Ka%N=*zs3p^w2`m>NLTE4F%` znr;k7J#!q@{KBT!7F6I-)E<6jBbBU$GA0R@X89x5&R|YJnwqwReh>jIXkD_R0xrGN zWnPxo-%&WBM)&<-9^ZSDceeVZC#UYZ>+R^SIi-}}UY>328|$g90J^q-pv)eWWZ;em zc<2JJMBEKPO~&TQ=+^?o9|#@zB6-+2L>x0t?D5^w*WqBCn8Wzwb&Ar4sExF4WNryZ zQcG}(Kx??0> z;{ESg1t55$f~(H)CFpEJ3Z=zpzLQG0A=D=BE(}7i*X=mt!~Ce1N`@=e?KCQ(@C9mQ zr9=2e3dpYKnMAC5wyjJ5!LY=PvuK^O1#@3^%M($-k7q`Yde=zBDd04Z2^zyya4<|{ zC20$MdC4y!u*3GF5~I+h{S%23DGD$8=!b6m zHtyx40B#e*Mon_N^Qz30d0xXeV(LU{3-LkuW}J@?7_v=z32ZHNr1RGTas`0*`Iv z?vP$B6)MkFBd^L*ut@&S@dwi}0V0G~V(u7zFtM}OO#2u}mv8cRiH&Z^bnhEM>z_8Y z4^Z@nq_F`qxYJUcDPOR|i%EQqsxM&w;lCiTSAcgj?_VJfVUKC*P9sq5Ihm$FE~=8= zwf=4QE6Ql?6N?JRyfUw3r4=5cMk2KP)~6Vylmd-j#e{JrB`Gn?HCRWQt;yMcJCf$pz06QTt#SFgxBTiRH2Xr zU?ehLK1RI;uuB*)6Tkl3cLXgCq-*4P9KLl{yc%E58I`J4>TBmU?%}Q>FWNvF4Vwi73G0AH3tofv%Fu2u@0pnnuPm5=-`fA7BcGkGde1FYmk8KxoeJ0=*Ug zX1-J5Z!o`$>}U7@OPhdbE=U4z`m?eD;pGY*KShHIHP3u40fL1f=7ZPpP%}pV{I63J zBoq!(^hF=B-}bv{f`q)MJHZa__5Z2|_VB$b@M(|1Sv>BEEuXB8 z`_te9>?j*1BnFgpvl$igw*Y(}naBI{Eq+LR>@Ln%(u)gfO>cQC&YMkrj0=`H)BR>ohQ`*Ntabl=r0Z(NK{+q# zucDA*HyJ-keqZUy-K+a*eX#OQ7}75Qf}Kg$;Q=iby;;_i8`fh2P2mJJPm0hCS*@6N zg+RR_=C8x)d@Bs&_sdO{@JX;DO1h@sYz+{2QNuO8I;-=%{f}ufMVV`ZNZ;c(-yX9^ z65}l14`my?9x3#TK~*4@i1EWgD^Uv+q`-;@|`)j$thasl=D;mzg*10p9`Qw#m+Sly)S{bY?ik$o5e=4AB@mpq&9g4nXjd}-c7&JywH>Lul`SJ{oM(a85`DnxU; z(xZ5KbSk+kn+9iF*7QU2*ItrP#W_L$QFA0=Guo%OJx>-FKCKc{#Yc@uV=E`WG&KfP6x4|)Uvg&`-2)0JKkp&98cF437 zBb8kjtoqajMGSo|C@J_Z#T$65ObGrryQd;;5i1cT4~5v;@E;C|2!`X_qL5}ce;lpe zhI-Jsu0$`K;P_-yWq4+@t*E$O8V5_KM|>v`I-ze@9Ym#xU@%-ear{A zvpx!+|6EW`_6~E)KR-Hn(g#kN8kS)Iw2}g;FixKFG>rX_I`$tahD}lC#O#UOTwLLk zz)ZhK(ap&8*y`JA7yA5JKY@m>e@%v{8sWj_zjzVB8}D#ptT|AL^e}N!g+N#6Rc;6P z&7bC)nn3-{jpk`?c|bYwVZ;L05G=vq4)W5;rmNqGe2WXVLAgnR0D2e?3&(R!^pimu z15)j3)wMhZrEH=N!HvH+>!gYolxYx-u8ECg@T`iI2rhMKLe1o?SaPuG?T7Z$+Ic%e zO9|c--Y5MD)76KQzCaSBL5UUl>S!)Zmf~{tYC&$?Kb{F-4RZJn+8r?MA&mVi00u$4 z_L=^0?T!W~6sBo#&86`9S&-0b|A9xHgw@S_7T7B8`X(Mbl+ zg+F9s=MI9jypJl~fubjcAxUx};t*d_B(>p5h@vZ7*lH`NA>-X_sCLj?IDhEp>rFmT zk{dkg3&ij+>0$==uvOy+s$>WvefJ1zLwDoZmiSjF<3YadAGe$AAJMfu3IhATWNf2F z#Or@j?VCWMQ$=#aK#R(FXrRH@_I?7U3QUuk#$by#RN=;-9tzv#X}jGeN2tX~5O`ng zCNvpUa7GnE$m&!mfoVk>!(|Fes#D4REDR|GqUOugM&B>jTi6W#^n(1R_vzRrzLj>? zSFLLpsvlHU!d64PP{CNR`70NQ2`@^=7NerBs!xV_A^aLdPUiBy@_>Mmrf4%q?G`eX zH&Dk&@0qEX&FE8O{jt-Ke?`yb($yq!o&AYb*} zzL~x!$3PM-X8#i`r~^(}`u!H#*a(D(n0WRt;Kf|;bH=lUT>)uBN+E_w40BYDO>_d9 zTQZa$SnfvFFazM)!;1iJtfATs?24-P(x_&;OtyXAm@{)w@J5GV{fUcy370nikEskU zO?%hF-yXBO7T(A2JG+|rQO~w^l334)pky$RmVpy3uU-k++wz5IDw6_m$K6+7fOfz@ zg`!JN4B^tEi4o)L zxK1;U8HvKU*#hVOTm2&o(Bpc?x|(YHPv7q=7EPs*oe%4`%t=mdn2Kh{dHTT5|gaaOLD69P-8L8!`Xzf&CJJEae01|p|ySqX7vjwD0)@@SJ;MQAb3W`c}q zeq)%%hO}LCVa;dE{(%pOVEE-e^aB>!b1MoA+q5kK* z11Ixkt6ewPtE~&%tUs^MZU533(|79IonF$ejbaKj$)4Tns#Kcxz6bz1o)BS<@Z^65 z^+*4C;^UL)(a(0asX1=vHmlx;!haTi4)1$lljH-AY3S1DRr-`5p;X@a=B&`wGLXnL_r+sF@&jxDmSS@g{gcW~Jw3fO81G}e zw5|_^>Lj0T@v}Ad93qBn-Q@|7^_^#} zo6KY5SZ0c$Qmr5}$<5J~UJ-jf|FNGAA;Qt>7EH4(3}OnWL7~b~KI`5m_sY(lCA_Nj zM+6$fWW{qTG)(_OKH<&P3}~FoHwm8^emN0w%4a0CTsSFEAyb(>`yiz|N7&l=iI^>F zMI&R|3rL^^0tBB#Wwj8c{pG7O$;*` zdemv52AZ_6(*M%^RJT93-&LlZckF=}{7p^-D2X*aYY=YQ8 zQDMt{KE(@%9ch!p+pjJ9ViEZ%3^jwtG|@Q=?bZe=!t{LK*`-_Db% zVvXajffof5yuk_I&muc>?qAYMPWuK>c(3P5|J{qb6t7O!9ygd{{fH48wU@w)YSiMT z2w1&$h&}guTeebVtAjDm2?!}_$UP2OP!qM@G=?Xgo70ruX?_V4hlMXtD|h3`(&^DT zoERx;5E;i0zgJM0v%x*e$9({AybDPNbZfC00sKVIS@zHI5OX@z5H@OlwMHquM(y) z5L#XKVcPNhDVEG$!?MNwP$9wOX{V~}^-JDpVG9;he9lA&U=$ z3z%6Xnz6qfzLUAXT|xhnlvZ8IEHd)-3bzPHyRi|kjXzQxr&+rfwHeYR{#aJDm@xpE z$CO()k84gaSNNbC=4^OWcON%gV(S*DX*lG3JL)>SOI(nYf8)DoD#>bT3ChMO?1WO; zAzu@y0T^>{LjR*iz^((SZV?4eKg3ftp7O~Dn=frhZ#fTAYggLS?a8^umT$4SZdM;Y ztPn;es%8HCd5eJMeKWJjnS5zPhf_ge7N+nx%mJq6{8R`;=A>Kqz*<;aYw1^R=7#fV zZZ$Ip)N8OeInp?JaG@>cwq&*L5N`P~O=D-VfbGO;Oif#yAo+7zMyaLl=j%;!@_z{{ zX5dt{qJ?j(Gt#WAq&%#1yUFxjB`^2m>}Nia$0H`mt1rd{Zzl+O#|kG!bTI3znx@(Z zgZ-mQ9SG5NdyaRGSja|?nPGC`L;^r!R^uk-%=uJpxCRG0bMNG_J8L8!K9lE&RI8yh z=XHI=gfLr(cSI%nh`j!6&hFxL%^lKJ5Vx^tP3Tqy@f?-uaGF&kZvV9Uq~LIUG%V-H zD{cJR*C-NF=QS-*g16B|#h?JvNzzoxcILP+H^1zS0EIJBf4}_;^kE@Ej*cH(`eLxe z_Q4NoTz$cEp_h&1K_a(CNWH{}Q%MYjzU9X%P8r9ialwJmXt`z^QBzfSi+k<~F@%iA zc7YsjK*(Me-jw^f;-iroqYymqvt6>vkN)YS)m@2BCE~V{`!m_< zB+>(F-9c#^Bj>AIkr8L_IAKw#xyp*U&8$_#7oyMLhq)L8CY&bCi9+d zN5z^MxnDKyYn))5&}oIbOh7RmA@j8I3oVblCn^!nPu`3{>=Nt5C!Mn#-j}RsIE1W8 z(7KZqeRuBiG^=Q9`>NF%)xrmev&lA6M2&|C9@#mMkMZ8E%4OGxkPP5MUqlk+mS zulZ%jm*T;-#PVr-r*JGxK#k7rsX$616e%Y(4K*WfGX@ZM=HQWA^b)0 zsMH1O-}IQ;rTJe*f*8f0G5OxROqgfhVA|uMPq{3fBDn|qa8u}K<{52Y=^j07J7}`2 zET41_HbKiWm8biviv<4RtJ%~O^V*~niC{@nZh%7miKV0nuYtXQytli$%d+W|dwe)z zAcO9HtC0%hIj48Y144hYN*uHEi}{Q%F!AH?Xd`biwq>S+)8Z8#>_%ouV_g2fG<+xo zc!UYyOGOf-L$(HlzUGngEAusYChlSD6gW{?@YInAxTADl_FeLlinOAWui;#U!c?HN z@p{UAJI!68IN+wd|KswAND83DbJxYU21>Y$j|hA@8dX;zNGg-~zfi}VV6rC-J#;3^ zBhS@uf0LncmtPr>$$Q(bE5^72IMjfLGN7%^6u|pW6c<2Q4$nvpZ_R4JPrl5+*WSy) z?R33?j*3c^n@M}_8r86Y0cu`a(b*J3P_0)l4Xhf${|PbI&iKQ6<~0ntLL^8k^xBU=E%jPcaNQ{A+mNSvCV z1llbNbEtdZ>M%xQXLz~>QiwW;rBJKx2#uykXg3A@_f7rkY(w_V>yS*f%z-H+PWGB& z2R)vGIfY+pf(OaP#ng3-wLFS`N&&B9?*i^9g4eN&n>nKZUWf$Wn@Y2>o!W+GX&+1R zR+-&jlidpydjKpa`LkXBI7ux&faipVHlJWs*5iFBFF#r3)%c<=iw3g>p~5&)oS{EUKX_cyE>Q#;k{AjsWsUqv>u8 z_pV#pb%%u~!BoU_;7Mmc7r# za!JP%T)w4`2K!bm4sr3UjX!&lA|^5? zMbNUMED+^sJ$bM2KsKkUqR6V9>rVh+L~shk-mD=M3iA5o$Oi7{w?`!=s8bGs{JrX5 z+`+uK*ak6WxYOO88l~h?N0LM=os*nAsiG^XDIz>rpGp8D()xb_uTAuwL>R=y)a3N6 z7kwY_c`CiO^Hg!kI!bvgq^t2I(2*BQAb)6hBX|NI#C_-_=li0`-x|0lO?3q9mivV! zU%d1k^d1ttN5zBMx$A0fwZ;66HKXOo_}4}`?`#i9TU!mhv}FFmShU_J2T&1+XINky5^pN znOSG%eB0cOtA-BV#e5XlZU&_g?$OoC_kmI{N{<9;ckX(+u9=q2`S8IJZRhZ`v!%SZ z{To}%aHUWtWhl(F`C*%Pj6(ZK?t7B)x2TVLvlK0l*ufm{V&f~FHMb>f;_L;5;B{nj zp5Kt!tB*%-tn4+`Ih|X4QXVpmhPWtyXv?(~YJYmV-O9@DVvv^m>^$s_2Q3a_oiUTu zr_)ad3G>!`I_G7N4RW+s2D>@k=E|=8R zxb;cXe84SY4XL;g+(n3O3JrM4H~7Ya7d0SLdLSM~IsN1Z9V%tvVBko0vG@2Ozqg=mlfNHe6~oif zoxm$?u|t4<0_OmV)n+B(zU-*P%Vlj1P?9R4Tp_>X(^ZtC2M}(vuK#B=D+h-hUCRYh zrq?!M+dQ{P5kofmq|z*GLl%=DGC3%3P< zW%-=uziCeR8R*?J)@9Ll2%HCkvJ}tbE@Bx~0mXwswEuZsR*Wzi zC`EKHo*vXOOmPE~g@iF2O0a@ci1Aca@X;ki@UZJ-|9c)t@L3^8;-OZgN{}R&5G&G5 zY6Qa#Fg$lXgRFY)lQf`1x!}$RB+CZQl-8pM{^$?N1h8%B3+xzw=V3AMAu&ErkCf8+ zAgrg7+pO)aCwC)C##$12%DZM5pQ=PRI85mU`P$r#8;*KrQSM!xl_#MS%6Fq7d9KxH zzedQpW9~K{cIQ*A8+yKCD0yDb?xoxI!7MNT)8`@MPIq@;e@Whz z;#WL<$MTUUH>rDTLl4MwUGWSsZ3Vy`s9<7*dl`7q7$2=D-R-;h>r>+T){P!&us;hM z?MZF8BWk4FgR;uN34iGAI02H%(460sXwqX7`I(;_2$vaYJw{w=1%%x{>;uSaG3!5f zdyKl7WBwKTEiVObdw8f448*QlIXMiZx4qPr;5z%W{|_&fou|0+*$)>O+0#4t-?mt}^^AqTod~2m%m<$iUK`OT{N3jpG&w zAeju(JgsEEOYL*3#vk%5i*6eZpY*W|mwJ0c0gon_LBxs7-Pg&<@T5Y%wBO-5q5OVc zy8?Z<$v-3j?4LW4I4v|ZLh7hk45-H#YJyuzz}OE_V`wjM&sk5Ozn4c!TxrP__KJBi* zh&~y%9RCwst3WAkhnz%k9AbK0rl<5Lp(7orzm5`aqe;Z)d7GA$ zKQ^_yf~PvCMox-{_O)g8FIUkD zq>nMM)s$=c83ngnJ>TjmdAvOlb52N+f~PtprwBo3M34T^AF|7)xs_ciC) zwp_PG6g9?AeMRu`9mx{ad)S9IJyFr~JP{Xfro`WsC;>g8{$(Vj{Lc+C%U#?WupMd$ zcRNpyTkj_IBtJln1V)Lw9zm96S1g`NEXaTb7Isep*JCRTjik{zr2{yTGDGC!(9Z^` z@?k#F>ot$3)OMm)?($d}a%i!X{&OcLQa>DN;VCSVqb~3e6%SGc*JrjZ3P7q$Kp+Tk-q+%vq}d8WaA;j=5ruaE}YJV(Rt&309)i*rvX;SAIM*kIdgqhfl( zDb>$XEIQru!j{;OctwhF4%*OIg-qW3grDXJU^%;htpQNZM5oJIaz82IQ8&-^4jH%1 zm`Y>Bc1+LRuJ*%$)V@o9hyv|r4e z=dvjy_F^B*>wyp&FP_yAb6XV>b3PMel6EJfoNxFGl?cr&eU?b|Ce7H?cgQ-WvtVM) z?*$=xfcT@ZZmhjs&mn!3fCQ^Pog|AwtCOY~%;~!CH#a6liF|2oPC|l;w#Tv}nf*7I zvx{@0Uv5g8Qa9XLoH;(oK1_3-yE&sd^n{S7LUEu#@)Pn?c`hqXw?Vs1ZuG4{EB2>= z;)MjQ2br^;a#(PAO<9$>$NnD+6p*1M=eiF;?~DbuIVQjKu1kUX!$2uIAb6O3KR@6E z-ebn^tmu(ThxDz-`55Ov|1ZY^3P0CVL6uvhjwnaBtU|?_{`E4!Z6Vg-qzs^AbUnfJYaD!6V!5vUSjPQzwOc7Jxb%_ugnhwk> z$p4E^LIK}}eoT1g@=Y6$S&1#-HbfP7HMVvCs$dbt^mM1KJaoo~Gvi~j?tvHe@zKpB zh~}ajn?5rDa2Wg-aL^zcJrMls0vB}8V~9C=yk1$+Va|vc4#g>T$=>3vw-k|pILBgK zb+SgU{U-tlV1A2k_jxC6+)IQMu^K}<=7``15ET6jvHx$sV$3VMsrDL7tW;p{YcH)t zOmTp7gB}M&wX!$6(L0I%z+#|eWqP1}?W(T*W!8W48KAUj@j4`6cJ{2x;?+Ek3{xzl z6t={f32J!gXH8(TbI~_rV=h%-9!(iaQd=GJQ_5;~itzvYJo@0pCa0(F&uo{)vq>Ep zuoR;dg`h<_eDpgi1OppJnDr5;A4tJ{{s~$vHi$}esmdn|O*q1D?lJ^dw{Q478Jnak zgr|e%T*tC-26vk?i-U*b4@xxHaOCORrGuP6JX@c8>M%gpA07GH>?u>@w|DDB86AG- zjQa~MTTL6CqJ6eJi z;xr$AxR9{Fc3;0b5&B8e`iS5yU0lG0`$pNTr4`rn(p*(R(8|iXMEQK0)>D~vqh^ej zi~2DEncx1C{Y;_eU4=`mk}RF;+votgM~)Yb#pbC`p4v3a4LqsjG@zPQS7Q@l^AV!tTiZ7ghwaB*#j|Q|zkNYDbe6-RV7KB$NlFNF^3FKA1NDE};@U6WPuRZ3PA{4qIb(wVBe9^>hO)0tSCsM$(^Q%WXP0vJR$ zWaXI>q&X)E{tsACBL=*(kj*<~tFPKWD@G={ywRL!Kqg1A&I>_XPqI(?=#{Yfn@r_H zsd3$p_6ZTf&pez<((fQ)qHiFxzJ}2+--2jlezn|5TpPaEs;_kI}S>uqSjU&LII6vvW*YzhvaeUBa4^@fZvn$xHH)Fv}BR@M0Tt%G+*z z#=>o%;9MSmkF30J80We0id(ile~5K3tP9;0jAX_R97kqUi!Ec+eoBn`+C&Q{leI9T zNXff)z7FncAN!UpU!`Lzl9_$u;-e$F1Y5OIGPAPWqV(PVrdD9xawCQtP$5P?SrhX? zMOq0FhF%LVkG6(e>{=jt2u$Ru@zdjO;=s6Khu^6wD` zr?@;6UA~v@3v4s|wU?xx(*c4L0AD8f-#8im3|W(kALP>#{XdcG7RHLSI~USCXGT2d zy4m;IOmR!T;NQ3qkDlER%6<2XZRC`4mFvM{y#&KR_oNdF_`!a1PVDeWSa zD)D+^=hk9RRwQU~=Ju64zV`p(UW|iM5?(UQvR6yxY0hMM5i9zY#1@8Ub%e6my zt@S*A=}QJ@?wNb8^E%JteH_=HWF89m$W@eMIE1f3haahfsoEpuDG(3%T{UpWd+8;m z01nYZTB*LlMk!}`X8Wk|RAiX__w?T$JMOs1ngqVotTH*>G)tsiw&kkr()oDIdx_2t z36v9));}vlYhX6;0K!Dic-ucaYf%q!@1(12JDwP6r4K_jR2T5>gb3`SHZP~3#>P2P zoyWyWttM$q$XUqXA0|Z%Z0m2$WSKM--5OhW@yYXu%r;2o?m&CjXS)>?dsy2x(A&p0 zVczi4YjLKy47*esG~Huq>@gOqoCzwSD?zhY@)7qMz}x4am-jp;=U{5?NZfZC|0#5P zK&S*e$}4$_j7Vec?x&g(?J3m|X646;t;hOh*KiM>(N>H*%_3w8)Kr5K7l&Q8i*&S{ z_wNLNVYS-Ab`;xON5Y!N(%JU}e6w-)iG#p)@-pa5&%t(Broa6i@*wG*Bp5(lJgw{l zxCf8nQjFHqNOjh*p^t0jvirg_76v13{X+4GPmcOd;?hE@#cr198%7stCN{L@TV01& zf?B_<24Sc93l;LLPG9d9DZsd|tvhD_tx1YP7q z?W#OMWZvN{6!Zq%>P=M)ipl#|Sb7i0b`o58o_Jc3tWGvdfEy;~0a1c5USmt0Fpp=_ zp}vYS(a0F;;WO{ehPv`-x|70AL#0kP{Af(=jz?5`6;DJ`Xl998N@Pc_cm6JFjT$E? z?%+ym_n@k8un#ZpE-NVmRX6DL>Z($8Qqlhf9()kw(4t~)qW6aZk%hkBX5`9Ul znlf+uF$2w7Cqm)==yPp3QGW0Eo=Ws1%h0%H2Wfq+7f zsmg$f<&{_H2cJnhh-!e+Frht})!QQO>p3rL_FBcoaP3rP2twZ(9*rE)%RWr-X!3OR zd7%1j@70G>)W#KfqQTHgzQz%0H3Y=MdT@y7)*l%98=tStZU2C+0%jTH>QkGQ~E#b(x14 zwPAEn#Rn#?mz9Y&s2{eS9fECc8<7IWp{AM^z;UQRSB>i#7aHj}D?}nF=`j zcX!Mtk{y$+gw}vs@*7dHF9+%BENLKMpg*8ocY$9ZjI);@WIquqoU9b_!0!rYl8%73 z#l?qh&CK_e9~&iM*2*_y)h*Q;1A?cj42%{J3OjX6-fJ+no86(}l5(!d*2k2N?ycy0 zYb5oIF+5agBMjncqkg2j*r^P=cX7t3LBEdvo%MLGkKS;=y{#tE(V%VZ8#WEe>w@kb zKS|Vn{i>X+P@sEqx;IhKT4VSp@6&q?Jxvt5)_2ZRR4`mZ6^A8LILWGFUQ_~F*_8{sU={K_ zqd6%RD@1bZo>{});^b6DudQMPSq%b5_-!Yvenir;8U-~h4!?T%XN_X|=ialk=D&&b z?-YqDD6H*7GT#cc@Hx`Ebo#sXl$ui)e`|s@Xn;ZXgs+_vm8f?G(1umNYyLpWG55uX z_ozVlZqUJV@BWHBFkd8qeLHQ?*D4_LrhsW4)=@Dvwxcb7WeV&Q@OdzKCFk(@z4>hb z$!=O$WI|X$=!bPy=4G${M0E(Dc8H`Q*vmA5<+eIiVOoqa~-Xnv9lF5BJ$F>mb+a8k@o=u{FocTFTUC^1*Cdj||9Cx(9 zRIl1;QS;w}`2;YS=S|6xXVfxuKKU|TbLFguB!Nv`06Nq#eq2)h57eZFG<>bipb!76 z*}^;jQ)>>z@&M$eaM5dmBgD7sk85@Bkp<6qOgX2ynoPFxBF?!{N36)~D1I2W`iNmJ z^L`goxf&TAvO@1@?^w7cNN06_O6=g7q~VdOC%_+(@+WB4WzkpLkBoe>!4^8bXQFCx zpFwo`mJ4U+d+bevgUTl1wH_|pAW;PSI^{E=uO4olL6`@2XDlJ^FP2aOX=MtP4+Lv+ zD5Sz|FyjGKex88@m6q?EwpDZlXrvsN>vT!#%m;U4^h0;}%<&P`=>@3UP%$^fL znrwyXPoDR^auw&DVmc0*Hmhoz4HqqtOGRpvR2AxCsMqA-SopY+L*XL+s5mcS5W>JH zxM$44E6P&Yo=EczVDd<>rQcLFFs&=kWLzFC=B5h$HkqXNFOu-0Ht3LtJB?Vnm##ZV z|7WBw3S9^&gbdd9y7rko1IzmxvUC4rf^Hc`q?WVV>vVZ^(&Y zB4xbzB;JrC)+0i>oX@OZvOJD`zVA^OyEXR$(LMX-X;tS?j1O^? zaDWS|*`gZnsG6YzLE>Deb!T*sVQdloQ?mrGV(WcjhM!7Vr9_xM8qMo7O*N~Z>92|W|Eti6h08T|vRzkNRcz;0Gm4>;k@e#@pnbYM)T(B< z73=0{pXCtCz{AlgzVwq4t{588t2FiIdCP=}yQ)nWU;<~u*4Ts;CaQ9CK25KyCwgqP ze>BMX7TPkc*!jsW4fBNP+ET1rzwGpxr|KlmYJ)V=XBny*GgODEjp=GJK5m}%(>PfX;jNih$% z?Ujs2|0=m^?9go6b1<$W$l!haxNbk}zZ*yszs~ zcNW9{rugt+`@Ok9cp^n<+kWGk^JXM_{9oYO9#r01`^U92xbzbh7(9cH*eOG=<3wsI ztMtTg?tjb96sStz>^$*P@8>$S2vIl?fh^EMVT+R6cY)HH`wjB)n5Js&pMdgUKcj>t zU-G)R&kFRzd<{ZaU3=U}q07`5af&xY*O6Ax0)BBU1z`bpO1R;q29;Yojr*6M0ZQ=I zRkFVNRr;~YHKLmrB0(V!E-S7vSlN&-tG4LKI0=M0G;;E2Z@Anm@}S9Km&np*k|-MN z;HQmZogT3+G8NKLw^(i9zeQzxV`SQ8MK6@J#8qpOb~G@4bfTt2+zKM}~I56mH49A`ToL;u-K zxG3#)8v_x0>s){hMduJ>oR7v(_)^lVg26C!eUp6m zjIzLL-m*_L_Q@afY=cREm*^a4&TDj#=i&vjz-A}n%OzyYb-Ult%OO(`O4G2-=xAl7 zhqnc8JirL7tX`%IG`)&h%rcd$Z<@EGm|6eaLC%CY+|iQ2GivPKR)DLNwP^8xzO$@H zl|dv}?~Gh#KvmvHx)RnYZQ#(g)jW^6cM-my90=LIczD!|3;w|B8aME|0m-&vgUW+% zkAIrobIA7Onuzg1G4^-#?Gi8yVTEsBh*lQf6OSwV!f1z#j&>h_zQl`4eefpu^Xl~= zkqDEmbK`WOx^2z6bwp!j9nyE$xjeH)?wJjj-M312TiTP^wO8ihWX%`o%%R4oEK>*+ zBkH?WWb0X4I7ihd>qztp&E#a_iIL6E$)l!;dbi){dHH@WS~$Nt$nQW~hH9G{jmVpA zYsRgrpVKyb9ga9uaox4QI_pue?>6Ap8Rb2-sk#Mbw6avTUjI=|nG5d%Ph2C;M5r~F z7xUCdBACUyy~Z9Xq!5EHNh}}C59=Qm<#gO9D7Qtj+n>8!O&WchBhPgbew9(OUQ{a| zxH53_HAY*y2-~7nV;ka=Zq3pl#hzZ-gh@M`C%8dWECA(gtBQ3bx;~_))=en4f4o$& z+gvN^V|vJfjN&Q@%CSZTuc#>3XKa;n|7Z40fe|ULynfoDav7eod~(fg5oe7ySne)p zZ+|xJL+DCdO2k02Z{AvQAQo-t!HesGqIM)0bk8GQDXC)_`y zaH_HGd6;)B4lMM^4O+ONrw#t^7|3>L zS+P-nMV+s`yx|BgWdpeuBCXeE|JjG!Q`6aCfY-poJDpqh;G$20rsgVKyN+NjsC7>< zpoH?qi?#l}-ICB~s}zR_!3`DaDm^35@*y=X1Rk^Z5p!-ldezzh|Kdb;jDf3Fm6xZ; zx9g9p0=m|Ew34HEq{c%egnM?jZHA3F>%XP9_gpT)+FBWX6mfQ0&dB%)=tQs;&@skY zP9x87P&?NF2ycm0$@WRrp%A`-xKr222jkRy{d-%fiye2D9x3z?(xvkNTR!c-`%1uh z0XD|530`P2j)VZ{xYFS^E_Yw9$RK`BVr z-m~QGOA)v*4sbw*i1Wttnt~A2L~wm7$-B-jKav*rjYggUKn`0D?ORtUsQ7EDq%}WI zydSJ<{XvSV$!5e&Vcj#e0kItwJ+WLtppgV7HgCR%q`MgOonST%u$vkJ%;bj6X>smf zr^A=aJio#@IM|F1!+z#+!%@HIWai$QKb}dwO&(N#ZFI)m0MO`@^IOlPRpQr8FJ9=` zQT?36nNdA%^nb}ggtvw_$2>fQW;WhRyXj9f%Lld`&fZIc>@eCd}sF3)mhQ%Ghx>j z2)or)DZjzzYqSTQnavZ<2mk7aSJtcE?bqcgg4&7|mvaHkceLYu{3VdbkzRONYU`K3 ztBRl8{dpM3)4Ka!L*o-<)-p5vQAX$;-_;kFMu!Rt(=`r+l$SCVyI;|aW*y8`IRDKh|V-^wPVofqtRn=d`=xnpU z-TI~agKE!r9(H;1F1icC=L=a#djb6$;EN4%&y#doqt=`~h>C)3gD%WYde(X=1QT!| zldG5A;|tAZQMVAD{jx5x8Fj(6m~ZBGa$Z**7OYaSn$OdT`3+U-+QjXRM60XIW}VOL zGbLN^&X|wft&#?#UEWR=dj{-JN#YTWNimV%u8sQh!5pW9kJ*Jvl#`k?wT%RT?TQNr zB}%}2c~TM`-kmDT21uHq30&CJrL!I9VC{{6LU*Yn83Wq#r^c1<<+K&n7%@KnU}Dzb zqmrbzwY_Y~psu(jo~e%rjLsSfB-Ybo;7HWSU6HcjG`>ZPBsDYgZffw0(y6yAE!kTV z&NfxUE-7r5&$#=VGBKlJodw={Zu`DnU(NVh*Kje@p2-!FD35#CaS`!Nf?x7A72`ma9`} z@+UwG{7@cgwTczze-YlZ?r2U3?*TcQEFc%?@x$N$Hz2RtNzz!}PS2x(TjEJIegxFb z-j_%JVY3XZA%iCX$70xnzVz}N@+dtdBR%c0-~8TVg9c6=OI`;LDFk3NTd;5dLCxU5 zxo;jq_>vZI$oql(DGc+}tqSedSHEkrWN>~70=f>}d!1jQD92dHwt@i4(&(E_3YbL? zh!3{p#g6}92K2YsT{vL;)t7tXIu0b~YyZ5fUh6`+Ko{3u#-Uuo0r8T-9Pyw8G~a+hafH?tKj zoA{%B1Ln88Yihb;RlNb&nhmt$@n{60aBb;!#nw{${S+TZb;Xgw6u{lzD_EY|WY`(^oKO zfmub~@@n-UsIH*~)jz`;ZpsOl;OgV6)+Roi1{&?FK!K9t?}vN;29(%w;&#o7z%|;j zh*t6w!IRmE;p`_a5MqtS3(>Y~{*gK2exJ6zaF1A~FX$OfU?1#mC_yP#Ni z%lGLT>GEgely?nixMKTO)jcdQQhtcGEqz~qj&--HI07BJ5H9@m2JRcxgKrxQ+^9MOtw}782LN&e$LFa{9xh zKO{T+Cz)#6-`8ubpeflnG@)f$2#aptz*md@tTqRQ_iaeTHwjY3Fr^q;2z$VZbGyKz>S| zT{26N_@#wtA;;A(qWThC0d5Fc55-H}8xGC?02=RsYeZvqo8U32~>>$veZAb+5xQI{J1=1V`wvxeYMQir~UL#ZFlj z&;mlxqb@12 zu2?#n@G9*zLODXA0@r7n(4nt4g4VPjyf&wKLFv!R$Yy9&)^!m*D1?2v%kX}Ex~KJM ziqo31$Gci8M7F5gk*s;*kt<@koeO_Gf*xVBg&pD;@z?bTgZO;4+r()iU z4?{)_>Z|`+C-$)AA6njwYQlC10Rl-9+etjrX>O|PN(bTiKedL za=?g+>F8w5#oP8}1L0bZ)Cnrp;333K!umRH6QeW~Rq13mMXz~| z^}p>bR650QX6XW>xrLTG9Qz^G?Yag$Wtg%Hy(ts|mW!go6gnM48jW{9VLPNN+(*31 zPi>cO_F8fqz?;09qEpOM!i}!`;CA0^X>!S-lEK?mwTaTTSK;~S-Rt!R59~I|HmfVS4T8Qmo}Y(i8yNplDb9fs2G0Lpjm@yTa#99nB;Mz#<=}KR{Fui7 z-XkKNn!iFP=$K1z{M}zH9#G|s5T=v(*|&X#AU|dZW3)R3-xay0x%s<4>j`piwW9gX zqGA%fZD;w}eENg5jV3g=c8wF)>ZCJ_4<%Y>Wd?x-r=>yS7~CK%KdBID|4oB&QJ~bj z-rzRxmz=y{O?J7qQ_(Aap`>a5aSLQn6F=@LKdP`F91RsD>_QTR{|8+fB=#g=#gPNt zGa1_=2dgU;h`?ovvA=Imo`wP+6IBG&sRanYV(Whb!PYKCV8xYjrN%?zDzK4zh;Hcr zkgN}wGT%Y7f2OER{%=yu+ZUV=_RZ+L`sII2i@k*`yhN8!lx}@?==D3E+VH}!ci!M8 zg;O(Q2f1Aa+o_d`3wVFAGx-T^^U7fURMz8Wn!9%#O=w2BH@yGT-QY9Nz2KY-UOBnK z(bB-0nF%Yt)lMCOm;tSHK62YxOroCM@nEm}zgX_$Tl;!$Q?``E6F#O19v6z)d8}!o zGtEB0XB>Zn3=ymVU|H8N%7#ORlCPisbx7OY1fiyyp=LV^8_(AVd zzjCf{s`kSE)rKzppBL#r99%O%K%|^3L$vJu>F&r;O}D&{=8@HOTM2q0tW3wOE_9Z1 z6Md_+%y-4zg0t9Y-$v6T*+n>CToHs09iORPW%chSt|nJeT8GB3}Yxvx-f7IM1z4E}QHh*Xit z;Qrf9LkSB?*?(c_#s^f1uul|kP-UI|Uc{putxh*O1FHcD%UiXBI&?ulRei6-S-j2Y z%Phby`@XUaQXefX=CqPY-lh4FkuLe%8^qfTo>(^+{YA75=)?V)QG^;02PyHtpNjKB zg5Ho1(>W4PLk(>|7WaJ6XI(ch)vx$EdEm4rt>q!1{!|v%sm{111%%DgHoFPqPY7k&m!C5;RxN%D%qH7ajXQnLu{%RQU zP|OE>u@nudKjPD|ULXbrSiI}qd%U`11+?!6BqZflY@T@>SFWP^+~Ht=@t2MEFgE3) zQ&c}RGdhjKW`RXkXLpu^ud}IKfy8@iXBdZ4cjRttqK79?>30&aNr#8&p9~IU8f;AL zLi8=4h15JONKBnNC8_Ea{phi|a+3J|G=+W)oQDq^z;N%cNvizwupx{7%7W>zytIVo z`=rg3eNx9u{lQ%EvC!<}B{27@E7zw1md{49c;_Q^t#R_m!A!c)UmmIAc$Esy;o{S( z_(w_EIOPGKtZ_X@ogkJ0={+4moX)&yDS~T_8RFWY+R-qnMNTj~L2aU%($fcLCPLL5SH;#z`@%`W}1o*h6zMhy9HR8uq! z$}t*puUYaje`XpsyonAf|2`Q9wsT$<@56No)JhJ$UkrAFB$}~1 zt@{;upRqoNcGdDFOYMli?!>FGU_Nw^?cSLaX_qJOA6tr4GFQ^{69@-c5hVd-cQ}E; zPb#Sgg!unclzNyNwNnjQn6x`vW4g`)p!z!uYlMD`}Q*whQRw*&}`q-De|>`$jZ?$9tdF+36u zY)l(fN8o3@2pM&`S9vU@o#irlGlc8*@m;U>o1HaZ@*B?E45ejKlDR$oyo?>Ny&%%G zl4z?n9i=UDCZ|;q!@gMzor9g&FVw)-7TVJWYj^wJ7K%B>k3s9AV^OnuT6ZJ4TmQG$ zX&6{H(u52@(K$ib%v?m&w8Yh4wuEZ9gDocc=!GNOq)dlbi!QD%cbN_Fx9TpN;f*G6 z&TL9piJG}>zi#Qm#eb?{t<1jUVs@a~-Ra&?x1=3pDj(3Ci%s-lce4PhKaUw2X0i<; z5EBU4d^hhqyB!n%)dOhQ114){7zzlYa2$jz81)|V7fzPr)kPtEi!X~v#(ttpJJ?bD z{0wlqMwny0n5h>sMBs|5mm|5;55*m3vQ-TC#Nz9>Gmy9CjV2$lAWL z+5YwbomYq8qud3&tf<*wgA=Q=%Fytr80n`axpyx1T{fnZ1CeoC+0mx#dO-ud!EAhn zIOJqB9+<7zc(104p?1Yz85&9AAnFbRyL=txn4pR!mhBt^8LUzP$yt9VJ^#NVYZ%u@ zQ(nM#b2OlyigWbI&)uesquN1m-+&?iMfDGojtai4Gu#~a#*O2f8n$?dzO3vQRNZA8 z+-6w71B{wqyMES-pq>VvJ* z`l(Nam;Ht+>JTA7uXE1wd}>ysACk%GwC>+hgLpCy8zD?$2|_fIbEie-HXA-wcEX^9I$+-s9!LmOoMvheUdgJRl?q~H5`i$93 z8I@d7N;jj5eb?&@G-2Dq*|Yli87g%ou+l`1Ivo4~=6eOH-F@W!?r;|JAM|lrMw3u* ztc%Y*4F*&>KL2|Ij$}VD5c4qwaqj&Y?ceW+7xJUR?wgLRdpNp;N6^_sNueLL{=1r6 zsuT-|p&fJkdd8YG^%r?!r1WifF{uXk+Avuqp>y17Pd4X`O%k9%J^W+ z^)f`+lM0)s$SXcbjI`N33+d>u8Ar&6MDj@aCDVAjF&7-0j0XjRg9Ly-Y16Cs7ZO8v zniWH6gF|$XOl0AFz=+l5a}G8Wb|MESYYcF{bJ6Qpdk5YJ**}eB6b|@bkYismd3oDs*HpJ9gXR)A@rto*CGK}Ac>)^O zW{2EcX!gLScQs+Ywd^T=Yh#8|m-s1xjr1q)g^%DAH;vKXhwG=y$?nOEXf*vxkeA_? zeMJ3QhjQOPB=o5ZWskLY$mRd^rYZc$Jv@--;-6+5>X0fsvz@kwZ0mD#ad5c~1w!;7 z^JC6`g~^|#+;O0uNFk|0A$)|;Yz8cOXPh_$SOjK{Xe~c4idt$;oYN(;W`SnYfd=;J zpBmW9a7`O8z@OOSa=pC$T1iG$h7r}LFnI+$5|?BL^ZbA6h$4oWorApx3Jnu# z=i{ZnAk=2@(AG2Ey;27dC=s!cseULnZMGYOh1#SLvu z5gpO_;df>A)gBvdTEjlaT)|KCZO9zb#@(Z1Wu0E{KC11>QB@5Ja-dIowjtz@L-OcD zzveqcYK_(6^V+TK4-<^1J82NhD;!nzGUk1Pg`93mnMTXjaVgOKO9r(s^06>G(W81wr*TX?J`Xxew!}o zts%_DoRUGyrX^O1h~inIv})Ed5;Kg|0NO8MX0hO7g29j0ioqNvSBW6XUTrSIB~Z3- zsX$MALkFX84Ou923_f#%VnhgIgVUki_l~;t0TbpGRmb`toit3M?Va!G9+>U-#Pc+& z+tW6hxlKA=w>31-E%f~5eS~CFVRfxQ;JUaF2SZvoeeun|6|S*SeUMPP7t=IwCaxAy zmG-YIA9oNfi$sEye!QAq zRhrd{dg6rLN3W(n%nE1;LDTM;JSN`fwNcfn)Vlz;r;oC{Q#kfT1h42g&#u&rL4=Jf z^s}LU{SOYkAoWQZ5eqqX&(f&dA(ATbZF^4afAB%!#vwolAQ>sXLl2IORQ*mLhxPZC zD3J5G89HD2+#K8K$yQ2to}%PQ;oLMm;!3e-ou$as+PKr&ATUIc14C3j3pL@3>9$oA z>6QxpMry*pOi`H_d(3@5=QiD-hMUi_!qMpu>P$nvvDctG>sD>7I#s`#z9wAEck>}# zH_}&2Hif174P0++Q6+SdNj~yboz!T2QPtzb@Igi}uPf-LDvG)wqmlN8JP&!q?9#tw zZ;AP{z)+#P3-~)RpZtPXQHsvt84M{iM)P?W!_hV zmAD_VB#zg}Eg4`3BkSady27Da*_i6Y@W(`ztk!-bmZRb0gv!hJJ%H0IN@V1hd8Y}o zeZw)a4-YVrFTu@7jk?7RQV31Vi0O|Z`%3#%QHpPsP!IPG@xOu`_A8SlS{lH$Is9CO zDcG5Gvn{bQsRNdiZor-?ucaH&G<_SFmJln=fKQ;N0nCg z&slBs05yWf(O*JUvXTCs&6y7V0#9ExP55C&%Y<{@x2M-vwb$CXV!L@T6ZVL6zs!*P zsXoz1rQ);K<{Nzmw*wv=jXAzuF)rC2uJXzkPAZcK3IA-hq&u`8=NB=XZ>7)?dMI zA|v8w>~Rs6JP$}1(}xUd;RBQNANBV&eBf%*`K`~^1WNY@oH!^k(lrwglC7K~KJIKc zzVS#q$LRORH3CP}pYvjep-3SKzW)$r#Uc>C(({#c(-EgxuByLH0??J%^5A^2V4zvN z1c4ww{?6!-!)f_~rM3=+aPm_WJ-E$}vzcI&W>VfsZ! z&F=dqZ2vEQv0e#Suoe;Bpc=%4?c4i0wp_u@bhjp?LS8#W^Dxg;Tdheq3`}`F%+}$b zXH&85ly{pgUL|49M zIot#8`J=?PVu9u@swj_kw7YfTy|TE>56U-WW^0?eov3Ut7qg`OJA7m#(Y4p?hEn`D zeUTA8cCY5}Q|hn)us8M8kTYY|2FH(gdI!Ysp5OCNTLA}DbT+#)W244SDrAb)I?L}l zG(?Cz`C#t$WLej37`n12n;&^ogmgj+1dixBFk3V1^RD%-DCbs$7p!{7mJd#}$1{`P znEiR145mH8JU>lEbK?K1=Q)#;WNq-VMJUh9^L9q`#X&t~g0ZsmIvphNZwPY4g<>`x zB?{j#{hP9{(@3*E4RB|;n1u^S$u6Q0iODrSr$&4CRF zxD$bf%>{<9-6w74ZeK3a7VlqfaGyKZaB_T5YP#4X52^6LCcb9uGeUFYwuiK7E1nIp zup6~5e~pGZoV9@B1)a=cv&LZ44TgmP1b4A#u9>Izb5ot|QC%KO~3_#rElt38D7^th=D z%^;zS1_d{D?9p|>H)za&i3rUqvVVT*ef!2Zk}gL($2p|3BvmbdL`qZFdVEGmMYt|Q zU2$b>%`>cWwu|(F+-08*v)mt>RJ`N^0??sLJS@e0ntq4nBf18Xq=VGXU z#~JQ1-x}>s`%ZWgAtz{VA+K*Xq3Wtm1>DH>w>stAb|gXM>37Bl`{Q_D(RlO<~b_H+@*t&>P}o+A=Q!cm}y@I5u*rws|qanFdkfZ zrlkaB&X6PGo~v^k%lF6W4%8n+gmap<*-WW>SOj~cIZ8?zYV8@K-py8_=Za0;@z~Mv zxoX@9p52&-;}r_i2Di+47{OHZL-4kl?Bz(hoVtQT5mTeCA-8>NBN`{S`k+cP=9&G| z=zQvn7y8|3BrOeeuBTaZZ-BcU9c_8hBd-D_idmI@%+BjCK7Fv(Q@#1`4ge*u77bA;f zzl&13MixH@_xHL_gr1!o z)h; z6e;oK9;ybBBHQ7esdHk6N7{~%wAs;ESxtFWQVs_U4SWFMBQSi{%-(VLjaoHNb`rT*$HU{NNj6B`LF?*IEni=qw#5YwH!1+-d@1_AFZwt()Bt{9E&UT%yC@H)AUoa;s1;kKb1;)iD2Ds zpzHx1Xy10Ix@N-#TeHxEo_xBTdY8dXn)WK_#{YB}N)8pA{yea`R6+kDjLQpoemcMe zFoYvIwr?t@O{|&(n2!y~wz*QVGOs8kfOAXUZg4eyO+aEA z)@#smf2f%InKiDe2I*@nn56}pR|aLn+h&5vgqXb!=eBEjvWt@WPP1RU3QF0$-+UKl z6yb3htzt5(?)-Us?mr2kq`f*IqzgTDN?nII%}xEwh>QzUxCGZU!-^9pg-={W1wB=> z`QKrnRPeczi?69O^>bp({Ii>zL@nox@!{FANxpI=)Xm8$nZg7WOsSq4>PscJwaRzX zcm|IPdtM1kyzKy0N2JIzQOD#tZ-|i^VNb-IhjHZELx?ueUB;;)1XU745`B8 z_;yLSi?SXgCuUMtZK*{|I^PHOHsM8Cdd4^{cW%T8NF@uCITHeGtf#?jep}Im zXiu`Um%i`6(4vSsEE&B%K{5Ycv@GO(6-ia$MrbC_;X~h;VL&$Ibg? zVLSUcDUFMYCxw|so!TiS_7?IWJRDCe@f%24l6m#2O(s9ZGZ~ne_ll)myO!5@^`1nP zx5^BIV_am!Esl9J5~x$k|KDVLo&c7>jH>LygK@pa`+G>62wuwc?6kBBH8Lh71-LGz zSAR7klH-TBv*9n^NEy@WCYCc51sqbKq8CVg>?cQ;X-}DnrBK7FJfYi_>A%VxYXvn=+ry{j>a9kCU8=QF6~3LAAM48%_L620{@I?9BWoF}sk1V%d)logy_UcO z{wUUVzY+gY@hY~AP`N<14om+}{~BC@ASW(JHYW#)a2R|NFaAmJ_yruwD9g_a!u@eo zA}P0Il<5psb#BMd%?DSjw5ROgJsV zlyP2u`^0u*Dx;8n9ieh8rsB{h8?<@!WxQdAi0d3X&ZViFBuwcqR+*L?rxqW9g$%l( zC}qD<%PQ?u>;?$akBi+d){7vE?}y9yB0Hr^DOJzhW5=zddS z-kmSBs5|9=S!w+dyct}TZ?4guKU26rEMVQOp*F-56e!qE$+?D^=9kCjllU<{1gHJXW}YQn-GU3 zal;|0>PWsAB;5d%MixbUXZjkkH?y7wH({sMTA5f*_|A_-*rP;(hyLc{5hBkZ z{W}A)xjT=)qxYyfRPNJ3QwpjzXGZi}1pVn3wyAnvC8Y%MZZo&YTUYZ1a*5ubC~4Wx z_qk4q>7V$73F9x%ytL?4S^q^CeDu2$4OeR^>kNL@&kGAF%Za@5$~Lf0sI||wtJcDA zx1fqGK6DbanafqPv-$q+aGgcEG1089Eep@WkdEBj6blRQBTd#t*gY}m;7RrL(7^(F z`!cMXfj0G?4TH+|w5G80vD%xxk0x*IPkODkC%Gz{t8PakbxIAV`mOD*p@_S`-S}`n zH}QFE3uXIb>tSE?dk3t30am`B`iZ@rmmO%U9db*(#9z|$gR6!q1v!4adT>st8ipPcq~%IHiKIk6~r!wYN$Z4+Smx+d8pYey=KwV z*H-h!YNg9!DeWyL{dspc*Emkl;<>^C@}Bcb3?Ef2NE;ng+8dMx%8pQLn43Z^SLaE!VnCE-0GTTW>QynH^@D;HUV8`FeP}L6XeM zD2}DFv3|;LIPG2H%^$%sGlVu#=Ai@QEe-3NUSV9p{xa@}+?{EQZ?$t9ZW85*_wKRK z;39a@PhNV)jds1!YSG9(eAKegG+o@_6&AjU2RZ#*$Qa?o^x~2;2X;Q%c2;i9!H*dX zqz36dVhpDSIFmiC#Gb(_ke6l@7Q+OstoIyQDK-g>b)J7b=lk00=~^wJU}re&o$h|_ z&zq<3J%0gmb35xC<$3W?iyZmop#4|EachH57>0O?rgYHCvOR(=ET6qqS+dtz;iMA< zbPwrcf$uNw8RL}Hd9(I+L6-W0)izdC#k_lJ?&RIVz^;0fiqClbzGV>yhcHZlT@tmr z!|w3?rwlUMod`&>D}B>Lc6rgWKM)iVHjhT~`uLxX?OfWods!f_rvp4%V_Rcq z>oV^}7`D~V%8>JM&NGuztV-UJp*)}O*Yvu@tj8Ta)U7vGD#h>W&yc=A3S%#n7~=4@ z@5ARMaXgw4kfQ22Zy@~YjV?2+(zJ|>BEgd3B@9pZ9u~9Nk5dgb@?gA3tH?2I1eV&9F0pSv!kcUArq(H)cC* zIBq=sol=B&O6%M+u@@gLh2Hf)GjR03=Bri-I%1GtF@^X5I^sFTadOg;Tj^fL`X7XJ zjmH#GK^0lXf)fVM=<1sJ_)8x2)i70;j>BFLOx%6_P)EQ(dlR8y>`rar&IH>JHq~!C zP$^H+=eHlt8{?{~G(sfGE4IZH7+i7LbsT8l+p0 zP7x508U#TQknR{jq(MYsXpvIsZWy|A=#-ES>4xuyC(h%0&i9_zf6j34d(V!w)^)9G z?M(nidJnQ|BPx6>^5-Wr&*9^=L#m8OBq&0rSmX3Gh0&;+NJ|m6+>rmp;mKlB_)wR1 z=83v!&J+t;&YDIHd#pYle1u8ySr<;J48OAmjbMUc+gDva$4+1WO3pdFU7Er_Jv)K z@LVt=SBm0x=m7#|<^ehBe7I>1U;Fu^$uiD78iSg)b-QdVm+$6n=*Z1)8h*m2fm5Yd zsMuYYCOV9=8K&;Fna#U|gui_K*xJ3jt^kRg;ei^Ebwx-AO+^kRj3vA(W-(gs$;mct zj|_8CM3w_ev|^_kkp!7tcqmub4j1K~(=@rSo;oot;XsrZJK9$s-qm8YGFT~YX=kp- z!JnC-47=*xIa92TjJW>Fe>W+UDYD}hmbmwjs#6PU%uDfH=!Kzp2)fjj4qX6 z4a&Z8=Uz&OA+`7zrB@gw66VI{W{S;r5u%n+lg}4_X3s7qt=SyhF)NAw4!BE*iAK$= zHn(g1sP+UVfEiUxG5)l4|INj8BDV=kZJ>O@D1I(dHdD6N*AgAuZ(5Ux^*L_dpEIJy zmN1C4>b1kqqA{uI5cjpAq-U957SL4WqMwV1!ko)S#FeS=r+4xe)iRGI$`&`or5G3d zi%)7Ko^h-Uyzi8gO70O!G@*+Y_e_?Ur(-{84u6$rZA5?3>`3j-& zL-ruxGA6>a*(mCkP-Voqjn?_2 z;f$%w&%d}D=Zh&i|1eEiRJMNn^2-of_*ID%QFSWRzCuruEF6zEeIYERpS78sm@8un zIEGmlMi{|%^Z$mH!a&}!7`WeZlxwS!+h9qZ zw~eRd?i_dJduzrLwZL+}<})h-P02pHPnPV!H4SL`w70Q>h5)j8DFHY=j0n6_UlE~} za`l$hxH7~x^^jwR=RB^|r8xzH4+A*GEKG_c#oFBO_*%3bXOhw3ey?Ziei`Z!xZpe3 z)2?94k*z?KW0Io!^%jLQPa3{kyAQ43+d>8*Xyz-+qf=QvXef#PQVOU>M9m&LiZ1CY ztHlgQQF>4b+m8)D5M6Em^70$crvH@OkqGG=`o2(5%vRH`A6@WiE?=StE219R0LF>} z;$I06prqqKb)dq-h1cx-83lPA57+gDY5piBG9eW@14f!2CI#6&! zocgQT^vp1d;+K(uP+xE9VDa<{56uTWxrv30&Xs+&)ez1S107oBQ-%gYSHH9xQPYzC zz_9_6^-k728nYR*p0|_6rMG&28|TWBh2n-buiv*Ni^q-6Zx3~N3yIL-=r`Hmr+ z&x{O=^yI;B_R^^csyB}XYfOPsDviuhNG)!wl7YqUJ-UT8HBaCMOaPz>uv|)R{(6?k zXgM9uQ|ge;0%?Pwp|f)Tf`A}F9DiEgB~FMO4v6<27liAot9AI75(-|8H*3U24WZWM zmPQKn+b*gK@Z^~^9O)(6zxB{i8n3}JV;&(l@U=#65VoU*s64mL_>@?T^B*BnbOV%f znE-5j$-tj)EX!DLq?+EqAKRu@khaU)j_B%T|7K1^gP_hXAH&C=k3hus( zyo@uv_<{Y3n7_XIot)3>yV`TSkyhs6*@?7C3OND=U%n^!pke(VJTDlJvANSG&TBPFMIT=SLQ_$_!ccE z3tv{~1}c(*U%a*%t7p%j5n4Pi>rhoQ+@*RUy41G+3xHqwursn*y>%*K`u2EH_Xm~z z)VAa6Bic!GDv9P85*cG7+Ch7A_k~Q$OiMpk3q>2oA_`P3w|-3WKMN9#D61nJZwq-l zjVAbbuKZr-&AymG=gG&e2zX<@&H@AAEv_3%Q9Fw5%X%nwLvatPWQ34AQ?As`J!c7vyHrE?`u`Q31V)?@Hb6S4bgm_0t9Y3ycZJTx0C2*o}&NFMks)=yr)SPwHyuo1khm!g;NtU@=hXEj= z6qbe6%7cgJ#Fbr(U2lRAa*;PshP!9S)?v6?FRK+l-fnp$?G&B-2Fqv=f%XrthId}q zeL-H9H1ZVAo4nAc+K1aXEe2E!o?MFs+Fk`sy*i97OM$K#7ycg|WN@bro=X^tVnSu| z8tF-r&lN17@Tc}X@_MyVUcxJT^Lk8!m63i+25O#j8dAUOwk#-h+W@ zk3snIa;zC>G0E)EkII>BJ{hZheQZlUTQ3I-LXRJ5*6wN%gR~) zS|t)Ka02tp9Um%guF1CTz)**_HYMd>yt40bv;gPoJvi!HlCcXZ6@06-<1M#2-;VZj z*R}4AeqS1WOoYEkyt6>F1cS|!L+1?VST;$$!f)j*+*RxabY^C?Y<@S3PZ6z0#u)Au zh}LtcGq66U2Uo#C>ycCfAsQb2-<<8L0mk5yOowuXO7_9uhw%d-nzwKUS=M|^T}Q1#d^E>A|i4OIpHf^NBRjl^JHurlpxi)G&+mQuF{*TT7S+c zASih>%lZu({}~7Nx?vp)Hh0nwSJ_SVi(kiqHKq8uAJ^G9?H#ZjoHVIAo#$GtMNTwi zlu;j{dcuKwhxlaSh3X40wY@(BLw!B7NL5L>=rXf644S)FikOI9Wr6c9R%odRawC zqK9}nEL$h?jo->Wr__4{g#3fGO=)%$35%?i`AvEg>jllDa=d-9?;3Yay!}N&6g9%4 z_-j2s-?;Y%RBx$+FtEhd-pA29PXS5eT2ttG0`?R_Xo}izFiu?m?V^ID`H_vj9{s4jY#EhBnIbvwX!bP!TO(YZ_pWextRND^BbL^U!w9uU*9}KjC-~X zonW*LcByX13Ge-d0YyOjpTfS)3*zxvPlBlq52N{(x2>pL=OR*|mKi>##dQ%>NJ?n5 z97vn*(f&k!z+93WdJyv0E?~jFJ$|(`hnKznCgO`dZ`)8;1h7(1L4CT&E(#ddOd!!) zLQrn2g?gf6`-^hJBfO1g0|Qg&hz`*pjYC2Cp-RtoH{>kfcX&U<`j3Ib;32Yk7lg{b z{mJ*MHcWN67NQF;5Q`$eG;CU^ES@Ha9s+&wI|%jwEjIM*e&H^G>TP4er1)M;5~#y* zv+WVyAWcIUbiP6(ak|=6aD>w{W?6hxAumXR1n=#?F}C^0=0NbXeTdp)m;#OeQ1ZW^ z)M;eqm)WXCiMcl9D&kQu$q^Y|v7G8Z`x4DP0#8nbY*ZtPNNdOQ#zs=!ipaZ|IgiXY z$=(-QgveW%k6YdqEt%AKE^78IQ8c2iPNX=p^{u@rz_4Q1p@-NgOdEG{D4vnp-(rcsFUpiCV;&}^FB56dqhVJ7~ z*nmSpv@=6B0Htc46rB__-`5@>nIPaq)v4C#VKj%ed%9F*;LN)~nk$VnFu0XmfBL)-U)ju4TgAT3FI zz@T-wdir}m+~Drf9i3~ zo=j6b%xQWVaFp<5t**bNsAKNX-c&f~or=JN11g!x&+8is8yuQG#Sl%KkSJFjBgu{q zw`P=^x+(JVk9o#}Iy%8%(zvYSsjo+aFZs3_E!IXj zdlx3+Mo}<$F)3!G0t0v%B*sHzWc*{>f1!4sW<16mLVeM`!12OPm}G{sYBJ_oeQN*u zCbu=`%$v#xW+1#?`>}ms4$V^<2v9hFU8e~zxY;n-t$1l z;D+$DFCiA8X1V2@vw@r4OOx8B1(V)+JKj4?oec7r^AfKk!KBy~v|@wEts|S8qG*${ z{uk%keGg&~`G_2uiwC0b()+&OHFlHW1I>p!`c%Aq+G??TC7k%iufF11SR47)kD52| zu#~bYSpdsZ834X>Ws4!EgRJeTCx!~;(R$g^Q*aYR#cDgi(%Rfyf(+^YgR-K<3lj}e23zX{m%YSp25pxKpX1Vpykcq zo$SoE^&_9ULN>At$U}M?s>kq=rN0c>Cn-ZV{U^nl3olH?Zc+3w0{I?x>fOh?@%kOA zaFqkJo=e78Cl%;}NSbhiT-2W7M!xmFG`?m1RvehklG>G3Y?`C^T< zv3qrRa+k6ILpyk~u=h?t3H>Ix0>B#kt6U;*#c^hR#nCVtZUc@b8eYQ;G1ylyyv@fm zyaic+zz=_o=%0xh>Ge8?Z5ff9%VQ##hCgg3hz-pA>ZEA;|ze2 z3W}9S?Rn!3S}cGETR;SIKi8*wngCdx{dcT>AM)MmEVM#Hr=Nn}N1DpP!j}r1S-=h9 z!qS1Xs4HCH_EgA)>R|EJm;0ZE`$IupIRCTn^`;((y)mONgU7h(^K%q30om@z%daP~ z!#&W=Tecp*8ctrf$j~T#ap|zmzwk~4x$Wq^Efwf9#c%Ax(tXHT__l2K=oq4-CTL)w z0ROX;=DEhT;uSA=-B=^CVS)<3*d7BWm8s*28t-&9fflckEjXf@(JA?I!<5 z00T|B5&q1a<08%Bew=lf?Pt89d}+HY(>oa#Om6HSvH4DgmPt0efvDu-Q{3u1`Y}=_ z$cfD`bH(!6l37?)c3FJqY}fe((3B) zVPfw34jru8+9dS3htPK_RIIZhEs2x6ay(;rwOJ5QN!>T$ACWVh!#>L#Gy8TlstLP% zHsi(mxlNU5DqU)cFS4Icalt%jySHl;PdRF4x{?LU4r)E$JgL{a^F)bB*tF=dx?1hb zxy;Bn(CymZ$TLr6rOIi1PtHYu)I}$vCHuJO%O*s6xZfdPdNEl*rN{=FYszC}^mHG) zBKozffsO~AS`8SG>Uu>!M6-4;ndG}oDmj51uP)pR`jbf)elB%tI$fM#ogq?>2I;QH z7qDU_2adLCR+C*ThN$&@;vPWq=^QvYz1^|!Ql86RvK(jn5PNE*+6xXSzm6s1t`Dxz zDENii^Eu=)FqpE3Vfl5y4G^j>zaEjrfhBuBU$vXkc)tIfSoNr-JIVdfX>;5@noAG< zDnJAG*Fa|pZ%*Dw1*HYkib>`E?vJP}yySPr<_k+0AF0$VHVw1U8Uu09-@=eiXGHW0 z=#T06<8{wIKo<=Nb@#jKGehH?7mp`o7G-BY9#4~41qs!fKC2<2dgEvN7{E&!{kWzY z8Qpe1bh3w}4L&^^llC4KNshtAOVfwK+%h3w$>X zaCM9#$GYZgpVw9Th8|FgJhyjw@@t)bLG^YiDF3QiK+~#P7xS^U=Gb$clk@L%X6unN zpXw=$3Rczjrm;+Z+10;P|FdfYgEB+_?*?Y#rOf$WpU>eCHnTs_>s)w=$Wm1UHB$j+ z$8)Y^}g6`Cv>3G zN)>T0Tb{0Ry!nl0_5fUI16)^I%5Zj8Hp>fL_^>jFaaQhf4_mzyH~0xAY&H-JmaOWz z`XidyX$qy`^S6=|!iASd$8kf(64yCGJ{fs=pGjc^4seV}<0p7-;!!pe{EsE(^ok!V zxF}4-TKiqVlV|b9oE=*?zz7nm(P$pdqi)x`X1Zhzfc{eLLg#2;b^Nn~&^W z!1GFp{3*@P#W@8?>{>Afx>c#d2KU2AgTFk3^tdSe;@7-lsIE3qr)v`HGqEJsiSP7g z7cO}8UG;J077|i&fB~AyBF^x2R=pN~%7nb#>2oqL`Kjn`{m`SwEOZo8;t3a%$1bqQBbdqagdm=38+?t>6!BZRn?sW zc=N?5NKRyX7g&~xi!Z3aX`$$9t1LngY2)4gHRbw+hMs7&p2E%mMiM|;WpXY3bm`iE z|3=kiW1WuRgdp9coL&R{E3@p5MPVc}->!!~Gn9%xV{l){?u9QK#Er!$4*HGz36R%D zVnzS`0UU}V`Q&yfLEdxC=IWm`uhbRySTd}E+_e(g_Q5}RiD@+4>nep{ zimG`o$qM#okQ3L8cg}cxOQTYRT&ixtW4Wl9{`WBb$(bEJ(X%S9iHY76ifY*I12fvf z3to6Le8J7M#XTH&b<24C-ZH8R_bI^+Jmg|CtRG8zfs$gEo9T+19|IT>y7z*m`a>rS zh7%juKyZ@_Pp18sj0^}tOz?^`OnC4rzjawiO8Iy`I(aD1eGk7w21VQX%(;iIqrCw_v0B{ey;h0m84poT z+&RhRxBYYa5+ADJ0{MKO%h1}{7d=(hF?NQBMOHS!oNuJ(96qOeqah8w&xX#ok{D@4 z<8a(30*fA(4$POQmoAqvCv1kq3Gc7hwb7`bVufI23sAHo>8SM!k--U5SM7Sm6j#a~ zi#+Q_B@tpsSJ9vouk)E6M3;MEXuV?hQIr0MnlaytF*q`3L}lC6A<0~sqPx@+g{Csi zAFo-vqP=CD3G0C1@9yeXnuSC4Z`2K`tVPKNk(TxI1KsxrfM*)9vO-92@i7CX#fgfDHyG0r<7Lue3f|V^i(vruZ3-V zY66cc%E_1^GP-yU`!Ih-qr~8a!sK>mBkJ*@tYidhOqA^12%l-O2LDAd5XXvwedr9$ z^ja9YsOJXicX|clWUtITn{w3}x#z+~8|nGRqmF^A?`ar*Z8Xek3rbSpBo+=&Oc+U0 zJZc*o^^krfxoU`0HTiWfV}w4`THxsz_XhuywafP`99CmB>p!_-bex*psBiTF@+*g= zNQLPPs6C?ku0x|)D5YkHoHM%r=f!vYZik^RttT%%QxiDHJpGxi5?6&q zerCrgoFDE15yiba%#*)!9I{)P%{SVCBp=pLwGDQpACK4oi4IP@!G8%8fYK}ia6&+6 zxK%e2nO!UU$xEw9o)ng~S~4bV3hjLRNL|{?NheObk5pEElb}f`s?7GP2-g|=Uf1rq$BTGulZnPI)MM{m zS;>OT`q?sve@W6RLtiL&+kNUxo#b_V<_nyxhaui_7K@UM&_RMnJjJFk=R!8OK+uZ( z|8pDc5VW@Pw^TH6A|MT5`SO197<#)fV`PU)j24Exd!Jii#-iTj;3Yh{-YsJyCT*zj z@}TtY4$)_>j0`MPtI4W`RTvG0-bU8@%sTAI(xQi?r3XoE8>M2x-Ss(fFF$TX3Eqm* ziUu}%O^jh^!%@8d2nHgLNs$!fWHJAnAdLV_>xFS2BkwiboU&sRw-}oOKYD+Xe%pt^ za!I&p?w4lQ@XpiTQmQ6W5cP*i+w!W1K!0_ark+ZxGhVqbP(NwGXj3V!LH7-Wr*KRf zPp=fGGrA}gG)%-%mW$oBpk#@z&x5dQN^vJ5M%)<5mdg9cP=fz&I%D$n0B|G}T2EW=p`w^84tQFf}zDePQJI107&+6?|j0|+|>r62LiiP#$@#QWg*RxIVmQ}np zF``3pEL^Z4=u!{BS$X;5ydFJ1T;$j#k4f^+YSzh==?>V-la0p|=E9Dhvn<01c~t0Pxi6|Ib#_U!e9JWi3NRT`HcO$Co(uH#_rLwjoMQ zx^0WF7s={?sw}297c1vY+at%iUh5)h zCRrhq8AwN>%#E>Wy_7$p!I7K#JNg)%NcKJA3J1P?+zWdO^sBWxskxi0*_s1}L zI>nFW*xA^v%Cg4P6ggoealFUEVP+PPymVuMRQ=HVI-=ojXhnFQlkOmN*R#-|Reba7 z@EaMLsnW(`xsJ6E!p%mHfUjlnTGlI;XYD^EUyR0bc<|qZt^({N@&90F%hqqB-1isp~%>; zp`X+84!@sp*zHis^?kXBgRW#n4vl$jl)@#H$u7IV?N^3bVlLmuzB^B4-a2NicZ&e= zlTcf>Lh4Huk+vw53G0j-b=*IgeWr~_jzb>AxV=<3PC2SaZ5mVK+z7_MhsZ$||mI{5=S zW+0BbO682e$OdcPF#0^5bBDWsF#6c*W}_3h=fR~?BV*B{dN(@etVyDVr9YI+ZP^a( zxKFrP@j>aj8Bk%j6HM=&cDxs@nQNB<-@TnERXu;{c{nSVxE*C4!W(gs)_b?NNImO!vMG+#Cj2j-JvH>d~5GABxd?$8QL zRfzw>Nf6nfq&G76^<}&Kx!(}FC_g!gt?S1VC%=fId+*^1j>@8_q6=zgq(Ts91m(&D z7Ufg(8W0d;u+yzwW&jEAR>^=3bG33y%c04102Iamps>>A?`-#BB1x7{()VgkLR z?eR&&u>&%A7;N7cofkcF3dJLY$+r6QC>C3VnN>w6ZYX!)@Z8q&#;*;SEK~QXj17zu zcS_P80xL?b!w~M4z~l-_??@ck1z=cc!$v#I7ARxs{LLm8Vo{JWi(S{aU0s~+5rPAY zYfWa?UN%gD_I|5ad8Z05RG<{FrZ`+f$QOS99@-W~r(RZ8cF;l$RILLVD|6ag+y0v_ zEQ1ubVYm70;_Ud z844w3e+AU*`?<|~1!7aQ-oc_kT7B@Fk6{HlUYyvAI4*~;I)-vQ(=E+4sCvj?1S0^$ z(SCz~c=sW|=-+>4qzhYJlHB?A?7_vi_7XP}DMaSqNb5H~8=w$#xRqdL^kH$u1mLr| z4AuWn1IXN4LjmR0TicQsoV_n8F+OsDY=;$C65}bdI2hbY> zhQLF=v(h5#|KeLN0pBuo>su`T@GVn-Z_%70<$W4i1qcL4S*a~@kMYL(I$s36RBo{U z+50pr>cdpyNGwuh@=L}Vm5rLt^$rnc-V+QwMFFCzgB%BcX@i=@>Y;OjvEG-|0B1Nh z6)R|qa$I%)CRdk+8qTItT)g?e73h>UvZA}K9%S&AShwflT^;asfna@F!Z_C#-|kSa zVt)+e6*$Yp`$D%T>fIx;)RmZ~LX%k@Q7!v zG+MBn9F+yTyR01#y>ORx!JEOGrAVyggb5L_28zIW=`hv0OITjuj z;=pE8%-z{)peD$-?JePDii)VhZvzm_SRhurS&Nu1qSAkSG`@uiiXqm=zxzeC;5w2@ zrw-YL{*>xhS)m~#Ah0YvCqiasDZe~rN*0Qs;i{qX!aJf9v8s~;8i5?&fBl~P*+s(H z=mFVV=o(Wo)Z~}I3}h@CASV6q>AK^hsc@%0?RW%tdQSlUDFx)ofQNqaa6y>j*g%eh zarO6xRZh-{P*upJ;U6(5Z+rHs-3he+k_>!?jT;85mxdc)ffkuiRovhI*=7$jWRxo% z0QP)mfRu@JRJySeYMInqaCt0TGZ-}|yPu=&#os$es#be+AVF=>J{05>$F?urMN<0H zCS&4(`lGR`?kHSL3ZNja%M=9AIB6OblK5#)+x z;lPx+_fUHr)JqRyYQNFp{i@8c=P?{PS9+b+8iS^SCqA(dq@R+JK z-swkthWPM_duYTvznJW~7$>rMpU7fmg9vfUxqC{|qHY<_KE;Y|`)QM1cMQLju#{MK z$S`9vz@D;Gym;A6LVrhtDB~ERyZ@lN>tkw(g${;ISQvqh5od4ysaA4vsHUyiqnl;& zj5ZLemvZk`HY*Ls{Uw7F)7lMB#Bf74$1+6hSOLFFlbG6na3s#z@uQGs8q4dCtH1VH z{pe8@VNv@stwCIn+8rZdevk2^Is|Gs7xqI;bVe=%*`my{)*P_!(dYHk8nasM;L5#s zmItY@YMj3og9@^FYd8C=A1$B{g7_JY6?ZZ+bK(Zdw8wODI8&;jzbF9qB5G|xE`*XX zO8KpBA3a($dmZN+mo~I;Hq0-Qc%6&YUkkB9U!5=FBdY%pmjQKXA0_{4A4o4v+&z)yJx3(kcr@M!Lvg~g_Hx;MG);wtyX3@`LBB7zo}Jk8pc!S^h*eFCI z%c*`=F-4QXq;gidw*2;Pxkm$kj>`SuVE`$);V^}CD{BQWD(<-RU;TUxLh$B5DHR?& z==-s~OBg7m-J$yD?)(bXI6&>O+M=KR$<3V&65L0rMRD*!&!Pa#iS5ICH-?Kn$^~eI z3v#Busg5Fcr?#p=H?VWXSmD!SOxWJNzgF-A2v@b%HVVR5`qK}jsM9SJP2smtHvGSu zphOLy4ymy60@7C@#`oW^sMY@dxD>o2PWULSu7@Yem0tUf9z02iljX_h4fq&PH+Q>5 zxNdT$uf;%)rm0Zv#j}A0gIPI4VKL7m&9nWGsK$r)jB%#;kpYWZ!<`9rPw|MV^7E)c z#l6n1o{OksG^hpYB5&(v^G&`(Pn+U0plkXFQHW%eG~6xTCh*qcVlHp=$;U+Q>JSd|cS95)h&e=ZFAi5(DeT z@?!cYKYphT=h#OLXEwSA5%K%urNCc4f`1JD`#JZH?66=d=>^@2@Z3aVwE^1KDb_{Vi19r$)#cKkUBOU72Eg=Dk+)Fd-@Fa-NbUo4 zO^+rN)<*~ijsZz?E;ki;P{eDIeCa0mg$ro@`13@>F3v(I#*G65GcjtwUu~j-5Yp`_&b%O~t&X(#hSpNwczOVqf#vxO>Bo^d0h z7DdQdzdM0=YvlQRQw(X6G(%(M-nBZLjvYhe;Pr6v1_`( z!eC7B%k@+Qr+?Gr!_;reEsnzA#)zgzK2xu7~(=8PHOVph)--Q>^YQTqslXiR-C zacV~1Tkwos?Ce1pJMGP?l#+d?2@kJjW_YnK`WOxl9C#wx`zthj|TiChrVbeu8ZL&6aa#dJHT{l9uF~8+b)gJ@&l!ME2J)l7Jh&ynbiAM)>E} zw}n4~s|JPQZ8UoWO18?l7W?HCzXkPuS64yFF90a&UgNJyx34x|7MpP_WPc$sjpc`o>S6D z`XpT)RW$e|E0nWM#oAa;)*;Y(W^e?CKGImMrQY#UTj@(i5mhK>oQm19nxwj^r1a=Z z7L8L&5o4>Lx)9P8o5-@(FE6rnG*^M2Fl4;~HA{M`Tp}9u*^$ZQ%UPyIO8J4|8$Vo1 z6>%$rFE=zs#@KWV2yFFHE$Jwyq_YQkjhM2&h~;y70#6e6B->=VjZR~^-5oBEecNl} z$S2A}kj=q3u=m_9TJUkBpuEcLE#fo74VKcKalNxQ1y*3R zqeI7Q_3s`JyDX@1NU}~yfi%_Y+NU4Y;ShkgwzddqB}UbJD;DnBoc_S25t;;aYVuLO z$Dc}uE#|YGHijIBUBo;#rEgb09cczD=7+)9o0XN3b=k3+c9ZDd>>q|Z?w*8b@)d92z1;B?Hx;fQA!bisW6_T|$&*YQ z^s*1&6Mr@8z!>qvAz|ck{~H|kz>UzcD9Te=mc_!{$FSMO)zpE}@zdhyty}M?o1zty zvsUv7+^NLdkYPHD^D4C>wtrnJ-M3iVYpzT1Y8KBMY;oDr(0NSJ_i4~w`DaA0V|1ZC zN4D^jiXt^b_}k6T&?@KthCx3R4CJfD?(Ef+cZldprrEkL$yXcf*$eHnCxj8JJOS%H zCn#?QqT~)fQ#xPNMVcQ_Nb#D7W8$(bHk(R%G}GoM4hG0wtm3)n+M*v)>@s>Zf7p(o zi};0D+nqfoH1d)@-L(_=dpyOee2yk8c;;+~*%bNqarSD-dt~jI`}M_)zpIn3^oH@S zHyw-$kMt}iw1@8q_xf2+Z32RLpwwO8#aHS4cnAMPojdhFrgKfffT*GFqO^lpwEQ%P zueQCev?F}3A>K#GOX$+BLLq{AyQ? zrORQbmvHo@a_9q!X`g096^ zgbOo}mzQT&EO%z>Koxvtp%{+jm)pUZJ08~o9rnrn?v_GZ8#T}K+66D5q(7ZJxPqr1 zNm6WMh0<9Ezs;6hp_}`KLT_t!w(@q@r?64d{B5eK$(JtoNbY6)SC3zaM8-XMN~_E@ zhZ|O|;@c;=%sfSW8>@b_zx0 zcWWuf2k!Ti-Z+^MW1|VPsHWz3IrOL_vR^yK+0Y`QeoA7vBtSJToIgMyqoG_Y}lyKPK#PeR<4iaC&~p_oJ$0!5PE>nVqbPt1r1=vY9Q4tFKw7 zQ1vM?%s6kROFxAl2mWQCfgN(Tmd!KQ`(>%2!Q?Q&q_3dd1MwX1c5Q9b@HJAc&?KIS{YOir!?21^&3=-y6W)LEQJMcEmS;hGnXJ5m_!>89rSHVN`WHN1bWd zXX5AQ_oHE&ir(sU;kUuNiF?EWf2wR_WAkFlGm#D>jAiQMtv5_jgbxFHrgt#tw-RjF z{Wn{gyON$Uwr69+PKZ8rc;ryYKOOMZLAGQj8V=b&5S1Dy z^}m)=SM}9x2_!wCG>kwGEK7I+KdeieBOZ*wYY$}-p5obiD2*Zn8yaxmW56GAxsDFL^;^ylIpvCpfT+1*N)6K#Jb__V%f6ah~y5%FTN$S!v#Yig9k z>Hb3C`?U+_F$dYIJ+#JFNZg)mAyer@y{Kk{@%ec9z;fbK%l&M7KydrO=4wVQ1t-^0 z21AeBPQyNz`(wj83D-~+AA2f0&Q;eEQ9wCg-~b1ATOd!dTh)2mn`*S4R&rw%$;-KG z>BXH~ESYdFGgxB@&t$_#*jYV~|D;;I|5ak1rf@mS;hNS_S5H0v&%W8=owh#n)ME2b z3zhli#*J4HMb<5wnmaU~XH&%{&-CX@BiI6FD}NTfrbCdSOLQ)G_XtIqdU({wSng(% z9ep>ax)Syim*>U1-oE#yCaoVwU~ii6NiPd!M-<O1D3l_diy!V1lno6teM85|hx0m)HqOX{?QnfAhBoCG zzY%SKyLg?#BYQ~HJcCys9T_3;dAbyL)SnXjqx36h4nwst$4#(}TGa(byq9&1<~D%0 z?>iELnJ?={cqZFEHmVVW+01+?gDERMv&q0o0J>QZHN0;_-khArkP)KNCaXjw$^Zd4 z=+29v>s`Y%z50VpZjGpJu9|SJ`U3`!1&b&|!1bYDN8l6k=gyG|D?_50gK37+S)#ce z;JiCo%52H>qOv(9H=U^V!X$Jw(U_R_5f=&ZXxMwT;c7eC_Fl@j_B$|$V`RnGJQvY3 z*{$)_42&`=J};Pa-m_VenwuHqX7CX3QljA@xF9f%=nryiFNofT_eEk;$UY7y=?)I& z`G$38V^{iHT=p(@W2Kw>kJN4A=Yjm)It^#q>-MdrI+*tzJ2T0{Q1JUNF%sOy+}!DF zak9Cr2Y3$pUOM%-WtZb)OHCnZmg4qBBAl>opVKH$47f%LWKYmf-gR~d!(LevYjj$s zIyHL1YTlbzdFQ#^j2%OZ%4(do1ZS7D&r|Hy@K!uvK7Fg7hXjKfM>F0uOq z1vyu!ee_ezye8SA64Y?D#~+>EhP-%8&X_Ef?seb5YMX))VDi%opPBRm3X)GcMv6); zh2Q5h<9*#7Bsgunc$T{E^XzTcfph|w$REp9R@b9=Dcb3MtIDda5+mo@kTAgUPgVf# z*@l(#kY?M6iCXTfvS~>mw$()y5`A5tq!K^WNL7DYsRfo``Kg|QQ|4ZT#I^Q7z$xhh zZmr{ZMZ6yvJkVE|2zmK?PCf&37)9jCUR(o5$~M{!Tp{4V_^wTU--xT>!r|;1 Ylw_+`L*r>WaD%QCWz}Tzr6K`**) и снять выбор с ненужных таблиц +3. Выбрать субъекты РФ для импорта +4. Указать в настройках каталог для хранения данных (**``**) и снять выбор с ненужных таблиц ## Импорт полной копии БД @@ -22,12 +23,12 @@ description: "Импорт данных в БД FIAS_GAR" Рекомендуется использовать менеджер загрузок для скачивания архива, например [Free Download Manager](https://www.freedownloadmanager.org/ru/) или что-то подобное. 1. Скачать архив с сайта ФИАС -2. Распаковать нужные субъекты и файлы из корня архива в **`\gar_xml\`** -3. Запустить FIASUpdate -4. Нажать `Импорт полной копии БД` +2. Запустить FIASUpdate +3. Нажать `Импорт полной копии БД` +4. Выбрать файл архива (Можно переташить на текстовое поле) 5. Нажать `Импортировать` и дождаться завершения импорта -![import](../assets/fias/import.png) +![import](../assets/fias/import-full.png) ## Импорт разностных копий БД diff --git a/mkdocs.yml b/mkdocs.yml index 194f9f5..09f982e 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -1,7 +1,7 @@ site_name: Документация FIAS_GAR site_description: "Проект БД ФИАС ГАР для SQL Server и приложение для её обновления" site_url: https://virenbar.ru/FIAS_GAR/ -copyright: Copyright © 2025 Virenbar +copyright: Copyright © 2026 Virenbar theme: logo: assets/images/logo.png favicon: assets/images/favicon.ico From dc14788a095cb4629480f375e67182a97fb023a6 Mon Sep 17 00:00:00 2001 From: Virenbar Date: Thu, 12 Mar 2026 10:19:45 +0500 Subject: [PATCH 5/6] =?UTF-8?q?chore:=20=D1=83=D0=B4=D0=B0=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D1=8B=20=D0=BE=D1=81=D1=82=D0=B0=D1=82=D0=BA=D0=B8=20?= =?UTF-8?q?=D1=81=D1=82=D0=B0=D1=80=D0=BE=D0=B3=D0=BE=20=D0=BA=D0=BE=D0=B4?= =?UTF-8?q?=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FIAS.Core/API/FIASInfo.cs | 4 +- FIAS.Core/Extensions/SQLExtensions.cs | 7 --- FIASUpdate/ArchiveDownloader.cs | 19 ------- FIASUpdate/Extensions/StringExtensions.cs | 15 ------ FIASUpdate/FIASUpdate.csproj | 1 - FIASUpdate/Models/FIASArchive.cs | 63 ++++++++++------------- FIASUpdate/Models/FIASArchiveDelta.cs | 1 - FIASUpdate/Models/FIASArchiveFull.cs | 2 - 8 files changed, 29 insertions(+), 83 deletions(-) delete mode 100644 FIASUpdate/Extensions/StringExtensions.cs diff --git a/FIAS.Core/API/FIASInfo.cs b/FIAS.Core/API/FIASInfo.cs index 78a626e..7a5fee3 100644 --- a/FIAS.Core/API/FIASInfo.cs +++ b/FIAS.Core/API/FIASInfo.cs @@ -1,6 +1,6 @@ -using Newtonsoft.Json.Converters; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; using System; -using Newtonsoft.Json; namespace FIAS.Core.API { diff --git a/FIAS.Core/Extensions/SQLExtensions.cs b/FIAS.Core/Extensions/SQLExtensions.cs index bd9a370..096b667 100644 --- a/FIAS.Core/Extensions/SQLExtensions.cs +++ b/FIAS.Core/Extensions/SQLExtensions.cs @@ -18,12 +18,5 @@ public static SqlCommand SetSchema(this SqlCommand command, string schema) command.CommandText = $"{schema}.{name}"; return command; } - - //#region Executor - //public static SQLCommandExecutor Execute(this SqlCommand command) => new SQLCommandExecutor(command, DefaultConnection); - //public static SQLCommandExecutor Execute(this SqlCommand command, string connection) => new SQLCommandExecutor(command, connection); - //public static SQLCommandExecutor ExecuteAs(this SqlCommand command) => new SQLCommandExecutor(command, DefaultConnection); - //public static SQLCommandExecutor ExecuteAt(this SqlCommand command, string connection) => new SQLCommandExecutor(command, connection); - //#endregion Executor } } \ No newline at end of file diff --git a/FIASUpdate/ArchiveDownloader.cs b/FIASUpdate/ArchiveDownloader.cs index e33be15..8a140af 100644 --- a/FIASUpdate/ArchiveDownloader.cs +++ b/FIASUpdate/ArchiveDownloader.cs @@ -29,25 +29,6 @@ public ArchiveDownloader(int threads) Semaphore = new SemaphoreSlim(threads); } - public Task Download(FIASArchiveDelta archive, CancellationToken token = default) => Download(archive, (Progress)default, default); - - public async Task Download(FIASArchiveDelta archive, IProgress progress, CancellationToken token = default) - { - var file = new FileInfo(archive.ArchivePath); - try - { - await Semaphore.WaitAsync().ConfigureAwait(false); - token.ThrowIfCancellationRequested(); - Directory.CreateDirectory(file.DirectoryName); - using (var FS = new FileStream(file.FullName, FileMode.Create)) - await Client.DownloadAsync(archive.URLDelta, FS, progress, token).ConfigureAwait(false); - } - finally - { - Semaphore.Release(); - } - } - public async Task Download(FIASArchiveDelta archive, IProgress progress, CancellationToken token = default) { var file = new FileInfo(archive.ArchivePath); diff --git a/FIASUpdate/Extensions/StringExtensions.cs b/FIASUpdate/Extensions/StringExtensions.cs deleted file mode 100644 index 82a3cf0..0000000 --- a/FIASUpdate/Extensions/StringExtensions.cs +++ /dev/null @@ -1,15 +0,0 @@ -namespace FIASUpdate -{ - internal static class StringExtensions - { - public static string TrimSpaces(this string str) - { - str = str.Trim(); - while (str.Contains(" ")) - { - str = str.Replace(" ", " "); - } - return str; - } - } -} \ No newline at end of file diff --git a/FIASUpdate/FIASUpdate.csproj b/FIASUpdate/FIASUpdate.csproj index 9ca15fd..f665e35 100644 --- a/FIASUpdate/FIASUpdate.csproj +++ b/FIASUpdate/FIASUpdate.csproj @@ -391,7 +391,6 @@ - Form diff --git a/FIASUpdate/Models/FIASArchive.cs b/FIASUpdate/Models/FIASArchive.cs index 8f34186..fd3c481 100644 --- a/FIASUpdate/Models/FIASArchive.cs +++ b/FIASUpdate/Models/FIASArchive.cs @@ -13,7 +13,7 @@ internal abstract class FIASArchive { protected FileInfo Archive; - public FIASArchive(string path) + protected FIASArchive(string path) { SetArchivePath(path); } @@ -45,41 +45,6 @@ protected FIASArchive() { } /// public abstract string ExtractPath { get; } - ///

- /// Путь для хранения версий - /// - // protected abstract string DirectoryPath { get; } - - /// - /// Извлечь дату (версию) архива - /// - public void ExtractVersion() - { - Refresh(); - if (!Exsists) { return; } - - var path = ArchivePath; - using (var zip = ZipFile.OpenRead(path)) - { - var version = zip.Entries.First(E => E.FullName.Contains("version.txt")); - - //var file = Path.GetTempFileName(); - //version.ExtractToFile(file, true); - //var V = File.ReadAllLines(file); - //DateTime.TryParse(V[0], out var date); - //Date = date; - using (var s = version.Open()) - { - using (var SR = new StreamReader(s)) - { - var V = SR.ReadLine(); - DateTime.TryParse(V, out var date); - Date = date; - } - } - } - } - /// /// Извлечь файлы из архива для указанных субъектов /// @@ -103,6 +68,32 @@ public void Extract(IEnumerable subjects) } } + /// + /// Извлечь дату (версию) архива + /// + public void ExtractVersion() + { + Refresh(); + if (!Exsists) { return; } + + var path = ArchivePath; + using (var zip = ZipFile.OpenRead(path)) + { + var entry = zip.Entries.First(E => E.FullName.Contains("version.txt")); + using (var S = entry.Open()) + { + using (var SR = new StreamReader(S)) + { + var version = SR.ReadLine(); + if (DateTime.TryParse(version, out var date)) + { + Date = date; + } + } + } + } + } + /// /// Обновить состояние файла архива /// diff --git a/FIASUpdate/Models/FIASArchiveDelta.cs b/FIASUpdate/Models/FIASArchiveDelta.cs index bd1c660..1c161c2 100644 --- a/FIASUpdate/Models/FIASArchiveDelta.cs +++ b/FIASUpdate/Models/FIASArchiveDelta.cs @@ -21,6 +21,5 @@ public FIASArchiveDelta(FIASInfo info) public string URLDelta => Info.GarXMLDeltaURL; public string URLFull => Info.GarXMLFullURL; public int VersionId => Info.VersionId; - // protected override string DirectoryPath => $@"{FIASProperties.GAR_Delta}\{Date:yyyy.MM.dd}"; } } \ No newline at end of file diff --git a/FIASUpdate/Models/FIASArchiveFull.cs b/FIASUpdate/Models/FIASArchiveFull.cs index b43bae0..680b9c9 100644 --- a/FIASUpdate/Models/FIASArchiveFull.cs +++ b/FIASUpdate/Models/FIASArchiveFull.cs @@ -8,7 +8,5 @@ internal class FIASArchiveFull : FIASArchive public FIASArchiveFull(string path) : base(path) { } public override string ExtractPath => $@"{FIASProperties.GAR_Full}\{Date:yyyy.MM.dd}\gar_full_xml"; - - // protected override string DirectoryPath => $@"{FIASProperties.GAR_Full}\{Date:yyyy.MM.dd}"; } } \ No newline at end of file From 677f6db312da129a69d18ea14daa65ae5d007db2 Mon Sep 17 00:00:00 2001 From: Virenbar Date: Wed, 18 Mar 2026 17:44:25 +0500 Subject: [PATCH 6/6] =?UTF-8?q?fix:=20=D0=BD=D0=B5=20=D1=82=D0=B0=20=D1=82?= =?UTF-8?q?=D0=B0=D0=B1=D0=BB=D0=B8=D1=86=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FIASUpdate/Database/DBImportDelta.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FIASUpdate/Database/DBImportDelta.cs b/FIASUpdate/Database/DBImportDelta.cs index fdf77ec..827fcdf 100644 --- a/FIASUpdate/Database/DBImportDelta.cs +++ b/FIASUpdate/Database/DBImportDelta.cs @@ -46,7 +46,7 @@ protected override void ImportTable(Table target, FIASTable source) temporaryTable.Create(); // Импортировать данные во временную таблицу - base.ImportTable(target, source); + base.ImportTable(temporaryTable, source); SP?.Report(new TaskProgress($"Объединение таблиц: {target.Name}", 0, 0)); // Объединить таблицы