From e90273e982a8245eb5f0df1628a5bf865fb040f0 Mon Sep 17 00:00:00 2001 From: Gustavo Martin Date: Wed, 1 Jan 2014 20:04:49 +0100 Subject: [PATCH] C# In Depth, Chapter9: WIP --- .gitattributes | 63 ++++++++ CSharpInDepth/Chapter9/Chapter9.sln | 22 +++ CSharpInDepth/Chapter9/Chapter9.v12.suo | Bin 0 -> 50688 bytes CSharpInDepth/Chapter9/Chapter9/App.config | 6 + CSharpInDepth/Chapter9/Chapter9/Chapter9.csproj | 88 +++++++++++ CSharpInDepth/Chapter9/Chapter9/Form1.Designer.cs | 60 ++++++++ CSharpInDepth/Chapter9/Chapter9/Form1.cs | 167 +++++++++++++++++++++ CSharpInDepth/Chapter9/Chapter9/Form1.resx | 120 +++++++++++++++ CSharpInDepth/Chapter9/Chapter9/Program.cs | 22 +++ .../Chapter9/Chapter9/Properties/AssemblyInfo.cs | 36 +++++ .../Chapter9/Properties/Resources.Designer.cs | 71 +++++++++ .../Chapter9/Chapter9/Properties/Resources.resx | 117 +++++++++++++++ .../Chapter9/Properties/Settings.Designer.cs | 30 ++++ .../Chapter9/Chapter9/Properties/Settings.settings | 7 + .../Chapter9/Chapter9/bin/Debug/Chapter9.exe | Bin 0 -> 14848 bytes .../Chapter9/bin/Debug/Chapter9.exe.config | 6 + .../Chapter9/Chapter9/bin/Debug/Chapter9.pdb | Bin 0 -> 30208 bytes .../Chapter9/bin/Debug/Chapter9.vshost.exe | Bin 0 -> 24224 bytes .../Chapter9/bin/Debug/Chapter9.vshost.exe.config | 6 + .../bin/Debug/Chapter9.vshost.exe.manifest | 11 ++ .../Chapter9/obj/Debug/Chapter9.Form1.resources | Bin 0 -> 180 bytes .../Debug/Chapter9.Properties.Resources.resources | Bin 0 -> 180 bytes .../obj/Debug/Chapter9.csproj.FileListAbsolute.txt | 9 ++ .../Debug/Chapter9.csproj.GenerateResource.Cache | Bin 0 -> 977 bytes .../Chapter9.csprojResolveAssemblyReference.cache | Bin 0 -> 2211 bytes .../Chapter9/Chapter9/obj/Debug/Chapter9.exe | Bin 0 -> 14848 bytes .../Chapter9/Chapter9/obj/Debug/Chapter9.pdb | Bin 0 -> 30208 bytes .../DesignTimeResolveAssemblyReferences.cache | Bin 0 -> 865 bytes .../DesignTimeResolveAssemblyReferencesInput.cache | Bin 0 -> 7103 bytes ...tedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs | 0 ...tedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs | 0 ...tedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs | 0 32 files changed, 841 insertions(+) create mode 100644 .gitattributes create mode 100644 CSharpInDepth/Chapter9/Chapter9.sln create mode 100644 CSharpInDepth/Chapter9/Chapter9.v12.suo create mode 100644 CSharpInDepth/Chapter9/Chapter9/App.config create mode 100644 CSharpInDepth/Chapter9/Chapter9/Chapter9.csproj create mode 100644 CSharpInDepth/Chapter9/Chapter9/Form1.Designer.cs create mode 100644 CSharpInDepth/Chapter9/Chapter9/Form1.cs create mode 100644 CSharpInDepth/Chapter9/Chapter9/Form1.resx create mode 100644 CSharpInDepth/Chapter9/Chapter9/Program.cs create mode 100644 CSharpInDepth/Chapter9/Chapter9/Properties/AssemblyInfo.cs create mode 100644 CSharpInDepth/Chapter9/Chapter9/Properties/Resources.Designer.cs create mode 100644 CSharpInDepth/Chapter9/Chapter9/Properties/Resources.resx create mode 100644 CSharpInDepth/Chapter9/Chapter9/Properties/Settings.Designer.cs create mode 100644 CSharpInDepth/Chapter9/Chapter9/Properties/Settings.settings create mode 100644 CSharpInDepth/Chapter9/Chapter9/bin/Debug/Chapter9.exe create mode 100644 CSharpInDepth/Chapter9/Chapter9/bin/Debug/Chapter9.exe.config create mode 100644 CSharpInDepth/Chapter9/Chapter9/bin/Debug/Chapter9.pdb create mode 100644 CSharpInDepth/Chapter9/Chapter9/bin/Debug/Chapter9.vshost.exe create mode 100644 CSharpInDepth/Chapter9/Chapter9/bin/Debug/Chapter9.vshost.exe.config create mode 100644 CSharpInDepth/Chapter9/Chapter9/bin/Debug/Chapter9.vshost.exe.manifest create mode 100644 CSharpInDepth/Chapter9/Chapter9/obj/Debug/Chapter9.Form1.resources create mode 100644 CSharpInDepth/Chapter9/Chapter9/obj/Debug/Chapter9.Properties.Resources.resources create mode 100644 CSharpInDepth/Chapter9/Chapter9/obj/Debug/Chapter9.csproj.FileListAbsolute.txt create mode 100644 CSharpInDepth/Chapter9/Chapter9/obj/Debug/Chapter9.csproj.GenerateResource.Cache create mode 100644 CSharpInDepth/Chapter9/Chapter9/obj/Debug/Chapter9.csprojResolveAssemblyReference.cache create mode 100644 CSharpInDepth/Chapter9/Chapter9/obj/Debug/Chapter9.exe create mode 100644 CSharpInDepth/Chapter9/Chapter9/obj/Debug/Chapter9.pdb create mode 100644 CSharpInDepth/Chapter9/Chapter9/obj/Debug/DesignTimeResolveAssemblyReferences.cache create mode 100644 CSharpInDepth/Chapter9/Chapter9/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache create mode 100644 CSharpInDepth/Chapter9/Chapter9/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs create mode 100644 CSharpInDepth/Chapter9/Chapter9/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs create mode 100644 CSharpInDepth/Chapter9/Chapter9/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..1ff0c42 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,63 @@ +############################################################################### +# Set default behavior to automatically normalize line endings. +############################################################################### +* text=auto + +############################################################################### +# Set default behavior for command prompt diff. +# +# This is need for earlier builds of msysgit that does not have it on by +# default for csharp files. +# Note: This is only used by command line +############################################################################### +#*.cs diff=csharp + +############################################################################### +# Set the merge driver for project and solution files +# +# Merging from the command prompt will add diff markers to the files if there +# are conflicts (Merging from VS is not affected by the settings below, in VS +# the diff markers are never inserted). Diff markers may cause the following +# file extensions to fail to load in VS. An alternative would be to treat +# these files as binary and thus will always conflict and require user +# intervention with every merge. To do so, just uncomment the entries below +############################################################################### +#*.sln merge=binary +#*.csproj merge=binary +#*.vbproj merge=binary +#*.vcxproj merge=binary +#*.vcproj merge=binary +#*.dbproj merge=binary +#*.fsproj merge=binary +#*.lsproj merge=binary +#*.wixproj merge=binary +#*.modelproj merge=binary +#*.sqlproj merge=binary +#*.wwaproj merge=binary + +############################################################################### +# behavior for image files +# +# image files are treated as binary by default. +############################################################################### +#*.jpg binary +#*.png binary +#*.gif binary + +############################################################################### +# diff behavior for common document formats +# +# Convert binary document formats to text before diffing them. This feature +# is only available from the command line. Turn it on by uncommenting the +# entries below. +############################################################################### +#*.doc diff=astextplain +#*.DOC diff=astextplain +#*.docx diff=astextplain +#*.DOCX diff=astextplain +#*.dot diff=astextplain +#*.DOT diff=astextplain +#*.pdf diff=astextplain +#*.PDF diff=astextplain +#*.rtf diff=astextplain +#*.RTF diff=astextplain diff --git a/CSharpInDepth/Chapter9/Chapter9.sln b/CSharpInDepth/Chapter9/Chapter9.sln new file mode 100644 index 0000000..0df102a --- /dev/null +++ b/CSharpInDepth/Chapter9/Chapter9.sln @@ -0,0 +1,22 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2013 +VisualStudioVersion = 12.0.21005.1 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Chapter9", "Chapter9\Chapter9.csproj", "{A4879766-1942-4D2F-81E3-1CC27450B29D}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A4879766-1942-4D2F-81E3-1CC27450B29D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A4879766-1942-4D2F-81E3-1CC27450B29D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A4879766-1942-4D2F-81E3-1CC27450B29D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A4879766-1942-4D2F-81E3-1CC27450B29D}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/CSharpInDepth/Chapter9/Chapter9.v12.suo b/CSharpInDepth/Chapter9/Chapter9.v12.suo new file mode 100644 index 0000000000000000000000000000000000000000..5b7fee9c60ba2d03738e19f3d7c41d5d96b838af GIT binary patch literal 50688 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 + + + + + \ No newline at end of file diff --git a/CSharpInDepth/Chapter9/Chapter9/Chapter9.csproj b/CSharpInDepth/Chapter9/Chapter9/Chapter9.csproj new file mode 100644 index 0000000..cee2903 --- /dev/null +++ b/CSharpInDepth/Chapter9/Chapter9/Chapter9.csproj @@ -0,0 +1,88 @@ + + + + + Debug + AnyCPU + {A4879766-1942-4D2F-81E3-1CC27450B29D} + WinExe + Properties + Chapter9 + Chapter9 + v4.5 + 512 + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + Form + + + Form1.cs + + + + + Form1.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + + + \ No newline at end of file diff --git a/CSharpInDepth/Chapter9/Chapter9/Form1.Designer.cs b/CSharpInDepth/Chapter9/Chapter9/Form1.Designer.cs new file mode 100644 index 0000000..969ef18 --- /dev/null +++ b/CSharpInDepth/Chapter9/Chapter9/Form1.Designer.cs @@ -0,0 +1,60 @@ +namespace Chapter9 +{ + partial class Form1 + { + /// + /// 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.button = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // button + // + this.button.Location = new System.Drawing.Point(92, 95); + this.button.Name = "button"; + this.button.Size = new System.Drawing.Size(75, 23); + this.button.TabIndex = 0; + this.button.Text = "button1"; + this.button.UseVisualStyleBackColor = true; + // + // Form1 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(284, 261); + this.Controls.Add(this.button); + this.Name = "Form1"; + this.Text = "Form1"; + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Button button; + } +} + diff --git a/CSharpInDepth/Chapter9/Chapter9/Form1.cs b/CSharpInDepth/Chapter9/Chapter9/Form1.cs new file mode 100644 index 0000000..366618e --- /dev/null +++ b/CSharpInDepth/Chapter9/Chapter9/Form1.cs @@ -0,0 +1,167 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Linq.Expressions; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Chapter9 +{ + public partial class Form1 : Form + { + public Form1() + { + + InitializeComponent(); + + /** + * + * Listing 9.1 Using an anonymous method to create a delegate instance. + */ + Console.WriteLine("Listing 9.1 Using an anonymous method to create a delegate instance."); + Func returnLength1; + returnLength1 = delegate(string text) { return text.Length; }; + Console.WriteLine(returnLength1("Hello")); + + /** + * + * Listing 9.2 A long-winded first lambada expression, similar to an anonymous method. + */ + Console.WriteLine("Listing 9.2 A long-winded first lambada expression, similar to an anonymous method."); + Func returnLength2; + returnLength2 = (string text) => { return text.Length; }; + Console.WriteLine(returnLength2("Hello")); + + /** + * + * Listing 9.3 A concise lambda expression. + */ + Console.WriteLine("Listing 9.3 A concise lambda expression."); + Func returnLength3; + returnLength3 = text => text.Length; + Console.WriteLine(returnLength3("Hello")); + + /** + * + * Listing 9.4 Manipulating a list of films using lambda expressions. + */ + Console.WriteLine("Listing 9.4 Manipulating a list of films using lambda expressions."); + var films = new List + { + new Film { Name = "Jaws", Year = 1975 }, + new Film { Name = "Singing in the Rain", Year = 1952 }, + new Film { Name = "Some like it Hot", Year = 1959 }, + new Film { Name = "The Wizard of Oz", Year = 1939 }, + new Film { Name = "It's a Wonderful Life", Year = 1946 }, + new Film { Name = "American Beauty", Year = 1999 }, + new Film { Name = "High Fidelity", Year = 2000 }, + new Film { Name = "The Usual Suspects", Year = 1995 } + }; + + Action print = film => Console.WriteLine("Name={0}, Year={1}", + film.Name, film.Year); + films.ForEach(print); + films.FindAll(film => film.Year < 1960) + .ForEach(print); + films.Sort((f1, f2) => f1.Name.CompareTo(f2.Name)); + films.ForEach(print); + + /** + * + * Listing 9.5 Logging events using lambda expressions. + */ + Console.WriteLine("Listing 9.5 Logging events using lambda expressions."); + + this.button.Text = "Click me"; + this.button.Click += (src, e) => Log("Click", src, e); + this.button.KeyPress += (src, e) => Log("KeyPress", src, e); + this.button.MouseClick += (src, e) => Log("MouseClick", src, e); + + /** + * + * Listing 9.6 A simple expression tree, adding 2 and 3. + */ + Console.WriteLine("Listing 9.6 A simple expression tree, adding 2 and 3."); + Expression firstArg1 = Expression.Constant(2); + Expression secondArg1 = Expression.Constant(3); + Expression add1 = Expression.Add(firstArg1, secondArg1); + Console.WriteLine(add1); + + /** + * + * Listing 9.7 Compiling an executing an expression tree. + */ + Console.WriteLine("Listing 9.7 Compiling an executing an expression tree."); + Expression firstArg2 = Expression.Constant(2); + Expression secondArg2 = Expression.Constant(3); + Expression add2 = Expression.Add(firstArg2, secondArg2); + + Func compiled1 = Expression.Lambda>(add2).Compile(); + Console.WriteLine(compiled1()); + + /** + * + * Listing 9.8 Using lambda expressions to create expression trees. + */ + Console.WriteLine("Listing 9.8 Using lambda expressions to create expression trees."); + Expression> return5 = () => 5; + Func compiled2 = return5.Compile(); + Console.WriteLine(compiled2()); + + /** + * + * Listing 9.9 Demonstration of a more complicated expression tree. + */ + Console.WriteLine("Listing 9.9 Demonstration of a more complicated expression tree."); + Expression> expression = (x, y) => x.StartsWith(y); + var compiled3 = expression.Compile(); + + Console.WriteLine(compiled3("First", "Second")); + Console.WriteLine(compiled3("First", "Fir")); + + /** + * + * Listing 9.10 Building a method call expression tree in code. + */ + Console.WriteLine("Listing 9.10 Building a method call expression tree in code."); + MethodInfo method = typeof(string).GetMethod("StartsWith", new[] { typeof(string) }); + var target = Expression.Parameter(typeof(string), "x"); + var methodArg = Expression.Parameter(typeof(string), "y"); + Expression[] methodArgs = new[] { methodArg }; + + Expression call = Expression.Call(target, method, methodArgs); + + var lambdaParameters = new[] { target, methodArg }; + var lambda = Expression.Lambda>(call, lambdaParameters); + + var compiled4 = lambda.Compile(); + + Console.WriteLine(compiled4("First", "Second")); + Console.WriteLine(compiled4("First", "Fir")); + } + + static void Log(string title, object sender, EventArgs e) + { + Console.WriteLine("Event: {0}", title); + Console.WriteLine(" Sender: {0}", sender); + Console.WriteLine(" Arguments: {0}", e.GetType()); + foreach (PropertyDescriptor prop in TypeDescriptor.GetProperties(e)) + { + string name = prop.DisplayName; + object value = prop.GetValue(e); + Console.WriteLine(" {0}={1}", name, value); + } + } + } + + class Film + { + public string Name { get; set; } + public int Year { get; set; } + } +} diff --git a/CSharpInDepth/Chapter9/Chapter9/Form1.resx b/CSharpInDepth/Chapter9/Chapter9/Form1.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/CSharpInDepth/Chapter9/Chapter9/Form1.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/CSharpInDepth/Chapter9/Chapter9/Program.cs b/CSharpInDepth/Chapter9/Chapter9/Program.cs new file mode 100644 index 0000000..cec21d6 --- /dev/null +++ b/CSharpInDepth/Chapter9/Chapter9/Program.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Chapter9 +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new Form1()); + } + } +} diff --git a/CSharpInDepth/Chapter9/Chapter9/Properties/AssemblyInfo.cs b/CSharpInDepth/Chapter9/Chapter9/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..940d5fd --- /dev/null +++ b/CSharpInDepth/Chapter9/Chapter9/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Chapter9")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Chapter9")] +[assembly: AssemblyCopyright("Copyright © 2014")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("350236ff-ee30-4100-b014-23aea3871408")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/CSharpInDepth/Chapter9/Chapter9/Properties/Resources.Designer.cs b/CSharpInDepth/Chapter9/Chapter9/Properties/Resources.Designer.cs new file mode 100644 index 0000000..eeebdcc --- /dev/null +++ b/CSharpInDepth/Chapter9/Chapter9/Properties/Resources.Designer.cs @@ -0,0 +1,71 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.34003 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Chapter9.Properties +{ + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if ((resourceMan == null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Chapter9.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/CSharpInDepth/Chapter9/Chapter9/Properties/Resources.resx b/CSharpInDepth/Chapter9/Chapter9/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/CSharpInDepth/Chapter9/Chapter9/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/CSharpInDepth/Chapter9/Chapter9/Properties/Settings.Designer.cs b/CSharpInDepth/Chapter9/Chapter9/Properties/Settings.Designer.cs new file mode 100644 index 0000000..1a83eda --- /dev/null +++ b/CSharpInDepth/Chapter9/Chapter9/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.34003 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Chapter9.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/CSharpInDepth/Chapter9/Chapter9/Properties/Settings.settings b/CSharpInDepth/Chapter9/Chapter9/Properties/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/CSharpInDepth/Chapter9/Chapter9/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/CSharpInDepth/Chapter9/Chapter9/bin/Debug/Chapter9.exe b/CSharpInDepth/Chapter9/Chapter9/bin/Debug/Chapter9.exe new file mode 100644 index 0000000000000000000000000000000000000000..05bb4c59be8a261f3fda8c32f28e3166554efd8a GIT binary patch literal 14848 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 literal 0 HcmV?d00001 diff --git a/CSharpInDepth/Chapter9/Chapter9/bin/Debug/Chapter9.exe.config b/CSharpInDepth/Chapter9/Chapter9/bin/Debug/Chapter9.exe.config new file mode 100644 index 0000000..8e15646 --- /dev/null +++ b/CSharpInDepth/Chapter9/Chapter9/bin/Debug/Chapter9.exe.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/CSharpInDepth/Chapter9/Chapter9/bin/Debug/Chapter9.pdb b/CSharpInDepth/Chapter9/Chapter9/bin/Debug/Chapter9.pdb new file mode 100644 index 0000000000000000000000000000000000000000..9f0e2f3971fff072bfbc6094c33945c194dc4bd1 GIT binary patch literal 30208 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 literal 0 HcmV?d00001 diff --git a/CSharpInDepth/Chapter9/Chapter9/bin/Debug/Chapter9.vshost.exe b/CSharpInDepth/Chapter9/Chapter9/bin/Debug/Chapter9.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..c0dfecc9d7dea88e869ba6880671b1e73d600030 GIT binary patch literal 24224 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 OJz7^ literal 0 HcmV?d00001 diff --git a/CSharpInDepth/Chapter9/Chapter9/bin/Debug/Chapter9.vshost.exe.config b/CSharpInDepth/Chapter9/Chapter9/bin/Debug/Chapter9.vshost.exe.config new file mode 100644 index 0000000..8e15646 --- /dev/null +++ b/CSharpInDepth/Chapter9/Chapter9/bin/Debug/Chapter9.vshost.exe.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/CSharpInDepth/Chapter9/Chapter9/bin/Debug/Chapter9.vshost.exe.manifest b/CSharpInDepth/Chapter9/Chapter9/bin/Debug/Chapter9.vshost.exe.manifest new file mode 100644 index 0000000..061c9ca --- /dev/null +++ b/CSharpInDepth/Chapter9/Chapter9/bin/Debug/Chapter9.vshost.exe.manifest @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/CSharpInDepth/Chapter9/Chapter9/obj/Debug/Chapter9.Form1.resources b/CSharpInDepth/Chapter9/Chapter9/obj/Debug/Chapter9.Form1.resources new file mode 100644 index 0000000000000000000000000000000000000000..6c05a9776bd7cbae976fdcec7e3a254e93018279 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYR*8GxXUf^%t3Noi54ZC+|=Nl{{sjzU0bQch;FcWPxwes*e}ZIZcpqG__J onW3ezNveT`r81^vrFkWpxv4PQgHubGfR2KJ07n-P+5+SQ04Y>DD*ylh literal 0 HcmV?d00001 diff --git a/CSharpInDepth/Chapter9/Chapter9/obj/Debug/Chapter9.Properties.Resources.resources b/CSharpInDepth/Chapter9/Chapter9/obj/Debug/Chapter9.Properties.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..6c05a9776bd7cbae976fdcec7e3a254e93018279 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYR*8GxXUf^%t3Noi54ZC+|=Nl{{sjzU0bQch;FcWPxwes*e}ZIZcpqG__J onW3ezNveT`r81^vrFkWpxv4PQgHubGfR2KJ07n-P+5+SQ04Y>DD*ylh literal 0 HcmV?d00001 diff --git a/CSharpInDepth/Chapter9/Chapter9/obj/Debug/Chapter9.csproj.FileListAbsolute.txt b/CSharpInDepth/Chapter9/Chapter9/obj/Debug/Chapter9.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..ddbadea --- /dev/null +++ b/CSharpInDepth/Chapter9/Chapter9/obj/Debug/Chapter9.csproj.FileListAbsolute.txt @@ -0,0 +1,9 @@ +C:\Users\Gustavo\Source\Repos\CSharpForFun\CSharpInDepth\Chapter9\Chapter9\bin\Debug\Chapter9.exe.config +C:\Users\Gustavo\Source\Repos\CSharpForFun\CSharpInDepth\Chapter9\Chapter9\bin\Debug\Chapter9.exe +C:\Users\Gustavo\Source\Repos\CSharpForFun\CSharpInDepth\Chapter9\Chapter9\bin\Debug\Chapter9.pdb +C:\Users\Gustavo\Source\Repos\CSharpForFun\CSharpInDepth\Chapter9\Chapter9\obj\Debug\Chapter9.csprojResolveAssemblyReference.cache +C:\Users\Gustavo\Source\Repos\CSharpForFun\CSharpInDepth\Chapter9\Chapter9\obj\Debug\Chapter9.Form1.resources +C:\Users\Gustavo\Source\Repos\CSharpForFun\CSharpInDepth\Chapter9\Chapter9\obj\Debug\Chapter9.Properties.Resources.resources +C:\Users\Gustavo\Source\Repos\CSharpForFun\CSharpInDepth\Chapter9\Chapter9\obj\Debug\Chapter9.csproj.GenerateResource.Cache +C:\Users\Gustavo\Source\Repos\CSharpForFun\CSharpInDepth\Chapter9\Chapter9\obj\Debug\Chapter9.exe +C:\Users\Gustavo\Source\Repos\CSharpForFun\CSharpInDepth\Chapter9\Chapter9\obj\Debug\Chapter9.pdb diff --git a/CSharpInDepth/Chapter9/Chapter9/obj/Debug/Chapter9.csproj.GenerateResource.Cache b/CSharpInDepth/Chapter9/Chapter9/obj/Debug/Chapter9.csproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..0fc129f0bc94bfc1d13884d9bcf1328cb5acc407 GIT binary patch literal 977 zcma)4QESvd5Ke58UUGMuL!^j49O8q}BU~&+K~KReSBouFTZ#{YY_bzvZZCW6Zc5Kz z;Lr2LH-CaZz&D*)Y$5j1wM2{1}R3U6?g#P;}QK@X2s#=;_-Dk<@;_%luRmYFY3 zmtzU>j!!I(F2W$7qyJu9M?kW#7@slHzy7aJovB(ZnFgH_#Z+-P)aq1l&>cEB5?>*} zPMPS0$p#Eku6beD?X+?2o!5HYqG0b@{a^2&za}|J;$+YR;|@BX1d$#B;BpR#F^m&* zDM9IG)J2!flwRZ+j=)*e!~J~}umo+f_n&ZFRHI8UE}c?!_XGPF#JACrN9v7+qRg+NEF>@1ib>Mgy6&RuoN$(S-&g5VQpSQA4J?-@>G`J9TCX)aUVi zd=cM4=i8P`M&iHSrl&L8vva=7%vop5ahyNq!e6{9IRpD!ERaHpNRtnJ#zV48RacRt z`U_H9^!7k1CXyAL;b+nF`&{=WtR&FalJZ4wr{Cc$_y~ht(S>BCQ)@&^(d(#Q50`4R zK?|rhcezMwpftoSO*J5^95D{*EI&K^i}-?b2($@7k#(vLHSKV~u*-P^;|TwyP8fo_ zDQMWFffjONluyYQagR!nRb12;A?!$T#6plIywPGmVBBP+ihGpzK{-x7?-UA?rOUK7 zPS={hB<78O*8lx!`P~#odreandW-r@~!VPR;8Yj%E<9Biul^iEsnlmxhZ^&IP){bpX}GV>$=5RGj)wq)<~n)sK0T?Fg*Cp;q!efag`~f8 zXJ%(*DZ%hp%g0E2=ALuU>z?~M_wMdKd^-h*D2UH%uMs_nH$Ph>d}B~Xb$#0x>*=%6 zC)*zsyPj+xK9;q$3CkR}^t_hV3k9>NjT)L&Drnh)Hn2CP<;{$dtgDMHaaHddB-$kc z^wG>$_j}gPlOk$GEm0RJ5r=wq58fI+NAY3rG`tkYZWOl?En#JBk7~bPYaL&lXfCEhA@wk$t5yKCEj4K2^^aqODb^EIz<-#lyZS zR6|=|N{SgLip5q?X!#q_(bL5IRqT@%2os7~ z4;K^@T^RbarC>_Hr5G&-e?yl-P|nSS95ZMi4->r_l-8X3rixxx6OhWxd7ej`tYvH> zkbsI1E#GAIOh*T+QP``Y&trT9*xtO8@Ght%8rd6C5|}(8vfd1V1Z>9WCU6B;HOzZ8 z1c{K{3|g5LUI0fLTGSRBVGT9RSLa)k3Y?q^jMVws=b_S69mHJ7PJ65i)CE@A zXI-G(<+CoB&bm-tXnovgU8sG`XI(g*wN-7kzUH&GYIpjqt z(^(g*i>;PGrCE!$r+n7M(^=cpHfw{=+NPcJS=*+wYN}=p`>dMwgwLvZtaUe`L!I8i znijILn#9UXLhtaaAsAJI<|2-4^d`tVtWjoN%&bfTE5FP(5PW8+bC@w0L$=1uOae2% z%yy~LW4CUAqs}l@Zp6?JT0daVG38_A5N?7^M;|6;$nIo)OoBdsnM9>9&=;o?srYFjujzTD8{1TI@~8a}|XPrR{TQn@Fr? z2JA}J;tg}uIgW}twXRx4s>bu_975&@TmQtwZZ_CnMg4Y#+M%|eTf0}EN-5nWKuH67)^KEFjXjrN)ZSrgGQI{sL!NeLa@o81fQ>&qA0LxZZSm#7W0RSom1+oj5ONv1}1p4#ZNu1RfjTGy;L&)zzhd_n85Yb@*v(0i~a zU>#M-x*ZKu5*s-n)<;nexaCJs4w{=dTC$RYi7SAZn*r)pERUMKC=^j8ViYp31X3Fc znpfdH$2t$$aKzcAC~9s2u_34iSAFfftzx_icBE~@9t3V~^NH3gaNgYR6WVsRHQPIwYse=ynQ!tDD-@o-bTpegWi3{d zN45a$>$7)(kU;VT+sz3i8+dE2@La0_km?hAB{i`RFULRgYDux0pg!SvB+Kq9)s)!J z^)jcx+JUSEd-9D~ft=01LkXN@q*4zJ7*E6zwv64tZ(ei64aex&zB@Xh-27f4V zNSavgu)qiw9PSg00!$N(pPP_VaDOztD&|C1b&%BoXV1YEMXnO&VaVG^31YEOnOPly z+7%S8_!X9V=2rY7rOZgB9;-L(U|=|YAGDDxgc5Io&LUh;%3Q;Zcq=GyPd=XoJo~km zzl=7}9r)x@Q+CnFC-)n+S+dfGT`BE1^o(Jx)be)Pv~t8eJPUcFr_bDipJM z!?T_;iWrQQXJ6j{|Fh5kU;W;idec_H*()9lI-2C*^>p=gV}an2nFDOaw%K_T(Vyb| z3I=Rvs%T{k<2G}YkwYHEKqVq@z(5KY7{lE}rEBy!X7L2IQtvPd)neiZe;!xu~ z(I|A$FPHWZ5>B>`S;^y4$|IAbdH7&l5VkaVghKks^F)?elw}y_?r^#!=C&e4CLP8! zcn6)Ndb*2lMfuCJ{IB$N*qA4{_Pyd1*1yNZrvWFFgG!7(q?`u)YYCr{@W&E{15DQ> zyh6f*623cN24ZxNgbzr{;}ZTN@OY1u z0bq=h5tizeaI1tjMz}?{$nvLAj?)(;=QE(x(~FU>1O5+Sj5bCujn>mhlqnWqjP8q` zM3FNLT3S= z4gE7@w~2LtN5lqD?h)GopAtI(8TV3om zaSgCPm)QFwol2e>=~0O}@oc0|NbHW5_to~Jj>pA%Om~HP0RuDuh~AO#7R)$7)o=(4 zgdhh#fwDqpB_+oEvytzM0m;7${EZ6xyjYnM-$p-k`8h?UA4L95IU`!4FDYLTgVCQUkBU_E zm&()P=4dB9F7AxJ3d)D0fxx%KD~Ll>&ZBPlAEQ2TCK{vX;B#A`PkbY~6p%;nk6g<0 z(UqXQ9POf?h;VEH{Q~r!fKWEYHUb`vZ3#rliZRcfvF!m>IUL@N@?GFmrT+N}TWMFm z9_t7EUTm?_j!V5i3S0*ITLay)c1j$sy)Up4{GSN)f$~V;YUTdg)xr5vLy~T!9|x1P zkZuRG>4$(TWcfIK6Xjak0N6lp2keyeo9Vw%?va!$==~`7OL|JeH`AwsI(D;nQI@{1 z{6pZBET5KT-sRp!cT0FLJ*H#=_tF!}yRZr~{SgTtmGChaKBk-toR{V2BqYI{LPAZ# zb_usg*eBsp33Um}5}uOqE(!0J@DT~mOGpaq)FeEr+zWrs)4x+v2?vG)p9y>^usj&R z{H(z|4gnHb0!IwGUf?W({dokiR>=UaRxHfddhiLFE1?R01*;gtMy!wuR`@7tn*kN9 z`L!73aiL-C?htp0GXgoT5-ek=L!1BLt^%vF{|Mv_{7k16XQ7>(h4xp-f~Lzh1s;w{ zMgX?_Ipj{5Z?gOp%Gb~bu>Sqjacc8!GgHbLS5p5meWGYs8{qYR?lT`F#5ep+FB|WVS3bgjT^<0J$l|C+bb~T8bh}v zMHV(Q!?bZwWIGncJ69{mRc{}o2 z_Sp%Md)gQ(jF}Z?mqzUBg$kMG)pMJ?viHsyV>%8nLj}927t)5*G2qb1dl$3C97m*p zqYxRCkAEg@1W-fW~hJ}XHKLHYch*7CSeR7%-Y$}>h^9gWi!44PqQ1+nH89- z#*9kW>_Ao@FPL^Qo5ln%MoZ)4`ZQAx4c){u2UFQS0=v%g1c7p^+FKChAlz@{^b@jV z`!2cN&vK|5&E~Sjs*rD%Q~1i!k&%rgztq`QDx{CDq5jm8%~x(58R^&4$Bay0!7NPW z&62&_C>}F214hmm*Na9s_*{3k8<^T4RRzgctzV?N9`a>IFH&Z0l}wt(c!}(jBljp) z&Wmcqx+)DBtgl9fmpbF3fcWHM%s-LV9ctxyQ=QD)2fqmpCA{wT}ENNcnsS?v4>+= zuuZIQhpcST*oCb_4mRB~hD~rx;tt1~8~tX^U9Rk;9EjO8?aJCk#J(?+;q7h^!x;N# zA=8)3QOdN6ti5QNIk|fb^S7CLCNt8HUGBInd0~`@Y`0VA&c=Szs#u3>*Chu}OmNh( z4BF(EWgD=57iS^S)@(tyrmAZ8>AWCgEvlmVMKorYo*&KVB&R4ww=?xNIuf26zKu7TviO&KLt`9vP^!(V<`6t)(AL z@ohTWq+#tb3y2v4QeEk7(6Sj7WH6J(K-p>`6P~{1UQmJQfm|q=mf3B}O{HZIrKSq$ zW0qM!XJq`uTjuHb4TF10?N|7Nw{mf9SMd=o-9tL%k-PQcyx4_%%9W(yWMF`5Nm@5( zgxilC&V6Y*jyv_8sGXvHs7Jrzj~aL5&a;FP7D%73e0mo|Y$^g4XdG%c;ySe(?*pKE zG#zysj1{1w0JV8nl_s4k(lOu}a1`;@-~b!dff-UtL!AMW$WAL%*34E}XBsuQ!mZsQ zxpL4!<&Vwg)*7hm!-rYe*;Tk9VMVN-&5r>?q7Svq!x0+=%;2Me;{;7qqLGyvIEviJ zJU+~C0e6~kaScwAxOz4}d!UE?OiL?iXy>T=KE1w22t)Z#W>dKq;=AEu0m>%OjqI-9 zXWT$m@ARYwvtz(H962=3MwvU_>rF2-ukVJ<{Skc=Y+MgHT9$HUJq`TkP#u%a+7CXa zP7y{oi=`*+LkPIPru!Z(; zyEWqYjDaHB`lK}rcpAFcr>&st;45O3(!w368HYuUwxQ&VLiPuBOFd6`oR=WOno}}P z6VQvo@m_*- zuBvYx?+p0it;+0G4u8MNCk>jom298q3Vdu#K@ZPTo(()_St~UTRz~|K@H<-)&FA^U zbHJIcRW)rqW-ZK?lAN#3EUBt*=GBY;98J8*$qlV;RE{oQk_$w0t1J`)tixd(Y0OwxY&=8X_HOtOr-wms|3$p>G!bL%bZZvNTxPyhHC zihTZtBM0ZNJ%2i&kqA>j)VIdfKq%fA)Pzt_n2(BjM(RXlF=kf3^eBKRs& zfNv2#?YJt8FJjPMLqY(LFb>d;+7_;8VXUPFYSgy`Nkr=ssm~@?p z&jF^yB~}84Yt2Y}j)PAD50N4qUr(Y6#qz0OC|-W2i=1ZUwm?`!Lb6q@C@OG2QV+AD z-nCkzL9!*Ji3ZVti%v8y+!!x^gpI?+268=#0%4ydft{JF0S8|LHO5O0nSFBjra)lv z_(>=haLIYy79t?`x7LypFMldtz7PLwvQ@oADA4vdVljcVC|*7jiLv@Gh)AuZJLRB; z>v1^5^a!hZNG(5#3trXX-_r;{{X9M;1N}Z=& zVi90YK~ox(25J!Oof6Yv;mLZ4K2$yvzSQZh=}-pD=`(4ETUPmZ9QG{1_vr*_(X$Lg zXg&VfQT%f(JjrQ{AaWq4a^GGz9`Jf z_#F)~Y0NvzqEQe z)98NE@V5qjbQAaDfb?OnE634dAG|g&#s}m#_GPV%nUla~kgD=w)NjR1S*U|;j@5LT z3nO-6yf#RgKE#yoC-}A`hZbuXgVQ5@q1?+~dU*3yC-OOM()}@I2X>VX%_yYJ47SVO zjswHnR&D6e_&dprp2PRMy&Y4A-Eq~Gb+OI5`<0*u1qHjeqhu8}+4%M-uiLBg-X^^& zZRR)Wc0M`T-J#|6LUzosi{54`twEKhRg?{7a7Br4tfqOyn{ML9vYMO7PRj?6b0y$QZ^A`y#dWcv>|) zz8-7==@Nfwy33d}a$1gIZ-;I>-)mSMS}EI?#&?kj)l literal 0 HcmV?d00001 diff --git a/CSharpInDepth/Chapter9/Chapter9/obj/Debug/Chapter9.pdb b/CSharpInDepth/Chapter9/Chapter9/obj/Debug/Chapter9.pdb new file mode 100644 index 0000000000000000000000000000000000000000..9f0e2f3971fff072bfbc6094c33945c194dc4bd1 GIT binary patch literal 30208 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 literal 0 HcmV?d00001 diff --git a/CSharpInDepth/Chapter9/Chapter9/obj/Debug/DesignTimeResolveAssemblyReferences.cache b/CSharpInDepth/Chapter9/Chapter9/obj/Debug/DesignTimeResolveAssemblyReferences.cache new file mode 100644 index 0000000000000000000000000000000000000000..752f0bd38d9abb23f5781105a198424d91473b1b GIT binary patch literal 865 zcmcIi(QeZ)6iw46Ytjr=+A9x1+5>2nl~T$EQiVpK+60>ht@acNx$(`g>co@nbSvM( z|L`OH1Ne5`7*O$sBc0qEpWJ)yv7LtFI6v&dH?GLF@acr-N@`gc^19}Nktx-4O&0y9 zB@vt&>Vi~XYCXTyXJsE6Gi zZEiAIY6IoOPy@&c3NB!kH6Pw=kyHu+xv>&7IimWrp)&y}J7`*HA^elNWeMSXN!gg@ zMyjp#JndALmsEl3V$oDGI8$=L8K^dXnD8&qvJ+|loQfK><20L&=XKhfdL7@^+TEb} z_^=zo64Uv3>7A@LOzu;AZ@RWq2(6?X&OgyXEs9v3M*N`v(hsQn_^lh5d$GQYg{T z<_=c@bILlfxiIs>b%nQ8*vzDNKq@Z0_1rTvORr2iA2>RYu(>u2ax z#6EcI_3UC}xv|p7B__8#KhWw9PQJ$+ zN3_A-Pzv0-)7d=K;L)zsG>*;-ufdx|?!cVIJe%80!^uc$RSS*4af*_;&=zw4q^rW} z*mwI(Ur{(V>id8iD@-;)_otPEx&r+c7g3LS(-RU3&|qkaEl+9O-(Yv$g`ZwMsJmQu z=pBCf68A5(pPrR=P*0`LZL`27SXxL9YR0!UlVxDiYHc&!QZvnS4O6}p4YUwxH7lXX zm6n~sgd{4aflN4$3!OH`DU`W$U2lZP_d!0oyt%-Y@30O5o}burw1w`(Z7D2JO2`e| zJ=drcx?FDx*rmYJ+=bqh^DA|&q>LNJm|?_XV<>OL<8cGuDE}NUca#PfoeodU(&R?w zEAT*a%Y2O{_>kM(y%p5G4%b62a*<+BKhsVYzxXvH>7u9zPDP{FlfNbhORLdfe7F0{%3sudR zTTJ>zA&Y_6`?BQ~z}Ky6zQufG#A}0!sQ+3mKs{)pRLCwX$bd?qgmciRyCrCV1P_^$ zX)&t>$xlh485Hwp_k6?-B&72?X%dP2uFNIHCJ)RxQ(?*Y|EO9*~Q#i z@^k#2B16;Lm?L4fx#!vj5%+{?JC1QTtid6q=q$**#yu3xA=(D%B1R1wS#PxrS|bxv zCern=V$37hyCH&Y_`Yd{L5H!>(*yCF7+|Escq9GfaP|3jc*MQKNcWtBb~kXMzOB!? zQ)l(vW6h{5u_dgNS{$l2yq@Dj*bqez%(;SpgRo0#Sr;n zv>JxUSnf;OS7SM~GI74viH05+NWuh=OEzb2LM3zCx(|=%C(n&lYWE z;?3)-5b!YqvgiPRah(w6YlLY;3-g+LzY$h~e)C2|ZA8?DnvxiHoD(lT2mB!P)Sh$Lc2AdqPTmMzci73YC^2u2kIu1?!S?y1%H>(w&av?W_75YbF>#&gqY`Tq(WNZzvGF4|4U=8h zxz`JGQWU*VBxht%L~(pZ4j0~yz%Po-Vm8wK6vanWZidc4o