{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 数据处理\n", "\n", "[![下载Notebook](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/r1.8/resource/_static/logo_notebook.png)](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/notebook/r1.8/tutorials/zh_cn/beginner/mindspore_dataset.ipynb) [![下载样例代码](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/r1.8/resource/_static/logo_download_code.png)](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/notebook/r1.8/tutorials/zh_cn/beginner/mindspore_dataset.py) [![查看源文件](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/r1.8/resource/_static/logo_source.png)](https://gitee.com/mindspore/docs/blob/r1.8/tutorials/source_zh_cn/beginner/dataset.ipynb)\n", "\n", "数据是深度学习的基础,高质量数据输入会在整个深度神经网络中起到积极作用。\n", "\n", "[mindspore.dataset](https://www.mindspore.cn/docs/zh-CN/r1.8/api_python/mindspore.dataset.html)提供了部分常用数据集和标准格式数据集的加载接口,使得用户能够快速进行数据处理操作。对于图像数据集,用户可使用`mindvision.dataset`来加载和处理数据集。本章首先介绍如何使用`mindvision.dataset.Cifar10`接口加载并处理CIFAR-10数据集,然后介绍如何使用`mindspore.dataset.GeneratorDataset`实现自定义数据集加载。\n", "\n", "> `mindvision.dataset`是在`mindspore.dataset`的基础上开发的数据集接口。除提供数据集加载功能外,还提供数据集下载功能、数据处理和数据增强功能。\n", "\n", "## 数据流程\n", "\n", "在网络训练和推理流程中,原始数据一般存储在磁盘或数据库中,需要首先通过数据加载步骤将其读取到内存空间,转换成框架通用的张量(Tensor)格式,然后通过数据处理和增强步骤,将其映射到更加易于学习的特征空间,同时增加样本的数量和泛化性,最后输入到网络进行计算。\n", "\n", "整体流程如下图所示:\n", "\n", "![dataset-pipeline](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/r1.8/tutorials/source_zh_cn/beginner/images/dataset_pipeline.png)\n", "\n", "### 数据集\n", "\n", "数据集为一组样本的集合,数据集的一行即为一个样本包含一个或多个特征,此外还可能包含一个标签。数据集都需要符合一定规范要求,便于评估模型的效果。\n", "\n", "Dataset支持多种格式数据集,包括MindSpore自研数据格式MindRecord,常用的公开图像数据集和文本数据集,用户自定义的数据集等。\n", "\n", "### 数据集加载\n", "\n", "数据集加载使得模型训练时能源源不断地获取数据进行训练。Dataset对多种常用的数据集提供对应的类来实现数据集的加载,同时对于不同存储格式的数据文件,Dataset也有对应的类来进行数据加载。\n", "\n", "Dataset提供了多种用途的采样器(Sampler),采样器负责生成读取的index序列,Dataset负责根据index读取相应数据,帮助用户对数据集进行不同形式的采样,以满足训练需求,解决诸如数据集过大或样本类别分布不均等问题。\n", "\n", "> 注意,采样器负责对样本做filter和reorder操作,不会执行Batch操作。\n", "\n", "### 数据处理\n", "\n", "Dataset将数据加载到内存后,数据按Tensor形式进行组织。同时Tensor也是数据增强操作中的基本数据结构。\n", "\n", "## 加载数据集\n", "\n", "下面的样例通过`mindvision.dataset.Cifar10`接口加载CIFAR-10数据集,CIFAR-10数据集共有60000张32*32的彩色图像,分为10个类别,每类有6000张图,数据集中一共有50000张训练图片和10000张测试图片。`Cifar10`接口提供CIFAR-10数据集下载及加载功能。\n", "\n", "![cifar10](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/r1.8/tutorials/source_zh_cn/beginner/images/cifar10.jpg)\n", "\n", "+ `path`:数据集根目录位置。\n", "+ `split`:训练、测试或推理数据集,可选`train`,`test`或 `infer`,默认为`train`。\n", "+ `download`:是否下载数据集,设置`True`时,若数据集不存在可下载并解压数据集,默认为`False`。\n" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "from mindvision.dataset import Cifar10\n", "\n", "# 数据集根目录\n", "data_dir = \"./datasets\"\n", "\n", "# 下载解压并加载CIFAR-10训练数据集\n", "dataset = Cifar10(path=data_dir, split='train', batch_size=6, resize=32, download=True)\n", "dataset = dataset.run()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "CIFAR-10数据集文件的目录结构如下:\n", "\n", "```text\n", "datasets/\n", "├── cifar-10-batches-py\n", "│   ├── batches.meta\n", "│   ├── data_batch_1\n", "│   ├── data_batch_2\n", "│   ├── data_batch_3\n", "│   ├── data_batch_4\n", "│   ├── data_batch_5\n", "│   ├── readme.html\n", "│   └── test_batch\n", "└── cifar-10-python.tar.gz\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 迭代数据集\n", "\n", "用户可以用`create_dict_iterator`接口创建数据迭代器,迭代访问数据。访问的数据类型默认为`Tensor`;若设置`output_numpy=True`,访问的数据类型为`Numpy`。\n", "\n", "下面展示了对应访问的数据类型、图片的形状和标签。" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Data type:\n", "Image shape: (6, 3, 32, 32), Label: [7 1 2 8 7 8]\n", "Data type:\n", "Image shape: (6, 3, 32, 32), Label: [8 0 0 2 6 1]\n" ] } ], "source": [ "data = next(dataset.create_dict_iterator())\n", "print(f\"Data type:{type(data['image'])}\\nImage shape: {data['image'].shape}, Label: {data['label']}\")\n", "\n", "data = next(dataset.create_dict_iterator(output_numpy=True))\n", "print(f\"Data type:{type(data['image'])}\\nImage shape: {data['image'].shape}, Label: {data['label']}\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 数据处理及增强\n", "\n", "### 数据处理\n", "\n", "`mindvision.dataset.Cifar10`接口提供数据处理功能,只要设置相应的属性即可对数据进行处理操作。\n", "\n", "+ `shuffle`:是否打乱数据集的顺序,设置为`True`时打乱数据集的顺序,默认为`False`。\n", "\n", "+ `batch_size`:每组包含的数据个数,`batch_size=2`设置每组包含2个数据, `batch_size`值默认大小为32。\n", "\n", "+ `repeat_num`:重复数据集的个数,`repeat_num=1`即一份数据集,`repeat_num`值默认为1 。" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Image shape: (6, 3, 32, 32), Label: [9 3 8 9 6 8]\n" ] }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "import mindspore.dataset.vision as vision\n", "\n", "trans = [vision.HWC2CHW()] # 输入图像的shape从转换成\n", "dataset = Cifar10(data_dir, batch_size=6, resize=32, repeat_num=1, shuffle=True, transform=trans)\n", "data = dataset.run()\n", "data = next(data.create_dict_iterator())\n", "\n", "images = data[\"image\"].asnumpy()\n", "labels = data[\"label\"].asnumpy()\n", "print(f\"Image shape: {images.shape}, Label: {labels}\")\n", "\n", "plt.figure()\n", "for i in range(1, 7):\n", " plt.subplot(2, 3, i)\n", " image_trans = np.transpose(images[i-1], (1, 2, 0))\n", " plt.title(f\"{dataset.index2label[labels[i-1]]}\")\n", " plt.imshow(image_trans, interpolation=\"None\")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 数据增强\n", "\n", "数据量过小或是样本场景单一等问题会影响模型的训练效果,用户可以通过数据增强操作扩充样本多样性,从而提升模型的泛化能力。\n", "`mindvision.dataset.Cifar10`接口使用默认的数据增强功能,用户可通过设置属性`transform`和`target_transform`进行数据增强操作。\n", "\n", "+ `transform`:对数据集图像数据进行增强。\n", "+ `target_transform`:对数据集标签数据进行处理。\n", "\n", "本节介绍使用`mindspore.dataset.vision`模块中的算子对CIFAR-10数据集进行数据增强。" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Image shape: (6, 3, 32, 32), Label: [7 6 7 4 5 3]\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAEICAYAAABPgw/pAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzsvWmUXOlVJbpPzJEROSszlZmaVSrVoJrLNdpQnsAUg2nAgPuZV7AMhsfc9Otnw4Km6YbGsGhgdcODVzyMDY/JLBu7wAMul2eXq8o1D1KVpNIspVKpnDMy5vjejwjdvW84U0pJOUiR315LSycj7vDde7574559z9nHnHPw8PDw8Lj6EVnrAXh4eHh4LA/8Dd3Dw8OjReBv6B4eHh4tAn9D9/Dw8GgR+Bu6h4eHR4vA39A9PDw8WgTr7oZuZkfM7G1rPQ6PlYeZ7Taz58xs1sx+ca3H43Fp8Nfs0hFb6wF4eKwg/i8AX3LO3bbWA/HwWA2suyf05YCZ+R/CqwNbAbyy0BdmFl3lsXisIdbLNbteb+i3mtmLZjZtZv9oZikAMLOfMrODZjZhZo+Y2dC5FczMmdnPmdkBAAesjj8yszON7bxoZnsayybN7A/M7JiZjZrZn5tZeo2OdV3CzL4A4M0A/sTM5szs78zsz8zs02aWA/BmM+s0s782szEzO2pmv25mkcb6UTP7H2Z21swOm9nPN+bAurgxXIHw1+xS4JxbV/8AHAHwFIAhAD0A9gH4GQBvAXAWwO0AkgD+F4CvyHoOwKONddIAvhPAMwC6ABiA6wEMNpb9YwCPNJZtB/AvAH53rY99vf0D8CUAP9mwPwxgGsD9qD/IpAD8NYBPNny0DcB+AO9tLP8zAPYC2ASgG8DnG3MgttbHtd7++Wv2Is7VWg9gjSbHe+Tv3wfw5wD+EsDvy+dZAGUA22RyvEW+f0vjBnAPgIh8bgByAHbKZ/cCOLzWx77e/i1wQ/9r+S4KoAjgBvnsp1Hn3AHgCwB+Wr57m7+hr5kf/TW7xH/rlXI5LfY86hNhCMDRcx865+YAjAMYlmWPy/dfAPAnAP4UwKiZPWxmHQD6ALQBeMbMpsxsCsBnG597rC2Oi70BQALi84Z9zt9DTcur7bH68NfsErBeb+gL4RTqL9EAAGaWAdAL4KQsE5KmdM79T+fcHQBuBHAtgP+EegiYB3Cjc66r8a/TOZdd6QPwuCDUf2dRf5rbKp9tAf09gjrdcg6bV3ZoHpcAf802wd/Qib8D8BNmdquZJQH8dwBPOueOLLSwmb3BzO42szjq4VoBQNU5VwPwFwD+yMz6G8sOm9l3rspReCwJzrkqgI8C+B0zazezrQB+BcD/11jkowB+qeG7LgDvX6OheiwOf802wd/QG3DOPQbgNwB8DPWns50AfvQ8q3SgPgkmUQ/7xgH8QeO79wM4COAJM5tB/YXa7pUZucdl4BdQv7APAfga6jeIDzW++wsAnwPwIoDnAHwaQAVAdfWH6bEQ/DX7rbDGCwAPD4/zwMy+C8CfO+e2XnBhD481gn9C9/BYAGaWNrMHzSxmZsMAfhPAP6/1uDw8zgf/hO7hsQDMrA3AlwFch/oLs08B+CXn3MyaDszD4zzwN3QPDw+PFsFlUS5m9g4ze61RevuB5RqUx9rC+7V14X3b2rjkJ3SrixvtB/B2ACcAfBPAu51ze5dveB6rDe/X1oX3bevjcoSG7gJw0Dl3CADM7B8AvBN1/YsFYWae37lC4JyzRb7yfr2KcR6/Ahfp28X8euvtt3MZmCyv4zjPKGxBE1oD5HS7si0dUjGfC+y56anAHp+aDexCoRjaQyIRD+zNW7YFdiabOc+AVxb5QmHBz1OpVGA/+8wzZ51zF6xcvZwb+jDC5dAnANzdvJCZvQ/A+y5jPx6rC+/X1sUFfbsUv37p608GdixK1jYa4U34vJG/3PmjqAV2ROyysMEmv1EJqwT20Ve+Gdhf/swjgf23j3wxsPe+diC0623DgRgj/ujP/jKw77rvnsCuOY7DZKx6ROEfIv1r8aUWW+Plfa8GdlX2t/s6psGnzVSiYlFczg19odF+ixedcw8DeBjwT3JXCS7Lr3/ws3cEyxRr5cCuzNMuzLI2p7OzP7Td/kH+ne3gU9PICKu54/KUNT/Pp7Rifi6w2zNUPk0nE4EdkcMr5fhklErwaQgAkh1d/EO2dXLkWGBXy6XADj8Y065Weaw1OR+o8ZRGImFpdr2B1WT9So03mmqVdq3x+Yf+7TAugAv6dinXa4X3VJRLPKboed7I6Q0+Ijf+eJTHnozTrzHZVlxG/frrvPm9/NJTgf3t9+wJ7DtvuzGwP/bIZ0PjeOLZlwJ7dORIYNfkd62m0cEiN+VFb2Q1XSa8lC3yh57DTKY9sMMzcmm4nJeiJxDWt9iEuraCx9UN79fWhfdti+NybujfBLDLzLabWQL1kttHLrCOx5UP79fWhfdti+OSKRfnXMXMfh7Av6GuLf0h59yC7b7OYXBoI37yZx8CAESkA9irr74W2Pn5fGBrc5hSieEtAKTSbYH9wHd/X2Bfu4u805cefYz7ePn5wJ6f4wuU6elpfi7hO0zDW4a9sVj4lGXaGCIlkwyS2tv5uZM4rFLhcbS1MZTv6xsI7J27bgjsw0dInd17772hfW/qJx8YqfG3+bOfZZj5e7//O7gYXIpfFR1JHtNMgSFnTc5Bd09nYF97XVguY9sOVtaPjY4EdjJORdRUmuf5zJkzgV3M8/OsLGOy73gyGdizMfG30AgA0N1JymVwy5bA7u/dENilMimbgweEq60pzSKUSUlC8Ahta+IqqrJOWcL2RIyURKUiy5TrIbud73UoLt+35zA+Ph7YmTZeh05oID0GIPyCrz3LdU6PksJ69PMfD+zZmfnAvmE36ZTCHF9y/umf/l1gv+O+6wP7ve/54cC++w3hdrKPPcH7wFe/wXcBN9/77YHd1UMfK1XkhFtXziQu/ovHeF9TagkAakKzVcqccPN53vM2bNiAy8FltdNyzn0addEijxaC92vrwvu2teG1XDw8PDxaBKva8LZSrWByok539PZsDD6PRpiFkM3SnpmhbEaxKVcznmDo/OxzDKMyGYbzg0MM08dH+e7n4OTYguPTsLBcKS64jIa6zX+bkU5RKkfDs0RCMi6M9o7tuwL7jfc/ENgzM/8W2FOTzOIAgLc9wFA0IVRQuoO6/BdLuVwuMilSLhblmJIJnoOBQb6Xu/nOcEh89iwplPaujsDevJXrnD3D5jWDG0lVmaMvCkKfjY9xm/E0x9czxDk4cjjckGhyYiKwq6WqrDMY2EODpLzmppn7HJHHpBnJj87JnFAqpmYaygM1oWM0AaaqmTGSHRI7RwtciHNZJnzz6W8E9uhpnrdjx14P7LzQCAAwMEA/7dnDeXtKsoY+8Yl/5PqzvN63DG8L7Gt3klqpCW2798CRwD5x5FBgF6bpRwAYlnGMS+bUZz9DmvIHfvjdga0Uq5z+cP5KZeE0x1hTP/FIVLKfyrRnczmxeY2PToTHvhT4J3QPDw+PFoG/oXt4eHi0CFaVcoEzuFp9l8kkaYHbb7srsPN5vt0++DqzX5qhVWmlWYYmT33l0cDOxEhpzEvopRkoXV3MZlCaZHSMGRYayTZnuSxWVabQN+XDQ8ziePvb3xbYb37zWwI7V2A4fv993xbYr7/OkBZAKB5Pd/KYOnt7FhzHakCzl+Jxefufob837bgmsE2yTgBgVkL1dskCSmd5fAmhMcpFhuaVMgs0pieZieGqUuAkWUad2V5ux4WzqIplzsNKkdklJ4+yeMdBC6S6OT4pRMp00xdHDxzk9ouSzeWaUmwkA0IrMU3OrdQYwRpzcrEimOXGvldIubz00guBvf8Ai35CGWMAYpL90dPLc5Wb43nOSaFXNMp5MZfbH9hnTpNui4B+3bKNlGVKMm+GBsNZI/fcfl1gHxCa7ZnH/iWw77uFtM6u65lxVhbOpSznPxbnPSEhdNn87GRo3y+/wvNz8jTvRy++xEQjk3Sr2CXUYfondA8PD48Wgb+he3h4eLQIVpVyMWMGwFmhNG6++ZbALhWp3+EkDM42qaHl5xmqdXYwxJqaOBvYYwWuH4kyDA4FMhIipVKSbSPZGvN5ZrykJZwGgKRogKSl2KkgWTlveyuplfe856HA1iycsrwpn8szVNu6bUdg5+SYAWBunm/EXYTrHzsRzthYTVTl7EaE8hrasTOwN2xmoU6hqedymxZ1SCbIlITmszna87OSTSTLp1MM2Wsl+mJ+huc226mUDmkVAIgKTaYyLxWZC/Nz3Hf7BgrhuRTnQUqKzYqOl9voSfooNxMOza0qFMwixSzRBYRTVinJBeNSzNXfTX9tuIMCV64Wztxpl8yr9nZey/sPkoY6fpJ0iq4ek4ye7h5Sb0XxfblEvxwf4XbGz/J+AADlArOR2uOixVNkRt2hJz4Z2Da5L7AnZiXrTgRttgxu4vJyHY+MchwA8NrhE4H91SdfDux9R5iBl+0mBZxMXPzt2T+he3h4eLQI/A3dw8PDo0Xgb+geHh4eLYLVrRStlDA1VeeRBgdYcffq3mcDOxollzkrnFW8SeimLCk95QLTl5Jt5Cyni1KNV+KhasqRSGtDCj2xcQMrylyN2xw926Q2KpV8qRg52R/+9z8S2D/4g/8usPVdwKzw7DPz3Pn+18mvHj9Bca54MpzGlC+RS47keVBdUmG52qgIjz24ldzi9uuZChaRat6p8TDHme5iKmGXiDhNjpK3nZcuNO1ZcrPxqOqIc07UJFXRmaaFcZnBTWFd9orMqViN290o44Pw43PiS0twHrS3M0Vv563cR7qD5+Dgyy+G9l0QnXVNadS0zKSIj51LpV0sbXa5EYtyDkuRN6RQF/Em/jeToS/jca50/W5yxtdu57Gadi8SHfmIfP7iC7xvnJ1gKmtazvnk4XBfiKOHmPp7626mEG/p5TUTrzClcPbgM4G9YzPfeXX2yzVWIDc+rym1hXDqpnXzGi3t5HGXckyxRSfn8/DmbYH9uc99CUuBf0L38PDwaBH4G7qHh4dHi2CV0xYtSEGaETEjOBXCYtioAj+pVLiiMB7n36UiQ7XZgghYifhVZxfTq4pnuN1YlMskJFROpHhqBjaQOjgj4lH19bncgw8+GNjv+qF3cexp8joFCcNy8zzugtBDh09RXKgsIff1N9wc2ndBWld1iOhUpRhOb1xNpNNMK8t2kbaKtzFEnZeUwEJTkWS2m+Fym1Au8yJUpCJqHR1y3FLdOZ/jhjeK8Fkqw3ULkh5qUnUIACbzTYWUBjZTv32uRurhuPSurM1R/G1g962BnRGN9Q4Rn0qnjoT2XYCMS6ptk5GFNbjPXVOrRbmk06QFTDTQTXINm6/XnKTYRrXCtl22lSR/qUJm2nE6Lnr7VekBkO3hXDszS8pqIh9OnzxynHTmzVt5T+jOMu00LZRQu1BbaangjUojaqvyOs5EJNW2EqZcKpJ6mxZ+95otFIkrpDmmtraLp079E7qHh4dHi8Df0D08PDxaBKtMuUQQb4juTIq2d9Skqk8iJG07ZwhX8pUkZMnPM3ydnGNmjHSrQnY7aZO+XtraHk7f0tckdIomGfrcesvtoXG88Y0UFvuhd7H1VUREsSsVjq9UJt0zl+NYz0zQvukmUgQhQWwXznKJVBlif/nzbLc3Nn4Sa4X5OR7r4994OrC/vY9ZTX1D1BGfHgtrPj/zjecC+413Uys9K2H64DDXh2Q7TZ9hGOyk0recINUxtJ3ZNqU5ZheMH+J+ASAiNGBMMpM6N28P7KefZHbDqwdIxd18HY81leC60TjH1NYm2TlSUQsAEcn0sgjD/DahX5RcqQaa/Bcv5nQpOHaYonmbekmxDfbwmDo6wreWF49QYCst1ZBDmyiWNTYpGvRl0k5dHVy+rZ33irwInH3pcWa87HuNlCUqYfoxP8u/p2eYkWIxobNSvOZSGREJm+H8OjNLOkWFx+JC1U7NhTXhp2SditxsqtJ7YbCPlIslmQm1VPgndA8PD48Wgb+he3h4eLQIVpVyqdVqyDcyO7Srd7XC0KSjg1kOmzZtC+w9e24Mb0yiy5MnWOzz+nFmG+zo5tvjuRmGRb0iAPXaqxQHms+L3nRK2pnluP33/OBbQ8N45/d/Z2CH2lUJd+QkvCqWGHZVq6SNvvjFzwf21s1st9aR4fnYt09CSQB7dpM+yEqWy8zqqtyHUCrymHp7SY1kJVvg1Ov00dSxI6H1X3z8CS53gMf75vvYtmxANK6Ht7LYo2bisxLP/z994vHAvn2WYew73nY/l5+S4g4ApTxpq0RW/CoFM68dojb6iZOcI7EK6YKendcGdlcXKYlqjstct4fLAMBzs8ySKQstl5ACp7IUTgXza3UYF9x5Da+rpNBAKWkziHK4XeLu7fRTUjXwc6RZOoTmKgsFkhGN8HiR203INbZvLwuG9sp1de0WKQQD0JfmOvOSHTcjVGGIzqpyTpUkq2xsluPQngjxGM/H3HyYcpkUyqVQobN6OkjLmejIz881pYAtAf4J3cPDw6NFcMEbupl9yMzOmNnL8lmPmT1qZgca/3efbxseVx68X1sX3rfrF0sJzj8M4E8A/LV89gEAjznnPmhmH2j8/f4LbchVHcq5ejiUkoKeO+9l6Hv/G9ly7YYbWcTRIW3jgHDX87wU6Hzl6wyv80WGNZ/61JcC+7DoO0xNMaSNxFjIUpU2cINbmBXTngm/eR4ZEW3oQYaiWnBUkQKISo3jPnWCYf3jQrk8UeIy119LqqlYChdJnHyVWs29faoXX8QS8GEsk18V3dLSb2gXW80VpVDk2F5qQZfOhqmOG7aQThkZIy0xdoYZCZDCj1g7feaipHV6B1goMjLGtoQf+1dmA33H97AQbOM11OQHgMIc73eFMrMbio6+7OnhOT+bZqC+dx/D/1r8M4F9/83UhJ+YpYbN9Xew+AgArr2OWU6nXiU9lTD6vyCZEdWGhk2U18SHsQK+PYfvvX23/KUtGKUAKNakL2+SoSPUUFWzPaRYsCCCSwnJ9Do9Tl9s7uVcu2MXr70ZaT+YqoVpj6pcQ4WytIsTnfuoUqRCD83lSeW8dly020VjJytFhCb3qPr6pFBGp0mttHdyDm9sZ0Zd7uIZlws/oTvnvgJgounjdwL4SMP+CIDvv/hde6wlvF9bF9636xeX+vpswDk3AgDOuREz619sQTN7H4D3AUBbOr3YYh5XBi7Jrx5XBZbkW+/Xqxsrng/hnHsYwMMA0NPV6dBo0XTHLXcEy/zwD/9oYHeJloe2m2puaaWvolMZhr6xGO12oT0ScYY/4yLZKosgEuGbbicaFTfdQOrANXVWf/pZSp9ev4ehV38/r5eovPkulBjm7ZNu3yWRCu6QQqbZidHA3rqVrdsAoFhiaNiWELnYcFe3FYH61STW7u1hVkEiSWpk7zMsMmqLqC/DcWVCtFmcZBhEI3SUFuhoaF6WrAUr8PNb7uBcOzHOcLzoJKPAhcPjbA8zT5xk7uw/zAyU3bsov3rjJlJFL8ucOClFOBNHOKZilMf26ith+dztQ/RzRtoaFmdJOyXiQmkk6+cmErl8LZfF/KroSHLfVfFLWeioaiXsV80QqYgmSrnCz0uS5VKTPUcki2R0jNdJNMH51S3PihHhKiIWvm9US/zuzBjP51ROWguKFHI2y3OqbRD3HjzCbcqxpiULqr2JJpbpib0HSPu295BGautlUdrGjVJAt0RcapbLqJkNAkDj/zMXWN7j6oD3a+vC+3Yd4FJv6I8AONft+CEAnzzPsh5XD7xfWxfet+sAF6RczOzvATwAYIOZnQDwmwA+COCjZvZeAMcAvGvxLRDRWBTZznoYcue9dwefp0UrIy7SqHnRVv0WaVD5syhv/OfyDIu0W8xb3v6WwL7hphsCe3aGIdwXv/glblTehudyDIm2XbMtNIzDR1mYdOgQC2FUh6a/nzTE5FlSKGOjzHLZtZPhe4/IxnZ3MqtmaIhv9QEgleJ2TUL4pRSYLKdfFdpJpyxFEkkJS1U+NdsWllktVfidSGpgYpzv+LbfRBlhPdR0WjKfpKvRvfffF9gVodUKedInM5LBAACpDLMmojEeE4xZEz1ZbiuZZfi/UeRQh3qkWG2CmRGuzOOcHuGcAID9k5xvNcngSgltWKlKJ6MGveQaPMVK+fYcnj1EDRvNNovINdp8vep3UeM6CfFxUraVivPWlBIaY0K0UiKSYROXcxOL8vNo08UQM64/eob+f14yk/p6SHlu3kS/Ts6wmGhUOmjliyK9LLvr6Q5nhs5JV7ITI6T+7trMrKYOoZEmRkdwsbjgDd059+5FvnrrIp97XAXwfm1deN+uX/hKUQ8PD48WwaqqfsTicfQP1juLDAzxbW5J0jJy0iC3VpX4pUk61lSeVt6CJzJ83T2dY4i0cZAdTaZEt2OTdKD5+te+Eth338bMiHvve0NgxzPhgolrdjNc+uaTTwX2hg0sbDksjWlfe+WbgV2aFypnE8/HcF8P9yehZzTalOkj562ijYVXqXPNQpidYgGRk8yBTinQKMyT5ipbOCVHdW96u6l9slcKOcqS3dMt2UQTo8cCe2CYmSKdfTsCez7HzIaIaH5s2MDzDwCJLKkuk+bf1+6m3GtkklouL79I+dZjp6nrcvs2Zr/MVkkHlqY4N9Pl8NzOlzgvqpJoUq1o4Q7nRXyVOxbtGOLcziZ5HabjQrk0FdVEpNBIM1hqok9TqohWjWTCVMuktsoimduZIT3Rex2Ltp6Tpsu6HaAu4R1sVzJsTp7g/JqZFgnunPisyPlcEkqvJP7Lc6gY7A3ryCBKCjKe5HWS7uZc6+0nXdd8z1sK/BO6h4eHR4vA39A9PDw8WgSrSrlEzJBM10PvuDSRnZcwyhLMKNDmz9oBCABqNYbLUXkLPjhMmc7HPv/lwN44wNB8p2SUZCX5/4ff9QOBnXAM/7JC40xMhyuqt21maH/NNSxAmppmaF8tMWx74utf4+fSzLkkzYujkiGjhSWJRDgjJBrlGGu182QErSJipvoYInUqehwxKYBpYhtCRVhRCceHNkmY386sqFGRTi5IqN3XwzB2flyyBSLSOLyH26wlwlXMsTaZh5J5k6wxTJ8Reun0CPfRJ/Repo+ZSbMzXD46x+2km/xVlWbXVWlenZOCl1SVx5FsPJe5SwjRLwX9WZ6bnBTKjee0wXu4U1CpTBqjKPRgpSp0SoWfV+VZMy0Faqemqe8TkQKnb7+VtOj4CLPHXt7PLDQAiCe4TlwkemdmuN0OyVjqlAy8vKSwvOXeewPbRXhdfuwzXw3sQ6fD94q+DbzX9G/ifUobl586dYSfN+nhLAX+Cd3Dw8OjReBv6B4eHh4tgtWlXCIRZNvqIYy8pMdcgZRLIsUMD5PmudWSvD4GMCEFOuk2hjI9WSbzO8mG+Nd/ZmHcdulyUxbpy46sNO5NMdx59LHPBfbGzWF9haFBbmtoM+0NG1icsP8lanVUpFNTTDI65udJ0Rw7y9A8JdkhqSZxs4SEj9ohKRpdu99pVxX6TDIMIm3SlUWooniT7kxRCpDaujgXNm0TKWXJCsjJeZscPRLYB6dIxbS3swNUWx+lkDXbpq0jXASSnqf/iqLlcvgZyjO/9Mw3AjvVR0pv93UsXEtoFog0Ap8RHZFKE1OSiEioLTRKWeRlIcU55+RJVolxwTdeOx7YCZlrSaHLYtFm2o+OTid58WeS7fK5zG+R11aJmmPHqMNUy3Gu9XVzrvSInZsPF4xtkHvFm7+dxY1HDpOaKRWYjTI4wEyVPW+izHdHmveKUoXHfWaO1+HffOqLoX1PiJRvuzSfzqRIq/ZvZJbLyMlwwdlS4J/QPTw8PFoE/obu4eHh0SJYdcqlLVUPqywi2RDSTLWji6GkNlwtl8Lx5MwEMxryImsZl0O67667Avtzn/lUYH/li18I7Lk5hlf90uWmu5sh96vS1PjHf+onQ+MoCWWjMp+ZNoaPW4eY9XDXjQzHTTRo4lJgE3EqGysFGk1RbFQoFydxqRYjrTb0CSERE80OyUTShKXiTJhKqwlv0C7dj9KSjTRf5nwZ2s4so/lpFhbNSXFPucjPT50mXTA+zQKeiIXPWZ80Eq8JdfTyc6RZILobD76FzcK7ezgmJxksXd2kC8aiovujWiAAkgnVJeE80o4+JRmTNSia1cpu2tJHisBk3sWkmEizSQCgKpRgoUifT5d4DZyWjj4T0kksJdkoB0eoIzMvhXUluZbSGY4v2pQpslMkqO+6mZ2itmzkNfp5oViPHqXM7ZYh0nX5HI+hIrO+byOpt4Rk7NXXIf2TlnGdOsUMqZhk0szkwnTRUuCf0D08PDxaBP6G7uHh4dEi8Dd0Dw8PjxbB6opzRaNBV3itasvlyGNHhEOqiSiP1cI8Y1GErV7b9xLXuYFa2f19TCN88MG3BfbZszcFtjLznR3kzefmWOVYkirM5pRAeRWAnPB+8zVyehHhDzMJFSPiMUUd9yEaRzDtqo4wTM6hk9/mSHO7vlWEvg9JJEUbXd41uJA4U/jdSFR6AtakWjcpFbMdUvWbSJNbv+E2at6/8hSF1gp5cte7hrdxTC+8GtiHDtAGgInD/LsmPG9E+NyBrUylPCZVgakNrBju62UK3Zhy5eJM13QOYipkJS36opLra5K2aI1zpsJTK4mctHHLCe9dqnL/eUlFBoB8nn/rvNd3UBOTrNY8e4Z647ft4XlOSSWyFP3i7AS1zafnZftNOaE90l/ApDI1LVXYvRs4vyzGz6dE31813adneS+amuUxJJv4+4IIffWIaNvO7axcj5e5rUKZ+1sq/BO6h4eHR4vA39A9PDw8WgSrSrlYJIJkI52vIoJHSrnMi4Z5RXShTx6hpjgA/OsjHw/so/Ld2GkK89x3z7cFdpd0o+8fkGpUSfWKS2VqUio0Nw5SK1vHDQBl0UUuCt1w+jjT0rqkMm5W2upFaqLpLixJWWgWrRRtTkuL1rSVl4gORS5e1Ge5MCHVkN09WjmoFIG0LWsKSyOS6tjZxerNZIrpe9kOppdOztAfX/3yK4E9flwokBRD3f5hUjfD197J7Xc8odHeAAAgAElEQVQwzAaAqVGmPZ6QKsI5ybJ8+SukZeYeZ3rbf/4tpqZGjP6rVrjy7AzndqwcpshSMl8qjvRBSmiBVFzOW8P3kVVKW3z0m/sDuyD0S6nEsc5OjYXWSQmPONBL2qNT2i12SpZf7zb6oz3Nde+8kfSEOW27yHM4cobXYbEU1mUf3MhU2FKZ1brlCudIMpRyyTlcLPI+lZHrsl3aKLalacdEVAwANoo++tFTrAJ98mnO2+9+gH0YNksa9VLhn9A9PDw8WgT+hu7h4eHRIljdkkKzoEywKl3LJ6Xq8+D+1wI7N8Ow5OtfZnUnABw+yOrNrh5mOrzwPFu8FYQC2bqdbcg6uxjypaWiUymXfJ7h4/EjR7i8aHEDQG8n6ZuUUCVdUtlYzjNUG59l2O3KpGvakgwNVQO9LG/pa03qSyru1VYRGqNw8RVmy4VnnyE9cfOtbAvWfa1kF0j1a7wSphtMu73LeTDJfnFgSHziKOfIn/3phwK7PEuBsx1bGWZ//sucX2UIxRYNn9uq+OysdIcvFSS0n2aYXpGw+/gpUoDbmWiFpGQ4qeBXLBq+DGtCH0Qkc0UJlVpV6YaGHjpWR51rYpJURTrO8XWJENnm7eGWfp2ioZ6UdVTQC3JMZbk2otC+CHKu5DyVJGNlZoa0X/+GMG0xKOJXekIjCV7Xk7Pc34iIAKr4XlVE5BIpzu1ihVRapi1MJ957+7WB3dHG4/j6Uy8E9of+6fOBvWvnClAuZrbZzL5oZvvM7BUz+6XG5z1m9qiZHWj8332hbXlcOfB+bU14v65vLIVyqQD4j8656wHcA+DnzOwGAB8A8JhzbheAxxp/e1w98H5tTXi/rmNckHJxzo0AGGnYs2a2D8AwgHcCeKCx2EcAfAnA+8+3rQgMKauHuQUpGtLQZFjegH99/zOBnWp6Y3zjDXsCe2aWlI05Zsm8uo+hzMgJdmhPiqhSRML/moSsk9PczuhJFjl0S6EIAAx9D9vWvfC1xwL7pW+yFdWb7n8jxye60PNSsFKRjJWyLVwY1CaiQwBQEcolVyFFkGw6VwthOf2qOHaM2SV9A6Q6rr2W2QlKDMTi4bHOSkHKyCjPe187CzH6JaPn9PEjXLnCfXdnpb3YWVIEswXSJ5JkFBLEAoCI+CliDK87uxma91/DYxq6kcVq/YPM0KiKkFhOMrjiCW1zRnoOCM+RilCTWiMTj6dkmcbybuX8qrjjGtIpOlaT4riOJmoSUhhYLvGcxKAZT5IVJdSKFtCVirxmdJ7XhD8pCnWzeQdpPwA4NUVqZkTaBp6a4ZieeEnaGkrbvyO55wI7I0JpHRkWJI7Pkobr6gr7NRvj2PdsI50y1Mv2ec/spfjYcy9RSG6puKiXoma2DcBtAJ4EMNCYPOcmUf/ia3pcyfB+bU14v64/LPmGbmZZAB8D8MvOuZkLLS/rvc/Mnjazp6dnlryaxyphOfy6cqPzuFR4v65PLCnLxcziqE+Ov3XOnavoGTWzQefciJkNAjiz0LrOuYcBPAwA1127y2UbtEFBMjE2DVNnOC1ZDhOi59DfH37jq2+yJyYYOjl5290pYZ/qwuQkgyEnmi0F0ZWAhPVZKRZIxsLFG/qS/uzY6cA+I53Hn3qCGtpl6XiudSBV0XaeF32MmBTaxEphd8XjQtNIuFucX1qWy3L51YwCG297K4t1iuU5XV5sUkquSaFGtVw0G6YgWSFaoDM+ymyn++7kPMqK5s7EKNedkIyVISkyqYheDwDU5Hxm25kJNSO0x61vf3tgP/B97w7shHEezZ1k8ZE5jimb4dxMp8O62bWqaOxXeX5MMoJqMl9qtfoy587xSvhVkYny3DgsTA/m56ZCfzs5v6qNX1WqRIr22iTDCaJ1Y6LvE43yujwttNoJae93ukkO5bkDzEA6NsJTUJR9lMqiiyRFcIfP7uM4ZPmECPxv3sZ2hz/90A+F9j0YZwZMrcAx9mc4vx68h1pUt+zcFthP/+HfYSlYSpaLAfhLAPucc38oXz0C4KGG/RCATzav63Hlwvu1NeH9ur6xlCf0+wH8GICXzOz5xme/BuCDAD5qZu8FcAzAu1ZmiB4rBO/X1oT36zrGUrJcvoZvVW49h7dezM6ccyg3WkVlEtQ1EJYEzz9L6q4qtMzgLkqSAkBZMjySQj2kO9mNO5ViKBtVaVGRl41IRsKsaMoUJbw1Kdrpbnp7n5thZsX0OEO4TIqUzewUl4kLpZCQTIeitOXSFm16DPF4uFDBSYZBQrJFqtWw3sxCWE6/Ku6SkHFainsiUrSlcbyGqwCQk8yfqLSFG97CUBZCe2kmjW1hG7FYgeFtWnzf3zUU2NkUt18shWmqZIrjTaUZEsekEG24k3a7+LtWEztLqjAhx6MFNVUXpi20hVqlyu/yM8yg0HNYaFxTDm7F/KpQvZ1oVCghoV/KlfCtRemReEwziri+qj4r9RqTVm6j07xOnnyJ+jlfeIbU1uFxzrv5k5SzBRAiiJROicu1FFdNbMk4S8l9Ztc2zqOedtEHGuL95K4920P7rkyRGp4e5TxPiA5wvshsG2EElwxf+u/h4eHRIvA3dA8PD48WwSq3h3dwDTnQVIrUxZzoNhx6ndKcJuFmQuQqAaCti8n8HR3clknInkyJ3KhIj+qvmNITup1yVTRUuEl0ZcPFPbOTpFOK88zq6JWigop0ctG39NqtJyvFJUnRdakJtRRt0vyICQVTlcwIpXJWGybZJak2niulFUzCbNdEN2i3nvExdhrqHmUGUTlGP91x932BfSjCcPzkyyxK6+ulAztFe6cs0q8zTSm1Go5n5ThUPyQmWVGq1xMViqAk2TmnTzLzSaVfy9VwNy5X4LwIUYVy3srS9edchpRzq6PlEhGaJSZdlCJCVTQXt9VUdlq4Fc3wKcv1MDJFX75ylMU2T+8jzXL0NOmUeSlQgpx/q4reMYCI+K/mRPq6ItSR+D4tGj+3794W2O/6znsCe0MHqbeaZPNMHNkb2rfTTk1yPiwunctUqsbC2U9LgX9C9/Dw8GgR+Bu6h4eHR4tgVSkX51wQauSlsWpukm+lUeVbXk3qGJ8gtQEAhTmu3ylZCKl2Zrkslu2h0pf6xl11RdokI6EQlWwSKTIBgEppTv5gCBeT7A19+18qy76lM4pErohGJayX6qNYNExPREXvIi3NksvVcJHMakKpsZrQLwXpZqN+sWT4mSIp580JPRVR3Zs5zpfujcwk2HU3G4GfPk19n+TZI9yOhMRpmTdtbWG/KpRWiEYkgURC6JOHKMu7becuLl8l5aLhfqjhcySsI5OTa0N9rJ2odBhwCxf3rBSiQkloPo3WIUWaCo6UWqtKgVVNju/4GH32N59+KrC/+RqLwcpV6cwl57BaI7WiXcWs2lS4JieuPUvqbvsANaSGh5gtdeI4abI3XMdMq2v6hFItcD7q7grT4aqmmNC+VaGTZwpcTu9H8YSnXDw8PDzWLfwN3cPDw6NFsKqUS8055PP1EDQ+wQyG/S9TltIcKZeIZGuodgUAxOXvorw1FzYlRK1UFqFfojHNFJGMEskuKMv2M73hvgAJoUHiGnIKdRCNSBFUmvuryPhi8jY9Ka+6k0IDqQYGANQkvpNdwKLhAqTVRE1oCKVMQuc5FAWHMzOSyj1J8+TyNDMaMu0L92YoQgp9BtmhKm4syLESbYgEajwePreaKVQJTSqe6HyedFs6wmVmRyl7GimRCtBiolJJaLVYeN8qFV0V+iAh4XhZxpFqjHW1mkRrNo0WA4VZoLBfIzH6puJ4fM8cYDHe154nbfXCQdIsuaLoAKkMr0gtK62pXZ6STYVrWdGIuf9OFsG99VZ2I1KZ6s9+WTqMSbpbuSqpb0LjaScpVw2fg0JefJleuABSr59Lcad/Qvfw8PBoEfgbuoeHh0eLYHUpl2oV83P1Ao6MhDWFHN/qJ0SnIy6Nd5OpMI2QTTHsPjrGwgMNU7QjkEpwqnRpNdSYVkIniMyt6FDkZjhWAChNkgpQzY9aSbN1OPa2jqZOLg041ZcpchyZpOiINIXmyTRD1/k8Q8NLeTu+XHDSocfJ84LqcSSlqKwsmUFAyE2h4p7iJDMgCinOneygdEKq0flDw8xIyM+TAqnOSUgsNFCz+kk+T2pmdpZFR2nJ4kl2CDUySwpx7DQzIzKyj4jQhNrpB03SvXEp3HGiKVSW+RyLC93WmBe2SpSLXjOaaQKV9LXws2JeaJZvvHQksD/x6JOBfXiE51lkU7Cjj/TE8AALw/SekJF7hcm868hwXSCcfVOc5/72HuD17uKS8ZTkXI2n+HlRfBE3GewihVb1DctmE0r3SSGhaOA0d/NaCvwTuoeHh0eLwN/QPTw8PFoE/obu4eHh0SJYXQ69VkU+V6+q6sxsCz5Px7WikMvnRdO6Ixrmo7Zv3RLYJw8z3amkutaq27yIblFcOM6Criu8twp7JSPhU3bi6JHAVg4zIalnqcTCv5taVZnPSWqdpLeZpCqWmlIvU3LeIiVJmYytjkjTQohWJO3UeA6jkKpY+TzWpPFeUvEkea8QlWOfnxwN7Ilj9H2uTH9n9LwJF1nUVEohNeNN7yeiku42Pk6+1IQn7uhmdeHcKN/juDK3OyUCYNoesSxzTd+fAEBMdbrFjkiFpeqQ5xt87mqJcymHrhXR1RqPqZYMi9h9fe+xwP7rf/1qYE/OSiWtpI7u3kYd+Z/4Xgph7RikKJ++eQj3O+B5qDalO2tqZ1Gql0dFa/6VAxQAu2kX39HcIC3hInlWh5blfVlNhhGNhSuAE+JL9XFJ5khNK28vwZ/+Cd3Dw8OjReBv6B4eHh4tglWlXKLRCDo76mlE6SRD7bwIbc3NMg1wosBQt62PLZ8AYHiY3eU1VCvMU+hGQ1DV2S5JylFZ0hM1FclJaJYR4auBDRtC4zh2gCG/VhSmJKUqkWB4NT5NkTFNQwxVJsrPrJMw1iLhtLSI43fVGEPLCsLt1FYTcccwNiZ69CXHc1OYk/S0JsolKvMiJufNypJeWqSPZ45TPz8v1ZeJDRRYSrYxda0kmvXxULZZeBzqy54epsrNSwrj2Gm2FOvoYr+wpKS5oqzpiZLWpwJq0fBzVUza9ZmmMKquvrRGO/fp6iQtAj/4G3+z4vt4bj99/Nz/OLLi+1scT154kSsI/gndw8PDo0Xgb+geHh4eLYJVznKpIT9ffyM8epqiPBruZrIMXedqpGLGTjKLAABefeWVwL7ppj2B/cQTTwR2qUzqISZVW73doh1e1vZf0iJKKvEqooeezoRb4SUlfSYvVY+6WQ3tO7RiUrJnVB+7HKJWJJOlKaiulESgSaon42vYgi43z2yB9gyzQFR0q7aIwBIAODmHqQwr8zSJQeW4K0XuLyJZC3NnpSpTO85LtZ9WaLqmykat0uvqIuUSEe3ymWlmOlQkU0GroJ1eYbJuRLTNY9Gwv2KyXKm48JyKSSbUuXnUTMl5rD9c8AndzFJm9pSZvWBmr5jZbzU+325mT5rZATP7RzNbu7uIx0XD+7U14f26vrEUyqUI4C3OuVsA3ArgHWZ2D4DfA/BHzrldACYBvHflhumxAvB+bU14v65jXJBycfVUkXOpAfHGPwfgLQD+fePzjwD4LwD+7HzbqpQrmGh0ct88SPGknk6G5vl5LehhdsLcXFgU64WvkVq5ZhfbkHWKFngqS2olJlrlKUn4T0Q0i0AKfUQUqTjL0Pr04UOhcWSET5kV4Z+EfJ4QuiEtBUehQiShSbQgx5QKaK4zMMlsEbohUi7jQlhOvypKInaeL3Ac6U7SENJ5L1TcAwBF1YOWApZQgYi0B9SCoEhKRI6EnqpIQY/yNdoC0FWaClCU3pK6n/ZO0i/xBOkbLQwrCBUGybQqVaTgRQqcXBOVVpPCGJ0jSg/OzJCq6uioz3NXcyvmV4+rA0t6KWpmUTN7HsAZAI8CeB3AlHNBLtoJAMOLre9xZcL7tTXh/bp+saQbunOu6py7FcAmAHcBuH6hxRZa18zeZ2ZPm9nTufn8Qot4rBGWy68rOUaPi4f36/rFRWW5OOemzOxLAO4B0GVmscav/iYApxZZ52EADwPA9s1DrqehRV4RDXS1M/KGPyOt2Db0hAt6VLNl6hj1rgfaGNqHWjvJ/K1IUYdJUVI8y313ijb67LwUODW11mqXsL3YQYpIC2YipgVO0u1dwulQEZTqjZxH41oLUFSH+WJzHS7Xrybt3pNJnnOlCEx+zOXwEIuGp2BMzkNVinIqTmgMocmSopOTkPOhlEYuL1ossm/NMsoVWHAEhFsWatZJVOZLh1CFuu9SnseqWjUm21F/R6KLP1clpE2ea5O5VhQNlHP6Qk1zZTn96nF1YClZLn1m1tWw0wDeBmAfgC8C+KHGYg8B+ORKDdJj+eH92prwfl3fWMoT+iCAj5hZFPUfgI865/7VzPYC+Acz+20AzwH4yxUcp8fyw/u1NeH9uo5hqyW5CQBmNgYgB+DshZZtQWzAlXPcW51zfRdebGlo+PUorqxjXC1cScfs/bp8uNKOeUm+XdUbOgCY2dPOuTsvvGRrYT0c93o4xmash2NeD8fYjKv1mL2Wi4eHh0eLwN/QPTw8PFoEa3FDf3gN9nklYD0c93o4xmash2NeD8fYjKvymFedQ7/SYWYfBnDCOffraz0Wj5WB97FHq8JTLh4eHusOZnbEzN621uNYbvgb+irAzC6qItfDw8PjUrCqN3Qze4eZvWZmB83sA6u578VgZreZ2bNmNmtm/wggJd99j5k9b2ZTZva4md0s3w2Z2cfMbMzMDpvZLzY+39z4e6axXgHAj5tZj5k92tCjftTMulf/aFcGV6JfFRfw8U81xj1hZo+Y2ZB89x2N45o2s//bzJ4ws1fNbF9Da/yXGsu1pG+vdL+eQ+Oa+3jjWhw3sz8xs51m9oXG32fN7G+lgvZvAGwB8C9mNmdmv2NmX2wJvzrnVuUfgCjqqm87ACQAvADghtXa/yJjSqBeOPEfUJcZ/SHU2xb9NoDbUVeru7sx9ocAHAGQRP2H8BkA/7mxjR0ADgH4TtQr9f6fxnZ+FMB+ALcB+H0AH2js9wMAfm8tj72V/XoRPn4L6sUjtzf8+r8AfKWx3gYAMwB+APWK6l9qrPdfG9+3N3x7Qyv69kr3a9M4XwDwRwAyqP9YvxHANQDe3vBrH4CvAPhjWe8IgLc17EEAt7eCX1fzxN8L4N/k718F8KtrPBm+DXWRIpPPHm9c7H8G4L81Lf8agG9v3OSPNX33qwD+qmH/F7kxfLIxsV4DMCgT6LW1dn6r+vUifPyXAH5fPs82btrbAPzvAL4h3xmA4wB+Uj5rWd9e6X5tGucYgNgFlvt+AM/J38ENfYFlr1q/ria3O4z6BXEOJ1C/Ma4lhgCcdA2PNXC08f9WAA+Z2S/Id4nGOlUAQ2Y2Jd9FAXxV/j5uZttQfzp/EsCAc24EAJxzI2bWv5wHsoa4Ev2qOJ+PhwA8e+5D59ycmY2jfkxDkONyzjkzCxrbrgPfXul+PYfNAI46ar0DABo++J8A3oT6U3cE9U5N58XV7tfV5NAXUnVd65zJEQDDZiHd0S2N/48D+B3nXJf8a3PO/X3ju8NN37U75x6U7UQBfAzALzvnZlblaNYGV6JfFefz8SnUf7gBAGaWAdAL4GRjvU3ynZ3728yyaH3fXul+PYfjALYskHjwu6iP92bnXAeA9yB8TN9yLK3g19W8oZ9A/df0HBbVZF5FfANABcAvmlnMzH4A9YYAAPAXAH7GzO62OjJm9t1m1g7gKQAzZvZ+M0tbvUPMHjN7Q2PdCOqh/t865z7e+GzUzAYBoPH/mdU6yBXGlehXxfl8/HcAfsLMbjWzJID/DuBJ59wRAJ8CcJOZfX/jZvFzADaCP9St7tsr3a/n8BTqP74fbFyjKTO7H/Wn8jkAU2Y2DOA/Na03ivr7AQCAmcXRAn5dzRv6NwHssnr38QTqLwwfWcX9fwuccyXUX3r9OOrh2I8A+Hjju6cB/BSAP2l8d7CxHJxzVQDfi3oT3sOov1j7fwF0Np7k3glg2jn3h7K7R1B/sQq0lh71FedXxQV8/BiA30D9Qh4BsBP18cM5dxbAu1B/MTaO+kuypwH8GIB968C3V7Rfz0GuxWsAHEP9h+hHAPwW6i+7p1H/cf5406q/C+DXG5lo/yfq71Ouer+utnzugwD+GPWnnA85535n1Xa+SjCzN6LOpb8Ethf+NdQ5uY+iHu4fA/Au59zEmgxymbFO/BpB/QmtF+vEt+vBr0BrXbO+9N/DYxGY2XeiflHnUQ/Zfw7ADuecb47rcUXCV4p6eCyOe1HPxT6Lelj//f5m7nEl47Ju6FdLJZnHxcH7tQ7n3H9xzvU2Mpjuds49udZjulx437Y2LplysXrPwv2oJ+CfQP0lyrudc3uXb3geqw3v19aF923r43IKi+4CcNA5dwgAzOwfUM/uWHRymJkn7K8QOOcWyjMGvF+vapzHr8BF+rY9nXC9HW3n3Z9JOvelTAInqeERI2HgXE0W4pa1mkD3t+hzqTWfDu4jFo8HdjJJu1wqiV3kphbdhYkd+maRNYDFztah09OLrXDWLaGn6OXc0K+WSjKPi4P3a+vionzb29GG3/zRNzX+Wrgmx8Abb03uqq7pRhqR3/xajetUkAjsZCLJ9Ut8VaE390iE29VbYrlS5fYjvGnXLI4QooEuG/o3DgT2tm2BJhvGTh4N7JEjR7hqhOPQo4vLD0M0GpWxhhntUG1bjeNVluRdv/cvWARHF/tCcTk39CVVkpnZ+wC87zL247G68H5tXVzQt+rX3vb0aozJYxlxOTf0JVWSOeceRqOdkw/NrwqsuF/b29sX/a5SoSSHPslVq9WFFg89EemTTirFJ7FMJhPY+oQH4/bLZYbZzftebH/6BKb71nVdiC6Q0FxC/1otfJ9V+kCfTvXcLLS/+fn5BccsuKBv1a/b+ztdtFr6lrHrT0C0xjFVIzw3paan0xjK/E6epjuGdgf2TXc/ENiTExzWyy88E9hHjhwK7AOHjwT2XInn6YYbrw/swY3DoXEMbL0zsG954E2BnYqMcR9HXw9sq3LctgivoySX+qvWFKWYRg6XSVUthsvJcrkqKsk8Lhrer60L79sWxyU/oTvnKmb28wD+Dawke2XZRuaxJvB+bV1437Y+Lks+1zn3aQCfXqaxeFwhWGm/JpPJRb9LJPiSrFxmuFsoFALbviVzoQ6lQNJp8r/60iq0qunLtvC2zBajU6oLLqNYjK4JpQhLnN788qxW43LVKm2lexbbx4Vwcb51qDUolUXPuZyPmlD0zaNzi7xQ7N3AxI2t190R2AOO72pPznJO5OKDgZ0YujWw9x8V5qi9i+OIkm6r729jYGfb+N3eZ74Q2GdOneQyIVpNfS8bXYRuaz5nIS9HlH5bPvhKUQ8PD48Wgb+he3h4eLQIfDd6j1WHUgfN0DA1FuP0VFpC6ReFUiua5RKiNCS+1c+b+yMslqni3MJZNYsdgyJM3dCOoPl8LCFLZgF7sf1eOhxg1YYl+d+afaS20EjVpnNTEWqmIjTS3NxcYB87fFjW5zlJVJlJs11yx4uS+TTQTypm7CwzVgqlMPkzP5sL7BMHX+M6R7lvlFlMFI1wXlT1HLiFz0H0PD4IzZdqKJVp0XUuFv4J3cPDw6NF4G/oHh4eHi2CNaNcfuVXfyWw5yIMncpguPPK088H9s6tO0PrH3v9YGDvueWGwJ6Ypv782HG+rX739/1AYCez8nZbChW6e3oD+7n9zwX2pz73mcCOSqkyAMQcMzaqBRanpNqlsGUz3+QPbGKf2cmE/J6+xv618b7uwD6b4/HMHePxAEBsgNuqSV1MbYoFJqWjQV9jtGc7AABToxfslbuiUCrlUmiCfH5hBVsNaReja7SMI8T8NA1Di3gWQ5iKEQolROVI5keoUEq1SpoKUBbJgNFtaaHVSlEuDg7VxsQKJehoho0URVXl+bDaxCJUTbJh5MsjQrPMRZ4I7Ny80GplzueBgQ2BnYhxf/292cCOxDimYhM7V61w7CcP89qvzM8GdlLPuRxH2JcL+z5EpTU9Lqv/I6Hz6SkXDw8PD48m+Bu6h4eHR4tgzSiX+29l4cDkGUpGzlVYTJLazayF73jrA6H1P/hffzuw2yMdgX3HvXcF9t8f+LvAnhhnyHfdAIsLvuNNuwI7m+F2oo6/dS+8+mpgz6TCmiJukm/NYwWuU4kzPCskyYccyrFxeLbGAoiOnBTRJBj+tUkoWRwmFQMA5Qzpn2ie++uck+KGOGmkZLIuhTobmcFaYjEaoRn63WKUhlIjurwuE6ZfJDskomFzOBuiudjnQtDxLaY7o/swKWqqVRfXclkss0Wx/Nkt5wYCoHF6qyGKgYtEJXslAs7zSNOdpRwVLRfJKIrHKc87OEDdlRlRWywWaeeEtsgXue++XtKa8TLPx+DGntA40gmhZua53bLj+CpyHDXRp3FCFVlI3ld2EDpPi6sthqR/PeXi4eHh4dEMf0P38PDwaBH4G7qHh4dHi2DNOPRnJ14K7Mos05K6usiF5SLkp4+NhBt2JJPktqbPnA3s4wmmQTlJazpyltz1icdHAvv2G68J7O4UOfTT46OBnb6W3UzmMuE8qMJrHHu2xFRFFVVyUXJnUxXydvEJLpOpcKxnj1FoaHqEfJ51cPsAkIiSQ7ci99EleuOTcaY9TsxPAQhX7a0FlJ9urhpdPMWQy6m4l3LoKuyltm4zzKErD9rEd6p29SJCWItx/CoqFk5p4/JRmRMROw/Xukhq5EJVqsvNpddqDrl8ff6lJLU4rvx/SOObiFbC56wmeuihdeQ4xienAtvSvDVtHN4U2IkkRdfK4vuOTr5f2nPtNi5TDl+vOc14nWaV6vheXsdOtluKyrsb4bpNee9FOjXpO5rm78Lt8zyH7uHh4eHRBH9D9zAPD+sAACAASURBVPDw8GgRrBnl8tdPfTyw45KqmC5wSNNTjI++9s3HQuv3ONIPp06yZdTB114IbMlewsv72MaqI8PfsXiBVM7gMNOm9p5iJerpPCmaqbHx0Dja0xxH3+Ytgd0bYTXqqZNcfybCY5pzpFP2nyYlNA+Gt22dDDHnc6SgAECyIVGOMsWz2MfUrJkOVt7GE42xTq1QmtsSEY2TPok1US7RkP60fsM/0mlSLoU8w+ZsG2mWTEq26xbWMK9Jbl0EzWmL/K4k4lkm24pq4+NQSiK3ExL5EpGpmlA/lerilIvqr9dC6W0Li3YtJybmCvjo1+sCVt1ZntsNPUw1THdx/nclOe8GYuF+pGmhmywu118Xl6uK/3JFOW+TTOPdtJHLb+xjSmJFUhs72zim0xOcHwCQznQG9vgpfleSFEhI9XcopTRUji1Vn7L9xeiy5u/Ot9zlwD+he3h4eLQI/A3dw8PDo0WwZpRLTyerNYcHqHGcP0Yt49zUkcB28XBX9mRSqgUdaYVMG8PjdnkbXxSqozzFytThG7lvJ4WY46cZ5s0dI2WCRDg8Ku3kStW0ZJrUGD4enWRoV+2RzuhVjrvWK1RDkfuoiOCXxcPCYDUV92pjGFyQ4453M3y0c2FiZPlCvEuBUi7RaPiZIgLN/pCsEBV+SvE8tPXz/G8aZAgekayKhGSUqAjXVJnnqS3eRHtERQfbGOZHpAt8XITkKm7hcPpcCzcAcJL5Eap8rYYvw4oId4U0wqQCVfXJoyskzlWuASfz9fPy7BlJDznJ/WQSFHrrkGPd1hOu0Nw+TKojK9XPO+OkR7ZsIWXZ3skK5zbxdzpBarG7k9lc5RKzWXJzHFNPD8W8ACCdpaDd1KH9ga2nLirZcdUQ5SW02hLazjX7QzOnVupJ2j+he3h4eLQI/A3dw8PDo0WwZpTL9dHNgf3u7/qpwK5MkA6ZHGGBzZNPsCs3ABx+ndkszjHUKxYZBidrUlQgIVmixmVmR6kxXuxl+DfeKS2w+hk+Wk+4i3h1WAodRil6pfUMZdFnjpd5ymtnubzrkVAtTRqhcJIFD/EkaRUAKLdzLKk+ESfSN/MJydaYqoei7hI7xi8X4lL0E4s2haXCBsUkRC0L9ZSWdYbluHu6GdaXy1y+p4siaFWjX6vjPP+RCs8zAESFgikZw/yI0FXRmhQQKQUi46tWRdxJMnoqQr9Eo02XoVAumtiiXjOlpvjhsqK/K4tfeOf9AMLZIpM5Xj/7ToyJzQyw16uk+gDgtSPM4rqjnX7qm+G1W5kizblxK+8PWkwUkXNVE5GvdBeplKpkMlWK4cyw0yc5jqNHj3E58WXMOHeciHYpBRhOwVqYZmkWeFsxETXBBZ/QzexDZnbGzF6Wz3rM7FEzO9D4v/t82/C48uD92rrwvl2/WArl8mEA72j67AMAHnPO7QLwWONvj6sLH4b3a6viw/C+XZe4IOXinPuKmW1r+vidAB5o2B8B8CUA77+YHb/+ONvLHb7hxcB+8xu/LbATPSz0GU6E6Ya/P8PMk1OjbCXVk+Zv1FCWYV9OuovHJFNh/BCpm1Mlaknk+vkmPraBGTnR9nAo6aYZJtZmuI8TQvGMlkgjVeMM/51mqaSFCkjSLe27GHpaU6uy8pzoT0uYXxCdG9vIbIFquRF+RvIr5telICGZCrHzZbnI57NTpEfS0s6sQzThO7KcIxVHOmpo6/bA7huUOSXbfPX5J0PjyAslkpQQXnVXrMbjMKFynGRGRKWAqOo41qpkIqXiYY0e1VOXRJxQsVMVogPfIGPO0TDL5dtUPILd/XW647oBntuyUEJ7dg4G9j4p1Dl4klQMADx7iH9XY6Rc4mleZ6dOsF3ihgFSaX39tNsy9Gtc29qVSK2kIBotZ/eFxnH2BK/xiUlqQM3Oclubuzi+tHFbtahQYdpqTrYfnr/h61Upm6rqv2D5cKkvRQeccyMA0Pi//wLLe1wd8H5tXXjfrgOs+EtRM3sfgPet9H48Vhfer60J9WtfR/oCS3tcabjUG/qomQ0650bMbBDAmcUWdM49DOBhADBjDsPENGVdH/nEPwX2nhuvDexElBNqw262igOAH//p/yOwP/+JDwX29IlXAnuwh6FsKcGQOB1h6OvKfGNvcYZtXfMMj07lGZrHo+FJXpJ2bvleUjltKYaGtdPcbk3C61o3Q/Y2aZNWmiRdU4CGZmHZ29i4vIEXvZFZyfpJZvl5R2+9yKIUC7/5F1y2X5eCeJzHnYiFp6AGqa66cCEOJAOla5h02MAw6akDh48HdjnDsH7Lnj2B3XmGhzf6Omk/ACicZWjelhHNF20xVqZdEjrMid4LYjz/8xVpE9hDGmHLtm2hfc/MkMY7I2PUDK6JSV4/tcK5op/zZlEsybfq12sGu115gYwolbwdYm0P+q/he9YeCxcCHj9Bn58dZTbM9FbOxd4Mr6URuY6tRh/3D0hLxU76FSJXnc+J3lLT8BNJXn8Hjp0O7Fde4P7uuXlrYO/eRPolKm3xIhXRB5Lta81eM+USDRXKEVcC5fIIgIca9kMAPrk8w/FYY3i/ti68b9cBlpK2+PcAvgFgt5mdMLP3AvgggLeb2QEAb2/87XEVwfu1deF9u36xlCyXdy/y1VsvZ8fDe9iF5MThA4H91S98hjt4578L7NQgNVcAYHgH3+kkKixAeuoLDFeLBYZwnWmGThu7JdugwpBvxzDpntH9XPf0CcrzlhLh38CKZPMej/GN+FiZEe3O65lZYdPMFjg4xqKmghS2VNvZOSkl8rwpKbwAgJpJ9dI8KYK0FBZVpiVjIl23XbW2Yn5dCrSQprljkWpkmHRcT6dJdaUks6V3524un+a53Sjd3csprjujobIwRU1SLohJFkpvLzOTcpMM5ycmmb2kRS5Jyb6IJ5gVlRddlk2bGdbffPsbQvseH+c+Bqfo13yeIf8JyQg5fbQ+PyONc7mcvrWFdGIkiycu148wfdixkdcbAOzayut1tMzjmJeCsTGhYsq5KbF5bRTnuL+xFGkc1V+pyPw/epLbAYAX9jIjbrrEdc6IftJnn2dmzHSNGVJ3DPFiTyakmEg4k6hq+iAMC1EuK1Nk5Ev/PTw8PFoE/obu4eHh0SJYMy2X49L0OS16Cy987tOBfU0faZbKjbeF1i91MbzuGmQ4t/EG0iaaTdFlortRIB1SKJFa6d60I7Bzn/lKYKfyDP0jXfJmHcD8HMPHohSR5Dt5ajXUbu+Qop+USNtKBUm8zM9T3dxfqif8+zudlOISyaaIyXjjBVI2U8V6ZsRydki5FMRkrBZpygSQZ4yYUDPxOO2uHs6L/mFSLtPTpEAiQtc8+fjTge2kE85GqefpyISLe2IJFsy09VOC9egMs0vOnGImTUKkjTMxKRpqo/9KFfq1Tai0bEe4Cj8hxTYbBjiOnHSsisSla9NMnVaIxpb5crYL64+Ek0i4bLkSzsjKZHlM1QlSKHNS8HfL9lsDWyWP8yUe16RQiMmi0CwV0o8qeTubC2v09PYyS+a+QWZFTRd4Hb94IFBMwDOHeK/YLNlOW3pJi2o2ltKE33Lm5LIL5YUt4+Xon9A9PDw8WgT+hu7h4eHRIlgzyqVynOFxtxT9zB9nRsm//s2fBvb/9rP/IbT+6IuSYRClJsNMjb9RY8dYiHHrbdcE9pZNQ1x+ipoweZG23dbHUHe2wnDxaH84lDT5Lnua61ci0i2ph9RPSegeJ+xN9CQzMaKjfPM/PsIMoEh3uGORUhKJEveXkAa9Q9uYYdM2Xd/h0b3hbJnVRkLkc60p3oxLyBoXCiGbZQXLxgGGykN9OwO7OMvG3vsP8rx1SMehvjRD5VJ+VMYUvhQ6urlcWx/D9OlRUn3VAsP5cpF2Tbpa1YSUcKDDx0ZZ1FIskw4EgK5uyjWrDHAkxnm0aQuzZApT9eyQl555CssK59ikWmi6qhQbVWuiQWSkgYoWflaMJllo1yWNpTXLqXeQ53lgIzOLVPuno4PzINQsXJpEV0o8Z+1j7F4EABNTQlsl6eMdOziPDoxQdyZfliyjglCcIWpF9H1U9wdhhCSPNZsLywf/hO7h4eHRIvA3dA8PD48WwZpRLkPtDKmKExIWSVHGvTfdFNi33ErKBAA+8Vd/HtjHTzLUjvayYOnzXzsS2KfHGWq958GbAzsWYQbDGelmMtjH0O7wEYZglZPSLBeAbZEwqluaBqd5aueiDBmd5gWMiI7MqGi5RBhKJtukQ4s0mwaASp6h5bQ0LI53iGzwBEPGSqPrjDYrXgskJMyONnV1iS2SqZEWadwt20i5tGUZvu/cxbB5UqRR2zPXB/Zt99wZ2OY47178KgvaAKAg2UtdbZKRIno6PTGVsCUSotkSKYmujjQ6nzvLDJma6AkBQFoybqLS8SgussjtbfRxpFqfz5//zL9gWWGGSCMLKdwIWeSBZT7XJHWj0vSoWJMsroxQggXJhjk5xuuvBp7/VEqpFZ6r3l7pJCbZOLMzzHiZnQ7rFpUL/O7sKK/rtjjHviErXchmmAXXleIcTNSkgEhkjTUpKNLcJFoLi+RcNWu+XA78E7qHh4dHi8Df0D08PDxaBGtGuRREkwHGrIeeIWZlnBrj2/9P/PM/h9bPF5glEKsyw+Dk6yxYuu5aSu7edN0NXFm0HvJ5hoLjIkc7KZodm1KkX04dE/0UACMzQhf187uy6I1UHKVSS3mG0+6odFmRApT4FhZKRWZJs6Ry4d9facqD6W6G46UCjykm4WCpoZXhylLptBaQN/zNjXSVctECqGSK5y3TwQMvS8Pvjh766f43vymwNdTNSpieqEmo7MLjKM5yTnVI0VBUQvZOEYBpa+OYKlK8VBGhVM3EsBznTXWeGVsAEHGkZrSJdlWGqNkhHd19jc9I7S0HzCKIN2SgazXOmap0/IpGheoTHZPeaLiz11aRvT06KU3aZX4fOkpNpr5uyhxHo/SryNlgXm4hmazIVVe5zXiTVpB2kOrfwLmgWjDPP/NEYA9s4jIbekUrOCqaQLLNEMvSlOkTomMiokNjy/dc7Z/QPTw8PFoE/obu4eHh0SLwN3QPDw+PFsGacejz06xWTKSonRzLkrN6/BvPBvar+2kDwK27WeW1tZ+8eyVN3vV0kSlHiYgIAkkqU17Syk6PcZmjoyLqI9204tRmAgCU93J9t42/j8mdJMxKZVaj2hS5t7YMRZkKWzQFS9IKT3GHhZlwW6+8kIiJDNt0pTt5Pouz5CvPdc9bRsrukqCiad+ihy5Eo1aUFoQ8HT3NCs/N23kOkknytj09wpXLdpLC0RdPcTvTx5nmCABVec/Qv4Hntm+AVcZdXUx57WgX/fUCOeaKtEarTpErL0wwRe/wC0+G9t3Tw221baAQWVVS/6rC+UfOOXSZJbajsRiyDX6+Irx5TexIie8UKlLx2oswh76njWnKAwX6fHSO68xM8b3C3Dznet8AuWt956Ia9NE4Uw2T0v5xPhp+PzGd4/VwZpLv4Y4e2h/Y/VnOzzuvZ0VuOsl1I07fI8i7GOHTI+e50CLy3tAsuuhyFwv/hO7h4eHRIvA3dA8PD48WwZpRLjHRZKpI9VdWquTakgx9ppuqJGfzpFxOniGNEZPUtYyklT3+1a8G9hv3MI1wWlpgHT7OsP7kjGiVFxlGpZPhU7ajm2M8fIzUSnGUoWi0mwfbLtrXVdG9rhUldD3KULAzx9B/vikyiwh1gb3SvutGVrTNJ3hu3HBj+cMr0/5qqVAKpJly0bTFkIiXUDFzuTmxSbl0CNVUqfC8aZVjXNILi0Wemw39pFIAoEt0s/tEuOnO+NsDOyfd5fOTrMhtl1Z4E2OkcipSEarzrjZNfwNASaiAiIiGWYLHl59nyD87U6cVatWwcNzlIhKNoa2zfh40VbGqKYxCA8WqUhVbDafGtmtKY43zdluEVMmzB9hW7/AJph8npCp2/35SI4p3fNd3cXmhQPafGAst91d/+0+Bves6aul/91vZnW9+lJXnKRHnygito60SVUQuIvO5WUq+prrpIkrXXFF6OfBP6B4eHh4tAn9D9/Dw8GgRrB3lIq/kq2Knkqr5zbCkpzccEs/nRbBnniF4Z5TrJCT0zYkA2LHXSW/MFBgGnxqR1lXG/c1NcfvpnjD1k+jj3+0SOmVKDO0jG3hMs9IKr2YMS2PSPq04z7GWpGt83MLt79q7SS+lcqSLxo0ZOgmhoGYaGS9VW+sWdNpaLlzduFjLs1BmTET1pyWrQD4viSZ2XPS0y0JLJHuZpXLvgw+G9pfq4LlObmIW1SYRbds9SoGtvHSsT8hj0tzT3wzs7DTnY0loxvZoWCzN5SQbZooUpLVJRWKNc6qYq2eMLTvlEokina1TmzVp61YN2eILnVaVsOBYVf6OFSVbq0DKrCfJa+P42OHAHu8h1VEq83or5bnu0f1sMzjYz6ykHVvC943bbmUF6nW33R3Yo0JtnjjMitVbhyXjKEOaV2kSnZsx0azXNojNMIiw2zJejxd8QjezzWb2RTPbZ2avmNkvNT7vMbNHzexA4//uC23L48qB92trwvt1fWMplEsFwH90zl0P4B4AP2dmNwD4AIDHnHO7ADzW+Nvj6oH3a2vC+3Ud44KUi3NuBMBIw541s30AhgG8E8ADjcU+AuBLAN6/1B1XpeCiIiHHnBRlzJRo90t2AgAUS6QYBvtIS9x5E99cJyWEmxlkqHbiAMO5LX3XBfbsNoZRr43z1CRF4Cq3MVzcczrJ4qWt/WxbFwNDr6NSjRRp4+c2x5CsKFkZbbsY2pVPcNyR02Ft57y8US8Mc7lqJ3+ni5JdgHzjOGor59elIBrKBFj8Db9+l5KiIS3kWGxbKuwVi6qmOKmKmAg6tUd5zgEgluJy1bQIb4nufN+OawM7vY1jOjt6kuM+ymyNrFAEuTxpMSuH59T8FOmbbEYyd2rMuCiXuL/OdH1ORSO2rH41MyQSdcon1KResoZqIbZIfZnWL1CpSJu9hChsxXlOBqU1XUGomA0Z+n7TzTcG9sw4C8Nmj7/Kzc9KX4NtvL4B4JbtzHA7c5ZZaYdGSHO6KelrMMR5kcxIm0idUyLeFo/SVgEuINyeDrYyPQku6qWomW0DcBuAJwEMNCbPuUnUv8g67zOzp83s6YW+91h7eL+2Ji7XrxMzcwst4nEFY8k3dDPLAvgYgF92zs1caPlzcM497Jy70zl354WX9lhteL+2JpbDrz0d2Quv4HFFYUlZLmYWR31y/K1z7uONj0fNbNA5N2JmgwDOLL6Fb4UGmRV5Oz9fEM3oKH9vpkWfHAC2bmKGAmoMCLOdDNtqxmyWlHQI39DBdQtnGWrt2si347tv4tvwpw6w0ODJGWY2AEAyxXdLmX7qbkxPc7sFoZGsm2FbdY5hV1ISFEw0tKt50V3ewGMDgEpZVtLm5t3UzaiOcpmaq4eArhEar4RflwINV5tbzi32neq0dPaw6Ced5vmMLJL9kpCQOJnkOYyFMojOo8uuQuRFmWtd9HdblvMgO0TqLSfzeZ/o0cznSLlUm7JTctL2LClZVVGh8aZGROOnkdFTaVA3y+VXMwvOg55PLdSqSrGMc5pxFPZrPM6/Y3FpQSh67/29WizFa/eM0FZ33n1/YG/qYNZQZUq1Y+ijmfHwYZbneN72vsLt7riJGS87brgvsDfE6YuUtCJMSOZUbBGapVmjRf+20LP0KhYWWd2Tfwlgn3PuD+WrRwA81LAfAvDJZRuVx4rD+7U14f26vrGUJ/T7AfwYgJfM7PnGZ78G4IMAPmpm7wVwDMC7VmaIHisE79fWhPfrOsZSsly+hsVjgrcu8vkFUZOwq1oWiVF54z/Qzzf882fC8qaTp7lc+1a+uT5+6KXATsW4zLW73hzYw/18i/3Ms58L7Jnj+wI7U5K30FW+cW9PaOETMDPKMPHACa6PPoZexXau0xZj2FaZZAFJSbrMazFQdnBTYMey4cyBWI7um0hoNgv3VxP53XSmzonOWxRVV1oRvy4F4cKiZsqFf6fSPFcd7cw22LJ1S2D3CL2k8q3OaZd6HqZmvCRikvHiwsUdpixIhfOoMkcqoM5s1FFLMvzPdJJ7vv4N9wb2zDh9MTHLOVVqyniYmaO0dJvYmQjHW5YWdmMNvZhKubRi16tCqS09bZrx0py8pEU2sbjQXrEFZIABVGtcfmSK9FRMWIxOyVKKxUV+WiiXbhemPRLgHOnuIzW2ac89gV3Oi7R3jpkwqYzoDMm8jYiMr1JNSp2e+ySwQnSM13Lx8PDw8GiCv6F7eHh4tAjWTMulIuGZk7f8TrICeqS7e/40izUAIOEYfnaK5O6Zowxr24zUSiL+TGC3D1Pf4ZYH3hHYZ19+JbCf/v/bO5fYuO4qjH/n3pnx27Ed26nzDm0KadPSqg+KVFRRgVSxABYgARuQkNgCKxArkECCDbBDqlSkLJBKJZCo2HVRoKpKafpIQx9pkzaN3ThPT+yxx57HncNiJnO+e2s3phrPxPeen2TpP+M793Wur+f/3XO+88Kr7fHuo1asND55V2w/Tp051x5LYNvTGXvqfiJH3hd1mw5qyY6V5YKwTNPQiCSeiLooAdAdlu3Rf+hge7z0su17rmzTxzDXkgK0t14uLLOwxJL83eiISU8zM5aBtGOHyS8srSwvm4TFRRxTk3aeKHEKAU11y9X4OanX7FxXqjYuXjafj9UNCt8aeZNc+ilGt37uEVtnwSSaxfkzsW0vlyxmi0W7nqtsuVvhzvbN60vQ/bjyeWZPEo5L8zW/sCHLb2MTJp+N77J4T1DGS1CgTBGq2wnpRY62XUC8uGf0gP3t71i1+BfLls0yN2c2vlP99re7e5I6J8VUEjoHLLl8pBMRSy50EjpYZOTf0B3HcVKC39Adx3FSQs8kl9FhymBZMI+KSx+YtHL4i/e1x4ORNWsFgNJ5e/q8WqKpNnU3ueXAPttGzbICCkWbhq1UqCAhtGnz+KBllFTKJo2M98c9P+b22/T6DtrerfstO2Xt9VPt8fvkQaP7SBJaosbC79jx9C3aMmvjiSbR99sUNTdr52M4tG2E02QzPNf0vlD21egBXDwUhsGGv+PpeIlkiAZNXadDi2WJCnJGqGlzgbr+KHXbqZRZ2ogXrq1QAUqjbudzlabm5VWKX87Oc59YwdHamskFVfLrOfRpk/GKg/EshzPUladGHYFKpSV632JYaKV+fJwvzidD2rJBzIeENBNuaM7jRiMu//Brlrq4w09A14LCpI6pMcru4ibRZMmr7ONDUkeQyCAJ8iZ1jVDBWYG9fNSyqPJqf3NC+5Tj95WK/0CFVmG8UTY3teZ1BR2UyvwbuuM4TkrwG7rjOE5K6JnksmefPW0+vWySC+o2Rb3y7tn2ODcQf2I8edi6yNSUGjLTFLdWtwyD6TGTQ3h6vLRo026hzJmpfTbtOnXG7HaLpbjvhu63U3jyv7a/d0+aX8ynarbvJ6lAKs8FL7TeASogmZy2DJ7LU/En9jXKeqhctGybgftsWtm4aNseXGyudyUg+9IesJHnSvI1yxU8DmmqfL1BMgCskCSx+xaTPQJKsVi6ZtJbhRpMJyWX6hrZFlMxSiOycx6QHFKla/ga+ecsL9t6rl6x2Ac0NW8kso7y/RZzUpRQqdh+BJQtZdktnW/+bbu2fppKPJuFpZiPWytle3CGSOx9rlgiqZH+/GJ3BO4OROczKWbUY5km9n6OVnyI5NKFBbsu6nnqMAa7HlG16yjkgjbEG2VzY2k+b9rBsPk3dMdxnJTgN3THcZyU0DPJJaTpyNiEPWGOSjZ1vTxrCf6Te0w+AYDbjpgkIlQEcu4ds7p9f82yBQpHD7fHt991d3u8Z9TWO3vWCjx2HTYPjnrOnrJfLcWtpSuXbTq4pPb/8dzbZrO7o0JWrvP2+eianYOZEcviGThiGRoXilbIsjaY6AJzlnw+yBOjFtn2RshXJDfWnOZJ2NvGBVxMlMvFpTTObGFphu1zeYa6TJLLEFkkD1JnooUrl218labQJKsgimcQ0elE1CCPmMhiRr2SsUKSTemqbY8LxmrUGLpB2TZRYtv5vB1HnTJHwjrJBQFN7VtZFp1OclEoVK/v50YrXz9DQ5PeOBt0k4qNWb3ZoHHypjJ5aBFN7J8dD5Cj6zBqUPZZxe5BI0N2HYUFbvJNG6mZ/JJXksUSceXsGyGdRYPOfa/2b+iO4zgpwW/ojuM4KcFv6I7jOCmhZxr6lVnTmNmQKaAWYUod1mvXKLURwNxxM9K65xHzMp562Ex9lhes/dQI+WkXr1r62MLFC+1x/wi1OdttGv3O/abThh9Y1ScA4JJpckWqDFsmr/PBnFWg3pG3CtlzES9jnw1Im62RVletJlImi/bsoFqjitIXTNObOWpe8aN7m+lYFwtxb/luw9WhrI0DQD5veXqDg6ZZsnYaUaVrRJr2JHmjVyumiRYv2LVTXjHdvBCaaJsLEppvGBPRbRwzlbMXbOAVUUUoa8QNMqHj/b7eQq79mVh3eNJqaR+DHLU6a3TO3CmOtp8fBBvqvJv7Tsht6ziWMW09Jo/rDZeP7QV7tPMiSZMwenYnVO1ZIHOv2qpdLxEJ8hH9LYYN1s25mpSesSTyETk9NaSq0U565fk3dMdxnJTgN3THcZyU0DPJpVK26qoDBw/aLyhfrHjRunIn//MoGSOdPG7+33c+YCmJAZkWv/6atabbOWVT870TJoEszts0amTnIVvPqk3x58k4CQAqSzbVHpo2aWVl0abX5ciMng5R6lN+l1UzVq9aOmO4Yp8dDm0+Vs5RdRqAkb0Wvt1DVpl6Yc5S6NZmTWKYOdxsuRWEPQs7gLjMsnNnPB21QC3+hoct5ZLNuapVi321YtPdIqUOVqt2rup1Mk+idDihjvNJ0YI+AqF01Jjkwqln9FlOT4sot7EeKY1tRWvVuFkaKzyxVDeSXEKSXMLrUk6HxTk/swAABp1JREFU8xZVG6i3UvK4PVyB4sfyGSs/SYUmbtal6y4X233h98nMK+AxVxzzinhbyXPCEg8vZ3EqkGGYUvwCtesODRsHpJGySViU8EOPvaYi0qiDZnn+Dd1xHCcl+A3dcRwnJfRs7j00bvJElTzCpyasEzdqlqFRXrDqOwAIybBHipbN8sq//tkeD1JruqOff6A9vnbFPNfPv2/VoYU+y4Q5+9pL7fHEsL1/7yNfiO3HiReeb4+XyehriTrHDe01Y7DBBaoszdmU7zxMuikM2If3kFFQdSnehm8tpC7yOXsyP73fzlstsnNw4VLTmKpWj2fLdJscyQXJ7IkqZXyUy3ZO6nU2OrJp7eCAHR9njlQqZOYVsGzBMgtN3xNyRex3/L0nYOMnO48sKTRIUogoy4LbLkYk13DGSnMTXFXJ3uG2TI6kyVzjeqVoZyWXN07P4chXf9zRdTpbyw2/oYtIv4j8R0ROiMgbIvKL1vuHRORFEXlXRP4sIoUbrcu5efC4phOPa7bZjORSAfCoqn4WwD0AHhORhwD8BsDvVPUwgCKA72/dbjpbgMc1nXhcM8wNJRdtVkZcT5XIt34UwKMAvtN6/xiAnwP4w2Y3fOAzZkZ1/m3LZjnznplr9ffZ7h26/bb4Cuo2HV/88Kx9hmavDTIzCqmoAzQd52KPXbeagdfSqvlmz1+ycd9ukoQATByxVmKlf59oj5fJw2v3rjva43zZ9nWgRBLKoP1vvcy1Nv30NL0c//+7XDOpaoFMoK7O2memh6zQajXfPO6oVt+yuG6GAZJJkmxUwLJjh2UjseFVg6QYbl+HaP2sCjYGw/oqzkdfk0GWxnzMSXKhjAkeR7R8pJwNYavP5+PnQ8ngidNn2FiqQcuEjXxrl6WncXV6z6YeiopIKCKvAbgE4BkAZwBcU7vC5gDs2eCzPxCR4yJyvBM77HQOj2s68bhml03d0FU1UtV7AOwF8CCAI+sttsFnH1fV+1X1/k++m85W4HFNJx7X7PJ/Zbmo6jUR+QeAhwCMiUiu9V9/L4DzH/vhBH2UgTJKWR0Vaq01c5AyPMirBAAi8jUZm7blKmXL/AipuOSN559rjwf6bGo+NmmFLcPTJqfMf0h+1cvUsm0x7iV+5K477QVJM7OXLPOmDGopRu3FpqqmD5UbNn6XfLOLsybL9Gk8XI2IfE9GrVhqiO0/VslDo9Is5pJGwhOmg3HdDKOjJp8UCvEMD87UYC8XlmIqqxbXKneTFy40Wb8ABbS88mcTvuys3sgGcgpLMfFilvVbsXEhU0xzSXh+SGy9NgyoyEwC8ovZwMql23F1es9mslymRGSsNR4A8CUAbwF4FsA3Wot9F8Dftmonnc7jcU0nHtdss5lv6DMAjolIiOY/gKdU9e8i8iaAJ0XklwBeBfDEFu6n03k8runE45phJNkqaks3JnIZwAqA3vq39oZJ3DzHfUBVp2682OZoxfUD3FzH2C1upmP2uHaOm+2YNxXbrt7QAUBEjmfxgUsWjjsLx5gkC8echWNMsl2P2b1cHMdxUoLf0B3HcVJCL27oj/dgmzcDWTjuLBxjkiwccxaOMcm2POaua+iO4zjO1uCSi+M4Tkro6g1dRB4TkVMiclpEftrNbXcLEdknIs+KyFst+9Iftt6fEJFnWvalz4jIeK/3tVNkIa5A9mLrcd1+ce2a5NIqdHgHwJfRNAd6CcC3VfXNruxAlxCRGQAzqvqKiIwAeBnA1wF8D8CCqv669ccxrqo/6eGudoSsxBXIVmw9rtszrt38hv4ggNOq+p6qVgE8CeBrXdx+V1DVeVV9pTUuoVl2vQfNYz3WWuwYmhdMGshEXIHMxdbjug3j2s0b+h4As/R6QwvPtCAiBwHcC+BFALtUdR5oXkAApnu3Zx0lc3EFMhFbj+s2jGs3b+jrNTxMbYqNiAwD+AuAH6nq0o2W38ZkKq5AZmLrcd2GdPOGPgdgH71OrYWniOTRvDD+pKp/bb19saXVXdfsLm30+W1GZuIKZCq2HtdtGNdu3tBfAnBYms1qCwC+BeDpLm6/K0jTiPsJAG+p6m/pV0+jaVsKpMu+NBNxBTIXW4/rNoxrt90WvwLg9wBCAH9U1V91beNdQkQeBvAcgJNAu6Hkz9DU5J4CsB/AOQDfVNWFdVeyzchCXIHsxdbjuv3i6pWijuM4KcErRR3HcVKC39Adx3FSgt/QHcdxUoLf0B3HcVKC39Adx3FSgt/QHcdxUoLf0B3HcVKC39Adx3FSwv8AYHCvKA6/9VAAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "import mindspore.dataset.vision as vision\n", "\n", "# 图像增强\n", "trans = [\n", " vision.RandomCrop((32, 32), (4, 4, 4, 4)), # 对图像进行自动裁剪\n", " vision.RandomHorizontalFlip(prob=0.5), # 对图像进行随机水平翻转\n", " vision.HWC2CHW(), # (h, w, c)转换为(c, h, w)\n", "]\n", "\n", "dataset = Cifar10(data_dir, batch_size=6, resize=32, transform=trans)\n", "data = dataset.run()\n", "data = next(data.create_dict_iterator())\n", "images = data[\"image\"].asnumpy()\n", "labels = data[\"label\"].asnumpy()\n", "print(f\"Image shape: {images.shape}, Label: {labels}\")\n", "\n", "plt.figure()\n", "for i in range(1, 7):\n", " plt.subplot(2, 3, i)\n", " image_trans = np.transpose(images[i-1], (1, 2, 0))\n", " plt.title(f\"{dataset.index2label[labels[i-1]]}\")\n", " plt.imshow(image_trans, interpolation=\"None\")\n", "plt.show()" ] } ], "metadata": { "kernelspec": { "display_name": "MindSpore", "language": "python", "name": "mindspore" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.0" } }, "nbformat": 4, "nbformat_minor": 4 }