From e5636a3717ff3ea850a50476ded8c3e276268748 Mon Sep 17 00:00:00 2001
From: Paul SQUIZZATO
Date: Fri, 28 Oct 2022 15:13:24 +0200
Subject: [PATCH] =?UTF-8?q?Ca=20a=20tr=C3=A8s=20bien=20avanc=C3=A9!=20:smi?=
=?UTF-8?q?ley:=20maintenant=20je=20passe=20=C3=A0=20DI=20&=20IOC,=20?=
=?UTF-8?q?=C3=A7a=20va=20=C3=AAtre=20chouette=20:cool:?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
CetteAppliVaMarcher/CetteAppliVaMarcher.sln | 2 +-
.../CetteAppliVaMarcher.csproj | 3 +-
.../CetteAppliVaMarcher/Models/ItemModel.cs | 37 +++++
.../CetteAppliVaMarcher/Pages/Add.razor | 69 ++++++++++
.../CetteAppliVaMarcher/Pages/Add.razor.cs | 126 ++++++++++++++++++
.../CetteAppliVaMarcher/Pages/List.razor | 23 +++-
.../CetteAppliVaMarcher/Pages/List.razor.cs | 50 ++++++-
.../Pages/testLayout.razor | 2 +
.../CetteAppliVaMarcher/Program.cs | 3 +
.../wwwroot/images/cactussss.png | Bin 0 -> 7121 bytes
.../wwwroot/images/default.png | Bin 0 -> 2267 bytes
.../wwwroot/images/loop.gif | Bin 0 -> 2214782 bytes
.../wwwroot/images/paul.png | Bin 0 -> 5867 bytes
13 files changed, 308 insertions(+), 7 deletions(-)
create mode 100644 CetteAppliVaMarcher/CetteAppliVaMarcher/Models/ItemModel.cs
create mode 100644 CetteAppliVaMarcher/CetteAppliVaMarcher/Pages/Add.razor
create mode 100644 CetteAppliVaMarcher/CetteAppliVaMarcher/Pages/Add.razor.cs
create mode 100644 CetteAppliVaMarcher/CetteAppliVaMarcher/wwwroot/images/cactussss.png
create mode 100644 CetteAppliVaMarcher/CetteAppliVaMarcher/wwwroot/images/default.png
create mode 100644 CetteAppliVaMarcher/CetteAppliVaMarcher/wwwroot/images/loop.gif
create mode 100644 CetteAppliVaMarcher/CetteAppliVaMarcher/wwwroot/images/paul.png
diff --git a/CetteAppliVaMarcher/CetteAppliVaMarcher.sln b/CetteAppliVaMarcher/CetteAppliVaMarcher.sln
index 5a8afad..8cae98d 100644
--- a/CetteAppliVaMarcher/CetteAppliVaMarcher.sln
+++ b/CetteAppliVaMarcher/CetteAppliVaMarcher.sln
@@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.2.32616.157
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CetteAppliVaMarcher", "CetteAppliVaMarcher\CetteAppliVaMarcher.csproj", "{A9F6F3DE-16A6-4356-9CBA-4EB93FAC4A3D}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CetteAppliVaMarcher", "CetteAppliVaMarcher\CetteAppliVaMarcher.csproj", "{A9F6F3DE-16A6-4356-9CBA-4EB93FAC4A3D}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
diff --git a/CetteAppliVaMarcher/CetteAppliVaMarcher/CetteAppliVaMarcher.csproj b/CetteAppliVaMarcher/CetteAppliVaMarcher/CetteAppliVaMarcher.csproj
index 6033f3c..93b929d 100644
--- a/CetteAppliVaMarcher/CetteAppliVaMarcher/CetteAppliVaMarcher.csproj
+++ b/CetteAppliVaMarcher/CetteAppliVaMarcher/CetteAppliVaMarcher.csproj
@@ -1,4 +1,4 @@
-
+
net6.0
@@ -7,6 +7,7 @@
+
diff --git a/CetteAppliVaMarcher/CetteAppliVaMarcher/Models/ItemModel.cs b/CetteAppliVaMarcher/CetteAppliVaMarcher/Models/ItemModel.cs
new file mode 100644
index 0000000..5474390
--- /dev/null
+++ b/CetteAppliVaMarcher/CetteAppliVaMarcher/Models/ItemModel.cs
@@ -0,0 +1,37 @@
+using System.ComponentModel.DataAnnotations;
+
+namespace CetteAppliVaMarcher.Models
+{
+ public class ItemModel
+ {
+ public int Id { get; set; }
+
+ [Required]
+ [StringLength(50, ErrorMessage = "The display name must not exceed 50 characters.")]
+ public string DisplayName { get; set; }
+
+ [Required]
+ [StringLength(50, ErrorMessage = "The name must not exceed 50 characters.")]
+ [RegularExpression(@"^[a-z''-'\s]{1,40}$", ErrorMessage = "Only lowercase characters are accepted.")]
+ public string Name { get; set; }
+
+ [Required]
+ [Range(1, 64)]
+ public int StackSize { get; set; }
+
+ [Required]
+ [Range(1, 125)]
+ public int MaxDurability { get; set; }
+
+ public List EnchantCategories { get; set; }
+
+ public List RepairWith { get; set; }
+
+ [Required]
+ [Range(typeof(bool), "true", "true", ErrorMessage = "You must agree to the terms.")]
+ public bool AcceptCondition { get; set; }
+
+ [Required(ErrorMessage = "The image of the item is mandatory!")]
+ public byte[] ImageContent { get; set; }
+ }
+}
diff --git a/CetteAppliVaMarcher/CetteAppliVaMarcher/Pages/Add.razor b/CetteAppliVaMarcher/CetteAppliVaMarcher/Pages/Add.razor
new file mode 100644
index 0000000..0ed932c
--- /dev/null
+++ b/CetteAppliVaMarcher/CetteAppliVaMarcher/Pages/Add.razor
@@ -0,0 +1,69 @@
+@page "/add"
+
+Add
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Enchant categories:
+
+ @foreach (var item in enchantCategories)
+ {
+
+ }
+
+
+
+ Repair with:
+
+ @foreach (var item in repairWith)
+ {
+
+ }
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/CetteAppliVaMarcher/CetteAppliVaMarcher/Pages/Add.razor.cs b/CetteAppliVaMarcher/CetteAppliVaMarcher/Pages/Add.razor.cs
new file mode 100644
index 0000000..04539e1
--- /dev/null
+++ b/CetteAppliVaMarcher/CetteAppliVaMarcher/Pages/Add.razor.cs
@@ -0,0 +1,126 @@
+using Blazored.LocalStorage;
+using CetteAppliVaMarcher.Models;
+using Microsoft.AspNetCore.Components;
+using Microsoft.AspNetCore.Components.Forms;
+
+namespace CetteAppliVaMarcher.Pages
+{
+ public partial class Add
+ {
+ [Inject]
+ public ILocalStorageService LocalStorage { get; set; }
+
+ [Inject]
+ public NavigationManager NavigationManager { get; set; }
+
+ [Inject]
+ public IWebHostEnvironment WebHostEnvironment { get; set; }
+
+ ///
+ /// The default enchant categories.
+ ///
+ private List enchantCategories = new List() { "armor", "armor_head", "armor_chest", "weapon", "digger", "breakable", "vanishable" };
+
+ ///
+ /// The default repair with.
+ ///
+ private List repairWith = new List() { "oak_planks", "spruce_planks", "birch_planks", "jungle_planks", "acacia_planks", "dark_oak_planks", "crimson_planks", "warped_planks" };
+
+ ///
+ /// The current item model
+ ///
+ private ItemModel itemModel = new()
+ {
+ EnchantCategories = new List(),
+ RepairWith = new List()
+ };
+
+ private async void HandleValidSubmit()
+ {
+ // Get the current data
+ var currentData = await LocalStorage.GetItemAsync>("data");
+
+ // Simulate the Id
+ itemModel.Id = currentData.Max(s => s.Id) + 1;
+
+ // Add the item to the current data
+ currentData.Add(new Item
+ {
+ Id = itemModel.Id,
+ DisplayName = itemModel.DisplayName,
+ Name = itemModel.Name,
+ RepairWith = itemModel.RepairWith,
+ EnchantCategories = itemModel.EnchantCategories,
+ MaxDurability = itemModel.MaxDurability,
+ StackSize = itemModel.StackSize,
+ CreatedDate = DateTime.Now
+ });
+
+ // Save the image
+ var imagePathInfo = new DirectoryInfo($"{WebHostEnvironment.WebRootPath}/images");
+
+ // Check if the folder "images" exist
+ if (!imagePathInfo.Exists)
+ {
+ imagePathInfo.Create();
+ }
+
+ // Determine the image name
+ var fileName = new FileInfo($"{imagePathInfo}/{itemModel.Name}.png");
+
+ // Write the file content
+ await File.WriteAllBytesAsync(fileName.FullName, itemModel.ImageContent);
+
+ // Save the data
+ await LocalStorage.SetItemAsync("data", currentData);
+
+ NavigationManager.NavigateTo("list");
+ }
+
+ private async Task LoadImage(InputFileChangeEventArgs e)
+ {
+ // Set the content of the image to the model
+ using (var memoryStream = new MemoryStream())
+ {
+ await e.File.OpenReadStream().CopyToAsync(memoryStream);
+ itemModel.ImageContent = memoryStream.ToArray();
+ }
+ }
+
+ private void OnEnchantCategoriesChange(string item, object checkedValue)
+ {
+ if ((bool)checkedValue)
+ {
+ if (!itemModel.EnchantCategories.Contains(item))
+ {
+ itemModel.EnchantCategories.Add(item);
+ }
+
+ return;
+ }
+
+ if (itemModel.EnchantCategories.Contains(item))
+ {
+ itemModel.EnchantCategories.Remove(item);
+ }
+ }
+
+ private void OnRepairWithChange(string item, object checkedValue)
+ {
+ if ((bool)checkedValue)
+ {
+ if (!itemModel.RepairWith.Contains(item))
+ {
+ itemModel.RepairWith.Add(item);
+ }
+
+ return;
+ }
+
+ if (itemModel.RepairWith.Contains(item))
+ {
+ itemModel.RepairWith.Remove(item);
+ }
+ }
+ }
+}
diff --git a/CetteAppliVaMarcher/CetteAppliVaMarcher/Pages/List.razor b/CetteAppliVaMarcher/CetteAppliVaMarcher/Pages/List.razor
index 35a58e5..cf3628f 100644
--- a/CetteAppliVaMarcher/CetteAppliVaMarcher/Pages/List.razor
+++ b/CetteAppliVaMarcher/CetteAppliVaMarcher/Pages/List.razor
@@ -3,11 +3,32 @@
List
+
+
+ Ajouter
+
+
+
+
+
+ @if (File.Exists($"{WebHostEnvironment.WebRootPath}/images/{context.Name}.png"))
+ {
+
+ }
+ else
+ {
+
+ }
+
+
diff --git a/CetteAppliVaMarcher/CetteAppliVaMarcher/Pages/List.razor.cs b/CetteAppliVaMarcher/CetteAppliVaMarcher/Pages/List.razor.cs
index 4608381..aae9118 100644
--- a/CetteAppliVaMarcher/CetteAppliVaMarcher/Pages/List.razor.cs
+++ b/CetteAppliVaMarcher/CetteAppliVaMarcher/Pages/List.razor.cs
@@ -1,21 +1,63 @@
-using CetteAppliVaMarcher.Models;
+using Blazored.LocalStorage;
+using Blazorise.DataGrid;
+using CetteAppliVaMarcher.Models;
using Microsoft.AspNetCore.Components;
namespace CetteAppliVaMarcher.Pages
{
public partial class List
{
- private Item[] items;
+ private List- items;
+
+ private int totalItem;
[Inject]
public HttpClient Http { get; set; }
+ [Inject]
+ public ILocalStorageService LocalStorage { get; set; }
+
+ [Inject]
+ public IWebHostEnvironment WebHostEnvironment { get; set; }
+
[Inject]
public NavigationManager NavigationManager { get; set; }
- protected override async Task OnInitializedAsync()
+ protected override async Task OnAfterRenderAsync(bool firstRender)
+ {
+ // Do not treat this action if is not the first render
+ if (!firstRender)
+ {
+ return;
+ }
+
+ var currentData = await LocalStorage.GetItemAsync
- ("data");
+
+ // Check if data exist in the local storage
+ if (currentData == null)
+ {
+ // this code add in the local storage the fake data (we load the data sync for initialize the data before load the OnReadData method)
+ var originalData = Http.GetFromJsonAsync
- ($"{NavigationManager.BaseUri}fake-data.json").Result;
+ await LocalStorage.SetItemAsync("data", originalData);
+ }
+ }
+
+ private async Task OnReadData(DataGridReadDataEventArgs
- e)
{
- items = await Http.GetFromJsonAsync
- ($"{NavigationManager.BaseUri}fake-data.json");
+ if (e.CancellationToken.IsCancellationRequested)
+ {
+ return;
+ }
+
+ // When you use a real API, we use this follow code
+ //var response = await Http.GetJsonAsync( $"http://my-api/api/data?page={e.Page}&pageSize={e.PageSize}" );
+ var response = (await LocalStorage.GetItemAsync
- ("data")).Skip((e.Page - 1) * e.PageSize).Take(e.PageSize).ToList();
+
+ if (!e.CancellationToken.IsCancellationRequested)
+ {
+ totalItem = (await LocalStorage.GetItemAsync
>("data")).Count;
+ items = new List- (response); // an actual data for the current page
+ }
}
}
}
diff --git a/CetteAppliVaMarcher/CetteAppliVaMarcher/Pages/testLayout.razor b/CetteAppliVaMarcher/CetteAppliVaMarcher/Pages/testLayout.razor
index 89a4bf0..524f8ff 100644
--- a/CetteAppliVaMarcher/CetteAppliVaMarcher/Pages/testLayout.razor
+++ b/CetteAppliVaMarcher/CetteAppliVaMarcher/Pages/testLayout.razor
@@ -4,3 +4,5 @@
layout
Chouette
>
+
+
\ No newline at end of file
diff --git a/CetteAppliVaMarcher/CetteAppliVaMarcher/Program.cs b/CetteAppliVaMarcher/CetteAppliVaMarcher/Program.cs
index e680c88..21672d3 100644
--- a/CetteAppliVaMarcher/CetteAppliVaMarcher/Program.cs
+++ b/CetteAppliVaMarcher/CetteAppliVaMarcher/Program.cs
@@ -2,6 +2,7 @@ using Blazorise;
using Blazorise.Bootstrap;
using Blazorise.Icons.FontAwesome;
using CetteAppliVaMarcher.Data;
+using Blazored.LocalStorage;
using Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.Components.Web;
var builder = WebApplication.CreateBuilder(args);
@@ -17,6 +18,8 @@ builder.Services
.AddBootstrapProviders()
.AddFontAwesomeIcons();
+builder.Services.AddBlazoredLocalStorage();
+
var app = builder.Build();
// Configure the HTTP request pipeline.
diff --git a/CetteAppliVaMarcher/CetteAppliVaMarcher/wwwroot/images/cactussss.png b/CetteAppliVaMarcher/CetteAppliVaMarcher/wwwroot/images/cactussss.png
new file mode 100644
index 0000000000000000000000000000000000000000..20c755dffaf73a449531dec9d00da9757a13472c
GIT binary patch
literal 7121
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
DFg`AE
literal 0
HcmV?d00001
diff --git a/CetteAppliVaMarcher/CetteAppliVaMarcher/wwwroot/images/default.png b/CetteAppliVaMarcher/CetteAppliVaMarcher/wwwroot/images/default.png
new file mode 100644
index 0000000000000000000000000000000000000000..a7446c9e8a8c755f1e21faf389634136d44fed6d
GIT binary patch
literal 2267
zcmeHIXBIq!$_ocGH~zGZI(lvb1m006)n
z*5;1;HEW*%QWE<)?4{2);XtUPl_>z%dun#Sk$ecXg8~56=`uSWhX4Qxz%5&6i`?AY
zyu7@(Z{OzU=NA+d6c-nll$4;+=+e^Cva+)B^74v`3JeB=#bPTfD{(knRaF%pkFTz-
zCJ+dpKYy;Rt*xu8BNB=A_4N%64ULVBBoe8mrKPpCwXLnKy}iA&v$MOqyQin8x3{;i
zudlzqe_&vMLZJ)}4pOPqp`jrfjYg-_hlht53FMd2nHe6BH#<8!H#f)U^XKR17Zw&47Z;b7mX?>7S5{U80>SF)
z>e|}c`uh6D#>VF6rcfx{+S(F{MBCfjJ3BjKv3PfPcW-ZR-2fMBIvBA&SM#k#iJoyiib{34ADdDcA_31T)KpX{irS?~{BklHj+M+J%
zdw&s15$x2E%ww_b0H
zGN`Wrd|F^q*B=xc1K~Lt??CkcoFt51b6of2;ey0^_r$9zTQI|#vY7M?ow*q>9SF8-
z@0iVrUJnQmYRvoR7rLH3!`KV^4KZPJv+ZSUf{CD-c{CJf7_T?DikxnFe$i3IWg0g2
z8v2|y1wY;cR@ycOa~`B6D4Xd0Y?F=Zy2WL(Sz}{QZDAy5>($Mi!c@bBwP~2}xXFM4
zuZi236Fe2m@7jC35T~iKy6(nCi6p^xq+%VK6rWTqDTU9^HVZc7N>f=YvH1%#>G~R%
ztWwS$S4Cj$c|}Mt5&b?1PH1XsJ*=P*c;8XHl`h;qD`)csmh^*;Ziip9o=jM3227F8
zGZ>AGkd9ka_Ac5MHM|7lJ(R+fRS_ES7v)@X=iSMWqkq4Nk|x#Rgm$f_t*}zQ!jA|K
zRz)QkD}}qV_E;EYEdSU3?oVs4d{vw@j`_P7cgT_%2??YQ!jK#rBos#}?S6pO{GJzO
zSO%*hRbUDLG8fcv#_##pk;k6BOB-r6^)?$g;r~avGaYk)R-Th4hjZ1|vu#)R@`K6r
z!L*z-e50v`Ks?iP*$*8`EH=wk%z6~8w~BZ<)M;hu8QxwA;?&Fi)&+0Vy{C;EyQ>^&
ziS+-4nd#d=aM{pQ2suv|PKaoN*Fq>#LKsyUq)t4amGHVQh8@jG)`|u;8%Whfh_5J<
zTN(*rSx-(aM+k(N5a9hTjs1}Zsax&EyR-zOwm;8l$&nN7QZ{};vtz%D6v=9-)H!P?
z{bY_NSum|GVuI^xUE?OoLe*g*)SZ#ttQeoK#=uV{@mFJT2ZPmNE{%gy_uU3)(0l9x
zx73I5aUQ83j};0gQ0ZxhqEjxs510W4{evv(Gw7`OBsfwDI*IqD5T{{Tv}C~r`M9YN
zah2EQ*j>4xg4@A5?ZY_GR
zmBeb<>8q*!FOJv@Tn9(^si4T-^I<>vLI(56kI}gtf%j20pN=VJDtS<=V}+tg$0Kbl
z!!;H?``-8vO}uA81l5)Nwwb>B1i#R
zUwuubIGlO9-DiKM2qM^#_tA4`D1xj!Dx_MzL$48HXY3cwwR8R_eDtd0wig>
literal 0
HcmV?d00001
diff --git a/CetteAppliVaMarcher/CetteAppliVaMarcher/wwwroot/images/loop.gif b/CetteAppliVaMarcher/CetteAppliVaMarcher/wwwroot/images/loop.gif
new file mode 100644
index 0000000000000000000000000000000000000000..741cdd8d0270ce181f4b721dca1d1b9ff09f5c70
GIT binary patch
literal 2214782
zcmV(+K;6GbNk%w1VT1v)0`~v_77ZO43?35-78MX31qdw{4Ivp0BN-1X8xbWP6Dt@I
zEeH!Y4iPsT6f+YPIvEx_5DzgT7AqwiH!LDOCm}pDCOsb@J_ij(3=&8i8$%cuNDCBK
z85vgx4pk!^Mj{$fuSu-D!d3PwG%6|6Dzn2HM$lzxC}L_Ej+44Jdi;?qbx#*G(&_mMT|N~
zi7G{zH%XQ_QJ5SSEX4)uY)&)W22}9!qLh1=c=>$ye3QFq;O5_4k?g>}v
z7Fy;5P4fXx`3Fn$15@=0Q}hE`^$T3|0#*A7RQUl~{R&+B6I}KbN#rA3`uq0m
z_3p>r;-kL4A^8LV3IG5AA^!_bMO0HmK~P09E-(WD0000i00000gaNVw00{p8w+P(A
zW#B+A2oowSXmDYehY-O?oJg^vMKET}h}oENqsNOAJ#r*NvZTn99?PioSkk1JmLyrW
zM3g8IB19!`>Li1bjLx4o4+$Mgv}jSFNP!CdxisleorgR&y=fDvqN|F67OhzmDx#x7
zMIK6ulyc(6xF{n>u6wskUX*|RPF##Jqrt?34~zd#$lY<{xz)?i
z4cxN~BFrr}YgX>EuFsz^k)9lmdbR)6!uj^vR7epepjWafRn$gLb>-Svz)6*0RX~{)
zn}49yMBiwcHTRZsW~e8fMrz@;ml$B2l$~A^`Q?!r2o*+9jERkRm_+572U17rsWcZE
z7oBujdY{P$8cbYisGM_Ek<^-PS0$O+e_)a2AXQijC*_4tCdedKuw6J7Y5^LBh$4w#
zg;kPUPFWV4&*f**XC$!+U!6UYA(u#FSa;$^ep%<|ii9dOqoFn~rs$#(T@=Pea`mWE
zNs{rEB4}mQbXStqp;U&anZn8Dl3b~|W|~(zXDXTjwyJ8BNv{72tAlBpO5t#f{{G%~BLy<*kK
z!>iH@XTbl`tH`~KB!cnA_7=-As_;$>vdCPa%hkQnnhb4T>0R4npNc`G&_fQ5XtP|4
z;r!4TVdV8t%GHgio?Rt7TkO$^M51&g8J{}qO!VHXG{0&-Y;_~{LVPd5YI1C^ng~0h
zv?gS0aw6AEV*KEsuYRa-0E0>`t8l0oS?P6tgjz(m6b)FH>s7HIcW%i^Yma@n*}QLz{Na_9ov_1KugdqS9|Ju0*nB6C
z_}RR({r$npm+iMBY-Wu2?CiV#y1le#x~ZMe7L9qzXXM{S{`sSE#zS4`f}#Y-IW>rm
zbCDUH%|eHU)H!fd8B14>+@~@2O|2#o6x9UNB(>SS?qbfv3gdnSGPHSZZiHjsy<(*{
z!LiS5X(QO&@I}JMt#5a1)13u3hQSP4kZDKzVf+7{g|7LfYhw?rj>|$vsB7s@fcyhs
z00kHZDpK))3LMe@!iApDrEGQ3I-R)GRWwPZ%Y7z8TD0I~yIM)?T>w*DtX!A7S-G)s
zG@KaT)|N-EsSSh+LmHaU#IFpx3so!RU8&%>xC%zXeL7U3rZ(uTBr1_mcWI)}ATq@O
zhT(|_>7*2=xJ3bql2MPzi0Fc*GczcVmC~`K86{Z1bgvxgc(ev4P}ur)R&a>g*%2l
zuAstUQxPuO>{0A=>2$j2
zr%d`xCE?NwUC_cZ$#rU6=1PuAIOHTINr_F)NsU=p6VZc`iG-$dRX}YL(W<`1NQYn(
z=EU$P%~W)wUcHOBZe|9aQR{PPWsF3=GsTspS68=Ud+j5}5zu$UJqut6ej4oxI%4Ncr4oKkww3IWecGh;@!o
zB-<3n`UkP9aV}A8VxV4vi9b>$&T+^Hr)8DIeJy#8UuzQDl%b_ln^B^AM5G>(@b;40
zWLXnm%U0RWcBQqotz*oP$~|@QL~>b?Oe^Kpt%_E##a+vB?~~l=vWZGZc`$?r)F2jK
z@)G>C0e
zQi-~p_|!#I^Z{{rKa>*?KL`IOY01n=+Eq;zYlgQc0xOKUsuxRLs;4v7%VGwDV;k-G
zzFdeYkR>wYA%`mrr*+X}z|d8|f)*`BvQLy*LgfNAWy@R^N_7s}Witf@%whJ`PDq0j
zGk>?c^!czvU;P#m_hiI#rgN_Cyy89s)}}qx&ZRce+CYyq4B@daqE)Ksiy*`zjm8;S
zv-uZ~RGQauPV}B`Z#}-itw4*&_pz)il`j!uUdeUm-j=8a+PRqEfyA)QZ
z8mVMXcd}Tx*>;bLvr_+pPIBCgx`@B1tS9Q~5?A7DfCpTYJfpF}cb@3&!1URN20Eh|
zJ{O9B>t)w+xt;Z7nN6=8xxUIOmNmZdR9zM+?2fg&BDhRghxo&^j+c;HO%qDyTj|z*
zIJM+^Z5QKwMLainvjfxfp%XnLMh};IdWK@OXIt9|=JtdrxN)fmXhT5BI#TD@^>_Qk
z@vnA{lT^OuNe=feepk`8v-1(`ydCa_QFh!7Gj|=`Ju-}b2$5BL_LCe3Ek?mKyEoGk
z)<|8TRlgNkvfk!23-YMQ3Ok#>8*;deyo{C~ZNw!_V7J#iBqaL$iVjsy>W?0-K3{Z@
zPw&yycXih&8Mpt+H4XS%lf?G7H)yHFOz&0)UQSwn9Ft7`q0vB|S!8B65d({PwEMdG
z&i8N?!54fceR%;}Gh%)B1zXssecN|GWQ8LA1ug(aBG|SX#_<#pVsEU*68d&-v&LX#
zPtMCfBC
zH6B1F9Y$AId_^L|MiGaIh&F*-34$S27;=fHh^2NQ!eLpRSd5qjasi@Cu)-vnI8|3+
zH4#HA^0$KR=ZtWqIGGq~|M4g^QWz5$F3z@!uSkm$C=um2Y{{{Mau^>>Qi=l7WyW|D
zel#q<<2$PYF}@=_3ga-(xGT{3jQg06`dB^s2#~@f3HpeT1G$jDBMA=qkdrV84EZn-
zc{L8nkOoPS0hy5#`Hz0|6F;YLfmn3>^@p(-i~c2xvNwLbmJx3F9A9@d6K0I}xRD$w
zkO}|!kUF`O5807E*^xY{kU$xfMA?%MbCFh4lsg%bOv#i3*_2S(ltD?6Q7Mr=c`!{m
zkOWf`KQ@w*(r9R5fiJRPyr(Q|QEqDpf*`|;V7aH`|6(%>70Wp3598x$@!OxX$h5?351EA)EShA$(+&2n2i5P
zn41}x;5iAG5SW!f37c7-lpqP0>5x&mnW9;rR{1dW;gXkO7q1zARaJ3mNHTV_j{%vJ
z2q}~kNt8b+o)3u$4vGnsKnc{@mxI}tl;EJ0P?-=Kp$FAAs+nxv5W
zpp2TRGm4`-`k;r}t%&*x&bkTU8Vj*7snV*V;wlS_s;I|mquqL}E()G@imXVgtP{GI
zo;sb0iLY{cuYC!nzOtphDMEqMJY9M(-E%OrsuOhiI|_TNSZS+is*{!Jn3o!%L`k94
zN}X~#sn02=?y9II>Z~MNvglf(e=4opiJdfht?x>sqj0S!Dy}o@tu+4&u9JGA?eqU!3h*~+8cIw0=vjlS{5O>$jQf
zw=Zj=*PE@N`wD*Qr%8LR4qCU(%bd?iuY>8VREoS#tFg>^pB_m)3#ya8dceMWk#;$;
z{tBtoTBVloxqbVs>nggRtGzR7zmuxB(QC7etG6Jmw>zu1jLNe+`?oe5!XzBICfvd(
zdcr7N!aBPNF8m5De8VtouG#y(IDEd~i?fRBz1Ul~iMqqi>bQjKy?^SWAj*
z?6-)UxJeAX89c{*49FsU$R>=(#H`3YJGXso%*1TIfn2kd8_9Rv%!drgNKCGV+`}wf
z!#~{3N36>vyUE#Gr-Rwcobbe>oUG}53Au`(R)a97YQPb?p0Di6LHV9y{J@@C%OyIv
zHOj2)E3UcR&95NBhHJOX3(P8f$jpql!tBu0T*#Ynw={~k!5q<*o6*l)qAd)<7){Mc
zOtX(H%{NTY@JpzZoUt3a#EMsm|%BINh00n#GQ}$`;$x;5ob>d$qF+o}Q4s
zzAU;*&DOAx$c~-Jk=)cT{MFT5$#GlEA-vVw{Ly2L&3~-XFr3jc3)WBF*_<7^XN}g^
z`_zTX){c9!d~3!l4c3Qx%Sn9K(2AotoytoYm0=vkmoU7B9m+$Bymq?1*=w|(EUq-m
zzB2pRjvd(qoz)JpY
zwAt&=(<;+LtG{E632z&vQfjJD`J@}0&-lxet=A?@0PE7EE0(($dbE?V33
zUEB`(wxU^?P05{8JER(1vQQkxM_Qtlxe4h!)8C50lD*k4exi0P$S2&gc?{9oZPgeJ
z-5nhZR1VT2{>a>2;wsMM>OI@g9kgkDxX`G)qej=<&$03Aim*K&fyV_<#)`?T;Am)uGxfK!_N%9
zlUwH4i@}&2-E2?EqA$9vZpyD#tLN%mvx&S5zmCX~j_j5m?Z+ZTCfz)!o*X>QH}p4+z$xNfWKn4IPV-RWU2=8FvFT5jyvOz9ZS(RiEe
zlDq89{>Ght@B}aI3{T8DYvJfE%@vHp+CIXFE4PR}sotKqIP2ipqe+z$UvxZsMdlnk_{&F>>!>{H&|08hRZ@9YWR>_0E!ij3A>
z{=FkD-Ovo$K#$huy0^~i(2i}bz*|
zt)pG=j73&V@<<^4X)43F&yfAD!6^l#ko%I^2V?(}aT+NDkSAAQhn{Mdyn_2zEQ
z%bmJ#?z74|vPM42BoD@7?+HDA*l~;YoLlZ{|F>~F*?gbv(CxBHw^pSY{Q?8)q5|gk1h4H&aOAw-iaO4Osm*4nzG*7>SAy50L=N%df+y`
zq9RKD+FP?3KhPxI+JpaJ@Y;^zeT&VWtkL8-GAkIJo|{;-MDY*`p(^d8|Bfv
z;m&%;+#d2%O`~5={im+{0I`YFz)hPZNwSnsVZuw77&dHZ$)QAumj+(s|WYIW=d}p9L>=!gv%cr=GFC5;TcP?OIF%VZkD~_L8THbs=KJ%jw|4
zg%By)t(%u5$ATO$>Rg!;F-n*$V?KU7)aKBwiwl;W3e_iO%td)#&HQw7RnSIjnl7DM
zX;!H(f94dt*)0Fro@Y<8RXg%6$xUhj1I7p!BSOB#A6D!**Arfgi3MM*Y+1TV$kkmk
zjgDCLcJ4|?YmPNbyz0r_g=)plx+&?OoW$}3Thb+Mo*3cBpFVc1r%f8$hP;F=h?c`E
z69X?H&bYn+>u96Ayn1dRShCw>E3_;F>M@*NS*g18V!_Zn5xcv|rl7|2X%^7R8xgBl
zR?F(epV-?>Klm=Ja3tCuoQ^*oH3BfVO&Ve=AxxB;YoLmZi>Nr@E>cb{l^_)CtqE0f
z?4|m2Qg6d9TSCh^^f)YOJ@ZTit+N$Hqj8sAe##}zS>lXyDVl@=uf?Le4C*==JtGOM
z8xIo*vCsd;;?1%KIjT!RCMQxT!3CRCs3DIU!mB^Jkh^q1h^)MlAeUf~g*E)j?DM+U
zUYQaytW5IBsXMtt)2h#6oi!>qb4?K_I)BY2&!$YHQO{LbgRH_ofx?nLETx-LxrEBapa?yQx3Q+9*raJa`R`gsv(?tGi9U|VTT77~kXno4
zm5`-O1!{>@8Ykw;C+j$5l}p#?t9HE?J~fBzMHxiU80&{vl3?l4cJzsA|Gt<#Yya={
z2~WTEqApvVsOwIm9hnTbKGf-CAc890bnrr^wUlIhru$r99_1I~Na`Vcv7oiS1(E;j
z@uhkS`bcm7la>)eXlf-SA^B9ellQ?de(@_`{$_U++1QSEHM$>DPO>+heCS1WTTD&_
zNV?*!M1I8s9TD5bzz051QJc_Mqbi8O3hpI}oLh($6QV^+Tu(?}Y#>_}gTmX4k&G);
zA^KX!KQxw)e)YrQ8s~>M_2mvE36mL!D&`vB9gu)Js!tIu#y4HTbc&e%pyvayr3V@hY#I7j-q5pQd=O3wE9KkD>EhA258TEe%O
z{LNB?n>>jkK`6!NSuul-isU6DiLHhBMkKeyo-hl7NEJHqlZpG|GYL63SK9yYhWKky
zR;bn|kf7~85VOz3X1To`3bKR=1ds$7`LRVpN^8%P$dT;w!D51InMDdCCY^a3T!Lhu
z(j;UI<+sLHelmTb-*zuQ3lW#KaaCBlSxU
zj*Ljd>>LL#sl4v}Q<-M$=SmD{OUt~lEH*8uq0A?^9jcCoN^{}b82Y-dG;UcqkSUk7Y)ec{r=N0N2&d`8
zX;5A$P^1X;t=jQSP_Ic;qDW_PI_jqXy2+tGMoUMA{iI+Dvk|^lG1-D?rtAEODz!(n{S|o<#ECWluUjA%QNY
zn+)HBWGS~;`VqTw?5=meJ5UF!NxS4dt*y{2GvFEUC|;RsI5UJeIkHcWrfZx_$9I^x
zWN)Pu(Qk|+buIq}2)P3COIf|hN%m&Swj)6lYFDd13=ist7{>o0cZ>YiG_|I~5ldez
z4@;%bRE11R^$KmN`{SoMlZ*lsmt5omvf&c9%p0>-jWK&kMt1R%{NXK%rOVWKeG{GP
zGh&e?{I@sS(6p|M>raln9W~95V)RKJ?qEX@x+$Y%P-h
zw=Tl$nwu~AXvQV@&Wsx}gvh%Y`ec|iw;E{P0-a>;0Q#sh$`5T)x3^_gSj!M3b#Eih
zOtj+ozcL;vaq_F*F%#+2+S`_!@A=QC#Ti7ZH3L;{bW_D#-N)YpAH=F29eLYqmgmICeBS<2=WrquA6=(o9n$YDYVqvt9PogRi5rG!
zR#W$cE8cZvZe+df~~gJXy1JCbrM8n=6m>h}M)c74Tg?>-8Hca)dMAl^e@LJ3H=
zm&B34#GfK8Ir6`r^3XzQ>>>L+%&RylvSTjvDt&eb1El=ZLqF#zq1dp;eJyz?8i>QfSr=@#tM
zx9*!P3$!XV8yo*Zq~++3&YF&VI=?xqt@c|j_?xS2>!~u4kz9eepz0m{dzi1lF5o*A
zD(i&E_!H|$ss=QxaEXuvl)l4Cyk#;!kYf%Cnn3S^6zzi~u%fZ>!>sVjEYM-T`BIje
zc{}KWJhM48`*AH4EU3~NvaI+QJsPUQVIlvc@FVIXypjXJm>9t7=)tK=q5hD%xDk~G
zG`^U?5h2+M=aMIlz=*RWvqsT3&Wo{=qO2PWnPOTCD`dVSWEtl}y*uQjrb9G1Y#(O{
zvLQRIq|%wDo1fh4D-aPkyTQ7_(wz^3r9uLema!576vYiO8@3=2#|XkY^b#%nx*VCj
z=CZHP^FAk$Ab8?0uKBl3!Lj1NMdjP95rhz#D3zL-ub8s7(9*U%Lm%6knD%);{Hw(?
z3_1L}KaMl8^YEAN8LWu9DYt>emjIQwpu@qcxGBjE?U6dg!VxpPi3X%RwA#Soinaym
zuT9%3MQp5+@t6P`wQwmEAMq{HX&L{gfgZW-lv3sL50O?7e+#sM_HvUS+Nzt5TTL=@{h%LlOj8qw2w51Z7M0(38nVP8!p^cA(
zI=69;p_rwM!xcdzEm#w;ox%*LxWS;y5E}Z-%7YHW6hfs!%LIBxn;9Z`1eLgy%jk;0
zf*eYVxI9JrD1O_^m>ZXop`8D$8@4aXIVv$gBOJ_&YP_1#DEJDCo|p+glA7Ck&c?hZ
zUJ&
zK?r#wu4YRv8fz{}M5HG2ipJn4=FCPD3d=*AOovlCi6V>aq$SrW51aBfg$h1fni4*n
z4X7Hz0o6ivA+hC?m(YQU*L;O@2}XSyl5V;Pu_MO##LLbLDg5*_e-ozX$;ZNQz)KV(
zmhcjpOea5z_;Iibg`*;svQpd<1)U`M|`noO-8$4LWwreB6wjqqs^R0BT8A)|O
z@4*QARKnxRKu(n`O$$m-brMc+nVL)-I2BCNgfEaoQtC=a(Q4KA(5)o>vrY^{^TDaW
z103tJwsw<}0xVG!Es0|SlFy+FWg@x5n9D8m3K(rxN&(o4n1o62rG%UmX|)#oqE?#V
zggJ#&Ong%z`JVqG%{s}HD8&RZBKpLOz@c$vv>0MI2zw#gkPSP-5r(2D`NLIB%EI3n
zl`Db15P~y%g#ln^o@4m_rr@`_;$*x8hbN&!lO)glW@5dHMjHNy=;Tv*^~8*>6s
zn=Qg1s!Tx{&4+zjySkC=gjFHyxgw*%iVHscK$y;G7jUdtZ-pC|nZvl5*RLTNw1TrC
z8AOcISzzmrv4I}zv(&mETD^qUq#a1*Fg{-GtsQMXJB-wss#1(vuyX1|LCKG($tfg5
z(!068TxC^rtSFkovWRJkS_#0n+rTC|5+6a1ToMq=(An!#lH^GV*9V2t@~SZ4YhK05E$CPm
zn?TEx=oEqDLU1{$keF9V{Q&@A}R!c3U!^}H!#Z*m~rBSfoCBhS>$6g#=@7$AO+lwQKA`3)B7yBS05mnW5%Krr|F9akdjjC5XEJVGo
zuU#L<)J&m!;00z(jhzjOMZmITmBcF^2DuAh^e3goF}jt_&%wZdT}UO2h=F~i?L%Kl
zsw)2~ED{bfD-|OnQ>{dgRY1})SsJ_%cN0q?=BZUwUfCmAvBjG_=~_~Xg^tQg7EKzq8{5g66-avZ2p<^;acLgB6xe~Kpo2)}
zfko4-LfU8EO*ivowF~9W8s%(7)i{PIJ#`kRdo&(#;$6Eb+4H$rNww_78yELDfgtb=9t3U#mxz(9y5}ltd1(Pl|EB_z66;5=a~Ly<67xx<-SP%w;Q9LMlDab!NfIoJKsU&q5drM
zyffPXxyHG;gfhujb!u6FYDMkNxA|Nyxut>#m0+wE(IdEf!<28?l!s7~M?q$G8pxMs
z;SA#2mYb}>XcByzh{`Ik!1U0keVgI*-7@N*&6!XYFS&KE_4r6z)F6vU)0&Vadd9DVuYm^G27cEnbdx
z;^^Eh>%Gv&OkPH-Xl|RhZ4IP@bLX_^=D~ojeB0T!5b*IMa2zY<#R8izj@AWdVa|r%
zG3KJ{gRE*Eu#~C@uC}qv8b2K!jO~FKEbKC_k^|g3Y2B
z)jlWxkGi?JUY(LRghL7EtcpD?EsX>;j>Qkdn8YkW
z3plS3oQw_+U(tD`+hfA>JXf=xhJ`*)xnPEz4eH5gYm!4p^hH;8F6tPyzUoio6z3Qc
z$kyWANTP5_%tJz>FBfwVi<;uO*v3R1>6N&nHWXS)3}*RudnFM6NZbnv@e}1_yv(Z9Z
z2oqbkG9NnYQhC1>IXOPN>~5F>HO+=%0xA2UXYR;-c)h`>*v2l{D_;jT{l|DqNs
z>3irCMwDmmr=PbCPh}f4-ljs7LJnu?^|SS&!Bz{|y4p_rf#o7rp;u`6&t+r?xp&e%
zDS~!;*aWp>C7aKCB!sa0yT^NjuOhw298NIGgtm*pV7vbS-O|}cPyek%AEfJ*`J5o8
z&WXad##_#n07LeH?^SGSHQG$8m6}sQ)F3iTh|&pNcT>O5bJ8D`%9vBqu4gB7q)Rvu
zOqPV#U-W=(ECmrTz~`!F+Y~%sJK|;fcv;HoQ`FH#ne?VIIs*t!n>KMOIPf4sf&~Q<
zj3rA}tXQ2U9-PQ&VyBB3H*)Maa3M&63@c^?`D$cBPOnxbOsTTvrj;xaUOI?!ASO(n
zc3!%K$r8|@mU3c>2@BTDgffqg?CI1gPp3d73AIFZ>ZMGXE?Jf2_3NatV#ks#8}_SL
zv1rpyS{w9gPfS{U{;V35D5gscJw4sDlc%Sg2R;8SROsm-UW6b&!YsN;FhQ9zM+%hu
z3g$M8I?C(yh8;a
zMS2r_5=#NxzMXsC1u^(Rnl3uW!J9F&fPoq@Z76b*BW@}UFd@IUi!;>VBg0B
zcZTM)6DLvKy7Nc2eA6~=r=_-8XtLFZQfLl6R2oGKVU${H1F6>8V!ADKTxYKwrQu01
z1&A4NgcbA`U+tCXQ*glv#))w)X=q$wBbMmgb9UK9T~^Iu*A|avwZ$D+YIXM`kZuLl
zlU6Kl^3+hg;q@GpH9h9oVIUo*AC`zA2Vnn5l}YBIMy`2g(`%W@_K|`R$zqX04?;L0
zNtlT_W@njoh?rwBz48!JS;p3$Q+csx;%_1L#1~NPy)9Nxy6eNkBg9g{ZFIB9iG
zjkTkXLTcwJSVaP96^&ZKQc$IX4wut&C%(t1U!Ps+CzkxFG}%eBDb(L>6mC>ufSeI@
zW#AZfrzS){{`dAWCJPfOB>$w-h5gyJgNiG!Vpm9BUD2dPEN7P||C5A1Qw|2RxoicUS$!HQi
zERwL$+N4><5H%QPvdnVip_{SASkV8S2tihEOOBaK=0PS7Oz=*uLUmu2+)4@SLB>7$
z(an`&Iw{dKM!D6z^_qp2S(oUWG>$!eWwciQaw2eDiEi7TPVT9@GhQSHmLIi^y^NEK
zkD7!a%Du`)aYQABlv&0UCODeM82`EvK_WMc(61VA{8`HSl`Y?t1~yeQdr@^8@S!#Z
z=G3r>Z
z3A(k;tPa$te3vDM`I5X5hN%BtpY!GwZ=+X|N$LD=N+iDW#g^8I<#o~l&aP-Dl$n7G
zN~`+beeiU)@8Jh+Wm=nVB-WDTmF7dt(+~7U^PtwG#(Er4UbBj&y}1#nd$Dnug|-)>
zZvn?k=)eOz{5{2LPPqzR
zvKBh~#U+9Xp`ZnAa<(loj4_x&7Yof)xoCYRd0kT0O-@*`UhHxa3L0Nm6o}(>=_EXkEY0F=|yL=S~_d|UG9b}^XP(U*MdX(1=0GF0XXGG2^d=w=i;Wr`?LfyyCn
zIx1F=K5}0oZQ}pZK6O%*ep8&6yd*fmS+B29qORwJsla49L=nNvabr^%PP6nflkgOT
zwmIyz$^<^RK}3Wb5vE4ln9#_=W;Kk-UPhp5lYQz`f@SNSUrba{cmYx;gM>x=d@__0
zwG5hLjV9;HYF0?jm1)^Q=_SLW2t~X#u3~9KTpaCY^qSPySy6Vm=m56bGrBztV
zR-eRz&p$%l6}J32M>*;eslfWsE&oP1i#1F#<$~zTK-<9BrgJ!iIf^X)^^-xh_O%?f
z(QIj3+tjTkx065wfD^G>-VV6HynQQMz0%SeS!%TD;T8>L23Roi)0iJDFJh0^-55^R
zAaHvY@+AKYtbR&JycZ%bnOqpw7s4WeKYA$};Vw!w^Q=72wbQBEGE1?9o^9;r5MOhK7$KPi2it;w!999M4aOThEkU>?-7HEnLK_ac~fmBD_fAwK5%&0f(ftAOm@=
zZ=D1g$gt!|D|ymP9`K{n!eHsZ#lc$JBB2O2pTtEIaf)l@Dz}WMsLCW3oE<7_BqS$_
zX+%H;9q3V+2h_;Kk}(=K?|veNWw91)nGMFM%{;NHL`5!sft(8DW@y<`gz>%T|$Z
zyW7BZL>bBu=}3Qj+`ARGBV2cG>G1i%xm)Iax<7%(NWnsqe3`74t
zCCQn3OQcj2QWk33Ha@PCstnI8E;H<>8auU*7;V
zek1x;F%E&L#oGAuk_oY=8^31PZ#N%332&~QEa7xJ?aR>e0f#%uM@A{@@Sc%)S||Ax
z@G)0l@yf8cnq{n!^95a0S&Pqn2_IqCuw>Sm*o~PL)%0mZj4r(F_sp
zhzOu?3qt&bVS&c-K@8v_$MfvTg0z}cy%O>8n=NUV(y7odZH8buh91cqOMn+pL5j&N
zhxqh_u>1ynT+G)L3~W6|UG#=^$W{%C%C>ciTvZY{Z5t1gK^gp@{!!Wx65(#aUI5Zy
zHO1Hx5=5)S%5w3W^Dv*`s8Zln3}PA6QW4!kR18QM)hrE51%}bUZOqSj$Qt^|m_!9i
z$YED?Nhw9e9RkOZpwmb7p}zcK4hEMFzLgo6K^JsEG5+8fj6upZV>5yqBRb-C0FYjF
z6jfo%%WxDcVNPObV__`?Vr>XRB;cx*mpCRJ7!fcV0>j_yUjfF7A)$27vF&<+wih&s{V>3czA_^fRqSaYYqh5X8
zosr{&ZPdbS;|?uM7Cp}uI?9GD1yYQooq3_2oFnC-p~O&EK?&9s_K7z(1zogOP8tP<
zNJ%|D#lz?$7pVvr!ApJ#q@xL0APS-|CS)TVBNRj>6mS6-fI%3Tfiq?$MamrjZW1F=
z8H!kAInqkQ@rT6NS8Tk`OY)4qeZ=8$376=J25E+{r6KX5+DFFB&IrqUoYt5W#0?E4
zKVkwELCNV<0_jwOBmiW8m0Py?NK$UwK^|lyFv2A<0%kITR7(FPRdT^qW~DQ3rI8(2
zsJ!0{T9i*D(sRvISvtm9id616^zWJ1HW)+o&9D6B+lLdHytiPCh|(pT~{m>#{?$C
zQP6^e3MYy2n}RL}C*aj`4yAL>MNgE|5@8!8l@nQXC|p?*dS2%sB3NcJ0(W-jcP>GA
z79)9HOBoH3E9d
z-XjE;Wu9n?Zl`zdsSQNs8ms{tkmvp(*oh{XS;P)L4ic)M-^@J8ePY5W1nHN^CG(Y<
zOnOhLDUPPD5%d@z1760!-AYP+*^`Fgqy`>BH0Xm)V5lxcaWG19a+K9{2`reYQ!Lo6
z(p6m{CU0bDhH|KZdM7EnBc6$LqNp572K3U
zX}g{(Nv;okt?Is>7MLD|shmoz=0w#PEK}6#TD5h7~6|cIKuV$cpdw6d(UHf|FfBlzB|{>@!*)r(#Astejz8h#+v5rt)(
zBvg5BrZTPT(r1At1=PaIo@@v!!S7?dZ*c&umf_gS^b9QU$-=IoX7nTJWo*Z8=*4d6
zY!TPp-mNCQDO1MWo0=$!GD6@kS@Z_32Oni+o6gG;nXxa%Et-bK8Xu&{TGC`T0`!9L^*(P1hp_bq
zVIo`rA78)1pKWzQTMa#qT(+
zq)LW@B5m*>-gz0t6K5FO{FH2FUycut%C@Ori+xYcFah+);FeX|YX2>!Tcf8(O
z5NlZUZMU`^cFHjdgD`+yZyirs^cq>D1#TJ`B6;?)A9n!DTJs;{fFLgc40rQXasgJ_
zo{=STn!;@(mxty;vej&YJqG`=#*I~v*5`x;RwrLx5?e+l%WF}HvV0K76U$}RR?tkm
zu1A(yN@mU_DCqex?D}o7ELXBm>~M7A^4U3&A6BQ21tLOL=UW9~r6t)A#$DWfTOp=g
zF`o2EFTeuyF$T1>3jeXo^67SVGYn6q4QHjw25#Fq=3)x(IXfpqXRfr(a{8*PePW1y
zZsh!WascCVPOL4f-0O`EGa+n?Q)MnoI*mH5(mqKIB
zD`@EL#BvQ8QBF{YFM3CUt)1F&G(v7Pf;D17(sh6>A|l}RlIitc_q7=O^$!ZRU{fwPznN%ZilbpTI5u)mQ&
zBD+ySS>ktlyZ3ve)@#N8cVQJYq}Df&zq2I=F?uXCvJobA$b}?lHsnx~=<(qMGiE}X
z99pDjg!}d-G4mo^k_cb831|3SZ@6-c!H1)?Llz?ey!o4txJs9}HAgF-PHRmcBjld6
z%Eg^`1Eep*ty7S9e$_H@>9>8ccY8-Qd=oh*&+nA1D^VQzy4jbMFD4ExlUeI{+6wLP
z5;|HKI;fk~@MgK|=_(}zI&i;UcaP{sH>;(M`DGe2h6gT@EdrXOIZE?+%E5V@%lTmU
zu?izLwC*WQQ{@b!G|P>%WD=LDS1etO`o0W$T_HMWEBfYQ@+gSw68HG#7IjC_Ma2dt
zCg3tU&&BXkHY5B0BC4D9WPb&R)>V2w0=;*+bq=ES*0Bg9STo!49Ur%H7vq|5H)#60
zuLFCqPj_`Ib`yjrI42`_hk0*-EG{?NVt#s&q`R*EV=bd=M@fdaOL3$QQn!aZJli)>
zhr33eQ@JxHB>=U?hkA|2{BTk9@ZK_mPd0~EEH0Z4y_2j{a&UH9W@Wx!iYn_J|9c@W
zLNx1jjP|<0|2o3cc?Z}z!#6y#gMkl9n#5217zeL8f4W)w^w{$}l$@>l%0!}Tdrn9?
zCX)*+tg^{tdwO$}xyo3e#4=-|2=8VB&0l=SGcpB_@y(kKE*E|;tLfd+`z@=n&)4Z&
z3q58gB=x5MEWQ8yWMXFEu3XYjS2oR2skbFZ;?b7ww$q$wGp
zUOw@bljGAZ|46$z*HDrhwc78uOhom8ekoc?v5zLk@4N4QM|F|gy(M1;OpP@uShlp$
zvRx5{=ALhjo9X%Pk8^sz5+zaH5`G2WEd@UUhh9D$1D9mR@z4`JF@w|P&;LO}!iB?K
z2%qpo8d)=rzUY?$KoAf}U_n8H1urDLaPVNl4jpjNuwkP~#U@aoaNz>Rj2JSA5;YRp
z$k8K{l~ATsxiVABmXsvLlsQu-B}$iY=EQUfQ%_Pofd=h4>Q&KKqc9;gy7Uz+r?8kt
zg(Z~#YR^qYg);5QRB6;vNHKAO#fei(vYUW5bxMkq%S=z#y3J{mXHU18c;?J0SMOc7
zm0SY$n@J_5m4{c_MEU6OBS()*LY6$)(a1)OER&pUlJg@*jv+yE1c@^vMvG9VPDCcr
zYS*pH#4eMDHtjM42Qt*XaJRz^zb7&g&IBVyGhN7}M*Vm(W5g;6yR|u8(sb+Btp^?T
zv!_i=*}oPAoAhh=qHv)e4PSl~EVMW=sojJYD1D*kxe{%9zUch=n4AL2DY6KJiF#3-sJbw@D=(hzYU?GNHf)J4wg|H>rsooiNwLN%8!1JRB(uzsMND)5
z5i-&`W8^W@Y@AUvM@&-=H8Ox)EjA#@kS(?}l*3IR-I(m{f`@>!VF@OdSfV&6%rFB;
z<(R9)F-M*|5v2`nqRB+;uG0>w>?rvTDE8iDk3F^0Gmkz0(i#xYs)CA2J^lFG6O&EE
z3JNU(GZ72D1`~YBL8{tR(?R$qZ0VAlf~tfPm(ZLplMhp(P9(!plB5z-Lyf7CnjmBB
zOBOSGEHjZ{JZ+IiQk&5v9B-s-v>RYpaP06
zx-dgF7)$c<%aWWcmDEs06ltbT>7o!Q?5KiMJM!j)OV08pj1R7+_`Gjk{Is(FYCgCI
z?TM3}E=hE)1GoF|QFzylG^k01Di|m4xTeObBISc9z$V~w<}jAnUe);DRVUBcRIvn+$#lT3Q-q*6`HxJ*$&KC@Fw
zD`r>U@!H)NPOP)KcdDu&g!e0|ma@;^r_9cT;DX7@mnwwUbhs*YC#1Mx>NxIH)9WPJ
z7;iIGUDc*oyM1I<%}`c3Wz%}?@wC%o#&PD>C@=QdV|&irpk)!l;I}BLhyvSemjgFx
za0`>VW11T2*kZfclzS+8xsFrovE2^KDXbt3dvcW7Ax7&Jnu6^9?2v
z8r$P?<*Ze3SI4@{;fkp6lqsUJ4
z9CjC=45ok<%#5o*Ay8&WT4x=#=)zp
zv4Y4m9$7v#!MEKlj2|3~+DK?ZFb?i|AX|y)WYt1iWf3y7Y7MRbZbit;$dHkYo6O6C
z2nXGSIl!+G!Sit6~33sz2
zW1RRTNBeA0jkIJV@2H}e3MGmy4T|7_D(0r|*zt~eL{}`M7d6(6NF|+Vp%w`#NXvu-
ze57yJa$;k*#dX591>%iwe$H`D01d5xZ-zI5L11fUFecEf)BTOXC
z>!FK*VqB)a#Ktg$^2vg^>}4+96}(yok1M&e)TIu1Pz;HXJRch7#HMp8jP7wdZVX~SXxV@Y
z*y5)m{HZj6GRAr+gr?mxfx8bHbSPrm8t&w{l`=jQq7yA+SgW!Ww0?A?ks42%HtLqy
zd9*?V3+YY5w#UL$m6|D0DN7xp(v}K#rGhlsH4!%%EV>AhER>uNd&pCE0+j>Ns=;M3
zOM}lT@u*5#);lGF5iWEgHi>MNmsWB@k6Ep&$yDP+=Ot01Q60;S@E`$
zsPklqXFuBkiBx2?+Jd3do;y7>RVAzIdMH@u6j8GOg@?8Y1lw(cOV-yW#dZk;k=nXS
zilYRjU~)xp@C>*v|9bE`(Mer(#)Pr>K1ZdFnFM5DD%})GhBVei&5lAdP9LT(ojCgL
zW%GI28_bx-H^{7JJ78Xdpcje>@th5GfRQe&fi;V$4C+YqG}hinz_ct+ZF8Fxqky$f
z!^@rTdYeGoHu<)4QkYx5!j?bTWiZ8c-ZH)HkyaAU0#oRpo}}OWO>2l*$;#r
zHnxavxzca?Q+XJrp@IQL!Ct0xT}w>~_9%@1)*o^+nwtCO=bVJFa;EcU>|EW@>}>OvjbfN&6aoC)IP{Nuf0EQZ(9=Kf{xQTq&9H(R=5$&^1i0ro;syF<}_Eg
zc+PmAF%uZSWHpa=DjFZI$g6hembrwKY2bV(tgHIzlQkN
zDe27DTNd$jCcEMncY+g!Gn{GB;34$?M07(iKm#2_L3E^TpON9~S52)1)=my?hOaQG8VrpLoPaem-TByiuOApM7s7Dx3GJ8N2G=0^g3fXqt=k
zNOXx*nd#tuHQH#lbgNy6n>}OB=4JLwPxAPe8Q^dBm5`p)Uv_2&c
zZi(M>$F+F(DcyuW{Pmea`NR|NJcQ5hA7cZ|AUP
z)2=4--tYb3PyWDyq=c~Q4x?|5Y(*YJ1HDD|^32X2p~QB?Wr)ZCF>CjhO#yq40fUbQ
zFaQDmg=GG%TTJR2|0#DG-`h2k$
zUm+HZQ5Iss7yA$vWI+Z0Yq0R#g9%#;kA@M=|XjunUI|y*^I8#_;Yi!{7pI151GxSxtH7<+x^BR&V`fws?F!Hbu<_M7*52WVG3JBo_5#6XSUIL^_s0hUb
zpeW?9!7>L{kqAQ4g-Wq}qLG8l;w{TR|I7K9eS5-XRnA}w-3UO^8L^5tx3Y+@nh7uLazj``!x{q}-wYFH&m;y@3c<-V%I*pkGbewqF}d(3
z!BEklWBVZ_M9wFr#Oi{*S`_^(T`{OKOa0W}$7!5Br2`}@EQ6iZ_A}21|
z6)@5$mQmf(V?NE&DC|=f^ixS|p-Er!A_a6nEfOJDlSl`&ArsW*4CF%^imX?n0Zxng9u>TE;Ut<3l6ivX)KvNR;kMwD;(a38FwaOwlJ*
zR26@QC^Mo95FwGM>A+lqJgZbIOYlm2bT*IiKJODM$nqG0v_9>#NkMfB4t`4u)%(@D`oUC|XiD6&Zhb}gXt)Eb3W{q0~H
z)Fm{;)&!2Fl#*E4)J>E1BqpOdoAqS^joEUN?#|9y`BXTvl~5rQl-_BnYyb+PAWN>u
zIS#BW$YNmWWI=LuNCWf+b2Tb1m0zt7OReumk!2^JpEdWR=FcyNDL4<~;3gJDCZn3(R9PL%IeFzVY>dWuPg>ovT1hrg1@#pF
z7b0Z~Vr3;lN}_-x(f~7L)@W7Fl|(`bw{E3g1#$W^G9pLB(y7Kq6bnVx
zPx({|qQH0QmI84x?kru~sa3m2F
z0Xp3lZgsa$N0#oSz;_ckc%iKWI*uM!@pz@Az0d$g7{htpqETW_Y6+BJHBu}84=-Qu
zkUhQEJqvGps}csSk{C(z+=gd7{0ryY4TMOFCPL~G^5$?}O3pqE#7ahok&>psXND9<
z5!8or5>o+pms%58fq}PfqwRq`3+`G}T0(9OVxwE`l2Xnh{5HWxW3W}v@`6%uE5kSs
zcl3j6Q*!B$N6`}daCTkG#_}HTKW3PY+&6Ya#Hy$XCUn@~dRQ`iZJTOJGLCYQCTWsT
z4>BA
z?4Cdiq&aSTSCUH>TL<-S!7wuK2WX(c3pj!`Oy#!><0gcOtSaw~GxC*zk?{=AQ0fDg
z-}6U*7KK%roufi1*wcjT6D#K!25;GcP+9!K&&=v*E-r;*`1tBtnx7zKtC?g?))cw0P$f`_s<;BX07i>sReo!wssohWX58Xg
zh1q%g6jDcZnkvvzozpXXBXWdu`WF|kUXk`HY2ls$`ho)Hrp?A~8iv7uYnc$5ulU${
zRH}bT>gOm%}UrfOwD@OGPw8MsTGO5&;oF0gYH~bu1h+KQCdlM
zqnn9x2{b|@SR=zwLb++0U>c~Yo%^|?yTUnJ4_7(+TsfWpv9FB`r7ZmrO7D5XpIWgE
znugN_qrOPJxthIucqE{Tu@ozY=6k+lyOQc#eP&yIWX##7CCIB}$gd3wn!s9r&jtv5
zo0IASs<=wFV8MX|Om0oNEg_g}ny{NYg4R>ZH5zV{hil5&Ri-rpeVHwZ
zwoOB$TLaOzP~&i*+aqFcA-zhdz#>RmP%RxO>q%u-b|RXf(>DSPlHz#|gD5lYTfVxrXReL|=PDCQlW#gCw?d&>jf!X;auEj-~>uqbZ5ixXbg
z+gQ7UJw5jI5M@sBo`NjYinku5j$nu5Ii7(3<^~d1Cx9F}wJ!woL+wI
z8XagJy-I{b(p?sKds}#O?9w5)et`h7r8!+&w}yfn2vdIY9;>Mycl}d-qa`_y(>
zfXCWnaeE7Co?3L9N|wM{o4DLH>xgE?vM_6+;Hm#DtPAdHs3`6IigA%9h>q3f8N&
zY}amj3-@i?xoqXGje_BQZ*j62WteP&
ziCURW)*5D{j8d9s_hE+OW&&kGA10KD1r{Y<$tD|axKTu#Z4f;INsx^M7hFcib<~kb
zNG5`k6UwpF9COjlWK$H@N#TVTUwm<0c1{4bL3iMdNx)J}k!OQ>=&83}R_{3y-z6}@
z_!VXb;@1{|c^)R=gL+1oAc*@Jh#-H1;nm=T`tgaFfpc-j7KRy~wqb{pnWYwp__3xU
zWhJgST57D#X_i+6eP!b%IO2%VY&cS)BSMt;_y~|dLPF$kNA3z-B20!<)052&d&87W
zI3YzA%I=iq7i@enMRh*^y(A`?-w~x$2OYd56%Uxo6gsGon$B`IW)P6}#SX-yU|Y6N2vaKkE|R+@dM&6#dl^wlS4
zCaWg2acvA8l$%4f)+!{CzWUmbNDe8&vLcDFoJdV74Lj^}GTl&P`Z6vuOB3Vvz<}cy!+_63L5~+&}}-k?vYdIUNm}fWU8Er3}83TzqCn
zDurRlUBD~e*#43`-;GUpbWsck^E5o;C9iE|Ig#>4b3C@$u6ZLAl?hQ~Hx@}MhNICQ
zCiK=lirwf{uo7Qv{uV2bX=F$f5y|@4=e|ZTVsVmdk`rcTzo2XY2UNtt=Dx%PD&*vI
z+F?TIMmIqJGhM)d37pEBT=%k;J+ON#90djKm9^fn#X`Z8MJ(=kM?l3wF?ReQg|f!4
zg8@u>wrkDYuoo)OI823ZJ7o2&XPVTUFf-lDSPtp5L)pLvHkANbMBYb4BC)J}OH`sM
zn>fEG7AuMym|_*LNQEqRE<65njs`9;K%#_nn*+DRZ8G54#fHBZ?p;LlmdPCCYDp|63(1srZ~5=ubO6;h+Eh7eHL*vS_A5UANA|
zg)p%HhdqZl1R@Zz5ZT$#KaRTKgfc}^<7x91(F_nXp&5%s0cbUJ^y5m?vM6ij$3-vX
zW;efiNQSj0o9bj3sJ=PL5~edW>uhHxI0Osrfu)m#i{~a`)kB0Jt`fBh8ACcUk;RqL
zX-?bKm!KHMDE{PFOlT-}Xz3G(VnCv~+@(dmg;9-elsz9+1Vko5F?40{ckpu8p2{W|
zwZxRAi*+eX8ym>A(6pM_ROVrC3K~!ORBk{uWQJf!)TEjQsb-1cQki-mr#^MHw5!qh
zsCrfLab>Gqm4rupgxlU6NtFPMqI2x0lA6@yCpB>^7UfD;(s`$%G)Ns@&(npy?iHl}
zYor)j1jajj8P7m_i4Zh>_g(Mqu`!h0%rj%U7kbe}RGgY&Pao;cQpk6{l_*7LTT`(a
zm5P#?2r7y&1S4;G{F
zW-IBihoi7RoPd}+btUl_O-uzSKv%^pmaa!HLO6=axNL)}AiuDdmmiZCyo%2M@pv1v
zXh6Y&rb1pRq7P1xd(j#=NRYnAs7v8g_((b-5@>sX1+Svzr?VVjFA#19dKnQZQh^)TwUI
zW9Ty(vVsVY`c)DTTxw>s%O|o?b}fw--b)`%7d-ND(u%=s2Uj!iO4mg&oGpc>De+TM
zbQ;yE#u4I1&DC0+I@JTWufQMvY5~*kMOiM3eGG{((_m~Yp8PeiaU|>s*Ge|UHg>Rt
z^;rYfN?Jz3E+9htTbM<_lZj%8k-v+l|13jmkYV%I&7Vo#_rsj8UWI=+2!c7f|uY)=gWRFDG&wh5Yml_hKo-f!NZeJ9Y
zBEX%!GM%ocROcl%EMV64K{oku97#BF2OpWqos^tp(`-t?eYRWurxFfyK<0Knoei{o
z;wGF
wNUmF2*7};AwnJKz=kKUGMvSp9*Ry|{lX3)
zBfvhgv6r3fkYEJbkB|1YzkSuNZjF4m4AiLF-9#`<^4>S@cZ0b0wZV1-nIl|y#2p^-
zD_K0_73%CbLp$<90V8-w%-oiw4uMp$iW%;2hHv-P5uwk-=rx7^A1Q@;UDH@g#~9E=
zWUn__e>7-`wHcWO3j!7s!Eka0eU+f*}}!Um$`PmLj!*cfNiLAd6~BbY;qMmw}1Wje^VoX12`9u#cr$TdI$Ju1z2y9Hb(&h
zDU(495!h+GH+&eFfg6|xCCG;txPce=1%If48i;}^=z^g3d!QC1K+<+jR$nrBT9c7p
zD`Y7-SSO{jN%P@OKIlV47&zqieQ-jA5hi#NMuaqx9En%|eofeT3k8L6c2+mQ0n@e=
zb#`Ykk%b7f1zX64UWf>Z0D3k;Dm6tlfH8(=n1;dAddcWg9WqA?cx2Pm7S%%{@Fj3=
zM=~I|CEMr)I-w=o2#(<>j^p@^fvADtD1vIof+|>Q!54#u6m&4c2`h9N8aEb}$UPJj
z8}!5#uF_y1;fcoP5sv_blaPuBiE_-=Y{gY2R|03+!G5AMb22v`xHx}Ju!~BwG~fn|
zr*etd#XAA0AOHeW)$~|q*fkFb8jDd=kMeYjhH(hfO>P%Zxva*)^>=yGNAxHk2uFcx?Jj|8@Hw6l*{6?hR=gy5Gr5C%Aa
zGYQUykT;-;%JF7fBrR}OP_u|_W>Sk|A|4lj15gnY^T&(!mw!D6jN(HU31d!bDhGAZQbJv=mM86u6j$8CexzaDU%+G7vE%6$h9z=3_nfL67BzDLHgI)sh#o
zOpn|q7;>UGoMQO|>8Bh|q7p2pmJW#%5&4|Z8J%L}6y#x%
zOn`GK76xTd2Hc4<2r(b?*phNYdv*kMP*<4V#YZ|;O?pyO(&K#2S8Ac)q-58JKM9Tj
zS`$w&1y2y7PJpGF$)%cU1z&0fPml#)I;LTYrC55URyv@jS)d_!g6z1I(YG0h6qOJN
z3kPO#D`H7LXjOqH3B4(bzA0>;xGGwp1z6f)#z|blRJEQ&4D=@hS&g)oYLR|#@T8RS%_mQsVuBPVdIiFD1y^9G
zAsezIOR^_RvQ}^f#EPXM8?3+jnLY`EN?9wOHf2CXr^>V$9CB-^l`5~*Yd$1qLa3o#
z`7|Hup*Rw*;woGR*?7gpKj%vSOX=#I*ygSd@UHMGuTDX)R+NkQs;LabuYUPdcmc3t
zIEK&^q~|#p2zy@Vg&2~UUI!u<>$w&ZTWW>qhZxI~zbdS|3bNsPvRHrxC~LSX%d#m8
zrZDT7KB=r~&~-HlH3H^HnW3{gi>IbRD!kT7ur*J>_M4+fgdkT5Nh=$Mnx#$qBs2lF
zQCl7N`7=&H1vmup{Xo2fcqvf;g|nFiu(v4L2cqKT#G
z%cbfIrYp<7%Ay6z62B;01^O$$WsJu2tFrui1-}}gJ(HgS9JvHswgP4+39P`SwHXb3
z3FH=pt0KX>rYd|xv=78XV)?)ZIiiUw9p>tdI|Ir0c@wf*EVZk`Dtx;xtjRE3ufYpl
zDHgUYbHiPc3CI)wDeGc-j{~B|SuiWR4^$#}ja2hkR^Tffp#g7&wUHsHU#xie8wkRzdw-1XnY0pYsM#=%wP(~8_TB3dV+{}gwOgS-V{}s
zg2$GYcMLoyveCz5rlXpOp@DbEe-j@oVU{P?$i*eXk*p<>3};jTK$eVc8i2`jrOET!
zwN~WGdlt4YGs<%EA8>SZl2U1N>RF2vF#T0uw_zOQ@#mW+_
zCEKx1(z0dB#fDqP&I|<5oW|2k&GEaqVEP0+5d{RgjcTB*-mIW>H-k)NrIfI}?tPJjwoC1L~>)0zKAajR69!!Y-^Wt%N`J
ziejL=sea`MWXqVQjBdbldvKV*0mo?#w<>3Mf+2m5j=QGk`=w8C*e1QJFU!nX5XNCD
zT!@{%!K%O2`~&qn(?6iuKY#?$`~%IbxQgx5TjGIu@OI!V&Lo1zZIko?sqjJsrA)@O~o1-;fV>ee_%6)9G{b1jUF
zSv&>uN25m?c!nZm5oCN0b)3&v)O%##hK)l9ORt=Uze
z*+|g;*=hXQ)Ev`moY=(LxZ7CT%XeSpY#}RURHYR$rSd(qE!DMsvrN51oJ1}TMsB@D
z1N3||^;{GByd@lHpILGfRN&7x0MKWR*4W0}+VT|6or?(61XMv4nc6`8n!~XyJZfRr
zb=@K^qNJlhaw7xSg=pj&m?ed+&1yQPh>h4>tjsCx#b+wa@9W+nOXY41<(944nT_9Y
zpx^dw-!YA{0e;e=Ip9Ejfn+Ckpip--*j#|uu2YR3fc`ygVEam#U*)v@Q
zaDeP#F6Q@5=K5>qxQ?uLz=3R@h^O}En2Te_Gv{CS6%(98okhqRlg=7LIJp^YfgTe!
z@Do(PsD*CmNDc)he&Vy(=*NA@%>AO1ZjqUXKp0gOq09*FY!-uIw}T|ndiPn@XbPrK
zlO1h=2D-Q6*y>YY;wH}CvYygkI>sxT98a*!%j~Nz-Ni0D1$n>+eE!1
z$zJT4z3gfX@{293Z#)Hdp!3px2Wep1ps?^zwq@SZ5UH;6={@H_X
zrnjD}18xW0oCcs4^iW0_QlJoAew9)v6`cIHD@D4fQyJ+mTE!S3200mf&lOm{r
zXV3-lZsIz?=o`QRmn{5{&b4Hpg-gH$GLDg~bAKq)uWR$F)009VSw
zy{3wN>lh!hjDOSNAF?`-#W@}2!O8|E&j)$n{#g+0T+HA04F_@{2QYvC*_bW!j_=vR*HYriUc@n1%pgNokbrQwsQ7KZqEcJ5cj2fs>
q1xgeu
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