CButtonST

CButtonST类的使用参考链接:http://www.cnblogs.com/lidabo/archive/2012/12/17/2821122.html

CCeButtonST

CCeButtonST是和CButtonST类(VC6.0 )相对应的EVC(Embedded Visual C++)版本。

CUniButton

CUniButton主要用于创建不规则形状的按钮。

1、首先下载UniButton.cppUniButton.h文件

2、用VS2010创建基于对话框的MFC应用程序

3、将UniButton.cpp和UniButton.h文件添加入本工程,其后会多出一个CUniButton类

4、通过类向导为本对话框添加CUniButton类的成员对象以及定义按钮ID(添加到C***Dlg.h中),代码如下所示:

public:
CUniButton m_Btn1;
CUniButton m_Btn2;
CUniButton m_Btn3;
CUniButton m_Btn4;
CUniButton m_Btn5;
enum {UNI_BTN1 = , UNI_BTN2 = , UNI_BTN3 = , UNI_BTN4 = , UNI_BTN5 = };
CUniButton m_BtnLeft;
CUniButton m_BtnRight;
CUniButton m_BtnUp;
CUniButton m_BtnDown;
CUniButton m_BtnMid;
enum {UNI_BTNL = , UNI_BTNR = , UNI_BTNU = , UNI_BTND = , UNI_BTNM = };

5、在本对话框源文件(C***Dlg.cpp)的OnInitDialog()函数中添加以下代码:

//btn1
HRGN r1;
HDC hDC = CreateCompatibleDC(GetDC() -> GetSafeHdc());
r1 = CreateEllipticRgn(, , , );
m_Btn1.Create(_T("Btn 1"), WS_CHILD | WS_VISIBLE, CPoint(, ), r1, this, UNI_BTN1, , GetSysColor(COLOR_BTNFACE), RGB(, , ), RGB(, , ), GetSysColor(COLOR_BTNFACE));
DeleteObject(r1); //btn2
HRGN r2;
LOGFONT lf;
GetFont() -> GetLogFont(&lf);
lf.lfHeight = -;
lf.lfWeight = ;
HFONT hFont = CreateFontIndirect(&lf);
HFONT hOldFont = (HFONT) SelectObject(hDC, hFont);
r2 = CreateRectRgn(, , , ); int mode = SetBkMode(hDC, TRANSPARENT);
BeginPath(hDC);
TextOut(hDC, , , _T("高"), );
EndPath(hDC);
r2 = PathToRegion(hDC);
SetBkMode(hDC, mode); m_Btn2.Create(_T(""), WS_CHILD | WS_VISIBLE, CPoint(, ), r2, this, UNI_BTN2, RGB(, , )); SelectObject(hDC, hOldFont);
DeleteObject(hFont);
DeleteObject(r2); //btn3
HRGN r3;
BeginPath(hDC);
MoveToEx(hDC, , , NULL);
LineTo(hDC, , );
LineTo(hDC, , );
LineTo(hDC, , );
LineTo(hDC, , );
LineTo(hDC, , );
LineTo(hDC, , );
LineTo(hDC, , );
EndPath(hDC);
//r3 = CreateRectRgn(0, 0, 63, 63);
r3 = PathToRegion(hDC);
m_Btn3.Create(_T("Btn 3"), WS_CHILD | WS_VISIBLE, CPoint(, ), r3, this, UNI_BTN3, , RGB(, , ), RGB(, , ), RGB(, , ), GetSysColor(COLOR_BTNFACE)); DeleteObject(r3);
DeleteObject(hDC); //btn4
HRGN r4;
hDC = CreateCompatibleDC(GetDC() -> GetSafeHdc());
BeginPath(hDC);
MoveToEx(hDC, , , NULL);
CPoint p[];
p[ ] = CPoint(, );
p[ ] = CPoint(, );
p[ ] = CPoint(, );
p[ ] = CPoint(, );
p[ ] = CPoint(, );
p[ ] = CPoint(, );
p[ ] = CPoint(, );
PolyBezier(hDC, &p[], );
EndPath(hDC);
r4 = CreateRectRgn(, , , );
r4 = PathToRegion(hDC);
m_Btn4.Create(_T("Btn 4"), WS_CHILD | WS_VISIBLE, CPoint(, ), r4, this, UNI_BTN4, , RGB(, , ), RGB(, , ), RGB(, , ), GetSysColor(COLOR_BTNFACE)); DeleteObject(r4);
DeleteObject(hDC); //btn5
HRGN r5,r51,r52;
r5 = CreateRectRgn(, , , );
r51 = CreateEllipticRgn(, , , );
r52 = CreateEllipticRgn(, , , );
CombineRgn(r5, r5, r51, RGN_OR);
CombineRgn(r5, r5, r52, RGN_OR);
m_Btn5.Create(_T("Btn 5"), WS_CHILD | WS_VISIBLE, CPoint(, ), r5, this, UNI_BTN5, , GetSysColor(COLOR_BTNFACE), RGB(, , ), RGB(, , ), GetSysColor(COLOR_BTNFACE));
DeleteObject(r5);
DeleteObject(r51);
DeleteObject(r52);
////////////////////////////////////////////////////////////////////////////
//btn左
HRGN rgnLeft;
hDC = CreateCompatibleDC(GetDC() -> GetSafeHdc());
BeginPath(hDC); MoveToEx(hDC,-/*sqrt(2.0),-/*sqrt(2.0),NULL);
LineTo(hDC,-/*sqrt(2.0),-/*sqrt(2.0)); AngleArc(hDC,,,,,); LineTo(hDC,-/*sqrt(2.0),+/*sqrt(2.0)); AngleArc(hDC,,,,,-); EndPath(hDC); rgnLeft = PathToRegion(hDC);
m_BtnLeft.Create(_T("L"), WS_CHILD | WS_VISIBLE, CPoint(, ), rgnLeft, this, UNI_BTNL, , RGB(, , ), RGB(, , ), RGB(, , ), GetSysColor(COLOR_BTNFACE)); DeleteObject(rgnLeft);
DeleteObject(hDC); //btn右
HRGN rgnRight;
hDC = CreateCompatibleDC(GetDC() -> GetSafeHdc());
BeginPath(hDC); MoveToEx(hDC,+/*sqrt(2.0),-/*sqrt(2.0),NULL);
LineTo(hDC,+/*sqrt(2.0),-/*sqrt(2.0)); AngleArc(hDC,,,,,-); LineTo(hDC,+/*sqrt(2.0),+/*sqrt(2.0)); AngleArc(hDC,,,,-,); EndPath(hDC); rgnRight = PathToRegion(hDC);
m_BtnRight.Create(_T("R"), WS_CHILD | WS_VISIBLE, CPoint(, ), rgnRight, this, UNI_BTNR, , RGB(, , ), RGB(, , ), RGB(, , ), GetSysColor(COLOR_BTNFACE)); DeleteObject(rgnRight);
DeleteObject(hDC); //btn上
HRGN rgnUp;
hDC = CreateCompatibleDC(GetDC() -> GetSafeHdc());
BeginPath(hDC); MoveToEx(hDC,+/*sqrt(2.0),-/*sqrt(2.0),NULL);
LineTo(hDC,+/*sqrt(2.0),-/*sqrt(2.0)); AngleArc(hDC,,,,,); LineTo(hDC,-/*sqrt(2.0),-/*sqrt(2.0)); AngleArc(hDC,,,,,-); EndPath(hDC); rgnUp = PathToRegion(hDC);
m_BtnUp.Create(_T("U"), WS_CHILD | WS_VISIBLE, CPoint(, ), rgnUp, this, UNI_BTNU, , RGB(, , ), RGB(, , ), RGB(, , ), GetSysColor(COLOR_BTNFACE)); DeleteObject(rgnUp);
DeleteObject(hDC); //btn下
HRGN rgnDown;
hDC = CreateCompatibleDC(GetDC() -> GetSafeHdc());
BeginPath(hDC); MoveToEx(hDC,+/*sqrt(2.0),+/*sqrt(2.0),NULL);
LineTo(hDC,+/*sqrt(2.0),+/*sqrt(2.0)); AngleArc(hDC,,,,-,-); LineTo(hDC,-/*sqrt(2.0),+/*sqrt(2.0)); AngleArc(hDC,,,,,); EndPath(hDC); rgnDown = PathToRegion(hDC);
m_BtnDown.Create(_T("D"), WS_CHILD | WS_VISIBLE, CPoint(, ), rgnDown, this, UNI_BTND, , RGB(, , ), RGB(, , ), RGB(, , ), GetSysColor(COLOR_BTNFACE)); DeleteObject(rgnDown);
DeleteObject(hDC); //btn中
HRGN rgnMid;
hDC = CreateCompatibleDC(GetDC() -> GetSafeHdc());
BeginPath(hDC);
AngleArc(hDC,,,,,);
//Ellipse(hDC,170,170,230,230);
EndPath(hDC);
rgnMid = PathToRegion(hDC);
m_BtnMid.Create(_T("M"), WS_CHILD | WS_VISIBLE, CPoint(, ), rgnMid, this, UNI_BTNM, , RGB(, , ), RGB(, , ), RGB(, , ), GetSysColor(COLOR_BTNFACE)); DeleteObject(rgnMid);
DeleteObject(hDC);

6、运行效果如下所示:

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAkAAAAGECAIAAABRaQheAAAgAElEQVR4nOy9eXgT973vr/73u/f23Ht7Tk/bc85tFvbFmC2EEEgTsm+QEAfCmiZpwhIgoUkdCDQhOSSYlBCghaZtTOom0ISYxcY7NsYYA8b7blmWN0m2ZVnWYlmLJY38+2Ok0WgfLaMZSe/X8354RtLM6DsjeV58vvOdkeDmzZu5ubn/+Mc/vvjiiz1vPTxl9nxaFlCZmrRgatJCX5k25x7PTE++Z3qyfWJa8j3T5iycNmfh1KQFU5LmT0maN3k2mbmTPGJ/KWn+lKT5U5LmT52zwJ6kBY7F51MrmTRr7qRZyXfPSr5r5py7Z865e2by3bPmTpo1d9KseZNnka/OmzRr7t0zk++eOeeuGUl3zUi6c0bSndNnu2dG0l0zku6aMecuciUzkyfNnDtp1txJM8llk++aMYe+7B2uuXN60p3k4jPsi9Myh7asx1s73zfZ830Dvim57N0zk+8ml5o1d/KseeQmT3JvgH3z76LekcxMZ4MnzXRuL7Ws2+J3zki6k7YG12W9vKOXrZ7hvq8m2T8yeuZNnjVv8uz5kx3fQ//fQARBEiE7duzYv3//l19++c9//jMnJ0eQk5OTnp5++PDhKbMXzJgz/69/P20w21wzEWrsa9DbQ+jHCf04MTZuJaMbt+pMFh+x6kxWx5yER6zOlZjIOBd0W0TvWMTt7UZdQ39fnev76mjvYp/faPYIfW3U/FadyTpqsjqWsmh9Z9Q+Jxli1GTVmqxao0VrNGsM9qgN464xawxmjdGiNVqdMRFaE0FOa4xWjdGiMVjUBovaYPYdi5+oDBaVwazSm1V684jePKIfd8Q8ojer9GaVfR5qZovKYHGZf8wjrourDVYvMRJqI6ExEhqjTWO0aU0BMxHXYbL5sbofRkPOuHt0oWaMYczu0UcrYRyKQ4nFatvwxCNWfrDhiUcshO1vfz8zc86CqUkL33333aNHj37zzTeCjIyMw4cP//y/7kz/x5nhMatIaW0ctDQOWBoHLY2D1sZBa+MgQaZJ7j3NVIaI5iGihYqcaJFbW4aszXJLk9zcNDjeNDDeMGBq6DfWyfR10rFaqa5GMlot0Vb1aav6NI5oqyTaaomuWjJWK9PXyQz1/caGfhOZ+n5Tfb+xTmaokxlqZYZaqb5aOlYl0VX1jd7u01T2jlb1jVZJxqql+mqpoUZqrJEZa2SmaqmhSqK/3ae72aO92aO90aOp6FZf71bRU9GtudGjvdk7eqt37FafvrLPcFtiqJKabksMlX36m726Gz2jFd3a692a8i71tS5VmXikTDxSJlZe7VSWdY6UiVXXujTlXZrybu317tHr3aMVPbrrPbry7tHy7tFrXdprXZoysaZMrLkq1pR2qp0Ra0o7taVi7VXxaFmXrqxLV9Y1dq1bX9alK+3UlohURcKRwvbhgjZFfttQXqs8t1We2yLPaR3KaVXktQ3nt6sKheoi4Whxh+6yaKyk03BFbCjpNBR3Gi6Lxgo7dAVCbX67Jq9NndM6ktMykt2izG5RZjcPZzcPZ7Uos1pGsptHsltU2S3qS63qnDbNpVbNpRZ1dos6u0WVRcvF5pELTcrzjYrMhqHMBnlmw1BmgyKzcfhco/J8k+pCszqrRZvVrLnYrLnQpL7QpD7fNHKucSSzQflDveJsveJs/dAP9fIf6uU/1A/9UD+UWa/4oUGRaV9Wk9Uymt06mt2iI3OpZexSqz6n3ZArNOUKx/M6zPkiS4HIWtjpP0RcJ+Dms7sfinxF7D2XfafYLV32lHjLFTLd9pS65iqZHuJqD1FGyzUyvfaU03K9z54KR26QkRA3JMRNR25JiFtSZyoduS0lbsvsqZIRVTIblep+l9S4ppbMgEvqvKWezKCXNHgP4TWNHmE4GxmVgVj32EOKhobeS1nSnCxZbpYsN2sgN0uemyXPvTice1GZe1GVe1Gde1GTe1GTe34097wu9/yYj+g8Ho7mndfkndfkXVTnXVTlXVTmXRzOuyjPuyjPyxrIy5LlZcnysqS5Wb05WYrGhnWPPaQ22sQjNqXelv6Pf/78v+4kHSY4fPjw1KQFX2WckWptTXKrQ1rWxkFr0yBBptmHvbx6q3WIaFUQbWSGiLYha+uQtXXI0jZkaR2ytMjNLYPm5kFT06CpccDYOGBoGNA70z/mmDY0DhgaB0xNA6bmQXOL3NwiNzeTGSQz3jQw3jRgahgwNQwY6/sNtVJ9ncxQKzPWyYy1/aa6flNd/3jdgLm+31wrG6+RmqrsGhur7Bur7NPd6tPd6nWmsm+ssk9/u89wW2KskpqqpKZq6XiNzFwtHa+SGG9LjJUS/a0+/a3esRu9uhs9uhs9oxU9oxXdo9e7R6/3jFb06Cp6xm70jt3o1d/o1d/sNdygpaJHX9Gjv06mW3+9W1/ePeaIvrxbX95tKO8xlPcYyrsN5T3G6z3Ga92Gsi79VbHuSqe2RKS9LNJc7lAXdagKhepCobpQqCoUqos6NEUdo8WduuJO/ZVOwxWx8YrYVNo1XioevyI2lXQai0WGyyJ9UQdpMl2+cDSvfTSvTZvrmpy20dy20dw2XV67Lq9dl9umy2nT5bSN5rRR07qc1tFLrdrsFk1Ws/oilRbNxRZtdqv2UutoTqvuUuvYpVYdmezW0awWbVaL9mKz5mKz+kKz+kKz+nyz+kKz+mKzhkxWiza7VXepdSynVZ/bZshtM+S0GXLaDLltxtx2U55wPK9jPN9uL0thYIHFvcOYaIz1NjB3mH+ThaOxK8FrzMVhIWmskq4xmZvG7CarlvlzWI03h3nVmB+H+dCYdzk1MBCYL4epDMSaRx6S19T2XsjsvZApuZApvZApu3h24OJZ+cWziotnh7POKrPOqrPOahwZDSaarLOa7LOa7LPq7LPK7LPD2WcVWWflWWcHss7Kss5KL2ZKLmb2XszsvZgpr61d88hDaqOtecjWPGSTaW3pGWfIOkywffv2GXMWKPUefqLZq9mXvWjqonurfZhoHyaEw4RwmOgYJoTD1o5hQqgghAqrI5Z2hbldYW4bMrcNjbcNmdqGTK20tA2Ntw6Z2xTmdoWl3bmUVaiwCBWWdoWlbcjSNmRpk1ta5eZm+XizfLxpwNQ0ON40ON44YG4cNDcOmhsGLA0DlvpBa/2Axa4xmalaaqqWmqqkxiqJI1Iy5Evj1TJzjcxc02+ukVkcMVfLzFXS8dtS022JsZJMn/FWn/FWn+FWn+Gmfdp4S2K6JTHd6jPd6hu/1Wei5yaZXtMN11TYM+6IuaJnvKJ3/HrP+LVu07VuY1mX4WqXvlQ8Vioeu0Kmc6yEjFh/RWwsFRtLu0xXu8ZLu8ZLu8xXuyxXuyylXeYrXeYr4vESsalYZLosMhaJDEUdhqIOQ2GHvoCMkIyBSn6HIb/DkC805AsN+e2GvHbHtNCQLzTktetz2sdyKKW16XLaxnLaxnLb9Lnthtx2Y167MdcZQ267IadNf8kzrY60GXLaDHntxrx2U377eJ7QnnyhmUxBh6WArL0Y2QsCs9Lmia7DYqQa868xrw4LVmPVrhrzdFhNUA5jWor5lFPIDlMZiNXLl8krb4u/P9Pz/Zne789Ivj8j/eGM7Iczgz+ckWeelmeeHs48rcw8rco8rT53WnPutObct6M+ojn3rdb1oebcafW506pzp5XnTg+fOy0/d1p+7vRg5hlZ5hlp5hnJ2TO9Z8/0nD0jPntGfvv26uXLKIE1D9mUetvMOQtSUlIECxcu/Nvfz3Qqbc1yMnZdNcvt6qLiWXi5qatdYfdWxzDRoSRESqJTSYhGiE4l0akkxEpCPEKIHQ87lVYRlWGLI2bHhNUepZVciWiEECldM2ztGLYKh63tDqW1Dlla5JZWuaVlyNIktzTJrU2D1ka5tXHQWj9ore+31PWba/vNtaSiXFMrM9f0W2r6LbX9Vs/UyKw1Mku1zFJtlxmZ8Srp+G3p+G2puUpqvi0135ZaqFRKLZUSZ245/r0lMd+SmG/1mW/1mW/aY7nZZ7nRZ7nRZ6mgTVzvNZf3jJd3kyYzlXWbrlLpIjN+tXv8arf5are5rNtS1mUp67Ze7bZe7baUdtlzRWy5IraUiM3FYnNx5ziZIpFLCkXjhSJTochU1GEq6jAVdpgKOkwFHaZCMqLxAjIdpvwOU36HMV9ozBca8+wx5QlN+cLx/A5nCjrG8zvG8zrGyVedaXcNXVcd5vwOS4F7rIVB2CtBNMaLneDTYVxrrDRYjTErxW4y7VEMvRQLuzuRqcMYakxlIFJ+tURWcUP0zSnxN6fE357q/vZU77enJKdPyU6fkp0+NXj6lPz0KcXpU8rTp5Sn01Wn0zWOnNi9L2XNZjIndu/z+ozqdLrydLry9CnF6VPyM6cGz5ySnTklO3NKcuZU7+lT3adPiU+fEn97SvTtKdmNGym/WkIXWOeI7W9/P7Nw4ULB1KSFaqOtZYh6jXCJ3IvD3OxFVV2kuki7dI7YdSVWEV0qW7fK1q22datt3SoqhD0jVKyOOJ5RecTxUtcI0UWu3y4zstQj2hVEq8Lq6Le0tgwRzUNEk5z8zKwNA9Y6X+m3p3aAqHNNbT9h1xgZmZWszKpllmqZpcoxUS2zVpGR2nPbkUoyEnLC+e2/JbHH+XfSR9x0/AlV9Foreq3Xey3lvZbyHss1WsrIdFvKuq1l3dayHmtZj5V8eJVMl/Vql/VKl8UZUmOdzlymR2Quck0hmU5zUaelqNNSJLIUisyFHebCDnOBZ0SWQhFZLfmIFzlZCjos+c5YCzqsBR3WQiqi0OwV9wJj4jAiavshWI2F0Kno1WRXXE0WbjXmobGKUKsx+okx/2fFPEsxVh3WwEBgDa4CW7VkkbSsrP2rk8KvTgq/Otn51Ulx+snu9JO96Scl6Sdl6Sdl6ScH00/I008o0k8o008o0/9EJmXN5gkHKWs2//HdPW7PKNP/pEw/oUg/IU8/MZh+QpZ+UnbqpOTUyd5TJ7tPnRSfOtmZflKYflKYfrI9/aT0WtmqJYvoAmsZsqmNtqlJCwVTkxYaLBPNToF5OGyIaJYTvbW3hr/YLt+1si/1FfGxQ8KsvNa2fvfCi6auLoe3etS2HrWtV23r1dj61F7Sq7b1qgnfcZvTEZWtR2XrUdm6R2xUYSdSOjXWriDaFETrENEyZGuW25oGbY3kBzxA1HuEpivnl8Y+3W+rs5+AJU1G1HikWmZPlUduS52hf90rJfY4HdbnEuqv6HovFWu5I9d6nCnrsZb1ENe6CbvMuq1Xu62lVLqsV8TWEnssJWJLMT2dlsseKXKJtUhkvSyyXhZZi0TWQpHFW6wFIppvXOOuJVoKOqwFInt8LY4KLCSBRXVXhFCNRVhjIZwb8xjfcZ3WqejfYTd9OUzqpRRjNLgjwqfEAvuJyTwqA7FyYXL35cKGLw41Hj3UdPRQ69FDbccOCY8dEh1LEx9L6z6W1ns8TXL8oOT4wf7jBweOHxw8/qn8+Kfy458ef/sdN2PRp4+//c7g8U8Hjqf1H0+THE+THE/rPZ7WfTyt63ha57E04bFDbccOtR79rPnoZ01HP2v44rOey4UrFybTBdY8ZDNYJhgJrH3IONpZbshP0/x1h2L/SwNvPiHZ+JDk10+Lt28i7SV02KtTSYhHiK4Rgqy3SG/1aWx9GptEY5NobNIwIvEIueZeta1HbetW2bpUNvGIrXOEECmJDqVdY06HDdma5LZGMoO2Bh9fBarf2e0L5N5n3W+r9fgiunxNnWOTiCqqo9xVY9TfAP0P4wYVsggjHeYI/f+M9r/AHuKayx+nvQKzq4uWEreIrcUeuUxPpzNFvuPv6OlLab4TIYElgsb4uPkR1FhQ/Yr+NRZmpyK9R9FXp6KLw7xpzH+PIpMBisGcEotMHaYyEM/Omy3Oz6s5dKDu0IGGQweaDh1o/sPHLX/4WPiHj0WHPxYf/lj8+ce9n3/c+/nH0s8/ln3+sezzjwccObZzF91blL2O7dw14JhZ6lhc/PnH4sMfiw5/LDz8ccvhj5sPf9z02YGGzw7UfXag5rMD4oK8Z+fNZi4wF411SfvNlV8aS07qzn6iPrlreP+6gT2vdPwmpfLhBW202stuL7LwUtt61A0f/EjwQQXdW0QEI9EQUofGSIfZNUZ3mILsUSRayS2SOxzm114B1DUQkrpk3tV1S+LNXt7Udd1TXb1u6iL/RK1X/atLzKW6/NsLDou0wDjYCZGtxqKkMa/VWBjjO0I7McZkgGJkHeZ/HpWBeDp5hign+/aBD6oPfFB74IP6Ax80fLKv6dN9rZ/uEx7cKzq4V5S2tzttb3fa3r60vZK0vZK0vTJajm7fmbJms8ZByprNR7e/JUvbJ0vbJ0nbJ0nb15e2rzttX3faPlHaPtHBfcKD+9o+3df06b7GT/fVH/ig9sAH1Qc+uH3gg86c7KeTZwQrMLvDunokw4XfDJ394+D+34g3v9j1yvOdr71Q/as5V5L+n7eeQ3u3Ya+m4cMfCT6ssEk1NqnWJtUQMm0kI9USUg0h1bo4jF6HkX2JQgXRNkS0KlyKMO/lF7PCy5+6fNurkqG9wlKXvcOErL1KPe3lzVt8qLrgMNYcxuUe4EpjJSGfGwtGY8GfFfPusBB6FJl1JwaQE6Ux/wJb+tMf3z72+YWnHrz49IPZTz+Y8/SD+U//6vKzv7ry7ANlzy4tX7H05sqlVSuX1qxcWrdyaePKpY0rlzbRkpaSkrJms9xByprNaSkp1KuNK5fWrVxas3Jp1cqlN1cuLV+xtOzZpVeefeDys78qePpXOU8/mP30gxeffvDCUw9WHft86U9/HILAbE1yU2t7jbqqWNsjkh7db7ZYKu+f2bzigevz7syd8lNSYCJH+SV2ll+uAtMQMi3R7zf151YLns+ttz+s/0gg+OgGM4dp3B0mHrF1KgkR/WTYENEyRDQP2bsQG+ShFF6M1WULU10VftTV495n6KouKq72CkZd0S+5IDCWHcZlC6NTkAU7WNGrxq756FT0fmIsRI3ZmGosAqUYI4f5F9iSn/yPys8/y3xkyblHl1x4dEnWo0tyH72v8PH7ih9fXPr4orInFlU8uajyyUVVTy6qeXJR/ZOLGmhJW7UqZc1mqSspazanrVpFzlD/5KKaJxdVPbmo8slFFU8uKntiUenji4ofX1z4+H25j96X9eiSC48tOffYksxHl1Qe+WzJT/5H0AKr7e/Oavx9TvErivKc4Zry4bYGpail/J67ax5bVDzzPzJ/+b+dww5HiM4RQqwi7OWX2tanadhvFxghC1Vgfua3O0xDSDQEXWBdIw6B0U6DtQ0RrfbhiHaBNUTUXlU+znh5UZfXM16e6vJxustr1eX2f0zHX6z1CpMTXTxTFxzGjsY4biF/+hWD6lQMPNo+yKH2wQ3uYMNhA0EK7F//5+0jn2U+uvT8Y/dffPz+7Cfuz31iSeETS4qfuK/0icVlTy2ueHpx5dOLq55ZXPPM4vpnFjc8cy+ZtBdWpazZ3O3AbTrthRcanllc/8zimmcWVz+zuPLpxRVPLy57anHpk4uLn7yv8Mn7c5+4P/uJpRcfX3r+8aXnHl16+4vPlvzr/wxOYJ2qlirpyYK2PQW5GyWHU7sO7OwtPtdbcbl04R03HpyXO+nfMn72/5H9hx0OgTn7D9W2PnXD/h8JPszMe1Zg56MbxICWaDi3WvB8boOWGNASA9r6j38k+OgGUZL2I8dcghVpR1ZQDwRHirVEv7b/21XUM6u/FRH9WqJflPusYPU35444nv+iUG3rUVEVmM0+ItE5joNoHiKahlwF5m3Aj391+T/jVeWhrgCDNcJT11Xv6iL/aL3UXjGhLgxKZEdg3O8KfmosYKdiOBrzHKNYFcxZMSbj7P12J3oTGGOHqQzEkp/+S/WfjpxbufziyuVZK5fnPrc8//nlhc8vL3l++dXnl5c/v7zi+eWVLyyvemF5TcpD9SkPNaQ8SCZlzWaRg5Q1m9NWr3Z7piHlwfqUh2pSHqp6YXnlC8srnl9e/vzyq88vL3l+eeHzy/OfX5773PKslcsvrlx+buXy6hNHlvz0X4ITWIcqs2Hgm+vdR4sLNotW3tewbPaNhZOvv/BA7rR/v3rfrJN3/PsjD214/KPze87VfVXRK6JOgKltPSpnBSYQHCnSEDKywBK8eLqTaDi/WrAqt2GUGBglBkbtAhsYdT7fP0r0j9Z/JBB8dJOc7v92lUCQVt8/SvSPkus5UjxKCkwgWJVbqyGk2voPBYJnfhggBdblS2ByommIaJQTdoEFf8arxlVd1Z7q8lF43WTWZ8hgkCETdVF/t06HBasurrzF1GGow4J2GI/2QHSG3YemMebDFP33KPocoyhz11jAO3cwOivG3GGM6zCVgVj6s5/U/OVk1toVl9auyF27In/tisK1zxavfbZ0/TNlG566vvGpmxufqtz4VM3LT9W8/FT9y081OJK2fh112XLa+nVen6l/2b5g5canbm586vrGp8o2PFW6/pnitc8Wrn02f+2K3LUrLq1dkbV2Rc1fTi792U+CEFiT3FYlPZFbd6i0Of1vBW8dObfq4w+WfrF+2vlnHzo36ae7H33m4Xf/+tiR/MeOFT938sprf70qoo/goAnswxvUCTC7q/wLrN5TYJ25KwSrv+0kn6e9RFZgIrIX0Vb4qUDwab0vgbU4rmZrkhONciI0e4U4WMPHOEOGp7uCrLo8/2hda68wS64o2osFh3F/4OZUYNRsnDc1dIcFUZBFrhoL4sSY7zGKwQ7uCPFasaAcFkhjKgPx4C9+Vvft3/O3bsp/fV3B6+uKN68r2bLu6pZ1ZVvXVmxde3Pr2so319Zsf6lm+0sNO1Y37FjdvGN1i480u77avGM1uQi5eOWba29uXVuxdW3Z1rVXt6wr2bKuePO6gtfX5b++Ln/rprpv//7gL37GSGBNcnuudh4sbvyytffmd1fT3vrzPal/e3jNhzMO36z94nbvR4UtqdkNW36oeeNM5Stflt6X+j15v6iuEZrA1LRzYORpLVJg3roQB/ycAxPlrqC6DekvOQQmUbsLzLMLkbofR5OcaBgk6geJej/28n+Nl8y7vSq9dhtGsM8waHWRf8DWYtJhPO4tREdiVATG013Bbr9iZKuxkHoUvTqs0te1Yr5LMc9rxbzftsOLw3wLzK/DVAbiuemTas6dv/r71JJ3t5W8u63sd1vLfre14ndbb763pWrPlpo9W+r2bGnY+0bD3jda9r3R8vs32n7/RruPtLm+2vb7N1p+/0bLvjfIxev2bKnZs6Vqz5ab722p+N1W8o3IN736+9Sac+efmz5JbbA1yf0KjLJXk9yW1fBudtVnfQPi76784fUjc7YfW/bsu5P3Fd44Udr+z1udm7+6+vzRonV/Krnnve8nvZZODUR0E5jg+bxaDSHTEJfTfmQ/oXXjix8JXiSFVH9utcAhKt+DOPq/XSUQrLK/ZO9C1BIyUe6zgtX/6HARGFl+uQ3iaKUJjBw2Wj9I3n2DkbpqAhZegdTlZ4g8m+oiirvIP2OnwGJIXYw0ho7EoDXGeQvjX2P+xygGvHNH4O7EQBrz6jAvGgvkMJWB+O+NG74++Enzd6dv/eFAxYH3Kz5Krfwotfq/U2sOpDZ8ktrwye+aP/ldS9rv2tLeFR56V3jot+JgIjz0W+Ghd9vS3m1J+13zJ79r+OR3DZ+k1hxIrf7v1MqPUis+Sq048P6tPxxo/u701wc/ObBxAykwymHuAqPbq0lu+2Pxk6evvv9D6ZFXP0t66cMZr366+OEtd+7+4XK/cvT90zd2Z5Tdsyfz4Y+zpm3N+M+1Jzqdt+GgxnE0fPgjwYcHv3AMz3jRUUXRRmQcPPLRjwT7yeHyolxy7Maz5/plWuJymn0Qx2UtIdPW76cN67hMjj/scAhMY+tT2wo8BNYxTLQPE20OgVHlFykw8q5RQd1cw+tQw4Cj5N0KL39XdzEYZMhUXa5/wFTnYUS8FU11oSORBYHxdz/401jkTo8FrTEG4zu8XzEWzC+z+BmgGIrDGJZiA/401jlCdPQNrZgz88vfv1+Tm9NbUtRbmNNbmCMtzJEV5sgu5wwWZ8tLsuUl2YqS7OGSbGXwGS7JVpTYVzJYnC27nCMrzJEW5pBv1FtSVJOb8+Xv318xZ6ZIougacerJVWDmCTd7Ncltn+U8kvr1wrdP3v/S/hlP75r00r6FS399x2//eblW3L9wz9n5730//c1/3L/7hzt//bd/W3lENOwqMHsR5rgNR6QvZKZuxmG/p5Ta1qu29TiuYhYpbfZbSQ279B82yO21V30/UddP1A4QfuwV8BqvyKrL6+muMKouSl1UXBwWK+piQWA8PXZH0WF83wnsaizkaiyYE2Phacz7tWKR6E70qMMGAjisTW6SDI8df3XDGwtnrph2x4ppd6ycftfzM+5eNXPSC7Mnp8ye/GLS1NVzpq1Jnv7S3Olr585YO3fGejLzZqyf55iYO2P93Bnr5ro8JGd+ae70NcnTV8+Z9mLS1JTZk1+YPXnVzEnPz7h75fS7yLd7Y+HMP766QarUt8vH3QxlMPsVWP2Aqail+sv8EzuPrV++ecqWtNV5dS0pf7323Y3WS5WtO/9a/MuNXy58+/Qv1vzpx499cqWmk/rBFFoRRnNY5G4lJSGjtl/+RdnLcR8p+9kvevnVbB+74bhvL3lb3gGHwyJUeAU1UqM84upyr7rcYh/E4c9ePPMWOhJZcxgREzuB/9UYpTGvPzPm78RYpEqxgCM7PAQWQGMeDhOPECoDW1E7Y/OTLpW7ngILjJ5ambFhwNIkt6Wea1i2P+vJT7IeePfbnz5/dM6Wr/9r9R8/+ua2UEF0DBPuHYkq+53jPW/m63ln3mBD3Z/eri7a2A2hm72GnPZyEZg9HBVeQY2P7/JuL2bqsqdIbC0S+xAYv9UFh7EjsNjYCdHXmFKXFzEAACAASURBVJ8favE/2p6fpZhHd6KHwwLVYQzj9Wed/cf+s8lywr+AvCYIgdHTOECcrx36/Zmax1IzX/2iuKxD2z5EtCsI0mEi2p2lKI05Teb2kyjBpMctKmfVJaYKL9/2aqDZi/wNFNpvowSwF8M7a/i8FW/wIzUiVHWR3qLHtQuRf72FEFiEEm97ILL9imFWYwzHd7iVYl5vBxzozh1sdCd61GED3hItjYXssBAF1kT+cLPbD1rSHEZqjKrGKJOFk64RLyG95fIzYDR1kQM3fNnLGRlR008EvqthaIUXkz5Dv4MMmajLd8nlNVbyJ75iS12BHQaNeUm8bX4UTo951xizYYpMehQZlmK3QyjFwnGYV41F02HyoB0WusA8HdaqINqGiLYhgvqFsA76rzNTGQkl5Eq8ZNj+U2Tt1E9/OdRFFl6NDnXVO35Y2fOHKGtkRHU/GZ+Flxd7eRslH1SfYcDTXSyoiygSk3/q1iKRF4dxLqfIOyyw2Lg/KLMZhgKLvf3AL40FOjHmq0fR/zj72yyUYrTuRMJdY5zXYUE6LCyBUQ6jNNYid8iMrMkU9jvBC4fDiMJn7HfpJX/ui+Yt2u02aIWXh72o31C2p59wu0KZ4X2hAhZenn2G/tQV4Q5DN29RcS/COHdSxATmvlEWL0tBYPEi8tAKskh1KgbWWMAeRYa/kOlaigW+3plRKUYwdFh9qBpjuyMxPIEN2poGbc2DRPMgeZNcuzya5bSyzDVUieYzQ860DhGtQ1ZywZYhL+t0GsshLfuVXnKXqosasuHLXlW0CZehhoEKL1+DNcp7ifIeotxeb1mpn0h2/FAycbWbuNpFlDpyhZYSMVEiDqXqClRy0SIiYy0SWQs7rIUd1vwOawEVr85wvJrfYc3vsHiL38V9rC2IRZhorMOeApGlQGQp6LAUdJhpsRR0WMiXvJmM+2Mxm4lPe9HD1umxYKoxPyfGAlz1HOjOHbfdbwQcie7EAW8O8yGwkB0WlMaCdVhIAhu0NQ3aGl3T5PLedo01yYkmUm9yZ1qoDLlGTjTLrc1ya/OgtXnQ2hQ4RBO52XJHV+Eg0eC8xYbdWwHV5YyUqJIG+iUUJoM17OqylnVby7qtV7stpWJ7rpDpIiesV8TWK2JLidhC/kRySae1uJO8b6HdYRHoMPT8YxYR9uqkw1rQYS4QmvOF5jyhOV9ozhf6UJFdXZZ8oSVfaM5rN+e1j7uGXEMgk/lUYIgm87RXQYelQGgpsG8O2TYT1c584Xi+0JzfYSbLMleHcX8IZjNMBBYP+yFS1RgTjTEfphjC4A6GZ8UClGKB753oLjBfGouqwxh3JPoTmFxnGx7zHoUzhGKMoE3QoiMUOmJYZ5+gMux4ctg1jhmsCp1VMWod8h8dMaQjFI5/qQzpCLn/jDoz6DsDngn0s2QyLSHT2GO/Uk1tlaitEpWlT2XpU1l6VZZe+4S1z/XJXpWVnj4V0asm+lzTG2xU3tOjInpU1p4Ra8+ItXvE0j1i6VY6MmLpHrH2jFh7VNYe+5we8ystXUpL17DZJQEW97KqnhFrtyOBFmEc+5odjVFaupRmehyNtDjeMRJvivAvvr78vaqg/476AkVCRuMzLtewagmpt9sy+Dq2DGi9HItoRyobGfmoTa5jlCEvIYbGPOJx3KYOsF4O9ZHOsDMu3pHrGAtMrrN9/X32ph17XbJ970Yqb+7d+ObeDW/u3fCmfXrjdteQr25735k337fPv33vxu17N213W+H7G97cs2Ebmd3rt+1ev3X3+q3vrd/63vqtu+3Ztts+w5t7Nrz5/sbt7ztXtYNZttPi5yXmK/RYw8btezdup7bFvhXrtr63bkvqui3vrSM3Z5s9G+zZ40zImxaobRvd2+bYz9vc9u37G990vju5CO3T2b3evi1U3lu/9T374rTGu+9P2qrIbHCEejtG2+ttzT7aSX1/qDj2tls7I7KHEQRhM19/n+3mMJ8CGx6zbdqxVwMAAADwgE079g6P+RZYo9xmz6BNMWbbuB0CAwAAwAt8CmzK7AUG8wT9TJpijIDAAAAA8AT/ArPV91upDOmIDdve57rBAAAAgEbjR2CTZy3Qj9tqpZZaqbVWaq2VWuSj1vVb93DdYAAAAECj8SewmfP147bqXjMVuda6djMEBgAAgBf4FNjdM+aPmWyVYlNll+mW2HRLbBpQW9b85j2uGwwAAABoNH4Edtf0eTojcUNoqHCkf8T84qupXDcYAAAA0Gj8COzOqXN1BuJay9i11rFrLWPXWsakw+OrXn6X6wYDAAAAGo1dYIQ3gU2ZO2qwljbprjbprjbpSpt0EsX48xvf4brBAAAAgEaj0WzasVcx5nKbRLvA7pgyd9RgvdIwWto4WtoweqVhVKIwPbcBAgMsIpVKpVIp160AAMQGpMAaabf69SKwKw2jVxpG+4YgMMAuUql0YmJiYmICGgMABMQuMPsvkHgIrLRRZw8qMMA+pMC+HOv8cqwTGgMA+MdVYEQjfRDHqIEoa9aVtYyVNeuu4hwYYB+6wCiNcd0oAABPcQrM4TDHMPpp83RG4nq7/nq7vrxNf61Vj1GIgG08BUYGpRgAwBMXgQ3SBHb39Hk6E3FTZLwpMt4QGSuEBtmIOeUVXAfGMVIPuG5RJPElMPQoAgA8cRfYoENgk2bOHzPZbneN3+4er+warxSbBlSW1a/hThzRwNNSdCY88DUn19sRNH4EBo0BANzwKTD7vRD7zNV95upec1WPeVBjeemN3Vw3OJ7xbyk6nsv6mjO2TBZQYDgxBgCgIAXW4CmwKc670VtqpJYaiUWuta7bgpv5Rh5f3orU+mPIZAwFhhNjAAANTWAN7gKbvUBvttXLrFSGRon1+D2wCOGnV5C9N3Xrb2TvjUImKIGhRxGABIcusAZvArM4Yh0axQ9aRgavnYTRbAAnbxoQarcwFxg0BkAi4/McmENgZkcsCh2x4U0ILCzcSi6um6PRaDT8OfRTuyVYgeHEGACJiW+BzZqvH7fVScdrpaY6qbleZlboiI0QWBi4FV5cN8cJTxoTWvnF/MRYfAzUBABQ+B6FOGu+ftxWKzXWSoy1UlN9v3lIZ4XAQoZvhRcPiYjAvPYo+h/bCZMBEKP4Edg8/ThR02eo7jPUSox10vEhnRVdiKEBezEhUgKja8xTXb5mzsjI4HoHAACCg7obPRXqOrB5+nGiuldf1auv6TPWSk0QWGjEkL24PYhHVmCUmfyri55t27ZxuPkAgGAJJLAefXWPvqbPWCc1DY1CYEETnL3q0u4VOHklk3r23rS6YN858xVqBYzJyMjg8CDOhsCCDVfbDgAIgYACG7MLTAKBhUJwtVdd2r2UdTJfcSgsaIFlvuJqwGBIcIGhIxGAGGLTjr3D9l9ktoe6F+JcmsAMZAWGQRzBQh6Umc5NF5h92rUouzetri7t3nvT0l6hHvtaVygVmIbTXkQ+CAwdiQDEEIEE1quv7nUIDKMQg4TqP2S6AE1grpM0UdWl3UvVVpmv+FZYiF2IHPYi8kRgKMIAiBUCCKymV1/TZ6iVGOqlJoXOunF77AmMw9ETQY/dYHIOjP7IX+di6OfAIDAUYQDEBIEFVt2nr5UY62UxKTC6PzgxWXDv6N6FSNop2gILcqHIEPJ9pNgIBAZATEAKrFnujLcKTGqsswtsL9cNDg6v/oimxoK7QpYuMOeDKAmMD/2HPBEYehEBiAmoCqx5yB6DxV1g+jqJsV42HosVmB+iU5CFN4jDbicXF7EjMMpeCd5/SAkMRRgA/MetC9FDYH1xK7CoEeo5MPeBG/RRiP4F5hhGH2CcIgXn9tJAYACA4PHShUgXWG2fvlair5caG/rHFfE7CpH/98hgDz7YSwOBAQCCJ8A5sNo+fW2fvi7eBZaw8MReGggMABA8pMBa5M643Imjrk9f16evlxobZOOKGL8XIudlFq+GBmQ44IO9NP4F1rRvEu3qgmUXyOdLVt87f3VT8H66sFYgWLsDAgMg9tm0Y++wnmgZcsbehWgXmERfJ9HXS42NsvHhGBcYE9g+bPHksEhXF0+aFEhgDuU49ROSwOwuhMAAiAcCCsxQJzHUS42N/QkhsOhAVT+cvCmvCi8KpgKzT5esdrnD1r6Pm/ZNunff6tfIx77Elr5MMH91U/oyCAyAuGDTjr1KPdE65IzR4vg9MIOZaJQZG6TGRpmpqd88PBYPAgvYkRidIxdV/bBtMk9p8arwomAosI8/my94Ld1LF2LTvklU7+KFtYJ7933svp6S1feSM0BgAMQJZAXmVWDzDWZbY7+pUWZq7B9vHrQMjxFxP4iDkyM7Gybz5a1IrT/ihHsOrGnfJEpa9GlHdrwmmPRZiaMOg8AAiAfsFZiCaFUQbUNEGyWwKbPmG8y25gFz88B4y6ClZdCiHCNi7k4cXvFThHF72KJMRl5k7dbp5zl/hl9iwlsUwXQhkt4KSmCuXY7+uhkhMABiBrrAWhVEm4IS2OwFRrOtRW5pkVta5NZWuVWpjxOB+YEPhy36LULcOv38W8oTbjckKJgKzNkTGFwF5nomDBUYAPEAKbA2hTM0gVkmyKfaFUSbghiJd4Hx4aAf8AZXMW0pPwRfgXXueI3qToTAAEhENu3YO6In2hXO2AU2dfYCo2XC+cIwMaK3bYojgbl5gg8y4PCXX/gAs3Ng7gM36KMQITAAEgq7wIadcQgsaaHRMiEcJoTDhHDYJhy2jehtm3bEj8A0tGqG64bY1ZXI9tJoNFKp1I9Uohaqb5br/QEACAApMIenCKGbwDqGbVRCENgE7+FPgyP3mcYwEzy4mxQPL5IDAHjFn8BMlgmR0kamQ2lTGeKtAiOJFYUkwiGVD0UYyi8AYoVNO/aOGIgOpTPeBSaKX4EBXsF5EQaBARArbNqxV6UnOoYJkdIeU8QFxv/iBnCIVCp1+91qbu0FgQEQK1ACoxzmIrDOERsVtisw/5c0AQr2PgJOIAfQu/0vh9vyK/52MgBxyaYde1UGR5U1YuscsbEusMQ5NAMmkAIz15eb68vppVhGRgbKLwCAH0iBdSodcROYeMQmjpzAICrgCV1g5vpyeim2bds2lF8AAF/YBUYrtGgCs050qWxiR9RGDOIAkcdNYJ6lWJQFxuGuAAAEBSkwstAi4y4wKhAYYAOvAnMrxdB/CADwZNOOvWqDTTxi63KEpwLj+aVasXIxGQ/xJTC3UoztU2LoPwQg5ti0Y6/aaKN7ymSlCaxbbbOHBwJzm+APUFc4+BcYvRRj75QYyi8AYhFSYN0qZ5wCG7dO9KhtPSpbj8rWrbJp+CEw6iFPnMGflsQoAQXmVoqh/AIAkGzasVfjKrBxusB61bZeta1HbetR80tgAZ+PDn7sBasxhKHA6KUYyi8QkGPHju3evXsXCIndu3cfO3aM688wMKTAetTOuAisT23rdUTLS4FRr3JF1PZAvMJcYPRSLOL2gsDiibRDh44fPy6Xy60gJORy+fHjx9MOHeL6kwzAph17tUZ7lUV6ylVgGhsVrYm/AgOxS7ACo0ox2Av4IjU1VaFQmM3mURASZrNZoVCkpqZy/UkGgBRYn9pG1lp9GleBSTQ2KhBYCODgGJAQBEaVYjj1Bbyya9cuq9XKtQViG6vVumvXLq4/yQCQApOobRK1XWMuApNqbWQkWggsaHBwZELIAiNLMZz6Ap7s2rXLYrFoQRhYLJbYEJjJJtHYpI44BWa2Tsi0NpnDYaN8FVhot8QNH/8Nhr0YEo7AyKDzELgBgYVPrAhs1GQ3FGkrF4H1j9pkjvBZYNFsCUP42SqN4+dLeEWYAgvWYbBX3EMKjOtWxDYxJDCZw179WpvZTWD28LsCi2ZL6PCzVf6ROn6+hFeEKTDmDoO9EgEILHxiSGD9Wme8CUxr69fadBCYB/xslX8iUvHwM7AXIIHAwidWBKYzEf1aZ1wENjBqo6IzERCYG/xslX/iWGD+HQZ7JQ6kwNQgDGJIYANaYmDUHprAiInBUZsjxBgE5gE/W+Wf+BaYV4dlOIC9EgQILHxiRWBjJmJw1BkXgcl1NrnOJtcRgzpibBwCc4efrfJP3AuM7jA3dfH2QwGRZdeuXWazeQSEgdlsjg2BjRODOkI+SshHCbmOMBMOgVmIiSGdbUhHyHWEHALzBj9b5Z9EEJi5vhzqSmQgsPCJIYGRhhrSEUM6wuIisDGCih4C84CfrfJPggjMXF9Oqcvs+hPPIO4hBaYEYRArAtOPOyXlLjDFGEEFAvOEn63yT+IIzC1+PiwQZ0Bg4RNDAqN7ykVgw2MEFQjME362yj8JKzAyKMUSAdYFVvXJIoGTl7/3P+uiT6p8PQyW71/2/26RI4YE5vSU3lVgSr1t2BG9mafXgXEIBBaL4ed3CUQQUmDD7HH7k0WCl78np79/WUBNe5910Se3fT0Mgu9fdugylKWDJmYEZnZKSqm3uQuMioHfAovG7SK84as9EBjPg1IsjomqwKhpupvs07ddKrVFL7/s8vCT2/bF6Y/ty37ysuuTdr5/GQKjsWnHXoPZRveUi8BG9MSInlDqCaWeMJh52oXITxJaYJd2LqH9nb5+gnz+uyPJSUcuMV/P4ded6whqQaaJuS8VYMiuXbsMBkMXe5R+sECw7pTbZOkHCxZ8UErNYJ+mP+v1oWNFp9YJyFdKP1gg8HjSzql1jlfYxmAwxIjA7IYibeUhMAMxYiBGILAgSXiBrbhETp9YIbBPBymwSztfT/2OnG5LTRJQK4x0UIrFH1ERmBOnyoIVmMsjh6y8r4eaBwJzQgrM6SkDTWBWYkJlIMiMGCCw4IDALrlMf3ckmfYXn7yz7dLOJck7j6QwK7DoK2QhMfftAv4hBdbJHiX75gvWpjun5+8r6ews2Td//r4S6kn7NP1Zj4fpawXOR46Vel8PtYDjfVkmlgTm8JTKQFi9CkxlIIx8FViov+cVLv4bDIGRvmlLTRKkHDbXl9MrsCj/XAt7cP1hAu9EVWB08dCtxkRgLutx2AwCY8ymHXuNZkLlS2BqA0GFzwKLZksYws9WaTg6B+Z56OdkxA0bwGc8hBSYiD2K980XvJTunJ6/r5g2IRKlvyRwTIrSX6Jm9XxIW1H6S/ZFivfNdyzrMu1lZSwSWwKjPAWBBQE/W+WfaAnM2YXoy1hc74mIEZcbFdNERWAUTsNQT7+0z1VC9Bl9PaQb0ZvA0l/y9pasEUMCU/sUmJGwBwLzhtdWMexj5IooC4xuL643HSQKrAssAYgxgTlURROYbUJrspHRmGwmC7+uA2N+Ooo9qFYFdXqMW6ImMLfeQq63O6qgO5Fbdu3apdfrhSAM9Hp9TAjMZLFpHJ7SmmxWm8swetsIzy5k5pUneNUYhkRHYG7dhlxvNAfE0Fci/oDAwidWBGYwE0qap5zD6I2WiTaFrU1ha1XYWhQ2pZ5LgfFTFZFqTDQP8dEQWH15YhZegCeQAmsDYRArAlPqbS0KW6vCRtrKaHEIbGx84qaEuCEhKiREhYTo10byHFiwRzdeeSuyRPlAHwWBUeVX1DYKADoQWPjEisD6tXZD3ZAQNyXE2LhDYLrxiYo+4rojskgLzG0iAfHsYYvC3mBbYAl73ssrGRkZXDchEdm1a9fY2FgLCIOxsbGYEJhM65RURR+h8yKwXqK8ly2BeX2YCHB1iGdVYLCXG+RPQnPdioQDAgufGBJYeS9xvdebwCh7lfcSUjYF5ufJuITDQzzbAoO96EBgnACBhU+sCEyqtRuKdJi7wMqjKDDqpUQgUnsyWKIgMLaaXpd2L+0GH69kUs/em1YX6lqc62EFCIwTSIE1gTCIOYGVewqMeuFaLyHVRElggFViXGAO3WS+4lBPKAJjVVpuQGDRBwILn5gRmIa41ut0mBeBXeslrvVAYNGGpWsG4kRg9mnXcuretLq6tHvvTUt7hXrsfy3RAOM4os+uXbt0Ol0jCAOdThczAutxOsxdYKS9yiCw6MLeFW/sCYz10fM09bhO0kRVl3Yv1SuY+Yo3hbk4LwomQy9i9ElNTZVIJEqlsh6EhFKplEgkqampXH+SASAFVtbjdJiLwCh7lfUQkmgJLNifNYk5/O8ZhrOFjFQqzWAH1kdwMDkHRn8UsHMx8xUfVVrEIPcMe58m8MqhQ4eOHj0qk8l0ICRkMtnRo0cPHTrE9ScZgE079ko0dkORDnMVmMNeURZYpN4lFmF789kTM+sXL7t3IZLuCUNg7HcnkvZK8K80Jxw8eDA1NXUXCInU1NSDBw9y/RkGhi4w0mHeBXYVAoso8br50ROY80E4AnMOBWEJlF8AsAcpsKu+BEbZ62o3BOZCmEfqWN98X7B7F3bvFZgm8xWahAIKjDY3bR1sAYEBwB52gXU7HeYU2Oj4BGWvUl4KjJORIBG5kCuOBRatc2DuAzfooxD9CSy6YzggMADYgxRYabfTYaN0gZH24rnAoqmxSA1SgMASAYzgAIBVXATWTVz1KrBSfguMmmb70BnBt4DA4h7KXjH9gQLAZyiBlXoXmMNeV3gvMPqT7BHi1jJrOUmsH+8gMA3sBUBUIAV2pdvpMJrATBOUva50ExJ1bAgsJohjgQENRs8DEBU27dgrUdsNRdpq1OQqMPK1K11EHwQWOSCwOAanvgCIDpt27O1TE1e6nA7zJrAuCCwwQf2PO+4Fxu54er5C3ZQE5RcAUcApsC5vAqPKr5JYE1hk7zERsCXBHrDiXmCaONoQhtDVlWjbDgAnkAIr6XIWYR4C6yJKYlNgQbcpVEI4YPGk5SBSoPACIPpQAqMc5iowh70gsMi+V0IJjH7DX67bEjE872UMewEQZegCIx3mIjDqhWIIDAILA3p/bLg3vecNIXQ1AwAiCCmwYlqh5UVgxRAYBBZRwj0nyRu43pEAJDSUwIoDCEwMgUFgrCCVSiEDAEAI2AUm9i0w0l4QGATGErAXACA0nAJzOMxFYMU0gfVCYJF7LwgMAADCZNOOvb00gRV7EZiYKBYTlyEwCAwAAPgEKbDLYqfDnALTmiaKxRAYK+8FgQEAQJi4C0xMaD0FdhkCg8AAAIBnUAK77EtglyEwFt4LAgMAgDChC+yyp8AuQ2DsvBcEBgAAYeImsMu+BFYEgUFgAADAJ0iBFfkXWBEEBoGBsJGGB9fNB4B3UAIrijOBRRwIDDDHl4QmwgNWA4BOYIEVxbLAwjxeuBF+g5m0HAKLXZi4ylxfHk58WY3rTQeAA+gCK/IUWBFdYKrYE1h0gMASHF/eCtNVwVoNJgOJxqYde3tVBN1TPgTWCYH5BAJLTDj3FkwGEhy7wDohsDCAwBIHP+e0OPSWf5NBZiBeYSawztgTWPg/9UTHfzMgsETA18ktzl3FxGSkzLjehQBEGKfAOn0JrDNWBRZ0m0IFAotvPNXFuZZClhk0BuIJF4F1egqs0/laT2ILDKMQE5C4URc0BuKSTTv29tAF1ulDYIUQmI/3YtLHyHxtGgiMN8Sfutw0xvUOBiBcSIEVxo3AmJ+4Cha39wrzjSAwPuNWeHEuG/aCUgzENIwEVhgLAmPJW27vFSlBQmD8JC77DP0HPYogdqEEVuhLYIX8Fhh7JZdnqyL4LhAY30hAdUFjINahC6zQU2CF/BZYFLzFEhAYf0hwdUFjIHZxE1hhbAmMD9AvCQpqKV8vxdbmxzpQl1eNcf2xAMCIjdv39qiIgg5rgcgeCCw43DZkwgeeM/haYWxtfkyTICM1QgvXHw4Agdnw5p7uEWue0Jxvj0VjtE2dvQACYwrz/64yLNRia/NjF9gLDgOxzvptu7uGzTmthpxWY06rMbfNpDHapkBgzIlsa2P3rF5sAXvBYSAOWLs5tXPIdLFBe7FxNKtRl900pjEQU2bPh8CCI1LiicVtjy0S5xqvSAXDOgBvWfOb33YM6n+oUmRWD2fWjJyvVan11smz5kFgIRKmyWJ62/kPhmyEFgzrAPwk5ZWdbVLt6XLJmevSf97o//7WoGrMMmnmXAgsXELbivjYdn6CwivMcP0BAuDOcxu3NfcoT10Wfl0s+vsV8TdlPSO68btnJJMCsxV2WiGwcAhqW3ACjD14aq9LO5cIVlzy9ZBPycjIyMjI4PpjBMCFZ9e90SAe+vOlhr/kNv01vzX9slA5arpr2hxuBBade2rwloTdcFbh9UmvGBEYaa8E//MEPOTpNa/ViQb+eL7qTxdrTmbX/yW3aVhrvHPqbLrArGwLLGq3g+ItCb75rMLrk16xIDC6vbj+MAFw4anVr9QKZV/8cONYZuUfz1efyKpTaAx3TnEXmJUlgeHArUHPIfvwUV0xIjDYC/CZJ1/8dY1QeuT761/8cPPY+dt/ulCjUOvvmDLLITARWwKDujTYCVGEcxPEosBgL8Bznkz5dY1Q+jkpsMzKP16o9iUwa2QFluBAXdGHcx/ElsAC2os8s4jvMOAQUmBHvq84mnnr+PmqP130rMBEEFgkgbo4hHMrxIrAGNor2HtYAxBZnnrxlRqh7GjmzePnq/50sfZkdp1CY/AQmAgCA3EC525wzXdHkgWvn7A/bEtNEqQc5rpJwdmLXCTKHyIAJE+tfrVO1H/8fNWJrLo/5zR+mds0rDHcCYGBOIZzQ7jm8OsCB8k727huTwj2gsMAVzzz0m/qO+Uns+v/ktf8t8L2rwrbXIbRk7+wQjoMAgM8h/ld+7iWFk8Tsr3IZSP3SQLAiGfXvtEgHvpLXstXRcKvr4i/LulUjprugsBALEIeWxnOzLkt+JZw7EUGZ3ZBlFm5fktTz3D65Y6/X+n65lrfN2U9ylHTXdOSXARWAIEB3kMdXs2Mu7M4dwZ/Er69yETu8wQgMM9t3NbSp8oo7f62XPLPG/1nKqQjuvG7p89xF1gBBAZ4TMjDCjg3Bx8SKXvBYSDKvPDrHW1S7enr0u9uDpy9PXS2Uq4aM989PRkVGIgZwhxWwLk/4slecBiIyK3C6QAAHu5JREFUJi+++rawX3e2ciizevh8rSqzZkSlt0yaMRcVGIgN/B9eGa6Ec4vEk73gMBA11rz+jkhuOF+rulCvudg4erFBq9ZbJ8+cB4GB2CDg4ZXhejh3STzZy4xBiSAqrN2c2qkwZTXpspvHLrUYLjXr1QZi8qz5EBiIAegDN8KvBjg3StzYiwwGJQK2Wb91d9ewOafVmNtmym0bz20zaYy2KbMhMMB72BhZEAVnBEXs2suMIgywz4Y393SPWPKE5nyhOV9oyReaNUbblNkLXO7EAYEBvsHeyAJWvbUteCJusujYiwyKMMAqG7e/36OyFnRYCzqsBSJrQYdVa7RNhcAAn2F7ZEFkpeXmrRC2l26yMGUWTXuZUYQBltm4fW+PiigUOaM1TUxNWuh+L0QIDPCEMI+wDN8lfHW5FVIR2XZ6WcZ/e5FBEQbYY9OOvT0qorDTGe8Cw3VggCeEf4Rl+EZhGoLtA3ewGuPEXmYUYYBNIDAQSzAcdhh9h7kVXqzuBDrbtm3js73IoAgDLAGBgVgiggdZhu8YrLo4OVj7L8W4tVdQexuAoIDAQMwQqfIrgg4LVl3S4GHYSF+lGB/sZUZHImAHCAzEDGwcZxm+tS8xMOwzpAtpIniYm8ytFOOJvcigIxFEHAgMxAYRL7/CcRiTwsutkKILKYRG0k3mX2ZUKcYre5lRhAEWgMBAbMDqoZZhG4ISg2exFZGm0ssyP03lm73IoAgDkQUCAzEAe+VXsA7zLwZPdbHqA/8a45u9zCjCQKSBwADfidrRlmF7/NsrOupy0xg/96fXoAgDEQQCA3wnmkfbkFvIrRXM9eUMR3lw3k4UYSCCQGCA10Sh8zBMh3FVeHkmYCnGub1IgaEIA5EikMA6ITDAJZwccJm3jQ9KYNh4/jQVAgORAgID/CX65Rdzh/Gn8PKMr+5EnjQVvYggUjAQWCcEBriB24rBf8N4Us34iq/uRM4bZkYvIogczATWCYGBaMNh+UXFf8N4ay//7ee8VRAYiBQQGOApnEuCvOTLs1WcNyyoTfC6bzlvGAQGIgJjgXVCYCCqcFt+eb1gObbs5UcVUqmU21bhNBiICBAY4CkcCixu7EXG6+7ldivQiwgiAgQG+Ai3J8C83iwqRu1FxutO5rZJEBgIHwgM8BEObUGVX27t4XxESZgb5XUn861JAAQFBAb4CFe2iLPOQ3q8Vjy4JQeIaSAwwDs4LHfir/OQHq97m8P2QGAgTBjcCxECA9GFK2HEZeeh2wZ63du8ag8AzGF2M18IDEQR/pRf8dF5SA+vOhLRiwjCBAID/IKrisdX+RVP9jLzrAiDwECYML6ZLwQGogJXvxTsp/zi3DqRDX+KMAgMhAkEBvgFV+VXHI/d8NxYr7udk5ZAYCAccDd6wCM4KXrifuwGE21w+P+GKH6/QLyBm/kCHsFV/2HilF9+tMHJxkJgIBxwHRjgEfypA+K1/PKjDa56EaPyzQLxCQQGeAQExqE2+LPzAWAIBAZ4BE6AcagNCAzEHBAY4BGcCCyhToBR4clpMAgMhAMEBngEVwLjvBnRD08G00NgIBwgMMAXot9xl5j9h37MwZP/QADAEAgM8IXod9wlbP+hL3NAYCC2gMAAX+DJ0TMRyq8Qt/3SziUCJ6+fYKsZADAEAgN8AQLj+7Zf2rlEsOISOX1ihYCajnQzAGAIBAb4QmIJjKxmUg5Tz1xKEURECSxuO11g9YdfFyQducRKMwAnTAgEPIz/NkNggC8knsCSliTTfRBLAmtLTRIk72xjpxmAEyYEXMvKIxAYiBkiYA6XEoH/AltxJDXJfibpxIolKSuCajwb5gjiHBitdox4MwAnQGAAhE4CCuzSpZ1Lkne21ZdfSkk6ciK4xrNhDoYVWKTKL1/NAJwAgQEQOlEWGMcXgdmb+t2R5KQjlw6/nryzLUj7cigwc/13R5IFS1K/g8DiifgT2ERhJwGBgegQ/QrM8yIwjUYTpYvAaNXMkuSkJanfBdt4NswRxCCOSzuXYBBHfAGBARAikSl9gu9C9NqSaCiEaiplgtgSGNmRGHaDITD+AIEBEDoRKH1i7hxYGI0PMzy5Bg4C4w/xKjAyEBhglwiUPhBYTGx7oGYATohvgREQGGCVxBqFyHV4su0QGH+AwAAInQgJjE4AmfHkIM5JeLLtEBh/gMAACB2eHD0TQWA8+R0Zr80AXAGBARA6EFiUN5zz35Hx2gzAFRAYAKHDiTm8Hj0TRGCc73+UX7wCAgMgdDgRGJeXgnEUXx13EFiCA4EBEDpcCYwPh/LobzLnJ8B87XzAFRAYAKHDlTYSrRfRj7MhsEQGAgMgLDjRRqL1IvKn6ITAeAUEBkBYcKIN/hzQo7OxfBhA76slgEMgMADCgj91QBwLjA8D6H21BHAIBAZAWOA0GNvO4En5ZUb/If+AwAAIC64EliCnwXhVfkFgfAMCAyAsOOy4i/sijIflFwTGKyAwAMKCQ4HFdxFG2YvuDMpe6D8EGggMgPDhsOiJ4yKMP52HZvQf8hUIDIBw4bbo8dokzvXDhjC46jw0o/+Qr0BgAIQLt+PX468jkW+dh2b0H/IVCAyACMBtr12cdSTyqvOQ3qRofZsAUyAwACIA5xWP11ZxrqLQVMGrzkNfTQJ8AAIDIAJwfheM+OhI5GHnoRknwHgMBAZAZOC8yy7WOxL5aS8z+g95DAQGQGTgQ7njtWGct4qhJHh46suM/kN+A4EBEBk470Uk47VtnLeKoSR4WESi/5DPQGAARAzOBUaawGvbOLeU/zb7lwTnbWPtKwPCAgIDIGJw24sY0AQZGRmc68qzwQxLHK5aiPKLz0BgAEQMPgz19n+03bZtG+fe8mwwQ0Nw1cIIfTtA5IHAAIgYHN7oKKhagdtSLKjCy40otxPlF8+BwACIJBzeZzaoQy1XpVgIhZcbUW5nCC0EUQMCAyCSRPk0WEB7kddR+WptNEuxgIWXn3a6wfleBTwBAgMgwkStCGNoL/I6Kl+t3bZtG9sac1OXL3uRTWW4k9luMOwVE0BgAESY6BRhQdmLXMRPm0mNkURWWkz6DN2aynA/s71jGTYDcAgEBkDkYbsIC8FeZPx301GaCdlkXqUVsJ2eTWW4n1natyi/YgUIDIDIw2oRFrK9yDDspqObLCgCSstrOz2bynBXs7RvGb474BYIDABWYKkIC9NeVJiPmNgWPAHX6avw4txhKL9iCwgMALbgrb3IMB8xEVn8F14cOgzlV8wBgQHAFpHtSIysvagwL8UiskNCaCTDlUdkD6P8ii0gMABYJFIdiSzZi8zExATbGnNTV7CNZPguEdnDrO4HEFkgMABYJCJFGKv2ctNYZE0mpRGauqLjsIB7GPATCAwAdgmzCIuOvegao0wWmsykrkzQCLNtDBsAeyUOEBgA7BJOERZle3majC4z5ky4EsFWMdznsFeCAIEBwDqhHcQ5tJcvmTGHvcYw3OewVyIAgQHAOiEUYfyxFw/DcLcz2cmwV0wDgQEQDYLSDOwVBYdh2GEcAIEBECVgL/44DJ2H8QEEBkD0gL344DDYK26AwACIKrAXtw6DveIJCAyAaAN7cegw2CuegMAAiDaegxJhr+g4DAM34gwIDAAOoHsI9oqmw1B+xRMQGADcEHv2urRzicDJ6ye4l1ZoDgNxAwQGAGfEkr3sAltxiSazJanfcd8qOCyBgcAA4JKYsZebwOrLzSdWCOgPeZMof4KAQyAwAPgI7+zlKbD6w68Lko5c4rpVcFgCA4EBwDv4aC8vAvvuSDIfz4TBYYkDBAYAv+CpvbwIjL8VGByWIEBgAPAFt9/T4lwAAQTG13NgZsfYzoyMDK4/UsAuEBgAPGLbtm08tVe9l1GI/Ow/pI/txCVf8Q0EBgDv4NwBvgXG6+vAzLjVYYIBgQHARzg3QSwG9ko0IDAAeEpGRgbnSoiVUCe9YK+EAgIDgL9s27aNczfwPzjplbBAYADwHc4Nweeg8EpkIDAAYgDOPcHPwF4JDgQGQGzAuS34FtgLQGAAxAwY1kFXF+wFIDAAYolt27Ylssbc1AV7JTgQGACxRwJqDOoCnkBgAMQqCaIxqAv4AgIDILaJ72vFoC7gBwgMgHgg/koxjNQAAYHAAIgT4qZHEX2GgCEQGABxRUxrDOoCQQGBARCHkBqLFZNl0IC6AHMgMADiFtIElBs4F5UvadG9BXUB5kBgAMQ/lBs4N5kvacFbIAQgMAASC05MhmILsAEEBkCC4tbBGKmeRs8VwluAJSAwABKdbR74khBDPFcIbwE2gMAAAF7wJSGGcN18kBBAYAAAAGISCAwAAEBMAoEBAACISSAwAAAAMQkEBgAAICaBwAAAAMQkEBgAAICYBAIDAAAQk0BgAAAAYhIIDAAAQEwCgQEAAIhJuLaV9/hvMwQGAAAgJoHAAAAAxCQQGAAAgJgEAgMAABCTQGAAAABiEofArIWdVggMAABAzACBAQAAiEloAkMXIgAAgNjBVWDWwk4rBAYAACAGcO1CtKICAwAAEBt4Owdmg8AAAADwHY8KzAqBAQAAiAG8CQxdiAAAAHgPBAYAACAm8dOFuEBrshWIrFR6VMTG7RAYACBiZJS2rDl6edn+7ITKmqOXM0pb/O+ZY8eO7d69e1eCsXv37mPHjjH//mzavrdHRRSKrFTsApsye4HGaMsXWqj0jFg3vvl+WN9WAABw8HVJc/Lx65Nvjs1pmUioTL45lnz8+tclzb72TNqhQ8ePH5fL5dYEQy6XHz9+PO3QIYZfoY3b9/aorAUiCxWtyTY1aYFdYLnt41S6Rywb3twToa8uACDRSfmiaMot/fZe2+cDiZXtvbYpt/QpXxT52jOpqakKhcJsNo8mGGazWaFQpKamMvwKbXzz/Z4Ra77QTEVjtE2ZvUAwZdZ8jYG41KKn0jVsXr9td4S+ugCARGfZ/uw5LROH+20KA5FQOdxvm9MysWx/tq89s2vXLqvVyrVNuMFqte7atYvhV2jDm3u6Ryx57SYqdoFNnjVPbbBebBil0qkwrdvCVIwAAOAfSmBDBiKhwkRgFotFm5BYLJYgBLZtT5fSnNNqoKIxElNmzxdMmjlPrbeer1VR6ZQb127+XWS+uQCAhAcC87VnSIFF87PgD0EJbP3W98TD49nNOipqAzF51nzBpBlzVWOWzCoFFdGg/qXX32Gz5QCABIIU2B/6bXIDEYUIBIKQX41s/sBMYGqeIRAIovAuQQls3ZbUToXpYqOWitpgnTxrnmDSjGTVmPlspZxKx8DYmt/8NjLfXABAwrNsf3ZSy8RnMtuAnoh4BDR8PeO5CBst8cxnMltSIIGZzeYRdhB44Gu2gBNsYDabmQts7ebUziHThXrNhXo1GbXeOnnmPMHdM5JVY+bvbw1QEQ7oVv+G6XoBAMA/rArMzUl0OXlVmlfiUmAjHiryJTPP2UZYttdI0AL7Xafc6DjPNXK+dkStt9gFNjJm/u7mABVhPwQGAIgYlMD69QRLEQgEfp7xfNX/spEKQ4EpWUMgEHidoB76X4pVghPYG++K5IZzNSPnakbO1SjP1ShVesukmXMhMAAAu5ACOySzycYINiIQCOjTbrD0pkxyiJnAhlmDvh+oZ6h/6RNuM7stxQZhCGzEU2D9VCAwAEAEWbY/e3qTbU83cVthZSPU0Zacpv6lP/QPSw3b001Mb7L5F5jBYOhiDYFA4HWCeuh1Hs+X2MBgMDAX2EtvvCuSGzJrRqg4BDY9eURn/meFjIqwf3T1a29H5psLAEh4lu3PntZo291F3JJbIh7SQOQE9ZCO10XYaIlndncR0xoDC6yTNej7gXqG+tfPzG5LsUGkBDZnRDd+ulxCpV2mffFVCAwAEBlIgaWKiYpBCxsRCARe/6VP+HqS1aSKGQlMxBoCgcDrBPXQ68x+nokgQQnMowvRIbC7piUpR03/uNpNpVWieeGVnZH55gIAEp5l+7OnNtre6bSW9ZvZiEAgoP/rhttsnvOw1KqyfvM7ndapgQSm1+uFrCEQCKgJ+rTX2bxWYOy1Ta/XR0Bgd05LUo6avi7ppNLSp1r18o7IfHMBAAlPFARGqYj+L33C15OshluB+VKRm5YCio0lIiSwqbOHtcb0onYqzb0jz296MzLfXABAwrNsf/aURttvRZYrsnE2IhAIvP7rOeH2Ktv5rcgyhYHA2thHIBDQJ9week77eiaChCQwJRWHwKbMGtYY/pbfTKWpZ/i5jVsj880FACQ8y/ZnT2mwvd1huSwxsRqBQOD2kHyG/rzXjjKW2vN2h2VKQwCBjY2NtbCPQCCg/qU/4zkP/aHnPBFkbGwsmEEc74jk+syaYSp2gd0xZdawxvDX3AYqTd2K5zZsicw3FwCQ8Czbnz25wbazw1LQZ0qo7OywTGYgsKaEJBSBVSuoUAKbOazR/zW3jkpT99BzGzZH5psLAEh4lu3PntxAbG835/YYEyrb282TGwj/AtPpdI0JiU6nC6YL8bci+di56kEqKr150sxkh8Byqqk0dcmf2/BGZL65AICEJ+WLol9WjK1qsbzZbk6orGqx/LJizP8vMkskEqVSWZ9gKJVKiUTC/BeZX3r9bdHgaOZtKRXV2PikGXMEd06ZMawZ+1tOJZWmroHnNvwmQl9dAECi83VJc/Lx67+8oZ9UTyRUfnlDn3z8+tclzb72zKFDh44ePSqTyXQJhkwmO3r06KFDhxh+hdb8ZkdHv/rszS4qqjHTpBlJgjsmTx9W6/6afZ1Kk1j23PpXI/TVBQAAzVfFTas+L1y2Pzuhsurzwq+Km/zvmYMHD6ampu5KMFJTUw8ePMj8+7P61W1CqfKf11qpjOiMd0+fLbhj8jSFevTP569QaeyUrFz76/C+rgAAAEBkeOHlN1p75RmXqzOKqjOKqjKKqpTasbumzhD88u4pQyOaY9/lUqkTdj+zegPXDQYAAAA0Go1m5bpXGjslf75Y+ucL9ijUo3dMnib4zzsnDQ6rPk0/+2n6D2RuN3c8/vwarhsMAAAAaDQazVMp66pbxZ9lXKQyqFT/112TBb/4f3fK5MO7j5yicr225aGnV3HdYAAAAECj0WgefvaFirrW949lvH/072RkQ8pf/PIuwU//4//19Q9t+eAolZKbdfc/8gzXDQYAAAA0Go3m/kefvXKrfuuHx7Z+eGzLh8e2fHisr3/o3//jl4Kf/Ow/uyUDa986QCX/6u2FDzzOdYMBAAAAjUajueeBx/Ov3nZI6r/XvvXf3ZKBf/3Zfwr+z7/9orNX9sxr71PJulyRvHg51w0GAAAANBqNJvm+h7MuVzzz6vvPvLrn6Vf3PP3qns4e2f/5t18I/uVff97RLX143TtUzuVfm3XPr7huMAAAAKDRaDSz7nnwXP615WvfWb72neVrf7t87W87uqX/8q8/F/z4Jz8TdkkeePFtKj/kls2Y/wDXDQYAAAA0Go1mxvwHfsgtW5by9rKUt5elvLUs5S1hl+THP/mZ4H/9358JxZL7X3ibytmcsmkQGAAAAH4wff4DZ3PK7l/11v2r3lqy6q0lq95qF0v+1/+1C0x6/wu/pXI259q0+ehCBAAAwAumz//V2ZyyJat2UbEL7Mc/+bmwS7r0xXepnM0tnz7/Qa4bDAAAAGg0Gs30+Q+ezb12f8o7VIRd0h//5OekwGQPrHmPyg9512cseIjrBgMAAAAajUYzY8FDP+SVL1udSoUS2C+EXbJfvbSHylffF7224/0ZC5cjCIJEL/csn+kRz9lm3vPwrHsembXokdn3PjJ78aNJix+bc9/jc+57PGnx40mLH5t976Oz731k1qJHZt3zyMx7Hnas52F6ZpFruOfhWc4nyZU/NGPBQ9Pn/2ravAemzl02NXmpM3OXTZv/wIwFD828Z/msRY/MXvxo0n2PJy95Ivn+J8nMJSeWPJG85PE59z0+Z/FjSe55dDaZex+ZvYhsIf2tEX95dfv7X31f9MCa3VSEXbIf/+QXdoE9uPZ9KrsOfJV+9nJmfgWCIDGS62GHs8afy79xrsA1/3875vqU5pUGcD83QQQUeBXUVJ1NNt3ZdreNcdMYuSkqIHhH7giCAt4vIAgIIggiXpKoubRpZ9skTbwmm5XE1LabmBiz+zXxioqgJpsmf8J+eF/RbLuTzjRZYsPM78M7zHPec87znPf85mHi7tWJ6f/+8e93ociJu0Pu6WH3vZGb90dvzYxNPhi/PTt+++HY5Ozo5IORWzMjN+8Pu+8NuaevTuyMHZqYhnDfG3ZPg4C/QHPduHPlxp1v/vaPy9d/uHztu0vjUxfHvg1waXzq8vXvr9y4M+S+O3Lz/ujkzPjt2WtTD69/968dpv55berhtW8fjt+eHZucHZt8ADIKMTN6a2Z0e3ng7Nv7Cvr5eds5e8ldZTqzu9GCBAZHAbbOHnFjz26H/YZQ/zxFL5H6DgBtdicJQS/NT8oU7BTtfZp+Ha88Nq+p3GzNCbYmjd0MQijREjk6EreFxNOT+XoK30ARGCkCI5lvIPH0JG4LkaMjcnQEjpZQoiVwdCSePl1gpIrNWRILXWZjVjhyVV35ld0spTOn3E6X2bIkFqrYnC4wknh68M1kHvTadGFrhshEFZsyS81UsYkqNmUIWykCI4mnJ3C0J9ia1MKmY/l1Kazq5BzVJ3TFEbryCEN5hKE8yqw6XthA4mqpYhNdbmMpOwtqetgNp7jqQa56gKse4Db1c5tOs+tPFtX2FlS78iqdeSpnrqqTpexkKR1MhYOpsDMrOnLKO2gya5akjSoypQsMZJ6eyNGllTQHkpNaHPRTtAcQNXTbOnvgKCAMl/gRgDsw4r4X7CvsDV+O/9te77DD3iqNqU+EPt1fy+sXWOqbEFix5sS2vdJAe/H0ZL4hXWDMELZmiE3UUnNmaVuGyJQubN2tMQJHR+ToyHxDhsiUKbHQZDZmhSOv0lVY01tUd7KguidX1ZVT4aDJbFkSS4bIROYbSNwW8ra6qGJzZmlbtrSdJrPR5TaazJpdZsmStGWKzRSBkcRrSStpTi1q+jS/PoVVAwmMoTzCUCXnqFJyq9PY6nShgSaz5lZ2FdWd5KoHRS2fSVu/lBq/kBi/kBgvlBo+E+rO8TWDnMbT7Pq+4rq+4rreotrewtqewpqegprugmpXflUXS2FnyG3ZEgvoMBKvhVCiDWQmJLBfwoh7GsAdiIpJCos/lAJDAg5XX8fA1WBfYW/wZgw1YSBvex8W7PzsffaIw9iQwwglWtAxkGAklmxpO63MSpPZsqTtVLE5XdhK4RvIu1oxisBAFZuzpe0MeQdL6Syo7mHXnypp7C+q7cuv6mYpnQy5PVvaThWbKXwDiacP2CtLYqHJbIxyO1PRyVI6mQpHTnkHXWajSdszxCYy30DgaFOL1J/m16fk7ggsOUd1lFn5l7xaIqc5U2JmKjuL6k/yNGdKDRfklq+VHd8obZcV1kuK9ovlbV+VtX5ZavhcqDvL1wzyNIM8zQBXPcBV93Oa+jmNp0saTrHr+wqqXSylgyGzZZW2ZYhayXw9gQMJLGSvX4Jt4KrD1QdDAkDc4bDf/YmCT/r4PRjC4eobcU9LNL2pxerfHE0/w0++3uPvBtB+d1IR9Oq8XKlg52ev0fi6eeWZeQ2FBh0GCYynp2z/JUgrs9LlHTkVDmaFgy7vCDgM7MO2BWaEBFZuz1V1Fdb0ljT0c5oGiutPgU0Yo9yeXWalis3kbYFBHVuZlVFuZymd+VXdBTW9eVWuXJWTqYBcQhEYiQGBsWqSGQGBVR5lVh3LryXxtNlllrwqF0c9INJ/Lm/7utIxVNc9Vts1WuMcru4cqrJfUbRflJv/KjVeEOvPi1rOi1rOC1vOCXXnBNqzguYz/OZBnrq/uK43v9LJLO+gSS1UsYnCNxA52t32CvaJensRN/UMu6cdrr73YAg0/mD8oaNhh5NpSR8S8Ukfw5BYABdvtXc/XloPESJEiDfI8vochG/O45v3+BdW/AsrGwurG4urm4trm4trm4urmwsrGwsr/nmPf97jm/P45pZ9c8u+eY9vfsW/sAJFLnm3lr1PltefLHufLK1tBQbOr/jnPWC8f37Xy5fWtsAhS96tl+I9/rll3+Ol9cdL3keLa48W1x4trEIPi2uPl7zzHt/C6saSd8uz/nTF/2x140fv1vP1Jy/Wt154t154t557N5+vbf64uvFs1f9sxf9vCB+Ex/fU43vqWX8KrXNnd+C+gl2RvYDV3g3g4mFILBp/MO5gcsIHqWF/OJZ76JPMpD8ScYl/xsYd3o/AhggRIsT/BxgSC0MC4ajo8MhoeGQMPComIgoXgcZFoHERUTh4ZEx4ZHQ4KhqGAmBIAIbEwpBYGAoIR0XDI6PBYAQaj8TEIjGxCAwegcZHROHgUTFwcBQSgCGBcCg+JhCPwOB34gMToaJhSGA/ArsfgdkXgd4Xgd4Hj4IeItD7EZhwFACPikFg8CggLjL6ABqXgMEnYmOTsLFJ2NhELD4Rg09A4xLQMe9HxRyIjI5/CSA+EohHAXEoIA6JjYXWGQmuE9ieN8SrQQEJmNjfxx1Mfv+D40kfkv4DixYllf8+DlwAAAAASUVORK5CYII=" alt="" />

注:

若为动态生成的以上按钮添加消息响应请参考本人的另一篇博客:

MFC动态按钮的创建及其消息响应(自定义消息)

7、上面的Button1是我静态添加的按钮,测试之用;绿色矩形是我为在对话框测试画矩形之用,代码在OnPaint()函数中:

void CbuttonDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // 用于绘制的设备上下文 SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), ); // 使图标在工作区矩形中居中
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + ) / ;
int y = (rect.Height() - cyIcon + ) / ; // 绘制图标
dc.DrawIcon(x, y, m_hIcon);
}
else
{
//CDialogEx::OnPaint(); //画矩形
CPaintDC dc(this); // 用于绘制的设备上下文 CPen pen(PS_SOLID,,RGB(,,));
//CBrush* pBrush=CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));
//dc.SelectObject(pBrush);
CBrush brush(RGB(,,));
dc.SelectObject(brush);
//CClientDC dc(this);
dc.SelectObject(&pen);
dc.Rectangle(,,,);
}
}

CRoundButton

CRoundButton主要用于创建圆形按钮,如果需要请百度,本文不做具体介绍。

CSXButton

CSXButton也是不错的派生于CButton的按钮扩展类,本人未曾使用,博友可尝试使用一下

CButtonSSL

CButtonST|CUniButton等按钮类的使用的更多相关文章

  1. 背水一战 Windows 10 (31) - 控件(按钮类): ButtonBase, Button, HyperlinkButton, RepeatButton, ToggleButton, AppBarButton, AppBarToggleButton

    [源码下载] 背水一战 Windows 10 (31) - 控件(按钮类): ButtonBase, Button, HyperlinkButton, RepeatButton, ToggleButt ...

  2. 控件(按钮类): ButtonBase, Button, HyperlinkButton, RepeatButton, ToggleButton, AppBarButton, AppBarToggleButton

    介绍背水一战 Windows 10 之 控件(按钮类) ButtonBase Button HyperlinkButton RepeatButton ToggleButton AppBarButton ...

  3. Cocos2dx项目启程二 之 封装属于我的按钮类

    不知道为什么,很讨厌cocos2dx的 各菜单类,比如按钮:如果一张图片上就已经有按钮的几个状态了,我还是要创建多张资源图片, 最起码要指定这张图片上哪块区域是这个普通状态,哪块区域是那个选中状态.. ...

  4. MFC的PNG贴图按钮类(详细注释)

    MFC的PNG贴图按钮类(详细注释) (转载请注明出处) 作者:梦镜谷雨 萌新第二次写帖子,请多多包涵.末尾附上相应代码(PS公司繁体系统所以部分注释繁体请别介意). 因自带控件不美观,于是网上参考学 ...

  5. 八、pyqt5按钮类控件——QPushButton、QRadioButton、QCheckBox

    pyqt5中常用的按钮类控件有QPushButton.QRadioButton.QCheckBox.QToolButton等.这些按钮类的基类都是QAbstracButton类.所以这些类有部分方法是 ...

  6. WorldWind源码剖析系列:图层管理器按钮类LayerManagerButton和菜单条类MenuBar

    WorldWindow用户定制控件类中所包含的的可视化子控件主要有:图层管理器按钮类LayerManagerButton和菜单条类MenuBar.BmngLoader类中所包含的的可视化子控件主要有: ...

  7. VS2010中新控件的编程------颜色按钮类和颜色对话框

    (1)      颜色按钮类和颜色对话框 1) 颜色对话框 MFC提供了颜色对话框类CMFCColorDialog进行颜色的选择,系统可以利用DoModal()调用,然后选择相应的颜色. CMFCCo ...

  8. bootstrap 图片类 和 按钮类 部分

    bootstrap框架,来自 Twitter,基于 html ,css ,js.简介灵活. 首先引入  bootstrap.js   bootstrap.css  及 jquery.js  这里不考虑 ...

  9. Qt-第一个QML程序-4-自定义按钮类,动画,状态

    上篇中,我们写到了自己定义了一个按钮,但是呢,按照这样的写法,要写一个程序出来,那要累死了,所以,qml给我的感觉就是各种随便调用,所以了,可以自己写一个自己Button的qml,这样在以后用到了,就 ...

随机推荐

  1. package.json---入门说明

    直接的说:就是管理你本地安装的npm包 一个package.json文件可以做如下事情: 展示项目所依赖的npm包 允许你指定一个包的版本[范围] 让你建立起稳定,意味着你可以更好的与其他开发者共享 ...

  2. php设置头部让任何域名请求

    header("Access-Control-Allow-Origin: *"); // 允许任意域名发起的跨域请求...

  3. C++访问二维数组元素

    if(*image_in+j*+xsize+i)>=thresh)//xsize图像宽度 image_out是首地址,加上j*行宽就是目标行的首地址,再加上i,就是在此行中的第i个像素,所以整个 ...

  4. 【Nodejs】Node.js(Express)の環境構築

    [Express]の環境 参考URL:http://expressjs.com/en/starter/generator.html ①Node.jsの準備 (参考URL:https://www.cnb ...

  5. 聚合查询、分组查询、F&Q查询

    一.聚合查询和分组查询 1.aggregate(*args, **kwargs): 通过对QuerySet进行计算,返回一个聚合值的字典.aggregate()中每个参数都指定一个包含在字典中的返回值 ...

  6. vue 引用公共方法(例子:截取字符串固定字数,其余显示...)

    1.写公共js 2.main.js引入公共js 3.在组件中用this.common.方法名 引用

  7. 25 【python入门指南】如何编写测试代码

    python如何编写测试代码 python内置了unittest,使得写应用层的单元测试变得超乎寻常的简单. 1,执行单个测试函数 #!/bin/python import unittest clas ...

  8. 【linux】进程状态

    [进程状态转移图] PROCESS STATE CODES R running or runnable (on run queue) D uninterruptible sleep (usually ...

  9. iOS-引用计数与ARC(转)

    以下是关于内存管理的学习笔记:引用计数与ARC. iOS5以前自动引用计数(ARC)是在MacOS X 10.7与iOS 5中引入一项新技术,用于代替之前的手工引用计数MRC(Manual Refer ...

  10. 2 c++对象被使用前要先被初始化

    虽然有些时候int x;会被初始化为0,但是也可能不会,这就造成随机初始值会影响我们程序的运行. 类成员变量初始化顺序是依照其声明顺序而来的.基类要早于派生类别初始化. 构造函数最好使用成员初值列: ...