<Window x:Class="WpfApp2.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApp2"
mc:Ignorable="d"
Title="XAMLWithScript" Height="450" Width="800" Loaded="Window_Loaded">
<Button Name="button1" Height="23" Width="75" Click="button1_Click">OnClick</Button>
<x:Code>
<![CDATA[void button1_Click(object sender,System.Windows.RoutedEventArgs e)
button1.Content="Hello there.";
</x:Code>
</Grid>
</Window>
记得把后台.cs
文件中关于点击事件注释掉,否则会造成冲突:
上述XAML
代码在点击按钮后,按钮文本会变成Hello there.
:
![](data:image/png;base64,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AADFCCwAAADFCCwAAADFCCwAAADFCCwAAADFCCwAAADFCCwAAADFjN27dxcRXdd1XbdarbquWyyWwsJCZ08MAADgSufl5eXr62swGDRNs321YQULAABAMePBgwdtj3Rdl4qlLG9vb6fOCgAAoAU4f/58Xl6epmkiYlu7sm1nBQsAAEAxAgsAAEAxAgsAAEAxAgsAAEAxAgsAAEAxAgsAAEAxAgsAAEAxAgsAAEAxAgsAAEAxAgsAAEAxAgsAAEAxAgsAAEAxAgsAAEAxAgsAAEAxAgsAAEAxY3BwsIjouq7rutVq1XXdYrEUFhY6e2IAAABXujZt2gQEBBgMBk3TbF9tWMECAABQzHjixAkR0XVdKtaxdF13c3Nz9sQAAACudAUFBZmZmfaFKxGxfWUFCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAAQDECCwAA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)
窗体生命周期
WPF 窗口概述 (WPF .NET)
🥉第一次打开窗口时,只有当引发 Activated 后才会引发 Loaded 和 ContentRendered 事件。 记住这一点,在引发 ContentRendered 时,实际上就可认为窗口已打开。
WPF
窗体的详细的属性、方法、事件请参考 MSDN
,有很多的属性、方法、事件与Windows
应用程序中System.Windows.Forms.Form
类颇为相似,其中常用的一些属性、方法、事件有:
窗体边框模式(WindowStyle
属性)和是否允许更改窗体大小(ResizeMode
属性)。
窗体启动位置(WindowStartupLocation
属性)和启动状态(WindowState
属性)等。
窗体标题(Title
属性)及图标 。
是否显示在任务栏(ShowInTaskbar
)
始终在最前(TopMost
属性)
Dispatcher 多线程
如何对控件进行线程安全的调用(Windows 窗体 .NET)
Dispatcher 类
微软在WPF
引入了Dispatcher
,不管是WinForm应用程序还是WPF应用程序,实际上都是一个进程,一个进程可以包含多个线程,其中有一个是主线程,其余的是子线程。在WPF或WinForm应用程序中,主线程负责接收输入、处理事件、绘制屏幕等工作,为了使主线程及时响应,防止假死,在开发过程中对一些耗时的操作、消耗资源比较多的操作,都会去创建一个或多个子线程去完成操作,比如大数据量的循环操作、后台下载。这样一来,由于UI界面是主线程创建的,所以子线程不能直接更新由主线程维护的UI界面。
Dispatcher
的作用是用于管理线程工作项队列,类似于Win32
中的消息队列,Dispatcher
的内部函数,仍然调用了传统的创建窗口类,创建窗口,建立消息泵等操作。Dispatcher
本身是一个单例模式,构造函数私有,暴露了一个静态的CurrentDispatcher
方法用于获得当前线程的Dispatcher
。对于线程来说,它对Dispatcher
是一无所知的,Dispatcher
内部维护了一个静态的 List<Dispatcher> _dispatchers
, 每当使用CurrentDispatcher
方法时,它会在这个_dispatchers
中遍历,如果没有找到,则创建一个新的Dispatcher
对象,加入到_dispatchers
中去。Dispatcher
内部维护了一个Thread
的属性,创建Dispatcher
时会把当前线程赋值给这个 Thread
的属性,下次遍历查找的时候就使用这个字段来匹配是否在_dispatchers
中已经保存了当前线程的Dispatcher
。
System.Object 类:基类。
System.Windows.Threading.DispatcherObject 类:从图中看WPF 中的使用到的大部分控件与其他类大多是继承 DispatcherObject 类,它提供了用于处理并发和线程的基本构造。
System.Windows.DependencyObject类:对WPF中的依赖项属性承载支持与 附加属性承载支持,表示参与 依赖项属性 系统的对象。
System.Windows.Media.Visual类:为 WPF 中的呈现提供支持,其中包括命中测试、坐标转换和边界框计算等。
System.Windows.UIElement 类:UIElement 是 WPF 核心级实现的基类,该类是 Windows Presentation Foundation (WPF) 中具有可视外观并可以处理基本输入的大多数对象的基类。
System.Windows.FrameworkElement类:为 Windows Presentation Foundation (WPF) 元素提供 WPF 框架级属性集、事件集和方法集。此类表示附带的 WPF 框架级实现,它是基于由UIElement定义的 WPF 核心级 API 构建的。
System.Windows.Controls.Control 类:表示 用户界面 (UI) 元素的基类,这些元素使用 ControlTemplate 来定义其外观。
System.Windows.Controls.ContentControl类:表示没有任何类型的内容表示单个控件。
WPF
的绝大部分的控件,还包括窗口本身都是继承自ContentControl的:
System.Windows.Controls.Panel类:为所有 Panel 元素提供基类。 使用 Panel 元素定位和排列在 Windows Presentation Foundation (WPF) 应用程序的子对象。
System.Windows.Sharps.Sharp类:为 Ellipse、Polygon 和 Rectangle 之类的形状元素提供基类。
走进Dispatcher
WPF
线程分配系统提供一个Dispatcher
属性、VerifyAccess
和CheckAccess
方法来操作线程。线程分配系统位于所有WPF
类中基类,大部分WPF
元素都派生于此类,如下图的Dispatcher
类:
与Dispatcher
调度对象想对应的就是DispatcherObject
,在WPF
中绝大部分控件都继承自 DispatcherObject
,甚至包括 Application
。这些继承自 DispatcherObject
的对象具有线程关联特征,也就意味着只有创建这些对象实例,且包含了Dispatcher
的线程 (通常指默认UI
线程)才能直接对其进行更新操作。
我们声明一个文本Label
并尝试在程序运行过程中更新其显示内容:
<Window x:Class="WpfApp2.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApp2"
mc:Ignorable="d"
Title="XAMLWithScript" Height="450" Width="800" WindowStartupLocation="CenterScreen" Loaded="Window_Loaded">
<Button Name="button1" Height="23" Width="75" Click="button1_Click">OnClick</Button>
<Label Name="lbl_Hello">Hello World!</Label>
</Grid>
</Window>
后台代码:
using System;
using System.Threading;
using System.Windows;
namespace WpfApp2
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
public MainWindow()
InitializeComponent();
Thread thread = new Thread(ModifyUI);
thread.Start();
private void button1_Click(object sender, RoutedEventArgs e)
button1.Content = "Hello there.";
private void Window_Loaded(object sender, RoutedEventArgs e)
private void ModifyUI()
// 模拟一些工作
Thread.Sleep(TimeSpan.FromSeconds(5));
lbl_Hello.Content = "Hello,Dispatcher";
在程序运行五秒后就会报错,System.InvalidOperationException:“调用线程无法访问此对象,因为另一个线程拥有该对象。”
这和Winform
跨线程更新UI
是类似的,我们一般会使用委托完成对线程UI
的更新。在WPF
中,按照DispatcherObject
的限制原则,我们改用 Window.Dispatcher.Invoke()
即可顺利完成这个更新操作。
如果在其他工程或者类中,我们可以用Application.Current.Dispatcher.Invoke
方法来完成同样的操作,它们都指向UI Thread Dispatcher
这个唯一的对象。Dispatcher
同时还支持BeginInvoke
异步调用,如下代码:
private void btnHello_Click(object sender, RoutedEventArgs e)
new Thread(() =>
Application.Current.Dispatcher.BeginInvoke(DispatcherPriority.Normal,
new Action(() =>
Thread.Sleep(TimeSpan.FromSeconds(5));
this.lblHello.Content = DateTime.Now.ToString();
}).Start();
虽然UI
很重要,但不能为了UI
而UI
!
WPF
的布局控件都在System.Windows.Controls.Panel
这个基类下面,使用Panel
元素在WPF
应用程序中放置和排列子对象。
![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAV4AAAH3CAIAAAB8WqBrAAAgAElEQVR4nOzdeVwTR98A8J9CyJIohHgQIspVBYJKkCrgURC1IM9jBdoqVCtQWwWtVtRW9PHAeoAneAHa+gKtFagtgrYBRSEq5bAVoi2XLSR4JMFjCVLCQlDfP9amEVHjcuN8P/6R7O4cSfCXmdnJTL+Whvug4fHjx48BLuQXA4IgfZHzuNE6Ov11dXX6AfTr1+95l+m2ev74MTx89AgApk+f3rkVRBCky507d65J1UIH3X79+un07//8yAD9NZ88fvz4BVEEQZA+QKV6+PDRYwDo16/f48ePn3fZU6GBvPTR869GEKS3e/jo0aPHjx49fvzipkD/551AEKRPevz4McDLOwcoNCDIa+cF/Qi11sOQ7ckLAGQyWdjq1Tdv3lQfGT58eGJCAgDU1NT4f/CB5sVMQ8PTqakAAC1N7h5erbLKPn+efOA+bVqnnzojAF06AMzy9W2oq9M89X1y0uAhQwEgIDBQ83UBwOHDsSPfGAUAy1auLLl6VfPUzsjtb453AoD1m7/Mu3hB89TqsDCvGTMAYM/+Az+np2meCglZ9P57cwHg6DfffJeYqHnq3bl+Sxd9AgCpp08fjI7WPDXNw+N/X3wBANmXLm0ND9c8NW7ChN0REQBw5dq1z0NDNU9ZjBp1NDYWACpv3PgkKEjz1CBj4xPHjwMAXl//nre35qn+evRzGQLycVd8Ls8/dTr9JHOAAQD4+voo6h5onvom4f9Mh5sBwCcfB1aKn/rIDuyLshs9FgA+Xx16pfia5qktm8MnTZ4CABFbw7NyLmmeWhn62X//+w4AxBza/0NquuapoKCAD+cvAIBvj30TH//UR/ae7+wlS5cDwE8/ndobtU/z1IypU9auDweAX3Ivbdj01Efm6DB21+4oACi5fn1ZSIjmKSuL4V99nQAAeH393r1RFhbm1tbWTk5ONBoNno/y6GG/VjcvHz16rHr4MO/Xa63uULQZGlQqVWFhYWHhZcbjxuBFCwGg9v490R9lQwez1dfoY5iV+QgAULW0VPxVpZlcR0fHdqQV+fiP8uutMh9tM6rrT5X9Wfnw4UPNU9ZvWNJ0dQGgUnKjkSA0T1mZj9DHsDZPmQ0fNpDJBIBbMnmrP1wux5jNMnzxqTv37t+599TnMngQmzNkMADgijqpvEbzFMvQwNSEAwD1DQ3VN29rnjIYwBxhOgwAGgmiUnJD85T6c2lubr5eJWnz1LMfGXTT5/LsKfXnQu0jk9y8/XdDg+Ypah/Z0MGDhg4eBC/8XF7pI1O/+S/4yBT19RlZQqKpqUosvimVW78x0sl1mru7O7SlVWg4d+6czUhLhj4do9NoOjr9+z83cFAPDZWVlbGxsbqPmlwnThjDsyFfKoIgXQlX1FVJbjQSxJTpXkDDnr2AcmjQtkPRSm5ublBgUMyuzW6TXcgIjSBI12OzDNn8MQAAf98Fmv6xtIz58z/skJwpDUM+apHdlGSeSJjhNgXFBQTpIQjlgz/Lrq1evVomk7U/N0qhQal439OV7PYgCNJDYDTa+hVLrDhGe/bsaX9urxYaSkpKDu2PAlVj+wtGEKTD0XR1Pw74oEWp2LZtWzuzeoXQ0NDQsDcqymmMdTuLRBCk89B0dSM2rDmfKSgpKWlPPq8QGn65kPPGMGP70bbtKQ9BkM6mj2F7IsIN9entyeQVBhEv5hV6vTUejTsiSM/nYGcDNP325KBtq0GlUtXcrLIZ+UZ7CkMQpOuoGnEcp5xa29Bw/fp1m5FW5JwwBEF6vhu3bh89HEs5uba9A7tRVpYLO2YqBYIgXcDIiHVTIqacXPthSB1y8jmCIL0CRqfjCgXl5NqGhl9yL738IgRBegyarq6uLvVVF7RN6T1nLuUyEATpFkyM+k0KbUNDe4Y6EQTpFmw29fsGaJUnBOmzQpcvp5wWhQYE6bPYRizKaV/rqY137t0/fzGvtLwcADC6vpfndIsRw1gDB75qPo0EUVf/9yAjVidNFW0kiNyCX53HjyOXIQKASsmNmrt3HcbYqW8bZZwXDh/GHW0zasP2XdYjrea/76t9/rdkcr9FK3nWlkd2b+342j+/0LzLxb+X/AEALEOWxzRX9TpLr0rV0lKrqDNiGVJ4/yslN972+SA6YvMsz9ZrzPUBjfW1jIFDqKXVttXg/OY4agX0WJcKfp3m++Gx71Mxuv5A5oArV0vmLVwSe/Q7ClmlCbL+835Azd17HV5J0v1axZLPN/1a/Lv6yILgFYtXbVAvEIYr6haErMy7fAUASsqrpNKatjN6vhq5/O866je6XtWJ9J9nzv3o2x9P03T1MLr+L4VFcwKDN2zfTS23v8TVCxavoPz+S27eopaw54uIjqOcVtsom5KURLmMHghX1EVGx1iYcb+O2qFe26/m7r26p1f+05JK1XxD2sbiGaqWlpq799pcGk/V0lL/d4Pm7FL53Xvk6o/PMjQYaGtjKcwtcJ/sTF55rbR8LM+mVvFkhdvzF3JxHJ/21iQA2L9jE0O/9bg0uUTiszNTFPX1f//dAG2pb2ioe1DfGev6nb/0y8oN2+a9770yZKH6za++eevkz1nqa17w1pHXa751Dx8+vH33fptXPqtScuP1WWrk/j3qX1fahgZTEw4QtZSL6Wlq7t67Ia3x9pxK/mkCuZAWyxAAGgkiIjpOfu+eunVd39CwOTLK0cHe33fWuYv5m7bveqAkAADD9DeuXIJhegeOHsdxfEHwCgAYN3b07i3rySRnLuQpFIqBDCwsdKn/u7Npurq/iX7fffCwxzS3rxOPP6iv18ew/Tu+/Essjjp09IZUNsrS/Ju46Gf/cDE63dXZ6eezQvJpzqX8UZYWE52dLv5SOMV5PABcLv6Dx+ORCddv2zXSwuJ/qz4FgM/Dd7BZhjV3a37KPNekemg30urEN3Fko/3Ovfvbow6ev1Qol8t5o6zkNXIAHpn/jVu3V6zb+qekWi6XTxhnvyN87WibUX+UX1+3bef2/31BLuW6YfuuugfKHeFr9DHs+l+VYV/u/np/5MABzGMn0vbG/p9e/37Njx6P4Brvj9zc6uU0EkT6z+dMhgyK3PCF+iD55juMsSMv2LBttyArW1H3gGVooH7rKiU3/rd1Z4D/e4lJP1z8pYA5wGC2p3vEpjCaru6a8Ai5XD7vk2U6OjpjR9uGh608dCSxSdUynj8mLuFYY2PjV/t2cjlDDyZ8n5ycQr7Pny4Keu+dma06IKqWlt0Hv/4h7TQANBKN4/j2X0VHvLYz/bQNDcVX8h3sbDq1Kl3JfPgwe5510o+neDY2plyOhdnwwYMHYTQaAOhj2ChLs/jj36u/Xv6S3CwQlS5c4H9LJl+7dbe3h/tbk5yaVc2ia6XXSsoCPnjP0825vLzsk4B5g9ksJmNAfUPDsjUb797DY3Zu5nKMLxdd3RuXMIzLmTZlUq1CceVqqbKJ+HRRkD6Gbd+zf/7i5e5TXT8L+cjIkPXVd0mffPZFdnpyq9rSdHW5Jpw/xWJFfT1r4MD8y0XObzpMcBj97Q8ngVx6uEoybYoTebFYckN9N/vuvTtpP5/x85kZsTGskSD+t23P5sio3VvWA8DmyKiy63+tWxHCMhxYWv5n6fVKMsmde/ff/Wi5teWInZu+oNOxtJ/OBC1fezLxEJdj3KxsSklNH73uc1VLi+CssPnR45LyP9/kj6m5h9fcqdHH6AW/FR88HL8y5CPbkVZ37+HXSsqqJNWtQkP93w1X//hjtpdHm59LI0GsXr/14uWizWtXcYyH/iWu3nXoqD6GvT/7PwDw51/iyKhD78x8e957Prdu396+L851ksssz2nvzf6PWFId/NGCwWyWEYvF1Ne/i9//+ewFUckfE8c70nR16HS9gwnfZ2Sc+XRxkO1Iq+Krv++NSwAAf99ZmqV/9V3qydM/r14ePIZn/VdV9RWRqD1/Y72dtqHhHf+Pbl7L69SqdCV9DNv6v9VLP1//RXgEALBYLHue9TTXSfPf96bp6nq97b7j4FcJx1O2rPscAL5L/sF8mLEpl3Pn7n1Fba3HNNc3+WMAYNqUSfUNDQOZzJFWlhiGTXEZTzaAs3MLrhRfO5+eTDZJrMxHZF/8RXStdNqUSQCA6WMxO7eSV/55QxZ3+Mii+XPJDG/dvk3+yT6LP4aH0THhpQIP9ylFJRVfrlnOwOh1tXUAUCm5UX694ovli9pMOHOa68YvQsmvx5STP1VV3yaTnDqbfSBys7fXDAAYw7OJS3jSYfw5K0ciEcfvjyBbB5Zmw2fN+yTx+A//W/XpaJ51prBgyzoo+K34QUOj26QJ4uobb/LH/CWuHvmGha6u7i2pvL8e9t47M8mGySzPaa3WegeAZpVKWnPf0sKszdqW/1l59kLe/siNM6e5AcAU5/GlFZVJP/5EhgYACF2yiKwzAHz9bUrdgwcAMN5hrI7ev+8/aYyt9f4dm9RHkpNT5vr8N8j/PQBw5I/5o+z6wSPx6qxIFy9dZBkaTHtr4tDBg0bbjPJwn/LaNhlA+2FIqVTaqfXoeubDh/2cHP/7L2cORG729pwqllR/vGz10rBwAGCzDP8zwy3t57OSm7dVLS2CrOz/vO0+kMkcOIBpNWLY3KAQ3wUh8Uk/3JLJMXobq2Xcv3+faH7ot3Cp+2w/8l9B0bXi30vJs3r9+w3655bS9CkTtKyt7UirMbbWaYLM8koJALhPdh71hiUAZOcW3Lwt1dHDnN90aDOhoQFD/dhj2pQ/JdXyu/fOnhdidOxNhzHPXp9X+BtvlJV6AwiyefVL4WUAsOPZKGprcUXd2WzhzGmuc7z/I7yUTyZxneRC09W1GWlZe/8Of7LHotXr0wRZuKKuzf9amJ6OStXcZm1v3ZbTdICMCyT3KU63bv87TDiI/e/dOAd73tXS66qWljazGsQ2VL/PZX9WXq8SO9iPJp/SdHUnT3S6Vlpe8/QIRYD/e/m/Fbv99/0N23ddKvi1zWx7F3196qHtdZ/XwBo40NtrxpZ1n59LO77046CTpwTkF90XyxYTzQ/zfy3afzh+AJM5xWU8AAwdPOjrg7tWf7rI0mzY0eOpLh6++w/Ht5ktTQc+Xx6s/rdz0xcrgj9qZ1VHjbS4Unzt9z9KhhoZAgCbZTjaxjrph7Sbt27b86isytfS8vB5x9v8/zbDbbKiTpGekfVnVfVnwUEmHGPJrdv1DQ2VYompiTEAOIyxS/vu6Ly572G6tG3RcU4zfDLOC1tlwtDXH2n1xtmc3BdU7Nm2RocgiH/jEdHU9OwFM6e5Cb5PnPe+759V1av+9+V/5gTKO+2uU9dYt2oZ5bSv6bwGXFHXrFJp3hHQxzBDAwb2z7ccm2U4c5rr8bQMkUgU9MEcdbvU1IQTsnABANySyZd8sf5UxtlVSz9plfmAAcx6JUHOMqBcQ0Klun1bNnTIIPWt/hlukw59lfDDTxmuzk+GFezH2B44+l393397aHzNasPaelTD3w+qqm+aDx/W6tS4MbzM7It/iavJjcVuyeRiSbXXDHcAMDXhWAwf9m3yDyxDIyvzEY0EMcx02FfHf9TX1x9pZUkmH20zanTYKFVLy21Zzax5n/yUcY5sAlRKbhixDNksw4EDmG6Txm/ZczDv1ysTxztqFp1xXmjCGQoAuQW/znCbQh4sKL5mOsz0lV7ds8yHD2OxWNcrqwCeTF4ovlrCMeYYDxkkld/RvHKK8/gpzuMbCSL/N9Gnq9f9WSl+3m2jXoE9hPoNpte01SCV1yxY/Nm2PQfJvc8aCeL8pV+ST2a8O8tD3QZe4Oeb/0uunk7/FcFPtoSslNzYsH0XrqhrJAhDg4EPVQ91dHQAYBiXQxBEljC3kSBULS0OY0dbjhg2JzC4+PcSMvM0QVZS6ulXquG3ySf4b3n+cCpDfWTalEkcY05ZeZXrJOcnR1ynlJaW/nw222z4q/3ncZ/sbGE2QnDmHK6owxV1icd/kNfIyVMhCxcMZGAHD8eTLzNLmPtASYT8s1THbC+PC78UONrbAYA+ho18Y1TskQQux5gMMWmCrDRBViNBtLS0PHz4UJ+mQ87h/6P8+qg330r5MR0AaLq6vu94cYYMmj3vk4zzQvL9qZTcmB8cGptw7E3+mEnOEz4L21T2l7iRICQ3b2dkZL3v3Xo/1FbIj+xIYjL5/rd5QaCfT8Lx7/8ov95IEL+Jfs84f+GDud6t+ju+C0KyhJfINovBAKbqIQx49flvPUs7Fn/XttXA4/Eol9EDDR7E9pjmdirjbHJqOsY0IIjGYUMG+b/7zobVn6qv4RgPsR75Bn80T30LnU7XKymv8nx3PtmFG/WG1eLAeQAwbcqkpZ8E7j14OOG7lPEO9ru3rI+Lijx4OH7B0s8xTL/fw2YD9pBVwQsAYOCAAWYj/h2xN2AybKxHYtiTAQuWkdEoqyfjc0Yslo2N7QDGUzMU3CZNkMprjP6pj5X5CM/pU3VoOmamXPU1w01Nuf+0cYZzOSbDzNS36IYMGmI3ylKPRgOAsBVLt+yKFmRlD2AyR418Y9xYOy7nSap9kZvjv0vxmf8xAAxiD94SFqp+B/zefUeQlT3NdRL51NfT7cSJE+PG8P55f2gHv0rcEBnFNmDq0zHn8W+GLlkEAAOYTEf7MSwjI/IyUxPOj4lxB78+tnXX/vVbdg0YwGhpecizGfXeO14A8FnwR3q6usErvgAAHR2dub7veLi/BQA0XZ2Rb1gYaUxn4JoMMxnCBoARptyVIR/tjf2/88KLjnz7L/+30phj8qi5WVfj3uQXny2R37kftHytXv/HzY/6zfZ037x6OfmZOtqPYQ5gkm9veGSUrq4OADzsR/PzmTnauneveLhtz8H123ZSS6vtnpd/FP1mZz6Ueh17pFsy+d179/9uUAIAl2M8wpSreaP7j/LrHy1d9X+H9mj2C9RbDOpjmPVIS3Vrn1Cp/igpb2lp4RgPJb9CyS/DWkWdPoZxjIeQXZJGgpDK72jez6uU3OByhpJfX7iirlZRR54lHxv9M9uCdOfefYIgTDjG6npWSm7o6OgMM3nqCJ2uRxZ3SyZn6Ourc8AVdX///Te5Qa6qpeXGLalUXjOAyTAbbvqg/m9dXR11v0l+916VpPrhw0cWZsNbzTvSrDBo9BTgn3lK4uqbAGDEMlRvS9vqMhJZgZq7dx8+fDR4ENvKbLienh55qpEgyv+s/LtBqZkJ2UnRfKWar47cubdWUUd+jrWKOl1d3VbrFdY3NPxVJSGzVe+LS9ZN3XGrlNy4e+++qqVl8CC2+fBhvf0OxdLV62P+7xvNI52wHa6yvi9NedLGhu27xDekr/OkF6S3a09o0HasoaS8ol117IVwvC7AzxfFBeT1pG1o8FsQ2Kn16IG2rP/cbbJLd9cCQbqHtsOQpaWlnVqPHgitrI+8zl7Tm5cI8jpYt+ZzymlRaECQPmsYF015QhCkQ2kbGiwtLDu1HgiCdLhtkbsop9U2NCR90/bviBAE6bGkMjnltNqGhjcd+JTLQBCk19E2NNy+KenUeiAI0qNovbHdvPYuN4AgSC+ibWgoKrrSqfVAEKRH6YqlXP4ovx60fG0XFNQedDr9q71byPVLEKRvWLvq05df9BxdERpqFXUeHh5bt27pgrIoW79+Q0ODsrtrgSAdyXSEBeW0r9cCcA0NDRKJBADs7Oy6uy4I0qNpGxrYbHbHFnzoUEx5eZnmET6f7+HhYWra3oUAXyA6Onrjxo0AcP36dSsr1HdA+rg90ftXb6DYWtc2NHx//JuXX/QqLl8uPHbsGPwTdHAcBwAej7dv3z53d/eOLQtBXk9V4mrKabUNDVMnT+mMVZ7IWGBsbBwfH5+YmFhaWhoVFeXk5MRkMmUyWVlZmVgsptP1bG15jo7/rj5cUlICAObm5np6epcuXZJKb0+bNt3ExEQz55KSkoKCAgDo7JYIgvRJ2oaGe7V1g1vvsdoBMEzfzMzMyspq1apVBQWF+fl5EolEIpEQBOHp6YnjOIPBUCqVADBunGNcXCwZIDw9PaVSqZeXV22tIj8/DwDYbPbhw4d9fX0B4MqVK+Hh4QKBgMFgAIBSqVyyZMnmzZs7vE+EIH1YT1nlSSqV1tUpAMDc3NzExITFYnl5ee3cuSsycsfateu4XG5R0ZXIyEiVSqVOIhKJTEw4Xl5eDAYDx/GkpKSGhgYcx9esCRMIBKGhoYmJiZGROxgMRkJCglDYeq8UBEFeQNtWQ05OdmcUL5GIN27c2NzcLJFUkwtJeXrOZLPZbDY7JibmwYMH+fn5GEbn8/lSqVQiqa6vr1d/+b/t4bFr504AeOed2fn5ebW1iqamJpFIlJOTzWaz/f39WSyWtbW1jY1tUdGVnJwcsk2BIIg2uvnmJY7jycnJAMBgMNhsdkBAwNKlS8jjc+bMLSwseEFaIxaLDBNmZiPIbgUACAQCMvmECU9tJ6lspL5XB4L0UqtCP6OctptDA5fLDQgINDExIZsG5FCCSqWaM2duTk62i8vEoKBACwuL744fT4jX6lfhJiZcAGAwGOHhmzGNxaAtLMw76SUgSI9lqbHjyavq5tDA4ZgEBQW2mmJQU1NDthecnZ0WLFjQ3Nx88uRJLTP09PQID9+kVCplMunmzZuZTCYAZGdni8XiDq88gvRh2g5DkqP9XcPU1NTGxhYAEhMTJ06c5OY2lex0aMPc3HzO3LkAEBUVxbfnjx8/Yfjw4TNmzMjLz+/EGiNIj7Qnej/ltNq2GpK+SaBcRpsmTHBSKpXW1jZG/2yFqCkuLjYmNraivAIAfHx8AKCgIN/MzIxOpwPA2x4eD+rq+Hx78uKJEyc1Nzfz+Xw6nc5kMnft3DnRxSUzM1MiqQYAMzPztz08/uPlBQC2trbkYGSbhSJIH9OeKU9dsbHdpYJfz/xS3OrnVQ0NDeQD5j/bRrbS0NAgl8vpdLqxsXFzc7PmxWRaPT09Go32vKxwHK+tfVJhDodDnlKpVGRWzxa6fv0G72kub/LHUHuNCNIDtWdjO63HGh4S7anis54XETQvUI9BkCHgeWnbzIq8A9rqII1Ga5UVgiBt0nasYZZ/UKfWA0GQHkXb0EDOF0AQ5DXRdTcvNec4IwjSBUKXL6WctitCA5djXCu7EeD/XkdlWPib6EGDkq6n85aLU0flyeVwOMZDOio3BOkJ3rCivrNUV4QGK/MRh3Zv7cAMJ8/6wN/N7cyZM8e/OtiB2SIIotb79rwcM2mGlZXl1q1bxtqPdZ/t193VQZCeKzbuMOW02oaGbxOOUi6jA52/9Ishe0hUVBQA7N+3r78eI+M8+rU1grTtj7LrlNNqGxo+eK/DRgook9y8HbH/6Lp1a8kJC0wmc+XK0INfJd65d/+laREEeSW9qUMhlcv5fHtXV1f1EVdXV8tRtucv5nVjrRCkT9I2NMwP7NxVnl7q+l+Vi1dt8Pf315z7yGQyAwMDt0fH/lFOveGEIMiztA0NST9o+7PoTrJ8TXhgYNDYsWNbHXd0dAwMDFq3bWe31ApB+qre0aHYsH3X7bv3ly9f1uYvIJYvX6YkHu059FXXVwxBerKQjxdQTts7dq9iGbKGGBl4THMjn9bV1Yv+KBk3znGg/r+Rgs1Gv7NGkKeMHmNPOW3vCA2rln6yaukn6qcFvxVP8vRJPhJl1Y71rRAEeYHe0aFAEISC+G++pZxW29AQd5D6SlIIgnSL366IKKfVNjR8EhhAuQwEQXod1KFAEKQN2oaGhctWdGo9EATpUbQNDVruEIMgSN+AOhQI0md96Pcu5bQoNCBIn+XsMpFyWhQaEARpAwoNCNJnJaV8TzmttqFh585dlMtAEKRb5OYVUk6rbWhYtWQR5TIQBOl1UIcCQZA2aPvLy8/DwnaFr+nUqvQulZIb36cJGokO3gq0y9iOsvL3ndXdtUB6Lm1Dw96DsSg0aDp7XvhIj+HsNKm7K0LRjm1fzpzhxho4sLsrgvRQvWO9hp7JwcHBy8uru2tB0f7daMm8vu9d7/9STotCQ0dqaGiQy+UymQwA9PX1bWxs9PT02ly0DkG6gPvUqZTTotDQMVQqVUpKclzckYqKchzHyYOWFpYrQkOXLl3SvXVDEArQHYqOcenSpdDQlfn5eTiO+/r6hoaGTp3qrqhT5OX90t1VQ15fp0//RDmttqFh6/owymW8DtasCSMbC1lZWSdOnNi9e/e5c1mJiYkWFpYAkJubO336jJFvjCT/zZo1SyAQkAlLSkqmT58xefKUo0ePrl+/YcyYMWPGjDl69KhKpbp16xZ5atu2beTFOI7PmjWLPKJSqbZt2zZ58hR1tsuWLausrFRX6ejRo+pCp0+fcehQjEql6vI3BulOmedyKKfVtkOxNmwtELWUi+nbcnNzi4quAEBgUJC7u7v6uJeX14wZMwCgsPByRUW5mZk5hmEVFeUCgUAkEiUmJrq7uxMEUVhYoFQqKyrKAYAgCKVSuWLFCgsLCz6fb2TESk1NbWpqWrFiBZPJFIvFQqEQACIjI+rr63NyhHV1CmMOp6mpSSIRx8TEFBeLcnMvNTQ0RERERkRsZzAY9vZ8IyNWeVl5XFysv78fuScggrwUGmvoABKJmHww0cWl1SlyDNLbe7abm6uxsTGDwRCJRAEBAVKptLhYpBlH3pk9e94HHxAEERAQgOO4QCBwd3f39PTMzMyUSMSFhYXu7u779+9XKpUuLhMnT56sUqnCwzcZGRmx2WylUpmfnxcauvLqVRHZcDhz5gwAuLm5RUdHGxkZicVikUhEp9O76B1Bej9tQ8P6bTu2rkJzpSnicDj5+XmffbaiRi4HAKlUCgC1tbWaLfypbq5kpDA3t8BxvKmpCQCcnZ1ZLJY6juT9kgcAwcGLAIBGo/F4vNjY2LS0dEVtLQCQPRqFQsFiscg8hUKhp4enMYezcmWon5+f5p6ACPJi2oaGiIjtPS00bIqMYgzotr/1ivKKNTwH8jGXO4x8kJefv/Rvu/QAACAASURBVHDhQs3LcBxns9mLFi06deoUi8VydnbmcDjJycnquxgvZmdn5+7ufuzYMaEwBwCqxFWWFpYODuMA4MqVK8HBIUVFV3g83sRJEw0MDBISEpRKJQBYWVmtXRsWEREpkYjlNfIqcdX77+f5+vomJCSg6IBoqRd3KFYEfzTClNtdpSd89+/PXZ2cnHg8Xmlp6an09GNurvPnf0geP3bs25qau97es0+dOqVUKmNjY3x8fJlMplAo1DI0AEBAQMCxY8dEIlF5WTkAeM70NDc3BwCh8EJR0RUGgxEbG+vk5AQAaWlpZGjAcdzFxSU5OamiogIAfkxNTYiPFwqFTU1NKDS8Vjzfnk45bS8ODUYsw6GDB3VX6QMHPLVhd2xsrI+PD47jAQGB+/YdMDQ0rKmRl5aW+vn5zZ07B8MwpVKZI7xga8sTCi+UlpZqX5C7u/u4cY7kMCeDwXBymkD+98YwjMFgKJXKwsLLABCfkED2UwCgtLQ0NHTlWPuxQYGBRkZGDH39jnzlSO8x6z8zKaftxaGhR3FycoqMjIyLOyyRiMvLywAAwzBLC8tx4xxNTU3fmT37VHr69ykpp9LTnZ2duVwuQRD6+hiZlsViYRimzopOp7PZbM0hw+DgxWFhYQDA4XCmTXvyPeDs7GRvz796VRQevonFYrm7u5N3H9RZkSWSj3k8XnBwyED0iwlEayg0dAwajbZw4UI3N7eKigqCIAAAwzBjY2MbGxsA2LVz57u+vgRBYBjm7OwsEokIgrC2tqbRaBYWFocPHwYAa2trMqsvv9xMEISZmZk6cx8fHxMTEwAwMDAgHwCAo6Pj4cNxZJdh6NChTk5Oly5dIgiC7G7ExcXW1NQQ//ww1MzMbOzYsWjK9usmOydn2jtzqKXVNjSEhoZSK+C1YmVlZWVl9exxNput+UMszXuWrU61Ovu8a0h2dnZ2dnZtJnR0dHzFuiN90I9pP1EODdrOhty9JZxaAQiC9EboNxQIgrRB29CwK3pfp9YDQZAeRduxhrD1Gz8PXtCpVeldMAYjLy8fx+93d0Uo0qHp6vRHbUbkudAdCopmuE02Kv5dpWro7opQtOrTxQPR9Ke+bvJEJ8ppUWigyNSEY2rC6e5aIMiLtGdlYNSkRJC+i0Z9IiwKDQjSZxXk51FOq21oWPpxEOUyEATpFsd/OEU5rbahYX90NOUyEATpFg9bqC/5hzoUCIK0QdvQcOj/vunUeiAI0qNoGxqWL1/WqfVAEKRHQR0KBOmz3nTkU06LQgOC9Fl+cyj+IhtQaECQPkwfo769AAoNCNJnFYuKKafVNjTM9/OjXAaCIN3iu+QfKKfVNjQkfn2YchkIgnSLxkaCclrUoUAQpA3ahoZvk1M6tR4IgvQo2oaGwI971q52CIJ0KtShQJA+a7TtKMpp0SpPFJX9JU5N/5loauzuivQIGF1/6aIAFtodq4cJnEd9yhMKDRQJL1zCjIxdHKhPRO1Lvjt+PP/ylZnT3Lq7IshT9AcaUU6LQgN1trY2z+409Xq6Upivq6PT3bVAWqv8s+KNcUOopdU2NMz2or7l7utAJpORG9iTGAyGenPK9sjNzU1LSwMAb2/vyZMntzqL43htba3mEQ6Hw+zkdaIFAkFGRgadTl+3bh25AS/SY8UlJO0e1/rPRkvahobUpARQoX71c73//pz8p9fhIzenDgwMaM//VYlETG6Wa2Fh+Wxo2L59e1RUlOYRLpf7tofH0a+/plziSxUXF8fExABASEgICg09nPLvesppte5Q6GAoNLxAU1MTADAYDHt7PgBUV0tKS0vDwtaIxVWbN2/WjA4NDU+2rmgzZKhUqubmZj09vVfa1XrcOEc6nV4jl1eJqxLi4wFg/759ZP5khs8rTrPQNi8ga9vZLRGkB9I2NJz86Sef6ZM6tSp9gLm5+alT6U1NTZWVlfEJCQnx8YcPH7awsFy6dAl5waFDMZcvF+I4bmBgMG6cY3DwYvX/ulu3bqWkfC+RiCUSyVBjY54t79nlc27duhUdHQ0Atra2CxcuJA+y2ezNm8OdnZ3FYvGaNWE5OdkXhRfKy8stLCy2b99eq1DcqanBMMzMzEwz1erVqwFg4sSJAPCzQPCgro7P53/00UdkP0ilUmVlZWVnZ1dUVACAvT3fx8cb7b79WtE2NLznN+/hPUmnVqVvINvYJiYmDg4O165eKyq6EhcXS4aGWbNmCQQCALC0sKwSVyUnJyckxBcUFDCZzFu3bk11m1olrtLMytt7dqvM/fz88/PzeDze5s2bNY8bGBiw2Ww2m21ra5OTk000EY2NjTKZLCoqis1mswxZ6pzFYsnWrVsAICUlRSqVpqelq09lZmYCwBdffAEAR458FRa2RqlU8ng8ABAIBOnpacnJyXZ2dh3/liE9Epry1FmYTOZY+7EAUFpaWllZuWfPXoFAwGaz9+8/8OdffyYmJnC53NLS0oiISJVKFRISUiWuIs9ev349KysrMOip1f0Jgli2bFl+fp6lheW+fzoLanfu3CkpKUlNTc3MyAQAMzNzc3NzNpt95MiR4uJi0VVRVlaWi8tEALh6VaTu0QAAy8ho//4D+/cf4HK5SqUyJ0dYX19/48aN6KgoAMjKyvr999/Pnj3L4/FKS0szM890wfuGdCBTU1PKadHNy07E0H+ydxBBEEVFVwDA3NzC09MDALy8/pOQ8I1UKi0oKCgsLCwoKACAxYuDFy36hEajWVlZOTk56enpkUObSqUyIyPj6lURAASHhEyZMkWzFBzHN23aRDQSijoFjuNsNnvlylDyb8LExCQxMbG0tLS5ubmuTgEAEomkqalJHVlcXd8iWzRCYU5qaipBEE1NTUKhsEpcxWAwsrNzsrNzAEAulwPAtWtXu+Z9QzrKiuBAyml7cWhwftu7G0snCCIl5UU/OVOpVGVl5QBgaWFpYmJSU3MHAOh0upGR0T8PWABQV1cnkYgJgmAwGBYW5urRx1btgqtXRQRBAABBND47QimXy1mGLJYhy96ev29f9KhRowBg27ZtkZGRSqWSy+WamZlj2Iv2OGMwGOrHZWVlAKBUKlOSk8kjZOYGBgZavDFID/KaTnkqOJtmZT6iu0qPPfrc1fdVKtW9e/fOnz9Hfs/P9p7NZrP5fPucnOy6OoVMJmOz2Q8ePKitVQCAubmZg8M4FosllUrz8vP9/PzIoHDr1i0yiJACAgLu3r177NixhPgEV1dXzRuZbDb75MmTrW5tqlSqhPgEpVIZGBQUFxtLo9HWr99Atlxeyt3dnRykSEtPUw8uNDQ0PHjw4BXeIKQHuC2Vm1p38pSnqVPRtL+Xk8vl27Ztq62tFYmuFhYWKJVKLy+vdevWAcDEiROjoqIkEklcXJyPj092dg4ZOJydXUaNGvW2h0dCfPyp9HQTjomNzai6uvqkpKTDh+PIbBkMhoWFZUhISFFRUWlp6Y4dO5ycnF58d7O5uZloIgDgTk1NVlYWjt8XCoVavoqxY8eSgwuBgUGBgYEWFuYymUwkEtHp9N27d7frDUK6VtxXR7buPkAtrdZTnr5LBHhIrYzXB47jGzduJB9bWlh6zvRcsWIFec9i1qxZS5YsiYmJiYmJSUhIIKdOzp8/Pzh4MY1G279v34O6uszMzIiI7QwGQ3NipZqVldW+ffvmzp0rEAhWrlx54MCLPnImkzl37tyoqCiBQCAUClksFoej7exMU1PTHTt2bNoUXlR0pajoCtnXUCqV8+fPf6V3A+l2OF5HOa22ocHAwACI2pdf97pauzZMc86yhYUFn8/XnCxIo9EOHDgQGBiYlJRUq1AYsVju7u4zZswgv/yZTObx48cLCwtTUlKUjY1GLJa3tzfZmI+NjQEAB4dxADBlypTExESZTEan66lUKm9vb1tbWzpdz8rK6tkq7d69m8+3Lyy8TKfTg4KCamtrKyoqTExMBg4cCADh4eEAYG1tTV4cEBDw1ltvmZiYkAMKXl5erq6uycnJefn5AMDQ1/fx8XFycgIAb29vDocDACNGdFtvDukC/Voa7ms+f/Toserhw7xfr02fPl3z+JmfT7/tYt+1dXuugt+KJ3n6XP/tYveONZjxHLy8vLqrAj3KrohtfBuLGW5TXn4p0oWWrl4f8/SWlOfOnbMZacnQp2N0Gk1Hp3//fs9Lq+28hnkBQS+/CEGQvkLb0IDjeKfWA0GQDjdo8GDKadFsSATps1Z8GkI5bS+e19DtsrOzxWL0uxIAgIt5BaNHolHJHodtxKKcFoUGima+Pe1szkWi/l53V6RHmDV9ynRXikuGIJ0Hr1UMGtjJU57IH+cgaubDhy1a4N/dtUCQF4k+GLtl515qabUda0j+Jp5aAQiCdJf796i3arUNDaYmHMplIAjS62gbGn4puNyp9UAQpEfRNjT4LQjo1HogCNKjaBsapFJpp9YDQZAOp6+PUU6LpjwhSJ+1blXrlYe1h0IDgvRZ7CHU7x6g0IAgfVc79o7RNjSQi44jCNKLbNtzkHJabUPD9999S7kMBEG6hVQmp5xW29BgO/INymUgCNLraBsaSsorOrUeCIL0KNpPeaK+1wWCIL2OtqGhtLS0U+uBIEiPgm5eIkiftW7N55TTotCAIH3WMC6a8oQgSIfSdpUnSwvLTq1Hr5NxXphy8rTeC/eY7XYG+ljEpjCaLlrm7zW1LXLX+m07qaXV9o8mCa3y9DSJ5Mb0mbOmTZv+8ku7z9JFnxBNTSg0vLbaM+VJ2z+aNx34aGO7VtjsQSYm2m4k2S309HS6uwpIb6XtWMOfkupOrUdfpVKpSkpKjh37dtmyZQs//njhxx9v27YtNzdXJpM9L0lJScnIN0YOHz786NGjz54VCATk2UOHYjqz4sjrTttWwwcLgn49+2OnVqXvaWhoSE5OjoyIlNfIlUolm80mCEKpVDIYjM8+W7F165Y2UxkaGvId+ARBtNkkIQiCzI0giE6uPvJa0zY0FBVd6dR69EmFhYXh4eFSqZTL5UZHR3t5eSmVyvj4hJTkZJn8ua0GU1PThIQEANDT09M8XllZSafTO73SCAIA6OZl51GpVLGxsVKplMFg7Nu3b+HChSYmJlZWVlu3brl46eI4h3EAUFJSMnz4cLLvsHr16pFvjFy9enVJSQnfnm9jY/PNN0/2OM7NzR0/fsKoUaPMzMzWfLFGqVR26ytDeo21qz6lnBaNXXeW5ubmgoICALCxsfX19dU8ZWJisnTpEvIxuegm2bhgMBjkQUWdQr3/8JUrV/z9/aVSKY/Hc3Nzk0gkVeKqrnsZSG9mOsKCcloUGjoRORxA9gKys7O3b49Qn+Lz7Xfv3q1+OnfuXC8vLz09PRMTk1aDCHv37pVKpZYWlgkJCWPHjk1JSRYKhajhgHQ2bUMDm83u1HpQ8POZ80OGUN8jvJ2Kfi814zlofz1BEBUV5QRBkM0BM3MzzbNeXl7u7u7k45KSEvXxhoaGmpo7ADDBaYKNjQ2NRmMwmB1Qe+T1sCd6/+oNbY92v5S2oeH7499QK6DzqFpaiKam7itd9eIL9PT0zM0tcByvqCivrKx0dnZOSkq6evVaePgmdWdBG2Qjorm5uampiclEcQF5BVVi6nMOtA0NUydP6WlTnrz/42Fl3m0btxMva9LTaLTAwMDy8jIcxxcvDj58OG7y5FfeS5rJZBoZsQCgvLy8tra2B7bdkL5K29CA35OzB6A7Z69m9ux3MjMzBAJBTk62s7OzubkFQTS+6nyEoKAgoVBYWlrq5ubG4ZhIJGI00IB0AW1Dw3vzPspO/65Tq9L3mJqaxsbGpqR8n5GRUS2RyOUyjI7Z2/Otbazf9fUFAENDQxeXieQDdSoMw5ydnWtrFUZGRgDg6+srFkuSk5PlcpmhoWFAQIBIdBUAjI2HdNPLQl4L2oaGC7/80qn16KtMTU1XrVoZFBRYW/ukO8ZgMAwMDMhRA1NT0xMnvgeAwYP/HU8dMWLEkSNHAMDAwIA8smrVyrlz5zQ1NZFpHzx4oHkWQToDunnZFdhs9vOGCZ6dDU2j0Z49aGpqqn6MBiMRLa0K/YxyWjQbEkH6LMt2jNOj0IAgSBu07VCo5/Aiaur5SwjSM3XFlKekbxKoFdBXvWFlcTpTkH8hu7sr8iJjbG1oT/98E3mtdMWUp/96evS0KU/dy22yy3hH/qOHj7q7Ii+ij9ExGq27a4H0StqGhgaiCQ2La6Lp6rIGDuzuWiBIZ0Eb2yEI0gZtQ4NAIOjUeiAI0qOgm5cI0meFLl9KOS0KDQjSZ71hRX1nKRQaEARpAwoNCNJn7TpwmHJabUNDYiKa8oQgvYzkr+uU02obGua/60O5DARBeh3UoUAQpA1atxoC0ZQnBHmNaP3zqh9OHouL6tSq9EaXCn69jyu6uxbIyxkYDHSf7NzdtehN0CpP7bIiLHzqjLcxTL+7K4K8RE5WpllcdDcuQd4tQhYtpJwWhYZ26a+HrVu3Dq0B3/PNuirq7ip0g9F2PMppUWjoMLdu3QIAY2NjmsbvoHEcVyqVOjo6BgYGycnJcrmcxTJatOgTWpf8VvrQoRiFopbFMlq6dElJSUlaWhoAuLq6vnhHjG3btgGArW3rrTopIN8TTZqLXHaGhoaGuLjDBNHo4OAwY8aMrnmf+yR0h6Jj4Dg+1W2qg4PDypUr1QcbGho2bdrk4ODw4YcL5HJ5UlLyxo0b4+Jim5ubn5fP6tWrJ0+eMmvWLJlM1v5axcXFbty4MSkpCQBqamoiIyMjIyMrKipenCohPmHjxo0/d8QP6mbOnOnwtOnTZ+Tm5rY/5+d58OBBXGzsxo0bMzIyXvA+vybiv/mWclptWw1xB/dTLuN1QKfTzczNq3KyMzMyZTIZuSS0RCIRCoU4jtva2owYMWLJkpDAwAUMBlPv+SsvVVdX5+fncbncV9qHRqVSkf8NXrDY9KhRo2JjYwDAwWHci3PbFL4RAMzN29hkWaVSAcCzX8VkBZ4tXaFQ4DjOZrM5HA7RSMhr5Dk52dUSSVp6mp2dHXlNQ0MDAOjp6b3gG76hoaHNC9p84UQTAQDKxsYXv8zXwW9XRB9RTattaPgkMACt8vQCTCZz5syZOTnZVeKq8+fPzZ//IQAUFxdJJBIAmDp1Ko1GUyobqqtvsFhGAKBSqU6fPl1WVsbhcNzc3IRCIUE0YRi9vLwcABQKRWxsrIkJ183NFQAyMzNZLCN/fz82m33r1q309FMKRa2Dg4OXl5dKpdq//0Btbe3NmzcAYPjwERYW5n5+fs/+L21qaqqpuUsQjba2PAAQCATFxcWtrnFxcXF3d6+uvgEA5L676uJsbW0xDMvLy6+rU/D5/IUL/x3fOnr0qEgkUjY28mx5GIYpFLVmZiPId4Dk5+e3efPm2tra+PiEiIjtVeIqofCCnZ1ddnZ2fn5+lVjcolINGTKEfL2Ojo4AoO7+uLi4iMXiixcvGhgY+Pj4qDcNbmhoOHkytbDw8oMHD3RptIkuLm2+aoQyNNbQYZycJnC5XKlUKhJdnTvXDwDS008plUpLC0sPDw8ASEj4Jicnm8fjBQYGAEBSUlJqair5jSqRSDjGHL4Dv7S0FACUSmVUVBSDwYiOjgaAjRs3crlcNzdXNptdU1MTHRVVJa5au3adl5dXc3NzdHSUVColiwYABoMhFku2bm29WGh1dXVkZARBEBwOx9HRMSMjIyYmRvMCBoMRHr7Z3d09IT6hSlwVGBTk6+urLo7L5QKAuoiysrLdu3cDwLx5806dOqVu4zAYDKVS6efnpxka6HQ6uROHv79fRMR2AJDJZCqVSiAQREVFWVpYKuoU5AK848Y5JiTE29nZVVRUREZGku+evEZO5p+ZkZkjzDE1NcVxfM6cuYWFBRiGmZtbyOWy71NSRCLRgQMHOuOTfT1pO9awcNmKTq1HH+Dg4EB+p124cPHGjRvNzc1CoRAAZnvPfqq52/jUnpc4jhONhJubm5m5eUhICDnyx+Vys7KyRCKRn5/fiwvV09NbsSL02rVrVVVVFy5ccHGZqFQqz5w5U1lZ+ezFmtttzp0798iRI0eOHNm5cxePxwMAjjHHwYH/vIJYLNaKFaE7d+6ytLBUKpXpaekAIBAIkpOTlUqlr6/vhQsXsrKyzM3Nn03b1NQkk8kqKyv3Rj2ZGuPuPhUA3N3ds7KyCi8XXrt2befOXQBQXl7WaiiE78CPjNwRGhoKAFXiqpSU7wEgPj4hJyfbxsa2oKDg118vHz58GMOwmJiYkpKSF79diPa0bTUkxMcf3bWpU6vS2zGZzAkTnI4dOyaRiMkhAxzHGQzGihUviqo8Hi85OdnOzo7sk8fGxpLHzczMrKysXloojUZzc3MVCi+kpaVVicVNTU0AoM2mu5MnT548eTKO459/8YVEIuFyufv271M31581e7b3qlUrAUAiEaubG3l5+QDAZrNDQkImT55cWVnZ5hSPzIzM4mJRdbWEbHTMnz+fz+fTaDRnZ2eB4OfiYlFpWWmLSsVms3Ecl8nkmmn9/f3JcJmell4lriKIRhzHMzIyyLNpaekAIJNJyddbUFDg5eX10jcN0UYv7lB4vDtPr7tvTakePvU0MDAgMjJCKpWePHmSbDI4OTm/+HYdhumTY5bUJkcIBIKAgACCIDjGHJaRkaL2FcaDcBxfvHhxamoql8tNSkp68R1NNQ6Ho35MEI0AwDJkGRsbvyAJ0URUV0sAgMfj+fn5hYSEsNnshoaGxYsXZ2ZmAgDHmGPM4WAY9oJMMP0nZ2tra+vq6gCgvLws7p9IymKxWCyWNvV/rQTNn0s5bS8ODWd+/K7bJ7eNf/tdzadMJtPZ2Tk1NTU5OZnsPPv7v6RHoCWCINpsCGzaFI7j+NSp7ufOZQHA+vUbyM78S6lUqtjY2MzMTDabvW/fPi3jQivkXt6KOkVFRYW5ufnzmipz584lByY0yeVyoVCoVCpPnDhBtgtGvjFSy0LNzc2Kiq64ubklJyerO2vknQ5yr2CE9Ob4CZTT9uLQ0DN99tlnmZmZZFywtLDk85/be2+TgaEhABAEIRQKq6urjY2NyTYFQRAxsbHjHMaVl5fJa/5tcpPf2wRBZGdnEwRxVes5f/v3HyDH+TjGnLKyskOHYgDA3n7sK8UIT0/P6OhoHMc3bdr0s0Bwp6amvLxMy7QKhYIMJWKxJDc3t6KiQlGn1a9RBg4c6OzskpqaKhQKw8LCpk6dymKxxGJxZmbm7NnvTJs2Xfv6Iy+AQkMHc3BwsLGxLSq6AgBvubna2Ni8UvIlISFnz5yRSqUrVqxgsVjh4eF+fn48Hq+0tDQhPv77lJRW43zBwSHLly/Lz8+bO3cuy5ClbnW/FDl8CABV4qqNGzfCP3coXik0ODo6RkZGRkZElpaWlpaWWlpYYhim5YwMCwsLe3t+fn5eePgmFotlZmb+4g6FGo1GCwoKlEjEycnJMTExycnJAEAQhFKp9PT01L7yr4OklO8/+JjiyrHahgZyABl5KSaTGRcXW1BQCAD29mM1700EBi7w8fHBMDo5eyckJMTNbaqJCWegxlY3jo6OQqEwNja2urra2tqGz+czmcyCgoKIiMiKinI3t6menh75+Xl1dfX29mMBYOnSJSYmnPT09JaWlpCQEAC4evWaoeFAsq2xYsUKgmgyNBwIAGZmZtHR0QTR5OzsDACffbasrq6+VeXJPFeEhgKAra0NAFhYWGwK31hXV08+BQBvb29yagbJx8fHx8dHPXczMDAIx3Fd3Sd/V2Fha9XZtsJmsxMTE2JjY2Uy2bhxjkFBgUlJyQDg6ekBAPb29pGRO8gH5PXkayGzYrPZBw4cCA4Ojo+Pr66uBgBraxt/fz87OzuVShURsZ18f9A0h9y8QsqhoV9Lw33N548ePVY9fJj367Xp059qmD1W1vecKU8FvxVP8vS5/tvFnjDWcOZM5uv886ply5bR6XQLC0sMo6elpZGDrykpKT3tTsGsWbOivwzr9j+YLrZ09fqY//tG88i5c+dsRloy9OkYnUbT0enfv9/z0qIOBdIucrk8NTWV3EhdqVRyudywsLUzZszo7noh7aVtaPg8LGxX+JpOrQrSG504ceLKlStlZaV1dfXOzk42NjaoGd83aBsa9h6MRaEBaZOjoyP5wwekL0EdinYhiMakpGQMo3d3RZCXwO/IX35Rn/Ou938pp0WhoV22hIWWXa9Ek2x6vo8DPnjdxiABwH3qVMppUWhoF2+vGd5eaMgN6YPQKk8I0melpZ+inFbb0LB1fRjlMhAE6RZZ2Rcop9U2NKwNW0u5DARBeh3UoUAQpA3ahob123Z0aj0QBOlRtA0NWq4CgCBI34A6FAjSZ/13JvXVK1BoQJA+a6bnTMppUWhAEKQNKDQgSJ+VnZNDOa22oYHcCABBkF7kx7SfKKfVNjTs3hJOuQwEQXod9POqdsk4L2xptRcFAmBhPny0zajurgXSLtqGhl3R+z4PXtCpVel1ikvK12/ZNXPW7O6uSI8Tl3Ds5+T47q4F0i7ahoaw9RtRaGjloUplOcr62Y1nEddJzt1dBaS9UIcCoa6ysjIz8wwAeHp6aLNDJ9LFXKdMopwWhYaOgeP4O+/MBgAHBz65lbtKpfL19a2tVQBAbu4l8rJ58+ZVV9/QPNJRSkpKFi8ObnXQ398/MDCg89ZxraioCAtbg2GYiQkHhYYeaM5s6lOeUGjoGHQ6vampqajoCrlXNQAUFhYKBALycWVlpZWVlUqlunjxolQqXbJkSYdXgCCI/Pw8AOByueRTHMevXhWJxVURERG0ztk3mNwzqjNyRjoGrY2Ny7WEQkPH0NPTc3Z2Kiq6IpfLyECQkpKiPpufn2dlZVVYWKhQKBgMho+Pj0qlunTpUllZuYkJx83NrbS0VCIRT5s2XSqVkjtfkftBGhsPmTZtOrkVVUlJiVB4AcPoHh4ely9fFoslGIY925KP8wqMyQAAIABJREFUiNhubm7x4MGDNWvWlJaWpqSkrFq1ysDAoLCwUCwWKxR1AIBhmIWFubOzM5vNVqlUhYWF5J5XLi4T8/PzamrusliGPj4+6q13VCrV6dOnxWIJmdbNzdXOzq6r3lqEuoL8PJe3KQ6Taxsaln4cRK2A1wSNRuPz+QwGQyqVkoGA3MeJJBJdnT//w5SUFKVSyWaznZycmpubjx49eurUKY4xZ+KkidnZ2Rgds7XlxcTGfp+Sov4qZjAY9vb8U6fS2Wx2cXFRWNgaALCxsS0vL1MqlQwGIzoqKjklWXOtd1tbHvm0uLh448aNUqm0srLS3Nx8+/aIwsICMmcGg4FhWEBAwObNmwEgJSUlISEBwzBra5urV0VkzpmZmSdOnACAW7duBQYGXb0qwjAMo2PyGrm5uXlCQgJaYL7nO/7DKcqhQdspT/ujo6kV8PqwtrZmsVgAUF19o6SkpLS0lMvlurhMBACR6CqO42SwcHNz09PTA4Dm5malUlklrhIIBBgdYxkZAYClhcXixYuzsrJOnz69du06AMjPz9u7N4osQqlUKpVKOp0eHr7Z19eXTJ6QkKBZjcbGxoaGBplMlpMjBAAul+vg4KCjo+Ps7BwZuePy5csnTpxwcnLGcTwlJaW2tladM0EQRkYsX1/fceMclUqlUCiUyWQqlWpTeHhOTra9PT8zM/PipYuenp6lpaXBwSEqlarL3luEmoct1D8j1KHoMFZWVtbWNlKptEosTktLAwBra5vAwAX5+XnVEklBQYFcLgcAN7epNBqtubmZTGVpYblv/76xY8fW1NTY2Ng4OjqqN4PS18c4xpwqcVVFRbm6FAaDsW9ftKOjI47jtbWKnJzssrJyHMfVF+zbt4/BYJSWlhUVXWEwGHPnztXT0zMxMVm5MlQkEolEIoJosrW1ycnJJghCPTICACwWKzo62srKKjc3d+bMmTiO4zgulUovCi8AgLHx0IKCAgDgcDgAUFR0paampiveVqSbaBsaYg4fXhIwp1Oroj1yI+ZZfoE6etruGd8ZiEZiONdE/dTExIT8L3ft6rVqSTUA2Nra+Pj4rl27Tl4j/zE1FcdxNpttYWGumQnLyIjs85uamgLA6tWrU1JSFAoFx5gDAIo6xfNKZ7PZZuZmAFBXV6f+8geA1NRU8gGXyw0ICFy7NoxGo1VWVq5YsYL8v80yZD0vT3LrSisrKwzDyK5HTU0NWYdTp06dOnUKANSdHc2wgvQ92oaGZau+6DmhAQAYDIbgxLfmw4d1Yx1+E/2+I+apOX9OThNiYmLKy8vIpzY2tkwmk8/nCwSChPh4AOBwOGZmZs/LMDs7OzExkSCIxYsXb968uampac6cuTk52W1erFKpiMZGADA0NGQwGArFkyCSmJjg4DAOADRHCoVCIXm75PTp066urhKJZOzYNja2f5aBgQGGYQCwePHioKB/x5sIgrCysrp69ao2mSC9EfpRdkeaNm06m80mRwTYbLanpwcAhISEqC+wsbExNzd/XnKxWEzemDAyMnrw4IFIJKqpaWM7NpFIlJubu3//gbNnzwKAs7Pz4MGD1WdtbXl2dnat7iCIRCIAYLPZxsbGcrlcKNR2DXIej2dtbQMABQWFFRUVhoaGGIZVVFTs379fsxeD9ExvOvIpp0VjDR3JxMTE3NyC/D/D4TyZBeTq6spms8mD1tYv2kja2dkZwzAcx6Ojo5OTk4lG4tkOhVKpDAsLwzBMoVAolcpx4xyDgxe/dNrCzJkzExIScBz3m+sHAMYcjpaviM1mh4dvqqgoz8/PW7y4nMPhkLXCcXzjxo1aZoJ0F7851Fv6KDR0sODgxZmZmQDg7OxCHmEymQEBAdXV1QDg7v7vHoTkBWZmZnT6k9107ezsTp48uWPHjtpahZERKzQ0NDs7p6KinM//N/YzGAw/Pz+5XC6Tya1trI9+/TV5nMVi+fr6kg+erZWrq2tk5I6TJ08SBOHs7BQUFBQeHs5gMIyMjPT09Ph8vq+vr4GhIVkTOp3u5eWlVCoNDQ0BYPLkyVVVVZs3f1lQUEAQhKEh8B34/v7+VlZWMpmMLHTo0KEd/k4i7affjo2a+7U03Nd8/ujRY9XDh3m/Xps+/akFJ/v37//wnoRyMR3rN9HvU9+Z+/svWT1hrIG8+d8Fjh37NiAgkMFgCIXCHj6nwHWS84WfuuhtQV6guKR83JS3NY+cO3fOZqQlQ5+O0Wk0HZ3+/fs9L622Yw3z589vVx0RBOly3yX/QDmtth2KxLhDQNS+/Dqk0zg4jNu5cxcAGBsbd3ddkN6hsZGgnBaNNfQaz953QJDOo21o+DY55UPvt19+3WtGIqk+duzb7q4FgnQ8bUND4MeLPvTuKcOQPYT9aFu/2Z7V5X90d0V6nPWrl3d3FZD2Qh0K6mi6uquWftLdtUCQ5xptS33xXjQbEkH6rKAF/pTTotCAIH0WxjCgnBaFBgTpsyr/rKCcVtvQQM6HRRCkF4lLSKKcVtvQcOIbtOMIgvQyyr/rKadFHQoEQdqgdashLa1T64EgSI+ibWjwmx/QqfVAEKRHQR0KBOmzLC2eu9rgS6HQgCB91pKFH1JOi0IDgvRZ+gONKKdFoQFB+qzb0jaWHdaStqHBc/rUl1+EIEhPEvfVEcpptf3l5Q/fJQI8olxM33NLJj919mLj33XdXZGeyMF+jPtk5+6uBQI4Tv3vU9vQoM80RAvAaTotOFslr7W1te3uivREO6MOjXcYM/D5y+ojPZ+2oeFsjvBtF/tOrUqv4+7u7uXl1d216InST37f3VVA2kvb0DAvIOju9aJOrUrfUFJSQj7ojHUcV69eXV1dzeFwDhw40OGZU4Dj+LJly5qbm/39/dEP8PoYbUMD2sXsxWQy2Z49e9LT0qvEVeQRLpfL5/PJvadXr1594cJFDsf49OnT7SnlwoWLRUVXeDzes6dUKhXPlkc0PbWC8FtvvbVy5crO27SitrY2OTkZADQ30UF6jkEaOx6+KrQAXAdoaGhYvXp1cnIyg8Hw9fXlcDhyuVxULCooKJDJZOQuT0VFVywtLDu1GkQTIZVKeTyesTGnrq6uqOhKcnJydfWNU6fS2Wx2pxaN9EwrPg15+UXPgUJDByguLia/PMkdrsmDcrk8LS3dyMho/foNlwsvA0CVuCogIMDAwGDv3r03btyIjY2tqHiy0oaBgcHChQvd3d3VeWZnZ588eVIikQDAUGPjJSEhz375HzoUc/lyoYGBQXBw8KhRT1YBnD3be+XK0Kampj179kRFReXn5wkEP8+f/2Fqamp6erq69Wdvzw8KCiR35RQIBD+mpjL09WfOnFlcXFxQUGBgYKDZ3FCpVEeOfJWZmQEAGIbNnv3O/PnUp9khXYZt1MYuh1pCoaEDNDc3kw8uXLh44cIFa2trBoMxYsSIVatWAsDVqyL5PxteCwQCDofT3Nwsk8kSExMBAMMwgiBwHD916lR0dPTChQvJ/4dhYWvI7bYBgCCIFpUq5v/ZO/e4Jqv/gX8Sx54NgW1ibIgxLsrAC7eUgTckL4ChSJlYXlBLxH4qeIUsQ0tFU9H6BmKh4CWH5QAtGGowBLmYCJgMMIGhxEbqGMrGA5P6/XFsTUCdAwTxeb/4Y5zP+ZzzeW6f59ye84mO1qyUz+dHRHwuk8lCQ0M1o29TKBjS8vPzi4qKAoCamlsKheL06dPnzp3DMAwA5HJ5ampqenp6erqAwWBUV4vjjxwBAB6Ph+O4UqkEgIsXL5aXlxsYGMhkssmTJ4tEIjMzM1tbjlAo5PP5xcUle/bs6fEzS9A1ZA3ywYZDdNPVdsmTm5u7bhW8Cri6uqL+/9Wrhb6+vlwud9as2eHh4Tk5OSqVatOmTa6uXACwsrRKSkqKiYkxMDBgs9lRUfuSkpKEQmFiYqKVpZVSqczIyFAoFDdu3NgfFaVUKqdM8UxISEhKSoqI2DpmzGPTQ5WVlfv2RclkMh8fn3Xr1mlG325uxisrKzMyMnbt2gUADAYjICBAX1//gw8+SEhIEAgEAoEgImIrlUotLy8TiURqRSqVOmv27MjIXeHhn1Cp1Lq6Oh6Pp1KpduzYIRKJfHx8hELhhQvnkW5CQoJ6wJWgzxL19dc662rbauARuzw9GQMDAx6Pt3v3bj6fr1QqZTKZTCa7erUwPT09Pj5+woQJpqaPAklPmDAB/TA3N7ezsz958iSKoI2aFffv329paREI0quqq8zMzA4c2I+mOSZMmKBQKDSf/6CgFXl5uW5u7gkJCe3GEWJjDybyeCjOPQqr/cYbb5BIpMmTJycl8RMTE5VKpbpp8Ndff6kVMQz74P33PT09JRJJQkK8UqnE8ZZbt25lZV0EALFYvGPnTgD4q74eAGQyWUVFhYMDMZ/dp3kRS57MWcy+teTp74crQsL0qbrHCO8i1TV1u3Y5od8qlWrkyJEJCQmRkZG//nohU5h1Lj29rq5OJBIJhVmdThDExcWFhIQolUorSytTJpPNZqtf4GJxNfqhOf2p6RdEIhEag6iXSlHYe01wHMcxHMMwNzf3OXPmrFgRRCKRamtrg4ODU1NTGQwGk8k0Nn5aF5RMJmNkDP2Wy+XyhgYAEIvFcrkcJdJoNBqNhvomBP0VbV3DpfzL4x2H96gpzwWNYbJ5w2ozZq8FhuWdPqP+nZ2dLZfL3dzcWCzWggULFyxYiALeA8CTnp/9+/crlUp/f//Y2FgGgzF37ly1a+Bw7AAAx/GcnBzUylCpVPX19eoouAwGIzY2ds2aNVXVVavXrPn6wAFNx7FmTcjHH68EABaLpU68du2aUCgEgKiofXPm+BsYGAwbNqyuru6Zh2lqakqj06EavLy8IiIi1C0UmUzGYDBQ04OgX6KtawhYtPj2tdweNeV5sbQYZs5i9lbtDNp/O/zX1f0ZGrrW1pZjy7Gd4jG5vv4OmrBgMBh2dhwAwCgUAJDWS1NTU3Ec9/X1RW/ghga5RCLJz8/Pz89Xl+bhMdnMzKyuri40dO2KFUF0Oj0zM5NMJqvnPphMpr+/f0NDQ0hIyKnERHc3t2XLlqnVKRRM0ykgcPzReofGxgdisVggSNfGLwCAubk5l+t69WqhQCBgMpne3t6mpqZCYZZQmBkcHGxra/v8Z47g5UBb16DlnfRqQqUaAEBJSXFeXi4a6gcABoMRFhaO5iNn+vicSUmRyWS+vr5mZmYzZszw8/OLjo7OzMwYM2aMlaUVjUZTn+GRI0fu3LkjPPyTq1cLly9fjhIDlywBANR9wDAKAMyYMcPBwTEvL3f//v1cLlc9edkptra2qM+yevUqKpWKGiag0aihUqlPauB88803YrFYKBRGR0erZ0moVGpwcDCZTKZSqUTboc9Coeje6SMmL7sBf39/W1vb/Px8qfTRJCWNRudyXdWjDL6+vhiGFRUVIZG+vv7WrVs5HDu5vAEAvLy8ampqqqvFlpZs9PAvWLDQyclZIEjH8WZUgp+fn4GBwYoVy+fMmUOjGQOAubl5ZOTOgoLLKAOJRAoLC8dx3NV1XEcLR44cGR8fLxAIAIDJZM6ZM+fkSR6O4+i1z+W6RkbuAgALCwsAIJPJYeFhcnmjg8MYpH727NnU1FRkPwBgGMXVdZyrq2tra2tk5K4nVUrQ63yybpXOuq89VNzT/P/vv/9RtbXl/nZt6tSpmukDBgxou9tXImVfKf59zqKgvHR+L3YoYuKOWtg7EZ9Xdcqst2ecOHiA+PKy9yFRXnt8XcOFCxc4w62oFDJGJpH09AYMeO1JqsQuTwQE/RdVs86q2roGx1Hd/x0hAQFBj7J97/901tU6RM2JeJ3rICAg6BXqJLrvDantMKSV9Yi+teSpD1BaUtR3lv3I5XIaTfdvabqXNlVbb5tA0FW0dQ1/iGvMafqUPvMk9Doek8annsvIy0jvbUOgRfUwJy//QbPK0X44e5h5b5sDALDgPX9iDLIv0Prwoc662rqG3ZE7wkJWWrPf0LmmfobdcGu74da9bQUAwJXi38lGDC8vr5RTP6z9+EPCfROo+ecf3Ztv2o41UDBKTS2x6qnPoXr48Hx2npeXl4uLi+kb1leKf+9tiwj6Cs04/tprejqra+saHMa5FZUQt12f40JWjr4BfcyYMQAw3XPyxUsFzTj+TC2CVwEKhn3y6ac6q2sdKTsgoOzGDeK261PUSqTfJSQuWRJIIpEAYLjdSAvOqP/FE7s5EwAA/KNHsrTW/ZNIbV2DgYHB0GHDKsW3dK6JoNvZfSD2i8hdmvs1LFiwMC0t/Xr5jV60iqCP8NqAgTBA9y8hnmM1pOv4Kbf/JIYb+grnhdkcO7uOW9of/eGHBF6S/MGDXrGKoI9QK5GuCt+qUCh0LuE5XMO0adOmzHhb55oIupFmHM+5UjTD16+jyNzc3OnNN4XZ+R1FBK8OYVt3eXt7G3RhCvk52hskEolEokNTW1cWZhN0C7ykn2X3cYlEIpFIOkoxA6OfEn+YOX0KaSDxZe2ryN5vvwOALn7799y3jqx1QOz/DgUtnMegGXelYoKugJHJ5H9ak3nH0L+1EmlVdc0kd1d1Bss3zB4+fEi4hleQtF+Fv5eVxx5O6GI5z33rGBoakjFsx95vPt24hmZo2MXqCXRjvr/vfH9f9b+/Zl/inT675wvdZ6oI+geqhw8vFd9YtXZTV7oSiOf+KJtEIgV9HMKytJ09f2ltFz7eICAg6F7+0SORaKzw8LBuCWWoS4PTwMBg3bq1dnac4E3blgXM8fOZ1nU7CAgIdED18OGDJkXx9bKWFtx7dgCQSAak7ilZ976oj48Pl8utr70FGB3a8LIykaKpiU4zNjCg4nhLW9t/i7fJZH3TISakgQObcbz+zr1ORaqHD+vv3G1padVGJJE+ip7QUQQAZszX0XcEtRLpk0TSO3cVisd2NHx9yGD0RdBfd+89aFJ0KpLJGxvkj23sP3gwHfWqOoroNGM0HPMUkfzBg3v3GjoVPVAo/rrz2AZchoMMXjcZ3Knonuw++tGM43XSvzRFBgZU5hCTTkVksj7aJusp16UZx+/cvad62NVLpqenZzpk8DOvy6tzybS8Lh1F6utSJ/2r/ObN4hLRA6XS2NBo+ix/IHWTVwCALu4NyWAw/l1vM6j6TlNRUVFhfl7HbKPsbVevWWtCGyy+Xb5v7zf3NMJmWFux165bz2INqRVXRx2Ira37r4dibsYMXb/Okm15VyI9EJtQWfXf9nPyxvs4jgNGV/xDOZTAuy6qUIuoVCx0Y7jLmGGKJsWxxOTfrpZoWrJ2U9gE1zfh4cNjp4/m5T5m6v+FrvWc6A4Axw7/eEmYoSlaEbxi+rSpAHDyh7O/ClI1RUuXLnn77ZkAkHz6559TftEUzX8/YO677wKA4Odffzr1k6Zojv+chQs+AIDMC5eOHT2uKXp79syli5cAQHbOle8PxWmK3pr21sfBwQBw5cr1b77+VlNkyBhMHjgQBg0pup63Z/deTdHYsU7hGzbBwIGlZVf2H9ivVP63nnX0GLuN68MMBhlUiUt37/nmwf3/rsuI4Zbr14eZ0AbXSisjD3zfUP/fdRnKttwUusZ8GKv+du2e/8Xeuv2fiG7KDFsXOtzGuvHOvf99f/TGH9X/WWhkvHH92pGjhimaFN+dOPX7tTK1iErF1q1f5+ToBA8fHvvp0G+/FWnav37jOneuGwD88N3RnOzHLtmq1R9P8ZgCAD8e++nX879qij5cvszHyxsATvPOpKWmaYoWLlowx88PAH5JPpfET9IUvfveu+8HBADAr4Kskz/wNEXq65KR+dvxI4c1RW95+Xy8fCkAZOf9/n3MY8EHx3t4rlu9Ejq7ZG7ubhvWrwOATi6Zs0Po+vUYRim/WbR3T5TmJRtlb7t23QbaIJr4dvlJHp9sxJjs5Wtvb29oaEjqVr8A2u8N+c8//3RvxV2hsLDQz88vLy/P3LxPfIPc62RkZJz44Ye477/vbUMI+hyvvfbY7o/E3pAEBARdgnANBAQEnUC4BgICgk4gXAMBAUEndPNCWplMdjjhRFnpf/MCLCYrIuILAJDeafj8sw2amakUSlTUNwCAq1RrVgW3Kyr24KNBtaAVH7YTrQwOBoDm1gHLPmwveorWU0QHvonBSCQACA1dpWx+7AuRr3bvNjJiAED45s2ye/Waok/Cwy0srAFg167tVdXVmqLg/1vrOMoeAGJjo68WXdUULQkM5HInAMCRo8fyc7M0Re/4+0+f7gMAZ87wf0l9bCrEw3PG/PfmAsDFixknfvhBU+Tu5mZpaQkA2XlX4+MeGyG3t7Nfs2YtAFRUlO6LitIUWVlabtq0GQCk0trPIyI0RXQaLTJyDwA0PGgO29A+/JFuZ7jbRV8fOEAmGwBAWNj6hn9DeCO2bd2OQgdHRHwmkT72jUnI2k/sRlgBwIED+0RlIk3RyuBgBwcXADj43fdFhY99nPbB++9PmuQJADzesUzhY5fMa+acOb4zAeDcudTTfL6maIrH5ICAhQAgzMk9efyxSQ1nJ+egoJUAUFJSGB0ToylSX7KamsodO3dqitSP0n1lc9KPP9ja2tLp9I6f3nYXXXUNMpmsuLj4aknp0mUfDhgw8K97ikGGxn7vBJBIj4K7YxjW8KAZAAaSSHMDFj9W90A9JAKAdiIAeKqoBQAUCsVzaj1R1Iw/bMYfAsDsd+Y/fPjYdnqtf+sjxZm+fvjjO9mQqQwkmuTp7fL416/GRjQkch430dp2tKbIxNQCiZycXYa9wdYUDTUbikRWw0fPDXgs6BDTlIlEZsOGt7PfxGTwrVs1eOvfTFNmO5Gx8SMzqEavtxMZGBg8OiF6Bu1E6kvW1tbWfZesm0UPmv9RtjYDgNfb/u0u2T8DHl2yGTPntPsqeZChIRK5T5o20mGspsiIzkIirpu7zfDHwvyaDWMj0SgHrgmz80s2jM1pZ6T6kpkPHfak62JEZz3pugzQN3rSdZE3NNTfkefmxdeIawYM1J/tO9Pff07HGMhdRPfJS5lMlpSUVFxczGQyXcdPGTVqjJ6e7hvRPRclJUVLFs47m5oxlJi8BACA7Gzh6Z9+3H/g22dnJehf1NRUX7lyRXb3zsb16zr9mE7nyUsdWw2lpaVr1oTMnOW/bPlq4vkkIOgtLCwsLSws29ra7iub9UkDK0TXuuUDCtDZNeTn538asWPkyFHdYgQBAUFX0NPTa2uD5raHERERXC43JCSkF768BICmZtUs//cJv0BA0NeIOXRUfl958GBs14t6PtdQWVl5/PgxNGJHQEDQ1yBj2PKgjwuLSo4fP9bFop7DNahUqh07dw7EiM2dCAj6LjQ6fcvnX4aHf9Lp5oDa8xyuoaCggE6jeXh4dqU+AgKCnmawicm+rw/eFHfJNTzHMGRWVpb7pLde2AwlAQGBznh4eFKwLq1aeg7lqurqd95b1JXKCF4WNLd1IegivfU2bVU9VA0EfX193dS1dQ21tbVUA+PBJia6VUPwEvHTj7wGmay3reg/DHvjjWnTvV+8g5BK61MvZy9cqOPrXFvXQKfTlwd9rFsdBC8Xh7+L2bo1wsjIqLcN6Q/cv3//1OnkKVOmvnjXQBqoL8zO73HXQCYbMLt7kTZBn4XL5WqG0iTQGZlMxn98Z8AXhqGRUePjH549F9q6hrIbVYRreNVA3851KtLX158wYYLOJWdkZMTFxQ0cOHDLli3W1tYSiaSysrK19b8NY/X19e3t7XV2TwqFoqioqBsL1AaZTLZq1SoACA4O7srJ6S709PTg79Zn53sC2rqG0NVBJ388o3M1BC8jIpFo3rx5nYrYbMvffrusc8nV1dU8Ho/BYKxevRoA8vLy1qxZo/lhK4ZhXC43IiJCt4+OpVLpksAl8sb/3pkYhjk6Om7atKnnHtqGhgYejwcAnp6efcE1AICRse6rkLR1DRUV5TrXQfCSQqFQbG056HdFRblMJrOytDJlMgGAxWJ2Y0VKpUIulyuVSnt7e2NjWr1UWlVdxefzGxrkFy6c161MeaNcbXBjo1wkEtXV1RUXF9++fbsbLe/HEDERCZ6Ii4tLTk42ACgUCkcHR5lMZsFmaz6rCoWioKAgLi7uxo0/cLx5nKvrO/7+06ZNQxufSySS1NTUkyd59fVSDKP4+c328/N7SiuASqXu2rXLx8dHoVBwOJy6urrGxkf73/P5/NOnT9fU3GpslBsb07hcVz8/P/RmTk1NTUxMHEgirQ0NrampycjIWLJkCYZhSDEkNPTjj1cCwPr166Oiourq6lJTU6dNm3bo0He5uZeQ2aamzClTPNS2xcXFXbx4cciQIZ6enmlpaUKhkMPhBAcHe3o+WuxXWFgoEAiSk1NwvJnNZs+b956Pz8y+OTTzwaL2W+BoD+EaCHREpVLFxydERHwuk8mcnV0wjBJ/5MiZlJTIyMhly5ZJJJLly5cLhUIMwxwcHCsqyrds2cLj8Xg83lO8g0x2Lycnp6TkmlwuZzAY4eFhKH3fvqiaGrGtLQeAVlMjzsvLTUhIEAgELi4u1dXi48ePU6nUayXXysvLlEqlu7u7g4NDu5Lt7OzUvx88eJCUlFQjFluw2QBQUlKcmZmRliZAfrCsrAwVmJKcgpoeIpFIKBQWFRWZm5tnZGQELQ/CW3Aul8tkMpOTk4VCYVBQ0J49e7r/FHcZZ2fdP9Am9oYk0JEbN24cPBgjk8kWLFggFGYKhZkLFiyQyWSROyNlMhmfn4T8QlTUvrS0VIFAYGVpJRKJ2u1Dp4lSqQwOXunt7b169SoACAgI8Pf3R6LY2IPl5eUpKcnp6YKTJ0+amZnJZLKTJ09q6gKAl5eXv7//66+/rlmsTCZLTU2N3BkJAGZmZj4+PgwG49ixo8UlxWlpqUJhZkJCAgDk5eWWlpaqtWg02q7du8Ri8e7dX1GpVJlMJhRmAsCOHTul9dIVK1bEx8fv27cvJCRUqVQmJiZq6vb5dD+EAAAgAElEQVQPtG01WFiwn52JoPe4d/dOSUnRs/NpAY43PzsTQH19vVQqBYBJkyah3QE++ugjPp9fVV0lFAolEolSqWSaMt3c3EkkEpvNdh/vXlVdVVFeIXvyeioPDw/UMs/IyIiOjhYKhWlpaebm5hiG8Xi83Ly8ywUFACCXywGgpaVFrchgMM6cSVFvglZZWYl+REbuDAvbhByHmZlZWFg4AKhUqn+dV6ZYXKM+3sfGQcmYra2tgYGBq+s4DMNQCaWlpSUlxUqlMjNTiHYDrSivQIoNDQ3dvgVb1zl+LGHVyo9009XWNXwV9Y1uFRC8AKwsbUbZ22ZnX3yRleI4jp4lOp3eTtTQ0HD79i0AwCiYWjqQRAKAeqlU85HWhEqlBgcH+/j4AMDevfs2btwgEokSE0/5+c0OCJhfXl7GZrM9PDzIZHJKckpVdZU2RjKZLEdHRwCwtbX18fFxdXUFgIKCgtDQtVevFrq5uU+ePAkAxGIxevg7QqFQ1CMX9fWP9g1ubGz8q74eAOh0GmqGdDwJfYGiwnyAHnYNo0eNJLZp6LMMNTdfHxbx7HzakXqG/+xMABiGodfp1atFqOUvFlejB4zL5aIGhVwuF4lEEyZMaGlpQc+SBZutzdvV1HQIlUpVKpUNDQ3JySlXrxYyGIytW7f6+vreunUrK+siVD+zDACAwMDAwMDFAKCvr6+OCpmVlXX1aiGVSo2NPThixIjW1taEhIQnuQZNRowYgX6McRjz1e7dZDJZU4oOud+grWu4dfvPIUNMe9QUgq7w4tfh2tnZcbnc1NTURB7P2dmJRqNtjdgGAFOmeI4cObK+vp7BYNTV1cXExACAQJAuFAoBwNvb+0kFKpXKmJiY03z+/cZGoVCoVCrNzMzmzPFDy65wHL96tcjCwkIgEIjF2jkGAADouBUahlFQdUJhFo7jJ0+efEofRxNzc/PFixdHRUWdSkykUihz5swBgIyMTKFQGBm5sw92KLqCtq5h8QfvpZ7LenY+gn4KjU5nNDIoFEydwmKxIiIimpvxgoL8xYsXo0aEj49PZGQkAHh6ekZGRu7fv//MmTNnzpxRKpVWllaBSwJXrAhC6gwGQ91QBwAajYZhWH7+owAQqKjQ0FAXFxczM7MpUzwLCvIPHNifyONx7DhstiUAqF/a7YpSl/CkCUUvrxlJSUl5ebmrV69CVrXLyWAwaBodBBqNph6G+OSTTzCMksjjRUdH83g8HMfRFAzqUKByyGQdP3bsU2i72fyAAQOkd5terG1PhNhsvkfxmT45PV3Q7mmRyWQtLS1kMrldukKhkEqlFRUVAGBhYcFmszXf0jKZrLq6ur6+Hi1GVMd6VygU9+/fBwATExMSiaT+VxMjIyN1UepanJycjIyMWlpaWlpaUAa1ruZLW6VS3b17t10h7Q5HJBK1trZaWFi88cYbKDMyRn2kyFqVSvXgwQN1dajwBw8eFBcXI3+BQsUYGhoCQMdKZTLZxvDPIiK+JHdwXi+AsA2rDsfFaab0+GbzBK8aT3oDGxgYWFtbW1tbP0mrU0UDAwPNJ7bdv8+s5Zm6JBLp6c17BoOhuZZZM3M7g0kkUqcp6hVQmvS1PsW77y3QWZdY10BA0G9xcx+vsy7hGggICDpB2w5F31wiTtBDKJXKdjNzBLrxpEUcL4YfT/GWL+vhrVyOnvhRtwoIXjqMjY3379+PZvgIusjDfwYYDDIY+O+SihdMfm5Wj7uGiRPHE0ueXhGivo5tacWfnY9AOwYZGL6M+7Br6xrk8qZemX0hePEQ23kRgPbDkIEL3+tROwgICPoU2rqGzMyMHrWDgICgT0FMXhIQ9FtmznpHZ13CNRAQ9Fs8Pac+O9MTIFwDAQFBJ2g7Q0GlUnvUjpeOtra25ubmhypVbxvyghhIIg0aNKi3rSB4Ps6eSV70gY4TCNq6hsNHebpV0F/57bf85NM8Oo3W24a8IBrk8g+D1tjY2PS2IQTPgTAjvcddg7fXdGLJkyZ/1dW4u7mhzTxeBWJiYhobdY+SRvDSoa1raFURfqE9ZLJ+1z8tUSgU6MfTv0p+kXQ0SaVSEeumXzWeY5enw0dP9agpLy98Pr+srKxTkZeXl4vL02IBzJjhVVFR7uDg2GmYpoyMjLy8PM0UJpPJ5XJ1C/emJbNn+5WUFNvaclBcBoJXE21dQ2pqao/a8VJz8uRJPr/zrVYxjPJ019DYKJfJZOowTZooFIqkpKTo6GjNRCqVymazY2Jiei6qYmNjo0wmI7oPrzjE5GU3EBkZefny5cuXL+/e/RUAUKnUQ4cOoZQlSwLh38AHhYWFhYWFT9mhVCKRFBYWqjrMejAYjLNnz16+fDkgIECpVIpEotDQtUikWXI7RZVKpU6prKyUSCRPqrG0tFTdiSDoT0zzmqWzLrEBXDeg3pisrEyEftja2mo2FpydneVyOYr4SqVSORy7rVsjUMAFhLyhYe7cuQKBAG2vumv3Ll9fX7UUwzAnJycWi/XNN9/U1NzKy8sVi6tlMllMTMzBgwdRPAi0//KkSZO++eYbBoORmpoaFBQEANNnzKgor6ioKMdx3MHBMTb2IOqMpKam7tsXVSMWo3DSNGNaWHjYokWLSL30+TBBT+Dl9cT9u58J0Wp4EbDZ7BUrViQmJm7bto1pyrx6tXDHjp2ar3F5o1xfXz8wMNDK0qqqumrnzki0AWk70HapAMBkMtE+pdNnzIiMjExISAgNDcVxnMfj7dv3KHJcXV1dXV3dRWEWi8V0cHAEgLy8XBRXrrKyMigoqKSkOCQ0NDExMShohbReGhERkZ1NDC4QPIJoNbwIzp49CwASicTU1LShoSEqKqpeKq2rq1PvMspmW544cQIAtm/fvmXLFhTrxcjICElxHP/22+iSkuLysnIUtSkwcAmJRNq8eTPKUFlZaWFhUVxckpmZgcI9IKhU6ucRWxYsWFhZWbl4cWBeXu79xkYA2LFzZ11dnZub+/z5AQwGw8LCIpHHq6quKioq7nQ3VIKXFIEgbf7c2brpausa4o6c0K2CnmDAgAEAkJl5wcTEpLdsKC4uRhHTnolEItmxY4cgTQAA8ka5ZmDFjvj5+W3ZskUmk5WUlDCZTJQok8kOHNiPfltZWs0LCFi3bi0AZGRk7Nixs6KiHDTCzLWDSjUAACaTyWIx1YkoUmNFRbnrOFeUIq2XEgte+x/nBWd63DW8O/edvrPkiUTSp9FoeAve1NRroTGUzVrFjAWATz/7LP7IEXt7+61bt9JotBM//BB/5MiTMqOoilQq1cLCQp3IYDAiIyPpdDqGYaamphwOBwAqKys3bQq7erXQx8cnODgYAPbti9Ly23k6nQYATCZz06aNyHcgbG1ttTwogn7Py9qhMDamvT1zdi/uR6Sv97eWQYouCrMAgMPhoMCQ7dYpaKJSqeLi4gCARqPRNJZgo1BO7WIcVFRUoPhuXC4XjWiiEHLaYGtrm5qaKpVKGYzB6tHQ0tLSoqKrPbpiguAlQlvXsCQwMPrg9z1qSn8FBY8XCoVz584FAHXsNk3E4urRo0fjzTgaSpg3b566N/EkLCws2GxLmUx28OBBkUhUX/9XQUEnJXfKJ598UlxcggLSsdmWI0YMv3HjD6lUEhIS+pwHR9Bv0dY18H/iEa7hmZiZDUVNA82Q6tu3bx9IIl0uKCguKp7tN9vR0bG4uJjJZKJ2gYeHB4fDYTKZMpns2rVrU6Z4TpnisXTpUgMDA5VK5ejo6O/vb2RsrB6SVDNixIitWyPQBGRNza0VK5ZzudyKinLUEzEyMkKWvP766wCgr6/P5boBABofYTAY8fFHEhISMjOFNWLx5YLLNDrdz8/Py2sGAHC5rmy2xTN9E0H/5qWMeVleXha+YU3MoYRe7FCc4f9AJusvWLBQM1GlUrW2tkKHDyLU6fr6+gCgmQetNdLX10eJ8Hi49ycVqEbze4d2mdUlo9KQtNPC29Xb6TcUX3/9zUiHsS4ubz7viSLoRQRpP7f78pKIedk7kEikTpcMtUvX/K1+/LRR7Iimy2iXuZ036VjUkwrvOx96EXQR31l+OusSS54ICAg6gXANBAT9loyMCzrratuhOPC/WJ3r6K80Nj6ora3tbSteBC0tLTiu7ToOgr7DL2dOvzPb59n5OkNb1xAYuLjvLHnqC5gNs0795azk4KviMVtUf5uYDO5tKwheHMQwpI44Ob9pYzOit614cRDbxr5qaOsa1qwKjvzqmx415eVCT0+PprF4gYCgn6HtMORTlv0TEBD0P4gZCgKCfgvXfbLOuoRrICDot8x9L0BnXcI1EBAQdALhGggI+i15uZd01tXWNaC9kgkICF4ifjp1XGddbV1D0MpVOtdBQEDw0kF0KAgICDpBW9cQHhbWo3YQEBD0KbR1DdH/29+jdhAQEPQpiA4FAUG/xcmFq7Mu8XmVjrS1tT3sEJySgEDNQBJJT0+vd21YsHCxzrqEa9CR7OysgkuZGEbpbUMI+iItqr/NhprPf39hr3sHnSFcg47cqqqws7Pz8PDobUMI+iISiST+2MmHKlXvuoYrV36bNmW8brrauoawzRG6VdCPYbFY6hjZPYTq3z5L/whgrXk4/enQ0LFoHgidTtcb2Pvv3ZPHD/e4awgPDyN2eeoUhUJRUFDwpEiWTk5OLF13xJfJZKGhobmXcse5jkPBclNTU9vlwTDM0dGRwWDoVsULQ6VSnT179siRI+Vl5QBw4OsDMTEx5WXlHDsOihXcLchkso4RgCwsLEaMGNFzDuj48WNbI7bR6HQe72RPvypeJL3v2F52Wlpatmz5vKSkuKMIw7DExESdXQMA/PlnXVV1lQWbjf5ds3qNtF7aropZs2d/tXt3H/cOt27d2rRxU1V1lbOzC5NpimGYVFpfVV2FUbBurEUikSxevLidm2az2Zs2bWwXMaQbaWlpraquYjQynh7o+KVDW9cQuX3bmnWf9KgpLymGhoZLlgRKpVIASEsT5OXlUqnUwMBAFP1JM6ptt6BUKt3c3L29vRoaGhITE+vq6s6kpCwJDJwwYUL3VtS9VFRUVFVXmZmZpacLetqLKZXKgIAAe3t7kUjE4/FEIlF4+Cc+PjP7uPfsa2i7rmHnzh09asfLC4lEWrZs2ebNmzdv3uzk5AgAGIbNmzcPpaAWZk5Ozty5c4cNGzZs2LDhNsPnzp1bWFiI1BUKxbffRo8dO04t/fTTz56+UbUtx3bz5s179uzx83ssAElpaenUqdNGjx6Niho9evSqVatKS0sBoLa2du7cuaNHj1724YfHjx+bO3eur6+vTCaTSCTr168fbjMcqUydOo3P56tUKnVR27dvR4UXFhailG+/jUYFbt++fbjNcKQ7YcJEPp+PcqKKFi9enJGR8cEHH0ydOm3v3n1rVq8BgLq6usmTJ0+YMLGysrLdQclksk8//Uxt/IQJE48fP6ZQKCQSCSpw/fr1qEsfFxc3evTosWPHoShbOTk56F/NMj09PTdv3nzixIlt27ahelNTf1EoFKtWrVIf7LBhw3x9fdV9NFT71KnTPv30swkTJqITePz4MXWZfD5/6tRp6Bqhc9vxKPoTRIeixyktLV0SuKSqusrNzZ3Ldc3Kusjn88XimoMHY1xcXA4ejI2I+By96DAK5VRi4s6dOxob5ZGRkU8q8K/6ej6fX1ZWJhQKAQC9IQGgoaEBx3EOh2Nry6moKOfz+SKRSNncfDAmBgAkEqlIJJJKpacSE5VKpb29vUQiiYiI4PP5ZmZm8+bNq6mpEQgEJSXFEok0MHAxhYKJRKK0NMHSpUtZLFZZmaigIF+pVHK5rgqFIjQ0VCgUcrnc4ODgtLS0+Pj4xYsXo4jeYnENqig1NVUmk1lZWtFoxqZMJor0y2azXzc1pVKpmkckk8k2bNwYf+SImZmZn5/f/fv3+Xx+cPDKmppbGzduNDI2FolEGEapr683NzdPTk4WiUQAkJWV5ePjcyQ+XiQSOTu70Ol0iUTS7lypZ5fNzIa2tLSUlZVz7Di2trYNcvlFYVZqaqpYLEaxwhsb5SKRSCQSlZQU04xpOI6LRKLg4JVOTs4jR448fvxYaOhamjFtxYoVFhZv7Nq1Ozo6Wtnc/PWBA914q3Q7o8a46KxLuIYeZ19UVFV1FYPBSE8XGBgY5OTkeHt7X71aKBAIXFxc9u+PUiqV/v7+8fHxJBKJTqNFRUXxeLyQkBD6E7alTU1N1RyPZLMtyWQyAEyYMCEzMwP+Hf9fERwcf+TIRWGWZmBLDMNCQkKcnJyqq8VFRVcFAgEAhISErlu3ViaTBQUF8fn8yMid8+cHzJv3XmpqakVFeWVlpYmJyfnzF5RK5ZQpni4uLt9+G83n860srSIiIlxcXLhcbllZeWZmxmk+Hz1mAEAzps0LCHB2dpJIpHPmzCGT9fPycgEgMjKy46BgcXHxufR0AFi8OPDLL79QqVQDSaT4I0e2bNkSHBzs7OQcf+SIVCoRi8Xm5ubFxcUMBkMmk6Wlpfn4+FSUVwDA5MmTDA0N1a4BOaa0tLTo6GgAsLe39/T0BIC0tFT4dyqhsLDQy8tLJBKVlpaOHDkSKVpZWvESeWPGjDl//vy8efOUSmVR0VU2m33gwDc4jodFhi1btgwAGhsfhIVtOpeeXl5e3tX7oydZHBios+7L6hpaWlqysjIGDzbpLQNEZSI7O442OS8KswDAw8MDxZKcMGECm80WiUTFxcWVlZVo7Gr+/Pnofl2yZElUVJRMJquoqOByO1/l6uzsMnnyJAC4c+cOn8+PiPgcx5s3b94sk8mOHIlPS0urr5fizZ0PiXG53M2bN6Pfe/fuUyqVDAYD9YMYDIaXlxefz0cvzDlz/Hft2i0SiQoKLtvb2+deygWAtWtDAaC8vAwApPXSgHkBaBwRDbVoLg/l2HHCw8M6DZ/ZcbKgru5PuVxOpVKdnZ1Qhpk+Pqh1k5+fP3v2rLCwTXK5XCyuLii4LJfLg4KCYmNjxWJxTk5ORUU5lUp1dHTQLHbLli3oB5VK5XDsdu2KhH/nkuLi4i4XXEZSmUwGAJrDhxgFwzCMRCIZGRlhGKZUKgGgqKiovLxMqVRGRETs378fAPBmXKlU0mi05uY+HblnwADdH/CX0jVQKBibbfGg6cFrf7c+O3fPcP9BN9wTuo1pj3EYs2fPHgBQKBS5l3Krqqt4PN7mzZtjYmIiIyNRu8DOzu6X1FTUhtcNAwODGTNmoJE8U9Mh0nqpvb29ulEAABiGTfKYzGL+N/+CHuyugGGdTFiYm5u7unIzMzMKCi4XFRUzTZl+fn4pySnFxcVH4uNxHGeaMp2cnDVV/P39bW05yCRbW1vUKMjKygoKCqqrqwsICPD29gKA4OCV6OHXEi6Xi4pF0Ol0a2vriooK3Q72BfD7779PctexT6GtawgNDdWtgp6ArI+xrUa8+868XowEof1TzbHjVFVX5efnq1QqEolUWloqFosBwNaWM2LECPQwpKSk+Pv7A4BAkA4ADAbD1tb2mSWjcgAAwygqlYrH4ymVSgcHR9QuqK4WP13d1HQIlUqVyWRlZeWenp4KhSI3Lw8AMAxDgxfr1q1LSEi4erVw167daDQEKaLJFwD44P33UUMd0XHZhZYwGIMxDJPJZLm5eT4+PiqVKjc3Fz20Tk5OADB/fkBmZkZycnJdXZ2bm7u9vf28gICdO3egGAiOTo7qHgHCy8sLtfzVqFSqjIyMuro6BoOxbds2a2trhUIRGrpWG9dgbW2tbkFoNoVKS0vb2tp0O+QXQ0J8XI+7hogvdhJLnnQjIiIiPz+/rq7O29vH29s7KSlJqVRaWVp5ec0gkUgrVqzYsmXL8ePHjYyMjI1pBw7sBwAPD48nDTQAwJmUlNEFBQAgFotRjyAwMJBEInE4HJFIVFMj3r59e3MznsjjPd2wt96a6uDgmJeXuz8qCsdxsbj6VGIilUqdN28emuczMjLicrmpqakikYjBYEye/Gjn8oCAADQpuHjx4ukzZjg7OZeXlyUnJ3t6emo2K7SHy+WiihIS4ikUrKGhISEhAQBWrlyJVoUsW7YsIiKirq4OALhcVwaDsWRJoHrWjMt1e2YVJBLJzs4OucL9+/ez2ZZCYSbqUDwTFosVFhYeEfE5n8+XSKQeHh4UCpaZKayvl8bExOhwvC+Mf9padNZ9KTsUfRZjY5qVpRWNTqdQ/vvsysXFJSpqX3z80ZKSYrQyytnZZevWCFdXVwAIDg5ubsZTUpJ5PB4AME2Z7uPdN27ciEbaTE1ft7K0otNpqCjTf1/XaCiBacp0dHKcP3/+jBkzUFESibSiovzgwYNcLneSx2QAUC+XYrGYVpZW6hc+ALBYrAMH9n/99de5l3IjI3eiAlcEB69YEYQyGBgYzJv3Hlq/6D7eHTUlAMDa2jo5OTkmJiYlOeVMSsqZlBQAYLMtp02bCgBMpqmVpVW7RQQMxmArSyvQ6DKgbKamTABgMBiRkZGvm5peFGahzjzNmBYUtCI8/L8NhCZNmoTGCJD3sba2njLFs0YsxijYvHnvoTwYhrHZljRjGpms3/HqeHh4eHl5CYVCHo/HZlsGBgaKxWK8GUcmoWuH7AEACoWCiqJSDQBg3bq1NJrxkSPxFRXlFRXlyEIvby82my0WV6OL3mlv6OXltYeKe5r///33P6q2ttzfrk2dOlUzffvOPR8FrXyxtj0RqURyNCFuedDHvdihOHo4xs6O0+4lqVAoWlpaAMDQ0LDdYJtaBABkMllzfE6lUj148ED9r6YUaalTOr7l2hWlrgXNWaDf6CltV1SnhnW0XG1bR8WOZuvr65NIpE4rUmdWuwx1vR1TOrWk47ntWIL6FHW0tuP5MTAwQJk1z4/6X7XBmma0sxAV8iQzwj/b+tmnEeRe9RdhG1YdjovTTLlw4QJnuBWVQsbIJJKe3oABrz1JV9tWw2ebN/Yd19BnMTAw6PSOfLqIRCI9aaFeO61nrudrl7/d704NeIphT7ftSaJOC+yYuWO2p1uiZf6nn6KnnM92ok6PrtMan272ywuxyxMBQb/FxnbkszM9AcI1EBD0W5Ys+UhnXWIYUndksnsdV+YSEEBno0K9AoaRddYlXIOOvGFlm5OTVV5+o7cNIeiL4HizpZX1wN7epebmzT/GOunYp9DWNSz5cIVuFfRXJk6c7OjQ1cV/BP0YCoXS6xtDJhyJG+u0TzddbV3D/v37iSVPmujp6fXi1CkBgTYoFY066xLDkAQEBJ2grWtIOPxdj9pBQEDQp9DWNaxeTUTKJiB4hSA6FAQE/RYrS0uddQnXQEDQb3l/0XKddQnXQEDQb1F/s6sDhGsgIOi33L51W2ddbV3DvPkLdK6DgICgV0g4HK2zrrau4dB33+tcBwEBQa/QIJfrrEt0KAgICDpBW9dw8uQzNhokICDoT2jrGlZ8pHusCwICgpcO4qNsHWlqaqqtvd3H9xrvg+jp6Q0fPqLXP0l8RdCMEvK8EK5BRy6cF1wrumxsrPu88auJRCrxeyeAyx3f24a8EixeGqyzLuEadOR+wx1vb2/dwi68ynz7bfS9O3d724pXhSGvD9FZl3ANfYLKysqamhp9fX0nJyfN4Ej19fUAYGpq2i46U4+i3rzsmRtYd2q2GmS/vr6+q6trxziXBC8AqURKN3xDN11tXYPP27N1q+AVYdWqVQDAZDLVwWYrKytRtJWQkBBra+unqwsE6RERn9OMaRezL6Jn7Ntvow8ejEFhZmfNnh33fY+vK1GpVGfPns3NzS0uLkEpjo4OdnZ2c+bMeZKPOHIkPjb2oK0tJzb2YEfntXv37tTUVDbb8syZFBSEiuAFczzh0PbtX+qmq61rOMlLJHZ5egqCNEFVdZW9vb3aNUgkEhTBPVCLQObGxoa2thwMw1BomcLCwsjInXV1dfb29rNn++H4iwjH/P777/P5fM2UzMwM9KNd/Eg1dDrd1pbDYjE7lSqVSplMRiOGY3oPiVT3bY2JDsULora2ViwWUygUS0tLiUSCWtr29vbohezhMYXNtqRQKIaGhgqFQiAQoKDygYFLXF3HoZCwCoWivLy8sbERADR1UXpzczOLxWIymShG7ogRI65du9bc3Eyn01kslkgkam1ttbCwQGFgUTnGxsZjxowhkUgqlWr37t3IL/j4+Myb956bm7tEIhEI0lNSkjXtBwAnJ6f79+9XVlba29v7+c12dR1HoVDY/4bPk8lkqC5jY2Pd4oAT9BG0dQ1nz/4yddqMHjWlf5OYeGr//iiMjI1zHXft2jWxWIxhmIODY3z8EXNz85SUM+oOhVKpjD8Sj+Iyo1CU+fn5VCr1088+O5eeLpfLAYBGo3G53IiIiJEjR4rF4jVrQioqyqdPn45RKJcLCjgcTmxsLEpEjZGKinK5XM5ms0NCQoqLiwVpAmm9lGnK/Dxiy4IFC2/duoUibjo7u0RGRqKugbW19YQJE+bPD0ChHBMTT0VG7sQwLCQkNC0traSkOCEhITc3T7NDIZFI1EbSaERj4eVGW9ewYP470rtNPWpK/6ahoQEFesZbcAsLNo1Gq6ury8zMSEw8tW7dWvh38K+trY1KpTo6OVZVVwEAl8t1cHCk0+mff/55/JEjVCo1LCyMRqNHRu7k8/kNDfILF84DQGOjXCaT8f4NjY1iuqLEvLxcK0srJpMll8tFItHy5cutLK1Mmcyq6qqq6qqtEdsWLFiYl5eLWgQBAQHthgzU/zY0NCALN27cgFJwHMfxZplM1tj4aKH+t99Go6j2Pj4+Dg6OKSnJ6JAJXkaIbyheKAwGIzY2NicnOzk52czMDADE4up2eVgslpeXF5VKpVKpfn5+X375BQAIhUIA8PDw2Lx588cfrzxw4AAAZGZmFBYWqhXd3Nx//PHHa9euffJJuKGhIUr08fEpLikWCjNnzZoFAPb29oJ0QU5Odnj4JwCAt+AA0EeFUy4AAB9wSURBVNLSqmlATk7OaA3aDUDs3v3V5cuXExLiHRwc2lmeyOMBgL+//9mzZ7/88gsOh9PlE0bQJRiDTXXWfVnHGsRVNz7fEq5P1j04Txe5WVFmZxeuszqNRmMyWVq+VJVKJZqq8PCYglI8PDwYDIZMJsvPL/DwmIwSnZwc/f39QeNVD/8GrTcwMLC3t0cpdDodADicEeo86pDz6vFOvBnHW3BkXkNDg6Yxfn6zra2tXVxc2hlZW1srrZcCwPz587U5KIIXwKLFnY8fa8NL6RqYLNaOXQd6d5HySd6Jp2dobW19egYd6DhV0ZXIZWrs7OxpNJpSqczMFAYHB7u6uhZcLkhKSlq+/Dm2D9PT00OFdN0egu5i2BvDdNZ9KV0DAPR6eBgjqr7mv+7j3auqq6RSKZ/Pd3BwwHE8KioKAKwsrSy7sHUngkql2tpy8vJyeTze0qVLyWRyTEyMTCajUqk+Pj5dD6/o4uIyfcaM+CNHMjMzVq1atXbtWlNTUxxvea5CWCwWRsYAIDo6BvU1Ghp03yyAoFtoaLhHN9RxRYm2rmHKFE/dKnhFWL16de6l3KrqqqCgICaTiTfjVdVVVCo1cEngM9cUPhNDQ8MlSwJLSopFItHcue/R6TShUEilUoOCglgsVrdEXv0kPPx+Y6NAIODxeOfOnWOzLXVYTBG4JDAyMjIzM8PPzw8AUCeIoBeJj4/ftkXHbq+2ruHYD6d0q+AVwcXFJTkleV9U1EVhFt6MA4Cbm/vataG+vr4oA4vFcnZ2MTY2NjIyAgAymTxixHAAYDKZAIBhZCRFnyTS6XQHB0f4d1yARCItWrSIxWLt2xdVIxbXS6VMU+aK4OAVK4JQ4RwOB8MobPZjzROUyGQy9fX1AYBGozs7u6BKAcDMbKizswuT+WiYytraOjY2Nikp6eRJXo1YLG9oQIcwf/78OXPmAIClJdvZ2YVMJlOpVHUVLJaZs7MLm22B/g0ODm5uxhN5PLwZn+03u0Euv1Zyjck0JffekNArTm3NTZ11X3uouKf5/99//6Nqa8v97drUqVM10x8oW4nVkJocPRxjZ8chPq96Xr79NtrAkDHTl1h3/yII27DqcFycZsqFCxc4w62oFDJGJpH09AYMeO1JutpOXmYKs7pkIwEBwUuFtq5h6SJiRoqA4BVCW9fQLWNdBAQELxKqgbHOui/r5GVfQCa7V1lZ2dtWvGTI5Q0Ghl2dsiHQksVLXrElT32BN6xsT/0Qn5JyprcNefkYP3l6b5vwqmBjM1xnXcI16IiHh6eHB7HWg6BP06xsouvaRtN2rMHNzV23CggICHqL+IR4nXW1dQ1HjibqXAcBAUGvcLOiVGddbV0Di6X71rQEBAQvHdq6hvyC33rUDgICgj6Ftq5hycJ5PWoHAQFBn0Jb10Ds5EVA8NLxmp7uH7YRG8AREPRbln34kc66hGsgIOi32NnpHvSMcA0EBP0WlUr3jRS0dQ3qTUcJCAheFhLidY+HqK1rSDjxo851EBAQ9AplpSU662rrGkYMf0ZAVwICgv6Etq6hQnStR+0gICDoU2jrGrQJ90xAQNBv0NY1iESiHrWDgICgT0FMXhIQ9Fs+WPShzrqEayAg6Lc4O7cPTao9hGsgICDoBG1dg5WlVY/aQUBA0O0cP5ags662ruHwsRe0y9O9u3f/rK39s7a2BcdfTI09zZ+1tfLH49A/k9LS6//734Hn1eo6TU1N6OQ3NTW94KrVlJZePxS9r4cMQHfXc6m0tbVJJZInSeUNDU+R9jpFhfk662rrGpwcR+tch5ZIJZKVKz709fac6O480d15pvfUlcsXtbW16VBUctJPP/3I63YL1QiFGUsXvad5k82fO2tbxKfqG7qmptpn+uRfzqbU1FRPdHeOi4t9rvKLrl7Zt3u7tP6FhpMNWfPxlMlcdPI9JrqGh62/d/eubkXV1FT/cjZFt2v3x43yyMjIRvlzRNmeOmWC+m/+3FmFhVeelHPb1k9Xr1rxXPaIRNf9Z824dCkbANra2o4fiy8tvY5ELTi+a9f2jz5c9FwFvixo6xqqq2/3qB1SiWTd2lWNjfLNEdvPZeQePsqbPsOroUH+UKXSobQzKUmpZ/ndbqSa4TYjbvxRdffeHfTvn7W1f9yszM/NvvdvSvbFrD/+uOno5DLIwHDe+4tGjhzVc8Z0nZqa6rnv+l4r+m1NyPrUc1mp57ICly0vufob/7SOMZCzL2b98MOx5ubnjrWtG8qm+2++6bRi5f8FLv2QQsE+WvL+6dOdr+sfO447cZLHcxXOoA/2mT3H1JQFAFKJZMcXW67//mj18UASydWV+9bUGV20v2+i7WbzSxcHpJ7rwbCXpaLrZaXXUtOzmCwWANjY2Hh4eN6+XUPGMHlDw+/XS9zdJ6Io0gDQ1NRUVHRl3FguGcNu367J+PV8a0vra3oDRo0azeWOr6mpbmxsbG1tEQozAGDixMlIsbDwSl7epRa82draxtv7bTKGAUBp6XWaMe3uvTvZ2RcBYPJkj9GjHUpKin77raDpQdOECRPfHOva0VoMw1hDWb9fK3FwcAKAzMwLdAbd2Nj47t17FhaWAHD9WuHw4TZDzc0BYIaXj7n5UKQoFGZwbO2KiwtvVlaSSSTfWXPQ8QJAC45fOJ9+80apgTFDLBZrVteC4z//cvb2rZpBhoM8PKba2NgAwO3bNbdu3Ro/fqK65OE2I1CN9+7erf3zNrINHcs/bX9TqNQ3x7pyOHbtjqUFxxPiYqSSuiMJiahkAOBw7Hx9ZzU1KdC/V34ryC/Ib3fq7t29Kyq7Pm4sF9lmYmLy9tuzaXR6TU11VeVNubwhJ1uIUajW1tbDhllcupRtbm4+ePCQK1cu6+kNcHJ6c9CgQb//XlJQkNcol1tb20yd5jVo0KCOp/rSpeyystJ/2v42MjaeOnXGYBOTTu+f0Q7j3p0bAADe3m9/uOT9X1J+fOeduSUlRc3NyrFjuUVXrzQpFJaWlk7Ob8rlj7ppN2/efPhQNXAgKfPXcwql0uXNNydO9PiztjYz80J9vXTkyFFTpkwlY5iJiYm3ty+TyWzB8fKKMgD44+YNdGt5eHg6ObsMed0UHr0ebmjGH5BKJOUVZeqUX389X1YmAoBRo0arE5uamnKyhbdv3QIAM7OhXj5vq2/yXkdb13D1amGP2gEAOI7/Wfen+lEBgGHDLACg8b583+4ddR8snhfwAUovKSn6+sDegwePSOslSxbO0yPpjxzlcP1aSd2ft/hn0gvyL/1+rciEMfibA/sAwNLS0sLCcu+eyLhD0W9N98IwStLpn64VXV67ccugQYO+OxRzo+x6q6pNn6SH483RX+8NXLr8XLoA/XvieHyq4NchQ0zbmUqj021sbDN+Pb9gYSAA5F7KmTjRoxnHy0TXXVzelDc0VJRXvDXdG2XetiVs5iz/devD0G8Mo+B4sx5J/8/btxJ5P1zIzEHZ1q9ffemikMlkAcDt27VKpVJd3YIFc8XV1Q6OznW3axKOfPdd3HEOx67wym9fR+3OuHgZAP6srV26KGDp8uBPP90KAEnJP13//fe9+74WCjN2frmVjJGtrK3LSkXxh79XV6fm7t27QqFw8ZKP1H4BgXwcACTEf79rxzZL6+Ho1BUU5G/+NGLQoEG/X7+2bUsYxcCwBW/5u61VLBaXll7fGbknPy9XmHFOKpXGRn89kExetixo2DCLPZFfsFjM+juystJrbLZlzHfxJSVFn38ark/SMxtmceLo4XPpguiD7T8T3Lsn8sTRwyNHOwJA6e/FeXk5e/f97+kPz2ATE1RRU1PT8WPxotLrVtbWv54TmA19Y+HiwD9u3iwtuTr+7DkA+Pls8qkfjtJNhgwYMKBZ2Rx3KGbNug38UydROXGHovcdiPbyfvvu3btfRnyyafPnbAsrQdrPMpks41xaUWGhsSHVw8NTmPlr8ulT48+ek0j+/GRDyI6v9qsf+/T0Xy6cP+fh4dmC4xERn/5WkO/k4qJoUuzbvX3txs3/939rAGBz+PpLOdnjXN3q66U3ysuqa8QovS/QV0LU2NjY2I0cs2rF0slvTXdxedOWY2dkZMQ0ZZExzMLCcrLn9NjoA35+76D3VVzsN6NHOdDodP7pU6amzJhDCTQ6HQCu/FZAM6YtDvwwS5gJf6sOH33UHr7yW0Fy0o/Rh+LRZSsvL1u7esX16yVc7vjWlpbX9AbGfRdvYWH5Z23tNE93QeqZ6EMJHI6dVCL5eOVHR+K+2xj2aTtr9fT0HB2dDuw919bW9uD+/cZG+eqQdeVlpZkZFxYsDKy5Ja6XSmf7vYsy4834w5ZHr1+5XD59huv2yP16enqXLmUvnP/OL2dTZvrOFqT9fOmicMeufV7ebwPA8WPxWzZvRCrbIj79s6bmZGKyjY0Nusk2h284nfSzufmwAXr6N2/etLGxSRP8bGBgWFpSdO/u3cEmJvl5uVw3dz09vcPfx06f4bVuQzh6nJKTfup45h+2qQDAw2Nqp9eltPT699/FhK4L+yhoJTp1/xf8UU62ENkplUo/+Wwl8o/Hj8VHf72vvLxsXsAHKpUqLfXn2O/i1Q2BxkZ5Y6N8dejGsWO5enp6gwwNlyyc5+Uza03IejKGlZQUBX+4+OjhmEVLg9VVt+D4iaOHgz8OQVXLGxpu3rzxdL/Q1tZWW3tLLK5hWw0fNGgQjjdXV/7h+da0M6kZdBpNT09v+/aIlpYWlLm1BVf9/feGTZs9PDzlDQ3Byxdv27L5yDHeW29NA4AN69ecSTo1bbr33/+0tbS04HgLk8UKCdnwy5mkoJVr1G+p1pZWVODo0Q6ckaPjvjuIWqlNTU0Xzp+b4eUDABd+PX/995KD38Uj53vhfPqOLz6bMuUtG2ub30uu/i/mEJc7HgD+rK29XVvzlKPTgXffW6Czbl9Z12BhYbl951dBH6+ur7t1YP9XQUsXfhAw96s9O9FQ1thxrmKxOC3tZwAoLy8rLyt/a9oMdJfU10vT01PRjMabY101Gx1qiq4WmjAG6+kNyM4WZmcLpVIJANTefjR6Mm26N3pDDjU3tx5uy7Efg1rdgwwNTYcw8CdMlFhb2wDA9evXKqsqcRzncOxodMbNm38AgKTuTxqd3u4ljKAaGE2d/qjR6ODgxDRl/nHzDwA4cfyoo/PYaf82NNQ0NTXl52Z7zvBBpZExbIaXz61bYqlEYmlpTR9Mz/z1XAuO5+Zkf7FjFwD8cbMCAOpu19jYjAAAMmlAeXnZ+XNpaEDRb867HU1Sqdrw5idOBv1xo5ykp4ceTgAYPnzEqDEOWVlC9O/QYW/Mf38h+u3t/TYA3LlT32k5GEaZ/0Gg35x3h5qbM1msgoI8qVQ6w3sm8vUODk7j3CcmJSVpqjQ3N+M4npd3KTtbeO/uXRqd3mnnDgBaH7b9ekGwP2rP3q92rg1ZpUfS/3hVCBLZjRwTErrBxsZmsIkJen9owuHYv/nmOACg0el2I8eYDx2K/AIAjBhui7c+xzAqGcN8ZvpW3igvLy8DgMrKP+7dqX9zrGtbW5sw88KwYRYSSS26/QaSSHgzfufOX01NTXK5/JwgraSkqKmpaai5OfIR3Yibu+4F9pVWAwBwOHYcjt077wY0NytaW1Q83vG4Q9FsC8sFCwO5XHcHB8dz6QJv77e/3rfTegSHy3UHAD//d278UbF1SziGYRYWbJ+3/dQ3sZq2trb6O/U1NeKvD+x9pg0YBdPSWhubEUMtLNLTfrFgW5qaMgFguM2I1taW8vKyCtG1EXbP3vlm0KBBNDpdWlcDADLZveEjOB1fiU0PHsgbGthstjqFTqe3qVrvye6NHDmKyWRdvCh0nzDpzp2/fGfNuVZSXFFeNtzGlmJgiDoma9aFb4v4bPX/BZkwBluP4KxYuUo9NqGGRNLDKFhjY+czAg8fPtQj6av/1dPTGzZsWOXNmx1zDjYxGTBQX/HkScfX9P57D0klUgzDTAb/F9yEQqE8aFJq5qfR6d8dORG5Y9uaj5cDgPNY7voN4R3HSh7xt6pJ8QAAFi4K5HLHa74htOy9DxjY1U6+r69f5I4vcnMujhw56vixeAfnsZZsy4cq1b2/JGLxY7ff4NdNMYw82MRk7YZPEuK/5/1wlGZMm/zW9IiIL5Gv7Ato6xoYjBcU3XjQoEGoFbpsWdCVgtwrVwoWLAzU09Nbsy5sfeiq5OTTOZdyt0R8ia73kCGmX+05sG5dWOGVy4L0X3ZujzAzGzrTd3a7MikYhcvlRh862o120uj0ISam59IFb8/ye2vaDAAYam5ubz/qp594ZaWls2bPea7S9AfqAfzdMZ1EImEUTKYxiahqbdUj6ZPJGAB4TJm2N/KLK7/lc+zs9fT0Jnl4Ho2P09MbOOwNC0u2JQA4ODidTvr55s2bl3KEP/2YuCp42fmM3HYjeVQqlWJg+CMvwcXlzXa1t7W1DRzY/g5pxpv1yaTnOrqOYBQMx/EHTQ/UKQ8fqvRJ7R/O8eMnJp8R/PHHjeyszKTTiRvWrU4+I+j4qOsP1Htruu8HCxZ20aouQsawwGXLMy4Iprw1/VJW5rqwz8gY1oLjGIbNmvNeSOj6jioLFgb6zXm3svKP9LRfTiWevHPnr+/juvMu/fEUb/kyHedWte1QHO3hXZ5KS6//cjZFM+V27a36eumo0Q7oXw8Pz2HmQw/s3WU+dKivrx9KLC8vkzc0MFmsmb6z14RsZAweop5QfKBsRp0RPT09Bwen4qJiQdrP6sLv3b37vJP2grSfE+K/11zLMH2GV1XljeyLQvWrzIr9Bv/UyeqbN1B3Q3tGOjjfKBOhwtva2u7evYuGIQebmLiMczt/XoDW1bS1teUX5NNoNNS/8Jg8Rd4oTz59CrUFzM3fuHPnr7TUn81YLPTyKSy80tbWZmNjszjwwxUrV8vl8ga5vN2xMBgm3jNnnUtPT076Sb3MrK2t7ddfzwuFGUwWq1mJXzifjtKbmppyLwrd3CY8/XBIJNL9+41PmXge7z6BZkzLzspE10gqkdysKONyH+svNDU1FRZe0dPT43DsPgpauTp0Q7Oy+eH/t3fnYU2caQDA35lJQkICEu77BqM0hEsQkENEBCoItvWgVqEsaAG5fVrtrrX28rEqIFjrtl3Xth6lttvaYtmVtrZWZSutKCABQrhRyAFySNiQzP6RNgSLyCFK2+/3B8+T+SaTmUzmZeb73nlHLh+WyUq/+vKdI29N6Rt+IFRRSXTvX876dU/LZLIDe3cDwLKQUADQotN9/AI/OX1SdaGh0tHeLhGLe3t6BAIBi8Xi8dxztm2PXhXb2faA+xrKL01/VHGyZw0BAf5DsumXoLyvttbmv7247cP337O0sbOwsKqv49fX8TkczpNPjD4aZ0N80ras1JT0bPVJV/Gp41d/+jEoJIzN1rt69SqNQgQvXQYArjz3g3l7X3vlJZxCJMQnBQQEefv5Z2ekfHX2Sw9PLz6fX1/H35qRPaVHXZ/5V3F5efl8zgLVACEARESs3P3Sjr6+XhaLqZqyJDjsjTde5/LcjIyNp7T5uTnPhwT5bNmcYGVlI7vTV14+msS2ecvWNasjs9I3L1sR2dne/v1355M2/9JXZ2BoaGFlLRJLnZw5AGBnZ+fg6Hzq+DH1VdWeN17WYekGBS+Vj4yUfP6pra2tnZ0dAJw+XfzzlXIXF66FpSVBEPHxiXX8mh3PZ39yutjN3WNINiSsr62srMzetmN93DNe3ovSU5Pin01ms/VLS89iBMXP/z6hwdFpfkdby65dO1wWcjkLFwYE3J1KYGpmFrcp8cjbh6Tim6YWNqUlZ8RSSXrWds15JBJRUkLcYr9Ad3cPhrb2J8UnHnPlUajUoaGh4o9OXr9W+duLx9lmZGzM47kdO/rOiFze19O9c/feu2ZgsVg29k6njh/b9sJf1V0boaHhpSVn4tasioxezZnPuXTxB5G4Kyf3BR2deUnxcUHLwjgcTv/AYGnJmWcf+hZNgNj54vOar0kSlCTZ1tllbz/mpolu0W0Mw3B8trotraysXbg8oYDffetWR1uLbGgwOvaJlNQsfQMD9TwSiYh/o3r7i7voDIZqioWldeetm1WVFYKGOoa29mt79js6OgHAYl+/EYXi+tWKgYHBkJDlbH398IiVdCZL0FDPr6nq7ZE8HrUqOCiEzmA0NTc5Ozs7OjmrFtje3mFrZ+fh4QUApFIpkkiMjIxdeW4A0Nl5cx6b7ecXYGj4yxUyhUIRScRu7l5+fktoNBoAmJubi0U3AwJC/P0D1afiDQ033Dx8OAsWAoCwWeiz2FfVNwEATS3N8zlcV1cencHw9PLm82v7eiWWNvZPPLl2HlsvbHkES0dHX18/PHJlVXVNVeVP0p6e5OTnomNWq3cESSqdOQuWh4ZRKBQcxwFIHFNuSkhWrY+ujm5jY2P1tZ+bGhu4PI/DR45SaTQAaG1r1TcwXOzrr9oWGo0WGRllYWnV3tIoFDSIum7ZODjv+OuusLAIHMfDI1ZqMRiXLpxvEgqcF7jsfGm3tbUtAPT3990ZvBMYtFS9MqqtMzU1MzExMTI2+amiorW1xc3d09bWrqmlmct1s7cfLSPIc3UzMDT84eLFen6Nja3NgbzDhkZGACASd8tH5KGhK8zMLQwMjWpraxrqbjTU1QYtW5Gams5ksUilUiqRsPV0QsMi1d/wIp/FNjajPTIqnZ0dxsbGfn6jgay7q0tHTy8wcCkAtLe3mRixPTx9VHtKJBJTKZh6mb23ezEM8/HxlQ3JRFKxt7evoaERjuOhy8OFQmHdjSo6UycsLKKnR4pRCNUCVT8JJosJGGRmbtPW1lZN1NXVDY+Mut3fV1dT1VBXy6BTo2PWBAUGm5mbK0aGqqtr6vk14u6bG59NXh/3zIM9xPj1DUuDxvQuCYVCQwM2lUqhUAgCxzEMu9d7sZFBieZrpZKUKxSXrlwPDR0zmpWWlpaYnK7+h/lIpCRvNLe2275959xJC0GQuSwzI/XEB0c1p5SVlXGc7LUZWnQtKpUgcPyeoWGyIUoqlT7wQdcpqampLi8v9/VdguICgkzG9O5hUZtsaPDw8GwZm737kPX29ux8+fUlvxl7QxDkXhLjZz/lae3aNZcvX5phHJoJf/+AmNgn586oL4LMcTQaERg4hY72u0w2NFhaWrJ0dNrbW6f9SQiCPEw4/tuslKm8ffKzenu41t6omf5HIQjysAzLZG/u3SOVSqe9hClElXXr1g0PDz+yKwoEQSatqCjfytxkJknMUwgNTCaTyWT2Dshn8vhdBEFm2/nz33zz9blvvz43k4VMOb9C0tU67r29CILMBQKBoLDgwKeni5lM5kyWM+VuClNTU1VidlR0LEoxQJA5RaFQfHr6VGZ6quWMsxOnfNbAZDJ3bN9+/Vplft6bw8PTKdyIIMhswDCCxdSK3xi3YsUDKFc5nYRtBweHA/v2UDDl6phwdXVdBEEelYGBAT6/lj2PxmJQXVxcZngpoTLNcU8qlfrqq6/Exsb09A9r05R3/odLxGK5XM5ms1FWEoLMNoVC0dvTMzDY39TU1FDHbxTUPh4ZqRzhEtSZltJQm1GVJ09P9RP1BksuX7zwfRlGaN2Wdt9VOYvDWZCSlslm6wkEDXkH9vVpFBSytbVLz8gxMjZqa20rKNjfdWv0aR8mpmYZGTlW1laibtHBgv3NzU3qJt15elnZuY6OTgP9AwX5+zTvhGeymKlpWVwud+jOQFFR0fVrV9VNdBqxOTXLy2uRUjlyuPBA+Y9jCuEmb0kJCAgCgPeOFJ7/fkxt1YTEpJCQUAA4+o93vxnb65uwaUNIWBQAnDzx4dmSLzSb1j4VuzJmHQB8XHzqzOdjSptFr4p9as06APjizGfFH53UbFoRHrnhmU0AcO7cf97/53uaTUHBS/+StAUALlz47u9vj6lW4Ovrn5KWDgAVFVcK8vZpNrny3DOzcqlUSnXlfwsKD8tkowXgXR7jpqVlsnRYtbU1RYX5fbf71E3znexTM3LZbAOhsPHQwX3dotHhcVtri+e25pibW3R2dhwu3N/c2qFuMjbST03Ptbd3EHWLig7lCzWKQenO083O2Oow33Wgf6CoKL+mukrdRKcz0jNzuFyuXD6Sn7dPc5cBQEZWrpfXIgB4q+jg5csXNZvUu+zdd97+7vy3mk0b4xOXLw8DgA8/OPbv0rOaTWvWro+KjoEJ98uXn5366OMxTZGPR62P2wAAX50tOXF8TLWV8LDQpzclwXi7LDhwSeLmrXCPXbYlJQXHKRUVVwoP5ik18oxdee5b07PodK2qqqpDRXmDv9b1BgAOZ0FGZi5Lh9XW1nLi/XcxQsvW2mKxt3vCpjiz8UofzsRk77xEEOQP4MHfeYkgyJ8KCg0IgowDhQYE+dOZoLiTGgoNCPLngmEYAHnf2caMUJAkiWEYjmEAUFZWNlurhiDIo0PgOI7hOIZhGKY65MedbZwRCoVSOTKiGJaPyOUKhVJJkvcPMAiCzH0YhhE4TqUSWr+WjZ1ghOLuvAYMA4LASZLUAgqFIJSkEgBD0QFBfu9U1xE4hhM4RhA4Qdw7KgDAeKEBI5VKCoXAMIwCoERBAUH+QFTdBQSBA0liExa2vzs0kCSJ4zhJkqoa9eh8AUH+SH7pXwDAcHyCjgYY96xB9RfDVGHi/oMcCIL8Xmge1BMPYU50RjGZwU8EQX5HJn9Qo7wGBEHGgUIDgiDjQKEBQZBxoNCAIMg4UGhAEGQc/wfEkV+QPU5xuwAAAABJRU5ErkJggg==)
一个Panel
的呈现是测量和排列Children
子元素、然后在屏幕上绘制它们的过程。所以在布局的过程中会经过一系列的计算,那么Children
越多,执行的计算次数就越多。如果不需要较为复杂的 Panel
(如Grid
和自定义复杂的 Panel
),则可以使用构造相对简单的布局(如 Canvas
、UniformGrid
等),这种布局可带来更好的性能。如果有可能,我们应尽量避免不必要地调用UpdateLayout
方法。
每当Panel
内的子元素改变其位置时,布局系统就可能触发一个新的处理过程。对此,了解哪些事件会调用布局系统就很重要,因为不必要的调用可能导致应用程序性能变差。
换句话说,布局是一个递归系统,实现在屏幕上对元素进行大小调整、定位和绘制,然后进行呈现。具体如下图,要实现控件 0 的布局, 那么先要实现 0 的子控件 01,02... 的布局, 要实现 01 的布局, 那么得实现 01 的子控件 001,002... 的布局, 如此循环直到子控件的布局完成后, 再完成父控件的布局, 最后递归回去直到递归结束, 这样整个布局过程就完成了。
![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAtwAAAH0CAIAAACB3G34AAAgAElEQVR4nOzdeZSkV3Ug+Hvf+n1fRG61S0ICLQixCERBIwFCCIMxBgMDGJsGjPBg2vSYM405NmP3GU/jMXZ7wbKne2h7umkMA9hG4AMGGzBISBgkgRYQEshaWFSqkqiSasnMiPiWt9w7f3xSjqAzZAsqqiqr7u/UqZPLrVcvI6sibr533334+c9/HoQQQgghjp4Ldj5Ja4XMfLRnIoQQQogT1+WXX/7Uc8/x1qijPRMhhBBCnOhizJlYkhIhhBBCHGWZiJgkKRFCCCHEUcbMAChJiRBCCCGOPmY2D33/PTeOLQ1/79prd21/suMBl91Ff/oqY2ObJ198yxcAnAN4+n95jtOgyX3hLVewhXJ1decHX11Sner7vvr221sCSHDx+5+LKXQJr3v7NakFn+NTP/TqhdXVpgoyjowj42zUcVyHbfeC97yMTHvFL199w0X6W/toNSlU8rwh48g4Ms6UcfQqpPmL/vSZozn8+puuvvFivOkA1GN66zPWXxP5gdM377lpWenFd3/5qktPG8cGnKvmabKMuqCQyyXoVjCHXCyoHLkbcbGQU+1VFYzRKba+K1EHQGp4qCgHHAMUWnVFcCElpSscYGhlHBlHxtmg42ifu+/XuJQtVT8DL7vuaeFru110AXUtzxsyjowj46w7TgqrpVoKpVFh+efyK774jHjD3bYA+MULfiAXufzyy8957BlV6fU73/nOtY/e+B223n71u/e9eOFA8FWpDy1zcjlmDSofVFCMLM+Tqg2x26xUIreYU10mzBR9rNrRsotojG2YqbBzxYDy2GcXER253B7Ixsg4Mo6Ms0HHaeqoF4eeq1E+9Il0zq9spbs6M9Q61fK8IePIODLO+uMwlh3HearHwf7V+Ox/czodVJpD99RTfmCj5rvf/e6WzUvWmh9ISl7/2W9d9e27fTf6yUfZagXALHYKtc/JVgGV6sC5bZO8G31lu4ihHfBy0K5Ny9YPFE303KMzJkWdK6yFJnT35GozYBr4Reau9ZvIKhlHxpFxNug4OFgy7SqpJhenfaTZcfW37v7s3XfecNd3rz00lucNGUfGkXHWHYeYfaFcmMtm9a/CE/7xmzdee9fea+8+8Cvn7/jnk5JH77n6lQsrz1yMxjI7u8QTiMusFodR5UjKzhcp1dj6EFDpGrIKrAxSWUIOoNBjExyNtFpqc5NhYucVIQJT1wSD6PRCI+PIODLORh0HGgAT2BdF5Eto93N27H9F2f6rk+ilxV553pBxZBwZZ91xjCWH9QrVaOd/Ae994eDAi7eGPyl2vvMJ9p9PSu6+5+5Yo8W5RCvWFCusJqEqczSWMzXW1GS7ggplC2sVYMg4RwYqVNlZB1XDrGNS3LEagsZhjBi7ooYI7Ak0Ng6UjCPjyDgbdJxSGfSsgWzoQGdnTda5ajs/V8nzhowj48g4644z0IuqYS4WvEoTT0SBUveR5sn/4cnwzyclN3/zTkrLeqgOUqAVrbHzziafVik6soGhosUVHFseROJBKrXlBH6UGpcoxQOGBilhkX0ywSjTKga3I1ieV2XKdYh2rGUcGUfG2ajj5EIRLMVxShgC2FUM8wHrZAKhPG/IODKOjLPuOI0Nq5A1lphjiRNSurDmU5PH/cZT/gVJya5v7/YM95tui92Ojlya5JJTXVfljgyBswZCHlijNZFpeTWg9ooX2auMliqw5FzOroE4JM4Wic0EIU240YCVReM2yzgyjoyzQcdBFfShmudV0kMDYxOMMVU2baEH8rwh48g4Ms664wySAjMcpDZ3baS5sd5j06a7/+wX3vDGX1o3KfmBI8Gf+tSnQAghhBDicHCZRioPnQo8qDkOm0OFP/k//t47r7jmiw8NWzsSLB1dhRBCCDETgbPHqDoDIQ6oRrdQw3hlbn5avCQlQgghhJiJVnGplrqYbY6+WAiYkMI3fuGj0+IlKRFCCCHETDirRkwu5eB1E8aedGdVwmJavCQlQgghhJgJ1KD0Quu6qIFslbhznfHl1HhJSoQQQggxEyYhxAMObQvR1t93fktN8Zl/ctG0eElKhBBCCDETmbRn01pTZbJ+8yQ3JSevp8ZLUiKEEEKImVBgc06a7QABcUAhqILA2GnxP3BN30N7lgghhBBC/HhGwXqd2mUeFHRgHouVbuEffumKadGyUiKEEEKImUAwibIGO1AMOMgxmYJBtm+EEEIIcYQlMgXYztoiJWs2NdSUkApJSoQQQghxhJnIig555VqOprnX+a0N0QWXPn5avCQlQgghhJgNBQYXWxejwmTKjJ0Pxvnt08OFEEIIIWbAajUCKhN1Hrsw8mxarzs1mBYvSYkQQgghZqLVudCLXSYTk/ULEZLi7ubXfmxavCQlQgghhJiJjpLHiEFxaMo8Qb/QUL0yP7XPvJn2iR9Hztk5l1LSWiulQghaa2PMZDJBxJRSURRKKSIyxrRtW5bleDz23mutiUhrnXMmImbug2OMAGCttdbmnHPOh2WeERuiVNrFv3jvR/ce+Nqg3JpjQRwTh8MyvhBCCPFQRKBMU/i8ee5pl1zys203VqC99yF1R3tqM4EcVDTaYYjDcWgJD1U8T5kBcN34mSQla7kFInZdR0SIGEJwzg0Gg9FolHO21jJz/0aftWitmZmZERERtdbOuaZpjDHM3I8WY+xHOyzztDBMXDPn1XrXv//tn2MgypypdcXwsIwvhBBCPJQ1w0l90KD+vf/jbwl+2nnF0VGefkZ2g7N26yiNLYFnZ3xBRaVGe5//nhfAz63fP21WKyVFUaSUYoz9G/1ySM55NBpZa/scpW3b3bt333rrrf3yCQCUZXnWWWedffbZzjkiCiEURTEajfq8pF+A6TOewzJPY4lB56SMLgFUWfouKM0D5vawjC+EEEI8VN3ebz1iVsYY7wtr/L57Dw2G1dGe16wwJMUASEBt6waQ95d+wG7qysJMkhJrbdd1AKCUSikxs1KqTynqugaAz33uc1/84hcPHDiwb9++H56QMVu2bDnzzDN37tz5vOc9j5mttcYYY8x4PG6aZm5uLoTDs70SQ0DQzCaGHGPHuqXsvRskknb7QgghDj9NC97YGKEqtmkcIsLc/JChg8NTlXDMabEB6BZoONEK630LeqmzPtLUetZZbd/0Kx8A0CcQ1lqlVF3XN9xww2c+85lvfetbawGI2G/Z9Dfv5Jz379+/d+/eq6+++oYbbnjb297W15GsDdK2rVKHpz6XCZXWCFA3q6bgRBPizqqcpaRECCHEDGhTd5G9H6bcEEckzcwpEajDU5ZwrJmPxsJCA8sLtBjLLSt8sJpMrv6lz02Ln0lS0pePpJSUUkoprbW1djQaffjDH/7Upz6VUuqLQvoK1pxzX/Ta/76WnQDAtddeu3v37re97W3nnnvuysqKc67run4b6LDM0yjLnJWyZTlI0aJe0GgzWaXrwzK+EEII8VBaY0yxrsdKAXMm4rqu5+erNhyfha4dtB1kz7ozAPW+gS6z0jQ9AZtJUtLXiCBiURR9pep4PP7kJz+5lpH0aUfbtgBw8skn9zUiiHjo0KG2bY0xfdErAOzZs+fd7373u971rm3btvWndbquM+bwTNvpossTwBhCXVVVSC0hZV7VPPW0khBCCPEja2tyfqCNgQd+Mu+cM13XTTmMsuERZEeWVSbqWo9Ft98WZ8L0utCZJCXM7JybTCb9u3Vdf+1rX/vABz7QJxPGmBijUuriiy9+6UtfevrppwMAIlprv/vd715xxRXXXXfdPffcAwBa66qq9u7d+4d/+Ifvfve7AcBa2x8VPizzjDElSr4w3pcxAJFT1jAoVOmwjC+EEEI8FCqKKRl0DKFpV611zIyo4GFeqDcyazev8n2beeDBkls0ADatPPc9L4CfvXzd+JkkJX1Za1mWKaWUUlVV73//+40xfR1Jvy7ya7/2azt37lxYWEgpEVG/13PKKadccsklP/mTP/n7v//7u3fvJqK+MPaOO+646qqrLrroohDC4VomAYCsolYuxpgigKoVqNRNtDWH6XCPEEII8QO01gygwIcOnR30B0EYIsDxeSq4SG0DPrnMRieKpunYbbJxag3GTDq6tm2bUqrruj/Be9lll+3Zs6ffuLHWAsCv//qvX3jhhQsLC03T5Jz7xiT9QRtr7UknnfTGN76x71nSpyBKqauuuqovTzlcBSVCCCGEmKm+o6vqDHehyhOw8w1OVubmp8XPJCkpisIYMz8/3yccn/rUpwBAKcXMMcYLL7zwWc96FjMTUd/FtQcAKaW+x8kFF1zwohe96KFjfuMb3/ja174GAM65WcxZCCGEEIdXq7hUSyGRScH5+agyUrjp9ZdNi59JUtJv0BBR27bXXHPNgQMH1j61Y8eON77xjf2Z4ZRS13V92/j+6A0zd13Xtm3Xda95zWt27NixNhQRfelLX+qbus5izkIIIYQ4vIyGMbDP1DnVhHHBJjgdwU+Ln0lS0q+I9GUiV155pVJq7cTN0tLSpk2bvPd9nuG9zzmv1Zo45/oG80S0ZcuWTZs29e/2h3FuvfXWvnv9LOYshBBCiMMLNSi90PkQNWRTZgg+WFdMjZ9JUrK2KWOt3bNnT39zTX8n3/Oe97z+wHBfbtLffWOM6TOS/t3+UyGEpz71qWsVJFrrpmlWVlbWuq4JIYQQ4limI2A66JVrONj6+85vaThdcOmF0+JnkpT09wM3TbNv3759+/b1l/329SKPecxj+i2YEEJf3xpC6JdStNZ9c/qcc1/0+rSnPa3/eF+Psrq6+p3vfKcvlRVCCCHEMS6TLsC21pQpa7tUU1tycmpqX49Z1ZT0+yy33HJLXxTivQeA00477bGPfWxKyRhTFAUzN03jve+6Tmvdtm2/y5NSstbGGM8666yTTjophJBz7gfctWvX4br4RgghhBAzhayJSLMdICAOOEZdMpipiwuz6ujab8fs2rWr/0jfX6TrOiLq77Lp10KcczHGvoVJ35O+j8859zs4fUP6vgw2xrhv377DWFPyQ03Y8EEMs72QL+RGKz8cLDCl8WSlsCZnRtYMtYI5BHfnnd/Z9b37mjqd84THLG3hzVsWGLO1Rco+hKBdJAKrF0NYTikNBiVz7lq2Zphz1DZpTru+d18I6dRHn6aKQ05vG6225aAClnxOCCHEkWOzql2ribxeogBMbWwHl7/1C9PiZ5KUwIPX7K01dQUAIlpcXNRa93lGv5oC/0Nm8FBa64WFhXvuuadPWYjonnvueejlOBuUs0UIaXl5uSrLnHOTm+FgC+bh3bsPvu+/fuQ7tx+6775lZlAIDHDao7cVg/anX3rxC1/07ERRKdCqpBxjbAaDMnRMySkF1tXMY+cHu763/MH/5/Lrr/t6THDR8574m7/z2pxwbr5kTFnOLQkhhDiCok0QGzLzdV4FiJWqJpph0gJU68bPNik5ePDgWg5BRJs2berXSPrUBBH74laa0kLVGNMXuq51g00pbfSMBACYVVEUIURmrqoCCHM0X/jsdR+77LN3fe/+fpnGmpLJJKJd3zsEoO647ZP/9K3v/dt/91ptIHTZWEMURyvKuOys7hqlTWVM+usPf/pvP3bDyv0TAA2Q779vRBn7ZaeYA87s2y2EEEL8jzqV5/Tmg7obJkhuPsWmIO/0+hkJzDopOXToUN9yvs8kTjnlFOdc31W3PwmslOqrYtcdJOe8devW22+/fS1radu2XzKZ0bSPDARtjI4xWWvHk1Vv9Vev/ca7/+BD/edOfczmnU8/61GP3rQwv3jrN3ffeP0/3XNXTcl/7tO3LG751Ove8BLnNQBkysZlzkVWjGZyyzf2vu/PL//2P90NLhoPQDklQJUzBed8SokI9HF64ZMQQohjkw0arRnkceWWJu0q6kHE5ll/fjG8+qp142eVlPRN4uu6XmshDwDe+xhj/y4iKqWstX2Csu4giPjoRz/6y1/+MhH1f6ppmj6VmdG0jwwiatvonB2NVqpqDsn8xXs/AqwA7DlPWfit37mkGiKwd2bu/Oc8/l//z898129+6Jabvs/ZffGKW37mpc8fLmrnTM7Z6Ur5xGT+8v3/+JEPXAnsQcXHP+FRi9W26796K3Dk7Chjm9q+sjh2cppaCCHEsWsmr+59oSs82Np1bcOlLEtjTN+VBAD6jq4Pc5oGEY0x/e/9IGVZHg/bN5CV0iEEY5EIP/SBT+6+KwLAqY+1v/27vzqcq7SqjPYpN0rnhYW5f/drr95+SgGs9949uuyvPxNjbLux0Y5gFdh/4qNf/cgHrwRtT3r0/L/+xYv/9M/edsaZpxERgOq/v9ZpbVBOLQkhhDjCostMaaJtHQ5l75gnluw1b1l/mQRmlJQAQL+20XdifeBvUqq/qK8/9Nt/tv992iB9d5O1eADIOR8Hd98wk9HOGGMMUFaX/8MNCKos7blPOXtuAVC1xhiNQ60GOamm6U551JYzztoOEFyx6SvXfHNQbSqKytqCso6xa9oxGnjGs876o//r3772kuc27aqyY9ABIBal1gaYc9dGRCkoEUIIcUR50pN8oMiKEFRYNWxbBSHX0+JnmJQAwEMTjr4WpN+1WduO6TuqTRvEOUdE/WZNn9xMJpONXlACAGXp67rtukZpvmfP3n33tpxtF7pXvvolBJSIm25sywBmBIqsXVLKPvfiC42D0ARnFg4dHLdNiCGXlWdy5zz+9Hf90evf8b+/ajCHOaExClg5qwHUeNQoNH0v3ePgcRNCCLGx2GjAlgq6Ss8XsLmmziYEO7XP/A/89Hy4dkb6hY21liT9XTZ9uSsRpZT64hKlVFEU/afWHafvZWKt7Tu9IuJwOOyrVQ7LPBE5Z1YKlAYiQsAH35itLoy99xoXKTffumkXMBTebTtpftt2SykbGIKCZtICaAVAue50Pv3srSlm59J9e/bf8719T9y5I8Q2tFab+JSdj37o4JRBG2qbjKi1TTlnyKgN5MQAUukqhBBHE0MGVplbBJ2pNXpAHI6DVhfTTNTyYjypduNDYbnIUfshEEOc+mI0q5qSvjF8f463L2vtkwljTL9rs5agPMxdNn03+j4j6cdp2/Y4+Ilfa7PWGm7//oMA0HZ1VU3NHIlo27ZtW7YuhRBSyrfddhvTcfsvWAghxHHDuW1jPdGMBXjt5rQfmLTyE//386fFzyop6atJ1hKOviKkP4zTv5r2H3n4V9acc1mWANDv4DjnjoPzwADQdV2fXYUQbrzxRgBw1ls39XtBRM6ZwbACAGbImWOMx0FtjRBCiOMbcURihsy5aR1GOqCKIbsju1LSX7DXN0mDB1dKAODQoUM5536zpj9To5QyZmoBptb6uuuuW0tEYowLCwvHwYV8g8GctRYVV1VV+EopCLHTemp+xswxdc4ZAAJQCIYZtJG9GCGEEMe0TrUNjDWpTiuq9w07k5WP06skZtvwYzgcwoM9SwBgdXUVHrI68s/uovXngR9a67p22HhD69rIzM65nDgGogwAfO6TnzAtHkEbY6qB0xqVUrfffqdzRdu2R3DKQgghxCM2F/Rm2JYwLtBiWZyxYhjH42vefPm0+FkdE+0zic2bN/fv9slH0zR95/i1629yzv2yyrRBQgh9eUq/H3T22WevrbtsXDkzI3mnui480ErE6kzdtHilFADlnDIxMK+u1Eopzix1q0IIIY5lAbsA5Eh1BqDeN9BlVppg6sGLmayU9JftIeKWLVseWjvy0JoS+BeslOSc67ruF1r69KUoplaDbiBam/7Sn5RSUVQAKqU0GDzcl0aUu64BAAD16NMeE0M+DraxhBBCHN8yJ52ZITOFplCRDuhiDqaXH8y2edrc3Fz/7lpS0l+/t9Zmvm+hMW2Q0Wi09rbWOqX0rGc962FO62wUfdeQlCIR9UejmfmWb35jWjwze++dN94rBNy+fXvOeYO32hdCCHH8c27LSNeGtWNj7YJ2AxOXL3rPET9901ew7ty5s885+hWOAwcO3HzzzUVR9DmKUsp7j4ghhLVjw/0qS9+b5Oabb96zZ49zTmudc962bdtpp53W16lsaJSBKI3rA2XlgUripAyMl12KGOKYcewLnTOklLRBYwyZPGlX778/dh0ZZQFH3rAiXiuyIU5KQ0yNsYCq3xEDAAJ4oBzngf0yDoCJIQOStdYYS8REcrRYCCHETPjYKLLBxFhgSDHXLeDA56mvOzNJSkajUb8icvrpp2/fvh0R27bt26B9/etfr+u6b6cWQugv2PPe9307+sv5+jM7Wuvbb78dAEII/YGdpaUlRByPx7OY85GkNBR+WJUDJiwrVRaeMjCD92VRFEqZybiryvkUkQlDCJCtVkXbrRgDiWJRupRV34Bf9dDmBN4NU9RdC4iGWTMrrTwRE0EMGfGBYuF+naau65TicdyxRwghxFHXUfIYVWe46wbUoFtocLIyNz8tfiZJyWAwWLv+13vfv+wxc4zxxhtvLIpi7epgY0yMkYi6ruubyvc39jFzWZZf+9rX4CGndc477zxEPA7KSkJoYgBEDYBPOPfUpola6QP7RyGOMqWcs3W67VZdkVOufWGHZXXwvnphboAaGMI5jz/Tu0opZVyOaZJyTdwpzYigFHhv63oMkAFYG84UGILSyRcKUadEfdVwWZbee0SQ2hQhhBAz0iqu9KaQyKTo/HxUGSnc9PrLpsXPKinpfxYfDAbnnnuu1lop1deC7Nq16+tf/3qMEQAQMcZordVae++7ruvPAIcQ2rb99Kc/vW/fvn7Asix37Njxwhe+kIiappnFnI8oTCmxMQ5Rb90+AAAEy6TG4zGT4lwAW60VYFJKNRMKYfWG6/5p964DlM1Jj9p85tmn5JwAAMFobY0plDLe+5wzIrRt0y+3KKVizFprox0AjMdj731RFFrrGHLfSzeEsMFPMgkhhDh2WYNjYJ8peN2EccEmOB1havPPmSQlXdcxc1EUIYSXvOQlJ510EhH1mzKI+Jd/+Zd9oYMxxjnXV0X0vdRyzm3bVlVFRJ/85Cf7pqVa66ZpzjzzzM2bN/fVKrOY85GktVYKY8g5x/N2PvaUR20ion377r/+K9/2dpP3HgAUeqvnczLOOcjp9m/dpXGQo64WULmoTLTWpmCNmosBUsSuTYjonLPWAhsiBtbAypoqJQZ2WhWj1UmK1F/Rl1LKFLXBlMPRfjyEEEIcpxQrvdD5EBRnU2YIPlg3fcNjVi/w/e6MUmrTpk2nnXZafwIWEcuyvO222973vvf19/OtVbx2Xdff3jcYDOq6/oM/+IO9e/f2/cFyztbaF73oRf3B4I3epAQAckJjCQBTikubhtVcIg5a28v/4YYQQsgHjGuNBUSNikBNJofwlq9/O2cA7H76Z54NyJGanBh1m2iUqXY+Z6ozT7q46ksGPQHMBJ31hCoARuJWGxoMhkTUtq33vihdn8QcB4+nEEKIY5OOgOmgQ9twMJN7nd/ScLrg0udMi59JUrJ2D1//+8te9rK1Hmh1XQPA3/3d3733ve8FgLXrgvv1EmPM3r17f+M3fuPGG2/st3gAABEvuuiiJz/5ydba/j6/Wcz5iGJbNytEVA0cIr/0Fc8GhJzjrTfd8+H/91NGLXRtCrFBJMrIVPzx7/7VwftrgPCkp53ygp9+WkwMACEQQ+jCeGFxEEIAUCmqtubQ6rZt+gdJKTWZNN5VzJqyDiEMBsN+OaovNM45bvyFJyGEEMeoTLoA2zlbZTJuU01tycmpqQcsZtLRNedcFEV/CbBS6nGPe9yrX/3qj370o2sBiPj5z3/++uuv37lz5xlnnPHYxz5WKXXjjTfu3r37zjvv3L9//9p9N1rrs88++61vfSsi9g1h+wWYWUz7iCmKKuVGgcvUKY0/+VPPuvzTd9x8051Aw8s+ePVkhM945jlFlYjDof354x/90ne/eT8BoI6v+LnnoW5y9AjJ6sq6YWjHqRt8/GOfRbCUdVEMxqP6rm8fNLgIwHvumnzsr79gbRFC64sh6v0vf/nLnfOTydj5gbUWgOT0jRBCiBlRYHJOGq3DDqCi0OmSwUw9YDGTpKQvFhmNRoPBoGka7/1rX/vaPXv2XHvttX1A34/k4MGDV1555RVXXLH2utivpsCDnU6IaNu2bZdccknftqSqqslkMhwOQzg8ZRCICMBrUwJgBmZgxNm+TtfN9wfVfF2Py7JsQ6NQ//Kvvuz/fOcf79s1BoLPfOLLn/3E1UTA/ODGiiJQ8LZ3vPqZz3xKzMuFh7rGwZyb5L3WDy/7yGc++N+uBdJAFoC1QuIHFpkO3A9//d+vW/t7N+9YfOUrdZf3VoNNfR0PgmOIgBv+OiEhhBDHIIV1Z7xO7VgPC1idg2KlHn7+l66cGj+TSSjVr5GEEPoyVWvtO97xjhe/+MV97eraRcH9G/BgIzV+UJ+RnHfeeb/1W7/1xCc+sV96adu2LMvj4PSNQs9kFXoiUMoA5jPOPOVdv/eb5z/zSTtO3kQEOSvEEpUFJNR07tNP+o9//NYXvPCZbTfqm8s555aXlyHMx857N7QFAGbAFrDL3DLkdX9ZH2MMZTFMEYAVIrdtq9Ss7j8SQghxgkMwibIGWyExVClEU/DDrIfM5AUppdRfVdO2rVLKOdd1XVmWb3rTmx7/+Md/4hOf2LVrV//iurY0AgBd1wFAv0Fz6qmnPuc5z3n5y1/eD+KcizH2yYq1dqNfFGxNSYTApmuT8waRu7h80inD3/791+39/qGvXPON++9bXVzcVNejcqDOv+Cp20/eBpjq7r6qckS6abqymHMOQYVqqF/40+ed84TtzlYUEyoOoVV6/ZWeQXWqsdDUqXALKQWGZKyKgdTGr9IRQghxDEpkCsTOwnxKodza8HcrMH76i85MkpK1xqyDwaBt2xCCc65v6vr0pz/94osvvvnmm6+44oq9e/eurKz0TeX7SlhE3L59+/Of//zzzz+/bzza94FdW1Pps1VUFpMAACAASURBVJyNfmCEITOB8zYEiiE7rwFS261YT4vbzM+86tnANsaoFGhDMXbGdgCAyhJBUQwRu8lk4r1X7EMbvTdnnHmydbqua2utcy6G9ZO2FCGlxpjKaIeITdsYo43xmdoj+wAIIYQ4IZjIpA95u6PlxjX3Or+1ockFl54Dr7pt/fhZTKLvlpZzds4VRTGZTACgLMsQQn/c5olPfOKTnvSkvhV9f/dvCGGtl0m/ytK3LQGAfl2k6zql1GAwmEwmG/0ADnGbIlkoi6KMMefEzhXWakSdOIXQIkZtNLCKgYksOp0Td22w1nVtypmrQUFEORlrvTYIEBCUQktZ56QA47p/L+pYllU9CcvNwaqqmDmlwGRkpUQIIcRMKLBqaewiBlCmTKn1wVi3bVr4TJKS/nwvMzdN03drzTlPJpOqqvoDwA9MVSkA8N73RScA0J8KBoCUUt/a1RjTN3tdy102ekYCAMZYpSjGWmttbRG6FLrYhVqbwnurLaXUaeWM8Sq7nKmpQ1kOrH2gEDiEYEEbo2JaRjApEStG7VBFRmW9a9v1S4V8YWJgVDwYFEppBOu9BjbE+Qg/AkIIIU4EVqsVyFWC1UJhPSrUfO056KkX686qyDGl1PeM77MQ770xpm1bRPTe9+siRVH0F9/08X360heRAAAi9rf0hRDKsrTW9mUlG33vBgAo67IsjDGhayNlpaw1RpuCucw5paSMGVrju67rutoaD8ApdYicc1JKFaUjopy59FWiDKCNscBEkCjnLjQ4pXyZCYyxMTVdXDFqwVqXUsfE2mz4h1QIIcQxqNW5gMU2HTKcjFuIKSlON7/2Y9PiZ5KUdF3X90rv737rG5b053j7TZl+1ybGGGPUWq8tftR1nVLq60j6NOWh9+Zordu27XOdWUz7iIkBcm6dR1TQX9VLzMSRgXxRqmBDl5kCQzaWnU9ASqkHlp2cK3Jmo/sOucpbm5liiiklX3oAamNrYP0Wvilno7OxiKgosbWu7SZKKYCN/XgKIYQ4NnWUFnSMQTE3lbW139rE3Svz1bT4WfUpWTvr2y94rK1w9Cd++yykvyV47U/1H+8/9dCDOX1r+X5B5fBeacvcTyMzIXNG1MyZMfcfnx1jAUClCA9+QUwEAB4BQtt/FAASAADYHAEAcmZjCgCIsX9gCRAiEBAAACJaaykxADosp/29yhiACGyZLaoUU9L6gdxxdl+sEEKIhyBEgAc6ngMTMCEgzuzSl6OMcwtpSXsMcTAOLavlIS7B9Nec4/RhEEIIIcTR5v322jaasQCv3ZxylQoHL/5Pz5sWL0mJEEIIIWYCFWlQqBiobR2GvB9clc3UpRJJSoQQQggxEw3UE1rRpDqtuLlvLljSReKpuccP1JScaLUFG7xeVgghxHHieH39HbRoeUuLK/N5IVVbVvlgVddf+eUvTIuXe0+EEEIIMRMdtB1kT6ozgPW+oanIGJreG0u2b4QQQggxE4xkGVExU6g9dul+sBVMP+EqSYkQQgghZqIotk1sa1h7sNYuaDfQ4dCF/3nq6ZsTevumb5rSV5b0bVQQERAe5gi1+BFklzEAUO6MWoQi2AGlCSakB3qxCCHEDwuxVgNn0mAYV8aQvV00WK3iQZs39s/SBKyYGYEVolKIihEYGI/TJpa2myCZzgTSZczJNJ0qthTrXxoLcIInJeLIwOWJ8dsDQWEodGPNNUNOMOe0ZH9CiPVVeW4UknYUskdbtaqlbjc6BTA42lMTj0BHyWNUXUkmVLoBt1DDeGVuflq8JCVi9ooq6YgqprYt3GYIq2WpVsIh4KmdhoUQJzg0iNoBNV1KmZUpHCgPrbxqbTCt4nlcqlPtIOpqftyMLdFNr79sWrx8e8XMZcea2AAxD8ZE1upJM/GqTNNuDhRCnPAmeBDVyUVIaGDej+q45NQWxBChPdpTE4+ANTjOXGZqK4NhXLBpXI61nxYvSYmYuSoU2po2jP7bf75yPNJWDZTRXVgFnn4sTAhxYkPlRpNvnuI7fcqpb3zz6W2cKNXM2S6CrLBuJKhBwULnD0XttC5VmvhQuPUvjQWQpEQcAS12QB6xiAdXP/zmnXZ0AAK5anuEcLSnJoQ4RrlkWqXqlv6Xv7nH8Fm2oCbxCIrDeSmrmD0dgemgU26Fw1K935VnrLbLF1x6Ibzqy+vGy/q5mDnnDKmafR2H2/T4gCJT+GHI9dGelxDi2NVaQ8jlEO+HObX4hKo8zWk1LKbegi6OTSmrAmxrTZmytks1tSUnP71PiayUiJmj1lRKx3wodKXDXCvLikNsDU4twBZCnOA6Wqm4MHxgfs6ZRCXOB7x73Oy3au5oT008AgoMUTbKOewQBxw7XTLrqbmHJCXrmn6GWjxyGUNGtmYL8Y0JNxtFQG1hK6ZH1qekTqt2uMlGlyMlDypOKqIakLVmFRGsVcPYxspmkzKSHdmuTWmgFxumUreGoDXlMMEI63Xj6yKt1u0WPxyrvGjtKIxcq8kv6rBrBQbzVZXR+tDllNDPY2ojSk2MELNS4CBzTbAA3QSIu5wRnDUGSJ6fNxKFdau8ju1YDwteGXKxUg8vf/NV0+IlKREbxtDO1020PBkw1G3JutIOXWow2xDQYvD6kFIua0iKO+WxaQZuOKROUURts3Up6y4cKky5bvx8Vq3GccrKRexCBxUXhaPlrE5eMpjrUbaKVHIlHeQOdCxJdj+FEOLhIJjM5MAOFGcc5NiZgQa5+0YcXfjgjcxrN2H+CFdictKanVGE2GhAyDa0rYlJQbSUgtuyXy0hRp04Z12mgwPrcsNNvWyA2wRNaCA21sZp8eMxLajkVaiTOdSyV2hVxyp0w01d6owBUHrCZQYfm2RllUQIIf45iUwBtrO2SMnZzQ01JSQnNSXiKEL84db9a939HxnFTAjlAkHgWkOsyXCEhb+98dav3jm67d6VQJMdC8WLnnzGy88/M+c4tKDVIGkfVaWUcbiaAozd3N9f95114/3iJpXuKylkxGKutNRNutDo4QLt3u/nrrzt4DfvugvAvOm5jysoDEh10/9fCSGEAAATmc1Bb7a33Lj6Hue3NjS54NLHwc/evn78EZ6fODEh4lpa0q+RMPMjvmPIZhqHnKpxTE4xFfrG3c2l7//MlctD16y0MABTmH2rn73lpj+78vbfeeMFF52MQCMz9JOWVayN4W/cXf/J313z+T1u/Xizq1YVcakRGsAu8tAVumXO+Y8+ecN/veI7jGAYnnv2pvNOHXYAzMfnXRVCHBPkv9dxATVqXBy7qCIqXebc+WCc3z4tXpISMXP9Sgk+ZG3kR1spibn1RofJyCoCne9qB7/+F1feel+paeVl55/yuK2lrobX3rH/qlvuvfXe7u1/fs1nf/sVpxTLK6OVqlzMobu7Hr7jfZ+5eTQ1/iP/686zT5mvm47At5l8pntbc+eeye/+7fU33j1iuwBpnKxNxnaovEZIUnAnhBAPxyhcgVwlWPUI9ahQ87WnTk29wEiSErFhILmMCZU2BDWWf/ShL926VwM0f/rGJ/7807ZDSsptesszT/mLa7b81kdv2nuI/8N///zvv+4pc+Wc4hDd4Pc+dP23xmh1uPQN68e/8+Pfe9+bdiz4NBqHzWVIeu7ff/TGy66+p9XmojMGm7Zt+9y1K03MNnaIm3Kzoqy0cRJCiIfT6lzAYpeXDSXrF1NKiuPNr/3YtHgpdBVHx49Q6Op1Ra7EaonVYPf94fPf2A84ePWzTnnNzicaPeyq01Y6O8D2DT91ztMeN98i33hXWol2knwG/e3940/cdG/W+Mqd89Pi771nZbwyOpQ0lfMKzc33tB+85p75bcPfeNFjPv72nzhnEWvQDDCvWoaMxs3iYRFCiONJf0swBsWhqagGN99yszIvKyUPi5mZGYCJiRGUbGYeVoyZCJCyVZhDNMYgAxODeWR5yZjqAQSg0Cl8//X3tgBDVf/mRefWccVBUcSDZVk1PMdNeNN5m756x13fXln5+9u//7aLTq1j8d5/vD2DguB+68VPnhq/HP/+tl2XPOOMA6p1bRza+pcu2PKrP/fsbVjnzKgYIAPAoagfkxtiheoR51VCiH8pCkBRaUTFoJAzRgYi0I/855ljCsMD9XT8wAvPcb4LjBxUNNphiMNR1xAcKmkOcgZY/6SAJCXiqHmkiyXW6twxIaWs7vjOXQywY/vmrUtzyiAqziE6IE4JQZ26Y+vA7ekyfft7y/W/2h5T+M5dewHo1B3l4uIQAdaNn0S69QAGdJVFReVjthf/2xseb+vvT/m/86Ms9gghxAnF2q3jPDEEnp3xBRWVGu193nteAK+5ct142b4RGwY1HYBSaI2rvr9/BVANh8Z7sEojIjIzZ6aoKZx56vbFyjDrO+5apawMpn0HJkrh9kUyVk2LB1d89c4DCVCFJoLRkDfDiia5NVAIIX5EDAmJAQmobR1GOoB+wG7qdoQkJWLDwBiNLdFYZUxSGhRSqCnUzFkxIHKKQQEZyEvDojJEOdeZlLHOWFJOKWVSyDFNi4fQaAaVO8VASmcyo9HIVItH++sWQoiNqsWmgbEm1WlF9b5hZ0gXkaYmJbJ9I46aR7r9URU+A6ZIHbegXKZGQ9YGU8pgwGjdhGQcKsAuBcXZKvRDS0Q5IRjICXQqrdI5pnXjgXhgGChbP6TU5QR2bvFhCoxk+0aI2ZHKvuPDfDQWFhpYXqDFWG5Z4YPVeHzNmy+fFi9JidgwjDGrTdTIWmlQCACFs6wc5YysEDVBBmUAoOs6ImJGpRJlRmUREQBRe0QkXj8etKvrlpTqsrIcmy6jMSYHeXYUQogfTQdtB9mz7gxAvW+gy6w0A09LO2X7RmwYIcXAWSkoDCKDQqWUTqyVUogYMyvjiFVGlcEAGmbAFhE1a6PRgOIAXU5xWjxQ9sVAI1AXrbXO2kFhlZL/I0II8SMiyIaAITOF2mOkA8oPwUx9XpUnXLFhEELhK60Qcg6hZeacMyhnlEbERNk4T4CZ2DgHxgJolUtgFVKXEzBRl0bMcVq85qxRFQYN5jblxGY8mnQg/UiEEOJHZO3mVTXRpBwb5xa1G9i08pz3/MS0eNm+ETOHoBVkZAAABmIgxTlzUvTI/vkdUqGKqbOLc3S/d8QIituoMEf0fNDaHTG1JYBxuWrbOkOysc7fDxy3eIimAAAFlbHQhvXjs1E1hxgz5CaxZ80lclbUgUEmE8CBJx2MBkWRSLdViDVV5IZF2abYEhljLDNwmsXDKMSJRWWilKPhiMioEBEIKADKy9ZGUqS2AR9tIo0xR9N0WGzxeWpBnnx3xYZREWOmyiFgMUlDpPreFTOHKStlaC7m2kALfm7/pJlkl3OyCZ6z89zK4oGaPcQSJgfbTEDFlPiK6KeefJp1UINijRmMykkTJkWQmYADGgBAbYgSol4KddKOFdexRg2lZuo6RUBOFleEEALgwY6uqivJhEo34BZqGK/MzU+Ll+0bsWFo1mVZhjBKtjhtc6FUQQRdmNzHyepcuglaFxNuNfrqW+7at2yR4bELjVKtcnZbxRmA2HXdYFp8DXDygq47MGaIgb2xhBQhGlvkmFJXI0XIiVKOMSvrV+OQ9EIEQ8AaMuYIWqmBHCEWQogHtIpLtRQSmRSdnw+YkMJNr79sWrwkJWLD6EB1OaBL0cDP71zKlJcPHPr4TbseVRU1DQ/xfKSySfUBmvubb95veLJt+5aXPf0xdSIKK8994tas7b77Vj/39T3T4s8+qXjJUx9lczTEA82hnkTlRl2HOSuNpnAMCGhAe1AGMJuiYCBKrLFiLtvALeMhPs6bRgshxL+cNTgG9pk6p5owLtgEpyP4afGyfSOOmkfcZl4bBRziiGN48VNO/i+X795zEN5z9f2vOK9LKSxo0m2clOqKOw58/uZlpeAnztoyl2BkquFcesn5p/3NTfffsS++9/rvvGTnyevGn3/S4laVGqObPF4wNO+rmFQFSM0IwViDGjpiFbrE7KlZnSuqbrxcDeZXE9VdXhzMgeJoFUfpXyLEj0tO4h8fUIOChc4fitppXao08aFwxdR4SUrEhuFyF8nqAIvzmnHwyictvfsfD3zrbnjtf/rMSy88+wlbK8D5L9951ye+uhdo7pyT+O0v2JEoK8pNjGducv/Tk7b80b2jr3xnMi3+V37+BXX4fgNFDpNO+3Gu/upL/zQe18YPAeir3ztgAAj4szfuuua7c2hIjeHnn//4pbgSczs/NxdHKwgAfupeqRBCnGh0BKaDTrkVDkv1fleesdouX3DphfCqL68bL0mJ2DASMGVwblhPlseJf+XlT//2/i9//tZD19wFV951pwFKAAAKFJy+0L37dec/djGukMvUztsBteEtL376Hbv3f+b20bT4U+kuo5RDX5RVRP/V2/e+829vazNAVkoTZiAABv+hL+8+yAo0DbKOKr7lRWcVhrt6slAO6roOITgru6JCCAEAkLIq0NY2lanTdqmmtuTkp9xyCpKUiA2kM94hBoK5xaUtMeTm4B+/7txPfzt+4Cvf3bf3QGndIaW2JnjhUze9/WXP4HqlToOsszaZRk0idm750n/ztAu+fuhj1+9dN35zgQeTbQh0Xra+PP+xS89+3LbxpFMpkSsScw5R+012fF9bzTtYLdTwvNMXB9QQu6yG45iKomRIwJKUCCEEAIACQ5SNcg47xAHHTpfMemrucYInJQRAAAD44O9SDDADKqeIHCExEOasEYEyYVaP8MXbxwwAGqAeA4BGVZUlvOpc/6pzn/zDoXEEVmVoLABkCMqAAkVQgH3DedvecN62deOXMyhMAwSCYZfAQ/zwLz5lvYmc/QN/FAAYHEwAoaV+gvLPSIgfF1PKTI5ywqwJEoJiiAjTf8YWxyKFdau8ju1YDwteGXKxUg8vf/NVU+OP5OTECQsREaVwTQghTiwIJjNpsAPFgIMckyn4YVJLSUrEUSD36wohxIkgkSnAdtYWKTm7uaGmhOQkKRFH0Q+tkfQZieQlQghx3DORMR/0yrUcdX2P81sbogsufdzU+CM5OXHCQsS+0OL/z0hQ8hIhxFQonUqOC6hR4+LYRRVR6TLnzgfj/PZp8bJSImauXylZd71ECCHEccwoHAGViTqPXRh5Nq1XnRpMi5ekRAghhBAz0epc6MUuk4nJ+oWEWXG4+bUfmxYvSYkQQgghZqK/JRiD4tBUVIObb7lZmZ+6UiI1JWLmIidCrVVGMAyBklaQDKDCdLSnJoQ4VgVSmDIoZZCAlHHcsj4eOgsQAAIoAAJkwON8Ixs5qGi0wxCHo64hOFTSHOQMU44FS1IijhopKxFCTHMcZB8CAKzdOs4TQ+DZGV9QUanR3ue95wXwmivXjZftGyGEEELMBENCYkACaluHkQ6gH7CbmnNKUiKEEEKImWixaWCsSXVaUb1v2BnSRaSpSYls34ijRrZvhBDTyPbN8WE+GgsLDSwv0GIst6zwwWo8vubNl0+Ll6RECCGEEDPRQdtB9qw7A1DvG+gyK83A09JO2b4RQgghxEwQZEPAkJlC7THSAeWHYKbmHpKUCCGEEGImrN28qiaalGPj3KJ2A5tWnvOen5gWf0Jv3zy08TkzAzD3ZQ7Hw1H4Y4hGpgyMCgAUpEwNUwBbKqkpEUJMgYzADMBAD/xCBiDe6D9KIyJlQkSllFKKiZlZa3281tgVqW3AR5tIY8zRNB0WW3ye+sVu8G+vEEIIIY5VfUdX1RkIoco1uoUaxitz89PiT+iVEnF0Ha8/GQghfnxyS/DxoVU8j0t1qh1EXc2Pm7Eluun1l02Ll6RkHfJieZjJc4sQ4jDZ8M/PJ9jzoTU4zlxmaiuDYVywaVyOtZ8WL9s3QgghhJgJ1KD0QudD1JBNmSH4YF0xNV5WSsRRs+F/4hFCzM4JtqJwvNIRmA465VY4LNX7XXnGart8waUXwqu+vG68JCXrkBfLw0yeXIQQh8lGf34+0Z4OU1YF2tqmMnXaLtXUlpz8+jcEA8j2jRBCCCFmRIEhygbcAAFxwDHqkllPXRD5gU9s9AxUHJsIgRAUABADs8oMwJiJIB/tqQkhjlFMCJAQNTMSMCIRcFag6WjP7MeDfYt1YmQGYmYGYkBmOD5ff5HHyc9BNxmroYkHluzSgcZe/qarpsXLSokQQgghZgLBJMqKzUAx4CB2wRT8MJUjkpQIIYQQYiYSGc+mNabM2dnNDTUFRys1JUIIIYQ4wmxCSAcc2g6Sae61bkud8zP/5HHT4iUpEUIIIcRMoAYNC40NUWEyZYLWddr57dPiJSkRQgghxExYrVY5FzF3HkMcO9K1hU4NpsVLUiKEEEKImWh1LvRim7JN2fr5wFFxuOV1fzMtXpISIYQQQsxER8lBgE5xaCpq0C80VK/MV9PiT+iOrvyAB9544ANyO+VhlzN1rStOr4blqz5e4P/H3p3H2XaWdaJ/nucd1lp779pVZ04CAZIQRgMRUIIyg3S3Ng4gomB7VRCn+3GAa1/tz6cH+962vYKB9oratjhclW4BRbptB4IEbUZpJAOJEAIEkpzkzFW1915rvdPz3D8qIMGz0oRknzpV9Xw/lUOGH5/Pu2vY61fv+653UT8ar+XomOfbPTKl1HkqS2utRxRboaW1nE8TTGxeCO3s840EAbZObwIQBBQQBEHYpceUAEGiZKuRjTxqc0xweoJrknloTmRPlxJ1bnhfc3FiTvzwT10BUq2OL+kWNJlMYuq3e2hKqfMUoStZRJAIwKyjzMm2IWwYmmz30NT94NyhGc8dQyXeVrW4imZ3P/eNz4eXvvuseV2+UUuXpPP1qAtFSIoIy9i5QyEO36iulNrzCmTXWKbMxJmBwedSeX9gu8el7h+BTAKADNz3HmM5idVY/OByhM6UqKXr5raqg7U29iBSjq//TV17lixlcFlRKbXHISXsDaIJIY3HTUwtGgYqwMOPvVfnnx67Au0qTxaGsD22AtPgqsRaStT2sa4uMAfgZnQgpQAkXYgGVwyl7R6aUup8hSaXQoTG2vmiQwJrrWSjO/52lmmyBIc7WF/lfak5uJFPjBaL973ymqG8lhK1dAIRmACgD+spx9GoJsPWRi769qKUOjtCQJQYW0S0zhpjy9YeE911sKME6AvESkywAO2xMfhC5j4e/qulRC2dmFKy9a4iI0B1H4qAI8/S6TSsUurs+phTys2oZs6JS8hpNBrnXPTh4jsLQ7FMYgqX0Ffo2pOuvgyiLt+o7eO9F4shtp58LpHQIow4GZZuu4emlDpPGZyaqjaEhjjEDlFSYhADwNs9NHU/OHdgPd91gMfWOPZrphSXN575xufBS/7yrHktJWchqN/0D6YSGQAcoZTkCAEKQOGcEHX5Ril1dogzAOAMAOAIARCEAVh2+tuGoAhsHUsiIggg97GYsfPZfu6w5koKQRf6etFVo4NVGXzJujinlFJKqaUInCtMFKyEMOYO/WqHi/XJylBeS4lSSimllqInaWhfzOxK9tU0UUGO1/+ztw7ltZQopZRSaimcxTlIVTh46uK8Fhu9SeCH8lpKlFJKKbUUaMDYtVDFSFJsUyBW0blqMK+lRCmllFJLQVEwn67I95Ds4qivDnaSn/b6Zwzmz+XglFJKKbV3FDY1uN7ZJhfr97fcNZI96d03SimllDq3CGwp2YgbIwA0HDPVDNYN5ff0OSXMjIhESEQiIsIAQER6OI9SSin1wDkbItXSz6OfWt7Y76Zn+uqaV107lNeZEqWUUkoth5jMhcSOSQDHOSZTMZjB+J6eKRmyu8/XU0optV322knWmW1tTOdxX87iD3XhcyOkeriU6EyJUkoppZbCJsByuiIXIJv2Tl8d6pivuvqxQ3ktJUoppZRaCjRgca1zKSJk2xQMPhhfHRnK6/LNWejyjVJKqWXYa8s3ztAmcpO5rdBszlaqA/MqBxoP5XWmRCmllFJL0VGuzVoo7HJx1TRjIYk3vOxtQ3ktJUoppZRaiq2nBGM0ErumtFit9tJtTJuh/L2Wb/basgUiiogIiIiIIIKI7K2ZNaWUUufQ1kXnnssNIsg9Czq79fqLErkDW2HkcSgp9SdqnnDmoTkRnSlRSiml1FJ4f3hGC2KoxBu/YuuJK5vPfePzh/JaSpRSSim1FAKZBAQKcB8qiuUkVmPxg2sSWkqUUkoptRQ9dq1sWjHBELfHVqIrVCXWUqKUUkqpc2slmgNwOEFc5bW6umTDCi0W7/+Bdw3l9ZwSpZRSSi1FxFAwVWKCBWiPjbEqZLgIwNknS3SmRCmllFJLUSSbIgJFOHY1xXKSqglYXb5RSiml1Lnl/cGZaQ2TF+vcqq0mLm88843PG8rv6eWbL9wXvvU3X/gTd+ft4tsGR6a0UThFh6tQ9TTi3DmpIobtHppS6jwV0qYdeZvHK3m2EKjtfg+jdTply3aP7IEREAD8+8vN7j2hZIsLC4e11JAJ+9jXi64aHfSZh/J7upSocwPXg3U+lEltKeWjBucI42KT5d38o6iUeiAmtDZLyTmIpUI/6bHv++PGG4DRdg9N3Q+Bc0WJQpUpjLAVv9rCfGNlOpTXUqKWTvy4mA5tLgFcs1/arqrcIp9xNPh9qZTa49AimjHwPOYMErGqxHiMCGa7R6buj55k1ezru94Zxsl0VmYVw3Xf/ZahvJYStXSlCpAqix1h03JFPrdxNnLTpBMlSqkBndkUc6EJYryr/eYi7DPmIJUQIW730NT9YA0sAEaFu8ZJnNdiQyWprwbz53Jwam9qYgWIIfKbfvna+RxJGmNtKjPdu6OUGoJQzdubLvA9XXTR//bKR4S8QGwnPoIMPstNnYfQAMJqqNaTcYgNpnkVR74ezGspUUvXcWaDhpp0Mr35hy83G2ekdc3agS7t8B1rSqmlmWDTE83a/CNvO2rhMlfBPLNI47d7YOp+MQkET1fk1yVO2zO+uXQeN696/dPhxe89a15Lx9eAyQAAIABJREFUiVo6501bZugxrxyxi3Vi75pJ4uMVTbZ7aEqp81SwRjiPV+AETs3aFaM8S+3nRnWT+8V2D03dD4XNyLjOlSb31u9vuWskV8Mbg7SUqKUrPY9wyulMSq4CnhEx9aUMPrpaKaVy3qyLJ3t6umJMkRqmC5BZe6qh4al/df5BsaVka7zDXnAkKZpGxAx2Dy0laumEUuTgYMXQyTaveOOoFKKRyP07p6TNm26y3yVfEucKKC1GzC2gGCOUEJyjSerTyBWbC7KbudDnPDZrnXBjesvQ22aSYYbtWfMLe6YrZgz7rHTiXCe2domyMHZneh7VTUnJuKZGQWbwK/N+RgLWoDFIn98fIyLMg7fgK6W+TMhVLy3yFOKMuMRUrBigwQ2SOwaLCFhEg0iAAIACsHvPR3C2D1hBtxmrqS3ra2blTDt51w+8ZyivpUSdI4iD5wp/mSZu2nbJyWIs0PaNmJHx6HOHxcWIDmNlzhD5YiCTBKqw68Z+MuFAnNC44nwuJsQztW3Omm9mq4fXmvl8HhufSh4Bx1L6bHp34MhonXPIbmQl58RdwSadbupmq4J0XXDOWUslJgAg0hkgpZQCAAAxBdiJHaP0MCop28ZBPxjXd0+1Db6yEwwlGyPeEiN2BhCKi31vUyZIjnP0B0/SPsRkspRimnx67HzppGvXLUifoYsdpM65NJQPBtdzjJK6mCqqKZNHe8Sn/f3dbTTFjL3kJBjdeFRXI8tYEgkbYzJgEhCgUgo90OqllFK7R2Zbg4ve1zl7d6DjrgHdU6K2FSJ+8TTJ1snKXwkSYYRmlSFKayC1bCXB6js+cvOHPjn7+NGNyIsLVut//IRLv+Wpl5WSJg4MjbOpEo2IrMfNHGHuV/7733zqrPmmlrYEASrgHLKFfBL33XLs1Ls/dvI9n7zleGc4LL7mEavf+eTDT77kwCZObJoLkh+v1NWImUUQEa21uejyjVJKAQDYBACnvdnfc2u7o1Qd6nh21dWPgRd//Oz5czs8pe4hIvd7vsQVnseSR/OUPQnX5iO3d1f/9p9duz7x3UYPY7C1Pbb55zde96vXfuL/+t6rnnkRAs/spFr0Qqm1Vq7/XPv6P3n/NXf4s+aff4jH3Be3mhy0snn3Zvznb373zXc3p86cZIAEBMA333bqN9/z6Zd+7UVveNkTfN10fcg5G2skiwgbY2C3P8lCqXNEJx13BTRgcG3usw9osBYMVbTOHx7KaylRS7c1TfLF8yVf2WRJKn1lTVzMHDGYcls//qnfuvbm443hjW9+6kMefagxo8kHbjn5nhuP3nw0vPrX3v/nP/ttD6nXN2Ybo2atxPC5dvLPf/PPbpgN5v/41c+5eNXXrs7tcZ6u/fCvv/1Dd+YpxcsuGj/iwsPOm4/devSzZ6Jg9Ud/c7SY0Ru/76vRYYyZMBkCZCGElBKgrooqpRQAgCXcBG4ytxWazdlKdWBe5WgGz4PQUqLOhX+4y/UrmE5A9gUzkrEMLTav/b3/cfPdBqB7w/c+/qVPPgI5k9//Q097yG+9/+C/fOt1d5+Rf/2ma37+5U9caVZIYvLjn/u9D980R2fi1d9z9vy/+sO/+g+vfE7dzSeSZ71DmD7zkvYnvulrn3P5aJNWK+kkPvJNHzz5b97ykQjNWz/wmR9/zpFLLr5IcpYcfOUzZyHDIFpJlFJqS29KQ/vbcsJKNn4lYyGJN7zsbUN5ff9U59pXvLpRmRH7Bkf7hMa3n4jXXH8ScPySr3vIdz7p8dZMwuhhG8GNsf+ef/SYJz962qN85La8kdwiVwXMrSfnf3zd0WLwRU+aDuU/dudKPL0uJG098bJ4/fc89e2vedbXP3ZVSKpw2km2Ul7+dZc96+H12KOFctPHPxUzeO8NgjcCHKVkQn1cmFJK3SNwrjBhNBK7EXfgp710G9PBRz3v8VJCX/QZYAAGzAB5O0e0GwkUlsySWYoIixSRIiKA9+9jzm1dFi6dSRR++8NHe4AJtT/zzEe0aSNkrPvTq410fkW6+Ior94OkWzc2/vsn7jq4EsHUv/HXny5AEJt/+Y1PGMrfcfz4f/ksSMoVAtP8sodOWJwInO5DXUmHji1Z1175uMOLFCzAp+O+seUqnLZ13fURgQWJiO7v69IP/dCPf/hRIG69UQjjPW/UmAl1F/kOQ5CkR1cT2JUIHOOphldk+G4AXb5R2+b+Tpk4Z0oQRs6FbvnUbQJwwZEDh/atkEUkKTF5YMkZgS6+4NDY3xEK3/qZ9fZrjqQcP3Xb3QB88QXN2toEAc6ajyHffsdd8Lh9pQgak2JwVMjYqh53LI77NubGebQVCAjA1HPfzUgyCorxRiiz5Jx1S4lSDxyebaerIKDuI99RvD88CwvHUIk3vhZf0+zu577x+fDSd581r2+fasfgLgAQobN+dNfJDUCaTGxVgSODiCgiUoST4XjZxUfWRlbE3HLbJheymI+dWhDhkTW2jobyBeHTnz0miKUUEOIciYsRNkillOJGK+ORlHLr544jlAJw+YWrRgSECmAGAlsBgID+JqfUUuiP1k4kkElAoAD3oaJYTmI1Fj94q4OWErVjYErWNWgdWZvJACHHlmMrUkgAUXKKBGyh7JvUI8tcSluYrPPWMXkisjmWlAfzAvN5hnt+G7MoDFKwZBtmdd0wM9qqQvzwndkBPOzCg1/9yIfU3qG1LBILMhERPfCDa5VSAEACKF96iWL98dppeuxa2bRigiFuj61EV6hKw19IXb5R2+b+Lt+M6qoA5sRBeiBfuDNQjMWcC1iwxnQxW48EGHIkKY6wmjhmLhnBQslgcuPIlJTPmgcE78YMgojC5LwFLqUIMMT5LJKfpM1f+qvjd55sAZuvuyBeOHWhDQIkzAwogogCjAI6v6zUA0WfPzeAAAQBEL7SUxfVdlqJhuBwDxurvC81BzfKydFi8f4feNdQXkuJ2jGstZtdMiiGDBACQO2dkOdSUAjRMBQgCwAhhK0jVokyF0FyiAiAaCpEZDl7HgAqPwFgROJM1htkI4yMFRqqczwazJs+cBwBLrjw0M9+12NSu9mFbBAMFYOOmY1A4uKMTkAq9eD4kh0k2vd3nIihYKrEBAvQHhtjVchwkaHT8fTdU+0YMacohQhqiyhASEQmi9laNElFyHoWKkgFLKAVAewR0YixBi2QRAglp6G8MZBSIRRmFgFBECRGHFV1dhO0/qfeduvdx04AmH/xDRetuJhiX9AIEnEwkCUng6I/U0o9KP7hJUvXbnaiItkUESjCsasplpNUTcDqnhK18zFCXY0MIZQSYy8ipRQgb8kgYuZifcWAhcV6D9YBGCoNCMUcSgZhDnkmkobylrBvAyIwc2HgIiAEaNq2m+TN1/zeB9750dsCTL7jqZd96+Mn4CrnnB+NrbXEBUreqjvG6uyjUg8O+qKJka1Gois4O473B2emNUxerHOrtpq4vPHMNz5vKH+vN9C99swOESaiUvLW5sRSinXIzKhncj640AoUwARcoRQEIAnCNd7P3fRnKI5SDm5thU9UngWBpE+EJWElp527IOW+AbC+jPq+LZBdastdUdLBCpKtAYBgZB308ez5WGS+Uq3adGIzTkZGIlvno9TO3/07Hzr15v+5Sab6liuq17788v3end7MceVM6YKVCt2EULqSOKfGZk76xqnUA1VAEFlKIiLOxQFREdr51ylBAAhMzEACCFIYCrCFXXoEi+3nxA7GGETaPky6IH5/VQa/iPpbndoxRixYeOQRsF7kCXJ7dMOuYC5ElldSaS30UK2cXHSL4kvJLsMznnTFyOGpVipIDSxO94WB64G8FHjh5dMYZP/aAV6caHFEZbPi9d/929M//eabLMBXPWT869/3FAuLNlWVR+xQhBAYSmsNTYiAHbcITs/fU0opgM+f6EphLBLG1KJfbWG+sTIdyuuUgNoxjJimaWKcZVc/7EBNVDNDiIvjkp0pjV+g8ynjIWved+Ntx9YdCly+2hH15N3hkRQAFh/CeCgPBJeshjlLSiHZaYEaYPQHH21//D9/MoB9xhMe/a4fu7LPXJAyF4G4oCa7ibgVwDEVQyUzp+T0Z0oppe7RkzS0L6Ric/LVNGJGjtd991uG8voGqnaMABRKRJ+ThZc+aV/hsn7qzNuv++xDR3XLkzMyTdx0uT3FK3/4sRNWFoePHPzmpzyizcxx41mPP1SMO3Z8850fvWMof+n+8bd+zeMcVYA2MWeCt/7tZ3/4D24CgSdeeuiPvu9hBrLlMsd9iKaLBaXlMguly9aJbzJIlsCubPfnSSmlzhfO4hykKhwr08V5LTZ6k8AP5XX5Rm2b+33MvLEEEtNMUvzGJ170K++6/Y7T8Mb3nfi2K0POcdWw6dOiob+85dQ1N6wTwXMfeXAlw8yOJiv5m576sD+87sQtx9JvfPhT3/Ski86af+plB+q8uTCTnulwQ3/16VNX/9eboLjnPDz/wU88MYo4IQrhgLSBceQby7H2ped+wZlt7Y0xgCCORZdvlHrA9BzC3YGEzGqojkaqiZoSuyp6Xw/GtZSoHcOXkNiZCGtTIzh+0Vfte91fn7rpc/CyX/qzFz79UY87NAKcvveTt/3xh+4GXnnMhfLq51+QuRCXLqXL9vtv/aqDrz06++CnFkP5//1bv6rzMZVsmI/O8TVvev+tG3TZBfse+8jR//uujxPRAlcnpZfNW+LkAs8LhvE3PPHI4y9qfM6YskcpQCGxTj8qpdQWk0D4dGX8KYmri+N+cvl6e/qqq58BL/ofZ81rKVE7RgbhAt5P2sX6PMuPfstTbj353mtuPvP+2+Da2z5pgTMAAG1tDXndy596+VraYF+4n7ox9/GHvvEpt9x+8s8+MRvKP2EcTy/yymSSc7zx2OYNZwAQPnX38d846ZIkYUAEYQNgazjRO1elZJ1cvO8hU2sFjADk3LVYJtZt7ydKKaXOE4VNDbZ3PIrR+v0td43kygzmtZSoHSPYyiNGhpW1fQdTLN3pX3z5FX96a/qdD3762N2nGufPEB3K8IKv3v/qb/5aaTfaPC6mGFt41mUW79evftWTr/rombd9+O6z5mfka9/2uRe0T3lI/S1PvuzUyTORKg6p8ll4XphsNcE4j366ifVFiR97mFbdvEfqZWVExpHbR5R0V4lSSgEAAIFjFgt+jC1DI6mYRsQMdg8tJWr5uDBCJhYoJGjZALOQ5Pu5p6RKBQAMQDsHAIM0ahp48RXVi694wpdG0wwcFegcABSIZIGAGGpw33Pl4e+58vBZ8xCT4NgIgJQe7H982aVfzqiiAAmMIEGBBAQMeha2Ug+CXNiwASkIVjBbEJECstMvWiKCACLyxZvqEHG3vmtY0yVXy+J0rKa2bExpeqafXvPKa4fyuvyttsdOPwFJKaXU/5qYzIXEjlEAxzkmWwsML99oKVHn1Jf8fqCUUmoXy2xrcNH7phTvDnTcNZC9lhJ1XtFqopRSe4FNgOV0Ra6XZNo7q/pwx3zV1Y8ezJ/Lwam9CRFB7lmvuaeObP2ley+UUgNw4NH2amdBA5b2zV3yDMY2Ar0P1ldHhvI6U6LOnS/MjuhMiVJK7QXO0Ay4yRwqDHFWiQ01BRoP5bWUqHNN64hSSu0RHeXarIXCLhdXTTMWknjDy942lNdSos6pL54s2d6RKKWUWrYopcKE0UjsRtxhtdpxuzEdnCnZ03tK8PPPVpC/9/ndDurBRCICuNWAGSADZgAzvP9aKbXXIWAqsQAUYSEmcgTAhUV2+O/SuPUr2T177LYuQiKyW7fQoETp0TcmlEkb+9Qea3B6H691T5cStb10skQpNUQ3uu4Ozh2aQ+sYKvHonfjatSee96vPh5e866z5HV45lVJKKXW+EkjIAsjAfagolpNYjcUPNk4tJUoppZRaih77DmaGKRji9thKdIWq+3iYui7fqG2jyzdKKbW7TZM1cLiHjWlZjfX+jXxiZbF4/w/8xVBeS4lSSimlliJAL5grMcGCtMfG4Jl8Hs7r8o1SSimlloKhmCICRTi2FcZykqrJfcyHaClRSiml1FI4d2BmWsNUgXNuaquJyxvPfuMLhvK6fKOWDlkMotk6p6RwESBhtEise0qUUme39Xgskaybz3Y0FxZYrIwhisRcXMziRy4NLuBoKVFKKaXUUmyd6EphDBBHuEC/2sJ8fbIylNdSoraN/gKklBqCenbartAhr+C+mIsFxsm0Da0p+brvfstQXveUKKWUUmopnMU5SFU4eOrivAEXvclYDeW1lCillFJqKdCAsWuhislAsU2WUEXnBjuJLt+o7aPLN0qpIbp8szuYBMKnPblTEle79Wpy+ZnFqauufjq8+L1nzetMiVJKKaWWorCpwQbvmlyM29dy10iuhp8Rr6VEKaWUUkuBYkthI26MgDjimE0jYN1Q/l7LN3ttOp25IBGgCCIiCgqLiAggb/fQdpUCpYCQgIgIZBQRzpiBoWz30JRS5ynJgpgJCQEQUQRBqADgjn9/PvtcwG69/lrTJVfL4nSsprasT2l6ulu55hXXDuV1pkQppZRSyyEmcyGxYxTAcY7J1gK6fKOUUkqpcyyzrcFF7+ucnd3fcddAdlpKlFJKKXWO2QRYTnu0vSTbHfXVoY75qqsfNZTXUqKUUkqppUADFtd6nxNhtk3BUEXnqyNDeS0lSimllFoKSzgDbjKHCkOcVWL7CgONh/JaSpRSSim1FL0pjd0XCtucXbWasZDEG172tqG8lhKllFJKLUXgXGHCaCR0TVlgtdpLtzmdDOXvdU5JlhadteItuc2+X20EuCkFiqTlj1ztWsWE0MW6fmQ1cd/+Xytjc+1XQmfR7PTzBpRSy5Jya01ljLNOLBxM5YShkStBhm/cUOcjoVk5CVQ3NNl0bqW9cx8dcsPzIfd+9o2pmwLk3WaZT+x4vZ03xKmKPul3gfrKeTfJIWU5/oOveZzFZm3lkm4TRqMRaydRSg0QKVwIxBhjxJwBXiDlHLIxej3aSUzuR25Mjo4XWg2Gc9OP5k99w/Pg2//yrPl7lRIsfArLeGGk6UdmLZdpy3CB0OycDF3tWoXH9XQ+36hGnDiX5I0ddaHX9xal1CCpnXchdAIJODKUmNlVIz0Jemfh+kjPsZS8ViRWYGhWQo0y+CvpvUrJd7bfCaPFkz/7dz/76NFmf3dfeUfTjRgJhx8zrNT/SgrW2uSci70gpGNnPlw3ruSCsrLdQ1NKnacEEgUiotDG8bjp+x6QRQBQH26/kyC03kvfG5TJK/mfzgxgm+RfvHQof6+v7k3fUDKPv/3onbMCF8CFJ0oIZB1qL1UPSF25IpvGpqbel4ug6UNIBGtouu0emlLqPIVAmTMBGUezxRyEjPFcwDpd991JLBTfduzWgl8s5u17n2XW0NzHlpB7lZL33YU2MePhNTlzl5tx7Fbl8ALGFvPSB652L4FeGAEopllmGVdNSsVQ5N35/Cml1IOAyAJDSpEInEcizLkTKQCj7R6auh96OWPhYJfLCLJ3I2PgmpOAG7MrLzj7TPm9SkmpqJdwpNnHZd64fRZcD6lyVLSTqAdAcimRjFs1VgyU0EsBsT5LHHx6tVJqjwu8kVIeNRNmyAwlStOssGQAnSnZSWqaOmMCb2Re6xOAg/0Mff3l3RKMc6g9HAuf28A7p2b1RHXG09j02dh6+SNXuxZhZa30cVGhy1yICARTIMC43UNTSp2nDK4aDwadMRBKR1RS7gEF7uMJs+r8g23djioSQcqQ5sZOFnGdaW0o/yUzJVnadhUf1bgw7/vaTCfkFyYsf9jbA7EQIoAhAMCCkBEMCyLousKDKUoPCM4jSyYEkOKQQAD0wAGl1KAEACUm2LpQIQEDAMIOf38WEBBBBBERka3/AdzuYS1N72ZBNpoixWQwk76Thqr7KJb3KiWv++BH92HX0fTuPF+jMhbXtYmoAbtre4lSSimllgT5olU+YWubwAGceM3bjx4vp7vsvvfKp581f69S8ob9fzcT4eqhUy4JbM4QXZlWJegsu1JKKaXupwMCc++7WAW38bbmAzyKKzL6p/L1Q/l7nfWaeeTNZJXnkVaomhRnjTeLfrH8YSullFJqt5njRgvoEFajxGbTJN/aUMAP5e9VSvrKOWNTfwxDaxYzEp4UC6K7XJVSSil1v6Hx0xhdmW2gqTcx4uYo+fvYU3KvUuLj3OSc/ZT92lzqYGwJbYV6wpVSSiml7rcAx7I3LA2ELNOGfNXlU0/51ecN5e9VSpLjOfXROoJNwg5z7q3FanX5w1ZKKaXUbsPl4P5+JY7cil/zYQQtGL+2j9NQ/l4bXVdhJZKEPB7jujife85NRXln33+llFJKqW1RreBGX2K4y6Nv07g423Gb28EjWe9VSlrJIGBwcwEEDOAJStqDd96IaA9TSim1BLv3SJKzMt2M/aTp65kZWdzc7/efTu7aH3nfUJ6G/oNSSiml1AMiJpVMYscogOMUoq0F7GA101KilFJKqaXIbGtwvbVNKd4d6LirJdkv8+4bpZRSSqkHi8sI+ZRH20uy3VHnD7alPO31jxrK26H/oJRSSin1QKABA6szlzyjwZql98H66shQXmdKlFJKKbUUztCmlDqVWFNMc8/UeYxmMpTXUqKUUkqppehNqWi1S9nm7KppgoLc3/Cytw3ltZQopZRSaimilAoTRgOxH3GH1bTjdmM6Hsrfa0/JXjufg5mJoJSCiKUUImJmRCuwtz4PSimlzhERQ1RKAQBELLkgIrMA7s7rTsmtpf312HWpbkuMcrLhKerdN0oppZQ6x7w/PKMFMVTibTU11diVjef+8pf37BullFJKqQeLQCIBgQLc9x4Tn8JqLF4PT1NKKaXUudVj38qmFRMMcXtsEmyhKvFg99BSopRSSqmlmCZ7AA4niKu81tSXblihxeL9P/DOobwenqaUUkqppQjQJxQnJlig9thEXEFThvM6U6KUUkqppWAolkGgcAlthbGcpHpyH/MhWkqUUkoptRTOHdikhWGqwDk3tdXE5Y1n/8oLhvJ7upQgIuLf7wHeOqZlrx3WopRSSi1JUwJkIw2kGrsQISQyKy7lofyeLiVKKaWUWp7AucJEwUqIY27Rr3a4WJ+sDOW1lCillFJqKTrkkdkfM9scfTVNVJDj9f/srUN5LSVKKaWUWgpncQ5SFY6VacOsFhu9SeCH8lpKlFJKKbUUaIDMaqhiJCm2KRCr6Fw1mNdSopRSSqmlMAkwn67IdxJde5evDnaSn/b6ZwzltZQopZRSaikKmxps72yTi/X7W+4ayZ4G73LVUqKUUkqppUCxzGLEjREARhyzaQSsG8rv6WPmReRLTiUREQEB0KNKlFJKLcE91517jsj6/HFZuFuvOoSLYCtsN8toH6X1iYw22sk1r7p2MH8uB6eUUkqpPURM5mLAjVEERjkm2wjqMfNKKaWUOscy2xpccK7O2bsDHXeN5Gq4emgpUUoppdRS2ATEZypyvSTbHa3qwx3z017/uKG8lhKllFJKLQUasLjW+5wIs20yBB+s84eH8lpKlFJKKbUUztAMuMkcKgxxVonpKwo0HsprKVFKKaXUUnSUa7PW52JTtn6akQ3EG1/+h0N5LSVKKaWUWooopcKE0UjsRtxiNe24XV+ph/L3ui8HEZc/wvMIookx1nXdVPUv/98fAYDJZNK27ZccXqKUUko9KGKMTdM45yZ1hWJT6oksADPvzusvpw7Lflthn6sAJaXTI1m9j5e6pw9Pc87FGHPO3//932+M2b9//3w+H4/HOeftHppSSqldCBG3fu8loi/82fe994MPzt3RqupIK70FqqEy3hrraXb3c37l+fDid501f69SstdmCETEex9jNMaUUpiZiEIIzg2egKuUUkp9xUopxpiu64wxRISIW/9mt15/0RRTAJCB+96vpHii8aNiB1/snp4pyTkT0VYvQcQTJ04450SklLLdQ1NKKbULbZUPREwprayshBBgV++d6KAjSSsyWhgy7bEVnkRfZzFD+T1dSramy0IIKysrpRQRSSlt96CUUkrtWlulxBhT1/VisQAAa+0X1nR2n0mgCg+2eGZaVnlyeDMdH7ftB3/wnUP5Pb18k1Iioq0iUkqpqgoARMSYwRKnlFJKPUClFER0ziEiM8Puvf720kVgLxQsmPbYBDwbm4Ynhvb0TAkzxxittcYYY0xKiZm997rRVSml1DIg4tYNOFtbBZi5rusQwm5dwRFkJwhUhGNboWtPuvqy+8jv6VKytXyz1U9zzt77rutEZGs7tFJKKfXgstYCwNZ9FVuXmxBCjHFrqn73qevDi3xyX2kInDhHLpl45lm/Pnj3zZ6++qaUEJGItr4/cs5bG123e1xKKaV2p5zz1qTI1qoNACDibm0kAODCogTIvgQvbR8wZmOnLg3eTbKnS4lSSimllidwrjCZ6CCmMbfgpi3MN1amQ3ktJUoppZRaip5kZPaHVGyOzq8kKsjxuu9+y1BeS4lSSiml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)
布局系统为Panel
中的每个子控件完成两个处理过程:测量处理过程(Measure
)和排列处理过程(Arrange
)。每个子Panel
均提供自己的 MeasureOverride
和ArrangeOverride
方法,以实现自己特定的布局行为。
Canvas
Canvas
是最基本的面板,只是一个存储控件的容器,它不会自动调整内部元素的排列及大小。不指定元素位置,元素将默认显示在画布的左上方。它仅支持用显式坐标定位控件,它也允许指定相对任何角的坐标,而不仅仅是左上角。可以使用Left、Top、Right、 Bottom
附加属性在Canvas
中定位控件。通过设置Left
和Right
属性的值表示元素最靠近的那条边,应该与Canvas
左边缘或右边缘保持一个固定的距离,设置Top
和Bottom
的值也是类似的意思。实质上,你在选择每个控件停靠的角时,附加属性的值是作为外边距使用的。
Canvas
的主要用途是用来画图。Canvas
默认不会自动裁减超过自身范围的内容,即溢出的内容会显示在Canvas
外面,这是因为默认 ClipToBounds="False";
我们可以通过设置ClipToBounds="True
来裁剪多出的内容。
接下来我们来看两个实例,通过xaml
和C#
实现相同视觉效果:
![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAHCCAIAAACYATqfAAAgAElEQVR4nO3deVzU1f7H8c8MAwIisgmoRKijIqFhohFaLmnupqZmZVdbLtri1eqat19mi9pmpV4rlzYtvZmZkblgWe6GhopLijoqKSoKsg4wDMPM748BRAUE/eJX4PV8+Jj7nTPf75nPcF3enXO+ZzQtW7YUERGx2Wwljw4ODlKOkMCOjQpObD530f60aeOwNo5pG06duuwkW6vbjR7m+rvOacvrBsBlunbtqnYJqCU2b96sdglA3WKxWEREo9GUPIqITsSreVigS8rRg0k59iZ7xjpy5IhKdQJ1UVRUVGzsn2pXgRovIqIjf3sDN1Pr1q1tNltJriqhlTvH/d/UKWMHiBRHKwDqiojoWOYxAOAWVHoOsCRK6aStt7tkHPvj0vAVMQtQV+mhrPKGtbZtu8Y0UJcuVZhzvGZvVeq8+nor78zKnKMWb2+vXr16tWkT3KpVSxE5evTY4cMJmzdvOXfunNqlAVBM6UEs+7Hu3mbeuryzR/epWxiAK0VEdLyZk4aVzyWVyU83ubeSEyroLScnq3599/JedXBw8PX1vSL0NG7cOC3tYn6+uYK3rqDbevXqPfTQ0CFDB+/P3xefsve7Q8ssNksrr1Yh/UI+GPremuh1P/ywMj8/v6IPBqBGKR2zdK293QovHF/J/CBwi2FJVmnKprrSvL29xo0b26VLZy8vr7vvjiz9UnT0D5mZmX/8Efvll1/9/fep8nooz9ixUV0GRL6+dWpE44jhrYb7ufprNdqU3JSd52Jf2fPKG4++ERLSZsqUqddRM4BbSkmCKj2IpTsVv3HNmfXqVQXgSqXHrioYx7rV5sKqm7LzkiUmT365oMA8YcKEb7755upXn3nmmSFDhrz55htjxjxZpW4fffSRLgMiX9386owubzeu37ikvXH9xoP1Q7oHdp+8efL48PGPPfbI0qXfXkfZDRo08Pb2TEyscuwDUK1KBrF067/6uHSrMJQFqK0ya7Cqz/Dhw77/foVSvZWXeyqfDquUI68jdIaF3fniiy9OnTr16NFjXbve16tXz+Dg4BMnTmzevGXPnr2ffPJJVFTU8OHDq9Snt7fX4/947KWtL12RrkQkpyBn4I8DRrYZ+WH3j56KefKzJz/btm17VYfHGjRo0KqV/uhRQ5WuAnAz6a54fs10tf/AX+kZGZXp2qOhe9vQO7Ra9sICrkdl1mBdHV/sCWPbts3XPb41YcL4lJSUTZsU20vp6kque7RJlM5/ItKwYcPz58+3bNly5cro8eOfW7JkybJl3zZu3PjBBx/Mzs729PTMy8urap9DhgzZcXFHROOIK9KViKw5uVpEhrUcXl9Xf+ydY388/uMDD/T67LMvKt95SbrKzs6uamEAqpV9+KpokXtJUyUvNpxIvD2omcjV5xfNPJ5Jvig2m4icTTbcFtDUy8tLobKBuqUyY1dlpqiAgKYi0rZt2wMHDlzfWz///HOOjo6//rrh+i6vVhMmjE9LS/vtt98V6a1//36FhYX2444dO7z44ov2OHX+/PmoqKimTZuKiIuLS3p6eocOd+3evaeS3TZv3uzPlF0jWz1yRXuqKXV+/Pzn7nrOy9lLRML8wmJ2xgxoNrDyBZOugFvQ1WuwRKTKw0tenh6hbfR3BLe86pc+pLU+pLW+V9e7e3WLeKB7RCMf71v6BhnDnM6aznOuHGJfN7aMRgX7B67tuvfB8vb2evXVV2bP/khE/vOfl+fOnRMc3Po6CvD39xs16tHIyHuu41rFXT3c9dxzz/Tu/UAlT67Y1KlT5s+f37lzZxFZsmRJyWDVp59+2rRp0zfffFNE7r///sWLF3/66ccVdXS55s2bHbl4xMfF54r2zUmbRKRrQDf7Uw8nz8Oph5s3b1bJbklXqKE0FbrJlezevfvq9t27dyteSZUDloNWk/j3hTlLt//3221zv9v68Yotn/64+eSJM3k52Snnk1POJ+fmZH+zfv/XMfvLvn7dWM1lsWPdWI1GM3Zd8VPDnM6lnxa3lJ2ESpoNczpfdtG6sZd1ckXUua7ks25s8W+Fy6oDqkHl12Bt27a5dKQYN25sQEDTp56KEpGnn47KzMx87bUp11dDixYtRo16tF27dtd3eXUo+aS+vr7//veLLVvqpfgncCNzjunp6T4+PiJiMpk+/vhjJycne7oaM2bMnj17RMTb2zszM7Oq3ZqtZgetVkTm7f+0x/LuOZYcs9X8yZ5PegT28HEuCl4a0VjFWvk+HR11NpvVYimoajGA6mzluMllxMXF3dO5yxUZa/fu3fd07hIXF6fgG9lstioHLKvVqtE4JGYaE7ONp/KyTudnJhVkFBQUiu2yvyYcnMr5W6PvgrVROyaOLso3hjnTF0bOPragb9GrhjXLJTJyYfQVGSYyUpavuSwRGeZMX1h+kX0HR8nBkvWfhjXLd8iOSx0cO7QjckR/vX7Cdtv2CXq5Op9dZd1YTT9Za//NcCxkeuUi1qX+y3PN90WdVpmxqy5dupbMEgYENG3fPuw//3k1MzOzS5eueXl506ZNN5vN997bpTJvd3VMadeu3ahRj7Zo0UJK5ZgbiTI3ovQnFREXF5eXXnoxLOxOe/sVr1beW29Nf/nll1evXi0iOp3O29t71apV9nSVnp5+2223iciKFSvGjRv3wQcfVb7bEydOBnsHX8hNEZF/hIwWka8PLf7h2AoRea798yWn5Vhy9J76EydOVrLbtLT0xMRTbdq0dnFxrnwxAEp06NDhj+3bSmcse7r6Y/u2Dh06KPIWpXZyL4u3f6/yrjQXWESkkU+9i7nZmQVGS2G+FP3nlMYmYl+b5expcnQpkOyyvzG674K1UZp+M9dNWNByzuiJMvvYpRBiWLNcRiyeEtoyet2Cvn0vXRI6YsTBiTPXTbgsiM2eHTVxeTlVtgyJ3LF8jWHCBL2IHDu0IyoqauGhYyJ6ETEcPRg5YlJFwedKhqMHI2cvLnpv/YTtC6pwLXC9qnT/YEnuWbNmVUnU+O23X0XknXdmyLVuryvv1cjIe3JycubPX6DulhAln650GaGhdzz++KicnJxjxwzXHfvWrFk7deoU+zKs4cOHP/nkk9OmTZsxY0Z6erqIjBo1SkRycnL8/PyqtLL+5MmTIfeG7DwXO1g/pL6u/pi2YxYdWCQiI9uM9KznWXJawsXDdzS648TuygYsEUlLSxeRNm1aHz58JC/PVPkLAdiVZKw/tm8TEWXTVWnXeYvfofNJJzPOZVgy8iTbrDGKiIhNxKYRjYjU9zS6uhnLv7rvgrVRC/t17jx6osxeXGqMx7BmuYzor+87OGrh9Mun8FpNmFK6bd3MiTKif6vy30Hff0TkjkPH7CdHL4waPCmkeFzMsGb5jtBW+pLxo3VjNS0n7pCF/UrNQ64Ze9l0oL5V6I6JM8sYaro0b9h5jqG4x+K5y0vjU6XaL/V62fuW/0lQF1V+DVbJkFKXLl3Hj59w8uTJXr36lLzatWuPvXvjp02bcSPxqFevno8/Pqp+/frX3UPp0a/rGAOrYIzq7rs7jRr1WJMmTW5kHMtoNHp6ep49ezY4OHjq1KkLFiywj1298sornTt3zsvLc3JyqmqfMTHruzXuFm2Ivph/UUT6Netvbx/a8qGSc3IKc97f9f7QlkNjY2Or1DnjWMANKslY1ZeuRER7f4cZIzrNGN7u8SZV+aNqkhxHlwKdc4GuXoGjs/17JDT2dCUiwT6Beo8WFV3fd8HaqB07Lo9XRbFJL9J3cNSOK6YEpe/gqOKQY5gzfWHUlAon30Tff0RRoloXvTBqcF99/xGR9knDY4d2RA0uNTrWd4Ht2OxIiVprK57Q2zHx0GCbzWY7NjuyKNTZE+EV66/WjdX0Ozj7mH3isGQucGG/6MGlnxcrarfZbGujFvYbu+7y963oo6DuqfwarNKRYu/e+IyMzFdffaVePadt2zY7ODg8//yzgYGBmzZtuo4adu7c9fjjY6ZNm/H99ytatGj+6KMjr6MTuTwe3eB0Xml//XXos8++2Lp1W7t2bcePf87Boezx8so4fDhh0KBBkydPFpHY2F1Tpry2evXqd9999/TpJBF55plnHnjgAftx5Z0+nbR00f9ejXz1je2v51hyfJx9fh+x8fcRG0tWX5mt5hl/TP9Xx38t/3LFwYN/VbVme8ay3y4KVODWWV1eB+n6two7l21yrN+1U7shsRuGfH+2cpe5FOgcLQ6OFgdHi86xQERspTZu0Hs2F5Gzklru9evG9jsYFSUTR8/pXxJF1kUvjBxxTC8i0ndwVL/pxTN8RfpOmh3ZcvqcSX1bzZwos4/1Falw9ZK+/4jI5UcN0vLowciQSSL6/iNk9BrDhFbRCyNDJlX44SJnT+pb0kXxuy+w2RYY5nRuqdFI1Frbgr6yLnphZOnpzSJRaxf0lTJcau87aXbklXOgwNWu47sIP/nk09demzJ//jwRmT37o8DAwPnzF1T8VXplSklJeeut6ZmZmSdPnly//peqXl7dLl5MmzJlakpKiv1pw4YN3dzcrmMdut3MmR9MmvTv//73vyLy+edffP75pS2pRo58+IMPPjhz5swbb7xZ1W6XLv02NDR0XPtxT8U8OfbOseH+4Q0c3UUkx5KTcPHwOzvfeaHTC14ZXt99V95Ch2tIS0u3TxcCFWDn8DKVrLuS6pwi1P3ft/1NIjZb2+EDZ7VuOULOfleZyxzrmR2cLDqdRedY4KCziMil/xNtUmCxWAos5V+9bmy/g7OPbZ8gIZ1blkSsddELZYe01EwsOa30oisR0U+YEjVx+po5oSU5rEL6VqE7oo8ZZLmMWKwv9byqC7BKdzlhu23CurGafmMH21iHhep2HXu4JyQceeyxx++9t8s778xYvXrNpk2briNdFRYWTp365nXnlepWWFg4bdr0knQlIjdY6t9/n3r++X81bNhQr79y3P3ZZ58/fTrpwoUL19fzG2+89dBDQ98d/O6WjC0xsTGHUw9bxar31N/R6I7pHaZvjN78ww8rS3bhAnBzXLGqvWQ9luIZS9dUJ8ctIrL/+5/vr1TU1Wjy8/M6+bTQaK1abaFWa9Vqrfn5eSIN7a/bbDZrYWGhtbx7jw1zOvdbGLXWpheRCYtnLy+KWOuiFxYNDdmtG6vpd+UwT9/BUf36TdxRdPG19B0c1S96ZpQU56krn1eeYU7nma22Xwp7kSEtRfSDo/r1K86A6+bMaTmhwom+hcUfxjBn9MQdUWsZvkL5KvldhOVt47516zYRue6Rp88++/y6dyitoDalLF78TVxcGdvYXFP9+u4VvJqZmXn1PqKV2Vm0gm7z8/P/979vY2N3PvjgwDFtxrSMbCkix44dO3w4Yc6vc69jZhDADbr6nsHSa96VzVi6CWPiLAV5prz0v08tW7VjyTUXGlittjatbwu6zdM+JajR6kSsYrPpHJ3c3NwshYWFhdZCa6FWW/bk7rqxLSfuiFq7veSWvMWzl7dsObbVWlkol6WOvoOjpF/0ugV9W5a6uu+k2ZELDw0uM5ws7Kcp2rghcvax7RP0RXlsYdTa4sGmK5+X0PcfETmxn2Zh5Oxj28taOa+fsDiks0bTz/4saq1tgl5E+i44NrtzS/skdtRa2wKRirbWipLo4h5KcuSl92UZFkqrzBqs67srsDKWLPnfdV974+9+TV9++VX1dV4dTpw4MWsWN7KgrrtFlnyFh4fHxcVdEaTsGSs8PFzZGVXNPRFPeHh0urPRHS2b620npszYttFmszUO7L9jc9nbFq/8abW7exn/xabVarVarbWw0FpcX3pa2r2dI/z9/RUst2YyzOnc8tAUW9mLswAREYmKirr53+uM2iciouPChRXsEghAYa1btzaZTKVvHbA/6lJSt6akbj16zNbBKWaER6TIxoo76vvA/ZmZmZVJeRqNpmHDhopUD9QFVfpWHADArUzXwr4GyzGimbtzgena32/l4uLi4uJyEyoD6hRGHQCgNtFNGBNnE5vVWmjOOfLb5rlq11Mr6Sds50ZZAADqEN3L3z17m2u9gpy9J7OzS+b9Lib/qmpVAAAANZjOlL3rWDZ7kQEAACjmOr+LEAAAAOUhYAEAACiMgAUAAKAwAhYAAIDCCFgAAAAK05X3wgsvvHAz61DFrFmz1C4BAADUQuUGLBEZP378Tavj5ps7l11VAQBAtWCKEAAAQGEELAAAAIVVNEV4ldwLp1JNInLhyA7DxdxTe/bqer31Yi/PUmecXzl24IJWn61/6c4yO9j5du9ZPp8si9LLyrEt1vc+vqDz5uiE4MFd/Sp4s2LOPoG+rpefkvXLy/0/a7bo+2dalFtyevya9QmXfYV1g+De/cM8yzsfAADghl07YB14v+fgBSdFnBv6NXQWEfFs1qG5l4hPcOfO3raz2eLZoOjM3D/fGf1u3vNLxt8pIpJ7aF+S/s5WTpd6Mq/79junLiv1IiJ+fo2MxnSzOWvb1IFLh3+y+PmOroc/HfnUklNF5waO+lePw9sPFF96bu/BDnM3vtL+itgV3Os+06LfdvZ3bFzc4uwTGPdG5PRtpsyLBfW9GzSPuCt1h2nQxJ6+xZ9m6axTdxCwAABAdarUCFazsdEbXm5b8TnnN08dPenwgwuW/sOeqcxHVk8e++eDC5Y+074oY6V//+2WiCdet482ubu5nU9Ocrpt4AfL3d98e+sRc8f2bZ5dtuPZX/9914rI2AVDnUQOvP/5ugZf/vhMoMjhj/q8IM4iIjGvDVyQf1+rBiXvG+R1YMnMoiCWfXRLvbH7Fry/o5+sHNvT8PyGl9seeL/nfuk+cuTpl0cmPrHs2TZOGz83VO0nBAAAUEWVCljGoxuXLfur7NcaBPfuH2Jc/uLDs3PHLSlOVyLi1HrMOy8l/mvUQ3lLfnixvZOYt8+at91r0CRPERFzRkZOofHMxmXL/rp4ZHuqNW/6k3PfWDK+rfy6/veOvd+292EpLPT1CxQREVN+/u2t24iIODds8+ATc7tvHDPlVO9pUx8JcT3wfs8XZJY9/x3+dORXzmWXacpMNVoq+0MBAAC4EVVag1U243fjev7fZovIm33bvHlpJlFEpF7jMNclTz3m8sXSLhun/ZCiaywnP+ozcklWQ+d6YkrRbjnSfljr1r0eHh4W2NDdXyR95Yptd3UZl3zqlIO7f9OTiXl+99n7uXTY7/1lYjabW8ye+sOUZ+7eOH576Z0k2jy77H2RE1uX7Tpz4Kzx/MZlyzI8bvzzAQAAVE2lApZbq+4jR5Y/RWj+6PfuTk2vXIFe/OLeee8cyPrirWW3j37I8os0ezHmrxdFRPa+0/2VeiOeG9mm1JkffrohzyF/zsyf9h7uNG9tUEHezs/Gj18mIuf+ysv+bPxC3dyou0X2zR3yxC/6596avG6nt871+OzKfIJ0o7EypwEAACigUgGrQYOGl61AL9Flyo73+4mTR9OLn44cfPXLIhI46otlr/9DdjZ6c2jAgcd+ufTCHS2anfztsFnaFM8pZq3873pT40aDXpr78rGxPQ0iD0z7OaKw+PRJhi9Gf3dGRETufOnH33v+8PrL05yXLXzMNflCSmCn1qXfsvm9I5uL08bPDd1Hjmx74H0RETlkOO4X0DDDXJlPCwAAcGOuHbBOnjrt2yPQYkit12v64qf0l17YMLX7zuIb+izGVNfBC65cCX/g/Z4v2Fc+3d23rxw4UPo1p4iOITN2bJahvYoa3Id+slb7wqBE+7NCY0pWw0tnO7inJp+SO2XnwvFLirppVS926vjYvBPbrabkl8ZvLT6z7ai5UXeX+nxuPj6iO7B9R97BlCcX3rOha4duulL9AgAAKO+aAetAQkKToKdEDOJQv1FgYOClVzzq3dA7Bz5wf+DQNevMvfo6yeGvXlziPXHGoEvVnPn+pZGxl4bEAkcNa9jIz0/adpk0qU9Jq/ngx0+Mr9/7g8njOjQsHghz9hERc4YxP+W3GQ/9fCb4ra3LQpY/2bfJ0Adlq4jcHfXQsunztj/3TOcbKh4AAKB819rJfefKVaZuPdpXx1u3eOyf92758MO9ZjEf2LomUwJFim5Y3H1WAp9YtqOUZU8HFLi5uYurb6CdT2HCssmPTj7c5dWRBfMfHfLE9GV7jD6BgYGBvpnfjGnbocd3BUMHPTX1599e1y9/fuAHjlNmDnUrelvTyd9+2Z9dQV0AAAA3puIRrPSlnyy/Per3u0UOiJz+5qnI6FLnmzKlY+9LT698WUQs2RfdHy+/d89Br035ZeCoXvs6Oh8OGfyGiIi4NA2NjHSL+Ty1+CT7pGDeie3xYe+1lvNxq1asWfX7hp1HC1v1H79o5yMhriJPPpd7KHrm20/f/VqDHpPee2PkpzsfdnV1Ejm/+f3RXb650OPtH94a6JeztMm5hTPGn3Y7sb2g07zAcosCAAC4URUHLM+eT33arqufiDQM7vb4jH9MGVQqmexcOH5f06LjMl4WkVOrpn8tJSueGgZ36yaXr3/yG/rxpuBfv1p9JOqRpwJFpM+0JT08mnr0WLSh5JS2gyeNbrbjrMuEDzrpnSQ93fC3S88Xvvqgk96j1B7xriGDX18yeNKh6K8SHDydim9n9HS/4+FFOweHuIqIOD32+fZuyVmFIq/5BPoKAABAtdHo9XoRsdls9kc7Jyenfv36jR8//lqX12Bz586dNWuW2lUAAIAarHXr1iaTSVNMROyP11qDBQAAgCqqaIpw7ty5N60OAACAWqPcgMX0GQAAwPVhihAAAEBhBCwAAACFEbAAAAAURsACAABQGAELAABAYQQsAAAAhRGwAAAAFEbAAgAAUBgBCwAAQGEELAAAAIURsAAAABRGwAIAAFAYAQsAAEBhBCwAAACFEbAAAAAURsACAABQGAELAABAYQQsAAAAhRGwAAAAFEbAAgAAUBgBCwAAQGEELAAAAIWVHbCcWoXf5DoAAABqDUawAAAAFEbAAgAAUJhO7QJwC0nMSCx5TMpKslgt9sfzKSdN5tzkjCSTxVT6fGNBTmp++jW79ann6eZYv3SLs87Z3yNA5+DY1L+VTqsLcA8QkSCPoJLHAPcAnZbfnACAmop/w+oQo9mYlJWUbExOzEhMyko6f/HvpNQTyVlnk/LOJxWmi0iQxU1EAnJ1OqsEpBfqCm3+qaZ6JsudRnG2iE+uuJkv69DZIv7Ga79vqmuq0emyFpNOkt2KHvN12s3+rhatJHnpRCTRzSIiiTqjiAQ4ePo7+/g3aBzgFeTXqFmQR1CAe4C/m3+Ae4CHs4dCPxUAAJRHwKqFjGajIc1g/3U8ab/h/OHk3AtJBRfFavW3OAfkOASlWvxTTa3TLF2NEpAl/kYJyii6tDrqKe68PNby3jfJPT3JPT3Z7ViS+5bz7trN/q6J3g7J9W1JjnkWjS3A0TugfuMAr6DWt3fQe+ntvwheAIBbAQGrZsswZRRlqb/3Hjmzz5B+PDH/fIY1V5/nok8T/VlThwuWh9OKUpSHSUQK1C65CgKyJCCr5NllOczoJEnu55Pdzhu84o/7rv6hqYvBSwyuJmetU1A9P71Hc32T0JLg5ePqo0b5AIC6i4BVw6TmpsYmxR68cHD3sc3xyfHJ+ReD8l30aaJPyu18wTI6TYJT7aGkWsaibh1uZglOleBU6ZYoIhaRbHt7sluBwetEgs+J4z6//3RbfYO3xuCS5+HYINw37M6W94b5h4U3Cbcv+QIAoProRNz8m7llnzhXy/9BrrGSspLizsbFH9m87++dcRmHTIX5Yen1whJND53Mf/2ChF6QmjUoVd38jeJvlC6nRMRakroMXmnx/r/vu337F81dn/EyWXTaiIZ3hN7WoUNwjzD/ML2XXtWSAQC1kOap95Y8EORoOhHz1udbbMXcQiMP/LxU7drqrvjk+E2Jm3Ye+W3T6a1uZglN0XQ4agxLsoQll54yw3VKdZXYAEnw1e4McU9opElyMnVrfE/XtgMjAiLCm4Rz9yIAoPJat25tMpk0xUTE/si/JbcEi9USdzZu276ftx/7bVPmvqBcp24nrA8fNM5LtC+cgpJ8cmXAURlw1CrbMkTE6CTbAn/f3PbPF/S6hPp5EQ3adG3ZK6Jt34iACGeds9rFAgBqJI1ef4eXf/2ccxdNIiUjWE5OTkeOHFG7ttov7mxczI6vt5/cHJtzJDi7Xrej5s5HTV1OEapUY3SS2ADZ1sp5c7BzfMO8MNfmXZt173n3IxEBEYxsAQCuVt4Ilkav14uIzWYTAtZNYTQbYw6tWh+7ZPX5rf45mj4HTV2PFXQ5deUWU1CdSSexAbKppeNvbesfdDcNaNS5d6dH+4QM4p5EAEAJApbKElITVu9asv7Qqjjj0S4XnB/cmdnHwIKqGiPVVWL0suZuz5gmuaH1m/UOHtCnw8PhTfhOdACo6whY6ohPjl+8+4vVB36w5BoHHC7sH5/bLVGcLWqXhetl0cq2QFkf6hzdzsnoquvTZuDo8Ke7BHZRuy4AgDoIWDdVUlbSsq3zFu9bbMrJHL3HOiwuNzhV7ZqgtEQPie5Qf3FHx4z6DqNDR42673l2fACAuoaAdTOYLKYVcV8v3v7JwSzDsGOOj23NjEhSuyZUv4O+svQ+jyVtCoIa3PZYp6dH3v0U39gDAHUEAat6bTu17Ys101af39rznMvDW9IGHBWdVe2acNNtaC7fdfWODszt5t1hdM9/D2jzoNoVAQCqFwGrWpgsphV/fPHh1vd0mdljN2SMPMjNgBCTTqKDZcEDXkmeDhM6/WtMt4luTm5qFwUAqBYELIUlG5M/WT110ZHvIpJ1E9amdTmldkG49cT7y5z+3jG35Y9sPui5/m+yQgsAah92cldM3Nm4OdH/2XD+j1GHdFs3ZAVlqF0QblVhyfLVFxeT3WR+j9XdDavCfdo91//Nns17ql0XAKDaMYJVBXFn4yb9+EzS2YQJv+eO2WNlNhCVZ9LJsuDUNJgAACAASURBVFCZ84C7+PrOHDKPmAUAtUO5I1juuhbBIU8G1ks9eWjhn9nZatd5i0pITXhlyZiDKX+9utY4aj8L2FFlzhYZEy9j4rOig7MmXRzh4d30nYc/iwiIULsuAEC10Hw1KdlFez5bvL3cCk/veWpO/HGbzebkde+R3V+rXdstITEj8c1vx8ac2zp5c+G4HWb2CMWNs2hlSbjTmw84hfm2m/bwglDfULUrAgBcp3JHsLIP952RkG2zud3X68f+QU82in/1goi/O7v4SLIx+b3vJyxJXPVcnPbw73l8ATOUorPKmF3mkXvM87vu65V6d5+Abq8P/yTII0jtugAAitGeSbBPC2ZvuZgmTh4BKtdzq1gUv6jtrJby008HPjK9sTaXdAXFOVtk4m85h9/PvX35L+3ntPlg2/sWKwOkAFBLaCbr9T/YF7k7hzR3zU1KPZFnszm5dTxyYLnatakjKSvpmS+GJCUf/errrLBktatB3ZDoIU886WXy9/nqiZ+CfYLVLgcAUFnlTRFqL51iOnT84smikRrzPjWKVN+iX2e2/6hVhw2H/vyAdIWbJyhDNn6U9ljM2Xs/vuuD1f/HUBYA1HRl74Pl6OR7k+tQXVJW0jOfD049a/h1aR7RCqp4/nfjgD3yzOiFPxxa8dWTqxjKAoCaS1tmq2+ju25yHeqKMcS0nx3c9ad9W2dlkq6goqAMWTfn4tjvjnf/OHzRni/VLgcAcJ3KHsE6k3L6Jtehog9W/nvO3nk/L8qNSFK7FEBERMbssUacyhliefHI0R3TRszXafnGBQCoYbQ/lNls/usm16EKi9XyxPw+S3d+9sd/SVe4tQSnyh8fZsbtih74caTRbFS7HABA1ZQ9RVgXJBuT753ZJiM+duvsrIAstasBruJhknVzLgbtPdnxw9aGNIPa5QAAqqCOBqyE1ISOc9v23HTqxwWZfKUgblk6q8xblDohOvmeT9pvO7VN7XIAAJVVF9d2JBuT+87rPPkX4/PbyFaoAcbtsvoUFAyx9dn6bBy3FgJAjVDnAlaGKaP7nPYTtphJV6hBhu3NF2fnXtrIrc/v4Ut1AODWV7emCI1m48D/RvTZnztxA6uGUcMM+yPzpVht33mdk41sJQIAt7o6FLAsVssjn/YI/Stl1nLWtKNGmrjm4ujdhQPn3ct9hQBwi6tDAeuV9ZMkIWHukjS1CwGu339+OB8ed/aJ5Y+qXQgAoCJ1JWDFJ8cviV341TfZOqvapQA3ZtbK3INHtq4+ulrtQgAA5aoTActitTzx5aCZP+X55KpdCnDDnC0yb2nmM8v/kWHKULsWAEDZ6kTAenfFRP9z2aP22dQuBFBGt5O2AScdJ333lNqFAADKVvsDVkJqwpy/vpi3hP/WR63yzv8uxJz4ZVPiJrULAQCUofYHrA9/n/7cNnMQ+Qq1i4dJXl9tnLFmstqFAADKUMsDlsliWnFoxdNxrGxHLTRqv8Sl7EvK4ovKAeCWU8sD1oo/vuhyvh7f5Yxaydkio042WLTtY7ULAQBcqZYHrMV/zBu9hXiFWmv0htTF8YvUrgIAcKXaHLCSspIOZh8fnKB2HUC1CT8rHtkF205tU7sQAMBlanPAij39R89ELTuLonbrc7gg9vQfalcBALhMbQ5YhpO7g86ytShqudtPZx9P2q92FQCAy9TmgPX3+SO3szsDarugDElMNahdBQDgMrU5YBnSj7P9FWq9oAwxZCWqXQUA4DK1OWAl5p0jYKHWC8qQRPMFtasAAFymNgcsk1icLWoXAVQznVUswq0cAHBrqc0BS+/S1OCldhFANUv0kCDHRmpXAQC4TK0OWB7NEz3ULgKoZokeoncPUrsKAMBlanPAut2vNQELtV6ihwR5t1C7CgDAZWpzwNIH3fV3E1e1qwCqV+JtDVoEtFO7CgDAZWpzwApv2nFTM43aVQDVa3OQhDftqHYVAIDL6NQuoBrpvfT+bv4x+uN92IURtVSCjxzzc2wf1C1T7UpQVQ3VLgBAtarNAUtERneKWnz8nT4GtsNC7TQzzDdj08M+U2r5H+TaJ8OmdgUAqlltniIUkZGRUTFN81JZiIXayKKV78NycuKfVbsQAMCVannA8nD26OMbuSSsln9M1E0/BDtoMm6X1GC1CwEAXKn2J48Jg95+r6czg1ioZUw6mdDDPWvHm2oXAgAoQ+0PWBEBESNbDX1hlI/ahQBKeva+pnmp7eXQMLULAQCUofYHLBGZNnzetkCJacmWDagl9vhrvw3PzFq7WO1CAABlqxMBy83J7avHvn9mpJvRSe1SgBtm0cqwAY1Mv8yVrAC1awEAlK1OBCwR6RbUrVvbgS88VF/tQoAb9VYXp3OWZhI/Ru1CAADlqisBS0TmPrjg4F0B04f7qV0IcP3ebRfwUZi3acWPahcCAKhIHQpYbk5uP47btLS9w+z+3mrXAlyPT0N8p/XMzfnf72L0V7sWAEBF6tYG0P5u/r8+t7NjYWhAWsNhf/DlIqhJfg70fGlArunrrWx8BQC3vroVsEQkwD1g47jY7ra7dXnOg+NNapcDVMqGQOeHR5pNy2IkOUztWgAA11bnApaIBPsEfz96zUDbA6k67dNxVrXLAa5hdSsZPlRMqxbJqS5q1wIAqJS6GLBEpEtglz+e3TNQ1+2vNtaZS1N0pCzcqiZ0afx5p3zTkjWSFKF2LQCAyqpDi9yvEOwT/OeLCQc73DbwXz7sj4VbkEUrDwxu+lWoa+7n+0hXAFCz1N2AJSIezh7rxu/Ud+jVcVJDg5fa1QClJLvJHWN8d+naZX8Zz4aiAFDj1OmAJSI6rW7uqP+9NPj9e8fXXxGidjWAiIhsCpJ2T9dPPPFU5oq1YnZTuxwAQJXV0TVYV3g6PCqsyV3/dBn+3Zm8WYvPB2SpXRDqqgxnebxnwEZ9fk70cknspnY5AIDrVNdHsEqENwn/c9KxO3qMbP+Cy6IujBlABf9r5R70bIMt1h45n54gXQFAjcYI1iU6re6NwbMHR4x5wnXoDx1c5n2VwlAWbo4MZxnRp+n2oILcld8RrQCgFih7BKte4/tuch23jjD/sD//fbTDgKj2L7jMjtSaiKCoThatLAqToOddtpj75X56nHQFALUDU4Rl0Gl1b/ScvvHZXZsf69zy/9wWdXGz8HNCNfg62D3gWc+JYe0zl/2ev3Yh69kBoNa4ND6j8+zgZD5szDaqWM0tJdQ39Mdnt8Qmxb7iOe69ronvrDYN3pevdlGoJdYH1Xu2Z8MUXYPsmI/F0EftcgAACrs0MtO06xuhnTqrWMqtKSIgYuPE+LlPrnjz0Sb3Tm60KUjtglDDxftLh0ebPDTI60TsnOz5BtIVANRKrDCqlJ7Ne+59+cSKQyv+6fGvgHM5L8VkDTiqdk2oaTYFybQI9z8CNPm/v26Nf1Ks/OkDgFqLv+KrYFjIsMHBg6MTot8LevOF9NMTdmnHbEx3M6tdFm5tJp3MC/X8KMIhUxpm7/qPrBglFme1iwIAVC8CVtXotLphIcOGhQyLT47/MGjKjHs2jzrZ4LmfzgVlqF0Zbj3JbvJ6eONld+VozoZlxkzlDkEAqDsIWNcpzD/smydXJxuTP98y+179wohU57E/n+t5Qu2ycGuIDZCp4U2367O1+x80fjlZMli7BwB1CwHrhvi7+U/p9+6/H3hjxaEVM4I+eCLjxKjj9R/ekByWrHZlUIPBS2aFNl4elmc2+Rrjn7OufZKdFwCgbtK1uq3+0dM5jq1m+vuYjYbtatdTIznrnEe1GzWq3aikrKRFsfOHh3zhlmt5bL+M3JTKXvB1QaqrzA/xWdxOd8ajQPaPyPvfOEkNVrsoAICaNE/PPK7R2GyFuVlHv47fuLLAZrPZbA1u77l/02dq11aDxSbFLt0+b8Wxn0KznEfvyB38ZzZr4Wsfk06W690/DmtwIDBTd7SPcf9YOdFT7aJQM2TYpKHaNQBQROvWrU0mk6aYiBQ96tv0cPP2KLi4z2QWWzEnJ6cjR46oXXONZ7KYYgwxi2Pnbzq1JSzDuf+fmQMSrMGpapeFG5PoITF6WRTsuS8gT3v2rtz4ZyRhMFOBqBICFlBrlB+w9HoRsdls9kcCVnUwWUybEjet2ftdjCFG8vL6nHJ6cGtKl1PibFG7MlSORSuxAfJFK//1rQoynW0aQ+8cw1Ax9CFX4foQsIBag4B1q0hITVj914/r41fEZRzqlubeOy6j21Ezw1q3pkQP+SXIaXlz7+2t0p0v6HMMQwsMA+VsuNp1ocYjYAG1BgHrlmM0G2MMMevjV2xL3JJhyuh2xrHr/qwupyT0gtqV1W0GL9kWKGuC3DYFSb7U0ybel3liqBj6SK6P2qWh9iBgAbUGAeuWlmxM3pS4aftf67b9vTUx71y3DI+uCaZu8Rls93BzJPjIj0Ge64Jc9wZlakwNJbFbdlJPSezG/lWoJgQsoNYgYNUYGaaMTYmbNhs2xB793ZD9d1iWa+jJnA7H88KSJThVdFa166sVDvpKgo9sCaj3p0+DAwE5DlmN8xN75yfdJ4ndxOivdnWo/QhYQK1BwKqRjGZjfHJ83Nm4fce3x5/dY8g7E5zfIOyC9s5j2eHH80IvCLs/VIZJJwd95Q9/ly3+Dfc0sZ72zXTO8LdeaJdz9j5JDpOz4WLyULtG1C0ELKDWIGDVBiaL6eCFg7FJsX+d3h2XuOOg8YTe5BqUIfozeS3OF+jTxP6rjktylwQfMXjJES/dfi9Xg5ec9cp1TQ0sSO6YlxwhZ8MlOYy7/6AuAhZQa5QXsPiqnJrEWecc3iQ8vEm4dBIRsVgtBy8cNKQZDGmGfWcOfHf+L0P236mWLL3FXZ/tqL9gaXHKqD9foE+TgKxauCWESSfJbmLwksNejvFeDRK8dIlelgteWQ5mF6e0QEtacF5qmBzUS5peLoRmWZzVrhcAUIeUEbA871vQIC365peCqtJpdWH+YWH+YaUbTRaTPXIZ0gx/nTnwU/IhQ1ZisiXD2eYQkF/PP1cbkGa5Pcnob5SALCl5vGUlu0mymyS5Fz0e8qh/2s3xrLs1zc2c62x2zfJyyGpsSQ3NSWsnSXpJ00ua3mJ2y1e7bABAHVfGFKHGtY2LLv1g/A61a4OSUnNTk43JSVlJycbkxIzEMxcMyWmnkrLPJJtSk61ZQRY3EQky6kQkIL1QV2gLSM51sFj9jeJsEfujT+6VS77sL137rV3F6HRZi33wyf5o0UqSuxRqJamJm01kn04nIkkeFhFJc891Mrk6Gb20WU0KjLflZIRIVoAY/YseWY2OGospQqDWKH+K0KVXQFiYLufg2UNrTWYREWvOoQInp4q7Q43j4+rj4+oT6ht69UsWqyUpK0lEEjMSSx6TspIsVsvuCwZLQX5yRpLJYkrOvWCyXpawjFZTqvXaCctH6+amvWyGzlnr5O/qq9PqAryCdA6OTf1bOYh09QjKE1k8JEhEJCtArDrJCjBZdabr/9AAAKhDM/LtvZq0bHFv5GxLPL7yudNZLHKHajJFPDRqFwFUP0awgFqj3BGspG+GJxeIzXFAm+FR/mF3nd6yW+1SAQAAajZtcoGIiJh/TrmQ4+oZqXI5AAAANZ+25MhmZY9wAAAABWivfQoAAACqQutQfKTTOdmsBWrWAgAAUCtoW7XyEREH35eaNHbMSVmrdj0AAAA1ns7W6euuXW2isRWcW79n52m16wEAAKjxdAlL+hk8w+sVHDJm59jUrgYAAKAW0ImIJT2uwEa4AgAAUAZ3EQIAACiMgAUAAKAwAhYAAIDCCFgAAAAKI2ABAAAojIAFAACgMAIWAACAwghYAAAACiNgAQAAKIyABQAAoDACFgAAgMIIWAAAAAojYAEAACiMgAUAAKAwAhYAAIDCCFgAAAAKI2ABAAAojIAFAACgMAIWAACAwghYAAAACiNgAQAAKIyABQAAoDACFgAAgMIIWAAAAAojYAEAACiMgAUAAKAwAhYAAIDCCFgAAAAKI2ABAAAojIAFAACgMAIWAACAwghYAAAACiNgAQAAKIyABQAAoDACFgAAgMIIWAAAAAojYAEAACiMgAUAAKAwAhYAAIDCCFgAAAAKI2ABAAAojIAFAACgMAIWAACAwghYAAAACiNgAQAAKIyABQAAoDACFgAAgMIIWAAAAAojYAEAACiMgAUAAKAwAhYAAIDCCFgAAAAKI2ABAAAojIAFAACgMAIWAACAwghYAAAACiNgAQAAKIyABQAAoDACFgAAgMIIWAAAAAojYAEAACiMgAUAAKAwAhYAAIDCCFgAAAAKI2ABAAAojIAFAACgMAIWAACAwghYAAAACiNgAQAAKEx3f4cZ3g5izTu8/eg3Z/LULgcAAKDm0/VvFXYu2+RYv2undkNiNwz5/qzaFQEAANRwuv/7tr9JxGZrO3zgrNYtR8jZ79QuCQAAoGbTNdXJcYuI7P/+5/ttNpva9QAAANR4uglj4iwFeaa89L9PLVu1Y0mS2gUBAADUdNpp0S/M2x6953SqV4txozt3U7seAACAGk+Xkro1JXXr0WO2Dk4xIzwiRTaqXRIAAEDNpm2hExERx4hm7s4FlmyVywEAAKj5dBPGxNnEZrUWmnOO/LZ5rtr1AAAA1Hi6l7979jbXegU5e09mZ3MTIQAAwI3TmbJ3HcsWNmgAAABQCt9FCAAAoDACFgAAgMIIWAAAAAojYAEAACiMgAUAAKAwAhYAAIDCCFgAAAAKI2ABAAAojIAFAACgMF1T/b87e3lmXvzfdsPBrJJmBw8VawIAAKjRdJPuezA9M8epTfce7XcvX/ncrgIREfEIU7kuAACAGku37Ot7Yy1i0z38z6Hje919z65tO9QuCQAAoGbTxlpERKRg2b6UHA+P7iqXAwAAUPNdWuReaLWqWAcAAECtwV2EAAAACrsUsOo7OlptFhVLAQAAqB20D/v7ioi7/4yOfg7nz61Qux4AAIAaT3f3gLWRYrMW5qee+ubLvSfUrgcAAKDG07246OFm3t7ZF3emFIitpPniJhVrAgAAqNF0Yjl+8vxxm+3apwIAAKAyuIsQAABAYQQsAAAAhRGwAAAAFEbAAgAAUBgBCwAAQGEELAAAAIURsAAAABRGwAIAAFAYAQsAAEBhBCwAAACFEbAAAAAURsACAABQGAELAABAYQQsAAAAhRGwAAAAFEbAAgAAUBgBCwAAQGEELAAAAIURsAAAABRGwAIAAFAYAQsAAEBhBCwAAACFEbAAAAAURsACAABQGAELAABAYQQsAAAAhRGwAAAAFEbAAgAAUBgBCwAAQGEELAAAAIURsAAAABRGwAIAAFAYAQsAAEBhBCwAAACFEbAAAAAURsACAABQGAELAABAYQQsAAAAhRGwAAAAFEbAAgAAUBgBCwAAQGEELAAAAIURsAAAABRGwAIAAFAYAQsAAEBhurKbC1ve3DKAIhk2tSsAAOCGlROwym0HqlFDtQsAAEARun8NfLtfE9dswzfDNsRdanY4rF5JAAAANZu2t2vi8Qy1qwAAAKhFtP/+buFxs9pVAAAA1CJa5gIBAACUxTYNAAAACiNgAQAAKIyABQAAoDACFgAAgMIIWAAAAAojYAEAAChMc3LmGpvYCq3WQmthQeHpmC9mfWKzOTk5HTlyRO3aAAAAbmmtW7c2mUyaYiJif9T1WjBBRGw2m/2x6Jt2rUHqlQoAAFCzlTNFaG1wc8sAAACoPcoJWLoDN7cMAACA2oNF7gAAAAojYAEAACiMgAUAAKAwAhYAAIDCCFgAAAAKI2ABAAAojIAFAACgMAIWAACAwnQuLf/p5+NRkBKdfOxoQXGrxtFTzaIAAABqMl1Et345mXm6kK7Nwvf89f2UVLOIiJNPW7ULAwAAqKl0BxYNSS0Qm+OANsOjmkXclbplt9olAQAA1GzaVPu8oPnnlAs5rp6RKpcDAABQ811a5G6zWlWsAwAAoNbgLkIAAACFXQpYOp2TzVpQwakAAACoDG3zxj4i4tj45SaNtdnn1tpbzaZ8VasCAACowXSBg5berrHZCs3Gv5cd3H3a3mpLT1C3LAAAgJpLt+nLf7p5exRc3Gcyi+1Se6Z6JQEAANRsOik4ZUw+ZbNd+1QAAABUBncRAgAAKIyABQAAoDACFgAAgMIIWAAAAAojYAEAACiMgAUAAKAwAhYAAIDCyg5Y9Rrfd5PrAAAAqDUYwQIAAFDYpYCl8+xQ362+iqUAAADUDpcCVtOub4R26qxiKQAAALUDU4QAAAAKI2ABAAAojIAFAACgMAIWAACAwghYAAAACtO2uq2+iDi2munvY85J2a52PQAAADWerkm/lU01NlthbtbRrxMO5KhdDwAAQI2n2/TlP928PQou7jOZxVbcmn9ui5pFAQAA1GQ6KThlTD5ls137VAAAAFQGi9wBAAAURsACAABQGAELAABAYQQsAAAAhRGwAAAAFEbAAgAAUBgBCwAAQGEELAAAAIURsAAAABRGwAIAAFAYAQsAAEBhBCwAAACFEbAAAAAURsACAABQGAELAABAYQQsAAAAhRGwAAAAFEbAAgAAUBgBCwAAQGEELAAAAIURsAAAABRGwAIAAFAYAQsAAEBhBCwAAACF6Xx9m4iI7RKr1Wo1m/PVLgwAAOBW5+zs6urqrtVqtVqNRqPVFGMECwAAQGEELAAAAIURsAAAABRGwAIAAFAYAQsAAEBhBCwAAACFEbAAAAAURsACAABQGAELAABAYQQsAAAAhRGwAAAAFEbAAgAAUBgBCwAAQGEELAAAAIURsAAAABRGwAIAAFAYAQsAAEBhOo1GJyIiNhGbiFVEq9EUimhUrgsAAKAG0Gg0DhqNVqPRFD9qNBqNLj09RUREbDab2IpYtVoCFgAAwDWYzaaCAqNWeylaiWg0mrKmCG22m18eAABAzWazXQpRVwcs4hUAAEAVlI5WdixyBwAAUBgBCwAAQGFXByyWtwMAAFSBRiOaywOUztOzkcil+wdtNpvVWpifn6dOgQAAADWHk5Ozi4uTVmu/j7DUNg0ZGSn2ZVm2S9imAQAA4NrMZlNBQU6pXRrK36YBAAAAVXdpfIqABQAAcP00GhHRFKeroketfSDrqpMAAABQZfZYpS39XEOyAgAAqBqNPUSVzlH2gFUyqKW5YkALAAAAFSg1RagpmQnUlbxmv5ew+AVbmzYhahVa3e6/v0fpp7/99rvib+Hk5Gw2m67d2Cg4vIkpbl9iSUOzOzs4n919OOXyK5u1C3c+F3c4RcTBxd3NqSQB28w5WXkWERG5LTTcO+9I/PHsomcdvfIS9hU9K36zNuG3a87EHTpnf+rSIizUNW3PgVOFV9RZLyCkjYfRcPCUsaofGwCAuufqoSmNpjhgXdFus4nNZhP7Q/GjXPoe6OL/qZnfWzhw4MBnnx0vIp9+OldE1q37RfG3cHZ2NJuvzCdlNPqE3tMhfcefBmng17yRq4iEdOrsfvBCdj0RS+bZU2kme3tIp0j3v5KznS1ZDm36drvdpai/hg1Sf/lw2T4Rce7e44HW5z+PNZtFRJx7du9zR+a323ebS71Vq+EPDWxd31LQpbeISF6iIbdZiJ+YO/e0v5yy570vi4Km+USK97hRXdr8+unS+CtDIgAAdVKpEKUpfqopfizen6H4VRGN7vKLNTabaDS2K9a5azRis9n7sMcs+6u2GjqZ6OzsbN/oy9nZWUQq3vRr0KCBgwYNXLXq51Wrfq64sTT7hmMVN97z8Lj2fm4N3Bo//3zDvXulfXtvEXH2qK9r36dfW5HcxJhFMSfade3X3lucPdx0Yf36heae/GXR0i+KO+j3/GQvB61G2//Zt8I98y1W/2devcuxIDH6q4shTZwa+o967f9ERKurlx73xufnRw1tU7hnw/GAoJNLlu0xNWj54CO9T62Zn9iqr8euH2MS8y//OSSv//qPgBd6jbhr35L4yv9cAQCo3UqilZQatypJV0Utlxa5+/s3LmktOdZoNH5+jTWaom1J/fz8ShKar69vSXujRpfaq+O4Ojg5OZUclByX5+efV2/atHnYsId6937A3tK79wPDhj20adPmn39eXd5VpTccK6/xr22//Xoo05Z/7tdfd/wVu2LevAXz5i04nmtN3b5g3rwF8xavP6nRaOztx3OtqX/Mm7dgccxJ96YtizWo56hz0Gg0Op0u88Dbb7/79tvrkyyOusa923ld2PThu2+//e7bb7+7P1On0/l2Cmt44ZfF63fuTPG6u999w1/696jwxk5Wi3lfYr32jz7a8epa8x109Tza3D/Ut+KfTrHq/m3AMcccc8wxx2ofazWXIpBGo9H4+voXH4qfn3/J6is/v8YiornjjnYlwcxWNOdnK5kKLP9ASiYK1fLQQ0OGDh16RePKlSt/+OHHii9cuvSbxx573H4gIvbjiv3jH6N69+79zTdLROTxx0etX7/+66+XVHB+w4bemZkXr93Y4Ymp3dLe+vCn4O5D7/ASEfELvtPlzL7EbBER0+lt0um5CD8Rjc5RaykoFMk9dtIcHKBNySoQEWdP9wur3vpq9+AX3mtxYvKHP4l0eGpqX5eki+a02N/i9h5PEhEZ/NI7LY6/8mG0/f3c2z/69JBgOfT9p9Guw14Y0Ny07+fPV+y9bKWWXdex0zo7p9VrkLVq+he7r/njAQCgLigZs5LSE4WXHxSdoy2Z5vP3b1zcqvH3b1zUg0b8/PxLhr9KhTXNzTwu08qV0dHRP+lKiY7+aeXK6Iqv0mg0Op2u5KDkuGLffLP01183PPHEmCeeGPPrrxu++WZpZa66Nq2DQ/3bRkU9HKJ1sMtMOnnBVHSs1WrWfvLu3K8+m/la3MWC06umvjH13aUZ2oLkTf+dM+e/c+a8/8a0RXs0Go1Wq6t/24gRw0eMaOft7GA+MP8nW/en//l0hIvG/qJWq9FoGrbpP2bSW5MfCal3svB5RAAAAnJJREFU9shpa5uBg27PP55wsUGnR1+b8eqEx3u0cS9dlsuADkHms2v/d6hA32OIX1mFl0mt3x4cc8wxxxxzfNOP7VlKU3rsqjg+iUaj0YSG3nn5uFTpJ7bSq9qvHru6FRa5P/HE6P79+4nImjVrv/pq8TXPX7Hiu6sbhw17+JoXjhgxbMSI4SKyfPn3y5evqPhkDw/vjIwrR7Aubwx74rURIQ11WnPascO7tnzz+yEREXlo8puNNr4+f1fJReHjpndLmXJcP91n45TPdl1xwkMvvBeQMDnpjlkd6p1NN4no3H1dz3z/+vxdvoNffiHSsuX1j9b1m/x+iyPv/NX8pfvcz+/9efF+z95tvUUcHR0LCgpEJO/s/vMBvXu39Uz5+d15O4u+4rvTP6cPd9s5ddbP0v1fr90vG6b/93cWuwMA6rQrFrmXarlsBEuKB7Hsa7CalDWOJX5+jUsutgc0+1P7mJY9n/n5XQp01XF8TYsWfR0Tsz4mZv2iRV9X5vzhw0faf+l0upLja141cOCARx99xP5Gjz76yMCBAypfYTmOrF08+/Xvj5uNhgVLNrZ66d2ZM9+dOfPdSH+31iPsxy8M1mg0mts8HPMzNQ4Obq1HzHx35kuDHBx0OseiLvzr17cWXNQ4ODgYj3zwwUcffLDxnMVBq9FoNCk/fbztnNvtd3u7OOrMxnMZa2e99p+5x/y69Tf+tmL58i26Znd4n1+xfPmK5bsaDxrkf2Lea2/M32Wyd+p6z7ODW1uP/LLapNGYNi2Py7y915OdXa/xYar7twHHHHPMMcccq3tsTz5+fv5SvDe7X1Ecsh9fGruyj2P9P6sGodZ6tsREAAAAAElFTkSuQmCC)
xaml
样式:
<Window x:Class="WpfApp2.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:WpfApp2"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Title="XAMLWithScript"
Width="800"
Height="450"
Loaded="Window_Loaded"
WindowStartupLocation="CenterScreen"
mc:Ignorable="d">
<Canvas Margin="0,0,0,0"
Background="White">
<Rectangle Canvas.Left="210"
Canvas.Top="101"
Width="250"
Height="200"
Fill="Blue"
Stroke="Azure" />
<Ellipse Canvas.Left="65"
Canvas.Top="45"
Width="250"
Height="100"
Panel.ZIndex="1"
Fill="Red"
Stroke="Green" />
<Button Name="btnByCode" Click="btnByCode_Click">后台代码实现</Button>
</Canvas>
</Window>
C#
代码实现:
Canvas canv = new Canvas();
//把canv添加为窗体的子控件
Content = canv;
canv.Margin = new Thickness(0, 0, 0, 0);
canv.Background = new SolidColorBrush(Colors.White);
//Rectangle
Rectangle r = new Rectangle();
r.Fill = new SolidColorBrush(Colors.Red);
r.Stroke = new SolidColorBrush(Colors.Red);
r.Width = 200;
r.Height = 140;
r.SetValue(Canvas.LeftProperty, (double)200);
r.SetValue(Canvas.TopProperty, (double)120);
canv.Children.Add(r);
//Ellipse
Ellipse el = new Ellipse();
el.Fill = new SolidColorBrush(Colors.Blue);
el.Stroke = new SolidColorBrush(Colors.Blue);
el.Width = 240;
el.Height = 80;
el.SetValue(Canvas.ZIndexProperty, 1);
el.SetValue(Canvas.LeftProperty, (double)100);
el.SetValue(Canvas.TopProperty, (double)80);
canv.Children.Add(el);
🧨Canvas内的子控件不能使用两个以上的Canvas附加属性,如果同时设置Canvas.Left和Canvas.Right属性,那么后者将会被忽略
StackPanel
堆栈面板,水平或垂直放置元素。通过设置面板的Orientation
属性设置了两种排列方式:横排(Horizontal
默认的)和竖排(Vertical
)。纵向的StackPanel
默认每个元素宽度与面板一样宽,反之横向亦然。如果包含的元素超过了面板空间,它只会截断多出的内容。 元素的Margin
属性用于使元素之间产生一定得间隔,当元素空间大于其内容的空间时,剩余空间将由HorizontalAlignment
和VerticalAlignment
属性来决定如何分配。
同样看实例:
![](data:image/png;base64,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AAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmABAAAoRmAB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gGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgM7ESDsAAAxeSURBVGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAAgGIEFgAA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)
<Window x:Class="WpfApp2.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:WpfApp2"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Title="XAMLWithScript"
Width="800"
Height="450"
Loaded="Window_Loaded"
WindowStartupLocation="CenterScreen"
mc:Ignorable="d">
<StackPanel Margin="0,0,0,0"
Background="White"
Orientation="Horizontal">
<Button Content="竖排第一个按钮" />
<Button Content="竖排第二个按钮" />
<Button Content="竖排第三个按钮" />
<Button Content="竖排第四个按钮" />
</StackPanel>
</Window>
StackPanel sp = new StackPanel();
sp.Orientation = Orientation.Vertical;
//把sp添加为窗体的子控件
this.Content = sp;
sp.Margin = new Thickness(0, 0, 0, 0);
sp.Background = new SolidColorBrush(Colors.White);
sp.Orientation = Orientation.Horizontal;
//Button1
Button b1 = new Button();
b1.Content = "竖排第一个按钮";
sp.Children.Add(b1);
//Button2
Button b2 = new Button();
b2.Content = "竖排第二个按钮";
sp.Children.Add(b2);
//Button3
Button b3 = new Button();
b3.Content = "竖排第三个按钮";
sp.Children.Add(b3);
//Button4
Button b4 = new Button();
b4.Content = "竖排第四个按钮";
sp.Children.Add(b4);
WrapPanel
可换行的行中放置元素,在水平方向上从左向右放置元素,换行后也是从左向右。在垂直方向上,从上到下放置元素,在切换列后也是从上到下。WrapPanel
也提供了Orientation
属性设置排列方式,这跟上面的StackPanel
基本相似。不同的是WrapPanel
会根据内容自动换行。
ItemHeight
- 所有子元素都一致的高度。每个子元素填充高度的方式取决于它的VerticalAlignment
属性、Height
属性等。任何比ItemHeight
高的元素都将被截断。
ItemWidth
- 所有子元素都一致的宽度。每个子元素填充高度的方式取决于它的VerticalAlignment
属性、Width
属性等。任何比ItemWidth
高的元素都将被截断。
<Window x:Class="WpfApp2.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:WpfApp2"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Title="XAMLWithScript"
Width="800"
Height="450"
Loaded="Window_Loaded"
WindowStartupLocation="CenterScreen"
mc:Ignorable="d">
<WrapPanel Margin="0,0,0,0" Background="White">
<Rectangle Width="60" Height="60" Margin="10,10,10,10" Fill="lightgreen" />
<Rectangle Width="60" Height="60" Margin="10,10,10,10" Fill="lightgreen" />
<Rectangle Width="60" Height="60" Margin="10,10,10,10" Fill="lightgreen" />
<Rectangle Width="60" Height="60" Margin="10,10,10,10" Fill="lightgreen" />
<Rectangle Width="60" Height="60" Margin="10,10,10,10" Fill="lightgreen" />
<Rectangle Width="60" Height="60" Margin="10,10,10,10" Fill="lightgreen" />
<Rectangle Width="60" Height="60" Margin="10,10,10,10" Fill="lightgreen" />
<Rectangle Width="60" Height="60" Margin="10,10,10,10" Fill="lightgreen" />
<Rectangle Width="60" Height="60" Margin="10,10,10,10" Fill="lightgreen" />
<Rectangle Width="60" Height="60" Margin="10,10,10,10" Fill="lightgreen" />
<Rectangle Width="60" Height="60" Margin="10,10,10,10" Fill="lightgreen" />
</WrapPanel>
</Window>
WrapPanel wp = new WrapPanel();
//把wp添加为窗体的子控件
Content = wp;
wp.Margin = new Thickness(0, 0, 0, 0);
wp.Background = new SolidColorBrush(Colors.White);
//遍历增加Rectangles
Rectangle r;
for (int i = 0; i <= 10; i++)
r = new Rectangle();
r.Fill = new SolidColorBrush(Colors.LightGreen);
r.Margin = new Thickness(10, 10, 10, 10);
r.Width = 60;
r.Height = 60;
wp.Children.Add(r);
DockPanel
停靠面板,根据容器的整个边界调整元素,DockPanel
定义一个区域,在此区域中,您可以使子元素通过描点的形式排列,这些对象位于Children
属性中。停靠面板其实就是在WinForm
类似于Dock
属性的元 素。DockPanel
会对每个子元素进行排序,并停靠在面板的一侧,多个停靠在同侧的元素则按顺序排序。
如果将LastChildFill
属性设置为 true
(默认设置),那么无论对DockPanel
的最后一个子元素设置的其他任何停靠值如何,该子元素都将始终填满剩余的空间。若要将子元素停靠在另一个方向,必须将LastChildFill
属性设置为 false
,还必须为最后一个子元素指定显式停靠方向。
默认情况下,面板元素并不接收焦点。要强制使面板元素接收焦点,请将Focusable
属性设置为 true
。
![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAHCCAIAAACYATqfAAAgAElEQVR4nO3dd3xV5eH48efcXJYsGRJwVg0IiFYrWhvo160lqMUBdWC1tg0uRGrV9qdSB45WbaG2KmhbcXQgWqoyXFUsIFrQ1oUKgnUjMiI76/7+uEkIK4T4QADf75evcO7JPec+QV68PjznuecmHTt2DCGEEDKZTNXXnJycAGxBhx12WH0Pge3EpEmT6nsI8NVSWloaQkiSpOprCCG97vOyjfX2229vwbHBV11hYeG0af+u71GwzTv00IP97Q1b0j777JPJZKq6qkoq+0v16Sugfh166MHr3QZgK1Q9oqpSau0ZrEwmI7OgflWfytrQtNbkyRu5DNSz5yZcc9zo2Tbp5JvvbBt6Zm2eU1/atGl9zDHHdOnSuVOnjiGEd96ZNXPmW5MmPf/JJ5/U99CAaKpPYmW308HEFWyVDj304C150bD2XVKbftrCZ6t6Qg1nW7bsi6ZNW2zouzk5Oe3atVsrejp06LBw4YJVq4preOkaTtuoUaNTTjn5pJP7vLrqv/+Z/8rf3vxraaa0U+tOXQu63nryL8eNnfDww4+sWrWqph8M2KZUz6x0VV3JLNiqWJJVXdyqq65Nm9bnnTegZ88erVu3/uY386t/a+zYh4uKil54Ydof//in//3v/U0984ABhT2Pz//Fv4Yc2uHQvp365u7QPpWk5i+f/+In037+8s+vOeOarl27XHXVkDqMGdiqVBVU9Ums9SxyB+pX9bmrGuaxtrZrYZtb3OuSVa644vKSkuJBgwbdf//96373/PPPP+mkk6699ppzzjl3k057xhmn9zw+/8pJV97Q88YOTTtU7e/QtEOfvJOO2P2IKyZdMbD7wDPPPP3BB/9Sh2E3b968TZtW7723ydkHbFZVk1jptfYGU1lQ32qzBmvz6dv31IceGhPrbBvqntrX4SZ1ZB2i84ADvv6Tn/xkyJAh77wz67DD/u+YY47u3LnznDlzJk16/uWXX/n9739fWFjYt2/fTTpnmzatz/r+mZf+69K16iqEsKxk2Ql/P/60LqfddsSvfzjx3LvPvXvy5CmbOj3WvHnzTp3y3nln9iYdBWxJ61nkXvMBr772xqLFi2tz6h1bttiv276pVKqOQ4OvttqswVo3X7KFMXnypDrPbw0aNHD+/PnPPRftXkrrjqTOs00hdv+FEFq2bDlv3ryOHTs+8sjYgQMvfOCBB/7617906NDhu9/97pIlS1q1arVixYpNPedJJ500dcHUQzsculZdhRDGzX08hHBqx75N000HfH3A39/9+7HHHnP33X+o/cmr6mrJkiWbOjBgs8pOX61e5B42ZdZq9pz39vjaniGs+/yKK48ffbogZDIhhI8/nb3brru0bt060rDhq6U2c1frrahdd90lhLDffvu99tprdXvpiy66sEGDBk899XTdDt+sBg0auHDhwmee+WeUs/XuXVBWVpbdPvjgg37yk59kc2revHmFhYW77LJLCKFJkyaLFi066KBvzJjxci1Pu9dee/57/kundTp9rf2fr/z8rv/cdeE3LmzduHUI4YDcAya+OPH4PU+o/YDVFWyF1l2DFarug1V7rVvt2K1L3r6dO67zX17XffK67pN3zGHfPObwQ4894tCd2rbZqt8gM3t4j6TH8LWn2CcMWM/OiOeHjavzfbDatGl95ZU/Hzbs1yGEn/3s8ttvH9658z51GED79rn9+5+Rn/+tOhwb3brTXRdeeP5xxx1byyfXbMiQq+66664ePXqEEB544IGqyao77rhjl112ufbaa0MIRx111KhRo+6443e1P+1ee+359oK32zZpu9b+SR8+F0I4bNfDsw93bNhq5ucz99prz1qeVl2xjUpqtIVHMmPGjHX3z5gxI/pINjmwclLJe//7bPiDU377l8m3/+1fvxvz/B1/nzR3zkcrli2ZP+/T+fM+Xb5syf1PvHrfxFfXf/yEAcka2TFhQJIkAyZUPpw9vEf1h5V71l9CVbtnD++xxkETBqxxkrVSp07lM2FA5R+FNUYHm0Ht12BNnjypelKcd96AXXfd5Yc/LAwh/OhHhUVFRVdffVXdxrD33nv373/G/vvvX7fDN4eqn7Rdu3Y//elPOnbMC5W/A1/mmuOiRYvatm0bQli5cuXvfve7hg0bZuvqnHPOefnll0MIbdq0KSoq2tTTFpcX56RSIYQ7X73jyNFHLCtdVlxe/PuXf3/k7ke2bVwRXklIykN57c/ZoEE6kykvLS3Z1MFAvctswBYexvTp07/Vo+dajTVjxoxv9eg5ffr0iC+UyWQ2ObDKy8uTJOe9oqXvLVn6/oovPlhV9GHJ4pKSspBZ46+JnIYb+Fuj14jxhVMvObuib2YPHzoy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)
<Window x:Class="WpfApp2.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:WpfApp2"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Title="XAMLWithScript"
Width="800"
Height="450"
Loaded="Window_Loaded"
WindowStartupLocation="CenterScreen"
mc:Ignorable="d">
<DockPanel Width="Auto" Height="Auto" LastChildFill="False">
<Button Content="1" DockPanel.Dock="Top" />
<Button Width="40" Content="4" DockPanel.Dock="Left" />
<Button Width="40" Content="2" DockPanel.Dock="Right" />
<Button Content="3" DockPanel.Dock="Bottom" />
</DockPanel>
</Window>
DockPanel dockPanel = new DockPanel();
dockPanel.Width = double.NaN; // Auto
dockPanel.Height = double.NaN; // Auto
dockPanel.LastChildFill = false;
Button button1 = new Button();
button1.Content = "1";
DockPanel.SetDock(button1, Dock.Top);
Button button2 = new Button();
button2.Width = 40;
button2.Content = "4";
DockPanel.SetDock(button2, Dock.Left);
Button button3 = new Button();
button3.Width = 40;
button3.Content = "2";
DockPanel.SetDock(button3, Dock.Right);
Button button4 = new Button();
button4.Content = "3";
DockPanel.SetDock(button4, Dock.Bottom);
dockPanel.Children.Add(button1);
dockPanel.Children.Add(button2);
dockPanel.Children.Add(button3);
dockPanel.Children.Add(button4);
this.Content = dockPanel;
表格布局,在行列表格中排列元素,它的子控件被放在一个一个实现定义好的小格子里面,整齐配列。
Grid
和其他各个Panel
比较起来,功能最多也最为复杂。要使用Grid
,首先要向RowDefinitions
和ColumnDefinitions
属性中添加一定数量的RowDefinitions
和 ColumnDefinitions
元素,从而定义行数和列数。而放置在Grid
面板中的控件元素都必须显示采用附加属性语法定义其放置所在的行和列,它们都是以0为基准的整型值,如果没有显式设置任何行或列,Grid
将会隐式地将控件加入在第0行第0列。
由于Grid
的组成并非简单的添加属性标记来区分行列,这也使得用户在实际应用中可以具体到某一单 元格中,所以布局起来就很精细了。
Grid的列宽与行高可采用固定、自动、按比例三种方式定义
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="40" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="300" />
</Grid.ColumnDefinitions>
</Grid>
<Grid.RowDefinitions>
元素来定义行,其中包含的多个 <RowDefinition>
元素来定义每行的高度。
第一行的高度设置为 "Auto",表示该行的高度会根据其内容自动调整。
第二行的高度也设置为 "Auto",表示该行的高度会根据其内容自动调整。
第三行的高度设置为 "*",表示该行的高度将填充 Grid 的剩余可用空间。
第四行的高度设置为 "40",表示该行的高度固定为 40 个设备无关单位(Device Independent Units)。
<Grid.ColumnDefinitions>
元素来定义列,其中包含多个 <ColumnDefinition>
元素来定义每列的宽度。
第一列的宽度设置为 "Auto",表示该列的宽度会根据其内容自动调整。
第二列的宽度设置为 "300",表示该列的宽度固定为 300 个设备无关单位。
上述xaml
内容定义了一个四行两列的Grid
布局,第一行和第二行的高度根据其内容自动调整,第三行填充剩余的可用空间,第四行的高度固定为 40。第一列的宽度根据其内容自动调整,第二列的宽度固定为 300。
Grid
宽高的几种方式:
固定大小(Fixed Size): 可以使用具体数值(如像素、设备无关单位等)来指定行高度和列宽度,例如 RowDefinition.Height="100"
和 ColumnDefinition.Width="200"
。这样可以使行和列具有固定的大小。
自动调整(Auto Sizing): 可以使用 Auto
关键字来指定行高度和列宽度,例如 RowDefinition.Height="Auto"
和 ColumnDefinition.Width="Auto"
。这样会根据行或列的内容自动调整大小,以适应内容的需求。
剩余空间填充(Star Sizing): 可以使用 *
关键字来指定行高度和列宽度,例如 RowDefinition.Height="*"
和 ColumnDefinition.Width="*"
。这样会使行或列占据剩余可用空间的比例。如果多个行或列都设置为 *
,它们将平均分配剩余空间。
跨越多行多列
在 Grid 布局中,可以通过合并单元格的方式实现跨越多行和多列的布局效果。这可以通过使用 Grid.RowSpan
和 Grid.ColumnSpan
属性来实现。
Grid.RowSpan
属性用于指定一个元素跨越的行数,可以设置为大于 1 的整数值。
Grid.ColumnSpan
属性用于指定一个元素跨越的列数,同样可以设置为大于 1 的整数值。
以下是一个示例,展示了一个元素跨越两行三列的布局:
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<!-- 跨越两行三列的元素 -->
<TextBlock Text="Spanning across multiple rows and columns"
Grid.Row="0" Grid.RowSpan="2"
Grid.Column="0" Grid.ColumnSpan="3" />
<!-- 其他元素 -->
<TextBlock Text="Row 2, Column 3" Grid.Row="2" Grid.Column="3" />
<TextBlock Text="Row 1, Column 2" Grid.Row="1" Grid.Column="2" />
</Grid>
在上述示例中,TextBlock
元素通过设置 Grid.RowSpan="2"
和 Grid.ColumnSpan="3"
属性跨越了两行三列。它位于第一行的第一列,并跨越了第一行、第二行和前三列。其他元素则根据指定的行和列进行定位。
通过合并单元格的方式,可以创建更复杂的跨越多行多列的布局效果,以满足特定的布局需求。
GridSplitter
用于在 Grid
布局中创建可调整大小的分割效果。它允许用户通过拖动分隔条来改变相邻行或列的大小。
以下是 GridSplitter
的基本用法示例:
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<TextBlock Text="Left" Grid.Column="0" />
<GridSplitter Width="5" Grid.Column="1" ResizeBehavior="PreviousAndNext" />
<TextBlock Text="Right" Grid.Column="2" />
</Grid>
在上述示例中,我们创建了一个包含三个列的 Grid
布局。在中间的列,我们添加了一个 GridSplitter
控件,并设置其宽度为 5 个设备无关单位(Device Independent Units)。GridSplitter
的 ResizeBehavior
属性设置为 PreviousAndNext
,表示它将影响前一个列和后一个列的大小。
用户可以在运行时通过拖动 GridSplitter
控件来调整左侧和右侧列的宽度。
GridSplitter
还有其他属性可用于定制其外观和行为,例如 Background
、ResizeDirection
、ResizeCursor
等。您可以根据需要设置这些属性来满足特定的布局要求。
请注意,GridSplitter
只能用于 Grid
布局,并且需要适当的行和列定义才能正常工作。确保在使用 GridSplitter
时,考虑布局的其他方面,如最小宽度、最大宽度等,以提供更好的用户体验。
混合布局效果
<Window x:Class="WpfApp2.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:WpfApp2"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Title="XAMLWithScript"
Width="800"
Height="450"
Loaded="Window_Loaded"
WindowStartupLocation="CenterScreen"
mc:Ignorable="d">
<Grid Width="Auto" Height="Auto" ShowGridLines="True">
<Grid.RowDefinitions>
<RowDefinition Height="61*"/>
<RowDefinition Height="101*"/>
<RowDefinition Height="108*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="139"/>
<ColumnDefinition Width="184*"/>
<ColumnDefinition Width="45*"/>
<ColumnDefinition Width="250*"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Row="0" Grid.Column="0" Text="第一行、第一列,占1列" Background="LightBlue" HorizontalAlignment="Center"/>
<Button Grid.Row="0" Grid.Column="1" Grid.RowSpan="2" Grid.ColumnSpan="3" Content="第一行、占3列"/>
<Button Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="4" Content="第3行,第1列开始,占4列" />
</Grid>
</Window>
添加子元素时不声明具体几行几列时默认都是0;
Grid grid = new Grid();
grid.Width = double.NaN;
grid.Height = double.NaN;
grid.ShowGridLines = true;
grid.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(61, GridUnitType.Star) });
grid.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(101, GridUnitType.Star) });
grid.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(108, GridUnitType.Star) });
grid.ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(139) });
grid.ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(184, GridUnitType.Star) });
grid.ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(45, GridUnitType.Star) });
grid.ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(250, GridUnitType.Star) });
TextBlock textBlock = new TextBlock();
textBlock.Text = "第一行、第一列,占1列";
textBlock.Background = Brushes.LightBlue;
textBlock.HorizontalAlignment = HorizontalAlignment.Center;
Grid.SetRow(textBlock, 0);
Grid.SetColumn(textBlock, 0);
Grid.SetColumnSpan(textBlock, 1);
Button button1 = new Button();
button1.Content = "第一行、占3列";
Grid.SetRow(button1, 0);
Grid.SetColumn(button1, 1);
Grid.SetRowSpan(button1, 2);
Grid.SetColumnSpan(button1, 3);
Button button2 = new Button();
button2.Content = "第3行,第1列开始,占4列";
Grid.SetRow(button2, 2);
Grid.SetColumn(button2, 0);
Grid.SetColumnSpan(button2, 4);
grid.Children.Add(textBlock);
grid.Children.Add(button1);
grid.Children.Add(button2);
this.Content = grid;
💡设计的时候看不清楚的话可以通过ShowGridLines
属性把网格线显示出来
Grid 简化版,强制所有单元格具有相同尺寸。每个单元格的大小相同,不用在定义行列集合。均布网格每个单元格只能容纳一个元素,将自动按照定义在其内部的元素个数,自动创建行列,并通常保持相同的行列数。UniformGrid
中没有Row
和Column
附加属性,也没有空白单元格。
💡与Grid
布局控件相比,UniformGrid
布局控件很少使用。Grid
面板是用于创建简单乃至复杂窗口布局的通用工具。UniformGrid
面板是一个一种更特殊的布局容器,主要用于在一个刻板的网格中快速地布局元素。
<Window x:Class="WpfApp2.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:local="clr-namespace:WpfApp2" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Title="XAMLWithScript" Width="800" Height="450"
Loaded="Window_Loaded" WindowStartupLocation="CenterScreen" mc:Ignorable="d">
<UniformGrid Columns="2" Rows="2">
<Button>(0,0)</Button>
<Button>(0,1)</Button>
<Button>(1,0)</Button>
<Button>(1,1)</Button>
</UniformGrid>
</Window>
C#
代码:
Grid grid = new Grid();
grid.Width = double.NaN;
grid.Height = double.NaN;
grid.ShowGridLines = true;
grid.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(61, GridUnitType.Star) });
grid.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(101, GridUnitType.Star) });
grid.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(108, GridUnitType.Star) });
grid.ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(139) });
grid.ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(184, GridUnitType.Star) });
grid.ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(45, GridUnitType.Star) });
grid.ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(250, GridUnitType.Star) });
TextBlock textBlock = new TextBlock();
textBlock.Text = "第一行、第一列,占1列";
textBlock.Background = Brushes.LightBlue;
textBlock.HorizontalAlignment = HorizontalAlignment.Center;
Grid.SetRow(textBlock, 0);
Grid.SetColumn(textBlock, 0);
Grid.SetColumnSpan(textBlock, 1);
Button button1 = new Button();
button1.Content = "第一行、占3列";
Grid.SetRow(button1, 0);
Grid.SetColumn(button1, 1);
Grid.SetRowSpan(button1, 2);
Grid.SetColumnSpan(button1, 3);
Button button2 = new Button();
button2.Content = "第3行,第1列开始,占4列";
Grid.SetRow(button2, 2);
Grid.SetColumn(button2, 0);
Grid.SetColumnSpan(button2, 4);
grid.Children.Add(textBlock);
grid.Children.Add(button1);
grid.Children.Add(button2);
this.Content = grid;
ViewBox
Viewbox
是一个容器控件,允许其内容根据可用空间进行缩放,同时保持其纵横比。它通常用于为其中的内容提供自动缩放和调整大小的行为。
ViewBox
这个控件通常和其他控件结合起来使用,是WPF
中非常有用的控件,用来定义一个内容容器。ViewBox
组件的作用是拉伸或延展位于其中的组件,以填满可用空间,使之有更好的布局及视觉效果。
🧨一个 Viewbox
中只能放一个控件。如果多添加了一个控件就会报错。
以下是一些常用的 Viewbox
属性:
Stretch
(拉伸):指定内容在视图框中的拉伸方式。常见的取值包括:
Uniform
(均匀):保持内容的纵横比,同时填充视图框,可能导致内容被裁剪。
UniformToFill
(均匀填充):保持内容的纵横比,同时填充视图框,可能导致内容被裁剪。
Fill
(填充):不保持内容的纵横比,将内容拉伸以填充视图框。
StretchDirection
(拉伸方向):指定内容在视图框中拉伸的方向。常见的取值包括:
Both
(双向):内容可以在水平和垂直方向上拉伸。
DownOnly
(仅向下):内容只能在垂直方向上拉伸。
UpOnly
(仅向上):内容只能在水平方向上拉伸。
HorizontalAlignment
(水平对齐)和 VerticalAlignment
(垂直对齐):指定内容在视图框中的水平和垂直对齐方式。常见的取值包括:
Left
(左对齐):内容在视图框的左侧对齐。
Center
(居中对齐):内容在视图框的中间对齐。
Right
(右对齐):内容在视图框的右侧对齐。
Top
(顶部对齐):内容在视图框的顶部对齐。
Bottom
(底部对齐):内容在视图框的底部对齐。
MaxWidth
(最大宽度)和 MaxHeight
(最大高度):指定内容在视图框中的最大宽度和最大高度限制。当内容超过指定的最大尺寸时,将被自动缩放以适应。
Uniform
效果下的Viewbox
:
![](data:image/png;base64,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)
<Viewbox Stretch="Uniform">
<Button Content="Hello,Knights Warrior" />
</Viewbox>
Viewbox vb = new Viewbox();
vb.Stretch = Stretch.Uniform;
//Button1
Button b1 = new Button();
b1.Content = "Hello,Knights Warrior";
vb.Child = b1;
this.Content = vb;
Border
Border
不是布局面板,但是经常与布局类的面板一起配合使用,用于为其内部的内容提供边框和可选的背景样式。它可以包含单个子元素,并且可以根据需要调整其大小以适应子元素。
以下是 Border
控件的一些常用属性:
Background
(背景):指定 Border
的背景颜色或背景画刷。可以使用颜色名称、十六进制值或画刷对象来设置背景。
BorderBrush
(边框画刷):指定 Border
的边框颜色或边框画刷。可以使用颜色名称、十六进制值或画刷对象来设置边框。
BorderThickness
(边框厚度):指定 Border
的边框厚度。可以设置为单个值,表示统一的边框宽度,或设置为 Left
、Top
、Right
、Bottom
分别指定不同的边框宽度。
CornerRadius
(圆角半径):指定 Border
的圆角半径,以使边框的角变得圆润。可以设置为单个值,表示统一的圆角半径,或设置为 TopLeft
、TopRight
、BottomRight
、BottomLeft
分别指定不同的圆角半径。
Padding
(内边距):指定 Border
内容与边框之间的空间,也就是内边距。可以设置为单个值,表示统一的内边距,或设置为 Left
、Top
、Right
、Bottom
分别指定不同的内边距。
Child
(子元素):指定 Border
的单个子元素。这个子元素将被包含在边框内部,并且可以根据需要调整边框的大小。
通过使用 Border
控件,您可以为内部内容提供边框和背景样式,并控制边框的大小、边框颜色以及内部内容的对齐和间距。这使得 Border
成为一种常用的容器控件,用于组织和美化界面元素。
![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAHCCAIAAACYATqfAAAgAElEQVR4nO3deZyVdaH48e9z5gyLbMKIQKClDqtgmks0UGZd9QJpuMA1w7LlDpZ6obxm/VRERfNeraBFBVsktYXMSAU0M6UAlwtaabiAQO44soyAMOv5/XGYwwDDMDN+4Qzxfr98jc95znme8x1E/Pj9PueZpG/fviGEEEImk8l9LSgoCMBedOKJJ+Z7CPyLmD9/fr6HAPuX6urqEEKSJLmvIYT0zq/LNtYLL7ywF8cG+7vS0tLHH/+/fI+Cfd7Qocf70xv2pv79+2cymVxX5aSyf6s/fQXk19Chxze4DUArVD+icim14wxWJpORWZBf9aeydjWttWDBbpaBhg9vxprjbs/WrJPvubPt6pVNeU2+FBV1O/nkkwcOHNCvX98QwosvLnvuuefnz//zG2+8ke+hAdHUn8TKbqeDiStolYYOPX5vLho2vUua0k97+Wy5FzRytk2b3unQofOuni0oKDj44IN3iJ5evXqtXbumoqKykbdu5LRt27Y966wzzzhz9N8r/vbXsqd/vfRX1Znqft36DRo56KYz/2fO7Hm//e09FRUVjX1jwD6lfmalc3Uls6BVcUlWfXGrrr6iom4XXDB++PBh3bp1+/CHS+o/NXv2b8vLyx977PGf/vRn//zny8098/jxpcM/VXLVXyYN7TV0TL8xPQ7omUpSZe+WPfHG49966luTz508aNDAK66Y1IIxA61KrqDqT2I1cJE7kF/1564amcdqbWthe1rcdcmcyy77RlVV5YQJE+64446dn/3KV75yxhlnXH315PPP/2KzTnvuuZ8Z/qmSy+dfft3w63t16JXb36tDr9HFZ5x06EmXzb/s4uMu/uxnP3PXXb9swbA7depUVNR11apmZx+wR+UmsdI77A2msiDfmnIN1p4zZszZv/nN3bHOtqvuaXodNqsjWxCdRx/9wa9//euTJk168cVlJ574sZNP/rcBAwasWLFi/vw/P/XU0z/60Y9KS0vHjBnTrHMWFXU773OfveQvl+xQVyGETVWbTvvdp84ZeM53Tvrulx744m1fvG3BgoXNnR7r1KlTv37FL764vFlHAXtTAxe5N37A35/5x7r165ty6gO7dB4y+MhUKtXCocH+rSnXYO2cL9nCWLBgfovntyZMuLisrOzRR6PdS2nnkbR4tinE7r8QQpcuXVavXt23b9977pl98cUX3nnnnb/61S979er16U9/esOGDV27dt28eXNzz3nGGWcsWrNoaK+hO9RVCGHOyvtDCGf3HdMh3WH8B8f/7qXfnXLKybfd9pOmnzxXVxs2bGjuwIA9Kjt9te0i99CcWavlK1a9/wOHhbDz67euPL725pqQyYQQXn9z+SF9enfr1i3SsGH/0pS5qwYrqk+f3iGEIUOGPPPMMy1764suurCwsPChh/7YssP3qAkTLl67du3DD/8pytlGjRpZU1OT3T7++GO//vWvZ3Nq9erVpaWlvXv3DiG0b99+3bp1xx77oSVLnmriaQ8//LD/K3vynH6f2WH/21vevvWvt174oQu7tesWQji6x9EPPPHApw47rekDVlfQCu18DVbI3Qer6bp1PXDwwOIjB/Td6a/iQf2LB/UvPvnED5/88aGnnDS0+0FFrfoDMsunDUuGTdtxin3e+AZ2Rjw/7F6L74NVVNTt8su/NXXqd0MI3/zmN37wg2kDBvRvwQB69uwxbty5JSUfacGx0e083XXhhV859dRTmvjixk2adMWtt946bNiwEMKdd96Zm6y6+eabe/fuffXVV4cQPvnJT86cOfPmm3/Y9NMefvhhL6x54aD2B+2wf/6rj4YQTuzz8ezDA9t0fe7t5w4//LAmnlZdsY9KGrWXR7JkyZKd9y9ZsiT6SJodWAWpZNU/35p218Lv/3LBD379lx/e/eebfzd/5YrXNm/aULb6zbLVb767acMdD/795w/8veHj541PtsuOeeOTJBk/r+7h8mnD6j+s29NwCeV2L582bLuD5o3f7iQ7pE6Lymfe+LrfCtuNDvaApl+DtWDB/PpJccEF4/v06f2lL5WGEL785dLy8vIrr7yiZWM44ogjxo0796ijjmrZ4XtC7js9+OCD//u/v963b3Go+xV4L2uO69atO+igg0IIW7Zs+eEPf9imTZtsXZ1//vlPPfVUCKGoqKi8vLy5p62srSxIpUIIt/z95k/MOmlT9abK2sofPfWjTxz6iYPabQ2vJCS1obbp5ywsTGcytdXVVc0dDORdZhf28jAWL178kWHDd2isJUuWfGTY8MWLF0d8o0wm0+zAqq2tTZKCVeUbV23Y+PLmd16pKH+1an1VVU3IbPfHREGbXfypMWL63NJFEz+/tW+WT5sy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BBYAQGQCCwAgMoEFABCZwAIAiExgAQBEJrAAACJzo1HYN1yV7wEQQrg63wMA9hUCC/YNk/M9AILAAprMEiEAQGQCCwAgMoEFABCZwAIAiExgAQBEJrAAACITWAAAkQksAIDIBBYAQGQCCwAgMoEFABCZwAIAiExgAQBEJrAAACITWAAAkQksAIDIBBYAQGQCCwAgMoEFABCZwAIAiExgAQBEJrAAACITWAAAkQksAIDIBBYAQGQCCwAgMoEFABCZwAIAiExgAQBEJrAAACITWAAAkQksAIDIBBYAQGQCCwAgMoEFABCZwAIAiExgAQBEJrAAACITWAAAkQksAIDIBBYAQGQCCwAgMoEFABCZwAIAiExgAQBEJrAAACITWAAAkQksAIDIBBYAQGQCCwAgMoEFABCZwAIAiExgAQBEJrAAACITWAAAkQksAIDIBBYAQGQCCwAgMoEFABCZwAIAiExgAQBEJrAAACITWAAAkQksAIDIBBYAQGQCCwAgMoEFABCZwAIAiExgAQBEJrAAACITWAAAkQksAIDIBBYAQGQCCwAgMoEFABCZwAIAiExgAQBEJrAAACITWAAAkQksAIDIBBYAQGQCCwAgMoEFABCZwAIAiExgAQBEJrAAACITWAAAkQksAIDIBBYAQGQCCwAgMoEFABCZwAIAiExgAQBEJrAAACITWAAAkQksAIDIBBYAQGQCCwAgMoEFABCZwAIAiExgAQBEJrAAACITWAAAkQksAIDIBBYAQGQCCwAgMoEFABCZwAIAiExgAQBEJrAAACITWAAAkQksAIDIBBYAQGQCCwAgMoEFABCZwAIAiExgAQBEJrAAACITWAAAkQksAIDIBBYAQGQCCwAgMoEFABCZwAIAiExgAQBEJrAAACITWAAAkQksAIDI0vkeANAkk/M9AACaTmDBvuHqfA8AgKazRAgAEJnAAgCITGABAEQmsAAAIhNYAACRCSwAgMgEFgBAZAILACAyNxqF1uKqqybmewgAxCGwoLWYPFlgAfyLsEQIABCZwAIAiExgAQBEJrAAACITWAAAkQksAIDIBBYAQGQCCwAgMoEFABCZwAIAiExgAQBEJrAAACITWAAAkQksAIDIBBYAQGQCCwAgMoEFABCZwAIAiExgAQBEJrAAACITWAAAkQksAIDIBBYAQGQCCwAgMoEFABCZwAIAiExg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)
<Window x:Class="WpfApp2.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:WpfApp2"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Title="XAMLWithScript"
Width="800"
Height="450"
Loaded="Window_Loaded"
WindowStartupLocation="CenterScreen"
mc:Ignorable="d">
<Border Width="270"
Height="250"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Background="LightGray"
BorderBrush="LightGreen"
BorderThickness="8"
CornerRadius="5">
<Canvas Background="LightYellow">
<Rectangle Canvas.Left="30"
Canvas.Top="20"
Width="150"
Height="150"
Fill="red"
Stroke="Black"
StrokeThickness="10" />
</Canvas>
</Border>
</Window>
Border border = new Border();
border.Width = 270;
border.Height = 250;
border.HorizontalAlignment = HorizontalAlignment.Center;
border.VerticalAlignment = VerticalAlignment.Center;
border.Background = Brushes.LightGray;
border.BorderBrush = Brushes.LightGreen;
border.BorderThickness = new Thickness(8);
border.CornerRadius = new CornerRadius(5);
Canvas canvas = new Canvas();
canvas.Background = Brushes.LightYellow;
Rectangle rectangle = new Rectangle();
rectangle.Width = 150;
rectangle.Height = 150;
rectangle.Fill = Brushes.Red;
rectangle.Stroke = Brushes.Black;
rectangle.StrokeThickness = 10;
Canvas.SetLeft(rectangle, 30);
Canvas.SetTop(rectangle, 20);
canvas.Children.Add(rectangle);
border.Child = canvas;
// Add the Border to the main Window
this.Content = border;
ScrollViewer
是 WPF 中常用的滚动容器控件,用于在需要时提供滚动功能以显示超出容器可见区域的内容。它可以包含单个子元素,并根据需要在垂直和/或水平方向上显示滚动条。
以下是 ScrollViewer
控件的一些常用属性:
HorizontalScrollBarVisibility
(水平滚动条可见性):指定水平滚动条的可见性。常见的取值包括:
Disabled
(禁用):禁用水平滚动条。
Auto
(自动):根据需要自动显示水平滚动条。
Visible
(可见):始终显示水平滚动条。
VerticalScrollBarVisibility
(垂直滚动条可见性):指定垂直滚动条的可见性。常见的取值包括:
Disabled
(禁用):禁用垂直滚动条。
Auto
(自动):根据需要自动显示垂直滚动条。
Visible
(可见):始终显示垂直滚动条。
CanContentScroll
(内容滚动):指定 ScrollViewer
是否以逻辑单元(例如行或项)为单位滚动内容。当设置为 True
时,滚动条将以逻辑单元为单位滚动,而不是以像素为单位滚动。
Content
(内容):指定 ScrollViewer
的单个子元素。这个子元素将被包含在滚动容器中,并可以根据需要进行滚动。
通过使用 ScrollViewer
控件,可以将内容放置在可滚动的容器中,以便在容器的可见区域之外显示内容,并通过滚动条来浏览内容。这对于处理大量内容或需要显示大型元素的情况非常有用,以保持界面的可用性和可访问性。
![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAHCCAIAAACYATqfAAAgAElEQVR4nO3deZxVZeH48efcGTZBkEUGcil1hk3ccokG/KKW+mVQAxUyxDLrO2hqUH7N+onkgktpBWUKuOJW4TYuLGYmFJD6Rc00UBnB1DQkwBEQmO3+/rjMZRiGYWZ8WMz3++VrPPfce859hnj5+vSc556bFBQUhBBCCOl0OvszJycnADvQwIEDd/YQ+A8xZ86cnT0E+HSprKwMISRJkv0ZQsjd8nWZxnrttdd24Njg0664uPiZZ/5vZ4+CT7x+/Y70X2/YkXr27JlOp7NdlZXK/Kv29BWwc/Xrd2S92wDsgmpHVDal6s5gpdNpmQU7V+2prK1Na82du43LQAMGNOGa4zbP1qSTb7+zbe2VjXnNztK5c6fjjz++d+9ePXoUhBBef33xokWvzpnzp/fee29nDw2IpvYkVmY7N5i4gl1Sv35H7siLho3vksb00w4+W/YFDZxt7doP27Ztv7Vnc3JyunbtWid6unfvvnLlig0byht46wZO26pVq9NOO3XoqUP+tuGlvy5/8XcLf1uZruzRqUefoj43nPqT6SUzH3zwoQ0bNjT0iwGfKLUzKzdbVzILdimWZNUWt+pq69y507nnjhowoH+nTp2+8IXC2k+VlDxYVlb2l788c/vtd/zjH2819cyjRhUPOKnwx38e1697v2E9huXt1i2VpJZ/tPzZ95750Qs/unzE5X369B47dlwzxgzsUrIFVXsSq55F7sDOVXvuqoF5rF3tWtj2Fve6ZNYll/ygoqJ89OjRd99995bPnnfeeUOHDr3iisvPPvucJp12xIivDTip8NI5l1494Jrubbtn93dv231I/tBj9z32kjmXXHjEhWee+bV77/1NM4a9++67d+7c8c03m5x9wHaVncTKrbM3mMqCna0xa7C2n2HDTr///gdinW1r3dP4OmxSRzYjOg899JDvf//748aNe/31xQMH/tfxx3+5V69eS5YsmTPnTy+88OKvf/3r4uLiYcOGNemcnTt3OuvrZ17054vq1FUIYW3F2pMfPumM3mf87Niff2vWObecc8vcufOaOj22++679+iR//rrpU06CtiR6lnk3vABf3v576s++KAxp96jQ/uD+h6YSqWaOTT4dGvMGqwt8yVTGHPnzmn2/Nbo0RcuX7589uxo91LaciTNnm0KsfsvhNChQ4dly5YVFBQ89FDJhReef8899/z2t7/p3r37V77yldWrV3fs2HHdunVNPefQoUPnr5jfr3u/OnUVQpi+9PEQwukFw9rmth11yKiH33j4hBOOv+WW2xp/8mxdrV69uqkDA7arzPTVpkXuoSmzVqVL3vzs5/YLYcvXb7zy+M9/rQjpdAjh3X+V7rP3Xp06dYo0bPh0aczcVb0Vtffee4UQDjrooJdffrl5b33BBee3aNHiySf/0LzDt6vRoy9cuXLlU0/9McrZBg8uqqqqymwfeeTh3//+9zM5tWzZsuLi4r322iuE0KZNm1WrVh1++Oeff/6FRp52//33+7/lz53R42t19v97/b8n/XXS+Z8/v1PrTiGEQ/MOnfXsrJP2O7nxA1ZXsAvacg1WyN4Hq/E6ddyjb+/8A3sVbPFPfp+e+X165h8/8AvHH9PvhGP77dml8y79AZnSif2T/hPrTrHPHFXPzojnh21r9n2wOnfudOmlP5ow4echhB/+8Ae/+tXEXr16NmMA3brljRw5orDwi804Nrotp7vOP/+8E088oZEvbti4cWMnTZrUv3//EMI999yTnay66aab9tprryuuuCKE8KUvfWnq1Kk33XRj40+7//77vbbitS5tutTZP+ed2SGEgXsfk3m4R8uOi/69aP/992vkadUVn1BJg3bwSJ5//vkt9z///PPRR9LkwMpJJW/+4/2J98775W/m/up3f77xgT/d9PCcpUv+uW7t6uXL/rV82b8+Wrv67if+dtesv9V//MxRyWbZMXNUkiSjZtY8LJ3Yv/bDmj31l1B2d+nE/psdNHPUZiepkzrNKp+Zo2r+Kmw2OtgOGr8Ga+7cObWT4txzR+29917f+lZxCOHb3y4uKyu77LKxzRvDAQccMHLkiIMPPrh5h28P2d+0a9eu//u/3y8oyA81fwIf55rjqlWrunTpEkJYv379jTfe2LJly0xdnX322S+88EIIoXPnzmVlZU09bXl1eU4qFUK4+W83HTft2LWVa8ury3/9wq+P2/e4Lq03hlcSkupQ3fhztmiRm05XV1ZWNHUwsNOlt2IHD2PBggVf7D+gTmM9//zzX+w/YMGCBRHfKJ1ONzmwqqurkyTnzbI1b65e89a6D9/eUPZOxQcVFVUhvdl/JnJabuW/GoMmzyieP+YbG/umdOL4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AGBrBBYAQGQCCwAgMoEFABCZwAIAiExgAQBEJrAAACJzH6xPhjlz5syePXtnjwKAmI455piBA7fjd3fSVGVlZbFOZQYLACAygQUAEJnAAgCITGABAEQmsAAAIhNYAABbVV5eft9993344YdNOkpgAQDUr7q6+u67737uueduv/328vLyxh8osAAA6ldSUvL666+PGDFi5cqV9913X3V1dSMPFFgAAPWYM2fOvHnzRo4cedRRR51zzjmLFi165JFHGnmswAIAqMfDDz88ZMiQgw46KITwuc99bsSIEXPnzm3ksQILAKAeAwcOPProo7MPDznkkFNOOaWRxwosAIB6DB06tM6exn93pMACAIhMYAEARCawAAAiE1gAAJHl7uwBAADsEmbMmBHrVGawAAAiE1gAAJEJLACAyAQWAEBkAgsAIDKBBQAQmcACAIhMYAEARCawAAAiE1gAAJEJLACAyAQWAEBkAgsAIDKBBQAQmcACAIhMYAEARCawAAAiE1gAAJEJLACAyAQWAEBkAgsAIDKBBQAQmcACAIhMYAEARCawAAAiE1gAAJEJLACAyAQWAEBkAgsAIDKBBQAQmcACAIhMYAEARCawAAAiE1gAAJEJLACAyAQWAEBkAgsAIDKBBQAQmcACAIhMYAEARCawAAAiE1gAAJEJLACAyAQWAEBkAgsAIDKBBQAQmcACAIhMYAEARCawAAAiE1gAAJEJLACAyAQWAEBkAgsAIDKBBQAQmcACAIhMYAEARCawAAAiE1gAAJEJLACAyAQWAEBkAgsAIDKBBQAQmcACAIhMYAEARCawAAAiE1gAAJEJLACAyAQWAEBkAgsAIDKBBQAQmcACAIhMYAEARCawAAAiE1gAAJEJLACAyAQWAEBkAgsAIDKBBQAQmcACAIhMYAEARCawAAAiE1gAAJEJLACAyAQWAEBk9QdWu17H7uBxAAD8xzCDBQAQmcACAIhMYAEARCawAAAiE1gAAJEJLACAyAQWAEBkAgsAIDKBBQAQmcACAIis/sBa8+rTO3gcAAD/McxgAQBEJrAAACITWAAAkQksAIDIBBYAQGQCCwAgMoEFABCZwAIAiExgAQBEJrAAACITWAAAkQksAIDIBBYAQGQCCwAgMoEFABCZwAIAiExgAQBEJrAAACITWAAAkQksAIDIBBYAQGQCCwAgMoEFABCZwAIAiCx33333DSGk0+l0Ol1dXZ1Op6uqqtatW7ezBwYAsKtr27Ztx44dU6lUkiSZnxlmsAAAIst99dVXM1vpdDrUTGW1a9dup44KAOAT4MMPP1y9enWSJCGEzNxVZr8ZLACAyAQWAEBkAgsAIDKBBQAQmcACAIhMYAEARCawAAAiE1gAAJEJLACAyAQWAEBkAgsAIDKBBQAQmcACAIhMYAEARCawAAAiy+3Vq1cIIZ1Op9Pp6urqdDpdVVW1bt26nT0wAIBdXfv27bt06ZJKpZIkyfzMMIMFABBZ7ltvvRVCSKfToWYeK51Ot2zZcmcPDABgV7d27doVK1ZkJ65CCJmfZrAAACITWAAAkQksAIDIBBYAQGQCCwAgMoEFABCZwAIAiExgAQBEJrAAACITWAAAkQksAIDIBBYAQGQCCwAgMoEFABCZwAIAiExgAQBEJrAAACITWAAAkQksAIDIBBYAQGQCCwAgMoEFABCZwAIAiExgAQBEJrAAACITWAAAkQksAIDIBBYAQGQCCwAgMoEFABCZwAIAiExgAQBEJrAAACITWAAAkQksAIDIBBYAQGQCCwAgMoEFABCZwAIAiExgAQBEJrAAACITWAAAkQksAIDIBBYAQGQCCwAgMoEFABCZwAIAiExgAQBEJrAAACITWAAAkQksAIDIBBYAQGQCCwAgMoEFABCZwAIAiExgAQBEJrAAACITWAAAkQksAIDIBBYAQGQCCwAgMoEFABCZwAIAiExgAQBEJrAAACITWAAAkQksAIDIBBYAQGQCCwAgMoEFABCZwAIAiExgAQBEJrAAACITWAAAkQksAIDIBBYAQGQCCwAgMoEFABCZwAIAiExgAQBEJrAAACITWAAAkQksAIDIBBYAQGQCCwAgMoEFABCZwAIAiExgAQBEJrAAACITWAAAkQksAIDIBBYAQGQCCwAgMoEFABCZwAIAiExgAQBEJrAAACITWAAAkQksAIDIBBYAQGQCCwAgMoEFABCZwAIAiExgAQBEJrAAACITWAAAkQksAIDIBBYAQGQCCwAgMoEFABCZwAIAiExgAQBEJrAAACITWAAAkQksAIDIBBYAQGQCCwAgMoEFABCZwAIAiExgAQBEJrAAACITWAAAkQksAIDIBBYAQGQCCwAgMoEFABCZwAIAiExgAQBEJrAAACITWAAAkQksAIDIBBYAQGQCCwAgMoEFABCZwAIAiExgAQBEJrAAACITWAAAkQksAIDIBBYAQGQCCwAgMoEFABCZwAIAiExgAQBEJrAAACITWAAAkQksAIDIBBYAQGQCCwAgMoEFABCZwAIAiExgAQBEJrAAACITWAAAkQksAIDIBBYAQGQCCwAgMoEFABCZwAIAiExgAQBEJrAAACITWAAAkQksAIDIBBYAQGQCCwAgMoEFABCZwAIAiExgAQBElruzBwAAsEsoKipq6iGXX355vfvNYAEARCawAAAiE1gAAJEJLACAyAQWAEBkAgsAIDKBBQAQmcACAIhMYAEARCawAAAiE1gAAJEJLACAyAQWAEBkAgsAIDKBBQAQmcACAIhMYAEARCawAAAiE1gAAJEJLACAyAQWAEBkAgsAIDKBBQAQmcACAIhMYAEARCawAAAiE1gAAJEJLACAyAQWAEBkAgsAIDKBBQAQmcACAIhMYAEARCawAAAiE1gAAJEJLACAyAQWAEBkAgsAIDKBBQAQmcACAIhMYAEARCawAAAiE1gAAJEJLACAyAQWAEBkAgsAIDKBBQAQmcACAIhMYAEARCawAAAiE1gAAJHldu36mRBCepPq6urq8vINO3tgAAC7utatd9ttt/apVCqVSpIkldQwgwUAEJnAAgCITGABAEQmsAAAIhNYAACRCSwAgMgEFgBAZAILACAygQUAEJnAAgCITGABAEQmsAAAIhNYAACRCSwAgMgEFgBAZAILACAygQUAEFlukuSGEEJIh5AOoTqEVJJUhZDs5HEBAHwCJEmSkySpJElqfiZJkuSuWrU8hBBCOp0O6Y2qUymBBQCwDeXl6ysq1qRSm9IqhCRJ6rtEmE7v+OEBAHyypdObImrLwJJXAABhzpw5dfa89NJL9b6ydlplWOQOAFCPhx9+uHZRLV269J577mnksQILAKAeAwcOvO+++5YuXRpCWLZs2W233XbggQc28tgtA8vydgCAMHTo0N69e99xxx2lpaW33357165dzzzzzHpfmSQh2Tygcjt23DOETZ8fTKfT1dVVGzas2wHjBgDYlY0YMWLSpEk33nhjXl7et771rRYtWtR5QcuWrdu0aZlKZT5HWOs2DR98sDyzLCu9ids0AACEli1bnn322XfdddewYcPatm275QvKy9dXVKytdZeGjbdpyN3xYwUA+KRo3779BRdc0LjXbpqfssgdAKD5kiSEkNTU1cafqcxE1hYvAgCgyTJZlar9OFFWAABNk2QiqnZHZQIrO6mV1JnQAgCgAbUuESbZK4HJgQceHELIftlz5tOE/9lfmPOlLx1X++FTT/0x+lu0bNm6vHz9tnfu2euIz6xf8NKb2R37HXJ463efX7R88yP3O/iI1u8tWLQ8hJw27du1zBZwunzth+sqQwgh7NP3iM7rXvvrG6s3Pjqy07pXX9r4qObNeh/x2eSfCxa+l3nY5oBD++628oWX36qqM85We/fpvcea0lfeWtPUXxsAPn2qq9Mh1PoQ4dY/RZjUiq2Q/Rk2fQ90zb8+mRl28sknf+c7F4YQbrrpVyGEmTN/H/0tWrduUV5et0/q2dml7xcPXzX//0rD7nn777lbCKHPUf3bv/L+6lYhVJa9+9bK9Zn9fY4qbP/3f61uXflhTu9Bx3y2zcbzddj937//2W9fCiG0Pva4E3ouu/WZ8vIQQmj95WP/+8Cy38x7vrzWW/UYdtrJPdtWVgw4MYQQ1r1Z+tF+ffJCef8vZ55e/sJPbt8YmuVLlnc+d+SA3k/edO9f60YiAHwq1bq+l9Q8zOZUNq1C9qpg7uYHJ+l0SJJ0nXXuSRLS6cw5MpmVeTb9Cb2Y2Lp168yNvlq3bh1CaPimX6eccvIpp5z86KOPPfroYw3vrC1zw7GGd37xq+celtdu93bdL7igw4svhsMO6xxCaL1H29zD/rvooBA+enPWnbOWHDyw6LDOofUe7XIPLSrq+9HS39957201Jyi64JJOOakkNfg7Vx7RcUNldbfzLv18i4o3S+5Y0eczLTt0G3nZ/wshpHJbrVpw+a3LRp7au+qFP7yx9+eW3vPbF9bvXvCVr5341vRJb/YYtMdzD896c8Pmfw7/euKuv+z9veOHf/6le/7a+D9XAPjPlk2rUGtJ1WYTV6H2Ivdu3bpn92a3kyTJy+ueJBtvS5qXl5cttK5du2b377nnpv3bY3t7aNmyZXYju701jz32+OzZc04//bQTTzwhs+fEE084/fTTZs+e89hjj2/tqNo3HNvazr/PferJhWXpDe89+eT8vz/zwM03T7755slvfFT973mTb7558s1Tn1iaJElm/xsfVf/7LzffPHnqrKXt9yqosXurFrk5SZLk5uaWvXzNNdddc80T71S2yO1+4sGd3p/9s+uuuea6a6657m9lubm5XY86tMP7v5/6xLPPLu/0haL/GnbR/448onvL6sryl95sddiIEUduOdYNObmt9uj9pVO7NvynU2N7/zWwbdu2bdu2d/Z2KtmUQEmSJF27dqvZDHl53bKrr/Lyuodaa7BCqLkWuOnfDW2Enb5O67TThp566ql1dj700EMPPjVA+GkAAARGSURBVPhwwwfee+/dZ555VmYjhJDZbtjXvz7yxBNPvPvue0IIZ5018oknnrjrroa+T7tDh85lZSu2vfPwb447ZuWVP3uk17GnHtgphBDyeh3S5p8vvbk6hBDWvz03HHV+v7wQktwWqcqKqhA+Wry0vNfeqeUfVoQQWnds//6jV97x/JDv/eSAJZf87JEQDv/WuEFt3llRvvKZpxa8+MY7IYQw5KJrD3jjRz8rybxf+8NGfHtor7Dw/ptKdjv9eyftv/6lx2594MXNVmplDBx1Vf/WK1vt/uGj4297fpt/PADwaZCdswq1LxRuvrHxNansZb5u3brX7E26deu+8QxJyMvrlp3+qhVryY7crtdDD5WUlDySW0tJySMPPVTS8FFJkuTm5mY3stsNu/vue5988g/f/ObZ3/zm2U8++Ye77763MUdtWyonp+0+I4u/2ieVk1H2ztL312/cTqWSGb++7ld33HL9ZQtWVLz96LjLx1137wepin/N/uXEib+cOPGnl1915wtJkqRSuW33GT582PDhB3dunVP+8qRH0sd++3++3a9NknkylUqSpEPvwWdffOUlX+vT6t3X3q7uffIpn93wxqsrdj9qxGVXXzr6rON6t689rDYnHf658ndn3LewIv+4oXn1DbxeO+uvh23btm3btr3DtzMtldSeu6rJp5AkSdK37yGbz0vVfpCuvap9y7mrXWGR+ze/+Y3Bg4tCCNOnz7jjjqnbfP0DD/xuy52nn/7VbR44fPjpw4cPCyFMm3b/tGkPNPziPfbo/MEHdWewNt956DcvG96nQ26qfOXiRc/96e4/LgwhhHDaJVfs+fSPJz2XPeiIc8cfs3zsG/njuzw99pbn6rzgtO/9ZO9XL3nnwF8c3urdVetDyG3fdbd/3v/jSc91HfKD7xVW/unHP59ZdMlPD3jt2r/vf9F/tV/24mNT/9bxxIM6h9CiRYuKiooQwrp3/7Zs7xNPPKjj8seuu/nZjV/xfdT/jB/W7tlxv3gsHPvdy74U/jD+l3+02B2AT7U6i9xr7dlsBivUTGJl1mB9pr55rJCX1z17cCbQMg8zc1qZPsvL2xR022N7m+68865Zs56YNeuJO++8qzGvHzbsjMw/ubm52e1tHnXyySeNGPG1zBuNGPG1k08+qfEj3IrXZkyd8OP73yhfUzr5nqd7XHTd9ddfd/311xV2a9dzeGb7e0OSJEn22aPFhrIkJ6ddz+HXX3f9Rafk5OTmtth4im5t21ZXrEhycnLWvHbDDT+/4Yan36vMSSVJkix/5Ma577X77Bc6t2mRW77mvQ9m/OKyH/5qcd4xg9c89cC0aX/K3e/AzssemDbtgWnPdT/llG5Lbr7s8knPrc+cdLcvfmdIz+rXfv/4+iRZP3vagrLPHn9O/9228cts778Gtm3btm3b9s7dzpRPXl63UHNv9ryNOZTZ3jR3lZnH+v+qxvYccCUJOAAAAABJRU5ErkJggg==)
<Window x:Class="WpfApp2.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:WpfApp2"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Title="XAMLWithScript"
Width="800"
Height="450"
Loaded="Window_Loaded"
WindowStartupLocation="CenterScreen"
mc:Ignorable="d">
<ScrollViewer>
<Rectangle Width="500" Height="500" Fill="Gray"></Rectangle>
</ScrollViewer>
</Grid>
</Window>
🔊只能放单个子元素
布局综合应用
叙利亚战损版 Microsoft ToDo 布局 - 不建议
<Window x:Class="WpfApp2.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:WpfApp2"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Title="WPFDemo"
Width="800"
Height="450"
Loaded="Window_Loaded"
WindowStartupLocation="CenterScreen"
mc:Ignorable="d">
<Grid Width="Auto" Height="Auto">
<Grid.ColumnDefinitions >
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="8*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="6*"/>
</Grid.RowDefinitions>
<StackPanel Grid.Row="0" Grid.Column="1" Grid.RowSpan="8" Background="#218868"
Orientation="Vertical">
<TextBlock Text=" 我的一天" FontSize="18" FontWeight="Bold" Foreground="White"/>
<TextBlock Text=" 5月20日,星期六" FontSize="10" Foreground="White"/>
<TextBlock />
<Border BorderThickness="10" CornerRadius="2" BorderBrush="#1e7b5e" Background="#1e7b5e" >
<TextBlock Text="+ 添加任务" Foreground="AntiqueWhite" FontSize="13"/>
</Border>
</StackPanel>
<TextBlock Grid.Row="0" Grid.Column="0" Text="Miscrosoft ToDo" FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center"/>
<Button Grid.Row="1" Grid.Column="0" Content="我的一天" FontSize="16" HorizontalAlignment="Stretch" HorizontalContentAlignment="Left" Background="LightBlue"/>
<Button Grid.Row="2" Grid.Column="0" Content="重要" FontSize="16" HorizontalAlignment="Stretch" HorizontalContentAlignment="Left" Background="LightBlue"/>
<Button Grid.Row="3" Grid.Column="0" Content="已计划日程" FontSize="16" HorizontalAlignment="Stretch" HorizontalContentAlignment="Left" Background="LightBlue"/>
<Button Grid.Row="4" Grid.Column="0" Content="已分配任务" FontSize="16" HorizontalAlignment="Stretch" HorizontalContentAlignment="Left" Background="LightBlue"/>
<Button Grid.Row="5" Grid.Column="0" Content="任务" FontSize="16" HorizontalAlignment="Stretch" HorizontalContentAlignment="Left" Background="LightBlue">
<Button.Style>
<Style TargetType="Button">
<Setter Property="BorderBrush" Value="LightGray"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Padding" Value="5"/>
<Setter Property="Background" Value="Transparent"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="2">
<ContentPresenter HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Button.Style>
</Button>
</Grid>
</Window>
如果你真的看到了这儿,那我觉得,这件事真是 - 泰裤辣!!!🤔
自定义Panel
该章节省略未读。。。