You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1479 lines
379 KiB
1479 lines
379 KiB
{
|
|
"nbformat": 4,
|
|
"nbformat_minor": 0,
|
|
"metadata": {
|
|
"colab": {
|
|
"name": "EffResNetComparison",
|
|
"version": "0.3.2",
|
|
"provenance": [],
|
|
"collapsed_sections": [],
|
|
"include_colab_link": true
|
|
},
|
|
"kernelspec": {
|
|
"name": "python3",
|
|
"display_name": "Python 3"
|
|
},
|
|
"accelerator": "GPU"
|
|
},
|
|
"cells": [
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"id": "view-in-github",
|
|
"colab_type": "text"
|
|
},
|
|
"source": [
|
|
"<a href=\"https://colab.research.google.com/github/rwightman/pytorch-image-models/blob/master/notebooks/EffResNetComparison.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"id": "7AUmKc2yMHz0",
|
|
"colab_type": "text"
|
|
},
|
|
"source": [
|
|
"# EfficientNets vs ResNets in PyTorch: On Why I Won't Be Tossing My ResNets\n",
|
|
"\n",
|
|
"First off, I want to be clear that I am not panning EfficientNets (https://arxiv.org/abs/1905.11946) here. They are unprecident in their parameter and FLOP efficiency. Thanks Mingxing Tan, Quoc V. Le, and the Google Brain team for releasing the code and weights.\n",
|
|
"\n",
|
|
"I dug into the EfficientNet paper the day it was released. I had recently implemented MobileNet-v3 and MNasNet architectures in PyTorch and EfficientNets have a lot in common with those models. After defining new model definitions strings, adding the depth scaling, and hacking together some weight porting code they were alive. \n",
|
|
"\n",
|
|
"First impressions were positive, \"Wow, that's some impressive accuracy for so few parameters (and such small checkpoints)''. After spending more time with the models, training them, running numerous validations, etc. some realities sank in. These models are less efficient in actual use than I'd expected. I started doing more detailed comparisons with familiar ResNet models and that's how this notebook came to be...\n",
|
|
"\n",
|
|
"## Objectives\n",
|
|
"A few points I'm hoping to illustrate in this notebook:\n",
|
|
"\n",
|
|
"1. The efficiencies of EfficientNets may not translate to better real-world performance on all frameworks and hardware platforms. Your trusty old ResNets may be just as good for your NN framework of choice running on an NVIDIA GPU. What consumes less resources in Tensorflow with an XLA optimized graph on a TPU, may end up being more resource hungry in PyTorch running with a CUDA backend.\n",
|
|
"\n",
|
|
"2. The story of a ResNet-50 does not end with a top-1 of 76.3% on ImageNet-1k. Neither do the other ResNe(X)t networks end with the results of the original papers or the pretrained weights of canonical Caffe, Tensorflow, or PyTorch implementations. Many papers compare shiny new architectures trained with newer techniques (or algorithmically searched hyper-parameters) but don't give the ResNet baselines the same treatment. A ResNet-50 can be trained to well over 78% on ImageNet -- better than an 'original' ResNet-152 -- a 35M parameter difference! I've selected better pretrained models to compare against the EfficientNets. \n",
|
|
"\n",
|
|
"3. Most PyTorch implementations of EfficientNet that I'm aware of are using the Tensorflow ported weights, like my 'tf_efficientnet_b*' models. These ported weights requires explicit padding ops to match the behaviour of Tensorflow 'SAME' padding. This padding adds a runtime penalty (about 2% for forward) and a memory penalty (reducing max batch sizes by roughly 15-20%). I've natively trained the B0 through B2 models in PyTorch now, but haven't made progress on B3 and up (very slow to train).\n",
|
|
"\n",
|
|
"4. There are some nifty inference tricks, like test time pooling, that can breathe life into old models and allow them to be used outside of their standard resolutions without retraining. A few ResNets were run with TTP here at resolutions similar to the EffNet models as a comparison.\n",
|
|
"\n",
|
|
"## Considerations\n",
|
|
"\n",
|
|
"A few additional considerations:\n",
|
|
"* I'm only running the numbers on validation here to keep the Colab notebook sane. I have trained with all of the architectures, the relative differences in throughtput and memory usage/batch size limits fit my experience training as well.\n",
|
|
"\n",
|
|
"* This comparison is for PyTorch 1.0/1.1 with a CUDA backend. Future versions of PyTorch, CUDA, or the PyTorch XLA TPU backend may change things significantly. I'm hoping to compare these models with the PyTorch XLA impl at some point. Not sure if it's ready yet?\n",
|
|
"\n",
|
|
"* The analysis is for the ImageNet classification task. The extra resolution in all EfficientNet > b0 is arguably less beneficial for this task than say fine-grained classification, segmentation, object detection and other more interesting tasks. Since the input resolution is responsible for a large amount of the GPU memory use, and ResNets for those other tasks are also run at higher res, the comparisons made do highly depend on the task.\n",
|
|
"\n",
|
|
"## What's TIMM and where are the models?\n",
|
|
"\n",
|
|
"The `timm` module use here is a PyPi packaging of my PyTorch Image Models \n",
|
|
"- https://github.com/rwightman/pytorch-image-models\n",
|
|
"\n",
|
|
"Stand alone version of the EfficientNet, MobileNet-V3, MNasNet, etc can also be found at \n",
|
|
"- https://github.com/rwightman/gen-efficientnet-pytorch"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"metadata": {
|
|
"id": "0f8AXYsjtKs5",
|
|
"colab_type": "code",
|
|
"outputId": "c8a180e8-8b39-4905-aa46-f82c58b974a0",
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/",
|
|
"height": 224
|
|
}
|
|
},
|
|
"source": [
|
|
"# Install necessary modules\n",
|
|
"!pip install timm"
|
|
],
|
|
"execution_count": 1,
|
|
"outputs": [
|
|
{
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Collecting timm\n",
|
|
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/1e/87/7de9e1175bda1151de177198bb2e99ac78cf0bdf97309b19f6d22b215b79/timm-0.1.6-py3-none-any.whl (83kB)\n",
|
|
"\u001b[K |████████████████████████████████| 92kB 28.0MB/s \n",
|
|
"\u001b[?25hRequirement already satisfied: torchvision in /usr/local/lib/python3.6/dist-packages (from timm) (0.3.0)\n",
|
|
"Requirement already satisfied: torch>=1.0 in /usr/local/lib/python3.6/dist-packages (from timm) (1.1.0)\n",
|
|
"Requirement already satisfied: pillow>=4.1.1 in /usr/local/lib/python3.6/dist-packages (from torchvision->timm) (4.3.0)\n",
|
|
"Requirement already satisfied: numpy in /usr/local/lib/python3.6/dist-packages (from torchvision->timm) (1.16.4)\n",
|
|
"Requirement already satisfied: six in /usr/local/lib/python3.6/dist-packages (from torchvision->timm) (1.12.0)\n",
|
|
"Requirement already satisfied: olefile in /usr/local/lib/python3.6/dist-packages (from pillow>=4.1.1->torchvision->timm) (0.46)\n",
|
|
"Installing collected packages: timm\n",
|
|
"Successfully installed timm-0.1.6\n"
|
|
],
|
|
"name": "stdout"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"id": "1qh-__YFuWrS",
|
|
"colab_type": "text"
|
|
},
|
|
"source": [
|
|
""
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"metadata": {
|
|
"id": "_GEzMzggMxBw",
|
|
"colab_type": "code",
|
|
"outputId": "183aad75-69aa-4e00-c1bc-06f5b40baecf",
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/",
|
|
"height": 306
|
|
}
|
|
},
|
|
"source": [
|
|
"# For our convenience, take a peek at what we're working with\n",
|
|
"!nvidia-smi"
|
|
],
|
|
"execution_count": 2,
|
|
"outputs": [
|
|
{
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Mon Jul 1 20:17:45 2019 \n",
|
|
"+-----------------------------------------------------------------------------+\n",
|
|
"| NVIDIA-SMI 418.67 Driver Version: 410.79 CUDA Version: 10.0 |\n",
|
|
"|-------------------------------+----------------------+----------------------+\n",
|
|
"| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |\n",
|
|
"| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |\n",
|
|
"|===============================+======================+======================|\n",
|
|
"| 0 Tesla T4 Off | 00000000:00:04.0 Off | 0 |\n",
|
|
"| N/A 44C P8 15W / 70W | 0MiB / 15079MiB | 0% Default |\n",
|
|
"+-------------------------------+----------------------+----------------------+\n",
|
|
" \n",
|
|
"+-----------------------------------------------------------------------------+\n",
|
|
"| Processes: GPU Memory |\n",
|
|
"| GPU PID Type Process name Usage |\n",
|
|
"|=============================================================================|\n",
|
|
"| No running processes found |\n",
|
|
"+-----------------------------------------------------------------------------+\n"
|
|
],
|
|
"name": "stdout"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"metadata": {
|
|
"id": "_69zvVb7v4cw",
|
|
"colab_type": "code",
|
|
"outputId": "3ca2e609-6c50-47e2-823d-d0e9a07f985f",
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/",
|
|
"height": 51
|
|
}
|
|
},
|
|
"source": [
|
|
"# Import the core modules, check which GPU we end up with and scale batch size accordingly\n",
|
|
"import torch\n",
|
|
"\n",
|
|
"# Flipping this on/off will change the memory dynamics, since I usually\n",
|
|
"# validate and train with it on, will leave it on by default\n",
|
|
"torch.backends.cudnn.benchmark = True\n",
|
|
"\n",
|
|
"import timm\n",
|
|
"from timm.data import *\n",
|
|
"from timm.utils import *\n",
|
|
"\n",
|
|
"import pynvml\n",
|
|
"from collections import OrderedDict\n",
|
|
"import logging\n",
|
|
"import time\n",
|
|
"\n",
|
|
"def log_gpu_memory():\n",
|
|
" handle = pynvml.nvmlDeviceGetHandleByIndex(0)\n",
|
|
" info = pynvml.nvmlDeviceGetMemoryInfo(handle)\n",
|
|
" info.free = round(info.free / 1024**2)\n",
|
|
" info.used = round(info.used / 1024**2)\n",
|
|
" logging.info('GPU memory free: {}, memory used: {}'.format(info.free, info.used))\n",
|
|
" return info.used\n",
|
|
"\n",
|
|
"def get_gpu_memory_total():\n",
|
|
" handle = pynvml.nvmlDeviceGetHandleByIndex(0)\n",
|
|
" info = pynvml.nvmlDeviceGetMemoryInfo(handle)\n",
|
|
" info.total = round(info.total / 1024**2)\n",
|
|
" return info.total\n",
|
|
" \n",
|
|
"pynvml.nvmlInit()\n",
|
|
"setup_default_logging()\n",
|
|
"log_gpu_memory()\n",
|
|
"\n",
|
|
"total_gpu_mem = get_gpu_memory_total()\n",
|
|
"if total_gpu_mem > 12300:\n",
|
|
" logging.info('Running on a T4 GPU or other with > 12GB memory, setting batch size to 128')\n",
|
|
" batch_size = 128\n",
|
|
"else:\n",
|
|
" logging.info('Running on a K80 GPU or other with < 12GB memory, batch size set to 80')\n",
|
|
" batch_size = 80"
|
|
],
|
|
"execution_count": 3,
|
|
"outputs": [
|
|
{
|
|
"output_type": "stream",
|
|
"text": [
|
|
"GPU memory free: 15080, memory used: 0\n",
|
|
"Running on a T4 GPU or other with > 12GB memory, setting batch size to 128\n"
|
|
],
|
|
"name": "stderr"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"id": "OVQORlCtNEkX",
|
|
"colab_type": "text"
|
|
},
|
|
"source": [
|
|
"# ImageNet-'V2' Validation\n",
|
|
"\n",
|
|
"If you're not aware, ImageNet-V2 (https://github.com/modestyachts/ImageNetV2) is a useful collection of 3 ImageNet-like validation sets that have been collected more recently, 10 years after the original ImageNet.\n",
|
|
"\n",
|
|
"Aside from being conveniently smaller and easier to deploy in a notebook, it's a useful test set to compare how models might generalize beyond the original ImageNet-1k data. We're going to use the 'Matched Frequency' version of the dataset. There is a markedly lower accuracy rate across the board for this test set. It's very interesting to see how different models fall relative to each other. I've included an analysis of those differences at the bottom.\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"metadata": {
|
|
"id": "IfBJUXdPxa2C",
|
|
"colab_type": "code",
|
|
"colab": {}
|
|
},
|
|
"source": [
|
|
"# Download and extract the dataset (note it's not actually a gz like the file says)\n",
|
|
"if not os.path.exists('./imagenetv2-matched-frequency'):\n",
|
|
" !curl -s https://s3-us-west-2.amazonaws.com/imagenetv2public/imagenetv2-matched-frequency.tar.gz | tar x\n",
|
|
"dataset = Dataset('./imagenetv2-matched-frequency/')\n",
|
|
"for i in range(len(dataset)): # warmup\n",
|
|
" dummy = dataset[i]"
|
|
],
|
|
"execution_count": 0,
|
|
"outputs": []
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"metadata": {
|
|
"id": "yPPC-A50wUji",
|
|
"colab_type": "code",
|
|
"colab": {}
|
|
},
|
|
"source": [
|
|
"# A basic validation routine with timing and accuracy metrics\n",
|
|
"\n",
|
|
"def validate(model, loader):\n",
|
|
" batch_time = AverageMeter()\n",
|
|
" losses = AverageMeter()\n",
|
|
" top1 = AverageMeter()\n",
|
|
" top5 = AverageMeter()\n",
|
|
"\n",
|
|
" model.eval()\n",
|
|
" #torch.cuda.reset_max_memory_allocated()\n",
|
|
" #torch.cuda.reset_max_memory_cached()\n",
|
|
" gpu_used_baseline = log_gpu_memory()\n",
|
|
" gpu_used = 0\n",
|
|
" start = end = time.time()\n",
|
|
" num_batches = len(loader)\n",
|
|
" log_iter = round(0.25 * num_batches)\n",
|
|
" with torch.no_grad():\n",
|
|
" for i, (input, target) in enumerate(loader):\n",
|
|
" target = target.cuda()\n",
|
|
" input = input.cuda()\n",
|
|
"\n",
|
|
" output = model(input)\n",
|
|
"\n",
|
|
" prec1, prec5 = accuracy(output.data, target, topk=(1, 5))\n",
|
|
" top1.update(prec1.item(), input.size(0))\n",
|
|
" top5.update(prec5.item(), input.size(0))\n",
|
|
"\n",
|
|
" batch_time.update(time.time() - end)\n",
|
|
" end = time.time()\n",
|
|
"\n",
|
|
" if i and i % log_iter == 0:\n",
|
|
" if gpu_used == 0:\n",
|
|
" gpu_used = log_gpu_memory()\n",
|
|
" logging.info(\n",
|
|
" 'Test: [{0:>4d}/{1}] '\n",
|
|
" 'Time: {batch_time.val:.3f} ({batch_time.avg:.3f}) '\n",
|
|
" 'Rate: {rate_avg:.3f} img/sec '\n",
|
|
" 'Prec@1: {top1.val:>7.4f} ({top1.avg:>7.4f}) '\n",
|
|
" 'Prec@5: {top5.val:>7.4f} ({top5.avg:>7.4f})'.format(\n",
|
|
" i, len(loader), batch_time=batch_time,\n",
|
|
" rate_avg=input.size(0) / batch_time.avg,\n",
|
|
" loss=losses, top1=top1, top5=top5))\n",
|
|
" gpu_used = gpu_used - gpu_used_baseline\n",
|
|
" # These measures are less consistent than method being used wrt\n",
|
|
" # where the batch sizes can be pushed for each model\n",
|
|
" #gpu_used = torch.cuda.max_memory_allocated()\n",
|
|
" #gpu_cached = torch.cuda.max_memory_cached()\n",
|
|
" elapsed = time.time() - start\n",
|
|
" results = OrderedDict(\n",
|
|
" top1=round(top1.avg, 3), top1_err=round(100 - top1.avg, 3),\n",
|
|
" top5=round(top5.avg, 3), top5_err=round(100 - top5.avg, 3),\n",
|
|
" rate=len(loader.dataset) / elapsed, gpu_used=gpu_used,\n",
|
|
" )\n",
|
|
"\n",
|
|
" logging.info(' * Prec@1 {:.3f} ({:.3f}) Prec@5 {:.3f} ({:.3f}) Rate {:.3f}'.format(\n",
|
|
" results['top1'], results['top1_err'], results['top5'],\n",
|
|
" results['top5_err'], results['rate']))\n",
|
|
"\n",
|
|
" return results\n"
|
|
],
|
|
"execution_count": 0,
|
|
"outputs": []
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"id": "9hj8cy16Wnju",
|
|
"colab_type": "text"
|
|
},
|
|
"source": [
|
|
"# Model Selection\n",
|
|
"\n",
|
|
"As per the intro, one of the goals here is to compare EfficientNets with a more capable set of baseline models. I've gone through the various models included in my collection and selected several that I feel are more appropriate matches based on their Top-1 scores from much better training setups than originals.\n",
|
|
"\n",
|
|
"Here we will split them into 4 lists for analysis and charting:\n",
|
|
"* EfficientNet models with natively trained PyTorch weights and no padding hacks\n",
|
|
"* EfficientNet models with weights ported from Tensorflow and SAME padding hack\n",
|
|
"* ResNe(X)t (or DPN) models at 224x224 native resoultion with weights from myself, Gluon model zoo, or Facebook Instagram trained models\n",
|
|
"* ResNe(X)t models at non-native resolutions with Test Time Pooling enabled\n",
|
|
"\n",
|
|
"Note: I realize it's not entirely fair to include the IG ResNext model since it's not technically trained purely on ImageNet like the others. But, it's a truly impressive model, and actually quite a bit easier to work with in PyTorch than even the B4 EfficientNet."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"metadata": {
|
|
"id": "DCQg0hky5lVm",
|
|
"colab_type": "code",
|
|
"colab": {}
|
|
},
|
|
"source": [
|
|
"# Define the models and arguments that will be used for comparisons\n",
|
|
"\n",
|
|
"# include original ImageNet-1k validation results for comparison against ImageNet-V2 here\n",
|
|
"orig_top1 = dict(\n",
|
|
" efficientnet_b0=76.912,\n",
|
|
" efficientnet_b1=78.692,\n",
|
|
" efficientnet_b2=79.760,\n",
|
|
" tf_efficientnet_b1=78.554,\n",
|
|
" tf_efficientnet_b2=79.606,\n",
|
|
" tf_efficientnet_b3=80.874,\n",
|
|
" tf_efficientnet_b4=82.604,\n",
|
|
" dpn68b=77.514,\n",
|
|
" seresnext26_32x4d=77.104,\n",
|
|
" resnet50=78.486,\n",
|
|
" gluon_seresnext50_32x4d=79.912,\n",
|
|
" gluon_seresnext101_32x4d=80.902,\n",
|
|
" ig_resnext101_32x8d=82.688,\n",
|
|
")\n",
|
|
"\n",
|
|
"models_effnet = [\n",
|
|
" dict(model_name='efficientnet_b0'),\n",
|
|
" dict(model_name='efficientnet_b1'),\n",
|
|
" dict(model_name='efficientnet_b2'),\n",
|
|
"]\n",
|
|
"\n",
|
|
"models_effnet_tf = [\n",
|
|
" dict(model_name='tf_efficientnet_b2'), # overlapping between TF non-TF for comparison\n",
|
|
" dict(model_name='tf_efficientnet_b3'),\n",
|
|
" dict(model_name='tf_efficientnet_b4'),\n",
|
|
"]\n",
|
|
"\n",
|
|
"models_resnet = [\n",
|
|
" dict(model_name='dpn68b'), # b0, yes, not a ResNet, need to find a better b0 comparison\n",
|
|
" #dict(model_name='seresnext26_32x4d'), # b0, not the best b0 comparison either, a little slow\n",
|
|
" dict(model_name='resnet50'), # b1\n",
|
|
" dict(model_name='gluon_seresnext50_32x4d'), # b2-b3\n",
|
|
" dict(model_name='gluon_seresnext101_32x4d'), # b3\n",
|
|
" dict(model_name='ig_resnext101_32x8d'), # b4\n",
|
|
"]\n",
|
|
"\n",
|
|
"models_resnet_ttp = [\n",
|
|
" dict(model_name='resnet50', input_size=(3, 240, 240), ttp=True),\n",
|
|
" dict(model_name='resnet50', input_size=(3, 260, 260), ttp=True),\n",
|
|
" dict(model_name='gluon_seresnext50_32x4d', input_size=(3, 260, 260), ttp=True),\n",
|
|
" dict(model_name='gluon_seresnext50_32x4d', input_size=(3, 300, 300), ttp=True),\n",
|
|
" dict(model_name='gluon_seresnext101_32x4d', input_size=(3, 260, 260), ttp=True),\n",
|
|
" dict(model_name='gluon_seresnext101_32x4d', input_size=(3, 300, 300), ttp=True),\n",
|
|
" dict(model_name='ig_resnext101_32x8d', input_size=(3, 300, 300), ttp=True),\n",
|
|
"]"
|
|
],
|
|
"execution_count": 0,
|
|
"outputs": []
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"id": "PPloo-oE545b",
|
|
"colab_type": "text"
|
|
},
|
|
"source": [
|
|
"# Model Runner\n",
|
|
"\n",
|
|
"The runner creates each model, a matching data loader, and runs the validation. It uses several features of my image collection module for this.\n",
|
|
"\n",
|
|
"Test time pooling is enabled here if requested in the model_args. The pooling is implemented as a module the wraps the base network. It's important to set the crop factor for the images to 1.0 when enabling pooling."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"metadata": {
|
|
"id": "BX_CKBnM8XNO",
|
|
"colab_type": "code",
|
|
"colab": {}
|
|
},
|
|
"source": [
|
|
"from timm.models import TestTimePoolHead\n",
|
|
"\n",
|
|
"def model_runner(model_args):\n",
|
|
" model_name = model_args['model_name']\n",
|
|
" pretrained = True\n",
|
|
" checkpoint_path = ''\n",
|
|
" if 'model_url' in model_args and model_args['model_url']:\n",
|
|
" !wget -q {model_args['model_url']}\n",
|
|
" checkpoint_path = './' + os.path.basename(model_args['model_url'])\n",
|
|
" logging.info('Downloaded checkpoint {} from specified URL'.format(checkpoint_path))\n",
|
|
" pretrained = False\n",
|
|
" \n",
|
|
" model = timm.create_model(\n",
|
|
" model_name,\n",
|
|
" num_classes=1000,\n",
|
|
" in_chans=3,\n",
|
|
" pretrained=pretrained,\n",
|
|
" checkpoint_path=checkpoint_path)\n",
|
|
"\n",
|
|
" data_config = timm.data.resolve_data_config(model_args, model=model, verbose=True)\n",
|
|
" \n",
|
|
" ttp = False\n",
|
|
" if 'ttp' in model_args and model_args['ttp']:\n",
|
|
" ttp = True\n",
|
|
" logging.info('Applying test time pooling to model')\n",
|
|
" model = TestTimePoolHead(model, original_pool=model.default_cfg['pool_size'])\n",
|
|
" \n",
|
|
" model_key = [model_name, str(data_config['input_size'][-1])]\n",
|
|
" if ttp:\n",
|
|
" model_key += ['ttp']\n",
|
|
" model_key = '-'.join(model_key)\n",
|
|
" param_count = sum([m.numel() for m in model.parameters()])\n",
|
|
" logging.info('Model {} created, param count: {}. Running...'.format(model_key, param_count))\n",
|
|
"\n",
|
|
" model = model.cuda()\n",
|
|
"\n",
|
|
" loader = create_loader(\n",
|
|
" dataset,\n",
|
|
" input_size=data_config['input_size'],\n",
|
|
" batch_size=batch_size,\n",
|
|
" use_prefetcher=True,\n",
|
|
" interpolation='bicubic',\n",
|
|
" mean=data_config['mean'],\n",
|
|
" std=data_config['std'],\n",
|
|
" crop_pct=1.0 if ttp else data_config['crop_pct'],\n",
|
|
" num_workers=2)\n",
|
|
"\n",
|
|
" result = validate(model, loader)\n",
|
|
" \n",
|
|
" logging.info('Model {} done.\\n'.format(model_key))\n",
|
|
" result['param_count'] = param_count / 1e6\n",
|
|
" # add extra non-metric keys for comparisons \n",
|
|
" result['model_name'] = model_name\n",
|
|
" result['input_size'] = data_config['input_size']\n",
|
|
" result['ttp'] = ttp\n",
|
|
"\n",
|
|
" del model\n",
|
|
" del loader\n",
|
|
" torch.cuda.empty_cache()\n",
|
|
" \n",
|
|
" return model_key, result"
|
|
],
|
|
"execution_count": 0,
|
|
"outputs": []
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"metadata": {
|
|
"id": "xx-j8Z-z_EGo",
|
|
"colab_type": "code",
|
|
"outputId": "8c6571b5-131e-419d-b9e6-2366a45cda8e",
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/",
|
|
"height": 1000
|
|
}
|
|
},
|
|
"source": [
|
|
"# Run validation on all the models, get a coffee (or two)\n",
|
|
"results_effnet = {}\n",
|
|
"results_effnet_tf = {}\n",
|
|
"results_resnet = {}\n",
|
|
"results_resnet_ttp = {}\n",
|
|
"\n",
|
|
"logging.info('Running validation on native PyTorch EfficientNet models')\n",
|
|
"for ma in models_effnet:\n",
|
|
" mk, mr = model_runner(ma)\n",
|
|
" results_effnet[mk] = mr\n",
|
|
" \n",
|
|
"logging.info('Running validation on ported Tensorflow EfficientNet models')\n",
|
|
"for ma in models_effnet_tf:\n",
|
|
" mk, mr = model_runner(ma)\n",
|
|
" results_effnet_tf[mk] = mr\n",
|
|
" \n",
|
|
"logging.info('Running validation on ResNe(X)t models')\n",
|
|
"for ma in models_resnet:\n",
|
|
" mk, mr = model_runner(ma)\n",
|
|
" results_resnet[mk] = mr\n",
|
|
" \n",
|
|
"logging.info('Running validation on ResNe(X)t models w/ Test Time Pooling enabled')\n",
|
|
"for ma in models_resnet_ttp:\n",
|
|
" mk, mr = model_runner(ma)\n",
|
|
" results_resnet_ttp[mk] = mr\n",
|
|
" \n",
|
|
"results = {**results_effnet, **results_effnet_tf, **results_resnet, **results_resnet_ttp}"
|
|
],
|
|
"execution_count": 8,
|
|
"outputs": [
|
|
{
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Running validation on native PyTorch EfficientNet models\n",
|
|
"Downloading: \"https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-weights/efficientnet_b0-d6904d92.pth\" to /root/.cache/torch/checkpoints/efficientnet_b0-d6904d92.pth\n",
|
|
"100%|██████████| 21376958/21376958 [00:02<00:00, 8676444.76it/s]\n",
|
|
"Data processing configuration for current model + dataset:\n",
|
|
"\tinput_size: (3, 224, 224)\n",
|
|
"\tinterpolation: bicubic\n",
|
|
"\tmean: (0.485, 0.456, 0.406)\n",
|
|
"\tstd: (0.229, 0.224, 0.225)\n",
|
|
"\tcrop_pct: 0.875\n",
|
|
"Model efficientnet_b0-224 created, param count: 5288548. Running...\n",
|
|
"GPU memory free: 14276, memory used: 804\n",
|
|
"GPU memory free: 11346, memory used: 3734\n",
|
|
"Test: [ 20/79] Time: 0.190 (0.805) Rate: 159.098 img/sec Prec@1: 64.8438 (69.6801) Prec@5: 87.5000 (88.9509)\n",
|
|
"Test: [ 40/79] Time: 0.194 (0.800) Rate: 159.972 img/sec Prec@1: 51.5625 (68.8072) Prec@5: 79.6875 (88.5671)\n",
|
|
"Test: [ 60/79] Time: 0.186 (0.790) Rate: 162.028 img/sec Prec@1: 60.9375 (66.1501) Prec@5: 83.5938 (86.6035)\n",
|
|
" * Prec@1 64.580 (35.420) Prec@5 85.890 (14.110) Rate 165.732\n",
|
|
"Model efficientnet_b0-224 done.\n",
|
|
"\n",
|
|
"Downloading: \"https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-weights/efficientnet_b1-533bc792.pth\" to /root/.cache/torch/checkpoints/efficientnet_b1-533bc792.pth\n",
|
|
"100%|██████████| 31502706/31502706 [00:03<00:00, 9936470.52it/s] \n",
|
|
"Data processing configuration for current model + dataset:\n",
|
|
"\tinput_size: (3, 240, 240)\n",
|
|
"\tinterpolation: bicubic\n",
|
|
"\tmean: (0.485, 0.456, 0.406)\n",
|
|
"\tstd: (0.229, 0.224, 0.225)\n",
|
|
"\tcrop_pct: 0.882\n",
|
|
"Model efficientnet_b1-240 created, param count: 7794184. Running...\n",
|
|
"GPU memory free: 14260, memory used: 820\n",
|
|
"GPU memory free: 10890, memory used: 4190\n",
|
|
"Test: [ 20/79] Time: 0.311 (0.919) Rate: 139.286 img/sec Prec@1: 69.5312 (73.9583) Prec@5: 86.7188 (90.7366)\n",
|
|
"Test: [ 40/79] Time: 0.310 (0.878) Rate: 145.851 img/sec Prec@1: 58.5938 (72.1799) Prec@5: 81.2500 (89.9200)\n",
|
|
"Test: [ 60/79] Time: 0.312 (0.867) Rate: 147.679 img/sec Prec@1: 67.1875 (69.0958) Prec@5: 81.2500 (87.9867)\n",
|
|
" * Prec@1 67.550 (32.450) Prec@5 87.290 (12.710) Rate 151.628\n",
|
|
"Model efficientnet_b1-240 done.\n",
|
|
"\n",
|
|
"Downloading: \"https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-weights/efficientnet_b2-cf78dc4d.pth\" to /root/.cache/torch/checkpoints/efficientnet_b2-cf78dc4d.pth\n",
|
|
"100%|██████████| 36788101/36788101 [00:03<00:00, 11752398.17it/s]\n",
|
|
"Data processing configuration for current model + dataset:\n",
|
|
"\tinput_size: (3, 260, 260)\n",
|
|
"\tinterpolation: bicubic\n",
|
|
"\tmean: (0.485, 0.456, 0.406)\n",
|
|
"\tstd: (0.229, 0.224, 0.225)\n",
|
|
"\tcrop_pct: 0.89\n",
|
|
"Model efficientnet_b2-260 created, param count: 9109994. Running...\n",
|
|
"GPU memory free: 14258, memory used: 822\n",
|
|
"GPU memory free: 10266, memory used: 4814\n",
|
|
"Test: [ 20/79] Time: 0.416 (0.941) Rate: 136.036 img/sec Prec@1: 68.7500 (72.9539) Prec@5: 88.2812 (91.0714)\n",
|
|
"Test: [ 40/79] Time: 0.429 (0.914) Rate: 140.068 img/sec Prec@1: 58.5938 (71.9893) Prec@5: 82.0312 (90.4535)\n",
|
|
"Test: [ 60/79] Time: 0.527 (0.894) Rate: 143.120 img/sec Prec@1: 64.0625 (69.3904) Prec@5: 85.9375 (88.8960)\n",
|
|
" * Prec@1 67.800 (32.200) Prec@5 88.200 (11.800) Rate 144.201\n",
|
|
"Model efficientnet_b2-260 done.\n",
|
|
"\n",
|
|
"Running validation on ported Tensorflow EfficientNet models\n",
|
|
"Downloading: \"https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-weights/tf_efficientnet_b2-e393ef04.pth\" to /root/.cache/torch/checkpoints/tf_efficientnet_b2-e393ef04.pth\n",
|
|
"100%|██████████| 36797929/36797929 [00:03<00:00, 11014399.83it/s]\n",
|
|
"Data processing configuration for current model + dataset:\n",
|
|
"\tinput_size: (3, 260, 260)\n",
|
|
"\tinterpolation: bicubic\n",
|
|
"\tmean: (0.485, 0.456, 0.406)\n",
|
|
"\tstd: (0.229, 0.224, 0.225)\n",
|
|
"\tcrop_pct: 0.89\n",
|
|
"Model tf_efficientnet_b2-260 created, param count: 9109994. Running...\n",
|
|
"GPU memory free: 14258, memory used: 822\n",
|
|
"GPU memory free: 9568, memory used: 5512\n",
|
|
"Test: [ 20/79] Time: 1.217 (0.960) Rate: 133.306 img/sec Prec@1: 66.4062 (72.7679) Prec@5: 87.5000 (90.4018)\n",
|
|
"Test: [ 40/79] Time: 0.522 (0.917) Rate: 139.645 img/sec Prec@1: 58.5938 (71.3986) Prec@5: 79.6875 (89.7675)\n",
|
|
"Test: [ 60/79] Time: 0.939 (0.908) Rate: 141.046 img/sec Prec@1: 64.8438 (68.9037) Prec@5: 85.1562 (88.2172)\n",
|
|
" * Prec@1 67.400 (32.600) Prec@5 87.580 (12.420) Rate 142.727\n",
|
|
"Model tf_efficientnet_b2-260 done.\n",
|
|
"\n",
|
|
"Downloading: \"https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-weights/tf_efficientnet_b3-e3bd6955.pth\" to /root/.cache/torch/checkpoints/tf_efficientnet_b3-e3bd6955.pth\n",
|
|
"100%|██████████| 49381362/49381362 [00:03<00:00, 12584590.15it/s]\n",
|
|
"Data processing configuration for current model + dataset:\n",
|
|
"\tinput_size: (3, 300, 300)\n",
|
|
"\tinterpolation: bicubic\n",
|
|
"\tmean: (0.485, 0.456, 0.406)\n",
|
|
"\tstd: (0.229, 0.224, 0.225)\n",
|
|
"\tcrop_pct: 0.904\n",
|
|
"Model tf_efficientnet_b3-300 created, param count: 12233232. Running...\n",
|
|
"GPU memory free: 14242, memory used: 838\n",
|
|
"GPU memory free: 5604, memory used: 9476\n",
|
|
"Test: [ 20/79] Time: 1.267 (1.161) Rate: 110.269 img/sec Prec@1: 66.4062 (73.8467) Prec@5: 90.6250 (91.6667)\n",
|
|
"Test: [ 40/79] Time: 0.833 (1.097) Rate: 116.649 img/sec Prec@1: 60.9375 (72.8087) Prec@5: 83.5938 (90.7393)\n",
|
|
"Test: [ 60/79] Time: 1.242 (1.082) Rate: 118.310 img/sec Prec@1: 67.1875 (70.1588) Prec@5: 84.3750 (89.1522)\n",
|
|
" * Prec@1 68.520 (31.480) Prec@5 88.700 (11.300) Rate 119.134\n",
|
|
"Model tf_efficientnet_b3-300 done.\n",
|
|
"\n",
|
|
"Downloading: \"https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-weights/tf_efficientnet_b4-74ee3bed.pth\" to /root/.cache/torch/checkpoints/tf_efficientnet_b4-74ee3bed.pth\n",
|
|
"100%|██████████| 77989689/77989689 [00:06<00:00, 12751872.12it/s]\n",
|
|
"Data processing configuration for current model + dataset:\n",
|
|
"\tinput_size: (3, 380, 380)\n",
|
|
"\tinterpolation: bicubic\n",
|
|
"\tmean: (0.485, 0.456, 0.406)\n",
|
|
"\tstd: (0.229, 0.224, 0.225)\n",
|
|
"\tcrop_pct: 0.922\n",
|
|
"Model tf_efficientnet_b4-380 created, param count: 19341616. Running...\n",
|
|
"GPU memory free: 14214, memory used: 866\n",
|
|
"GPU memory free: 2460, memory used: 12620\n",
|
|
"Test: [ 20/79] Time: 1.761 (2.057) Rate: 62.222 img/sec Prec@1: 69.5312 (76.4509) Prec@5: 91.4062 (92.6339)\n",
|
|
"Test: [ 40/79] Time: 1.740 (1.914) Rate: 66.889 img/sec Prec@1: 64.8438 (75.4954) Prec@5: 83.5938 (92.2637)\n",
|
|
"Test: [ 60/79] Time: 1.782 (1.866) Rate: 68.600 img/sec Prec@1: 71.0938 (72.8740) Prec@5: 85.1562 (90.6634)\n",
|
|
" * Prec@1 71.340 (28.660) Prec@5 90.110 (9.890) Rate 69.103\n",
|
|
"Model tf_efficientnet_b4-380 done.\n",
|
|
"\n",
|
|
"Running validation on ResNe(X)t models\n",
|
|
"Downloading: \"https://github.com/rwightman/pytorch-dpn-pretrained/releases/download/v0.1/dpn68b_extra-84854c156.pth\" to /root/.cache/torch/checkpoints/dpn68b_extra-84854c156.pth\n",
|
|
"100%|██████████| 50765517/50765517 [00:04<00:00, 12271223.44it/s]\n",
|
|
"Data processing configuration for current model + dataset:\n",
|
|
"\tinput_size: (3, 224, 224)\n",
|
|
"\tinterpolation: bicubic\n",
|
|
"\tmean: (0.48627450980392156, 0.4588235294117647, 0.40784313725490196)\n",
|
|
"\tstd: (0.23482446870963955, 0.23482446870963955, 0.23482446870963955)\n",
|
|
"\tcrop_pct: 0.875\n",
|
|
"Model dpn68b-224 created, param count: 12611602. Running...\n",
|
|
"GPU memory free: 14240, memory used: 840\n",
|
|
"GPU memory free: 11342, memory used: 3738\n",
|
|
"Test: [ 20/79] Time: 0.442 (0.876) Rate: 146.176 img/sec Prec@1: 54.6875 (70.2381) Prec@5: 85.9375 (88.9509)\n",
|
|
"Test: [ 40/79] Time: 1.007 (0.847) Rate: 151.177 img/sec Prec@1: 57.8125 (69.5122) Prec@5: 78.9062 (88.4337)\n",
|
|
"Test: [ 60/79] Time: 1.015 (0.834) Rate: 153.556 img/sec Prec@1: 60.1562 (66.8033) Prec@5: 78.9062 (86.5907)\n",
|
|
" * Prec@1 65.600 (34.400) Prec@5 85.940 (14.060) Rate 155.150\n",
|
|
"Model dpn68b-224 done.\n",
|
|
"\n",
|
|
"Downloading: \"https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-weights/rw_resnet50-86acaeed.pth\" to /root/.cache/torch/checkpoints/rw_resnet50-86acaeed.pth\n",
|
|
"100%|██████████| 102488165/102488165 [00:07<00:00, 13755311.81it/s]\n",
|
|
"Data processing configuration for current model + dataset:\n",
|
|
"\tinput_size: (3, 224, 224)\n",
|
|
"\tinterpolation: bicubic\n",
|
|
"\tmean: (0.485, 0.456, 0.406)\n",
|
|
"\tstd: (0.229, 0.224, 0.225)\n",
|
|
"\tcrop_pct: 0.875\n",
|
|
"Model resnet50-224 created, param count: 25557032. Running...\n",
|
|
"GPU memory free: 14182, memory used: 898\n",
|
|
"GPU memory free: 12652, memory used: 2428\n",
|
|
"Test: [ 20/79] Time: 0.406 (0.859) Rate: 149.042 img/sec Prec@1: 66.4062 (72.6562) Prec@5: 90.6250 (90.4762)\n",
|
|
"Test: [ 40/79] Time: 0.662 (0.820) Rate: 156.156 img/sec Prec@1: 58.5938 (71.1128) Prec@5: 85.9375 (89.5960)\n",
|
|
"Test: [ 60/79] Time: 0.601 (0.807) Rate: 158.594 img/sec Prec@1: 61.7188 (68.3017) Prec@5: 82.0312 (87.7946)\n",
|
|
" * Prec@1 66.810 (33.190) Prec@5 87.000 (13.000) Rate 159.510\n",
|
|
"Model resnet50-224 done.\n",
|
|
"\n",
|
|
"Downloading: \"https://github.com/rwightman/pytorch-pretrained-gluonresnet/releases/download/v0.1/gluon_seresnext50_32x4d-90cf2d6e.pth\" to /root/.cache/torch/checkpoints/gluon_seresnext50_32x4d-90cf2d6e.pth\n",
|
|
"100%|██████████| 110578827/110578827 [00:08<00:00, 12788555.61it/s]\n",
|
|
"Data processing configuration for current model + dataset:\n",
|
|
"\tinput_size: (3, 224, 224)\n",
|
|
"\tinterpolation: bicubic\n",
|
|
"\tmean: (0.485, 0.456, 0.406)\n",
|
|
"\tstd: (0.229, 0.224, 0.225)\n",
|
|
"\tcrop_pct: 0.875\n",
|
|
"Model gluon_seresnext50_32x4d-224 created, param count: 27559896. Running...\n",
|
|
"GPU memory free: 14180, memory used: 900\n",
|
|
"GPU memory free: 12510, memory used: 2570\n",
|
|
"Test: [ 20/79] Time: 1.013 (0.875) Rate: 146.238 img/sec Prec@1: 70.3125 (74.2188) Prec@5: 88.2812 (91.0714)\n",
|
|
"Test: [ 40/79] Time: 1.197 (0.859) Rate: 149.059 img/sec Prec@1: 60.9375 (72.8849) Prec@5: 82.8125 (90.4345)\n",
|
|
"Test: [ 60/79] Time: 1.185 (0.859) Rate: 148.930 img/sec Prec@1: 64.8438 (70.0307) Prec@5: 84.3750 (88.8064)\n",
|
|
" * Prec@1 68.670 (31.330) Prec@5 88.320 (11.680) Rate 150.435\n",
|
|
"Model gluon_seresnext50_32x4d-224 done.\n",
|
|
"\n",
|
|
"Downloading: \"https://github.com/rwightman/pytorch-pretrained-gluonresnet/releases/download/v0.1/gluon_seresnext101_32x4d-cf52900d.pth\" to /root/.cache/torch/checkpoints/gluon_seresnext101_32x4d-cf52900d.pth\n",
|
|
"100%|██████████| 196505510/196505510 [00:12<00:00, 16164511.02it/s]\n",
|
|
"Data processing configuration for current model + dataset:\n",
|
|
"\tinput_size: (3, 224, 224)\n",
|
|
"\tinterpolation: bicubic\n",
|
|
"\tmean: (0.485, 0.456, 0.406)\n",
|
|
"\tstd: (0.229, 0.224, 0.225)\n",
|
|
"\tcrop_pct: 0.875\n",
|
|
"Model gluon_seresnext101_32x4d-224 created, param count: 48955416. Running...\n",
|
|
"GPU memory free: 14086, memory used: 994\n",
|
|
"GPU memory free: 12272, memory used: 2808\n",
|
|
"Test: [ 20/79] Time: 0.897 (1.016) Rate: 125.932 img/sec Prec@1: 72.6562 (75.5580) Prec@5: 88.2812 (91.6667)\n",
|
|
"Test: [ 40/79] Time: 0.899 (0.997) Rate: 128.324 img/sec Prec@1: 64.8438 (74.4284) Prec@5: 83.5938 (91.2538)\n",
|
|
"Test: [ 60/79] Time: 0.867 (0.986) Rate: 129.853 img/sec Prec@1: 67.1875 (71.7597) Prec@5: 89.0625 (89.6644)\n",
|
|
" * Prec@1 70.010 (29.990) Prec@5 88.910 (11.090) Rate 131.572\n",
|
|
"Model gluon_seresnext101_32x4d-224 done.\n",
|
|
"\n",
|
|
"Downloading: \"https://download.pytorch.org/models/ig_resnext101_32x8-c38310e5.pth\" to /root/.cache/torch/checkpoints/ig_resnext101_32x8-c38310e5.pth\n",
|
|
"100%|██████████| 356056638/356056638 [00:11<00:00, 31320647.42it/s]\n",
|
|
"Data processing configuration for current model + dataset:\n",
|
|
"\tinput_size: (3, 224, 224)\n",
|
|
"\tinterpolation: bilinear\n",
|
|
"\tmean: (0.485, 0.456, 0.406)\n",
|
|
"\tstd: (0.229, 0.224, 0.225)\n",
|
|
"\tcrop_pct: 0.875\n",
|
|
"Model ig_resnext101_32x8d-224 created, param count: 88791336. Running...\n",
|
|
"GPU memory free: 13946, memory used: 1134\n",
|
|
"GPU memory free: 10564, memory used: 4516\n",
|
|
"Test: [ 20/79] Time: 1.560 (1.664) Rate: 76.934 img/sec Prec@1: 76.5625 (78.9807) Prec@5: 93.7500 (94.2708)\n",
|
|
"Test: [ 40/79] Time: 1.450 (1.582) Rate: 80.907 img/sec Prec@1: 66.4062 (77.9535) Prec@5: 88.2812 (93.7881)\n",
|
|
"Test: [ 60/79] Time: 1.470 (1.540) Rate: 83.129 img/sec Prec@1: 74.2188 (75.0256) Prec@5: 91.4062 (92.6358)\n",
|
|
" * Prec@1 73.830 (26.170) Prec@5 92.280 (7.720) Rate 83.352\n",
|
|
"Model ig_resnext101_32x8d-224 done.\n",
|
|
"\n",
|
|
"Running validation on ResNe(X)t models w/ Test Time Pooling enabled\n",
|
|
"Data processing configuration for current model + dataset:\n",
|
|
"\tinput_size: (3, 240, 240)\n",
|
|
"\tinterpolation: bicubic\n",
|
|
"\tmean: (0.485, 0.456, 0.406)\n",
|
|
"\tstd: (0.229, 0.224, 0.225)\n",
|
|
"\tcrop_pct: 0.875\n",
|
|
"Applying test time pooling to model\n",
|
|
"Model resnet50-240-ttp created, param count: 25557032. Running...\n",
|
|
"GPU memory free: 14182, memory used: 898\n",
|
|
"GPU memory free: 12098, memory used: 2982\n",
|
|
"Test: [ 20/79] Time: 0.429 (0.892) Rate: 143.505 img/sec Prec@1: 67.1875 (72.7679) Prec@5: 89.0625 (90.3274)\n",
|
|
"Test: [ 40/79] Time: 0.757 (0.845) Rate: 151.416 img/sec Prec@1: 55.4688 (71.1128) Prec@5: 84.3750 (89.5198)\n",
|
|
"Test: [ 60/79] Time: 1.154 (0.831) Rate: 154.108 img/sec Prec@1: 61.7188 (68.4170) Prec@5: 82.8125 (87.6537)\n",
|
|
" * Prec@1 67.020 (32.980) Prec@5 87.040 (12.960) Rate 154.346\n",
|
|
"Model resnet50-240-ttp done.\n",
|
|
"\n",
|
|
"Data processing configuration for current model + dataset:\n",
|
|
"\tinput_size: (3, 260, 260)\n",
|
|
"\tinterpolation: bicubic\n",
|
|
"\tmean: (0.485, 0.456, 0.406)\n",
|
|
"\tstd: (0.229, 0.224, 0.225)\n",
|
|
"\tcrop_pct: 0.875\n",
|
|
"Applying test time pooling to model\n",
|
|
"Model resnet50-260-ttp created, param count: 25557032. Running...\n",
|
|
"GPU memory free: 14182, memory used: 898\n",
|
|
"GPU memory free: 11650, memory used: 3430\n",
|
|
"Test: [ 20/79] Time: 1.172 (1.097) Rate: 116.650 img/sec Prec@1: 68.7500 (72.9911) Prec@5: 87.5000 (90.5134)\n",
|
|
"Test: [ 40/79] Time: 0.902 (0.976) Rate: 131.211 img/sec Prec@1: 57.8125 (72.0084) Prec@5: 82.8125 (89.9581)\n",
|
|
"Test: [ 60/79] Time: 0.832 (0.940) Rate: 136.223 img/sec Prec@1: 60.1562 (69.2751) Prec@5: 85.9375 (88.2684)\n",
|
|
" * Prec@1 67.630 (32.370) Prec@5 87.630 (12.370) Rate 135.915\n",
|
|
"Model resnet50-260-ttp done.\n",
|
|
"\n",
|
|
"Data processing configuration for current model + dataset:\n",
|
|
"\tinput_size: (3, 260, 260)\n",
|
|
"\tinterpolation: bicubic\n",
|
|
"\tmean: (0.485, 0.456, 0.406)\n",
|
|
"\tstd: (0.229, 0.224, 0.225)\n",
|
|
"\tcrop_pct: 0.875\n",
|
|
"Applying test time pooling to model\n",
|
|
"Model gluon_seresnext50_32x4d-260-ttp created, param count: 27559896. Running...\n",
|
|
"GPU memory free: 14180, memory used: 900\n",
|
|
"GPU memory free: 11594, memory used: 3486\n",
|
|
"Test: [ 20/79] Time: 1.229 (1.147) Rate: 111.577 img/sec Prec@1: 71.8750 (74.4420) Prec@5: 86.7188 (91.2946)\n",
|
|
"Test: [ 40/79] Time: 1.056 (1.053) Rate: 121.593 img/sec Prec@1: 62.5000 (73.8567) Prec@5: 85.1562 (90.6822)\n",
|
|
"Test: [ 60/79] Time: 1.133 (1.015) Rate: 126.067 img/sec Prec@1: 68.7500 (71.1194) Prec@5: 86.7188 (89.0625)\n",
|
|
" * Prec@1 69.670 (30.330) Prec@5 88.620 (11.380) Rate 126.519\n",
|
|
"Model gluon_seresnext50_32x4d-260-ttp done.\n",
|
|
"\n",
|
|
"Data processing configuration for current model + dataset:\n",
|
|
"\tinput_size: (3, 300, 300)\n",
|
|
"\tinterpolation: bicubic\n",
|
|
"\tmean: (0.485, 0.456, 0.406)\n",
|
|
"\tstd: (0.229, 0.224, 0.225)\n",
|
|
"\tcrop_pct: 0.875\n",
|
|
"Applying test time pooling to model\n",
|
|
"Model gluon_seresnext50_32x4d-300-ttp created, param count: 27559896. Running...\n",
|
|
"GPU memory free: 14180, memory used: 900\n",
|
|
"GPU memory free: 10880, memory used: 4200\n",
|
|
"Test: [ 20/79] Time: 1.041 (1.484) Rate: 86.250 img/sec Prec@1: 71.8750 (76.3021) Prec@5: 89.0625 (91.9271)\n",
|
|
"Test: [ 40/79] Time: 1.037 (1.287) Rate: 99.457 img/sec Prec@1: 64.0625 (75.0572) Prec@5: 86.7188 (91.3300)\n",
|
|
"Test: [ 60/79] Time: 1.064 (1.216) Rate: 105.295 img/sec Prec@1: 71.0938 (72.1952) Prec@5: 88.2812 (89.7285)\n",
|
|
" * Prec@1 70.470 (29.530) Prec@5 89.180 (10.820) Rate 104.694\n",
|
|
"Model gluon_seresnext50_32x4d-300-ttp done.\n",
|
|
"\n",
|
|
"Data processing configuration for current model + dataset:\n",
|
|
"\tinput_size: (3, 260, 260)\n",
|
|
"\tinterpolation: bicubic\n",
|
|
"\tmean: (0.485, 0.456, 0.406)\n",
|
|
"\tstd: (0.229, 0.224, 0.225)\n",
|
|
"\tcrop_pct: 0.875\n",
|
|
"Applying test time pooling to model\n",
|
|
"Model gluon_seresnext101_32x4d-260-ttp created, param count: 48955416. Running...\n",
|
|
"GPU memory free: 14086, memory used: 994\n",
|
|
"GPU memory free: 11634, memory used: 3446\n",
|
|
"Test: [ 20/79] Time: 1.307 (1.413) Rate: 90.559 img/sec Prec@1: 71.8750 (76.3393) Prec@5: 89.0625 (92.0387)\n",
|
|
"Test: [ 40/79] Time: 1.307 (1.362) Rate: 93.981 img/sec Prec@1: 61.7188 (75.6479) Prec@5: 82.0312 (91.8826)\n",
|
|
"Test: [ 60/79] Time: 1.303 (1.343) Rate: 95.329 img/sec Prec@1: 74.2188 (72.8868) Prec@5: 87.5000 (90.1895)\n",
|
|
" * Prec@1 71.140 (28.860) Prec@5 89.470 (10.530) Rate 95.842\n",
|
|
"Model gluon_seresnext101_32x4d-260-ttp done.\n",
|
|
"\n",
|
|
"Data processing configuration for current model + dataset:\n",
|
|
"\tinput_size: (3, 300, 300)\n",
|
|
"\tinterpolation: bicubic\n",
|
|
"\tmean: (0.485, 0.456, 0.406)\n",
|
|
"\tstd: (0.229, 0.224, 0.225)\n",
|
|
"\tcrop_pct: 0.875\n",
|
|
"Applying test time pooling to model\n",
|
|
"Model gluon_seresnext101_32x4d-300-ttp created, param count: 48955416. Running...\n",
|
|
"GPU memory free: 14086, memory used: 994\n",
|
|
"GPU memory free: 10834, memory used: 4246\n",
|
|
"Test: [ 20/79] Time: 1.691 (1.786) Rate: 71.683 img/sec Prec@1: 71.8750 (77.5298) Prec@5: 91.4062 (93.1176)\n",
|
|
"Test: [ 40/79] Time: 1.669 (1.732) Rate: 73.888 img/sec Prec@1: 63.2812 (76.2767) Prec@5: 85.1562 (92.5877)\n",
|
|
"Test: [ 60/79] Time: 1.693 (1.715) Rate: 74.635 img/sec Prec@1: 75.0000 (73.7193) Prec@5: 92.1875 (90.9964)\n",
|
|
" * Prec@1 71.990 (28.010) Prec@5 90.100 (9.900) Rate 74.874\n",
|
|
"Model gluon_seresnext101_32x4d-300-ttp done.\n",
|
|
"\n",
|
|
"Data processing configuration for current model + dataset:\n",
|
|
"\tinput_size: (3, 300, 300)\n",
|
|
"\tinterpolation: bilinear\n",
|
|
"\tmean: (0.485, 0.456, 0.406)\n",
|
|
"\tstd: (0.229, 0.224, 0.225)\n",
|
|
"\tcrop_pct: 0.875\n",
|
|
"Applying test time pooling to model\n",
|
|
"Model ig_resnext101_32x8d-300-ttp created, param count: 88791336. Running...\n",
|
|
"GPU memory free: 13946, memory used: 1134\n",
|
|
"GPU memory free: 9288, memory used: 5792\n",
|
|
"Test: [ 20/79] Time: 2.850 (3.122) Rate: 41.006 img/sec Prec@1: 75.0000 (79.3155) Prec@5: 93.7500 (94.8661)\n",
|
|
"Test: [ 40/79] Time: 2.855 (2.989) Rate: 42.826 img/sec Prec@1: 64.8438 (78.6966) Prec@5: 87.5000 (94.3979)\n",
|
|
"Test: [ 60/79] Time: 2.856 (2.945) Rate: 43.463 img/sec Prec@1: 74.2188 (76.2295) Prec@5: 89.0625 (93.0456)\n",
|
|
" * Prec@1 75.170 (24.830) Prec@5 92.660 (7.340) Rate 43.622\n",
|
|
"Model ig_resnext101_32x8d-300-ttp done.\n",
|
|
"\n"
|
|
],
|
|
"name": "stderr"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"id": "URXdMbNaOYtq",
|
|
"colab_type": "text"
|
|
},
|
|
"source": [
|
|
"# Results\n",
|
|
"\n",
|
|
"We're going walk through the results and look at several things:\n",
|
|
"\n",
|
|
"1. A look at the Top-1 accuracy % across all the models\n",
|
|
"2. Parameter efficiency\n",
|
|
"3. Model throughput (images/sec)\n",
|
|
"4. (Practical) GPU memory usage in PyTorch\n",
|
|
"5. A comparison of model-model pairings\n",
|
|
"6. ImageNet-V2 generalization"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"metadata": {
|
|
"id": "MvVqWbobe9Jo",
|
|
"colab_type": "code",
|
|
"colab": {}
|
|
},
|
|
"source": [
|
|
"# Setup common charting variables\n",
|
|
"import numpy as np\n",
|
|
"import matplotlib\n",
|
|
"import matplotlib.pyplot as plt\n",
|
|
"matplotlib.rcParams['figure.figsize'] = [16, 10]\n",
|
|
"\n",
|
|
"def annotate(ax, xv, yv, names, xo=0., yo=0., align='left'):\n",
|
|
" for i, (x, y) in enumerate(zip(xv, yv)):\n",
|
|
" ax1.text(x + xo, y + yo, names[i], fontsize=9, ha=align)\n",
|
|
"\n",
|
|
"names_all = list(results.keys())\n",
|
|
"names_effnet = list(results_effnet.keys())\n",
|
|
"names_effnet_tf = list(results_effnet_tf.keys())\n",
|
|
"names_resnet = list(results_resnet.keys())\n",
|
|
"names_resnet_ttp = list(results_resnet_ttp.keys())\n",
|
|
"\n",
|
|
"acc_all = np.array([results[m]['top1'] for m in names_all])\n",
|
|
"acc_effnet = np.array([results[m]['top1'] for m in names_effnet])\n",
|
|
"acc_effnet_tf = np.array([results[m]['top1'] for m in names_effnet_tf])\n",
|
|
"acc_resnet = np.array([results[m]['top1'] for m in names_resnet])\n",
|
|
"acc_resnet_ttp = np.array([results[m]['top1'] for m in names_resnet_ttp])"
|
|
],
|
|
"execution_count": 0,
|
|
"outputs": []
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"id": "P9vtQbVa48kW",
|
|
"colab_type": "text"
|
|
},
|
|
"source": [
|
|
"# Top-1 accuracy\n",
|
|
"\n",
|
|
"We'll start by ranking the models by Top-1 accuracy on the ImageNet-V2 validation set. \n",
|
|
"\n",
|
|
"You'll notice that a well trained\n",
|
|
"* ResNet-50 is holding it's own against an EfficientNet-B1, much closer to that than the B0 it's paired with in the paper\n",
|
|
"* SE-ResNeXt50-32x4d can best the B2 and B3\n",
|
|
"* SE-ResNeXt101-32x4d is very close to the B4.\n",
|
|
"\n",
|
|
"The ResNeXt101-32x8d pretrained on Facebook's Instagram is in a class of it's own. Somewhat unfairly since pretrained on a larger dataset. However, since it generalizes better than any model I've seen to this dataset (see bottom) and runs faster with less memory overehead than the EfficientNet-B4 (despite it's 88M parameters), I've included it."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"metadata": {
|
|
"id": "MjM-eMtSalDS",
|
|
"colab_type": "code",
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/",
|
|
"height": 340
|
|
},
|
|
"outputId": "3bdd1164-4395-47f8-d090-f4c5868027c6"
|
|
},
|
|
"source": [
|
|
"print('Results by top-1 accuracy:')\n",
|
|
"results_by_top1 = list(sorted(results.keys(), key=lambda x: results[x]['top1'], reverse=True))\n",
|
|
"for m in results_by_top1:\n",
|
|
" print(' Model: {:34}, Top-1 {:4.2f}, Top-5 {:4.2f}, Rate: {:4.2f}'.format(m, results[m]['top1'], results[m]['top5'], results[m]['rate']))"
|
|
],
|
|
"execution_count": 10,
|
|
"outputs": [
|
|
{
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Results by top-1 accuracy:\n",
|
|
" Model: ig_resnext101_32x8d-300-ttp , Top-1 75.17, Top-5 92.66, Rate: 43.62\n",
|
|
" Model: ig_resnext101_32x8d-224 , Top-1 73.83, Top-5 92.28, Rate: 83.35\n",
|
|
" Model: gluon_seresnext101_32x4d-300-ttp , Top-1 71.99, Top-5 90.10, Rate: 74.87\n",
|
|
" Model: tf_efficientnet_b4-380 , Top-1 71.34, Top-5 90.11, Rate: 69.10\n",
|
|
" Model: gluon_seresnext101_32x4d-260-ttp , Top-1 71.14, Top-5 89.47, Rate: 95.84\n",
|
|
" Model: gluon_seresnext50_32x4d-300-ttp , Top-1 70.47, Top-5 89.18, Rate: 104.69\n",
|
|
" Model: gluon_seresnext101_32x4d-224 , Top-1 70.01, Top-5 88.91, Rate: 131.57\n",
|
|
" Model: gluon_seresnext50_32x4d-260-ttp , Top-1 69.67, Top-5 88.62, Rate: 126.52\n",
|
|
" Model: gluon_seresnext50_32x4d-224 , Top-1 68.67, Top-5 88.32, Rate: 150.43\n",
|
|
" Model: tf_efficientnet_b3-300 , Top-1 68.52, Top-5 88.70, Rate: 119.13\n",
|
|
" Model: efficientnet_b2-260 , Top-1 67.80, Top-5 88.20, Rate: 144.20\n",
|
|
" Model: resnet50-260-ttp , Top-1 67.63, Top-5 87.63, Rate: 135.92\n",
|
|
" Model: efficientnet_b1-240 , Top-1 67.55, Top-5 87.29, Rate: 151.63\n",
|
|
" Model: tf_efficientnet_b2-260 , Top-1 67.40, Top-5 87.58, Rate: 142.73\n",
|
|
" Model: resnet50-240-ttp , Top-1 67.02, Top-5 87.04, Rate: 154.35\n",
|
|
" Model: resnet50-224 , Top-1 66.81, Top-5 87.00, Rate: 159.51\n",
|
|
" Model: dpn68b-224 , Top-1 65.60, Top-5 85.94, Rate: 155.15\n",
|
|
" Model: efficientnet_b0-224 , Top-1 64.58, Top-5 85.89, Rate: 165.73\n"
|
|
],
|
|
"name": "stdout"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"metadata": {
|
|
"id": "ENtozBUwwdO-",
|
|
"colab_type": "code",
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/",
|
|
"height": 745
|
|
},
|
|
"outputId": "c0834583-d1f3-4976-9c7b-c54ef4520e79"
|
|
},
|
|
"source": [
|
|
"sort_ix = np.argsort(acc_all)\n",
|
|
"acc_sorted = acc_all[sort_ix]\n",
|
|
"acc_min, acc_max = acc_sorted[0], acc_sorted[-1]\n",
|
|
"names_sorted = np.array(names_all)[sort_ix]\n",
|
|
"fig = plt.figure()\n",
|
|
"ax1 = fig.add_subplot(111)\n",
|
|
"ix = np.arange(len(acc_sorted))\n",
|
|
"ix_effnet = ix[np.in1d(names_sorted[ix], names_effnet)]\n",
|
|
"ix_effnet_tf = ix[np.in1d(names_sorted[ix], names_effnet_tf)]\n",
|
|
"ix_resnet = ix[np.in1d(names_sorted[ix], names_resnet)]\n",
|
|
"ix_resnet_ttp = ix[np.in1d(names_sorted[ix], names_resnet_ttp)]\n",
|
|
"ax1.bar(ix_effnet, acc_sorted[ix_effnet], color='r', label='EfficientNet')\n",
|
|
"ax1.bar(ix_effnet_tf, acc_sorted[ix_effnet_tf], color='#8C001A', label='TF-EfficientNet')\n",
|
|
"ax1.bar(ix_resnet, acc_sorted[ix_resnet], color='b', label='ResNet')\n",
|
|
"ax1.bar(ix_resnet_ttp, acc_sorted[ix_resnet_ttp], color='#43C6DB', label='ResNet + TTP')\n",
|
|
"plt.ylim([math.ceil(acc_min - .3*(acc_max - acc_min)),\n",
|
|
" math.ceil(acc_max + .3*(acc_max - acc_min))])\n",
|
|
"ax1.set_title('Top-1 Comparison')\n",
|
|
"ax1.set_ylabel('Top-1 Accuracy (%)')\n",
|
|
"ax1.set_xlabel('Network Architecture')\n",
|
|
"ax1.set_xticks(ix)\n",
|
|
"ax1.set_xticklabels(names_sorted, rotation='45', ha='right')\n",
|
|
"ax1.legend()\n",
|
|
"plt.show()"
|
|
],
|
|
"execution_count": 11,
|
|
"outputs": [
|
|
{
|
|
"output_type": "display_data",
|
|
"data": {
|
|
"image/png": "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\nn1plnw899FAOP/zwNa7pwx/+cJ588snB42233TZ/8id/Mnh87bXX5phjjhm2j9mzZ+eGG25Y4xp6\nxRpYAABg/bC2R2NbW+0lG2+8cWbPnr1C+1VXXZXTTjstRx55ZJLk8ssvz6OPPppx48atts+tttoq\n11577XOvd8CHP/zhHHnkkZkwYcJg2x133JG77747O+yww4j6mD17dmbOnJmDDz54jevoBSOwAAAA\na9HHP/7xfO5zn8sZZ5yRI444IoceemieeOKJ7Lrrrrnmmmty5pln5vzzz0+SzJkzJ/vtt1923nnn\nTJkyJT/84Q8zd+7cTJo0KUny7LPPZvr06dltt90yefLkXHbZZUmSm266KXvttVcOP/zw/P7v/36O\nOOKItNZy0UUX5aGHHsree++dvffee7CmU045JWefffYKtS5cuDDHHntsdt999+yyyy754he/mKef\nfjrvfve7c80116Svry/XXHPNKHxrI2MEFgAAYA0tWrQofX19g8ennXZajj/++Hzzm9/MG9/4xsGp\nwJtsssngSO2ZZ545eP0RRxyRU089NYcddlieeuqp/OpXv8r8+fMHz19xxRXZbLPNcvvtt2fx4sXZ\nY489csABByRJ7rzzznz/+9/PVlttlT322CPf+ta38o53vCMf+tCH8vWvfz1bbLHFYD9/+qd/mo9+\n9KOZM2fOMvWfffbZ2WeffXLllVfmsccey+6775799tsv73vf+zJz5sz84z/+41r/zp4PARYAAGAN\nrWoK8Ug8/vjjmTdvXg477LAk/e9IXd6MGTNy1113DU4p/sUvfpH7778/G264YXbfffdsvfXWSZK+\nvr7MnTs3f/iHf7jSZ40bNy7Tp0/PBz7wgRx00EHL9P9v//ZvgyPCTz31VH7yk5+s0ecZDQIsAADA\nOqq1losvvjgHHnjgMu033XRTXvjCFw4ejxs3Ls8888ywfR111FH5wAc+MDg9eWn/n//85/PqV796\nmWtvvfXWtVD92mcNLAAAwBjYdNNNs/XWW+f6669PkixevHiZ3YOT5MADD8yll16aJUuWJEnuu+++\nLFy4cLX9Pv744yu0b7DBBjn55JNz4YUXLtP/xRdfnDawYdWdd945bB9jTYAFAABYQ0vXwC79OfXU\nU5/T/Z/+9Kdz0UUXZfLkyXnta1+bn/3sZ8ucP/7447PDDjtkypQpmTRpUk488cTVjrSecMIJef3r\nX7/MJk5LHXfcccvcf8YZZ2TJkiWZPHlydtxxx5xxxhlJkr333jt33333OreJU7URbA091qZOndpm\nzpw51mUAAADrkHvuuSfbb7/9WJfBc7Syv1tV3dFam7q6e43AAgAA0AkCLAAAAJ0gwAIAANAJAiwA\nAACdIMACAADQCQIsAAAAnSDAAgAArIFHHnlk8P2vL33pS/Oyl71s8Liqlnk/7Ny5c1e4/5hjjsl2\n2203eM1rX/vaJMnixYuz3377Db6D9eabb86OO+6Yvr6+zJs3L4cffviwdR1//PG5++671+gz3XTT\nTfn2t789eHzmmWdmwoQJmT9//mDbJptsstp+3v/+96/R81dnfE96BQAAGGUX1MvWan+ntHnDnt98\n880ze/bsJP1Bb5NNNsk73/nOJP0hb+m54Zx33nkrBNI777wzSQbvP+mkk3LaaaflyCOPTJJce+21\nw/b58Y9/fLXPXZWbbropm2yyyWCYTpItttgiF1xwQT74wQ+OuJ/3v//9+bu/+7s1rmNVjMACAACs\nI+bPn58jjzwyt99+e/r6+nLZZZflc5/7XM4444wcccQRmTt3biZNmpQkefbZZ/POd74zkyZNyuTJ\nk3PxxRcnSfbaa6/MnDkzSTJjxoxMmzYtU6ZMyZvf/OY88cQTSZJtt90273nPezJlypTstNNOuffe\nezN37tx87GMfy4UXXpi+vr7cfPPNSZJjjz0211xzTR599NEV6v3MZz6T3XffPX19fTnxxBPz7LPP\n5tRTT82iRYvS19eXI444Yq1+PwIsAADAWrY0wPX19eWwww5b5XXTp08fvO6II47IlltumY9//OPZ\nc889M3v27Jx44ok59NBDc9555+Wqq65a5t7LL788c+fOzezZs3PXXXetEBZ//vOf56yzzsqNN96Y\nWbNmZerUqfnQhz40eH6LLbbIrFmz8va3vz3nn39+tt1225x00kk5+eSTM3v27Oy5555J+keTjz32\n2HzkIx9Zpv977rkn11xzTb71rW9l9uzZGTduXK666qqcc8452XjjjTN79uwVan6+ejaFuKpeneSa\nIU2vSPLuJDcl+ViSjZI8k+R/t9Zu61UdAAAAo21pgFudlU0hHqkbb7wxJ510UsaP7491L3nJS5Y5\nf8stt+Tuu+/OHnvskSR5+umnM23atMHzf/zHf5wk2XXXXfOFL3xh2Ge94x3vSF9f3+AU6ST52te+\nljvuuCO77bZbkv7QvuWWW67RZxmpngXY1toPkvQlSVWNSzIvyXVJ/inJe1trX6mqg5Ocm2SvXtUB\nAACwLnjb296WO++8M1tttVVuuOGGnj+vtZb9998/V1999UrPv/CFL0ySjBs3Ls8888ywfb34xS/O\nW9/61lxyySXL9H/00UfnAx/4wNorejVGawrxvkl+2Fp7IElL8lsD7ZsleWiUagAAABgzn/jEJzJ7\n9uy1Fl7333//XHbZZYPhc/k1qq95zWvyrW99K3PmzEmSLFy4MPfdd9+wfW666aZ5/PHHV3rub/7m\nb5Z53r777ptrr712cIfiRx99NA888ECSZIMNNsiSJUvW/MOtwmgF2D9LsjT2/3WS86rqv5Ocn+S0\nUaoBAABgnTJ0DWxfX1+efvrpEd97/PHHZ5tttsnkyZOz884757Of/ewy5ydOnJh//ud/zlve8pZM\nnjw506ZNy7333jtsn4ccckiuu+66ZTZxWmqLLbbIYYcdlsWLFydJdthhh5x11lk54IADMnny5Oy/\n//756U9/miQ54YQTMnny5LW+iVO11tZqhys8oGrD9I+y7thae7iqLkryX621z1fVnyY5obW230ru\nOyHJCUmyzTbb7Lo0yQMAACT9mwhtv/32Y10Gz9HK/m5VdUdrberq7h2NEdiDksxqrT08cHx0kqUr\nhP81ye4ru6m1dnlrbWprberEiRNHoUwAAADWZaMRYN+SX08fTvpHY/9o4Pd9ktw/CjUAAADQcT3b\nhThJqupFSfZPcuKQ5j9P8pGqGp/kqQxMEwYAAIDh9DTAttYWJtl8ubZvJtm1l88FAABg/TNauxAD\nAADA8yLAAgAA0AkCLAAAwBoaN25c+vr6MmnSpBxyyCF57LHH1qifvfbaK1On/votMjNnzsxee+01\n7D1z585d4d2v6zsBFgAAWC9Urd2fkdh4440ze/bsfO9738tLXvKSXHLJJWtc//z58/OVr3xlxNcL\nsAAAAKyRadOmZd68eYPH5513XnbbbbdMnjw573nPe5IkCxcuzBve8IbsvPPOmTRpUq655prB66dP\nn56zzz57hX6fffbZTJ8+fbCvyy67LEly6qmn5uabb05fX18uvPDCHn+6dUNPdyEGAAD4TfDss8/m\na1/7Wo477rgkyYwZM3L//ffntttuS2sthx56aL7xjW9kwYIF2WqrrfLlL385SfKLX/xisI9p06bl\nuuuuy9e//vVsuummg+1XXHFFNttss9x+++1ZvHhx9thjjxxwwAE555xzcv755+dLX/rS6H7YMWQE\nFgAAYA0tWrQofX19eelLX5qHH344+++/f5L+ADtjxozssssumTJlSu69997cf//92WmnnfLVr341\n73rXu3LzzTdns802W6a/008/PWedddYybTNmzMinPvWp9PX15Q/+4A/yyCOP5P777x+1z7guEWAB\nAADW0NI1sA888EBaa4NrYFtrOe200zJ79uzMnj07c+bMyXHHHZdXvepVmTVrVnbaaaecfvrped/7\n3rdMf/vss08WLVqUW265ZbCttZaLL754sK8f//jHOeCAA0b1c64rBFgAAIDnacKECbnoootywQUX\n5JlnnsmBBx6YK6+8Mk888USSZN68eZk/f34eeuihTJgwIUceeWSmT5+eWbNmrdDX6aefnnPPPXfw\n+MADD8yll16aJUuWJEnuu+++LFy4MJtuumkef/zx0fmA6whrYAEAANaCXXbZJZMnT87VV1+do446\nKvfcc0+mTZuWJNlkk03ymc98JnPmzMn06dPzghe8IBtssEEuvfTSFfo5+OCDM3HixMHj448/PnPn\nzs2UKVPSWsvEiRNz/fXXZ/LkyRk3blx23nnnHHPMMTn55JNH7bOOlWqtjXUNqzV16tQ2c+bMsS4D\nAABYh9xzzz3Zfvvtx7oMnqOV/d2q6o7W2tRV3DLIFGIAAAA6QYAFAACgEwRYAAAAOkGABQAAoBME\nWAAAADpBgAUAAKATBFgAAIA1NG7cuPT19WXSpEk55JBD8thjj61RP3vttVemTv31W2RmzpyZvfba\na9h75s6dm89+9rNr9Lyh/uIv/iJ9fX3ZYYcdsvHGG6evry99fX3ZcccdV9p+7bXX5phjjsl2222X\nvr6+TJkyJd/5zneedx0jMX5UngIAANBj+31nzlrt78Zpr1ztNRtvvHFmz56dJDn66KNzySWX5O//\n/u/X6Hnz58/PV77ylRx00EEjun5pgH3rW9867HX//M//nLlz5+bMM89c6flLLrlksL83vvGNg59n\n6HOWb//Sl76U8847L4cffnhmzJiRE088MXfdddeI6n4+jMACAACsBdOmTcu8efMGj88777zstttu\nmTx5ct7znvckSRYuXJg3vOEN2XnnnTNp0qRcc801g9dPnz49Z5999gr9Pvvss5k+ffpgX5dddlmS\n5NRTT83NN9+cvr6+XHjhhT3+dKv2ute9LnPmrN3/eLAqRmABAACep2effTZf+9rXctxxxyVJZsyY\nkfvvvz+33XZbWms59NBD841vfCMLFizIVlttlS9/+ctJkl/84heDfUybNi3XXXddvv71r2fTTTcd\nbL/iiiuy2Wab5fbbb8/ixYuzxx575IADDsg555yT888/P1/60pdG98Mu59///d+z0047jcqzBFgA\nAIA1tGjRovT19WXevHnZfvvts//++yfpD7AzZszILrvskiR54okncv/992fPPffMKaeckne96115\n4xvfmD333HOZ/k4//fScddZZ+eAHPzjYNmPGjNx111259tprk/SH3vvvvz8bbrjhKut65JFHsu++\n+yZJHn300Tz99NO5/vrrkySf/vSn10rgnD59es4666xMnDgxV1xxxfPubyQEWAAAgDW0dA3sk08+\nmQMPPDCXXHJJ3vGOd6S1ltNOOy0nnnjiCvfMmjUrN9xwQ04//fTsu+++efe73z14bp999snpp5+e\nW265ZbCttZaLL744Bx544DL93HTTTausa/PNNx9cs7q6NbBrauka2NFkDSwAAMDzNGHChFx00UW5\n4IIL8swzz+TAAw/MlVdemSeeeCJJMm/evMyfPz8PPfRQJkyYkCOPPDLTp0/PrFmzVujr9NNPz7nn\nnjt4fOCBB+bSSy/NkiVLkiT33XdfFi5cmE033TSPP/746HzAdYQRWAAAgLVgl112yeTJk3P11Vfn\nqKOOyj333JNp06YlSTbZZJN85jOfyZw5czJ9+vS84AUvyAYbbJBLL710hX4OPvjgTJw4cfD4+OOP\nz9y5czNlypS01jJx4sRcf/31mTx5csaNG5edd945xxxzTE4++eRR+6xjpVprY13Dak2dOrXNnDlz\nrMsAAADWIffcc0+23377sS6D52hlf7equqO1NnUVtwwyhRgAAIBOEGABAADoBAEWAACAThBgAQCA\nzurCnj782vP9ewmwAABAJ2200UZ55JFHhNiOaK3lkUceyUYbbbTGfXiNDgAA0Elbb711HnzwwSxY\nsGCsS2GENtpoo2y99dZrfL8ACwAAdNIGG2yQ7bbbbqzLYBSZQgwAAEAnCLAAAAB0ggALAABAJwiw\nAAAAdIIACwAAQCcIsAAAAHSCAAsAAEAnCLAAAAB0ggALAABAJwiwAAAAdIIACwAAQCcIsAAAAHSC\n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\n",
|
|
"text/plain": [
|
|
"<Figure size 1152x720 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {
|
|
"tags": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"id": "jpI0KfoM5lCZ",
|
|
"colab_type": "text"
|
|
},
|
|
"source": [
|
|
"# Parameter Efficiency\n",
|
|
"\n",
|
|
"No surprises here, exactly as per the EfficientNet paper, they are in a class of their own in terms of parameter efficiency.\n",
|
|
"\n",
|
|
"The test time pooling effectively increases the parameter efficiency of the ResNet models, but at the cost of both throughput and memory efficency (see later graphs).\n",
|
|
"\n",
|
|
"I'm not going to repeat the FLOP differences as there are again no surprises, same as paper barring differences in the models being compare to. If you are looking at FLOP counts for the EfficientNet models, do keep in mind, their counts appear to be for inference optiized models with the BatcNorm layers fused. The counts will be higher if you're working with trainable models that still have their BN layers. You can see some counts I did on ONNX optimized models here (https://github.com/rwightman/gen-efficientnet-pytorch/blob/master/BENCHMARK.md)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"metadata": {
|
|
"id": "iE69A1asS4_n",
|
|
"colab_type": "code",
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/",
|
|
"height": 621
|
|
},
|
|
"outputId": "ee70eb92-8618-42a5-a5af-d584821f471e"
|
|
},
|
|
"source": [
|
|
"params_effnet = np.array([results[m]['param_count'] for m in names_effnet])\n",
|
|
"params_effnet_tf = np.array([results[m]['param_count'] for m in names_effnet_tf])\n",
|
|
"params_resnet = np.array([results[m]['param_count'] for m in names_resnet])\n",
|
|
"params_resnet_ttp = np.array([results[m]['param_count'] for m in names_resnet_ttp])\n",
|
|
"\n",
|
|
"fig = plt.figure()\n",
|
|
"ax1 = fig.add_subplot(111)\n",
|
|
"ax1.scatter(params_effnet, acc_effnet, s=10, c='r', marker=\"s\", label='EfficientNet')\n",
|
|
"ax1.plot(params_effnet, acc_effnet, c='r')\n",
|
|
"annotate(ax1, params_effnet, acc_effnet, names_effnet, xo=-.5, align='right')\n",
|
|
"\n",
|
|
"ax1.scatter(params_effnet_tf, acc_effnet_tf, s=10, c='#8C001A', marker=\"v\", label='TF-EfficientNet')\n",
|
|
"ax1.plot(params_effnet_tf, acc_effnet_tf, c='#8C001A')\n",
|
|
"annotate(ax1, params_effnet_tf, acc_effnet_tf, names_effnet_tf, xo=.5, align='left')\n",
|
|
"\n",
|
|
"ax1.scatter(params_resnet, acc_resnet, s=10, c='b', marker=\"o\", label='ResNet')\n",
|
|
"ax1.plot(params_resnet, acc_resnet, c='b')\n",
|
|
"annotate(ax1, params_resnet, acc_resnet, names_resnet, xo=0.5, align='left')\n",
|
|
"\n",
|
|
"ax1.scatter(params_resnet_ttp, acc_resnet_ttp, s=10, c='#43C6DB', marker=\"x\", label='ResNet TTP')\n",
|
|
"ax1.plot(params_resnet_ttp, acc_resnet_ttp, c='#43C6DB')\n",
|
|
"annotate(ax1, params_resnet_ttp, acc_resnet_ttp, names_resnet_ttp, xo=0.3, align='left')\n",
|
|
"\n",
|
|
"ax1.set_title('Top-1 vs Parameter Count')\n",
|
|
"ax1.set_ylabel('Top-1 Accuracy (%)')\n",
|
|
"ax1.set_xlabel('Parameters (Millions)')\n",
|
|
"ax1.legend()\n",
|
|
"plt.show()"
|
|
],
|
|
"execution_count": 12,
|
|
"outputs": [
|
|
{
|
|
"output_type": "display_data",
|
|
"data": {
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAABB4AAAJcCAYAAABe5mduAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzs3Xl8VNX5x/HPk8meTELIoiIiiBsg\nMSAoiAsiEFSKdf25oCJCtbXFBaNQcWmLO4iiiFrcihut1qVWQwRFAatsUjdUUIMC6iSBkMmeTM7v\nj5mkAcIWgUng+3698iL33HvPfe6dAJlnznmOOecQEREREREREdkdIsIdgIiIiIiIiIjsvZR4EBER\nEREREZHdRokHEREREREREdltlHgQERERERERkd1GiQcRERERERER2W2UeBARERERERGR3UaJBxER\nERERERHZbZR4EBGRFs/MSht91ZlZRaPti3fxtRLM7J9mttrMnJn12ZX9b+WaV5lZbeh+SsxsmZkN\n2d3X/aXM7Egzq90N/caa2UQz+yb0TPLN7K9mdtCuvtZm1x1iZqt25zVERET2RUo8iIhIi+ecS6z/\nAr4HftWo7bldfTlgHnAhsGEX970t80L3lwK8APzDzBJ3pgMzizCzVvN/u5lFNtFmwKvAIOA8IBno\nAXwO9N+T8YmIiMiu0Wp+OREREdkaM4szs2lm9qOZrTGz+8wsKrRviJmtMrM/mdl6M/vOzM7bWl/O\nuXLn3FTn3AdA3Xaue5mZLdisbbyZ/T30/Zlm9qWZ+c3sBzMbs717cc4FgCeBRKCjmaWb2VtmVhCK\n/zUzO6DR9T40sz+b2UdAOdDOzK5sdN1VZjay0fH1z2OCmRWa2VozOz0U6zdmVmRmYxsd7zGzW8zs\n29Dxz5lZm9Du9wFPo9EnPULnXGlmX4Xi/beZHRhqjw2NIvmtmX0DfNbEIzgDOBE40zm3zDkXcM5t\ncM494JybGeqng5m9Ger/azO7rFG8L5rZhM3vt9H2T2Z2nZl9ZmYbQ/cTbWapwCvAIY3uJ3V7r5eI\niIhsnxIPIiKyN/gTkAl0B44h+Mn4jY32dwSigf2B0cAzZtZpF1z3FaCnmXVo1HYR8Hzo+yeBS51z\nXiALmL+9DkOjAK4ANgLfEfy/+lGgA1Af85TNThsOXAp4gZ+AH4HTgCTgKmCamXVrdHxHoIbg87g7\n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\nWloaYWFhfPrpp85+CqVLl6Zdu3Z06tSJd95557rzT5s2jd69e9OiRQsaN27MY489xpNPPklOTg4h\nISG0aNGCoUOHUrp06ULNPW7cOFJSUhgxYgQ2m433338fgF69enHy5EmefvppbDYbKSkpjBkzho0b\nN7J69Wqeeuop/v73vyt0EBERERGREsPk/evwnSI4ONjasWOHq8u4Nf/9LzRvDv/3f9Cpk6urua2W\nL4eePeHcOShdGj76CDp2vPb58+fPJzk5OV9fBhERERERKfmMMTstywp2dR3yC91q4U7u4B0tOnZ0\nhA1r18LTT18/dBAREREREZHiQ8GDO7HbHV0Vq1d3dSUu0bFj4QOH/v37F2ktIiIiIiIiUjjq8eBO\n7HZo2BA89MsmIiIiIiIi7kHfYN2FZTmChzvwNgsRERERERFxXwoe3MWxY5CaquBBRERERERE3IqC\nB3dxBzeWFBEREREREfel4MFdKHgQERERERERN6TgwV3Y7VCpEgQFuboSERERERERkUJT8OAu1FhS\nRERERERE3JCCB3eQnQ0JCQoeRERERERExO0oeHAHiYlw4YKCBxEREREREXE7Ch7cgRpLioiIiIiI\niJtS8OAO7Hbw8ID69V1diYiIiIiIiMhNUfDgDux2qFUL/PxcXYmIiIiIiIjITVHw4A60o4WIiIiI\niIi4KQUPxd3Zs3DggIIHERERERERcUsKHoq7hASwLAUPIiIiIiIi4pYUPBR3eTtaPPywa+sQERER\nERERuQUKHoo7ux1Kl4YaNVxdiYiIiIiIiMhNU/BQ3Nnt0KCBYztNERERERERETejb7PFnXa0EBER\nERERETem4KE4++knx38KHkRERERERMRNKXgozvIaSyp4EBERERERETel4KE4i493PCp4EBERERER\nETel4KE4s9vhnnsc/4mIiIiIiIi4IQUPxZkaS4qIiIiIiIibU/BQXGVnw7ffKngQERERERERt6bg\nobj64Qc4f17Bg4iIiIiIiLg1BQ/FlXa0EBERERERkRJAwUNxZbeDMdCggasrEREREREREbllCh6K\nK7sdataE0qVdXYmIiIiIiIjILVPwUFxpRwsREREREREpARQ8FEfnz0NiooIHERERERERcXsKHoqj\nhATIyVHwICIiIiIiIm5PwUNxpB0tREREREREpIRQ8FAc2e3g6wu1arm6EhEREREREZFfRcFDcWS3\nQ/364Onp6kpEREREREREfhUFD8WRdrQQERERERGREkLBQ3Fz8iQcO6bgQUREREREREoEBQ/FjRpL\nioiIiIiISAlyS8GDMaaSMSbOGLPJGONjjFlmjIkxxjQxxiy8zri2xpg+t3C9RsaYVrdY63XHxsTE\nMHDgwKuOX7hwgV69ehEaGkqvXr24cOHCVedMmjSJpk2b0rJlS4YOHYplWZw/f56nnnqKkJAQmjVr\nxueff55vzKZNmzDGkJycXHBBCh5ERERERESkBLnVFQ+tgbWWZbUGygNBlmXZLMv60rKsXtcaZFnW\nasuy/nUL12sE3FLwcKtj58+fT926ddmyZQt16tRh/vz5V50TERHB9u3b+eKLLzh+/DgbN27Ey8uL\nf/zjH2zdupWVK1cSFRXlPN+yLCZPnkxwcPC1L2y3Q4UKUKnSzZYsIiIiIiIiUuwUKngwxkw0xsTm\nrnLoB7wO9DXGzAPmAg/nrngoa4xJzB0TmLsSIjZ3ZUQlY0x/Y8xrua+H5b4WY4yZbRyqG2N2GmOi\njTFfG2PyvrWPBCJzz62S+zjVGLPWGLPBGOOTO+dQY8yW3DoHFjS2oPd34MABIiIiaNSoEUuWLAEg\nNjaW9u3bA9ChQwdiY2OvGle7dm3nzz4+Pnh5eVGqVCmqV68OgJ+fHx4ev3zES5YsoU2bNpQpU+ba\nH3ZeY0ljrvMrIiIiIiIiIuIevG50gjGmLRBoWVaYMaY0EAf8DahiWdYEY0x1YJ5lWU/mnp839E84\nVkXMyT3ucdmcBpgK2CzLSjPGTAHaAXuAe4FQIAf4Lve8yUBVy7ImXHaNGMuyoowxc4GnjDEHgLY4\nVjd4AFuMMZ9eObag1QYnTpxg3bp1nDt3juDgYLp06UJqaiqBgYEAlCtXjp9//vman1FsbCxHjx6l\nVav8CytGjBjBqFGjAMjMzGTevHmsXLmSpUuXFjyRvz9kZOR9SI7n6enXvK6IiIiIiIhIcXfD4AF4\nCAgzxsTkPvcBKhRiXEPgH3lPLMvKuSyUCAKqA//JPVYW2IcjePjOsqxzAMaY7OvMvzP38VBuPX5A\nfWBT7vEA4L5C1Mmjjz6Kl5cXAQEB3HPPPZw4cYLy5ctz+vRpANLS0ihfvjyJiYnOfhDz5s2jVq1a\nxMfHM3r0aFasWHF56MIbb7xBQEAA//M//wPA3Llz6d27N97e3tcuJC90yHPmTGHKFxERERERESm2\nChM8fItj5cJwAGOMN/A8UPUG4/YANmB/7rjLb+s4CfwAtLcsKyP39VJAFcAqYK5LBdR6+XkGx+qI\nb4AulmVZxphSlmVlGmPqFzA2n127dpGVlcX58+c5fvw4d999N2FhYaxatYpGjRqxatUqwsLCqFWr\nFjExMc5xiYmJDBgwgGXLlhEUFOQ8PnPmTPbv38+HH374y4exZw8HDhxg0aJFxMfH06dPHz7//HN8\nfX2vV5qIiIiIiIiIW7th8GBZ1ipjTIvcFQ8WkAxsKMTcE4F/GmN6A9k4woq8OS1jzEhgee5tFznA\nCOBa9xV8AbxsjGkIvHyNOvcYY9YDsbkrJc4bYzpeObZx48ZXja1cuTJdu3bl4MGDTJgwAQ8PD/r3\n78+AAQMIDQ2latWqfPDBB1eNi4qK4vTp0/Tr1w+AV199lccff5zhw4fTvHlzWrduDcCGDRuYNWuW\nc5zNZuNf//qXQgcREREREREp8YxlFbTAoOQKDg62duzY4eoyChYQkP/2CvV4EBERERERuSnGmJ2W\nZV1nK0G53Qpzq0WJYYyZVLZsWWw2GwDe3t6sXbvWtUVdTiGDiIiIiIiIlDBa8SAiIiIiIiIlhlY8\nFD8eNz5FREREREREROTWKHgQERERERERkSKj4EFEREREREREioyCBxEREREREREpMgoeRERERERE\nRKTIKHgQERERERERkSKj4EFEREREREREioyCBxEREREREREpMgoeRERERERERKTIKHgQERERERER\nkSKj4EFEREREREREioyCBxEREREREREpMgoeRERERERERKTIKHgQERERERERkSKj4EFERERERERE\nioyCBxEREREREREpMgoeRERERERERKTIKHgQERERERERkSKj4EFEREREREREioyCBxEREREREREp\nMsayLFfXcFsZY04A/9/encfKWZVxHP/+pJiyKAhowyaLgAiVtRAIaBAwIhJBg0ICCW4xGEwBNQjE\nYDFoIICIMaJIMajEooCAQIjKEvEPKmUtUBWCrIKlkbYie/v4x3tapqWXckPnzr29388/855l3nnm\nvTk5M889551HBx2H1AcbAfMGHYQ0YI4DyXEggeNgvNuiqt496CD0mnGXeJBWV0lmVdWUQcchDZLj\nQHIcSOA4kEYbt1pIkiRJkqS+MfEgSZIkSZL6xsSDtPq4cNABSKOA40ByHEjgOJBGFe/xIEmSJEmS\n+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\nTw6efx6gQyAAAAAASUVORK5CYII=\n",
|
|
"text/plain": [
|
|
"<Figure size 1152x720 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {
|
|
"tags": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"id": "1VpRimNp5tuW",
|
|
"colab_type": "text"
|
|
},
|
|
"source": [
|
|
"# Image Throughput\n",
|
|
"\n",
|
|
"One of the first thing I noticed running batches through my first ported EfficientNet weights -- the image throughput does not scale with FLOP or parameter counts. Much larger ResNet, DPN, etc. models can match the throughput of EfficientNet models with far fewer parameters and FLOPS. I've trained on many of these models and training throughputs do -- in relative terms -- mirror the validation numbers here.\n",
|
|
"\n",
|
|
"This was surprising to me given the FLOP ratios. I'd like to see an in depth comparison with Tensorflow, XLA enabled, targeted for both GPU and TPU."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"metadata": {
|
|
"id": "iapzkrt2gBwR",
|
|
"colab_type": "code",
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/",
|
|
"height": 357
|
|
},
|
|
"outputId": "f47bfaa1-d78a-4d2f-a325-8fe247acc46a"
|
|
},
|
|
"source": [
|
|
"print('Results by image rate:')\n",
|
|
"results_by_rate = list(sorted(results.keys(), key=lambda x: results[x]['rate'], reverse=True))\n",
|
|
"for m in results_by_rate:\n",
|
|
" print(' {:32} Rate: {:>6.2f}, Top-1 {:.2f}, Top-5: {:.2f}'.format(\n",
|
|
" m, results[m]['rate'], results[m]['top1'], results[m]['top5']))\n",
|
|
"print()\n"
|
|
],
|
|
"execution_count": 44,
|
|
"outputs": [
|
|
{
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Results by image rate:\n",
|
|
" efficientnet_b0-224 Rate: 165.73, Top-1 64.58, Top-5: 85.89\n",
|
|
" resnet50-224 Rate: 159.51, Top-1 66.81, Top-5: 87.00\n",
|
|
" dpn68b-224 Rate: 155.15, Top-1 65.60, Top-5: 85.94\n",
|
|
" resnet50-240-ttp Rate: 154.35, Top-1 67.02, Top-5: 87.04\n",
|
|
" efficientnet_b1-240 Rate: 151.63, Top-1 67.55, Top-5: 87.29\n",
|
|
" gluon_seresnext50_32x4d-224 Rate: 150.43, Top-1 68.67, Top-5: 88.32\n",
|
|
" efficientnet_b2-260 Rate: 144.20, Top-1 67.80, Top-5: 88.20\n",
|
|
" tf_efficientnet_b2-260 Rate: 142.73, Top-1 67.40, Top-5: 87.58\n",
|
|
" resnet50-260-ttp Rate: 135.92, Top-1 67.63, Top-5: 87.63\n",
|
|
" gluon_seresnext101_32x4d-224 Rate: 131.57, Top-1 70.01, Top-5: 88.91\n",
|
|
" gluon_seresnext50_32x4d-260-ttp Rate: 126.52, Top-1 69.67, Top-5: 88.62\n",
|
|
" tf_efficientnet_b3-300 Rate: 119.13, Top-1 68.52, Top-5: 88.70\n",
|
|
" gluon_seresnext50_32x4d-300-ttp Rate: 104.69, Top-1 70.47, Top-5: 89.18\n",
|
|
" gluon_seresnext101_32x4d-260-ttp Rate: 95.84, Top-1 71.14, Top-5: 89.47\n",
|
|
" ig_resnext101_32x8d-224 Rate: 83.35, Top-1 73.83, Top-5: 92.28\n",
|
|
" gluon_seresnext101_32x4d-300-ttp Rate: 74.87, Top-1 71.99, Top-5: 90.10\n",
|
|
" tf_efficientnet_b4-380 Rate: 69.10, Top-1 71.34, Top-5: 90.11\n",
|
|
" ig_resnext101_32x8d-300-ttp Rate: 43.62, Top-1 75.17, Top-5: 92.66\n",
|
|
"\n"
|
|
],
|
|
"name": "stdout"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"metadata": {
|
|
"id": "Y2bawRNtfFmH",
|
|
"colab_type": "code",
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/",
|
|
"height": 621
|
|
},
|
|
"outputId": "cc4e5ef8-4e0c-46dc-8070-6d8343423a5f"
|
|
},
|
|
"source": [
|
|
"rate_effnet = np.array([results[m]['rate'] for m in names_effnet])\n",
|
|
"rate_effnet_tf = np.array([results[m]['rate'] for m in names_effnet_tf])\n",
|
|
"rate_resnet = np.array([results[m]['rate'] for m in names_resnet])\n",
|
|
"rate_resnet_ttp = np.array([results[m]['rate'] for m in names_resnet_ttp])\n",
|
|
"\n",
|
|
"fig = plt.figure()\n",
|
|
"ax1 = fig.add_subplot(111)\n",
|
|
"ax1.scatter(rate_effnet, acc_effnet, s=10, c='r', marker=\"s\", label='EfficientNet')\n",
|
|
"ax1.plot(rate_effnet, acc_effnet, c='r')\n",
|
|
"annotate(ax1, rate_effnet, acc_effnet, names_effnet, xo=.5, align='left')\n",
|
|
"\n",
|
|
"ax1.scatter(rate_effnet_tf, acc_effnet_tf, s=10, c='#8C001A', marker=\"v\", label='EfficientNet-TF')\n",
|
|
"ax1.plot(rate_effnet_tf, acc_effnet_tf, c='#8C001A')\n",
|
|
"annotate(ax1, rate_effnet_tf, acc_effnet_tf, names_effnet_tf, xo=-.5, yo=-.2, align='right')\n",
|
|
"\n",
|
|
"ax1.scatter(rate_resnet, acc_resnet, s=10, c='b', marker=\"o\", label='ResNet')\n",
|
|
"ax1.plot(rate_resnet, acc_resnet, c='b')\n",
|
|
"annotate(ax1, rate_resnet, acc_resnet, names_resnet, xo=.3, align='left')\n",
|
|
"\n",
|
|
"ax1.scatter(rate_resnet_ttp, acc_resnet_ttp, s=10, c='#43C6DB', marker=\"x\", label='ResNet TPP')\n",
|
|
"ax1.plot(rate_resnet_ttp, acc_resnet_ttp, c='#43C6DB')\n",
|
|
"annotate(ax1, rate_resnet_ttp, acc_resnet_ttp, names_resnet_ttp, xo=0., yo=0., align='center')\n",
|
|
"\n",
|
|
"ax1.set_title('Top-1 vs Rate')\n",
|
|
"ax1.set_ylabel('Top-1 Accuracy (%)')\n",
|
|
"ax1.set_xlabel('Rate (Images / sec)')\n",
|
|
"ax1.legend()\n",
|
|
"plt.show()"
|
|
],
|
|
"execution_count": 14,
|
|
"outputs": [
|
|
{
|
|
"output_type": "display_data",
|
|
"data": {
|
|
"image/png": "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\nPT39smMcP36c1q1b07x5cyIiInLVnO3dd99lxowZF60fM2YMzZo1IyIign/+85+O50XWr19PREQE\nTZo0yXXcpa41p5SUFL744gvH8t8/QxEREREREbm6PGnALcs6aFnWqzdyrDHGlhc1XKu/N489e/Zk\n2bJlufY5fvw40dHRxMbGMnPmTHr37g1AQEAAixcvdrzL73J8fHxYvnw5sbGxzJ492/EcSNOmTfnf\n//7H8uXLqVSpEjNnzrzsGLNmzSIiIoL//ve/DB8+nOHDh1/zNb700kssX76cX375BbC/WgDg5Zdf\nZubMmcTGxhIdHc3x48cve605qQEXERERERG5eXk1A17ZGLPEGFPTGLPaGPODMeYLY8zQy+wfaYz5\n2RgzFxhujKmYdcx/sv4tY4zxNsb8ZIz57x9//EF8fDyxsbHcd999dOrUidq1azN37lwA9u7dS7t2\n7WjZsiXt2rXj8OHDHDt2jAYNGpCcnMzWrVtp1qwZycnJzJgxg+HDhxMZGUlmZiYBAQG4uOT+GFav\nXs29996Lu7s7VapUITU1lfT0dLy9vSlVqtRVPw8XFxdcXe1veDt58iQhISEA3Hnnndhs9u8bPDw8\ncHV1JT09naZNm7J9+3YOHjxIeHg4x48fp3r16pw8eRKwfyFQtmxZAJYvX07dunVp3779ZV8N4O7u\nDthfKXD+/HmCg4NJT0/n9OnTVKlSBXd3d+69915Wr1592WvNacyYMaxbt47IyEhmzZp10WcYHBxM\n3759ad68OV26dOH8+fNX/YxERERERESKmrx+D/j7QG/LslYZY6ZeZd9A4CHLsjKMMbOBd7KO+wfw\nGvAVcNyyrLZhYWFWcHAw+/fvJyUlhZiYGA4dOkSHDh147LHHiIqKYsiQITRq1Ij58+czYsQIRo0a\nxejRo3n66ac5efIkn3/+OWXLlqVbt24EBwfTpUuXyxZ29OhRSpYs6VguUaIEx44dIyAg4Jo/iH37\n9vH4448THx/P9OnTc23bvn07ixYtYsWKFXh4eDBt2jSeeeYZ/Pz8GDduHCVLlqR+/fq8+eab1KpV\ni5SUFMct7/369WP+/PlUrFjxoncB5jR8+HBmzJjBXXfdRcWKFTl69CglSpS46Josy7rqtfbr14+t\nW7eyZMkSABISEnJ9hufOnaNTp06MHTuW559/ngULFvB///d/1/xZiYiIiIiIFAV5HcIWDKzJ+v1q\nb25fa1lWRtbvtYEPjDGxQBTgD/wOrDPGzNy7d69jNjg0NBSbzUZgYCApKSkAbNq0iYEDBxIZGcnI\nkSM5cuQIAM2aNXPMQAcHB1/zRZQqVcoxNsCJEyeuOPOdaVksPnwSK+vfTMuiQoUKrFy5ktWrV/PS\nSy859k1KSuLpp59m9uzZeHp6AlCtWjWqVKkCQJMmTQD48MMP6dixI5s3b2bu3Ln06tULsM+oV6pU\nCWMM4eHhAKxcuZLIyEgiIyM5deoUAG+88Qbx8fFUqVKFGTNmXPaaLre+e/fuREZG8vHHH1/188pZ\nS8OGDfnjjz+ueoyIiIiIiEhRk9cN+A4gOzq+wVX2zczx+xagr2VZkZZlNQVeADyAMZZldXF1deXL\nL78E7M3e39WsWZOxY8cSGxvLypUrmTJlCgDTpk0jPDycxMREsl9j5u7uftX35jVs2JCVK1eSkZHB\nnj178PHxwcPD47L7/+dIKiMSk7l/1Q5GJCazaN8Rx7bixYvjm/V+wSNHjtCxY0cmTZpE1apVHfss\nXryYjIwM/P39WbBgAWC/fdzf3x+AsmXLcuzYMQB8fX1JSkoCYM0a+3cdTZs2JTY2ltjYWHx8fDh7\n9qzjs/Lz88Pb2xtPT0+KFSvGnj17yMjIYOXKlYSHh1/2Wj/99FNiY2N56aWXLvrM/r5sWZbj812z\nZg133333FT9fEREREZHCwmaz5XoP+AcffADAihUrqFmzJqGhoaSlpREVFUXNmjWJiopi0qRJuTKW\n/m7//v1XzZ26knHjxnHmzBnHcuXKlenYsaNjed68eXTr1u2KY8TFxfHjjz9ectvDDz9MaGgowcHB\n+Pn5Oa79119/JTIykmrVqjnWzZs374avozDK61vQXwemG2OOACeA3dd43KvAJ8YYn6zl6cBWINoY\nc87Hx4eHHnqI3bsvPdzo0aPp1auXY/b32WefJSwsjBkzZrB06VKSk5Pp2LEjS5Ys4f7776dPnz4s\nXLiQr7/+mgkTJjB79my2bdtGq1atmDx5MlWrVqVnz540b94cYwwfffQRYJ99fuSRR9i6dStbtmzh\nwQcfZNiwYTTw885VT9kDu2j2VEdsNhvnzp1j3LhxAAwdOpR9+/bRt29fALp27Ur79u154403+Pnn\nn3F1daVVq1bUq1ePl19+ma5duzJ9+nTS0tIYMWKE41rbt29PYGCgo7G/6MN89VW2bNnieP572LBh\nAHz00Uc8+eSTWJZFz549HbeeX+pacypfvjxeXl507NiRnj17XvQZurq68s033zBgwAAqVKhAhw4d\nruVvLiIiIiJS4Hl5eREXF3fR+lmzZjFo0CDHY5tTpkzh2LFjjkyoKwkMDLypxnXcuHF06dIFb+8L\nfcq6devYunUrNWrUuKYx4uLiWLt2LQ8++OBF27777jvAHs48atQoFi5cmGv7rFmzCAsr9K/0viHG\nsqy8G8wYt+zbyrOeAf/Zsqyb/sojLCzMyp5hvR0tPnySEYnJjuXgYu58UL0CJdzyNeDdaYKDg0lM\nTHR2GSIiIiJSxGzbto3q1as7tQYfHx/HRGC2Tz/9lAEDBuDn50eTJk1ITU3lhx9+oHbt2gwaNIht\n27bh4+ND//79SUxM5MUXX+Tw4cPYbDbmzp2LzWbjoYceYvPmzWRmZjJw4EBiY2NJT0+nV69e9OjR\ng9jYWIYOHYq/vz+bN2+mfv36zJw5k/Hjx9O/f3+qVauGv78/y5Yto3Llyrz66qusWrWKWbNmMW/e\nPBYuXMiMGTM4ffo0L7/8Mps3byYjI4OhQ4fStm1bgoODSUtLo0KFCgwaNIjHH3/8omu/VAMeGRnJ\nqFGjrtiAX+rvZoxZZ1lWoe/a83oGvLYx5qOscXcB3xtjPgTCc+zzl2VZrfP4vE4zZswY5i9YQEpG\nJiXcbOxN+wvr7Whe+CuTAcHlCCvhffVBRERERETkltuz7Be2fvmNY7lG145UahFxU2OmpaURGhrq\nWB40aBDdu3dn5cqVPPTQQ45byX18fBwz5UOHDnXs37lzZwYOHMjDDz/M2bNnOX/+PMnJFyb3pk2b\nhp+fH2vWrCE9PZ2IiAhat7a3U7///jtbtmwhMDCQiIgIfvnlF3r37s2YMWNYtmyZ45FWgE6dOjFh\nwoSLJs6GDx9Oy5YtmT59OikpKYSHh9OqVSvefvtt1q5de02ZUH/XuXNnvLy8AFi6dCmlS5e+7jEK\nqzxtwC3LWg/c+7fVA/LyHLebfv360a9fv1zrdpxO572EQwzctp+OAX48V8kfd5eLn10vLDT7LSIi\nIiIFwZlDR9j6xTyszEyMzUbl1s1veszL3YJ+LVJTU9m3bx8PP/wwgCOkOaeYmBg2btzouCX9xIkT\nJCQk4O7uTnh4OEFBQYA9rHrXrl00bdr0kuey2WxERUXx/vvv07Zt21zjL1iwgFGjRgFw9uxZ9uzZ\nc0PXk023oF9eXoewCVC1mAcTagfxj3J+fHPgBC9t2svuM385uywRERERkSLt7sceolhAWQCKBZTl\n7scecnJFV2dZFuPHjycuLo64uDh27tzpmAHPGRSdnT91JV27dmX58uXs3bs31/jffPONY/w9e/Zc\n8rb+Nm3aEBoaSvfu3fPoyoomNeC3iIfNhZfvLMO79wRw7K9M/rVxL/MPniAvn7kXEREREZFr52Kz\n0ezDwQA0+3AwLtcQiHYr+fr6EhQUxPfffw9Aenp6rvRysDe+EydOJCPD/gbn+Ph4Tp8+fdVxU1NT\nL1rv5uZG3759GTt2bK7xx48f7+hTfv/990uO8fPPPxMXF8enn356A1cq2dSA32KNShZjSp2K1PHz\nYvzOwwz54wDHM678zZSIiIiIiNwa1Tq1p0X0O1Tr1D5Pxst+Bjz7Z+DAgdd1/Jdffkl0dDQhISE0\nadKEgwcP5trevXt3atSoQb169ahVqxY9evS46kz3Cy+8wAMPPECLFi0u2vbcc8/lOn7IkCFkZGQQ\nEhJCzZo1GTJkCAAtWrRg69athIaGMmfOnOu6Jrm8PE1Bv1Vu9xT0a3Hesph/8ARTdh/Fx9WFqKpl\nCS9ZzNlliYiIiIgUWLdDCrpcv6Kcgq4Z8HziYgwPB5Tgk9pB+LnaeH37ASbsPMxf5887uzQRERER\nERHJB2rA89mdxTz4pHYQ/1fej28PnqDXpiR2nkl3dlkiIiIiIiJyi6kBdwIPmwsvVSnD8HsCOJ6R\nSa+NSXx/IEUBbSIiIiIiIoWYGnAnaliyGFNDKhLq58XHu47wxnYFtImIiIiIiBRWasCdrKS7K8Pv\nCaBXZX9+P5HG8xv2svr4lV8rICIiIiIiIgWPGvDbgMkKaJsQEkSJrIC2jxXQJiIiIiIiUqioAb+N\nVPH2YEJIEA+X9+P7gyfouTGJP08roE1ERERE5HZls9kIDQ2lVq1atG/fnpSUlBsaJzIykrCwC2/h\nWrt2LZGRkVc8ZteuXXz11Vc3dD5xDjXgtxl3Fxd6VSnDe/cEcOJcJr02JfGdAtpERERERG5LXl5e\nxMXFsXnzZkqVKsUnn3xyw2MlJyfz008/XfP+asALHjXgt6nwksWYUqci9fy8+GTXEV7ffoDjfymg\nTURERETkdtW4cWP27dvnWB45ciQNGjQgJCSEt956C4DTp0/Trl076tSpQ61atZgzZ45j/6ioKIYP\nH37RuJmZmURFRTnGmjx5MgADBw5kxYoVhIaGMnbs2Ft8dZIXXJ1dgFxeSTdX3r0ngAWHTjB511Ge\n37CX/sFlaVSymLNLExEREREpkBYsgJgYaN0aOnTIu3EzMzNZunQpzz33HAAxMTEkJCSwevVqLMui\nQ4cOLF++nMOHDxMYGMgPP/wAwIkTJxxjNG7cmO+++45ly5bh6+vrWD9t2jT8/PxYs2YN6enpRERE\n0Lp1az744ANGjRrFwoUL8+5C5JbSDPhtzhjDP8rbA9pKudsYvP0A4/88THqmAtpERERERK7HggXw\n5JPwySf2fxcsuPkx09LSCA0NpXz58hw6dIj7778fsDfgMTEx1K1bl3r16rF9+3YSEhKoXbs2ixcv\n5rXXXmPFihX4+fnlGm/w4MG8++67udbFxMTwxRdfEBoaSsOGDTl69CgJCQk3X7zkOzXgBURlbw8+\nrh1ExwA/5h86Qa9NCmgTEREREbkeMTFw5oz99zNn7Ms3K/sZ8N27d2NZluMZcMuyGDRoEHFxccTF\nxZGYmMhzzz3H3Xffzfr166lduzaDBw/m7bffzjVey5YtSUtLY9WqVY51lmUxfvx4x1g7d+6kdevW\nN1+85Ds14AWIu4sL/6pchverXwho+/ZACucV0CYiIiIiclWtW4O3t/13b2/7cl7x9vYmOjqa0aNH\nc+7cOdq0acP06dM5deoUAPv27SM5OZn9+/fj7e1Nly5diIqKYv369ReNNXjwYD788EPHcps2bZg4\ncSIZGRkAxMfHc/r0aXx9fUlNTc27i5BbTs+AF0ANShRjap1KjNpxiAm7jrD6+BkGBJellLv+nCIi\nIiIil9OhA/z737fmGXCAunXrEhISwr///W+6du3Ktm3baNy4MQA+Pj7MnDmTxMREoqKicHFxwc3N\njYkTJ140zoMPPkiZMmUcy927d2fXrl3Uq1cPy7IoU6YM33//PSEhIdhsNurUqUO3bt3o27dv3l6Q\n5DlTEF5vFRYWZq1du9bZZdx2LMvi/x06yaRdR/CyGaKCyymgTURERESKjG3btlG9enVnlyHX6VJ/\nN2PMOsuywi5zSKGhW9ALMGMMHcr7MTGkIv7urgzefoDoPw9zVgFtIiIiIiIitx014IXAHd7ujK9d\nkUcDSrDg0Al6btrLDgW0iYiIiIiI3FbUgBcS7i6GFyv780H1QE6dO89Lm/Yyb78C2kRERERERG4X\nasALmbAS3kytU4mwEsWYtPsIg7bt5+hf55xdloiIiIiISJGnBrwQ8nOz8Xa18vS5swybU8/y/IY9\n/HrstLPLEhERERERKdLUgBdSxhgeKufHhNoVKePuypt/HGDcn8kKaBMREREREXESNeCFXHZA22MB\nJVh46CQ9N+0lUQFtIiIiIiJ5wmazERoaSq1atWjfvj0pKSk3NE5kZCRhYRfewrV27VoiIyOveMyu\nXbv46quvLlq/adMmQkNDCQ0NpVSpUlSpUoXQ0FBatWrFrl278PLyIjQ0lBo1avDiiy9y/vz5y66X\nvKUGvAhwdzH0qOzPiOqBnM4KaJu7/7gC2kREREREbpKXlxdxcXFs3ryZUqVK8cknn9zwWMnJyfz0\n00/XvP/lGvDatWsTFxdHXFwcHTp0YOTIkcTFxbFkyRIAqlatSlxcHBs3bmTr1q18//33V1wveUcN\neBFSv4Q3U+pUIrxEMSbvPsrAbfs5ooA2EREREZE80bhxY/bt2+dYHjlyJA0aNCAkJIS33noLgNOn\nT9OuXTvq1KlDrVq1mDNnjmP/qKgohg8fftG4mZmZREVFOcaaPHkyAAMHDmTFihWEhoYyduzY667X\n1dWVJk2akJiYeE3r5eapAS9i/NxsDMsKaNuSepYXNuzhl2OnnF2WiIiIiMgtl2lZLD58Eivr38w8\nvCM0MzOTpUuX0qFDBwBiYmJISEhg9erVxMXFsW7dOpYvX86iRYsIDAxkw4YNbN68mQceeMAxRuPG\njXF3d2fZsmW5xp42bRp+fn6sWbOGNWvWMHXqVHbu3MkHH3zAvffeS1xcHH379r3ums+cOcPSpUup\nXbv2Na2Xm6cGvAjKDmibGFKRch5uvPXHQcbuSCZNAW0iIiIiUoj950gqIxKTuX/VDkYkJvOfI6k3\nPWZaWhqhoaGUL1+eQ4cOcf/99wP2BjwmJoa6detSr149tm/fTkJCArVr12bx4sW89tprrFixAj8/\nv1zjDR48mHfffTfXupiYGL744gtCQ0Np2LAhR48eJSEh4YZr3rFjB6GhoURERNCuXTvatm17xfWS\nd1ydXYA4TyUvd6JrBTFj71G+3p/CxpNpvH5XOe7y8XR2aSIiIiIiea6Vvy8jEpNzLd+s7GfAz5w5\nQ5s2bfjkk0/o3bs3lmUxaNAgevTocdEx69ev58cff2Tw4MHcd999vPnmm45tLVu2ZPDgwaxatcqx\nzrIsxo8fT5s2bXKNExsbe0M1Zz/rfa3rJe9oBryIc3MxPH+HPx/WCORM5nle3pzEnH0KaBMRERGR\nwmfJ32a8/758M7y9vYmOjmb06NGcO3eONm3aMH36dE6dsj/uuW/fPpKTk9m/fz/e3t506dKFqKgo\n1q9ff9FYgwcP5sMPP3Qst2noHRs1AAAgAElEQVTThokTJ5KRkQFAfHw8p0+fxtfXl9TUvLsGufU0\nAy4A1PWzB7SN/TOZqXuOsvbEGV6rWg5/D/0nIiIiIiKFQ8usGe9W/r4sOZLqWM4rdevWJSQkhH//\n+9907dqVbdu20bhxYwB8fHyYOXMmiYmJREVF4eLigpubGxMnTrxonAcffJAyZco4lrt3786uXbuo\nV68elmVRpkwZvv/+e0JCQrDZbNSpU4du3brd0HPgkr+MVQBmOsPCwqy1a9c6u4wiwbIsfko+yYRd\nR3BzMbx6Z1malvZxdlkiIiIiIhfZtm0b1atXd3YZcp0u9XczxqyzLCvsMocUGroFXXIxxvBgOT8m\nhVQkwMONofEHGaOANhERERERkZumBlwuKcjLnY9qBfF4YAl+Sj7JvzbuJf7UWWeXJSIiIiIiUmCp\nAZfLyg5oG1kjkLPnz9NbAW0iIiIicpspCI/UygVF/e+lBlyuKtTPmykhlWhcshhT9xxlwNb9HE4/\n5+yyRERERKSI8/T05OjRo0W+qSsoLMvi6NGjeHoW3dceK4RNrpllWSw6nMonOw/jZgx9q5almQLa\nRERERMRJMjIySEpK4uxZPSpZUHh6ehIUFISbm1uu9UUlhE3vmJJrZoyhbdni1Pb15L2EQ7wdf5C2\nZYvTs7I/XjbdTCEiIiIi+cvNzY0qVao4uwyRa6auSa5bkJc70bWCeLJCSRYln+TFjXvZroA2ERER\nERGRK1IDLjfE1cXwXKXSjKpRgb/OW7yyOYmv9h0jswA80iAiIiIiIuIMasDlptTx82JKnYpElPJh\n+p5jRG3dR3J6hrPLEhERERERue2oAZeb5utqY8hd5YiqWpb4U+n02LCX5UdPObssERERERGR24oa\ncMkTxhjalC3O5JCKVPBy4+34g4xMPERa5nlnlyYiIiIiInJbUAMueaqClzvjagbxVIWSxBxOtQe0\npSqgTURERERERA245DlXF8OzlUozumZWQNuWJL5KUkCbiIiIiIgUbWrA5ZYJKW4PaGtayofpe48R\ntWUfhxTQJiIiIiIiRdQta8CNMdWMMXE5fk4aY/rk2P6qMcYyxvjfqhrE+XxdbQy+qxwDqpYl4bQ9\noC32SKqzyxIREREREcl3t6wBtyzrD8uyQi3LCgXqA2eA7wCMMRWB1sCeW3V+uX0YY2hdtjiT61Qi\nyMuNdxMO8WHiIc4ooE1ERERERIqQ/LoF/T5gh2VZu7OWxwIDAD0UXIQEeroxrmYQXSqUZMnhVHps\n2MM2BbSJiIiIiEgRkV8N+BPAvwGMMf8A9lmWteFKBxhjXjDGrDXGrD18+HB+1Cj5wNXF0C0roC3T\nglc2JzFTAW0iIiIiIlIEGOsWNz7GGHdgP1ATSAWWAa0tyzphjNkFhFmWdeRKY4SFhVlr1669pXVK\n/jt1LpOP/jzMsqOnqO3rycC7ylHOw83ZZYmIiIiISD4zxqyzLCvM2XXcavkxA94WWG9Z1iGgKlAF\n2JDVfAcB640x5fOhDrnN+LjaeP2ucgwMLseOM+m8sGEvyxTQJoXcwYMHefXVV51dxjWJjY1l48aN\njuUhQ4Zwxx130KpVq1z7zZgxgyZNmhAREcH69esB2LFjB/Xr18fHx4eVK1de9hwnT56kSZMmREZG\nEh4eztKlSwH44osvCA8Pp1mzZjzxxBOkp6dfdozjx4/TunVrmjdvTkRERK6as7377rvMmDHjovV9\n+vShUaNGNGrUiA8++ACApKQkmjdvzr333ktERAR//wL4s88+w81NXxaKiIjI9cuPBvxJsm4/tyxr\nk2VZZS3LqmxZVmUgCahnWdbBfKhDbkPGGFqV8WVSSCUqebkxPOEQIxIPcfqcAtqkcCpfvjyjR4++\noWMzMzPzuJor+3sD3rNnT5YtW5Zrn+PHjxMdHU1sbCwzZ86kd+/eAAQEBLB48WIeffTRK57Dx8eH\n5cuXExsby+zZsxk4cCAATZs25X//+x/Lly+nUqVKzJw587JjzJo1i4iICP773/8yfPhwhg8ffs3X\n2KtXL1atWsWvv/7K/Pnz2bFjB76+vsydO5cVK1YwdepU+vbt69j/7NmzfPPNN1SqVOmazyEiIiKS\n7ZY24MaYYsD9wLe38jxS8AV6ujGuVhBdg0qy9HAqL27cw1YFtEkhtGvXLlq1asWWLVsIDw+nXbt2\n/POf/2To0KGX3D82NpY2bdrw2GOP8cYbb7B3717atWtHy5YtadeuHYcPH+bMmTO0bduW5s2bExkZ\nSXx8PLGxsdx333106tSJ2rVrM3fuXIBLHn/s2DEaNGhAcnIyW7dupVmzZiQnJzNjxgyGDx9OZGQk\nmZmZBAQE4OKS+382Vq9ezb333ou7uztVqlQhNTWV9PR0vL29KVWq1FU/DxcXF1xdXQH7bHhISAgA\nd955JzabDQAPDw9cXV1JT0+nadOmbN++nYMHDxIeHs7x48epXr06J0+eBOxfCJQtWxaA5cuXU7du\nXdq3b89vv/12yfPfddddueqw2Wz4+fk5xsg+d7bo6GhefPFFjDFXvTYRERGRv3O9+i43zrKs00Dp\nK2yvfCvPLwWLzRierlia+n7evJ94iD6bk+gaVIqngkpi0//ZlUJm0KBBREdH06hRI55//vkr7rt/\n/34WLlyIm5sbTzzxBEOGDKFRo0bMnz+fESNG8NRTT1GyZEl++uknAM6fP8/+/ftJSUkhJiaGQ4cO\n0aFDBx577DGioqIuOn7UqFGMHj2ap59+mpMnT/L5559TtmxZunXrRnBwMF26dLlsbUePHqVkyZKO\n5RIlSnDs2DECAgKu+bPYt28fjz/+OPHx8UyfPj3Xtu3bt7No0SJWrFiBh4cH06ZN45lnnsHPz49x\n48ZRsmRJ6tevz5tvvkmtWrVISUlx3PLer18/5s+fT8WKFWnTps0Va5g1axZ33nknlStXdqzLzMyk\nd+/evPHGG4C9uV++fDkDBgygT58+13x9IiIiItnyKwVd5JrVKu7F5JCKRPr78HnSMfpt2cfBsxnO\nLkvkhsyfD088AQsW5F6fmJhIgwYNAGjYsOEVxwgLC3M8c7xp0yYGDhxIZGQkI0eO5MiRI9StW5f6\n9evTpUsXXnnlFcdscGhoKDabjcDAQFJSUi57PECzZs0cM9DBwcHXfH2lSpVyjA1w4sSJa5r5zqlC\nhQqsXLmS1atX89JLLznWJyUl8fTTTzN79mw8PT0BqFatGlWqVAGgSZMmAHz44Yd07NiRzZs3M3fu\nXHr16gXYZ9QrVaqEMYbw8HAAVq5cSWRkJJGRkZw6dQqAJUuW8NlnnzFp0qRcdfXo0YO2bds6nnl/\n//33GTBgwHVdm4iIiEhOasDltmQPaCvPoOBy7DyTzgsb97L0sALapGBZsAA6dYI5c+CRR2Dq1Avb\nqlat6gj3WrNmzRXHyb4VG6BmzZqMHTuW2NhYVq5cyZQpU0hPT6dfv37MnDmTMmXK8OWXXwJc8jbp\nSx0PMG3aNMLDw0lMTHTU5e7uzrlz565YW8OGDVm5ciUZGRns2bMHHx8fPDw8rv7hZMkZrla8eHF8\nfX0BOHLkCB07dmTSpElUrVrVsc/ixYvJyMjA39+fBVnfaliWhb+/PwBly5bl2LFjAPj6+pKUlARc\n+IybNm1KbGwssbGx+Pj48NtvvzFkyBDmzZuHl5eX4zz9+/cnICAg1xcC8fHxvPfeezzwwAMcOHCA\nxx9//JqvU0RERARu8S3oIjfrvjK+1PD15IPEQ7yfeIg1KWd4qYo/Pq62qx8s4mQxMfDXX/bfMzPh\nX/+C7t3h3Dl47733ePbZZ/H398fPz4877rjjmsYcPXo0vXr1cszePvvss9SoUYPevXvj6urK+fPn\n+fzzz9m9e/c1Hx8WFsaMGTNYunQpycnJdOzYkSVLlnD//ffTp08fFi5cyNdff82ECROYPXs227Zt\no1WrVkyePJmqVavSs2dPmjdvjjGGjz76CLDPPj/yyCNs3bqVLVu28OCDDzJs2LCL6tm8eTN9+/bF\nZrNx7tw5xo0bB8DQoUPZt2+fIwCta9eutG/fnjfeeIOff/4ZV1dXWrVqRb169Xj55Zfp2rUr06dP\nJy0tjREjRjiutX379gQGBjoa+7977rnnAPi///s/xzGWZfHRRx8RERFBZGQkZcqUYe7cuXz//feO\n44KDg5kzZ841/c1EREREst3y94DnBb0HXDIti1lJx5mZdIyyHq4MuqscNX29rn6giBMtWABPPgln\nzoCnJzRuDLGxUKoUDB6cQa9ebri5wfPPP0+bNm2umhguIiIiUlgVlfeAqwGXAmVLahrvJxwiOf0c\nXYJK0VkBbXKbW7DAPhPeujV06ADr10P//rBs2Xo8PV+hUqVz1KtXmS+//JLXX3+d1atXO451d3cn\nJibGidXnrTFjxjhuG8/27bffXvcz4yIiIlL4qAG/jagBl5xOnzvP+J2HWXIklZq+ngwMLkeAp5uz\nyxK5ZpYFP/4IUVGwbRvcey+MHg1ZmWwiIiIiRU5RacAVwiYFTjFXFwbeVY7X7yrHzjN/0UMBbVLA\nGAPt2sHGjTBpEvzxB4SHw1NPwa5dzq5ORERERG4VNeBSYLX092VKSEWqeLvzfuIh3ks4yKlzmc4u\nS+SaubpCjx6QkABvvAHffQf33AOvvQY53uwlIiIiIoWEGnAp0Mp7ujGmZgW6VSxF7JFT9Ni4l80n\n05xdlsh1KV4c3n3X3og/8QSMHAnBwTB+PGRkOLs6EREREckrasClwLMZQ5egUoyrVQED9Nuyj8/3\nHiWzAOQbiOQUFAQzZsC6dVCnDvTuDTVr2mfG9Z+ziIiISMGnBlwKjRq+XkwOqcR9ZXz5Muk4fTYn\nsf+spg+l4KlbF5YsgYUL7bepP/IING8OOQLSRURERKQAUgMuhUoxVxdeCy7HG3eVY09aBi9u3MPi\nwycpCGn/IjldKqitYUMFtYmIiIgUZGrApVBq4e/LlDoVqertwYjEZN5LOKSANimQsoPaEhNh8GD4\n/nuoVg0GDFBQm4iIiEhBowZcCq1yHm6MqlmBZyqW4r9H7QFtmxTQJgWUry+88w7Ex8OTT8KoUReC\n2v76y9nViYiIiMi1UAMuhZrNGDoHleKjWkHYMLy6ZR+f7TnKufO6JV0KpksFtdWqpaA2ERERkYJA\nDbgUCdV9PZlUpyL3l/Fl1r7j9NmigDYp2LKD2n74Adzc7EFtzZopqE1ERETkdqYGXIoMb5sLUcHl\nGHxXOfamZdBjwx5ikhXQJgWXMfDgg7BhA0yebL89vWFD+y3qCmoTERERuf2oAZciJzIroO2uYh58\nuCOZ4QmHSFVAmxRgrq7wwgsXgtrmz1dQm4iIiMjtSA24FEnlPNwYWbMCz1YsxYpjp3hhw142KqBN\nCricQW1PPWUPaqtaFaKjFdQmIiIicjtQAy5Fls0YngoqxUc1g3B3sQe0TVdAmxQCQUHw2Wewfr39\nWfFXXoGaNeHbbxXUJiIiIuJMasClyLvH15NJIRVpU8aXr/Yd55XNSexL03ShFHyhobB4Mfz4I7i7\nQ8eO9qC2335zdmUiIiIiRZMacBHAy+ZC/+ByDLm7PPvOZtBj414WKaBNCgFjoG3bC0FtCQnQqJE9\nqG3nTmdXJyIiIlK0qAEXyaF5aR+m1KlINR9PRu1I5h0FtEkhkR3UlpAAQ4bYg9ruuQeiouD4cWdX\nJyIiIlI0qAEX+ZuyHm58WCOQ5yqV5pesgLYNJxTQJoWDry+8/ba9Ee/cGUaPhuBg+OgjBbWJiIiI\n3GpqwEUuwWYMT1YoSXQte0Bb/637mKaANilEKlSA6dMvBLX16aOgNhEREZFbTQ24yBVU87EHtD1Q\ntjj/3nec3puTSFJAmxQilwpqu/deBbWJiIiI3ApqwEWuwsvmwqtVy/Lm3eU5cDaDFzfu5ScFtEkh\nkjOobcoUSEy0B7U98YSC2kRERETykhpwkWvUrLQPU+pU4h4fT0bvSObt+IOczFBAmxQerq7w/PMX\ngtoWLFBQm4iIiEheUgMuch3KeLgyokYgz1cqza/HT/PCxj3EnTjj7LJE8pSC2kRERERuDTXgItfJ\nZgyPVyjJ+FpBeLq4ELV1P1N3HyFDAW1SyGQHtf3+O9SrZw9qq1EDvvlGQW0iIiIiN0INuMgNutvH\nk4khFWlbtjhz9qfwyuYk9iqgTQqhOnUgJgZ++gk8PeHRRxXUJiIiInIj1ICL3AQvmwv9qpZl6N3l\nOZCewb827uXHQycU0CaFjjHwwAMQF6egNhEREZEbpQZcJA80Le3D1JBKVPf1ZMyfhxkWf5ATCmiT\nQig7qC0xEd5880JQW//+CmoTERERuRo14CJ5xN/DlRHVA3nhjtKsOn6aHhv38LsC2qSQ8vGBYcPs\nQW1dusCYMVC1Kowbp6A2ERERkctRAy6Sh1yMoVOgPaDNy8WFAVv3M0UBbVKIVagA06bZg9rCwqBv\nXwW1iYiIiFyOGnCRW+CurIC2duWK8/X+FHpvTmKPAtqkEKtTB37+OXdQW9OmsGqVsysTERERuX2o\nARe5RTxtLvS5syzDqpXnUFZA20IFtEkhljOobepU+PNPaNwYHn/c/ruIiIhIUacGXOQWiyjlw5Q6\nlajp68m4Pw8z9A8FtEnh5uoK3bvbnw9/6y1YuNAe1PbqqwpqExERkaJNDbhIPvB3d+WD6oH0uKM0\nv6Wc5oUNe1iXooA2Kdx8fGDoUIiPh65dYexYBbWJiIhI0aYGXCSfuBjDY4El+bh2RYq5uvDatv1M\n3nWEvxTQJoVcdlBbXFzuoLZ58xTUJiIiIkWLGnCRfBZczIMJtSvSvlxx5h5I4eVNexXQJkVCSAjE\nxMCiReDlBY89BhER8L//ObsyERERkfyhBlzECTxtLrxyZ1nerhbAkb/OKaBNipQ2bS4Ete3cCU2a\nKKhNREREigY14CJO1KRUMabUqUStrIC2txTQJkWEzXb5oLZjx5xdnYiIiMitoQZcxMlKu7vyfvVA\n/lXZnzUpp3leAW1ShGQHtSUkwD//aQ9qCw62/5ue7uzqRERERPKWGnCR24CLMXQMKMHHtSvi62rj\ntW37maSANilCAgPh00/tt6Y3aAD9+imoTURERAofNeAit5GqxTyYUDuIDuX8mJcV0Lb7jALapOgI\nCYGff7YHtXl7K6hNREREChc14CK3GQ+bC73vLMO791wIaJt/UAFtUrRkB7V9+umFoLZOnWDHDmdX\nJiIiInLj1ICL3KYalSzG1DqVCCnuxfidh3nzjwOkKKBNihCbDZ57zv58+NCh8MMPUL26/fZ0BbWJ\niIhIQaQGXOQ2VsrdlfeqB9Czsj9rU87w/IY9rEk57eyyRPKVj489KT07qG3cOAW1iYiISMGkBlzk\nNudiDI8ElOCT2hXxc7UxaNsBJuw6zF/nzzu7NJF8lTOoLTz8QlDb3LkKahMREZGCQQ24SAFxZzEP\nPqkdxD/K+/HtgRO8tCmJXWc0/SdFT0iIPaRt0SIoVsz+bHhEBPz6q7MrExEREbkyNeAiBYiHzYWX\nq5Rh+D0BHMvIpOfGJOYfTFFAmxRJbdrA779fCGqLiLCnpiuoTURERG5XasBFCqCGJYsxNaQioX5e\njN95hMHbD3A845yzyxLJd38PavvxRwW1iYiIyO1LDbhIAVXS3ZXh9wTQq7I/60+k8cKGvaw+roA2\nKZouFdRWtSqMGaOgNhEREbl9qAEXKcCMMTwcUIJPagfh52rj9e0H+GSnAtqk6MoZ1NawIbz6qn1G\n/OuvFdQmIiIizqcGXKQQyA5oe7i8H98dPEHPjUnsVECbFGE5g9p8fODxx6FJEwW1iYiIiHOpARcp\nJDxsLvSqUob37gkg5Zw9oO27Awpok6ItO6ht2jTYvVtBbSIiIuJcasBFCpnwksWYWqcidf28+GTX\nEd7YfoDjfymgTYoumw2efRbi4xXUJiIiIs6lBlykECrpZg9oe7mKP3En0nh+w15WKaBNirjsoLbE\nRHj6afjoIwW1iYiISP5SAy5SSBlj+Ef5EkwICaKku43B2w8wfudh0jMV0CZFW0AATJ1qD2pr1EhB\nbSIiIpJ/1ICLFHKVve0BbY8E+DH/4Al6bUriz9Oa7hOpXRt++gl+/llBbSIiIpI/1ICLFAHuLi70\nrGwPaDtxLpNem5L4VgFtIgC0bq2gNhEREckfasBFihB7QFsl6pfwYsKuI7y+/QDHFNAm4ghqS0iA\nYcPsM+PVq0PfvgpqExERkbyjBlykiCnhZuOdagH0rlKGDSfSeEEBbSIOxYrBm2/aG/Gnn4boaAW1\niYiISN5RAy5SBBlj6FDej4khFSmdHdD2pwLaRLIpqE1ERERuBTXgIkXYHd7ujK9dkY4Bfsw/dIKe\nm5LYoYA2EYecQW2+vheC2n75xdmViYiISEGkBlykiHN3Mfyrchk+qB5I6rlMXtq0l3n7UzivaT4R\nh9atYf16mD7dHtTWtCk8+qj9neIiIiIi10oNuIgAEFbCmyl1KhFWohiTdh9h0Lb9HFVAm4iDzQbP\nPHMhqG3RIqhRwx7UdvSos6sTERGRgkANuIg4lHCz8Xa18rxSpQybU8/ywoY9/O+YAtpEcsoZ1Nat\nmz2oLTgYRo9WUJuIiIhcmRpwEcnFGEP78n5MqF0Rf3dXhvxxgI/+TOasAtpEcgkIgClTYMMGaNwY\n+ve3B7XNmaOgNhEREbk0NeAicknZAW2PBZTg/x06Sc9Ne0lUQJvIRWrVgh9/hJgYe1DbE0/YG3IF\ntYmIiMjfqQEXkctydzH0qOzPiOqBnD53npc37WXe/uMKaBO5hPvvvxDUtnevgtpERETkYmrAReSq\n6mcFtDUoUYxJu48yaNt+jiigTeQi2UFt8fHw9tsXgtr69FFQm4iIiKgBF5Fr5OdmY1i18vS580JA\n2y/HTjm7LJHbUrFiMGSIffb7mWdg/HioWhVGjVJQm4iISFGmBlxErpkxhofK+TExpCJlPdx464+D\njFNAm8hllS8Pkyfbg9qaNIGoKLjnHgW1iYiIFFVqwEXkulXycie6VhCdAkuw8NBJ/rVxLwkKaBO5\nrJxBbcWLXwhqW7nS2ZWJiIhIflIDLiI3xN3F8MId/nxYI5AzmfaAtq8V0CZyRdlBbZ99Zg9qu/de\n6NjR/k5xERERKfzUgIvITannZw9oa1SyGFN2H+W1bfs5kq6ANpHLsdmgW7cLQW0//6ygNhERkaJC\nDbiI3DQ/Nxtv3V2efneWYVvqWZ7fqIA2kavJGdT27LO5g9rOnnV2dSIiInIrqAEXkTxhjOHBrIC2\ngKyAtrE7kklTQJvIFWUHtW3cCBER9qC26tVh9mwFtYmIiBQ2asBFJE9V9HLno1pBPB5Ygh+TT9Jz\n414STmk6T+RqataEH36AxYvBzw+efBIaNVJQm4iISGGiBlzkFpkxYwbvvvuus8twCjcXw/N3+NO3\nWAaJy2J4eXMSc/Yd55tvv6V69ep4enrm2n/9+vVERETQpEkTZsyY4Vjfpk0bypQpc9XPsWvXrkRG\nRhIWFsbYsWMB+P3334mIiKBZs2a0bNmSP//886p1x8fH4+bmxspLdDwzZ85k6NChF62fPXs2TZs2\npVmzZjz00EOcPHkSgF27dtGyZUsiIiJ47733HPsvWrSIxo0b07hxY37++edL1hEdHe34PS4ujuXL\nl1+1dik8WrWCdevsQW1JSQpqExERKUzUgIsUIZmZmfl6Pu9jh6iyeRWNSxZj6p6jLCt3NzGr1hAU\nFJRrv5dffpmZM2cSGxtLdHQ0x48fB2DatGmMHDnyqueZNm0asbGxrFq1igkTJpCamkpAQACLFi1i\n+fLl9O/fn7feeuuq47zzzjs0b978uq7xkUceYeXKlSxfvpx69erx5ZdfAjBw4ECGDRvGL7/8wn/+\n8x+2b99OZmYmAwYM4KeffuKnn35iwIABl/ybqAGX7KC2hAR4550LQW2vvAJHjji7OhEREblRasBF\n8kBmZiZPPfUUzZs3Z+DAgQQHB+fannO5e/fuxMbGAjBs2DAaN25Mw4YN+eGHHwAYOnQonTt3pkOH\nDoSGhrJ9+/ZLnjM2Npbw8HBatGjBM888A8CmTZto1aoVLVu2pFOnTqSlpQFwxx130LNnT/7xj3+Q\nkZFB9+7dadGiBU2bNmX16tUA9O/fn8aNG9OiRQvmzPn/7N19fM31/8fxx2fXF2xjSMZEQ8xcZOZi\nZmcYSS5yHWLM6KsUkRRfDFGKKPUlDWnIZSXjF8VxWa7HXOSiXIcZu7LrnfP+/XG2k7GhYjuz1/12\nc7s5Z5/P57zOOUvneV7vz+uzAgBPT0+GDh1K06ZNGT16NEC++yul6NSpE3q9ntTUVJo1a8bZs2eZ\nNWsWmzduYOvQl+iUfJlzNo68fjKWdONfJ7ZmZGSQkpJCtWrVsLOzIyAgwFzTnUG9IHZ2dgCkp6fj\n6emJk5MTFStWpHTp0gDY29tjY2MDwLBhw1iyZAlGo5F27dqxZ88eAPbs2UPFihXzPObx48fx8/Oj\nQ4cOrFu37p6PDZCSkoK3tzdgCs4BAQEAdOjQgW3btnHmzBmqVauGm5sbbm5uPPXUU5w5cybP8WbN\nmsXly5fR6XREREQwa9YsIiIi0Ol05vuHDRtGmzZteOGFF7h1S4bdPc6cnGD8eNOgttBQmDsXvLzg\nww9lUJsQQghRHD2yAK5pWi1N06Jv+5OkadoITdM+1DTtN03Tjmia9q2maW6PqgYhCsv333+Pi4sL\n27Zto2PHjmRn3/8yXNHR0ezYsYPdu3fz448/MnLkSIxG08Cy8uXLs27dOsaMGcOXX36Z7/5r165l\n6tSpbN26lYiICABeffVVFi5cyJYtW/D39zfff+XKFcaOHcv69euJiIjAy8uLrVu3smbNGkaOHAnA\nxo0b2bFjB1u3bqVHjx4AxMbGEh4ezi+//ML69etJSkrKd39N04iIiOCtt94iNDSUkSNHUq1aNd58\n8006dOiAXq/n9baBzG5tKHQAACAASURBVKtXhScdbLmZmc3MnAFtN27cwM3tr38G3NzcuHnz5t9+\nD3r06EH16tVp0aIF1tbW5vtTUlIYP348b731FmAKuPPmzeM///kPrVu3pkmTJgC89957jB07Ns8x\n33nnHebMmUNUVBSurq4FPnZERAQ+Pj7s2LHDHMBz38vbn9ONGzcoU6bMPZ/rm2++iYeHB3q9ntDQ\nUN58801CQ0PR6/V4eHgAEBAQwE8//USzZs0K/P0Qj5eKFWHevL8GtY0ZI4PahBBCiOLokQVwpdRJ\npVQDpVQDoBGQCnwLbAbqKqXqAaeAdx5VDUIUltOnT9O4cWMAmjRpgqZpBW6rcj4tnzx5kqZNm6Jp\nGm5ublSoUIG4nLWljRo1Akwd6BsFXBj4rbfeYt26dfTt25dFixYBcOzYMfr3749Op2P58uVcvXoV\nAA8PDzw9PQFTl3zFihXodDp69epFYmIiAO+//z6DBg0iJCSEEydOmPerWLEimqZRuXJl4uPjC9y/\nfPnytG3blsOHD9OzZ898a66cM6CtlI0V/xebxCtHLrIhRZGQkMDm60kYlCIxMZGyZcs+4Cv/l1Wr\nVnHu3DmioqI4fvw4YOrW9+rVi7fffps6deoA4ODgwMCBA1m5ciWvv/46AFFRUfj6+uLu7p7nmKdP\nn8bPzw/AHNTPnDmDTqdDp9OZu9ehoaHExMTQvXt385J5K6u//nnNfU5ly5YlISHhrvvHjx+PTqdj\n/PjxD/Rcb6/p5MmTf++FEsVaQYPaduwo6sqEEEII8SAKawl6a+B3pdR5pdQmpVRue/BX4MHWmAph\nwby8vNi/fz8A+/btM4fsXK6urly9ehWDwUB0dDQANWvW5Ndff0UpUwCNjY2lXLlyAHkC/J3HyuXu\n7s7cuXOJjIzk/fffJykpibp167J8+XLz+dATJkwAyNMR9vb2pn///uj1evR6PQcPHkQpRZs2bViy\nZAmDBw8273fnFwlKqXz3Bzh69Ci7d++mU6dO5nOY7ezs7loNYGul4WJjzYd1KpGUbeCbuDTOGa0J\n3xnNj3/eYOfOneaA+SCUUmRmZgKmcO3o6IijoyNGo5F+/frRpUsXunTpYt7+ypUrRERE8N///pd3\n330XMK1G0Ov1PPfcc2zevJnRo0dz/vz5u95XML3Xuc/dy8uL9NvWAbu5ueHk5ARA/fr12b17N2Ba\nXdCyZUtq1KjB2bNnSUpKIikpibNnz+Ll5cXUqVPR6/XmYXO3h/f8XsPba6pZs+YDv1bi8ZE7qG3x\nYrh8GVq2hK5d4dSpoq5MCCGEEPdiU0iP0xtYns/9g4AV+e2gadoQYAhg7twJYam6dOnCqlWrCAwM\npHHjxtjb2+f5+ZgxYwgODsbb25sKFSoA0LBhQ5o3b06zZs0wGo3MnDkzT/C6n1mzZrFp0yaMRiPB\nwcG4uLjw2WefERISQlZWFmBaQh0cHJxnv7CwMIYPH05QUBAAvr6+TJs2jfbt2wOm86hzA3h+8tt/\n8uTJDBkyhMjISDw9PWnbti0BAQH4+Pjw+++/0717dyZOnEhCQgLh4eH8+eefjO7WiQFDhvJVlYbU\nHDGeoxNH0l+D1i+9TIzRlmezDYz8zyvs3r2bjIwM9u/fz3fffXdXPdnZ2bRt2xaAzMxMevbsSbVq\n1Vi9ejVRUVFcu3aNyMhIfHx8mDNnDgMHDmT27Nk0bdqU3r17s2HDBsaNG8e4ceMACAkJYfDgwVSt\nWpVp06YxaNAg3N3dzV+O3OnDDz/k559/BqBs2bIsXLgQgOnTpxMaGkpmZibt27endu3a5vvbtWtn\n/vvtX47katasGS+++CK9evXC39+fuXPncvToUebOnQvAL7/8whdffIGdnR0rV64s8L0Sjzdraxgw\nAHr0gI8/hvffhx9+gP/8ByZMgAJ+ZYUQQghRhLSCumsP7QE0zQ74E/BWSl277f5xgC/QVd2nCF9f\nX5Xb8RHCUmVlZWFra8uuXbuYPn0669evL+qSLN7m60l8cCbWfLuWsz2X0rNIMRixArxLO9C4jBON\n3ZzxcrK759L+kkKn0xEZGfnAA+pEyXH1KkyaBAsWQOnSMG4cDB8Od1z1TwghhLBImqYdUEr5FnUd\nj1phdMDbAwfvCN8hwAtA6/uFbyGKi969exMXF0dGRgbz589/qMceM2aMeTI4mJYlb9q06aE+RlFo\nVc40pbxNudL8FJdsvn08OZ19CansTUhl4YWbLLxwk7K21pQ5cZA982ZT2sYK65wwPmHCBFq1alVk\nz0EIS5E7qO31101D2saMgc8+g+nToVcv+BsLbIQQQgjxiBRGB/wb4Eel1KKc288Bs4BApdT1BzmG\ndMCFKLluZmazPyeMH0hIJTmnO167tAON3Zzwc3PCy9keK+mOC5HHzz/D6NEQHQ2NG8PMmZBzZTwh\nhBDC4pSUDvgjDeCapjkDF4DqSqnEnPvOAPZA7mjnX5VSr9zrOBLAhRAABqU4eSudvfGmQH4qJQMA\nN1trfF2d8CvjRCNXJ1xt7z6vWoiSyGiEr782LUe/fBlefNF0rrjM7hNCCGFpJIBbEAngQoj8xGdl\ncyAhjb0JKexPSCUp24gG1Cplj5+bM35uTtQoZW9eri5ESZWa+tegtvR0GdQmhBDC8kgAtyASwIUQ\n92NQilO3MnLOHU/h5K0MFOBqY0UjNyf83JzxdXPCTbrjogS7ds00qO2LL6BUKVNn/PXXZVCbEEKI\noicB3IJIABdC/F2JWQb2J6SyLyGV/QmpJGQb0ICazvamc8fLOFGrlIN0x0WJdPy4aUhbVBRUrSqD\n2oQQQhQ9CeAWRAK4EOLfMCrF6RRTd3xfQionktMxAqVtrPB1daKxm+lPGbvCuDCEEJbjzkFtH30E\nLVsWdVVCCCFKIgngFkQCuBDiYUrKMnAgMdUcyOOzDADUyOmON3Zzok5p6Y6LksFohMhIePdd06C2\nLl3ggw9kUJsQQojCJQHcgkgAF0I8Kkal+D01k33xKexLSOVYTne8lLUVz+Zc5szXzYly0h0Xj7nU\nVJg927QcPT0dXnkFJk6UQW1CCCEKhwRwCyIBXAhRWG5lGziYmMbenEB+I6c7/rSTXU533Bnv0g7Y\nWEl3XDyecge1LVgAzs4yqE0IIUThkABuQSSACyGKglKKs6mZ7M2ZrH4sOR2DAidrK551dcQvJ5CX\nt5fuuHj8HD8Ob78N69eDp6epM967twxqE0II8WhIALcgEsCFEJYgJdvIocRU9uacO349MxuApxzt\n8CtjWq7uXdoRW+mOi8fIli2mQW2HDoGvL8ycKYPahBBCPHwSwC2IBHAhhKVRSnEuLdM0yC0+lZjk\nNLIVOFppNHQ1XeassZsTT9jbFnWpQvxrdw5q69wZZsyQQW1CCCEeHgngFkQCuBDC0qUaTN3x3Mnq\n1zJM3XFPR1v83Jxp7OaEj4sjdtIdF8VYfoPaJkyA8uWLujIhhBDFnQRwCyIBXAhRnCiluJCWxb4E\n0yC3I0lpZClwsNJo6OqIr5szfm5OPOkg3XFRPN05qO3dd+GNN2RQmxBCiH9OArgFkQAuhCjO0gxG\nDielsTfeNMztak53vIqDrWmyehkn6rs4YifTrUQxc+egtmnT4KWXZFCbEEKIv08CuAWRAC6EeFwo\npbicnmWarB6fyuGkNLKUwt5Ko76LI41zrj3u4WhX1KUK8cDuHNT20UcQGFjUVQkhhChOJIBbEAng\nQojHVbrByJGkNPNk9cvpWQB45HbH3UzdcQdraSkKy2Y0wtKlpuXoly6ZBrV98AHUqlXUlQkhhCgO\nJIBbEAngQoiS4nLOZPW9CabueIZRYadp1HNxNE9Wr+xgi6bJMDdhmW4f1JaWZhrUNnGiDGoTQghx\nbxLALYgEcCFESZRpNHIkKZ29CSnsi0/lYk53vKK9DX5uzvjlnDvuKN1xYYGuXYPwcPjii78Gtb3+\nOjg6FnVlQgghLJEEcAsiAVwIIeBKelbOZc5SOJSYRrpRYauBj4sjfm5ONHZzxtNRuuPCspw4YRrU\n9sMPMqhNCCFEwSSAWxAJ4EIIkVemURGTlMb+nOXq59MyAXjC3sZ87nhDVyecpDsuLIQMahNCCHEv\nEsAtiARwIYS4t2sZOd3x+FQOJqaSZlTYaFC3dM5k9TJOPOVoJ91xUaRkUJsQQoiCSAC3IBLAhRDi\nwWUZFceS/5qsfjbV1B0vb2eDb85lzp51dcLZRrrjomikpf01qC01VQa1CSGEkABuUSSACyHEP3c9\nI5t9CSnsTUjlYGIaqQYj1hp4l3agsZszfm5OVHeS7rgofLGxMGmSDGoTQgghAdyiSAAXQoiHI9uo\nOH4rnb3xKexLSOX3nO64u6216dzxMs40cnWklI11EVcqShIZ1CaEEEICuAWRAC7Ev3Nh6y6Of73G\nfLvOy93wDPIvwoqEpYjLzDYPcjuYkMotgxEroE5ph5zJ6k487WyPlXTHRSHYutU0qO3gQWjUCGbO\nlEFtQghRUpSUAG5T1AUIIR691GtxHPtqFRiNaNbWPNVWPtEKk3J2NjxXwYXnKrhgUIoTyenmc8cX\nXrzJwos3KZPbHXdzopGrEy620h0Xj0ZQEOzbB8uWmZaj63TQqRPMmCGD2oQQQjweJIALUQJ4dW2P\nBijAytYGa3s7jNnZWNnIPwHiL9aaRl0XR+q6ODLI052bmdnsTzRNVv8lPoVN15OxAp4p5YBfGSd8\n3ZyoKd1x8ZBZWUG/ftCt21+D2ry9ZVCbEEKIx4MsQReihDgw+0v0Iydi7+ZKRkIizk8+Qd1BvfAJ\nfQnXap5FXZ6wcAalOHkrnX0JqeyNT+VUSgYKcLOxxjenO+7r5oSrdMfFQxYbC+HhMH8+ODmZOuNv\nvCGD2oQQ4nFTUpagSwAXooQwGgxEf/4V9Yb05dz/6YlZsJSzG7eijEaqBrfEJ6wPXp3bYW1nV9Sl\nimIgIcvA/oRU9iWksD8hlcRsIxpQq5S96brjbs7ULGWPtXTHxUPy22+mQW3r1kGVKqZBbX36yKA2\nIYR4XEgAtyASwIV4NJIuXubYopXERCwn+cJlHMu74z2gBz5hfShb8+miLk8UEwalOH0rI+fc8RR+\nu2XqjrvYWNHI1cm8XL2MrZzyIP49vR5GjfprUNtHH5nOFRdCCFG8lZQALt8bC1GCuVTxoNmEkQz+\n4xe6bvgajxZ+HJz9JYtqtWRFYDdOLF1Ldnp6UZf52Fu8eDFTp04t6jL+MWtN45nSDvSvUpZPfaqw\n2rca79Z4Aj83Zw4lpfHBmVh67D/HsCMXWXThBseS0zDc8eXvuXPnWLdunfn2t99+S+3atXFwcMiz\n3cGDB/H396d58+YsXrzYfH+7du0oX778fV/Hl19+GZ1Oh6+vLx9//DEAhw4dwt/fn5YtW9KqVSv+\n+OOP+z7nU6dOYWtry86dO+/6WWRkJJMmTbrr/hkzZtCkSRP8/f0ZPnw4uV+Ax8XF0atXL1q1akXb\ntm3N2y9evJjmzZvj7+/PwYMH7zpeQkICS5YsMd/W6/UcOXLkvrUXdzqdaVDb11+blqcHBUHnzqYO\nuRBCCGHpJICLh+72D4VXr16lWbNmBAUFkZmZ+cDHeO2112jZsiXr1q0jMjISPz8/Jk+ezPvvv09M\nTEyB+/Xt2/cf1fzJJ5/8o/0eZF8vL68Cf3avD/GnTp2iefPm6HQ6/P39OXz4MAB//PEHLVu2RKfT\nERQUxKVLlwBTgGnVqhX+/v5Mmzbtbz0HK2trqrVvRee1XzLk4j5aTH+HW5evsqHfcOZXasSWNyYQ\nd1Q+3ZYkBoPhH+/ramtNq3KlGVvjCVY2eorPfSoTUqUstlYayy/H88bRy3Tfd5Ypp67yY2wSNzOz\n7wrgLVu25NChQ1SuXDnPsYcPH05kZCR6vZ5PPvmE+Ph4ACIiIvjwww/vW1tERAR6vZ5ff/2Vzz//\nnOTkZJ588kn+7//+j+3btzN69GgmTpx43+NMmTKFwL95fawXX3yRPXv2sGvXLq5du8aWLVsAGDFi\nBBMmTGDLli1s2rQJgPj4eD755BP0ej2RkZG8/vrrdx2vpAZw+GtQ28mTpiFtW7dC3brw6qumUC6E\nEEJYKgng4qG7/UPh1q1badu2LVu3bsXub5xbvGnTJrZv306nTp34+uuvWbFiBRMmTGDs2LH4+PgU\nuN/SpUv/Uc2PMoDfy70+xFevXp1du3ah1+uZMmWKubP3+eefExoail6vZ8CAAXz66acAjB07lvDw\ncHbt2sWWLVv47R+2g5wrVqDJ2NcYdGoHPX5eQdV2gRyZ9zVf+bRmWfNOHF20gqyU1H/2hAUGg4E+\nffoQGBjI2LFj7/qC5vbbgwcPRq/XAxAeHk6zZs1o0qQJUVFRAEyaNIm+ffvSqVMnGjRoUOB7rtfr\n8fPzIygoiIEDBwIQExNDmzZtaNWqFT179iQtLQ2AqlWrMmzYMDp37kxWVhaDBw8mKCiIFi1asHfv\nXgBGjx5t/mJtxYoVAHh6ejJ06FCaNm3K6NGjAcjKymJIWBhDO7ZnXu9O9E39k1WNniIt/HWeOB3N\nodib9GwVSMcfdhAy6T1Wr/uBxgEt2bt/P+7u7nd1vzMyMkhJSaFatWrY2dkREBBgrunOoF6Q3H+H\n0tPT8fT0xMnJiYoVK1K6dGkA7O3tscm5OsCwYcNYsmQJRqORdu3asWfPHgD27NlDxYoV8zzm8ePH\n8fPzo0OHDnm+SLhdjRo1zH/PfRyDwcDRo0eZOXMmgYGBfP755wDs3buXgIAA7OzsqFatGsnJyWRk\nZOQ53qxZszhw4AA6nY6lS5eyePFi3nvvPXQ6HQaDAS8vL0aOHElgYCD9+vXDaDQ+0GtUnDg6wtix\ncOaMaUr6/Png5WUK5Tm/0kIIIYRFkQAuHrrcD4U1atRgwoQJLFmyhMGDB+e77bZt2wgMDESn0/HK\nK6+glGL48OFcvHgRnU7H/Pnz2bNnD3369GH16tWEhISYu8Vz5syhSZMmBAUF8dVXXwF/hZfExER6\n9uxJ69atadWqFWfOnAFAp9MxYsQI2rZtS+vWrcnIyGDWrFlcvnwZnU5HREQEixcvpkuXLnTt2pW6\ndeuyY8cOIP/Acue+BcnvQ3B+H+JvZ2Njg5YzwCopKYl69eoB4O3tTUJCAmDqklWoUAGA6OhoAgIC\nAOjQoQPbtm17kLerQJqVFZ6tWvDC8s8ZcvkAgTMnkBGfyI+D3mRepWf56T9juXaw4NUIIn/ff/89\nLi4ubNu2jY4dO5KdnX3ffaKjo9mxYwe7d+/mxx9/ZOTIkebfo/Lly7Nu3TrGjBnDl19+me/+a9eu\nZerUqWzdutX8e/rqq6+ycOFCtmzZgr+/v/n+K1euMHbsWNavX09ERAReXl5s3bqVNWvWMHLkSAA2\nbtzIjh072Lp1Kz169AAgNjaW8PBwfvnlF9avX09SUlK++7va2fDd119xYPZ07D6bwpQxo3m1aX18\nBwzBuWkgrjMW8p6xLJNPXmHjtSQMt61Uv3HjBm5ububbbm5u3Lx582+/Bz169KB69eq0aNECa+u/\npranpKQwfvx43nrrLcD0b9m8efP4z3/+Q+vWrWnSpAkA7733HmPHjs1zzHfeeYc5c+YQFRWFq6vr\nPR9/27ZtXLlyhZYtWxIbG0tMTAxvvPEGmzdvZtmyZZw4cYIbN25QpkyZez7XN998k0aNGqHX6+nb\nty8hISGMGzcOvV6PtbU12dnZ9OzZk23btuHo6FjgFwOPgwoVYO5cOHrUtCT93XdN1w2PjITH8HsH\nIYQQxZgEcPHQ5X4oPH36NOPGjSM0NDTfYKCUYsSIEaxbtw69Xo+joyNRUVF8+umneHh4oNfrGTp0\nKA0aNGDVqlV0797dvO/Ro0dZu3Ytu3btYuvWrfTr1y/PsadPn07Xrl35+eef+fjjj/N8WNbpdGza\ntImnn36azZs38+abb5ofLzQ01Lzd2rVr+eKLL5gzZw6Qf2ApaN/bFfQhOL8P8Xc6cOAAzZo149VX\nXzWfG9qmTRvmz59PvXr1mDdvnvnLjdu7W/80mBTEqVxZfN8cSshxPb12fItXl3YcW7yKyEbP8XWj\n5zg8bwkZSckP7fEeZ6dPn6Zx48YANGnSxPwlS35yzxE+efIkTZs2RdM03NzcqFChAnFxcQA0atQI\nMHWgb9y4ke9x3nrrLdatW0ffvn1ZtGgRAMeOHaN///7odDqWL1/O1atXAfDw8MDT03RZupiYGFas\nWIFOp6NXr14kJiYC8P777zNo0CBCQkI4ceKEeb+KFSuiaRqVK1cmPj6+wP3Lly9P27ZtOXL4MK/3\n70sfj7K8Vq08bcqVZkLNirR0L8Wx5HRm/hHLtYwshhy+wBfn41iXbCQ+IYHN15MwKEViYiJly5b9\n2+/BqlWrOHfuHFFRURw/fhwwdet79erF22+/TZ06dQBwcHBg4MCBrFy50rwEPCoqCl9fX9zd3fMc\n8/Tp0/j5+QGYg/qZM2fQ6XTodDrzl4BHjhxh7NixfPPNN2iaRpkyZahUqRL169fHzs4OnU5HTEwM\nZcuWNX/RBpif6+DBg9HpdMydO/e+z1PTtDw1nTx58m+/VsXNM8/A99+blqRXqAAvvwyNG5sGtwkh\nhBCWQEbSiiITFxfHuXPn6Ny5MwC3bt2iVq1aD7Tv8ePHadGihXmp6O1dLDAFh23btjFv3jwA83bw\nYIElv21yAwuYlq+2adPmgWrN70NwQR/iX3jhBW7dusVrr71G9+7dadSoEb/88gt79+7ltddeY+/e\nvbz99ttMnTqVrl27snz5ct59910+++wzrG67Fs8/DSYP8lwqt/Cjcgs/guZM5sTSb4n5IpKf/vMO\n+lGTeaZ3Z3zC+vBkk2fvGSxLMi8vL3766SdCQ0PZt28fd16JwtXVlatXr1K+fHmio6N5+eWXqVmz\nJgsWLEDlhM7Y2FjKlSsHkOd1LuiqFu7u7sydOxelFDVr1qRHjx7UrVuX5cuX8+STTwKYZzTc/t+S\nt7e3eRlz7jZKKdq0aUPHjh3ZuXMnEyZMYM2aNXe930qpfPcH0xdou3fvplOnTnzyySe8/vrr2NnZ\noRkNtHQvRUv3UiilOJuaSXMba0rbWLP6zwSMwHmjNeE7o0lrXIedO3c+0Pnat9eUlZWFnZ0dDg4O\nODo64ujoiNFopF+/fnTp0oUuXbqYt79y5QoRERH897//5d1332XWrFlER0ej1+vZvXs3MTEx/Pbb\nb6xYsQIvLy/2799PkyZN2LdvH08++SReXl7mUwjAFMgHDRrEmjVrzO+fg4MD1atX5+LFi1SpUoUD\nBw7QtWtXqlWrxvjx48nKyuLKlSuUKlUKe3v7PF9m/vnnn3lWUNjZ2eW5rZTKU9Nzzz33wK9VcafT\nwd69sHw5vPOOqSvesSPMmGEK6UIIIURRkQAuHro7PwQWpFy5clSvXp3169dTqlQpwNSFehDe3t78\n73//w2AwYG1tjdFozBNAvb29adasGS+++CJAngFw+QWW2/ctaJuCAsud+94pvw/BBX2IX79+vXm/\n9PR08zmwbm5uODk5mY+X++G9QoUK5k53/fr12b17N82bN2fjxo3Mnj373i/iv+Tg5krDV0NoMGwA\nV/dFE7NgGb8t/46jC7+hXN1n8AnrQ+1+XXEsW+b+BytBunTpwqpVqwgMDKRx48bY29vn+fmYMWMI\nDg7G29vbfHpBw4YNad68Oc2aNcNoNDJz5sz7/t7dbtasWWzatAmj0UhwcDAuLi589tlnhISEmP+b\ne+eddwgODs6zX1hYGMOHDycoKAgAX19fpk2bRvv27QHT7+iECRMKfNz89p88eTJDhgwhMjIST09P\n2rZtS0BAAD4+Pvz+++90796diRMnkpCQQHh4OEmxVzn8xgAGDnmFRVUaUHPEeI5OHMkgoO/AgZR2\ndTM/1u7du8nIyGD//v189913d9WTnZ1tXkmSmZlJz549qVatGqtXryYqKopr164RGRmJj48Pc+bM\nYeDAgcyePZumTZvSu3dvNmzYwLhx4xg3bhwAISEhDB48mKpVqzJt2jQGDRqEu7u7+b/PO40YMYKE\nhAQGDBgAmFYmdOjQgTlz5tCvXz+ysrJo1aoVzz77LGA6Bz0wMBBN08wrcW5XsWJFHB0d6datG8OG\nDSM4OJgRI0awfv16Vq5ciY2NDWvWrGHMmDF4eHjQqVOnAt+rx5GVFfTtC127wpw5puuG160LQ4fC\nxImmDrkQQghR2OQ64OKhMxqNdOjQAScnJ55//nmuXLnC+PHj891227ZthIeHo5TCysqKjz/+mHr1\n6uHl5ZXnvO3IyEgqV65s/sDbokULZs+ezfLly3F2dmbAgAEMGDDAvF9iYiKvvPIK165dQylFhw4d\nGD16dJ5jTZ061XzMAQMGkJSURK9evUhPT+fSpUuMHz+eS5cu0a9fP/R6PUePHmXUqFF3BZbb9+3d\nu/ddz9HLy4uuXbuyZ88ePDw8+Prrr/N0GW9/TreLiorigw8+MG/78ccf06BBA44dO8bQoUOxsbEh\nKyuL+fPnU7duXf744w9CQ0PJzMykffv2Bb7mj1Jm8i1+++Z7YhYs4+q+aKzt7anZvQM+YX2o3LKp\ndMVzZGVlYWtry65du5g+fXqeL15E/jZfT+KDM3+Nt/ZwsOVyehYeDraEVClLoHsprOT3K4/b/x0V\ncP06hIfDvHng5GTqjI8YYRrkJoQQouiVlOuASwAXQjwSsdFHObJgGSci15KZlEyZWk/jM7gP3gN6\n4FTe/f4HeIx169aNuLg4MjIymD9/PvXr139oxx4zZox5MjiYVqTkXtqqODMoxZa4ZNqUK81PcckE\nuZdiX0IaERducC4tEy9ne0I9y+Lr6oSmaWzZsoXJkyfnOcaECRNo1apVET2DwicBPH8nT8Lbb5vO\nFa9SBd57z9Qp/xuLSoQQQjwCEsAtiATw4u/48eMMGzYsz31DhgyhT58+RVTRwycf+POXlZrGqVU/\ncGTBMv7ctQ8ruG2rigAAIABJREFUW1u8urTDJ6wvVVu3QJNPveJfMCjF1rhbLL54g6sZ2dR3cSTU\n0506pR3uv7Mo0bZtg1Gj4MABePZZ+Ogj07niQgghioYEcAsiAVyIx8ON46c4smApx5esJv1mAq7V\nPKkb2pu6A3tRqlLFoi5PFGOZRsWGa4lEXo4nIctA8zLODPIsy1NO9vffWZRYRqNpUNu778KFC6ZB\nbR98ALVrF3VlQghR8kgAtyASwIV4vGSnp3P62/8jZsFSLm7djWZtTfUX2lAvrA9PPReE1R1T7YV4\nUGkGI2uuJLDyzwTSDEaCy5dmQJWyPGFvW9SlCQuWlgaffGIa1JaSAkOGwKRJMqhNCCEKkwRwCyIB\nXIjHV/zpP4iJ+IZji1aQGhtHqcpPUndQb3xCX8LF06OoyxPFVGKWgW8ux/Pd1URA0fEJV16qXIYy\ntnLxD1Gw69dh8mT43/9Mg9rGjoWRI2VQmxBCFAYJ4BZEArgQjz9DZia//7CZmAXLOLdpGwDVngvC\nJ6wP1V9og7WtdDDF3xebkcXXl+L5MTYJeyuN7pXc6P5kGZxtZPaAKNjtg9oqVzZ1xmVQmxBCPFoS\nwC2IBHAhSpbEcxc5uvAbji78hluXr+JcsQLeIT3xGfwSbk8/VdTliWLoQlomiy/cYPvNFFxsrOjj\nUZZOFV2wk0Ql7mHbNhg9Gvbvh4YNYeZMGdQmhBCPigRwCyIBXIiSyZidzdn/20rMgmX8EfUzymDA\ns5U/PkP64tXlOWzsZcCW+HtO3kpn4YUbHEhMo7ydDQOqlCW4fGms5RriogBGI3zzjem64RcuwAsv\nwIwZMqhNCCEeNgngFkQCuBAi+fIVji1aQUzENySdu4iDexm8B/TAJ6wv7s94FXV5opg5mJhKxPkb\nnEzJwNPRlkFV3PEv64wmQVwUID3dNKjtvfdMg9rCwiA8XAa1CSHEwyIB3IJIABdC5FJGI+d/2kHM\ngqWc+e5HjNnZeLTwwyesDzV7vICtTEsSD0gpxc6bKSy6eIMLaVk8U8qeUE93Gro6FXVpwoLlDmqb\nN880nG3sWBgxwjS0TQghxD8nARzQNM0OeB4IACoBacBRIEopdbJQKkQCuBAif6mxcRz7ahUxC5YS\nf/os9q4u1H65G/XC+lC+Xp2iLk8UEwal2HQ9mSUXb3I9M5tGro6EerpTs5RDUZcmLNjJk6bw/d13\npkFt770H/frJoDYhhPinSnwA1zTtv0BXYDtwAIgFHICaQBCgAaOVUkcfdZESwIUQ96KU4tK2Xziy\nYBmn12zAkJFBRb+G+IT14ZnenbEr5VzUJYpiINNoZN3VJJZdvklStpGW7qUYWKUsVRztiro0YcG2\nb4dRo/4a1PbRR9CqVVFXJYQQxY8EcE3rrJT6vsAdNe1JoIpSau+jKi6XBHAhxINKu3GTE5FrObJg\nGTeOncS2lDPPvNSFemF9eMK3vpzjK+4rJdvI6ivxrPozgUyjol0FF/pXLkt5e7mGuMifDGoTQoh/\nr8QH8Hw3Ni1Jt1FKpT66ku4mAVwI8Xcppfjzl/3ELFjGyRXryE5Lp3z9OtQb0pfafbti7+pS1CUK\nCxeflc2yS/H8cC0RDY0uFV3p7VEGV1vroi5NWKj8BrVNmgRPPFHUlQkhhOWTAH7nhpo2EOgDWAO7\nlVLjH2Vht5MALoT4NzISkzix7FtiFiwj9tBRbBwdqNWzIz5hfanU3Fe64uKerqZnseTSTTZfT8bR\n2opeldzo+qQbjtZysq/IX1ycaVDb//4HDg6mc8VHjpRBbUIIcS8lPoBrmva8UmrDbbe/UUr1zvn7\nYaVU/UKqUQK4EOKhuXbgCEcWLOXE0m/JupWCe52a+Ax+iTr9u+PoXraoyxMW7GxqBosu3GR3fApl\nbK3p61GGDk+4YmslX+CI/J06BW+/LYPahBDiQUgA17SJQAPgv0qpozlD2SoDRqCsUqpXYRUpAVwI\n8bBl3krh5Ip1xCxYypU9h7C2s6NGt+fxCetDFV1z6YqLAh1PTuPLCzc4kpRORXsbQqq4E1SuFNby\nOyMKsH07jB4N+/ZBgwYwc6YMahNCiDuV+AAOoGlaJWAKkAVMAMoCTkqpg4VTnokEcCHEo3Q95gQx\nC5Zx/Os1ZCQk4ub1FD6D++Ad0hPnJ8oXdXnCAiml2J+YSsSFm5xJyaCakx2hnu40cXOSL29EvoxG\nWLHCNKjt/Hno0ME0qK2OXDFRCCEACeCmH2qaI6aOtzcwGdgNzFRKZRROeSYSwIUQhSErLY3TazZw\n5IulXN6xBysbG57u3JZ6YX2pGtwSTdaNijsYlWLbjVssvniTy+lZeJd2YLCnOz4ujkVdmrBQ6enw\n6aem5ejJyaZBbeHhMqhNCCFKfADXNC0caAHYAKuVUp9qmtYVeBWIUEotK6wiJYALIQrbjd/OEPPl\nMo5/tYq0uJu4VK1M3dDe1B3Um9IeTxZ1ecLCZBsV/3c9ia8v3uRGlgE/NydCPd152tm+qEsTFkoG\ntQkhRF4SwDUtWinVQDOtpTuglHo2535b4HWl1MzCKlICuBCiqGRnZPD79z9yZMEyLvy0A83KimrP\nt8InrC/Vn2+FlY1cG1r8Jd1g5PuriSy/HM8tg5FW5UoRUsWdSg62RV2asFCnTpnC97ffgoeHqTP+\n8ssyqE0IUfJIANe05UA84AQkKaVeL8zCbicBXAhhCRL+OM/RiOUcXbiClKuxlKpUkbqDelE39CVc\nn6pS1OUJC5KcbWDlnwmsvZJAtlI8X8GFfpXL4m4nX9iI/O3YAaNG/TWo7aOPoHXroq5KCCEKT4kP\n4ACapjUEspRSRwuvpLtJABdCWBJDVhZ/RP1MzIKlnN24FYCqwS2pF9aHpzu1xdrOrogrFJbiRmY2\nkZdusiE2CRtNo+uTbvSq5EYpG+uiLk1YoDsHtT3/PHz4oQxqE0KUDCUlgBe4wEnTtKZKqUMFhW9N\n00ppmib/SxBClDjWtrbU6PIcXaO+JuzcHppNGMnNE6f5ocdQvqjSmG1jpnLz1O9FXabFW7x4MVOn\nTi3qMh4pdzsb3qhegYX1PWlexpnll+N5+eB5VlyOJ91g5Ny5c6xbt868/aRJk6hduzY6nQ6dTofB\nYADg4MGD+Pv707x5cxYvXlzg482aNYuWLVvi7+9P//79ycrKIi0tjeDgYFq0aEHTpk3ZuHHjfevO\nysqiRo0a+b4/ly5dQqfT3XX/qVOnaN68OTqdDn9/fw4fPgxAeno6ffv2JSAggL59+5Keng7AuXPn\naNWqFf7+/kybNi3fOhYvXkxSUhIACQkJLFmy5L61F2dWVvDSS/Dbb6YJ6bt2gY8PvPIKXLtW1NUJ\nIYR4GO51hlEfTdN2aJr2rqZp7TRNe1bTtOaapvXXNG0RsBEoXUh1CiGERXLx9KD5pFEMPvsrL0Yt\noVJzXw7M+oJFtVqyMqg7J5Z9S3ZO4BCWLzfwPmwejnaMq1mRefWqULu0Awsu3GDAofMsP3iU777/\nPs+248aNQ6/Xo9frsbY2dcqHDx9OZGQker2eTz75hPj4+Hwf57XXXmP79u3s2rULgE2bNmFjY8OC\nBQvYuXMn69evZ8SIEfetd/78+TzzzDN/6zlWr16dXbt2odfrmTJlijm8L168mGeeeYYdO3ZQq1Yt\n8xcIY8eOJTw8nF27drFlyxZ+++23u45Z0gJ4LgcHeOstOHMGXn0VIiLAywumToXU1KKuTgghxL9R\nYADPOef7RUzngb8MfAi8C/gAXymlApRSewqlSiGEsHBW1tZUf741nb+NYMjFfbSYNpakC3+yoe9r\nzPdoxNYRE4g7drKoyywyBoOBPn36EBgYyNixY/Hy8srz89tvDx48GL1eD0B4eDjNmjWjSZMmREVF\nAaYucd++fenUqRMNGjTIN7gB6PV6/Pz8CAoKYuDAgQDExMTQpk0bWrVqRc+ePUlLSwOgatWqDBs2\njM6dO5OVlcXgwYMJCgqiRYsW7N27F4DRo0fTrFkzgoKCWLFiBQCenp4MHTqUpk2bMnr0aIB891dK\n0alTJy7t+4XxVd24/kZfHOOuMOvjj/lm3Q808A9gX86pVjNmzKBFixZ88sknAGRkZJCSkkK1atWw\ns7MjICDAXNOd7HJOf1BKYTQa8fLywtbWlqeeegoAR0dHrHKme61cuZLQ0FAAJk6cyKxZswC4desW\nGzdupFu3bubj3rp1iw4dOtCmTZsCu9U2Njbma6AnJSVRr149ALZt28YLL7wAQMeOHdm2bRsA0dHR\nBAQEANChQwfz/bm2bNlCdHQ0PXr0YPjw4cyaNYsDBw6g0+mIiopi0qRJ9OzZkw4dOtCkSROOHz+e\nb13FWbly8MkncOwYBAfDf/8LNWvC4sXwiL4rEkII8agppSz+T6NGjZQQQhQ3RoNBnftpu1rXc6ia\nZVtVfUQltbRZRxWz8BuVeSulqMsrVGvWrFFDhw5VSim1c+dOVbVqVbVo0SI1ZcoUpZRSTz/9tHnb\n0NBQtXXrVnXo0CHVunVrZTQaVXx8vKpRo4YyGAxq4sSJ6o033lBKKbV06VI1atSofB9z+PDh6scf\nf1RKKWUwGJRSSgUEBKjz588rpZSaPXu2+vTTT5VSStna2prv/9///qemT5+ulFLq6tWrqnnz5kop\nperUqaOysrLyHM/e3l5duXJFGY1GVatWLZWYmFjg/rGxscrX11f17t1brVixQhmNRjX3+w2qZpde\nqvXu02ro4Qtq0+/nlcFgUKmpqap169Zq+/bt6vLlyyowMND8vCZMmKCWLVtW4Gs9depU5eXlpdq3\nb69SUvL+noWFhamFCxeabw8ePFi98cYbqmPHjspoNJqPv2nTpjzvz6xZs9S0adOUUkpFRkbmqed2\n+/fvV02bNlWVKlVSv/76q1JKqeDgYHX27FmllFJ//PGHatu2rVJKqRo1apj3W7hwofn4twsMDFQX\nL15USil19uxZ1bp1a/PPJk6cqIYMGaKUMv1Ode7cucDX5HGxfbtSjRsrBUo1aKDUTz8VdUVCCPHw\nAPuVBWTPR/1HLnIhhBCPiGZlRdXWAXRcMY+hlw8Q+NF/Sb+ZwI+D3mRepWf5adg7XDtUpDMuC83p\n06dp3LgxAE2aNDF3SvOjcoaDnjx5kqZNm6JpGm5ublSoUIG4uDgAGjVqBJg60Ddu3Mj3OG+99Rbr\n1q2jb9++LFq0CIBjx47Rv39/dDody5cv5+rVqwB4eHjg6ekJmLrkK1asQKfT0atXLxITEwF4//33\nGTRoECEhIZw4ccK8X8WKFdE0jcqVKxMfH1/g/uXLl6dt27YcPnyYnj17omka3i6OtCjrzFivJ7iV\nbeCDa5mMPvEnK+JSefHFF1mq34lrmTIkJCSYn1diYiJly5Yt8PUbN24cp06dolq1annOF58yZQou\nLi7m1QAAY8aMYc6cOYwbNw5N07h27RqHDh0iODg4zzFPnTqFn5+f+f3L9cILL6DT6Vi9erX5ffnl\nl1/49ttvGT58OABly5Y113977Va3XWcr9/7Vq1ej0+nMHfP7ub2mU6dOPdA+xVlAAPz6KyxfDvHx\n0KYNdOhg6pALIYQoHiSACyFEIXAq747vqFcYeGIbvbavxatzW44tWknks+2I9G3P4flfk5GUXNRl\nPjJeXl7kXs1i37595pCdy9XVlatXr2IwGIiOjgagZs2a/PrrryilSEhIIDY2lnLlygHkCfB3HiuX\nu7s7c+fOJTIykvfff5+kpCTq1q3L8uXL0ev1/Prrr0yYMAHAfK41gLe3N/379zefh33w4EGUUrRp\n04YlS5YwePBg8353fpGglMp3f4CjR4+ye/duOnXqZF5ebmdnh8FgoE350ixqUJWBZWw5k5LB1xdv\nMnltFL86lWd1XCpOzs5cuHCBrKwsdu7caQ6ed8odcKZpGq6urjg5OQEwd+5cTp8+zYcffmje1mg0\n8uqrr7Jo0SLefvttsrKyiImJ4fr16zz33HPMnDmTJUuW8MMPP1CjRo0871+u9evXo9fr6d69u/mx\nAdzc3MyPHRgYyIYNGwDYsGEDgYGBANSvX5/du3cDsHHjRlq2bEn37t3R6/WsX7/e/PpkZ2ff9fdc\nt9dUo0aNfF+Tx42VFfTunXdQW716MHQo5HyfJIQQwoLJBUmFEKIQaZpG5YAmVA5oQtCcyRyPXEvM\ngmX89MpYto2aTK3enakX1oeKfg3v2SUubrp06cKqVasIDAykcePG2Nvb5/n5mDFjCA4OxtvbmwoV\nKgDQsGFDmjdvTrNmzTAajcycOTNP1/R+Zs2axaZNmzAajQQHB+Pi4sJnn31GSEgIWVlZALzzzjt3\ndXvDwsIYPnw4QUFBAPj6+jJt2jTat28PmEJubgDPT377T548mSFDhhAZGYmnpydt27YlICAAHx8f\nfv/9d7p3787EiRPZPHMm1377jd9upVOmYRPKNdfx9aV4bIa8hX+XbjhZaQwMDcPVzS3fxx41ahTH\njh0zn/8dHh5ObGwsb7zxhvn8dYCff/6Z9957j7Zt2xISEkJaWhrjxo1jxowZtGnTBjANQLt06RId\nO3YkOTmZnj17snnzZurWrZvvY//888988MEH5i8zZs+eDUBISAiDBg0iICCAypUrm1cjTJ8+ndDQ\nUDIzM2nfvj21a9e+65hdu3YlNDSU5s2bEx4ejqOjI926dWPYsGGA6dz09u3bExcXd8/p8I+j3EFt\nAwfClCnw+eewbBm8/Ta8+SbkfP8hhBDCwtzzOuAAmqbtARYCy5VSSYVS1R3kOuBCiMeZUoqrew9x\nZMEyTn7zPVkpqZTzqY1PWB/q9OuKQ5n8w1Zxk5WVha2tLbt27WL69OnmLqfIa/P1JD44E2u+3ekJ\nF4zAocQ0LqebvjhwsbGivosjDVydaOjqSBUH28fqC5sHMWnSJLy8vOjXr19Rl2IRTp+GsWNh7Vqo\nVAneew9efhms5ZLzQohioqRcB/xBAvgzwECgB7AbWKSU+rkQajOTAC6EKCkykpI5+c33HFmwjGv7\nD2Pj4ECN7s9Tb0g/PFr4FeuQ1a1bN+Li4sjIyGD+/PnUr1//oR17zJgxeSaD29nZsWnTpod2/MJk\nUIotccm0KVean+KSaVWuNNY57/v1jGyik1LZff5PPh8aQmbO/8NtNQ3fts8xfMSbNHB15EkH26J8\nCoVCAnj+duyAUaNg3z6oXx8++sh0rrgQQlg6CeB3bqhp1kAnYC6Qiakr/qlSKuGeOz4EEsCFECXR\ntUNHiVmwlBNLvyUzKZmyz3jhM/gl6vTvgVN596IuTxQxpRRXMrKJTkzlUGIa0UlpxGeZrk1V0d6G\n+i6ONHR1ooGLI+Xs5YyzksRohJUrTR3x8+ehfXv48EPw9i7qyoQQomASwG/fSNPqYOqCdwS2AEuB\nFkAvpdSzj7RCJIALIUq2rJRUTq76gZgFy/hz936sbG3xevE56oX1wbNVC7S/cV60eHwppbiQlsWh\nxFSik9I4nJhGssEIQBUHWxq4mpas13dxxM1W1iWXBOnpMHcuTJ0KyckweDCEh0PFikVdmRBC3E0C\neO4GmrYXSMXU8V6llEq77WfrlFKdHm2JEsCFECJX3LGTxHy5jONfrSY9PgHX6lXxGfwS3iE9KfXk\nE0VdnrAgRqX4PTWT6MRUohPTOJKURprR9P/86k52NHB1pKGLEz4uDpSykUD+OLtxAyZPNg1qc3CQ\nQW1CCMskATx3A02rqZQq0otrSgAXQoi8stPTOb12IzELlnJR/wuatTVPdwzGJ6wPT7XTYSWTl8Qd\nso2KUykZpkCelMbRpHQylcIKqOFsbwrkrk54l3bA0VpWVTyOZFCbEMKSSQDP3UDTpgAzc8/11jSt\nDDBCKTWxEOoDJIALIcS9xJ/+g5gvl3N00QrSrt+gdJVK1B3Um7qDeuPi6VHU5QkLlWlUnEhOJzrJ\ndA75b7fSyVZgo8EzpRxo6OpIAxcnapd2wM6q+A7/E3fbudM0qG3vXhnUJoSwHBLAczfQtENKqYZ3\n3HewMM79ziUBXAgh7s+Qmcnv6zZxZMEyzm/eDkC19kH4hPWleofWWNs+/pOxxT+XZjByLDnddA55\nYhqnUzIwAnaahreLAw1zLntWq5S9eSq7KL6U+mtQ27lzMqhNCFH0JIDnbqBpRwBfpVRmzm0HYL9S\nqm4h1AdIABdCiL8r8dxFjkYs5+jCFdz68yrOFSvgPbAnPoP74Fa9alGXJ4qBW9kGYpLSOZRkCuR/\npGYC4GStUbe0o6lD7urE0052WEkgL7YyMuDTT2VQmxCi6EkAz91A094F2mEawgYwCPg/pdT0R1yb\nmQRwIYT4Z4zZ2ZzduIUjXyzl7IYtKKMRz9Yt8Anrg1eX57Cxty/qEkUxkZBl4EhSmrlDfjE9C4DS\nNlbUd3GkQc5lzzwdbYv19epLqhs3YMoU+OwzsLf/a1Cbs3NRVyaEKCkkgN++kaZ1BFrn3NyslIp6\npFXdQQK4EEL8e8mX/uToohUcjfiGpPOXcCxXljoDelAvrA9la3kVdXmimInLyCY6Kc10HfKkNK5l\nZANQxtaaBi6O5qFuT9rbSCAvRk6fhnfegTVrTIPapk6F/v1lUJsQ4tGTAG5BJIALIcTDYzQYuPDT\nDo4sWMrv32/CmJ2NR0AT6oX1oUb3Dtg6OhZ1iaIYupKeRXRiGtE5S9ZvZBkAqGBnk7Nc3TTUrby9\nTRFXKh7Erl2mQW179sigNiFE4ZAAnruBpjUGPgVqA/aABmQopVwefXkmEsCFEOLRSLl2nWNfrSJm\nwVISzpzD3s2VOi93wyesD+V9ahd1eaKYUkpxMT2LQ4mmDvnhpDSSso0AeDjY5kxYd6S+qyNlbCWQ\nW6r8BrXNmAF1C20KkBCiJJEAnruBpu0D+gHfAH5ACFBVKTX+kVeXQwK4EEI8WkopLup3E7NgGafX\nbMCQmcmTTRriE9aXWr06YVdKTgQV/5xRKc6mZpoCeVIqR5LSSDWYPn885Whn7pDXd3GklI2sdbY0\nGRkwd65pOXpSEoSGwuTJMqhNCPFwlZQAbvUg2yilTgI2SqkspdQCoMMjrksIIUQh0jQNzyB/Oiz7\njKF/HkD38SQyk1PYNHg08ys9y+ahY7h24EhRlymKKStN42lne7pXcmPqM5X4tnF15tatTKinO+52\n1myITWLiyat03XeWYUcu8sX5OPbGp5BmMBZ16QLTULZRo+DMGXj9dVi8GLy8TCE8JeXfHXvx4sVM\nnTr1odRZXJ07d45169aZb3/77bfUrl0bBweHPNsdPHgQf39/mjdvzuLFi833t2vXjvLly9/3dXz5\n5ZfR6XT4+vry8ccfA3Do0CH8/f1p2bIlrVq14o8//rhvvadOncLW1padO3fe9bPIyEgmTZp01/0z\nZsygSZMm+Pv7M3z4cJRSpKWlERwcTIsWLWjatCkbN27Ms8/WrVvRNI1Lly7dtyYhipMH6YBvB9pg\nmoJ+AbgChCml6j368kykAy6EEIVPKcWfv+wn5oulnFz5A9lp6VRoWBefsD7U7vMi9q6FdiaSeMxl\nGhUnb6Wbl6wfv5VOtgJrDZ4p5ZAzYd2ROqUdsLN6kN6BeJTOnDEtS38Yg9oWL17MpUuXGD++0BZW\n3pfBYMC6EKfO6fV6IiMj+fLLLwG4ceMGzs7O1K1blzNnzpi38/f3JzIyEg8PD5o2bcrPP/9MmTJl\nuHTpEj/99NN9X8fMzEzs7OzIzs6mdu3aHPx/9u47rsq6/+P462LjQEBxobgQU8CRCxRlCGgO3KiY\nhgpWlqWlZDe/NC1H3UlqWhbuAbkyTXOWmGZDzYF75F6oLFH2+f7+OHiSxNGdcFA+z8eDR57rXN/r\n+pxz1Hyf7/rjD27fvk3p0qUpW7Ys33//PbGxsSxevPih9Q4YMIArV67w/vvv4+Xlle+5JUuWcOrU\nqftC+MmTJ6lbty4AwcHBvPzyy7Rt25ZLly5Rs2ZNbty4QevWrTl+/Dig//9PUFAQV69eZfXq1VSr\nVu2x30/x9JIe8L+E5p33OpAL1AV6FWJNQgghigFN03Bs1ZwOC6bx8uU/aDdrIkopfhj2H2ZXfZ6N\ng0ZyaddunobFPEXxZmGi4W5jzcDq9kS5VePb5rX5qH5VgqvakasUsZeSGHXkMl1/P8Pow5dYejGR\nw7fSydHJ7z1jcHaGlSth506oXh0GD4bnn4ctWx7eLjc3l5CQELy9vRkzZgzOzvl3X7j3cVhYGHFx\ncQCMHz8eT09PWrZsyfr1+o143n//ffr3709QUBCNGzfm2LFjBd4zLi6OFi1a4Ovry6BBgwCIj4/H\n398fPz8/goODSU9PB6BGjRoMGzaMrl27kp2dTVhYGL6+vnh5efH7778DMGrUKDw9PfH19WXZsmUA\nODk58fLLL+Ph4cGoUaMACmx/N1TGxcVx584dPD09OXPmDFFRUaxfvx4fHx/27t1L+fLl7+v9zszM\n5Pbt29SqVQsLCwvatGljqOlxw6mFhQUAGRkZODk5UapUKSpXrkzZsmUBsLS0xMxMvybDsGHDWLRo\nETqdjvbt2/Pbb78B8Ntvv1G5cuV89zxy5AgtWrSgU6dO+Xry73U3fN97H3Nzc2rWrAmAtbU1Jvd8\nubZixQrat29PadkHTzyLlFIP/AFMgUUPO6cofpo2baqEEEIYn06nU1d271ebwker6WXqqk+oqua7\n+qo9n36l7ty4aezyxDPqVnaO+iUxTX1x5roauv+carfrpGq366Tq9Osp9e6RS2rZpUR1/Fa6ytHp\njF1qiaPTKbVsmVK1aikFSnXooFR8fMHnrlq1Sr388stKKaV27typatSooebPn68++OADpZRSderU\nMZw7ZMgQtW3bNrVv3z7Vrl07pdPpVFJSkqpbt67Kzc1V48aNU2+++aZSSqmlS5eqt99+u8B7Dh8+\nXG3atEkppVRubq5SSqk2bdqoc+fOKaWUmjZtmvrss8+UUkqZm5sbjn/xxRdq8uTJSimlrl69qlq1\naqWUUqrfqZVIAAAgAElEQVRBgwYqOzs73/UsLS3VlStXlE6nU/Xq1VMpKSkPbJ+QkKCaNWum+vbt\nq5YtW6aUUmrbtm1qyJAh99V+7/tx6dIl5e3tbXg8duxYFRMTY3h87/v4ML169VIODg5q7Nix+Y6n\npaUpDw8PdfjwYaWUUunp6crT01MNHTpUffTRR4bzunTpom7cuKFeeukltWPHDqWUUkFBQWrXrl1K\nKaXCwsLUuHHjHnj/uLg4w+d5r/DwcDVv3jyllFJZWVkqICBAZWZmKm9vb3XhwoVHvi7xbAD2KCPn\nzqL4eejSo0qpXE3TamuaZq6Uyv4nwV7TtHrAsnsO1QbGAovyjtcEzgLBSqmkf3JtIYQQxqFpGpWb\nNaJys0b4RI3j2NdriI+OIW7k++wYM5m6PTvSMDyEat6esvezeGLKmJniYVcaDzt9b1hKdi4HUtM5\nkJLOvtQ7fHXujv48UxMa5e1B3ricNTWtLeT3YSHTNAgOhq5d/1qorVEj/UJtrVrBnj0QGAhBQfph\nyM2bNwegZcuWD/1sVN7ImuPHj+Ph4YGmadja2lKxYkVu3LgBQNOmTQF9D/SWB3S/jx49mo8++oiF\nCxfi5+fHkCFDOHz4MAMHDgT0vcH+efurOTo64uTkBOh7yXft2sXGjRsBSElJAWDKlCkMHjwYExMT\nRo8ejaurK46OjlTOW5GuWrVqJCUlPbC9g4MDgYGBrF69mtjY2Md+n+3t7UlOTjY8TklJwd7e/rHb\n37VixQru3LlD27Zt6dOnDw0aNCA7O5s+ffrwzjvv0KBBAwCsrKwYNGgQERERXLlyBYD169fTrFkz\nypcvn++aJ0+epEWLFoD+c7148SKnTp0iLCwMgDlz5uDs7MzBgwcZM2YM3333Xb7P/oMPPsDGxsYw\nQuGrr77ixRdfNPTYC/GseZy9P04DOzRNWwMYltpQSs14WCOlX7itMYCmaabAJWA1MAb4QSk1RdO0\nMXmP3/nfyhdCCGEsFmVK0zAshIZhIVw/eISD0TEcXbyKYzGrsatbC7ewENxCgylVsYKxSxXPmHLm\nprQtX4a25csAcDMrJ28Pcv0c8p+T9P9csTU3pXFeIG9iY01VK3MJ5IXk7kJtoaH6ED5zJkRH65+b\nNw++/lo/xHzr1q0MGTKE3bvvn75Srlw5rl69ioODA/v372fAgAG4uLgQHR2NUoqUlBQSEhKoUEH/\nd8q9n+Xfr3VX+fLlmTlzJkopXFxc6N27N25ubsTGxlKlShVAPzcayDfv29XVFWdnZ0aOHGk4RymF\nv78/Xbp0YefOnYwdO5ZVq1bd93tKKVVge4BDhw6xa9cugoKCmDFjBm+88YZhXvbDWFlZUbp0ac6f\nP0+VKlXYuXMn48aNe2ibv9eUnZ2NhYUFVlZWWFtbY21tjU6n48UXX6Rbt25069bNcP6VK1eYO3cu\n7733Hv/5z3+Iiopi//79xMXFsWvXLuLj4zl27BjLli3D2dmZPXv20LJlS3bv3k2VKlVwdnY2TCEA\nOHXqFIMHD2bVqlWGzw9g5syZnDx5koULFxqOHTp0iNOnTxMTE8PBgwcZMGAAGzZsuG9YvhBPq8cJ\n4Ofzfkrl/fwv2gGnlVLnNE3rCvjkHV8IxCEBXAghnmoODRvQ7rMPaftRJCdWriM+OoYd70zk58iP\nqNM1kIZDX6SGfxs0WUBLFILyFma0cyhLOwf9XNarGdl5YTydfSl3iLuZBoCDhZkhjDcqZ00lS3Nj\nlv1MKl8ePv0Url+HpUv1x9LTYdIk2LChGytWrMDb25vmzZtjaWmZr21ERAQBAQG4urpSsWJFAJo0\naUKrVq3w9PREp9MxderUfHOFHyUqKorNmzej0+kICAjAxsaGWbNmERoaSna2fnDnu+++S0BAQL52\n4eHhDB8+HF9fXwCaNWvGpEmTeOGFFwB9z/nYsWMfeN+C2k+YMIGhQ4eyZMkSnJycCAwMpE2bNri7\nu3P69Gl69erFuHHjSE5OZvz48Vy+fBl/f3+GDRtGjx49mD59Ov369UMpxbBhw7CzszPca9euXWRm\nZrJnzx6+/fbb++rJyckhMDAQ0H8ZEBwcTK1atVi5ciXr16/n2rVrLFmyBHd3d6ZPn86gQYOYNm0a\nHh4e9O3bl++//57IyEgiIyMBCA0NJSwsjBo1ajBp0iQGDx5M+fLl84Xre40YMYLk5GReeuklQD8y\noXnz5rz55puGOfUAP/zwA1988YWhnY+PD4sXL5bwLZ4pj1wF/YncRNPmAX8opWZqmpaslLLNO64B\nSXcf/63NUGAogJOTU9Nz584Vep1CCCGenJtHTxI/J4bDC1eQcTMJm5rVcR/SF9dBfSjrWMXY5YkS\nQinFpYxs9qWksy81nQMpd0jJ0W9vVtXSXB/Iy1nT2MYaO4vH6ZcQj2PtWujXD+7cARMT0OnAzg7e\nfDObkSPNiY//mcmTJ7Nu3TpjlyqEKCZKyiroj7MN2RbgvpOUUoGPdQNNswAuA65KqWv3BvC855OU\nUnYPu4ZsQyaEEE+vnMxMTn27kfjoGM7/sBPNxIRandrRcGh/anXwxcRMQo8oOjqlOHsni/2p6exL\nSedAajp38vYbr2ltQaO8HvKGNtbYmBfdVlTPorVrYfNm/RzwqlX1+4Z/911PzMxuULlyJrGxX+Ll\n1eiJ3S8iIsKwMjjoV/3evHnzE7v+0+LHH39kwoQJ+Y6NHTsWPz8/I1UkxOORAH73BE1rec9DK6An\nkKmUGv1YN9APOX/tbmDXNO044KOUuqJpWhUgTilV72HXkAAuhBDPhuTTZ4mfE8uh+cu4c+06ZRwr\n4za4L+5D+mFTQ/Z5FUUvVylO3s7UL+iWks6hW+lk6BQa4Fza0jCH3N3GmlKmMoXi39q7Vx/E164F\nW1sYORLefBPKlTN2ZUIIY5MA/rBGmvabUqrlo88ETdO+BjYppebnPf4vcPOeRdjslVIRD7uGBHAh\nhHi25GZn8+e6rcRHx3Bm4zYAagZ64x4eQp2gQEzNZW6uMI5sneJYWgYH8nrIj9xKJ1uBCfBcGSvD\nCuuuZaywlED+P/vjD30QX7NGH8RHjNAHcdv7JiUKIUoKCeB3T9A0m3semgBNgS+UUi6PvLimlUa/\ngFttpVRK3rHywHLACTiHfhuyxIddRwK4EEI8u1LPX+LQvK+JnxtL2sUrlKpYAddBfXAP64edcy1j\nlydKuMxcHYfTMvSrrKekcywtAx1grkGDsn/NH69XxgpzE1lh/Z/at08fxL/9Vt8LPmKE/keCuBAl\njwTwuydo2gX0c8A1IAc4A4xXSm0v/PL0JIALIcSzT5eby9mN2zgYHcOf67aicnOp7tsK9/D+1O3e\nATNZBVcUA3dydcTnrbC+PzWdU7czUYCViYbb3UBezhrn0paYypZnj23/fn0QX70abGz+CuJ2D10l\nSAjxLJEAXoxIABdCiJIl7fJVDi9YTvycWFLOnMfK3pYGA3vRMLw/5Rs8cgCWEEUmNTuXg6l3V1hP\n52y6fr/n0qYmNLT5q4e8ZikLTCSQP9KBA/og/s03+iD+5pv6IG5vb+zKhBCFTQL43RM07RXga6VU\nct5jO6C3UuqrIqgPkAAuhBAlldLpOPfDTuKjl3Lq203osrOp2ro5DcNDcOndBfNS1sYuUYh8ErNy\nDPPH96ekczlTv9d0OTMTGpUrRZO8UO5oZY4mgfyBDh7UB/FVq6BsWX0QHzlSgrgQzzIJ4HdP0LT9\nSqnGfzu2TynVpFAru4cEcCGEEHcSbnB40Urio5eSdOJPLMvZ8Fz/7jQMD6FiYzdjlydEga5lZutX\nWM8btn49KweAChamNLYpZdiHvJKlLDxYkIMH4YMPYOVKfRB/4w19EC9f3tiVCSGetJISwB9n+c58\nm2BqmmYCyP8lhBBCFKlSFSvQfNQrDDr2E322r6J2F38Ozf2axU3as6R5Rw5+tYSsW2nGLlMUoQUL\nFvDhhx8au4yHqmRpTmBFG95xrkTM8zVY0NiJEbUdcCtrzZ7kO3xyOoH+f5xjwB9nmXo6gR+u3+Jm\nXkh/HGfPnmXt2rWGx++//z7169fHx8cHHx8fcnNzAfjjjz9o3bo1rVq1YsGCBQ+8XlRUFG3btqV1\n69YMHDiQ7Oxs0tPTCQgIwMvLCw8PDzZs2PDIurKzs6lbt26Bn8/Fixfx8fG57/imTZvw8PDA29ub\njh07cvPmTRo2hK+/zmXgwFFYW/szcaIPTk5HiIyEH3989GuaMWPGA98rIYQwhscJ4Fs0TYvVNM1b\n0zRvYCmwtZDrEkIIIQqkaRrV2nrQcfFnvHx5L77TJ5CbkcmWl99hdpUmbA4fzZXf9/E0rHEinj13\nA29BNE2jmrUFnSuV4/9cKrOiWU2iG1XntZoVqF3Kkh0305h86hp99p5l8P5zfPbndX66mUZK9oOv\nWVCojIyMJC4ujri4OExN9f0ow4cPZ8mSJcTFxTFjxgySkpIKvN7rr7/OTz/9xM8//wzA5s2bMTMz\nIzo6mp07d7Ju3TpGjBjxyPfhyy+/5LnnnnvkefeqX78+27dvZ/v27XTu3Jlp06YB8NVXX9G6tQvX\nrm0lPj6Ozp0bMHkyBAQMp1GjJaxc+eDXJAFcCFHcPE4AHw38DIzM+9kJjCrMooQQQojHYW1vx/Nv\nDGHgwa30+2Ut9foEcTRmNTEtO7O4cQD7Zs4nIznF2GWKJyA3N5eQkBC8vb0ZM2YMzs7O+Z6/93FY\nWBhxcXEAjB8/Hk9PT1q2bMn69esBfS9x//79CQoKonHjxhw7dqzAe8bFxdGiRQt8fX0ZNGgQAPHx\n8fj7++Pn50dwcDDp6ekA1KhRg2HDhtG1a1eys7MJCwvD19cXLy8vfv/9dwBGjRqFp6cnvr6+LFu2\nDE3T8H6uLhvff4dNod2pvWwWn7tXY1AVG/748F3e792FID8fAhZ9y9D952jo34HPv9vA9dQ0PD09\nOXPmDFFRUaxfvx4fHx/27t0LwMcff4yXl5chfGZmZnL79m1q1aqFhYUFbdq0MdT0dxYWFgAopdDp\ndDg7O2Nubk7NmjUBsLa2xsRE/8/H5cuXM2TIEADGjRtHVFQUAGlpaWzYsIGePXsarpuWlkanTp3w\n9/dn0qRJBd7byckJS0tLACwtLTEzMwNgxYoVnDt3Dl9fX2bPfp3Fi7PYuzcTG5vbzJ5dCxcXC0xM\n2rBlS/7XFBMTw6VLl/Dx8WHixIn3vVehoaGEhobSoUMHvL29uXLlSoF1CSHEk/Q4Adwc+Fwp1U0p\n1Q34AjAr3LKEEEKIx6dpGlU9mtJ+7lReubIP/9lT0MzM+HH4//FllefZMPANLu74TXrFn2Jr1qzB\nxsaG7du306VLF3JyHj1Me//+/ezYsYNdu3axadMmRo4ciU6nA8DBwYG1a9cSERHBnDlzCmz/zTff\n8OGHH7Jt2zbmzp0LwGuvvca8efP48ccfad26teH4lStXGDNmDOvWrWPu3Lk4Ozuzbds2Vq1axciR\nIwHYsGEDO3bsYNu2bfTu3RuAhIQExo8fzy+//ML369dTWZfFrY3f0LdZQ67t/oU136wkefbH2Jib\n4fD2BMZEvIN7z77Y9BzAj6Y2dBo6jA4dOxIXF0fTpk0ZPnw4Bw4cYMuWLaxdu5YdO3Zw8+ZNbO/Z\nWNvW1pbExMQHvm8TJ07ExcWFxMREqlevnu+5kSNHEhERAUBwcDAmJiaMGDGCffv2GV7nf//73/t6\nyaOjo/Hy8mLr1q20bt36oZ/btWvXmDlzJq+++ioAly5dokqVKmzbtg0rKyvmzZtHpUo3adTIlkOH\noEsX2LvXloEDExkzBq5f118nJCQER0dH4uLiiIyM5K233qJTp06G9wqgXr16bNy4kaFDh/LRRx89\ntC4hhHgSHieAbwNK3/O4NPBj4ZQjhBBC/DuWNmVp9PIABuzdyIt7N+Ia2ptT325iWdseLGjgw56o\nL7lz48HhQxRPJ0+epHnz5gC0bNnyoSuI3/2i5fjx43h4eKBpGra2tlSsWJEbN24AGAKYk5MTN2/e\nLPA6o0ePZu3atfTv35/58+cDcPjwYQYOHIiPjw+xsbFcvXoVAEdHR5ycnAB9L/myZcvw8fGhT58+\npKToR2FMmTKFwYMHExoaytGjRw3tKleurB+eXq0aSUlJhvb+fr6MGxKKRfptPnF1ZEP7ZgR36oDJ\n2ZM81yGI5ZeT+OrcTbZev8Vbhy6y6EIil81LkalT7EzLpnv37iyN20k5OzuSk5MNryslJQX7hywn\nHhkZyYkTJ6hVq1a+udUffPABNjY2htEAABEREUyfPp3IyEg0TePatWvs27ePgICAfNc8ceIELVq0\nMHx+d3Xu3BkfHx9WrlwJQGpqKr169WL27NlUrFgRAHt7ezp06ABAhw4dOHjwIPb29iQnJ9OgAcTG\nwoABKXh62vPRRzOpXNmHhg3DDEH8Ye6t6fjx449uIIQQ/9Lj9GRbK6Vu3X2glLqlaVqpQqxJCCGE\neCIqPe9OpS+m4P3JWI4v/46D0UvZ/vYEdr47BefuHXAPD8HJtzWayeN8Hy2MydnZma1btzJkyBB2\n795932iGcuXKcfXqVRwcHNi/fz8DBgzAxcWF6OholFKkpKSQkJBAhQoVAPIF+AeNjChfvjwzZ85E\nKYWLiwu9e/fGzc2N2NhYqlSpAkBWln7f77tzrQFcXV1xdnY29AhnZWWhlMLf358uXbqwc+dOxo4d\ny6pVq+77IkEpVWB7gBNHjnB6724G9uxO1R+/Ycprr7M0+RzzLEzI0CkWX0xk7tFUrG1syNYpDn2z\nniode7ArLZvSpUtz/vx5qlSpws6dOxk3blyBrzkjIwMrKys0TaNcuXKUKqX/J9/MmTM5efIkCxcu\nNJyr0+l47bXXmD9/Pu+88w5btmwhPj6e69ev06FDBy5dukRmZiaNGjWibt267Nmzh3bt2rF7927D\nNdatW2f4dXp6Ot27dycyMjJfSPfx8WHPnj04Ozsb/mtlZZXvNR05spMtW8Zx9Wp7Pvzwdb7+GmrW\nBCsrM65e1VG5sgkWFhb3jZy4tyYXF5cC3xMhhHiSHieA39E0rZFS6gCApmmNgYzCLUsIIYR4csxL\nl8JtUB/cBvXhxqFjHIyO4ejiVRxfthbbOjVxC+uHW2gwpStXNHap4gG6devGihUr8Pb2pnnz5oa5\nwndFREQQEBCAq6uroee0SZMmtGrVCk9PT3Q6HVOnTjXMX34cUVFRbN68GZ1OR0BAADY2NsyaNYvQ\n0FCys/X7e7/77rv39faGh4czfPhwfH19AWjWrBmTJk3ihRdeAPQhd+zYsQ+8b0HtJ0yYwNChQ1my\nZAlOTk4EBgbSpk0b+rRuwcKJ75MwYSQfRP4fE2ZM5ejx4yRm5WDXpCUVWvngX6EsdtOn069fP5RS\nDBs2DDs7uwLv/fbbb3P48GHD/O/x48eTkJDAm2++aZi/DvDDDz8wceJEAgMDCQ0NJT09ncjISD7+\n+GP8/f0B/Sr1Fy9epEuXLty6dYvg4GC2bNmCm1vB2wbOmjWLAwcOMGXKFKZMmUJAQACRkZFEREQw\naNAgZs+ejb29PYsXLwZgegGvyc4Oli6F996DDz+EpUt74ejYCR+fF4iOHsTp06fp1auX4QuI06dP\n0759e9LT04mNjX30bwohhPiXHmcf8JZALHAO0IDqQIhS6rfCL09P9gEXQgjxpOVkZHBy1fccjI7h\n4vZfMDEzo3aXABqGh1Aj0BsTU9NHX0QUqezsbMzNzfn555+ZPHlyvt5T8Zct11P56FSC4XFEHQcC\nK5YzYkXGc/y4PojHxIClJQwbBqNHQ6VKEBoaSlhYGF5eXsYuUwhBydkH/JE94Eqp3zRNqw/Uzzt0\nBHjwfhhCCCHEU8DMyor6/XtQv38PEk+cJn5OLIcXLOfU6g2UdXLEbXBf3Ab3waa6o7FLFXn69u3L\njRs3yMzM5Msvv3yi146IiMi3MriFhQWbN29+ovcoKn4VygKQkp3L7HM3C5wvn5iYSI8ePfIdCwoK\n4q233iqSGotKvXqwePFfPeKffgqffw6vvgp5C9gLIUSRemQPeL6T9fuAhwBdlVKVC62qv5EecCGE\nEEUhNyuLU2s2ER8dw7ktP6GZmFDrBV/cw/tTu1M7TMxkExDx9MhVipGHLnEhI4t5jZyws5DfvydP\n6oP4kiVgYQGvvAIREZA3pV8IYUQlpQf8cYagN0MfunsCFYA3gDVKqRuFX56eBHAhhBBFLeXMeeLn\nxnJo3jJuX7lG6SqVcBsUjHtYCOVqORm7PCEey/n0LF4+cAFPu1KMrScp865Tp2DiRH3vuLk5vPwy\nvPOOBHEhjKnEB3BN0yYAfYCr6OeArwJ+V0rVKrry9CSACyGEMBZdTg5/rv+B+OilnNmwDaXT4eTf\nhoZD++PctT2mFhbGLlGIh4q9lMTc8zcZ61KZtuXLGLucYuX0aX0QX7RIH8SHDtUH8apVjV2ZECWP\nBHBNuwkcBqKA75VSWZqm/amUql2UBYIEcCGEEMXDrYuXOTRvGfFzY7l1/hLWDuVxfak37mH9sK/n\nbOzyhChQrlIMj79IQlYOcxs5Uc5cFhj8u9OnYdIkWLgQzMz+CuKOsgSEEEVGArimmQPtgX6AN7AF\n6AA4KqV0RVYhEsCFEEIUL7rcXM5t+Yn46BhOr92MLieHam09cA8PoW7PjphbWxu7RCHy+fN2JsPi\nL+Bdvgzv1i2yZXyeOn/++VcQNzWF8HAYM0aCuBBFocQH8HwnaZo1EIQ+jLcEtiilBhZybQYSwIUQ\nQhRXt68mcGjBcg7NiSX59Fms7Gyp/2IP3MNDcHCv/+gLCFFEFl1IZNHFRD6oVwVP+9LGLqdYO3NG\nH8QXLAATk7+CeLVqxq5MiGeXBPAHNdA0W6CHUmpe4ZR0PwngQgghijul03EhbhcHo2M49c0GcrOy\nqOLxPO7h/XmuTxDmpUsZu0RRwmXrFMPiL5Cancvcxk6UMZOh6I9y9qw+iM+frw/iYWH6IF69urEr\nE+LZIwG8GJEALoQQ4mly50YiRxev5GB0DIlHT2JRtgzPhXSj4dAXqfS8u7HLEyXYibQMXo+/SKBD\nWUY5VzJ2OU+Ns2dh8mSYN08fxIcMgXfflSAuxJMkAbwYkQAuhBDiaaSU4tLPu4mPXsqJ5evIycig\n4vPuNAwP4bmQ7ljalDV2iaIEmnPuBl9fTmZK/ao0s5WRGf/EuXN/BXH4K4g7yc6EQvxrEsCLEQng\nQgghnnYZySkcXbqa+OilXD9wBLNS1tTrE0TD8BCqeDRF0zRjlyhKiCydjlcOXiAjVzGnsROlTE2M\nXdJT5/x5fRCfO1f/ePBgfRCvUcO4dQnxNJMA/rBGmuarlNpWCPUUSAK4EEKIZ4VSimt7DnAwOoZj\nMavJvn2HCm7P4R4eQv0Xe2Btb2fsEkUJcORWOm8eukSXSuV4o7aDsct5ap0/D1Om6IO4UjBoEPzn\nPxLEhfhfSAB/WCNNO6+UKrLBNhLAhRBCPIuybqVx7Os1xEfHcHX3fkwtLXHp1Qn38BCqtfWQXnFR\nqL44e51VV1L4pEFVGpeToej/xoUL+iA+Z44+iIeG6oN4zZrGrkyIp0eJD+Capn3zoDZAoFKqyPav\nkAAuhBDiWZdw4DDx0TEcXfINmSmp2LnUxj0sBNeXelOqYgVjlyeeQRm5OoYeuIBC8VUjJ6xlKPq/\ndvGiPohHR4NO91cQr1XL2JUJUfxJANe0JOAl4PbfnwKWKqWKbOlMCeBCCCFKiuw76ZxY8R0Ho2O4\n/PNuTMzNce7WHvfw/tRo54VmIiFJPDn7U+4w6shlelYpx6s1ZSj6k3LxInz0kT6I5+bCSy9BZKQE\ncSEeRgK4pm0EPiporremabuUUq0Ku7i7JIALIYQoiW4eOUH8nBgOL1pJxs0kytVywm1IX9wG9aFM\n1crGLk88I6b/mcC6a6lMd3OkQVlrY5fzTLl0SR/Ev/pKH8QHDtQH8dq1jV2ZEMWPBHBN01QxWSJd\nArgQQoiSLCczk1OrN3LwqyVc2LYLzdSU2p3a4R4eQq0X/DAxNTV2ieIpdidXR9j+81iZasxuWB0L\nGWXxxF2+rA/iX34JOTl/BfE6dYxdmRDFR4kP4AWerGkdlFIbC7GeAkkAF0IIIfSSTp0hfk4shxcs\n586165SpVgW3wX1xH9wXmxrVjF2eeErtSb7DmKOX6VvVlrAasuZAYbl8GT7+WB/Es7NhwAB9EHd2\nNnZlQhifBPCCTta0P5RSzxdiPQWSAC6EEELkl5udzZ/fbeFgdAxnN8UBULO9Dw3DQ6jdJQBTc3Pj\nFiieOp+cusbm67f4zL0a9cpYGbucZ9qVK/ogPnu2Poi/+CL83/9JEBclmwTwgk7WtH1KqSaFWE+B\nJIALIYQQD5Z67iLxc2M5NO9r0i5dpVQlB1xDg3EP64eds6z6JB5PWk4uQ/afx8bclM/dq2NuItvg\nFbarV/8K4pmZfwXxunWNXZkQRU8CeEEna5qnUuqXQqynQBLAhRBCiEfT5eRwZuM24qNj+HP9D6jc\nXJz8WuMe3h/n7h0ws7Q0domimPs16Tb/d+wKA6vZM7C6vbHLKTGuXoX//he++EIfxPv31wdxFxdj\nVyZE0ZEAfvcETbMEXga8AAXsBL5SSmUWfnl6EsCFEEKIfybt8lUOzV9G/JxYUs9ewKq8Ha4De+Ee\n3p/y9aV7TTzY5JNXibuZxhfu1aldWr60KUrXrumD+Oef64N4SIg+iNerZ+zKhCh8EsDvnqBpXwOZ\nwJK8QyGAtVKqbyHXZiABXAghhPjfKJ2Ocz/sJP6rJZxasxlddjaOXi1wDw/BpVdnzEvJtlMiv5Ts\nXIYcOE9FCzM+c6+GqSZD0YtaQgJ88gnMmgUZGdCvnz6IP/ecsSsTovBIAL97gqYdUUo1eNSxwiQB\nXAghhPj37iTc4PDCFcRHLyXp5Bksy9lQ/8UeuIeHULGRq7HLE8XITzfTmHDiKkOcytPP0c7Y5ZRY\nCRTzw90AACAASURBVAkwdSrMnAnp6fog/t57EsTFs6mkBPDH2ejxgKZpze8+0DStKbCv8EoSQggh\nRGEoVbECzUe/yqDjOwiOW0ntzv7Ez4llceNAlrboxME5MWSl3TZ2maIYaFu+DG3sS7PoQiLn7mQZ\nu5wSq2JF/f7hZ89CRASsWQMNGuiHph89auzqhBD/i8fpAT8ENAD+zDtUCzgKZAOqKLYlkx5wIYQQ\nonCkJyZxdPEqDkbHcPPwcczLlOa5ft1oGB5CpWaN0GT4cYmVlJXD4APnqW5lwadujjIUvRi4cUPf\nI/7ZZ3DnDvTpo+8Rb1Bk41KFKDwlpQf8cQJ4nYc9r5Q6/UQrKoAEcCGEEKJwKaW48uteDkbHcHzZ\nWnLupOPQqAHu4f2p3787VrbljF2iMIIfrt9i8qlrvFKjAr2q2hq7HJHnxg2IitIH8du3IThYH8Rd\nZSaJeIpJAL/3JE1zBdrkPdyhlDpcqFX9jQRwIYQQouhkpqRyNGY18dExJOw7hJm1FS69O9Nw6ItU\nbdVMesVLEKUU7x2/wr6UdL5qWB1HawtjlyTucfOmPojPmKEP4r1764O4m5uxKxPin5MAfvcETXsd\nGAZ8m3eoKzBLKfV5IddmIAFcCCGEMI5rew9yMHopx2K+JetWGvb169IwPIQGA3thXV72iS4JbmTm\nMOTAeeqUtuCTBo6YyBcwxc7Nm/Dpp/ogfuuWPoiPHStBXDxdJIDfPUHTDgKtlFJpeY/LALuUUg2L\noD5AArgQQghhbFlptzm+/Dvio5dy5dc/MLWwwLnHCzQMD6G6Tys0k8dZ11U8rTYkpDL1dAJv1HIg\nqLJMRyiuEhP1QXz6dH0Q79VLH8Td3Y1dmRCPJgH87gmaFg80VUpl5T22BPYopYrsj7IEcCGEEKL4\nuB5/lPjoGI4sXkVmcgq2dWriHh6Ca2gwpSs5GLs8UQiUUow5epkjtzKY09iJSpbmxi5JPERiIkyb\npg/iqanQo4c+iDdqZOzKhHiwEh/ANU0zU0rlaJoWAfQDVuU91R2IVUp9UkQ1SgAXQgghiqHs9HRO\nrvqe+OgYLv70KyZmZtQJCsQ9PIQaAW0xMTU1doniCbqWmU3Y/vM0KGvFlPpVZS2Ap0BSkj6IT5um\nD+Ldu+uDeOPGxq5MiPtJANe0P+5uMaZpWgvAK++pHUqp3UVUHyABXAghhCjuEo+fIn5OLIcXLCf9\nRiI2NarhNqQvboP6ULZaVWOXJ56QNVdT+OzMdd6uU5EXKtoYuxzxmJKS9L3h06ZBSgp06wbjxkkQ\nF8WLBHBN26eUalLE9RRIArgQQgjxdMjJzOT0mk0cjI7h/NYdaCYm1Oroh3t4f2p39MPEzMzYJYp/\nQacUo45c4vTtLOY2cqKCpXyeT5PkZH0Q//RTfRDv2lUfxJsUi3/xi5JOArimXQSiHtRQKfXA5540\nCeBCCCHE0yf5z3McmhvLofnLuX3lGmWqVsZ1UDDuQ/pRrpaTscsT/6NL6VkMPXiBJuWs+aBeFRmK\n/hRKTtavmP7pp/pfBwXpg/jzzxu7MlGSlZQA/rAlS02BMkDZB/wIIYQQQjyQbe0aeE0cw9Dzv9P1\n23k4NG7A75NnMqdOK1a2D+HEynXkZmUZu0zxDzlaWzCoenl+TbrDjzfSjF2O+B/Y2urngp89CxMm\nwE8/QdOm+iC+d6+xqxPi2fZYc8CNTXrAhRBCiGdD6oVLHJq3jENzY7l14TLWDuVxDQ3GPawf9i51\njF2eeEy5SjHi0EUuZmQzr5ETdhYyFP1plpICn30GUVH6+eKdO+t7xJs9832RojgpKT3gMgdcCCGE\nEEVOl5vLuc3bOfjVUk5/twWVm0s1b08ahodQt2dHzKysjF2ieIRzd7J45eB5PO1KM7ZeFWOXI56A\n1NS/gnhiInTqpA/izZsbuzJREkgA1zR7pVRiEddTIAngQgghxLMr7co1Di9YTvycWFL+PIeVvS0N\nBvTEPbw/FVzrGbs88RAxlxKZdz6RsS6VaVu+jLHLEU9IairMnAlTp+qDeMeO+iDeooWxKxPPspIS\nwB84B7y4hG8hhBBCPNvKVKlEy3eHM+TkTnpt/ZoaAW3Z//kiFrr5EdMqiEPzl5F9+46xyxQF6FPV\nDpfSlsw4c52U7FxjlyOeEBsb+M9/9HPEJ02C336Dli31Qfy33/7dtRcsWMCHH374ROp8Wp09e5a1\na9caHr///vvUr18fHx8ffHx8yM3V/1n6448/aN26Na1atWLBggUPvF5UVBRt27aldevWDBw4kOzs\nbNLT0wkICMDLywsPDw82bNjwyLqys7OpW7dugZ/PxYsX8fHxue/4pk2b8PDwwNvbm44dO3Lz5k0A\nRowYgYeHBx4eHkyZMiVfm8TEROzt7VmyZMkja3oWPWwRNiGEEEKIIqOZmFCjXRs6f/0FL1/ai/cn\n75GRmMymwW8xu+rzbH11DNf+iDd2meIepprGqDoVuZWTy+dnrxu7HPGElS0L774LZ87A5Mnw++/g\n4QEvvAC//mrs6p6cu4G3qPw9gANERkYSFxdHXFwcpqamAAwfPpwlS5YQFxfHjBkzSEpKKvB6r7/+\nOj/99BM///wzAJs3b8bMzIzo6Gh27tzJunXrGDFixCPr+vLLL3nuuef+0WupX78+27dvZ/v27XTu\n3Jlp06YB8Nprr/Hrr7+ya9cu1qxZw+nTpw1tJk+eTKtWrf7RfZ4lEsCFEEIIUeyUcihPs7dfYdDR\n7fT56RucuwZyeMEKljTtwJJmL3Dgy8Vkpt4ydpkCqF3akhBHO364kcYvibeNXY4oBGXLwpgx+h7x\njz6CPXvA0xM6dIBffnlwu9zcXEJCQvD29mbMmDE4Ozvne/7ex2FhYcTFxQEwfvx4PD09admyJevX\nrwf0vcT9+/cnKCiIxo0bc+zYsQLvGRcXR4sWLfD19WXQoEEAxMfH4+/vj5+fH8HBwaSnpwNQo0YN\nhg0bRteuXcnOziYsLAxfX1+8vLz4/fffARg1ahSenp74+vqybNkyAJycnHj55Zfx8PBg1KhRAAW2\nV0oRFBREXFwcd+7cwdPTkzNnzhAVFcX69evx8fFhb96y8x9//DFeXl7MmDEDgMzMTG7fvk2tWrWw\nsLCgTZs2hpr+zsLCAgClFDqdDmdnZ8zNzalZsyYA1tbWmJjoY9/y5csZMmQIAOPGjSMqSr+zdFpa\nGhs2bKBnz56G66alpdGpUyf8/f2ZNGlSgfd2cnLC0tISAEtLS8zM9Asy1q1bFwATExPMzMwMXyqc\nP3+eK1eu0KwEr/AnAVwIIYQQxZamaVRr05IXFs3g5ct78fvsQ3TZ2Wx9ZQyzqzRh05C3ufzrXh60\npo0oGiGO9tQqZcG0PxNIy5Gh6M+qMmUgIkLfI/7xx/oty1q1gvbtCw7ia9aswcbGhu3bt9OlSxdy\ncnIeeY/9+/ezY8cOdu3axaZNmxg5ciQ6nQ4ABwcH1q5dS0REBHPmzCmw/TfffMOHH37Itm3bmDt3\nLqDvjZ03bx4//vgjrVu3Nhy/cuUKY8aMYd26dcydOxdnZ2e2bdvGqlWrGDlyJAAbNmxgx44dbNu2\njd69ewOQkJDA+PHj+eWXX1i3bh2pqakFttc0jblz5zJ69GiGDBnCyJEjqVWrFm+99RadOnUiLi6O\npk2bMnz4cA4cOMCWLVtYu3YtO3bs4ObNm9ja2hpel62tLYmJD54hPHHiRFxcXEhMTKR69er5nhs5\nciQREREABAcHY2JiwogRI9i3b5/hdf73v/+9r5c8OjoaLy8vtm7dSuvWrR/6uV27do2ZM2fy6quv\n5ju+dOlSateubfgyYPz48URGRj70Ws86CeBCCCGEeCpY2dnS5PVBDNi/hZDf1vFcv24cX7aWWM8g\nFjX054/P5pGRlGzsMkskcxON0XUqkpSdy5fnbhq7HFHIypSB0aP1PeL//S/s26cP4oGB+h7y11+H\ntWvh5MmTNM9bQr1ly5ZomvbAa979Eu348eN4eHigaRq2trZUrFiRGzduANC0aVNA3+t6d67x340e\nPZq1a9fSv39/5s+fD8Dhw4cZOHAgPj4+xMbGcvXqVQAcHR1xcnIC9L3ky5Ytw8fHhz59+pCSkgLA\nlClTGDx4MKGhoRw9etTQrnLlyvovCKtVIykp6YHtHRwcCAwM5MCBAwQHBxdYc/ny5dE0DWtra3r0\n6MGePXuwt7cnOfmvv89SUlKwt7d/4PsXGRnJiRMnqFWrVr754h988AE2NjaG0QAAERERTJ8+ncjI\nSDRN49q1a+zbt4+AgIB81zxx4gQt8lbea9mypeF4586d8fHxYeXKlQCkpqbSq1cvZs+eTcWKFQ3n\nbd26lfnz5zN79mzDe6xpGvXr13/g6ygJZNNGIYQQQjxVNE2jSosmVGnRBN9P3+dY7LccjI5h2xvv\nsSNiInV7daRheH8c2zz8H/ziyXIpY0VwVVu+vpyMd/kyNLMtZeySRCErXRpGjYJXX4XZs+GDD2DL\nFv1z8+fD8OHOnD27lSFDhrB79+77RqqUK1eOq1ev4uDgwP79+xkwYAAuLi5ER0ejlCIlJYWEhAQq\nVKgAkO/P84NGvZQvX56ZM2eilMLFxYXevXvj5uZGbGwsVarot8vLysoCMAyLBnB1dcXZ2dnQI5yV\nlYVSCn9/f7p06cLOnTsZO3Ysq1atuu/vFaVUge0BDh06xK5duwgKCmLGjBm88cYbWFhY5BsNkJyc\njK2tLUop4uLiCA0NxcrKitKlS3P+/HmqVKnCzp07GTduXIGvOSMjAysrKzRNo1y5cpQqpf+zN3Pm\nTE6ePMnChQsN5+p0Ol577TXmz5/PO++8w5YtW4iPj+f69et06NCBS5cukZmZSaNGjahbty579uyh\nXbt27N6923CNdevWGX6dnp5O9+7diYyMzBfSf/vtN9577z02bNiAtbU1AHv37uX48eN06NCBU6dO\nUbp0aVxcXAwhv6SQAC6EEEKIp5ZF2TI0HPoiDYe+SML+QxyMjuHokm84uuQb7OrVoWF4CA0G9qaU\nQ3ljl1oiDKxuz8+Jt4k6ncCcxk6UMpXBliVB6dLw9ttw4gR89ZX+2J07kJrajaSkFXh7e9O8eXPD\nXOG7IiIiCAgIwNXV1dBz2qRJE1q1aoWnpyc6nY6pU6ca5i8/jqioKDZv3oxOpyMgIAAbGxtmzZpF\naGgo2dnZALz77rv39faGh4czfPhwfH19AWjWrBmTJk3ihRdeAPQhd+zYsQ+8b0HtJ0yYwNChQ1my\nZAlOTk4EBgbSpk0b3N3dOX36NL169WLcuHFMnTqV48ePo5TCx8eHjh07AjB9+nT69euHUophw4Zh\nZ2dX4L3ffvttDh8+bJj/PX78eBISEnjzzTcN89cBfvjhByZOnEhgYCChoaGkp6cTGRnJxx9/jL+/\nP6Bfpf7ixYt06dKFW7duERwczJYtW3Bzcyvw3rNmzeLAgQNMmTKFKVOmEBAQQGRkpGGeebdu3QCY\nOnUqoaGhhIaGAvo5/c7OziUufMND9gEvTmQfcCGEEEI8ruzbdzi+4jvio2O4vGsPJubmOHfvQMPw\nEJz8vND+wT/mxT93+FY6Iw5dokulcrxR28HY5YgitHYt9O0L6emgabBiBQQFZWNubs7PP//M5MmT\n8/WeCnGvkrIPuARwIYQQQjyzbhw+TvycGI4sWklGYjLlatfAfUhfXAf1oUyVSsYu75n1+dnrfHMl\nhakNHGlUztrY5YgitHatfjj6hg0QGQlHj/bkxo0bZGZm8uWXX9KoUaMndq+IiIh8K4NbWFiwefPm\nJ3b94iYxMZEePXrkOxYUFMRbb71lpIqeLAngxYgEcCGEEEL8GzkZGZz8ZgPx0Uu5EPcLmqkptTv7\n03Bof2q298Hknrmg4t/LyNUx9MAFAL5qVB0rGYpe4gwZAgsWwI4d+gXahHgUCeDFiARwIYQQQjwp\nSSf/JH5OLIcXLOdOwg3KVq+K2+C+uA3ui42To7HLe2bsT7nDqCOX6VmlHK/WlKHoJc2tW9CokX4o\n+oED+pXThXgYCeDFiARwIYQQQjxpuVlZnP5uC/HRMZzdvB2Ays0bY16mFGWrV0UzMaHBgJ44+T58\n/1vxYNP/TGDdtVSmuznSoKwMRS9pdu6Etm0hLOyvxdmEeJCSEsBlFXQhhBBClEimFha49OyES89O\npJy9wKG5seybtYDMJP3+vWgapSs74OjVAlNzc+MW+5QKr1GB35Lu8MnpBGY3rI6FLIBXonh5wTvv\nwJQp0LkzBAUZuyIhjE96wIUQQggh8uRkZvKlY1Mybibpx84qhZW9Lc7dX6Be785U92stYfwf2p18\nm3ePXqGfox1DnGQ7uJImKwtatoRLl+DQIcjbbUyI+5SUHnD5GlIIIYQQIo+ZpSV+n30IQPv5n9L1\n23nUesGPE8u/Y1WH/syu3JhNYaM4uymO3Lw9hcXDNbctTQeHsiy7lMSJtAxjlyOKmIUFLFkCqakQ\nHg5PQd+fEIVKesCFEEIIIe6hy81l/+cLaTzsJcPq6DkZGZzd/BMnln/H6bWbybqVpu8Z79YBl96d\ncWrnJT3jD5GWk8uQ/eexMTflc/fqmJtoxi5JFLFp02DkSJgzR79CuhB/V1J6wCWACyGEEEL8A4Yw\nvuI7Tq/JC+N2tjh3lzD+MLsSbzP2+BUGVrNnYHV7Y5cjiphOBwEB8Ntv+lXR69QxdkWiuCkpAVyG\noAshhBBGkpyczKJFiwC4evUqnp6e+Pr6kpWV9djXeP3112nbti1r165lyZIltGjRggkTJjBlyhTi\n4+Mf2K5///7/U80zZsz4n9o9TltnZ+f7jqWmptKqVSt8fHxo0aIFP/zww2Ofo5Ri+PDhtGnThs6d\nO5OYmAhAYmIinTt3pk2bNgwfPpx/2hlhZmWFc1AgHRd/xqsJB+i6Zj61OvlxYuV6vnnhRWZXaszG\nwW9xZuM2GaZ+j1b2pfGrUIallxL583amscsRRczERL8vuJkZDBwIubnGrkgI45AecCGEEMJIzp49\nS1hYGFu3biU2NpZjx44xfvz4f3QNFxcXTpw4AUD79u2ZPXs2tWrVKoxyAX1IPnXqVKG0Leh5nU6H\nTqfDzMyMP//8kz59+rB79+7HOmfjxo2sWLGCuXPnsmjRIo4cOcKUKVMYM2YMrq6uDBgwgMGDBxMc\nHEyHDh3+p9d0r5zMTM5t3s7x5d9xeu0WslJvYWVnS51u7al3t2fcwuJf3+dplpKdy5AD56loYcZn\n7tUw1WQoekkTEwP9+8PEifCf/xi7GlGcSA+4EEIIIQpVVFQUe/fupW7duowdO5ZFixYRFhZW4Lnb\nt2/H29sbHx8fXnnlFUPv7oULF/Dx8eHLL7/kt99+IyQkhJUrVxIaGsrOnTsBmD59Oi1btsTX15eF\nCxcCf/U2p6SkEBwcTLt27fDz8zMEYB8fH0aMGEFgYCDt2rUjMzOTqKgoLl26hI+PD3PnzmXBggV0\n69aNHj164Obmxo4dOwCIj4/H398fPz8/goODSU9Pv6/tg4wcORJvb29efPFFdDodJiYmmJnpd01N\nTU2lYcOG97V50Dnbt2+nc+fOAHTp0oXt27c/9Pi/ZWZpSZ0uf/WMd1s7n9qd23Fy1fd803EAsys3\nYeOgkZzZ8CO5/2CUw7OknLkpb9Ry4MTtTJZfTjZ2OcII+vWDPn1g3Dj44w9jVyOEESiliv1P06ZN\nlRBCCPGsOXPmjGrXrp1SSqn58+erDz74oMDzdDqdaty4sUpOTlZKKTVixAj13XffKaWUqlOnjuE8\nb29vdeHCBaWUUi+99JLasWOHio+PV23btlXZ2dlKKaVycnLytXvnnXdUbGysUkqp/fv3q549exqu\ntXr1aqWUUuHh4QXeb/78+apr165KKaV+/vlnQ9s2bdqoc+fOKaWUmjZtmvrss8/ua1uQGjVqqF27\ndimllAoLCzPc/+LFi6p169bKwcHBUMffFXROeHi42rZtm+E9rFevnlJKKRcXF6XT6ZRSSv34449q\n6NChD63r38rOyFCnvtusvh8wXM2wqac+oar6zLa+2hA6Qp1ev1XlZGYW6v2Lo/ePXVYdfjmlzt4u\nea9dKHXzplKOjkrVr6/UnTvGrkYUF8AeVQyyZ2H/mBn7CwAhhBBCPNyNGzc4e/YsXbt2BSAtLY16\n9eo9VtsjR47g5eVl6CE2zVvV+674+Hi2b9/O7NmzAQznATRt2hQAJycnbt68WeD1Czrn8OHDDBw4\nEICMjAz8/f0fq1ZN02jRogUALVu25Pjx4wA4Ojqyc+dOzp49i4+PD507dyYsLIxTp07Rq1cvXn/9\n9QLPsbe3JzlZ38uakpKCnZ0dAHZ2dqSkpGBra0tKSgr29oW7IJiZpSV1OgdQp3OAfpj6lp84sWId\nJ7/ZwOEFy7G0LYdzt/a49O5MDf82JWKY+vBaDuxPPc/U0wl86uYoQ9FLGHt7mD8fAgPh3Xf1K6QL\nUVJIABdCCCGMxMLCgpycnEeeV6FCBWrXrs26desoU6YMANmPubiXq6srX3zxBbm5uZiamhqGdd/7\nvKenJ927dwfItwCcdk8oUnlrxtzb9kHnuLm5ERsbS5UqVfJd8+9t/04pxZ49e2jZsiW7d++mQ4cO\nZGZmYmlpCYCNjQ1ly5YFYM6cOYZ2DzrH29ub1atX061bN77//nu8vb0Nx7///ntCQkL4/vvv6dGj\nx0PrepIeFMZPrd74VxjvGohLcJdnOozbW5jxWk0Hppy6xrdXU+hZxdbYJYkiFhAAb7wB06dD587w\nmN/TCfHUkzngQgghhJFUrlwZa2trevbsSe5DlgTWNI2oqCiCgoLw9fWlXbt2HD169LHu4erqSteu\nXWnVqhV+fn4sXrw43/ORkZEsX74cPz8/fH19H7lS+d2w/vXXXz/wnFmzZhEaGoqfnx9+fn6GOdaP\namtmZsaqVavw9vbm1q1bBAUFcejQIdq2bYuvry9du3ZlWgFdZQ86p3379pibm9OmTRuWLl3K6NGj\nAYiIiGDp0qW0adMGc3NzAgMDH/qaC8vdMP7Cwum8cm0/3dctxLlrIKe+3cTqTgP5olJjNoaO4M/1\nW5/JOePtKpTBw64U887f5HKGrBZfEk2ZAs89B6GhkJRk7GqEKBqyCroQQgghRDGSk5nJ+a079D3j\n324iMyUVy3I21OkaSL3gLtQIaPvM9IzfyMxh8IHzOJe24JMGjpjIUPQSZ+9e8PCAXr0gNtbY1Qhj\nKimroEsAF0IIIYqRI0eOMOz/2bv3+J7L/4/jj/c2O7E551Rz2BzWViYijM0I3xyKtZBjGTqpdc43\nKRGlIlTkRw1ziK9v5VCKfDdEpCyH5RRjE2JsTrPj9fvjwyfLyGEfY3veb7fd+Hw+7+t9Xe8P/zx3\nXdfreuKJPO8NHDiQhx9+uJBGVPBWrFjBm2++mee9YcOGERYWVkgjunHlZGayd/kqdsxbdEEYrxPR\nker3tsTl7PL7m9U3h47z/u4/ebpmRTpXLl3Yw5FC8NZbMHSo7YiyHj0KezRSWBTAbyAK4CIiIlLc\n2cP4uZnx1LQiEcaNMbzy2x8knDjD1CAfKrmVKOwhyXWWnQ0hIZCQAJs2wW23FfaIpDAogN9AFMBF\nRERE/pKTmcm+71ez/dzM+Lkw3vleWxhvG3JThfFDGVlExu/jdi933vavmqe4nxQPv/8O9evblqN/\n9x38Q81GKYIUwG8gCuAiIiIi+bOH8bPV1DNS03D19rJVU7+JwvhXB9OYuOcwz/vewr9u8S7s4Ugh\nmDoVBgywHUv2zDOFPRq53hTAbyAK4CIiIiL/7Pww/vuX33LmWCqu3l74dr7XVsDtBg7jucbwwtb9\n/H46k2n1fajgptNyixtj4P77bTPgv/wCt99e2COS60kB/AaiAC4iIiJyZXIyM9m34ge2z1t0QRiv\nE9GJGm1b4uLuXtjDzGN/eiYDNyXRoLQHI+pW0VL0YujQIbjjDqhWDdatgyJS8F8ugwL4DUQBXERE\nROTq5WRlse/71bYCbl8stYVxr1L4dm5LnYdurDD+nz+OMXlvCkP8KtG6oldhD0cKwVdfwQMPwJAh\nMGpUYY9GrhcF8BuIAriIiIhIwcjJyiLp7Mz4BWE8oiM12oUUahjPMYaoLckkn8ni0/o+lHXVUvTi\nKDISPvsM4uIgOLiwRyPXgwL4DUQBXERERKTg2cP4/MXs+uIbzhy9McL43tOZPLZpH03LlmRY3SrX\nvX8pfCdOQFCQbV/4r7+ClxZDFHkK4AVxc8sqA0wFAgEDPAqkA5MBdyAbeMIYs/5S91EAFxEREXGs\nnKwskv635uzM+F9hvFYn29FmNduHXtcwPnv/UT7dd5RhdSrTsnyp69av3Dh++AFatoRHHrFVSJei\nTQG8IG5uWdOBVcaYqZZluQKewDxgnDHmG8uy7gNeMsaEXuo+CuAiIiIi18+5ML5j/mJ2/vdrzhxN\npUSpkvaZ8esRxrNzDYO3JHM4M5tp9X0oXcLZof3JjenVV237wL/80lYhXYouBfBrvbFllQbigVrm\nvE4sy/oW+NQY87llWT2ATsaYhy91LwVwERERkcKRJ4x/8Q1nUo7Zwnine20F3NqFUMLDwyF9/34q\ngyc2J9GqvBev1K7kkD7kxpaZCffcA8nJsHkzVNJ/gyJLAfxab2xZQcAUIAGoD/wMPAP4AN8CFuAE\nNDPG7M2n/UBgIICPj0/DvXsvuERERERErqOcrCySYteyY96iC8N4REdqtA8t8DA+PSmFmcnHGFmv\nCveULVmg95abQ0IC3HUX3HsvLFwIOp2uaFIAv9YbW1Yj4EeguTFmnWVZ44HjQGkgzhizwLKsh4CB\nxpg2l7qXZsBFREREbiz2MH5umfrZMF6rYxvqPtSpwMJ4Vq7h8U1JnMjOYVqQD6VctBS9OBo/HqKi\nYMoUGDCgsEcjjqAAfq03tqzKwI/GmBpnX7cAXgGCgTLGGGNZlgWkGWO8L3UvBXARERGRG1dukpB1\nZQAAIABJREFUdjZJsWvYPi+fMB7RkRr/anVNYXz7yTMM3pxMu1u8ed73lgIcudwscnOhXTtYuxbi\n48HPr7BHJAWtuARwJ0fd2BhzEEiyLKvu2bdaY1uO/gcQcva9MGCno8YgIiIiIo7n5OJC9TYtaTtl\nDI8fjOfBZXPwf/gB9i1fxcLwAUyqeCeLezzBzv9+TVZ6+hXfv24pdyKqluGbP4/zc+ppBzyB3Oic\nnGzngpcoAX36QHZ2YY9I5Oo4LICfNRiYZVnWJiAIGAUMAN63LOvXs68HOngMIiIiInKdnAvj934y\nhscObLSF8Z5d8obx7o9fcRjve1s5bnMvwdjdf3I6J9eBT3BzO3jwIE2bNqVVq1ZkZGQQHh5OaGgo\n69evp2fPnhdtt3TpUmbOnHnF/cXHx7Ny5cqrGus/tY2NjSUyMtL++tZbYdIkWLt2DDVrNqF58+YM\nHjyY/Fb0RkVFcc8993DPPffw9ttv29/fvXs3nTp1IiwsjD59+tjfHzVqFM2bNycsLIzExMSreh6R\ny+HQY8gKipagi4iIiNzccrOzSYo7u2d8wdekHzlKiZKe1OrYxna02b/CKOF56WXqW0+kE7VlP50q\nlebpWhWv08hvLnPmzGHbtm0MHz6cAwcO0L17d+Li4hzWX3R0NMnJyQwdOrTA28bGxhITE8PUvx0C\n3qnTTpYurc3atTBmzEMMGjSI1q1b57lm586d1K5dm9zcXJo3b05MTAy+vr7cd999TJs2jSpVqtiv\n3bZtG0899RTLly9n5cqVfPzxx8ydO/eKn0eujZagi4iIiIgUECcXF6q3bsG9k9+xzYwvn4t/r67s\nW/EDix4cyKRb7mRRt8fYsWAJWafznxkP8PKgS5XSLDyUxq9pV76UvSgaMmQIISEhNG3alOnTpzN8\n+HBmzJhBZGQkAwcOZNOmTYSGhnLy5En8zm6cPnbsGOHh4YSEhNCqVSsOHjxIdHQ0I0eOBCAuLo6Q\nkBBCQ0N57LHHMMaQmJhIw4YN6dWrF3fddRcffPABAGPHjmXatGmEhoayf/9+QkNDiYqKom3btrRu\n3ZqMjAwAJk6cSIsWLWjatKk9UP+9bX5+//13unTpQlBQEPPnzwdgxozaVKoEvXuDs7MbLi4uF7Sr\nXbs2AE5OTri4uODs7MzevXs5ffo0zzzzDCEhISxYsMD+vB06dACgZcuW/PrrrwXybyOSnwv/t4qI\niIiIONC5MF69dQtaf/gWySt/ZPu8Rez87zfsmLcIF08PewG3mve1zjMz/sht5Vl79BTv//4nU+rf\nhrtzMZhP8vaGEyf+eu3lBcePs3TpUo4dO0ZcXBynT5+madOmvPzyy+zfv5+hQ4eSmJhIZGQky5cv\nz3O70aNH07ZtWwYNGgRAbu5fS/qNMURFRREbG0vp0qV59tlnWbJkCYGBgRw4cIBVq1bh5OSEv78/\nUVFRPPfccxfMYoeGhvLBBx8wcOBAli1bhq+vL0uXLmXlypXk5ubSokULunTpkm/bvzt8+DDLli3j\n9OnTNGrUiPDwcMqWdWL6dGjTJo6TJw8we3bLi7afNWsWtWrVokaNGqxdu5aNGzeSkJCAl5cXzZo1\nIywsjJSUFKpWrWpvk5OTc9n/NCJXSgFcRERERAqNk4sLPmHB+IQF28O47Wiz/MO4h6cHz/vewgsJ\nfxCddJTHalQo7EdwvPPD93mvN2/eTFxcHKGhoQBkZGSQkpLyj7fbsmULA847y8vJ6a9fYhw5coTE\nxETuv/9+AE6ePEndunUJDAzE398fT09PAJydL34cXMOGDQHw8fEhJSWF9PR0EhISaNWqFQDHjx8n\nKSnpH8cJ0KBBA1xcXPD29uaWW27h8OHDVKpUiYoVN1G58iskJy9i2TILT8/V9iC/ePFiSpUqxfLl\ny/nss89YtGgRAOXKleOOO+6gWrVqAAQFBbFz507KlStHamqqvc9LPZvItVIAFxEREZEbwvlhPOxc\nGP/7zHiH1tSJ6EiH+g1ZcCCVluVLcrvXtZ83ftOpXZuAGjVoW60a4z/+GGrXJjMri9mzZ5OcnHzJ\npoGBgcTGxtqXaZ8/A16hQgVq1aplD7EAWVlZ7N+/H9sJwnm5urqS/beS5OdfZ4zB39+fBg0asGDB\nAizLIisrixIlSpCQkHBB27+Lj48nOzub9PR0Dh06RMWKFdm1axePPvoosbEL6Nq1Ao88Aps3BxMb\nG2tvt27dOl577TW++eYbPM4egefn58fp06c5ceIEHh4eJCQkUL16dby8vIiKiiIqKoo1a9ZQv379\nS45J5FoogIuIiIjIDcfJ2RmfVs3xadX8rzB+toDbjvmLoXw5Ss2K5q2NGUxpUIOSXiULe8jXV0AA\n961ezZqUFELr1sUqUYJbK1emdXAwlC59yXO6hgwZwqOPPkpMTAzOzs7Mnj3b/pllWYwdO5bOnTtj\njMHJyYlx48bh7e2d772aN2/Ohx9+yJYtW/jwww/zvSYwMJA2bdoQEhKCs7MzHh4eLFy48IK2lStX\nvqBt1apViYiIYM+ePYwcORInJyeioqJITU1l0KC+eHjA9u0v8vjjHZg7F85l//79+wPwwAMPAPD+\n++/TsGFDxowZw7/+9S+ysrIYMGAAlSpVolKlSgQHB9O8eXNcXV2ZNm3aZf0TiFwNVUEXERERkRtW\ndHQ0Xbt2tQdADw8PgurW4/ThFKqXuZXTU2fgO2sO+5fO5WAJqFTDh5mzZlGuXLk895kxYwYffvgh\n7u7uVK1alenTp+Pm5sbp06d5+umn2bNnDzk5OXzxxReULVuWpUuXMnz4cADeeOMN2rVrd8HYJkyY\nwNNPPw3YZmqPHz9Oy5YX34981S6yB5zcXNi+HVatgtWrbT979tiuKVkSmjaF4GBo0QKaNLG9VwSN\nHg3//jfExMAlTlqTG1xxqYKuAC4iIiIi1ywnJ8che2dDQ0OJiYnh1ltvBWzLiHft2gVAbk4Ob65N\n4Kt163B+ZyQ9DmfxS4ksMmpV5a0336RWhzaUKGnbs7x7926qV6+Os7MzL730EnXr1qV///68/PLL\ntG7dmrZt2+Z5lgYNGtjPqA4JCeGXX3654PnOH8u1HMdVoJKT4Ycf/grlmzaBMeDiAnfdZQvk534q\n3jhHub300kusX7/e/trV1ZXvvvvustrm5EDLlrB1q+1xfXwcNUpxpOISwLUEXURERESuSmJiIhER\nEdSrVw8XFxdOnTpFSkoKxhimTJmCr68vPXv2JCkpCRcXF4YPH46Pjw/h4eH4+/uTkJBAnz59iIqK\nIi0tjQEDBuRpv2/fPuLj44mIiKBRo0ZMnDiRgwcPEhISQvny5Rk7dizP33M7n0/9mFtf+Tdd7wqk\n1sz5PD9zCou7PY6Lh7t9z3itDm3sAdrN7a+jq5YvX05WVhajRo0iJCSE4cOHs2vXLmrWrEmZMmUA\nqFGjBrt27aJu3br2Zx87dqz92K3evXszfvx4Tpw4wfLly5k1axY9e/bk9ttvZ8eOHbi7uzN37lz7\nnmqHuvVW6NbN9gOQlgZr1tjC+KpV8NFHMHas7bO6df+aIQ8Ohlq1/lrDfZ2NGTPmqts6O8PMmVC/\nPvTrB8uXg1MxKI4vNyljzA3/07BhQyMiIiIiN5Y9e/aYChUqmLS0NPPyyy+bOXPmGGOMiY+PN+Hh\n4ebIkSOmWbNmJjc31xhjTE5OjtmzZ4+pUqWKOXXqlElPTzc1atQwxph82xtjTEhIiElKSrL3efjw\nYWOMMUuXLjVhYWHGGGM69+ln7vowxkzfl2Jyc3NN3bp1zb7YNWbZE0PMx5Xqm/eoaj7wqGW+Co80\nS97/0DS86y6Tnp5ujDHG1dXVLFq0yOTm5poHH3zQfPPNN+aHH34wffv2tffZp08fs2bNmgue39fX\n1/73zz77zIwYMcL+OiQkxMyePdsYY8zIkSPNuHHjruGbLkBnzhjzww/GvP22MR07GlOmjDG2OXJj\nqlQxJiLCmPHjjfnlF2Oyswt7tFdk2jTbY4wdW9gjkasBbDA3QPZ09I9mwEVERETkqgUGBuLt7W0/\nEmvy5MkAuLi4UL58eQYMGEDv3r3x9PRk2LBhAPkeZ5Vf+/xUqGA7dqxdu3Y8+eSTtvtVqUQpK5OY\n5KPcYWXiVMob77sCGfn6EKhbmsGvPkaZ7Ums+/wLJi+YTl+3ynzXazB1IjpSrmxZ2rdvj2VZtGvX\njk2bNtG5c+c8x1KlpaVRrlw5hg4dyurVqwkODmbkyJH/+N00btwYgCZNmrBgwYIr/m4dws0NmjWz\n/bz8sm0feULCXzPkq1fD/Pm2a728bPvIz82QN2kCHjduxflHHoGFC2HIELj3XggMLOwRiVxIizNE\nRERE5KqdC9ABAQG89NJLxMbGEhsby9dff01WVha9evUiJiaGli1bMm7cOIB8j7PKrz3kPebq5MmT\n5OTkALBp0yZ7GA8JCeHwmjhygd7TZnPavwELUzP5/n//IzYujvDBj1H/jWf5qmYpPvm/KYRG9uaP\nHzawpPsTVDlyknH3hrNt7lesW7sWPz8/ateuzZ49ezh+/DjHjx9nz549+Pn5MXLkSGJjY+3h+/zz\ns/M7jutcDaOffvqJOnXqFNRXXrCcnGxJ9bHHYNYs2LvX9jNrFvTqBX/8Aa+9Bq1a2aqrN20KL71k\nS7qXceb41Th48CBNmzalVatWZGRkEB4eTmhoKOvXr6fnJaqsffvtUu69dyalS9uGnpFxef3Fx8fb\n9/tfqX9qGxsbS2Rk5AXvr1mzhjvuuAN3d/eLHhs3ZswYmjRpQvPmzRk8eDDmvNpdWVlZ1K5dO88v\ngkaNGkXz5s0JCwsjMTHxqp5HHE8z4CIiIiJyzV599VUee+wxJk6ciDGGDh060KNHD7p3746zszOZ\nmZlMmDDhitq/8MILdO3alf79+9OsWTM6derEoEGD8PLywrIsPvnkE8A2G75o0SJmP94DF8+SBAx7\nl+nJx5j3Ryr+Xu4Eenmw+M2hJP/xB+/ERAPQ880n6Fb3DqpMm8XIudOZFLuUW5zd6HDMYmemM28O\ne91e+Xz06NH5Fphr2rQpXbp0oVu3bvkex7V27VqmTJmCq6sr8+bNK+Bv3IF8fODhh20/AEeP/rWP\nfPVqGD8e3n3X9tntt+fdR169+jXvI//f//5H27ZtGT58OAcOHODIkSPExcUBMGvWrIu2a9++vX34\nnTvD66/D22//c3/x8fEkJydfVQX7q20bEBDA2rVr6dix40Wv6dKlCy+99BIADz30ECtWrKB169YA\nfPLJJ9SrV89+7bZt21ixYgU//PADK1eu5JVXXmHu3LlX/DzieKqCLiIiIiI3vWWHj/POrj/trztV\n8sYJiy0n0tl9OhODbemnb0k3ArzcCTwbzCu4uZCbk8MfP/zE9rPnjJ86cAgXd3dq/KsVdR/qRK2O\nbXAtdWVHeP29enuRkp4OGzb8tWT9hx9sx6IBVKv2Vxhv0QICAmxV0i5hyJAhrFmzhszMTB577DFG\njx5NRkYGrVu35tChQ6xevZr69euzePFigoKC2LVrF8eOHSMyMpIjR47g5OTEnDlzWLp0qb0SfadO\ncSxePIygIIsmTeoxadIk9u7dm28BwDvvvJMTJ05QvXp1ewG9oKAgEhISyMnJ4euvv8bNzY2JEycy\nb948srOz6d+/P5GRkRe0rVatWp5ni42NZfjw4ZQpU4Y9e/bw6quvEhERYf/8cv+f9O7dm8jISEJC\nQjh58iTdunUjIiLC/ryffPIJp0+f5tlnnwVs2zx+++23q/jHLTyqgi4iIiIicpMIq+AFQJsKXiw/\ncoKwCl44n52JPZWdy28nz7DleDpbT5xh6Z/H+fJgGgCV3FwI9HInoI4/gW83IGTcGxxc+zPb5y1i\n54Kv2fXFN/YwXieiI74d2+DqdR2qmd/IPDxs4bpFC9vrnBzYsuWvfeQrV8K52dfSpW37zVu0gBEj\nbOH9HC8vls6bx7Fjx4iLi+P06dM0bdqUl19+mf379zN06FASExOJjIxk+fLleYYwevRo2rZty6BB\ngwDIzc21f2aMYd++KGrUiCU1tTTOzs+yZMkSAgMDOXDgAKtWrcLJyQl/f3+ioqJ47rnnLjhCLjQ0\nlA8++ICBAweybNkyfH19Wbp0KStXriQ3N5cWLVrQpUuXfNv+3eHDh1m2bBmnT5+mUaNGhIeH59m+\n8E/i4uI4cOCAfZb93XffJSoqiv3799uvSUlJoWrVqvbX57ZqyI1HAVxEREREbnrOlsW9Fb0B7H+e\nU9LFiUZlPGlUxlb4LTvX8PvpDLaesIXy+LR0vj9y0natsxO3V7iNwJef454RQ/DavIW98xez4z9L\nriiMx8bGOu5hbzTOzrYzwOrXhyeftNVU37v3rxnyVavgm28ubHfihL34XmhoKAAZGRmkXMbe8i1b\ntjBgwAD76/MD7ZEjR9i3L5GaNe9n40b4/POT3HFHXQIDA/MtAJifhg0bAuDj40NKSgrp6ekkJCTQ\nqlUrAI4fP05SUtI/jhOgQYMGuLi44O3tzS233MLhw4epVKnSBdft2rXLvl986tSp+Pn5sWnTJl55\n5RUWLVqEZVkcOnSIjRs3Mnz4cKKjo+1ty5Url6dw4KWeTQqXAriIiIiIFCsuThZ1S7lTt5Q7XauU\nwRjDwYxstpxIPxvKz/BZ6lEAnEuUp/aAgQQ8+zS++5NxWvg1f8QsYNcX3+Ds5kbNc2G8072aGT/H\nsqBGDdtP7962944cgYoVL7g0ICCAtm3bMn78eAAyMzOZPXv2RQuTnRMYGEhsbCy1a9cG8s6AV6hQ\ngVq1ahEXt5h33inFyJFQvnwWsD/fAoD5FdA7/zpjDP7+/jRo0IAFCxZgWRZZWVmUKFGChISEC9r+\nXXx8PNnZ2aSnp3Po0CEq5vM9APj5+eX5xc2uXbt49NFHWbBggb3g4ObNmzl8+DDt27dn//79ZGRk\nUL9+fUJCQoiKiiIqKoo1a9ZQv379S45JCo8CuIiIiIgUa5ZlUcW9BFXcS9hnz49n5ZBw8gxbT5xh\n6/F0Fh06TqazF3TpRtXuPamZfgrvDb+wY9Z8dvZ8CheF8Us7GyD/7r777mPNmjWEhoZiWRa33nqr\nvdDYpQwZMoRHH32UmJgYnJ2dmT17tv0zy7IYO3YsnTt3JjfX4OXlxMCB4/juO+9875VfAb2/CwwM\npE2bNoSEhODs7IyHhwcLFy68oG3lypUvaFu1alUiIiLYs2cPI0eOxMnJiR07dvDEE0/w66+/0qNH\nDx5++GEef/zxPO2ioqJITU2lb9++ALz44ot06NCBNm3aABAdHU1ycjKdOnUCIDg4mObNm+Pq6sq0\nadP+8TuUwqEibCIiIiIi/yAr17DzVIZtlvy4LZinZtv22ZY0uVT9Yz/u/1uJ5+q1lNu9B9/Wzan7\nUCeF8fN5e8OJE3+99vCA06cd3u1vv8Fdd0FYGCxefM1F2sVBiksRNgVwEREREZErZIxh/5kstpw4\nY99LnnQmCwDnnBzK7NyF94afKf/bNupXKktQx9bU6nQvbt5ehTzyG0BmJjRuDAcP2oq3XWR2vCBN\nnAhPPw2TJ8PZum0F7qWXXmL9+vX2166urnz33XeO6awIUgC/gSiAi4iIiMiNLjUrh632feTpbD9x\nhpyz060lE/dSbmsCdcim2R21adK+Je6l818SXSz8+ivcfTd06QKff+7w7nJzoX1724lp8fFwduu4\n3EAUwG8gCuAiIiIicrPJzM1l+8kMthxP5+d9B9meaUh3cwPA9egxquxPotK+fdRKP0WVtGPc0bML\nPq2aF/Kor6O33oKhQ20B/KGHHN7d/v1wxx1Qp46tOLuLqmHdUBTAbyAK4CIiIiJys8s1hn2nMvhh\n03Y27D3IbldPTlWtAoBTRga1TDaNfW8lwMud273c8XIp4kdJZWfbzgjfvdu2FD2fAmYFbd486NYN\n3nwTXnvN4d3JFVAAv4EogIuIiIhIUZOTlcX4gNYcqFaNk02b4NS9K7tOZ5JjwAKqe7gS6O1OoJcH\nAV7uVHZzyfcYrZvab79BgwbQrh18+eV1qZDWqxfMnQtr19pWwcuNQQH8BqIALiIiIiJF0W9zvuTr\nh5/kvtkf4d/jAdJzctl+8oy9uNvWE2c4nWM747p8CWcCvD0I9HIn0Msd35JuOBeFQP7++/DCCzB9\nOvTp4/DuUlNtS9FLloRffgFPT4d3KZdBAfwGogAuIiIiIkVRbk4O8R9PJ+iJvjg5X7jkPMcY9p7O\nZPOJM/YCb4cysgFwd7LwL+VOoLc7AV4e+Jdyp6SL0/V+hGuXkwOhobB5s20p+q23OrzLFSugdWt4\n8km4yNHfcp0pgN9AFMBFRERERGwOZ2TbziM/YZsp330qg1zACajp6Uqgl8fZUO7OLW4lCnu4l+f3\n3+HOOyE4GJYuvS5L0Z97DsaNg2++sVVIl8JVXAL4TfgrMhERERG5UqmpqcyYMQOAgwcP0rRpU1q1\nakVmZuZl3+Opp56iZcuWLFy4kJiYGBo3bsybb77J22+/zebNmy/armfPnlc15gkTJlxVu8tp6+fn\nd8F7GzdupHnz5rRs2ZKwsDB27959wTXffvst99xzDyEhIdx3332kpKQAkJOTwwsvvECbNm0IDQ0l\nISEBgF9++YXmzZvTrFkzoqOjr/p5zlfRzYVWFbx4qmZFJt95G182rsU7/lXpeWtZvEs48+3h47y1\n8xAP/7KXh39O5K0dB/nqYCq/n8og50adfPP1hXffhe++g//7v+vS5ahREBAAjz4KZ/8ZRRxOM+Ai\nIiIixUBiYiKRkZEsX76cOXPmsG3bNoYPH35F96hTpw47duwAoF27dkyePJmaNWs6YriALSTv2rXL\nIW3z+/zgwYOULFkSLy8vvv76a+bMmcPMmTPzXLNv3z4qVaqEm5sbH3/8MQcOHGDEiBFMmjQJZ2dn\nBg4cmOf65s2bExMTQ7Vq1bjnnnv4/vvvKVu27FU90+XKMYbdpzLYcnaGfMvxdFKycgDwdHbidvuy\ndXfqlXLHw/kGmZPLzYW2beHHH23L0R34f+uc+Hho3Bjuv99WIb0obKm/WRWXGXCdficiIiJSDIwd\nO5aff/6Z2rVrA5Cdnc3+/fuZOnXqBdfGxcUxbNgwLMuiXr16TJo0iaeffpqkpCRCQ0Pp0aMH69at\n4+GHH+b5559n8eLFREZGEhwczPjx45k9ezaenp7069ePvn372sNuWloaAwYMICUlBWMMU6ZMwc/P\nj9DQUIKCgkhISCAnJ4evv/6ajz76iP379xMaGkrv3r1xdnbmyy+/xMnJiR07djBp0iRatGjB5s2b\nefbZZ8nNzaVChQpMnz6dSZMm5Wnbv3//fL+TZ599ll9++YXbbruNGTNmUPm8Y7Dc3NxwyeegaB8f\nn3yvmT9/vn1VQUBAAGPHjsUYw6lTp+y/pGjRogXr16+nXbt2V/8PeRmcLYvapdypXcqdLlXAGMOh\njGy2njjD5rNL16cnHcVgWw7rV9LNVtjN21ZtvbxrIUUEJyf49FMIDIRHHrFt1HZy7C8HgoJgxAh4\n5RWYNctWIV3EoYwxN/xPw4YNjYiIiIhcvT179pjWrVsbY4z57LPPzIgRI/K9Ljc31wQFBZnU1FRj\njDFRUVFm0aJFxhhjfH197deFhISYpKQkY4wxffv2NatWrTKbN282LVu2NFlZWcYYY7Kzs/O0e/nl\nl82cOXOMMcbEx8eb8PBw+72++OILY4wxAwYMyLe/zz77zNx///3GGGN++OEHe9sWLVqYvXv3GmOM\n+eCDD8zEiRMvaJuf6tWrmzVr1hhjjImMjLT3b4wxJ0+eNPfcc4/ZunXrRdsfPHjQBAUFmUOHDhlj\njKlTp4697+eff95MmjTJ7N+/34SEhNjbDBs2zMyePfuS47peTmRlm3VHT5ppe4+YZ7ckmft+3GVa\nr9lpWq/ZaXr9vMeM3nHQLDqYavacOmNycnOv7+CmTTMGjPngg+vSXXa2McHBxnh7G5OYeF26lHwA\nG8wNkD0d/aMZcBERERGxO3LkCImJidx///0AnDx5krp1615W24SEBIKDg+2zws5/q+q9efNm4uLi\nmDx5MkCeGeaGDRsCthnmlItsyM3vmq1bt9Ln7NFVZ86coU2bNpc1VsuyaNy4MQBNmjRh+/btAGRl\nZdGtWzdefvllbr/9dgA6duzIyZMneeqpp3jwwQc5fvw4Dz74IJMnT+aWW24BoFy5crQ/W8mrffv2\n/Pe//6Vfv36kpqba+0xLS6NcuXKXNT5HK+XiTOOyJWlctiQAWbmGXacy2HoinS0nzrAh7TTLj5wA\nwMvZidu93Ak4eyZ53ZJuuDly2fojj8CCBbZp6fbt4TL//10tZ2eYMcNWA65v3+sy8S7FmAK4iIiI\nSDHg6upKdnb2P15XoUIFatWqxeLFiylVqhRgC6WXIyAggEmTJpGTk4OzszO5ubk4nZdkAgICaNq0\nKV26dAHIUwDOOm/zrTlbo8jpbykov2sCAwOZM2cOVapUyXPPv7f9O2MMGzZsoEmTJvz000+0b9+e\n3NxcevXqxQMPPMADDzxgv3bx4sX2v6enp9OlSxdeffVVmjRpYn8/NDSUDRs24OfnZ//T3d2dkiVL\nsm/fPqpUqcLq1at5/fXXLzmuwlLCycLfyx1/L3cexPb9/HEm6+yyddsRaOv2nQbAxYLaJd3Oq7bu\nQZkSFx6hdtUsy1aILTAQ+vWD1attKdmBataECRNsBdnGjYPnn3dod1KM6Xc7IiIiIsVA5cqV8fDw\nIDw8nJycnIteZ1kWY8eOpXPnzrRq1YrWrVvz22+/XVYfAQEB3H///TRr1oywsLALCpi9+uqrzJs3\nj7CwMFq1avWPlcrPhfW5c+de9JqPPvqIfv36ERYWRlhYGHFxcZfV1sXFhQULFhASEsKJEyfo3Lkz\n//3vf1myZAkxMTGEhoYyePDgfPv79ddfefvttwkNDeWtt94C4KWXXmLu3LmEhoayfv3bfYuTAAAg\nAElEQVR6Bg0aBMD48ePp0aMHISEhPPHEEw4vwFZQLMuimocrbW/x5nnfW/g0qDoLGtVkRN0qhFcp\ng5Nl8eXBVF7ffpAHN+yh38a9vLvrEN/8eZyk9Ez7L0iuWtWqtgO6f/wR3nuvYB7qH/TrB126wL//\nbasBJ+IIqoIuIiIiIiJXLDM3lx0nM86eR24r7nY8OxeA0i5OBHjZirrd4e2OX0l3XJ0uXmI8Ojqa\nrl274u3tDYCHh4dthcHWrfQ+doz+8fGYgACefvpp4uPjKV26NDNmzLhgSf+MGTP48MMPcXd3p2rV\nqkyfPh03Nzf756Ghofj5+dmLD0ZHRzNlyhQsy2LixIncdttd3HEHVKoE69dDenoqCxcutG9ziI2N\npVy5ctx5550F+l1K8amCrhlwERERkWIqISGB0NDQPD+zZ88u7GEVqBUrVlzwjCtWrCjsYd20zl89\n4erkRKC3B92qlWVEvaosaFSTT4N8eK5WRe4pW5K96Zn8374Unt6yn/vX7yZqSzJT9x7hx2OnOJ6V\ndxVGdHQ0x48ft7+uVq0asbGxxCYk0L9cOejTh2+XLOH06dOsWrWKhx56iDFjxlwwvuDgYNauXcvK\nlSvx8fEhJibG/tnixYvx8vKyvz527BgTJkwgNjaWmJgYnn76aSpWhGnTYNMmGDYMUlNTmTFjhr1N\nbGwsmzZtKpDvUoon7QEXERERKaZuv/12YmNjC3sYDnVuabpcvcTERCIiIqhXrx4uLi6cOnUqz1Fy\nvr6+9OzZk6SkJFxcXBg+fDgRPj7MjQzHt25d4rckUP+BB8mO6MvsnUlsHf0qWWmpuDtBv9HjKJP2\nJxvj44mIiKBRo0ZMnDiRgwcPEhISQvny5Rn75pvUePxx4t55h47PPQdAp06dmDRp0gVjrVWrlv3v\n5x8Tl5uby0cffcQzzzzDf/7zHwDWr19PixYtcHV1pWbNmpw4cYKMjAw6dHBj0CB4913Ytct2fF9o\naCgDBgwgOjoaDw8Ppk6dyvfff0/dunXp1KlTnuPs/qn+gBRvCuAiIiIiInJJiYmJfP/994waNYqg\noCC6d+/Or7/+yiuvvMInn3zC3r17Wb16NZZlkZuby759+zhw4ACrVq3CyckJf39/9rw5lBdmfki7\nnt25rW1Hvv/pZ6LfeoPb35qIU626lB/6PhX8avKfP1JZtmUbd/tU4/tl39F/zBi+79mTlNmzKdu7\nNwBlypTh2LFjFx3vtm3bWLp0KatWrQJg+vTpdO3aFXd3d/s1KSkpefbklylThqNHj1KlShXeew++\n/x5+/PE56tdPIDZ2OQA7d+7Ez8+PXmcPDM/Ozuahhx5i3LhxDBgwgIULF+Yp4CfydwrgIiIiIiJy\nSYGBgXh7e+d7lFz58uUZMGAAvXv3xtPTk2HDhgHg7++Pp6cn8NeRdL9t3cIPq1biNuNTAG53cWHK\nnbdxv3sJ7vD2YOepDFYdPQWA+6Hd1Ls1kC2/72F99GxKLVlC6siR5PTpw8LkPylbtiwL9/zB+488\njAWMHDmS4OBgkpOT6du3L3PnzsXd3Z0zZ84wa9Ysli5dyurVq+3PVK5cuXyPiYuMjGTXrl107vwg\nH3zQkUuVzLrYcXYiF6MALiIiIiIil3QuQOd3lFxWVha9evWiX79+xMTEMG7cOAYPHpzn2Lhz8mvv\n6upKlVKeDLqtLDVq1CDxaCq7sy1+O5XJyp83klHKm38nnyBl6Lt8s2g+W+YtZe6e3Zz0u5MJB08z\ndP5C7q1oK9525MgRwsPDmTx5Mr6+vgDs2bOH1NRUOnbsyNGjRzlw4ABTp04lPDycoUOHkpWVxYED\nByhVqhRubm72Am0AxvzBuHHZLFgA4eEXHueX33F2IpeiKugiIiIiInJRiYmJREZGsnz5ctLS0njs\nscc4dOgQxhg6dOhAjx496N69O87OzmRmZjJhwgQqVKhgbwPg5+fHrl278m3/wgsvMHnyZObPn0+z\nZs3o1KkTgwYNwsvLC8uyGDPuA0r41mVT6mkmDHqUvfuTsby8CRj2LiVKl2XZPb72sP/UU0/x5Zdf\n4ufnB0Dv3r3p37+//VnOFVw7F7I//fRTpk6dimVZjB8/nkaN8hbhzsjI5ZZbOnDmjCczZz5BzZre\nREVFUaVKFebNm0edOnXo2rUr69ato1q1asycOdP+ywq5MsWlCroCuIiIiIiI3ByOH+fkHXcSX6M2\no94YS6a7By/73WKfAXeE7duhQQMIDYUlS+D8if1zv1iQa1dcArhK9ImIiIiIyM3B2xuPT6cRvHI5\nS76cyst+txBWweuf212DunVtFdG/+QbObn0XuWoK4CIiIiIictNwbt0annwSa8IE7t36C8757DUv\naE88Ae3awfPPw44df72v2W+5UgrgIiIiIiJyc3nnHfD1hUcegRMnHN6dZcGnn4KHB/TqBVlZDu/y\noqKjozl+/Lj9tYeHB6GhoYSGhjJt2jTAVhxu8ODBtGjRwl587u9mzJhB48aNadmyJd27dycjIwOA\niIgImjVrRpMmTYiOjs7TZseOHZQoUSJPNXm5MgrgIiIiIiJycylZEqZPh7174cUXr0uXVavCJ5/A\nTz/BqFH/fH1OTo5DxvH3AF6tWjViY2OJjY21F5z79ttvOX36NKtWreKhhx5izJgxF9wnODiYtWvX\nsnLlSnx8fIiJiQFg1KhRrFmzhri4OEaOHMmZM2fsbUaMGEFISIhDnqu40DFkIiIiIiJy82ne3LYm\n/L33oEsX2xpxB3vwQejdG0aMgH/9C84eAW6XmJhIREQE9erVw8XFhVOnTpGSkoIxhilTpuDr60vP\nnj1JSkrCxcWF4cOH4+PjQ3h4OP7+/iQkJNCnTx+ioqJIS0tjwIABedrv27eP+Ph4IiIiaNSoERMn\nTuTgwYOEhIRQvnx5xo4dS40aNYiLi6Njx44AdOrUiUmTJl3wLLVq1bL/3c3NDRcXWzSsXbs2YDty\nzdnZ2V5hft26dVSuXFlV3q+RAriIiIiIiNycRoywlSbv3x+2bIEyZRze5cSJEBdnW4q+caNtMv58\niYmJfP/994waNYqgoCC6d+/Or7/+yiuvvMInn3zC3r17Wb16NZZlkZuby759+zhw4ACrVq3CyckJ\nf39/oqKiGD16NF27ds3T/j//+Q9BQUHExMRw66232vurUKEC3377Lf379+f7778nJSWFsmXLAlCm\nTBmOHTt20efZtm0bS5cuZdWqVXneHz16NN27d8fNzQ2At956i88++4znn3++AL/N4kcBXERERERE\nbk7u7ral6E2bQlQU/G3PsiOULm3rMiwMIiKgVi1o2xY6d7Z9HhgYiLe3N5s3byYuLo7JZ0unu7i4\nUL58eQYMGEDv3r3x9PRk2LBhAPj7++Pp6Qlgn2HOr31+KlSoAEC7du148sknAShXrhypqakApKWl\nUbZsWU6ePGmfFR85ciTBwcEkJyfTt29f5s6di7u7u/2eM2bMYNOmTcyZMweAJUuW0KhRI8qXL18w\n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\nAABJRU5ErkJggg==\n",
|
|
"text/plain": [
|
|
"<Figure size 1152x720 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {
|
|
"tags": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"id": "Y6-2sm9W50JB",
|
|
"colab_type": "text"
|
|
},
|
|
"source": [
|
|
"# GPU Memory Usage\n",
|
|
"\n",
|
|
"Measuring the 'practical' GPU memory consumption is a bit of a challenge. By 'practical', what I want to capture is relative GPU memory usage that indicates what the likely maximum batch sizes will be. With `cudnn.benchmark = True` set, the torch memory allocator metrics didn't prove reliable. In the end, using pynvml (same output as nvidia-smi) and taking a sample part way through the validation set is the most consistent. \n",
|
|
"\n",
|
|
"I've verified the sampling by pushing batch sizes for several of the models to the point where they fail with OOM exception. The relative measures of the memory usage match the relative batch sizes -- I can roughly predict where the largest batch size will be from the measure. \n",
|
|
"\n",
|
|
"On a T4 colab instance I pushed:\n",
|
|
"- efficientnet_b2-260 to a batch size of 480\n",
|
|
"- tf_efficientnet_b2-260 to a batch size 448 (failed at 480)\n",
|
|
"- ig_resnext101_32x8d-224 to a batch size of 512\n",
|
|
"\n",
|
|
"Overall, the EfficientNets are not particularly memory efficient. The monster ResNext101-32x8d with 88M params is more memory efficient at 224x224 than the EfficientNet-B2 at 260x260 with 9.1M. This is especially true for the 'tf' variants with the 'SAME' padding hack enabled, there is up to a 20% penalty for this in memory churn that does impact the max useable batch size."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"metadata": {
|
|
"id": "Qmr4J7-EgifY",
|
|
"colab_type": "code",
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/",
|
|
"height": 340
|
|
},
|
|
"outputId": "d8d0db4a-ccca-4ac2-85e6-011535f29c1e"
|
|
},
|
|
"source": [
|
|
"print('Results by GPU memory usage:')\n",
|
|
"results_by_mem = list(sorted(results.keys(), key=lambda x: results[x]['gpu_used'], reverse=False))\n",
|
|
"for m in results_by_mem:\n",
|
|
" print(' {:32} Mem: {}, Rate: {:>6.2f}, Top-1 {:.2f}, Top-5: {:.2f}'.format(\n",
|
|
" m, results[m]['gpu_used'], results[m]['rate'], results[m]['top1'], results[m]['top5']))"
|
|
],
|
|
"execution_count": 46,
|
|
"outputs": [
|
|
{
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Results by GPU memory usage:\n",
|
|
" resnet50-224 Mem: 1530, Rate: 159.51, Top-1 66.81, Top-5: 87.00\n",
|
|
" gluon_seresnext50_32x4d-224 Mem: 1670, Rate: 150.43, Top-1 68.67, Top-5: 88.32\n",
|
|
" gluon_seresnext101_32x4d-224 Mem: 1814, Rate: 131.57, Top-1 70.01, Top-5: 88.91\n",
|
|
" resnet50-240-ttp Mem: 2084, Rate: 154.35, Top-1 67.02, Top-5: 87.04\n",
|
|
" gluon_seresnext101_32x4d-260-ttp Mem: 2452, Rate: 95.84, Top-1 71.14, Top-5: 89.47\n",
|
|
" resnet50-260-ttp Mem: 2532, Rate: 135.92, Top-1 67.63, Top-5: 87.63\n",
|
|
" gluon_seresnext50_32x4d-260-ttp Mem: 2586, Rate: 126.52, Top-1 69.67, Top-5: 88.62\n",
|
|
" dpn68b-224 Mem: 2898, Rate: 155.15, Top-1 65.60, Top-5: 85.94\n",
|
|
" efficientnet_b0-224 Mem: 2930, Rate: 165.73, Top-1 64.58, Top-5: 85.89\n",
|
|
" gluon_seresnext101_32x4d-300-ttp Mem: 3252, Rate: 74.87, Top-1 71.99, Top-5: 90.10\n",
|
|
" gluon_seresnext50_32x4d-300-ttp Mem: 3300, Rate: 104.69, Top-1 70.47, Top-5: 89.18\n",
|
|
" efficientnet_b1-240 Mem: 3370, Rate: 151.63, Top-1 67.55, Top-5: 87.29\n",
|
|
" ig_resnext101_32x8d-224 Mem: 3382, Rate: 83.35, Top-1 73.83, Top-5: 92.28\n",
|
|
" efficientnet_b2-260 Mem: 3992, Rate: 144.20, Top-1 67.80, Top-5: 88.20\n",
|
|
" ig_resnext101_32x8d-300-ttp Mem: 4658, Rate: 43.62, Top-1 75.17, Top-5: 92.66\n",
|
|
" tf_efficientnet_b2-260 Mem: 4690, Rate: 142.73, Top-1 67.40, Top-5: 87.58\n",
|
|
" tf_efficientnet_b3-300 Mem: 8638, Rate: 119.13, Top-1 68.52, Top-5: 88.70\n",
|
|
" tf_efficientnet_b4-380 Mem: 11754, Rate: 69.10, Top-1 71.34, Top-5: 90.11\n"
|
|
],
|
|
"name": "stdout"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"metadata": {
|
|
"id": "dLlD9SUufV4A",
|
|
"colab_type": "code",
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/",
|
|
"height": 621
|
|
},
|
|
"outputId": "034cea0f-0159-456f-ef95-326ff9c9c53d"
|
|
},
|
|
"source": [
|
|
"mem_effnet = np.array([results[m]['gpu_used'] for m in names_effnet])\n",
|
|
"mem_effnet_tf = np.array([results[m]['gpu_used'] for m in names_effnet_tf])\n",
|
|
"mem_resnet = np.array([results[m]['gpu_used'] for m in names_resnet])\n",
|
|
"mem_resnet_ttp = np.array([results[m]['gpu_used'] for m in names_resnet_ttp])\n",
|
|
"\n",
|
|
"fig = plt.figure()\n",
|
|
"ax1 = fig.add_subplot(111)\n",
|
|
"ax1.scatter(mem_effnet, acc_effnet, s=10, c='r', marker=\"s\", label='EfficientNet')\n",
|
|
"ax1.plot(mem_effnet, acc_effnet, c='r')\n",
|
|
"annotate(ax1, mem_effnet, acc_effnet, names_effnet, xo=-.3, align='right')\n",
|
|
"\n",
|
|
"ax1.scatter(mem_effnet_tf, acc_effnet_tf, s=10, c='#8C001A', marker=\"v\", label='EfficientNet-TF')\n",
|
|
"ax1.plot(mem_effnet_tf, acc_effnet_tf, c='#8C001A')\n",
|
|
"annotate(ax1, mem_effnet_tf, acc_effnet_tf, names_effnet_tf, xo=-.3, align='right')\n",
|
|
"\n",
|
|
"ax1.scatter(mem_resnet, acc_resnet, s=10, c='b', marker=\"o\", label='ResNet')\n",
|
|
"ax1.plot(mem_resnet, acc_resnet, c='b')\n",
|
|
"annotate(ax1, mem_resnet, acc_resnet, names_resnet, xo=.5, align='left')\n",
|
|
"\n",
|
|
"# Too busy\n",
|
|
"#ax1.scatter(mem_resnet_ttp, acc_resnet_ttp, s=10, c='#43C6DB', marker=\"o\", label='ResNet TTP')\n",
|
|
"#ax1.plot(mem_resnet_ttp, acc_resnet_ttp, c='#43C6DB')\n",
|
|
"#annotate(ax1, mem_resnet_ttp, acc_resnet_ttp, names_resnet_ttp, xo=.5, align='left')\n",
|
|
"\n",
|
|
"ax1.set_title('Top-1 vs GPU Memory')\n",
|
|
"ax1.set_ylabel('Top-1 Accuracy (%)')\n",
|
|
"ax1.set_xlabel('GPU Memory (MB)')\n",
|
|
"ax1.legend()\n",
|
|
"plt.show()"
|
|
],
|
|
"execution_count": 16,
|
|
"outputs": [
|
|
{
|
|
"output_type": "display_data",
|
|
"data": {
|
|
"image/png": "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\nRUBAAAcOHHDnypEjxx3fR1arVi02bdpETEwMf/zxB/ny5SNnzpzJ/mwSL850zz33kD/hvW0nT56k\ndevWzJw5kwcffNB9znfffUdMTAyFCxdm+fLlAFhrKVy4MABFixbl9OnTgOtF3dd+MXDtM65bty7r\n1q1j3bp15MuXjx9++IGhQ4eyZMkScufO7b7OgAEDKF68OL169XLv279/P2+99RZPPPEE//3vf3n+\n+eeTfZ8iIiLiWby8vJK8B/baYo8bN27Ex8cHPz8/Ll++TEhICD4+PoSEhDBz5kzmzZt3yz6PHj16\nx/VBbmfy5MlcunTJvV2mTBlat27t3l6yZAmdO3e+bR8RERF8/fXXNz3WqlUr/Pz8KF++PAUKFHDf\n+5YtWwgKCqJixYrufUuWLEnxfdyMRmBFMpDx4yE+3vV9dDScPg3z579Fly5dKFy4MAUKFKB06dLJ\n6mvChAn07NmTCxcuANClSxcqV65Mnz59yJ49O/Hx8cydO5fff/892e39/f2ZM2cOq1ev5vjx47Ru\n3ZpVq1bx+OOP07dvX1asWMFnn33G9OnTWbRoEfv27SM4OJj333+fBx98kB49elC/fn2MMbz33nuA\n63nWZ555hr1797Jnzx6aNm3qHhlO7D//+Q/9+vXDy8uL2NhYJk+eDMCIESM4cuSIewGljh070rx5\ncwYPHsy3335L9uzZCQ4Opnr16vTu3ZuOHTsye/ZsLl++zLhx49z32rx5c0qUKOEujK/XtWtXAJ5+\n+ml3G2st7733HoGBgQQFBVGkSBEWL17Ml19+6W5Xvnz5DPXybxEREUlduXPnJiIi4ob9CxYsIDQ0\n1P2I1QcffMDp06eTDDjcSokSJe6q8Js8eTIdOnQgT5487n07duxg7969VK5cOVl9REREEB4eTtOm\nTW84tnTpUsC1Bsu7777LihUrkhxfsGAB/v53fKVrylhrM/xXjRo1rEhm9/PP1mbPbq2Xl7VgbZ48\n1i5bZu3Vq1fd53Tr1s0uXrzYwZQiIiIiGcfevXudjmDz5s17w74PP/zQFixY0JYpU8a2a9fONm/e\n3GbLls0+8sgjdtGiRXb48OH2nXfesdZa+8svv9hGjRpZX19fW61aNXvgwAF78OBB6+PjY621NjY2\n1g4YMMD6+/vbqlWr2pkzZ1prrV27dq2tX7++bd26ta1YsaJt166djY+Pt++995719va2VapUsUFB\n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\nIqICVuQm4uKge3coVgxGjnQ6jYiIiIiIgKYQi9zUzJmwYwcsWuRafVhERERERJynEViR6xw75nr2\nNTgY2rRxOo2IiIiIiFyjAlbkOiEhcPkyTJsGxjidRkRERERErlEBK5LI2rUwfz4MGgQVKjidRkRE\nREREElMBK5Lg6lXo0QPKloVPyOY6AAAgAElEQVTQUKfTiIiIiIjI9bSIk0iCiRPhp5/gq68gd26n\n04iIiIiIyPU0AisCREa6XpfTqhU0bep0GhERERERuRkVsCLAq69Ctmzw3ntOJxERERERkVvRFGLJ\n8pYvd32NHw/33+90GhERERERuRWNwEqWdukS9OkDlStD375OpxERERERkdvRCKxkaaNHw++/w/r1\n4O3tdBoREREREbkdjcBKlrVvH7z7LnTqBPXqOZ1GRERERETuRAWsZEnWQs+ekDev69lXERERERHJ\n+DSFWLKkhQth7VqYMQOKFnU6jYiIiIiIJIdGYCXLiYqC/v2hZk146SWn04iIiIiISHJpBFaynKFD\n4cQJ+Oor8PJyOo2IiIiIiCSXRmAlS9mxA6ZPhx49oEYNp9OIiIiIiMhfoQJWsoy4OOjeHYoUgVGj\nnE4jIiIiIiJ/laYQS5bx4YewfTvMnw/33ut0GhERERER+as0AitZwvHjEBoKDRpAu3ZOpxERERER\nkZRQAStZwsCBcPEiTJsGxjidRkREREREUkIFrGR6GzbA3LkwYABUquR0GhERERERSSkVsJKpxcS4\nVhwuXRqGDHE6jYiIiIiI3A0t4iSZ2uTJsGcPLF8OefI4nUZERERERO6GRmAl0zp0CEaMgBYtoHlz\np9OIiIiIiMjdUgErmVbfvmAtvPee00lERERERCQ1aAqxZEpffw1ffAFjx0KZMk6nERERERGR1KAR\nWMl0Ll+GXr3g4Yehf3+n04iIiIiISGrRCKxkOmPHwsGDsGYN5MjhdBoREREREUktGoGVTGX/fhg3\nDtq3hwYNnE4jIiIiIiKpSQWsZBrWQs+ekDs3vPuu02lERERERCS1aQqxZBqffQarVsHUqVCsmNNp\nREREREQktWkEVjKFc+egXz+oXh1eecXpNCIiIiIikhY0AiuZwrBhcOwYLFsGXl5OpxERERERkbSg\nEVjxeBERMGWKa+S1Zk2n04iIiIiISFpRASseLT4euneHQoVgzBin04iIiIiISFrSFGLxaLNnw9at\n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\nOTnxpdSJeNRRRxVul5WVFefNmxdjjLFv375x3Lhxcdq0afHUU0+NGzZsiDHGuDFVy+b9rrvuujhq\n1KgYY4xTpkyJPXv2LDzWc889F2OM8dJLLy328x5++OHYvXv3GGOM//rXvwr37dSpU/z8889jjDHe\ndddd8d57791m3+Icfvjhcfz48THGGAcMGFD4+THGuGrVqnjSSSfFjz76aLv7L1q0KLZq1SouXrw4\nxhjjMcccU/jZ11xzTRwyZEhcsGBBzMrKKtznFxf/LF576pnxhfMujU92Pj++0ufK+OxZF8WhB50Q\n/8JBhY8HG7WPz/foH8ffMjjOefG1uHLeglhQULDD7yNJkrSnAybFEmRDW2DLwObZZA49NL11qALJ\ny4N27eB7tshtbz7dkpgxYwYdO3YsbJXces7dzfP/Dh06FGCLFs6t5+AtTnHbfPTRR1x88cUAfPvt\nt4WjNe9MCIF27doB0L59ez7++GMgmXrpggsu4LrrrqN58+YAnH322axatYorr7yS8847j5UrV3Le\neecxdOhQ9ttvPyCZk/fMM88E4Mwzz+TZZ5+lX79+W8zT+9WXS6jxznt8wtSkhipVaND8GA7tcnJh\nN+D9WrWgRv16JfoOkiRJ2nUG2DIwb17ybBdilcjq1TB1Klx//XY3KW7e2+Jsbz7dkmjRogVDhgxh\n06ZNZGRkUFBQQJUiU7K0aNGCDh060KNHDyCZ/3ezrefgBbbYd3vbtGzZklGjRnHggQduccyt991a\njJFJkybRvn173nvvPc4880wKCgro06cP5557Lueee27hti+//HLh67Vr19KjRw9uvPFG2rdvX7g8\nOzubSZMm0bhx48LnGjVqULt2bb744gsOPPBAZixZSK+G+8PS5dTcrwEDPs2j2l61d1inJEmSSpcT\nBpaBefOgZk3YZ590V6IKYfLkZOSvDh22u8kBBxxAzZo16dmzJ5uKTrWzlaLz6Xbu3JnTTjuNmTNn\nlqiMFi1a0L17d04++WS6dOmyzQBIN954I//4xz/o0qULnTt35p577tnh8TaH3SeeeGK729x///30\n69ePLl260KVLF8aOHVuifTMzM3nmmWfIysrim2++oVu3bjz77LO88sorPPbYY2RnZzNo0KBiP+/D\nDz/kD3/4A9nZ2fw+NcratddeyxNPPEF2djYTJ07ksssuA+Duu+/mwgsvJCsri8svv5yz7km273zX\n7wyvkiRJaeAoxGXgggtgyhRI9WqUduyPf0xaX5csgYYN012NdqBg0yamPPAIrS7v6wBMkiRJpchR\niNNo3jy7D2sX5OcnU+jsYnidMWMGl19++RbLBg4cyE9/+tPSrC6t3nrrLX73u99tsew3v/kNXbp0\nSUs9VTIyOGHQJWn5bEmSJBlgy8S8eXDaaemuQhVCjMkATl277vKuzZs3Jzc3t/RrKkc2dy2WJEmS\nwHtgS93GjbBwoSMQq4Q+/zyZOHg7879KkiRJ+i8DbClbtCgZj8cuxCqR/PzkeQcDOEmSJElKGGBL\n2eYpdGyBVYnk5UGtWnDssemuRJIkSSr3DLClbP785NkAqxLJz4cTT4RMb0eXJEmSdsYAW8o2t8Da\nhVg79e238MEH3v8qSZIklZABtpTNmwe1a0O9eumuROXe++/Dhg0GWEmSJKmEDLClbP78pPU1hHRX\nonJv8wBOBlhJkiSpRAywpWzePO9/VQnl5UGjRnDAAemuRJIkSaoQDLClzACrEsvPd/ocSZIkaRcY\nYEvRhg2wcKEDOKkE5s9PHnYfliRJkkrMAFuKFi6EGG2BVQl4/6skSZK0ywywpcg5YFVi+flQvTq0\napXuSiRJkqQKwwBbipwDViWWlwdt2kC1aumuRJIkSaowDLClaHOAtQVWO7R+PUye7ABOkiRJ0i4y\nwJai+fOhTh3Ye+90V6JybcoUWLfO+18lSZKkXWSALUXz5tl9WCXgAE6SJEnSd2KALUXOAasSyc9P\n/tLhXzskSZKkXWKALUXz5xtgVQJ5eba+SpIkSd+BAbaUrF8PixbZqKadWLQI5s51ACdJkiTpOzDA\nlpL//AditAVWO+H9r5IkSdJ3ZoAtJfPnJ8+7I8AOHz6clStXFr6vWbMm2dnZZGdn89BDDwEQY2TQ\noEF06tSJs88+m6+++mqb44wYMYJ27dpx6qmn0qtXL9atWwfA+eefz8knn0z79u0ZPnz4FvvMnj2b\nqlWr8u6775bdF6zM8vOhalU44YR0VyJJkiRVOAbYUrJ5DtiiXYg3bdpUJp+1dYA9+OCDyc3NJTc3\nl/79+wPw2muvsWbNGsaNG8dPfvIT/vSnP21znI4dO5KXl8c777zDYYcdxmOPPQbA7bffzvjx4xk7\ndiy33XYb3377beE+t956K1lZWWXyvfYI+fnQujXUqJHuSiRJkqQKJzPdBVQWmwNsQcFcTjzxfJo2\nbUpmZiarV69m2bJlxBh58MEHOeqoo+jduzfz5s0jMzOTW265hcMOO4yePXvSrFkzZsyYwcUXX0xO\nTg4rVqzg0ksv3WL/L774gilTpnD++efTtm1b7r33XhYtWkRWVhYNGjRg8ODBNGrUiLFjx3L22WcD\ncM455zBkyJBtaj7yyCMLX1evXp3MzOR0OProowGoVq0aGRkZhBAAmDBhAgcccAAZGRll+aOsvDZu\nhPfegwED0l2JJEmSVCEZYEvJ/Pmw996w114wd+5c3nzzTW6//XZatWpFr169+PDDD7n++uv5v//7\nPz7//HPeffddQggUFBTwxRdfsHDhQsaNG0eVKlVo1qwZOTk53HHHHfz4xz/eYv+nn36aVq1a8dhj\nj3FIqrl37ty5NGzYkNdee43+/fvz5ptvsmzZMurXrw9AvXr1+Prrr7db+6xZsxg9ejTjxo3bYvkd\nd9xBr169qF69OgC///3vefjhh7nmmmvK6KdYyU2bBmvWOICTJEmS9B0ZYEvJxImQkQFjxkDLli2p\nW7cu06ZNY+zYsQwdOhSAzMxMGjRowKWXXspFF11ErVq1+M1vfgNAs2bNqFWrFkBhC2dx+xenYcOG\nAJxxxhlcccUVAOyzzz4sX74cgBUrVlC/fn1WrVpV2Cp722230bFjR+bPn0/fvn154oknqFGkW+uI\nESOYOnUqo0aNAuCVV16hbdu2NGjQoPR+aHuavLzk2QGcJEmSpO/EAFsKXnwx6RlaUACDBkGTJkkA\nbdGiBR06dKBHjx4ArF+/ng0bNtCnTx/69evHY489xp133smgQYMKu+kWVdz+kHTt3bhxIwCrVq2i\nZs2aZGRkMHXq1MIwm5WVxXPPPce5557Lq6++SlZWFnvttRe5ubmFx1+6dCk9e/Zk6NChHHXUUYXL\nX3jhBUaOHMmLL75IlSrJbdJTpkwhNzeX8ePHM23aNGbNmsWTTz7J4YcfXso/zUosPx/23x/8mUmS\nJEnfSYgxpruGnWrbtm2cNGlSusvYriuvhPvv3/xuLvvuO4Avv3yDFStW8POf/5zFixcTY+Sss87i\nwgsvpFevXmRkZLB+/XruueceGjZsyIABA3jjjTcAaNy4MXPmzCl2/1/96lcMHTqUp556ipNPPplz\nzjmHyy67jDp16hBC4J577uH444+noKCAQYMGMXXqVOrWrcuIESO2aT298soref7552ncuDEAF110\nEf3792evvfaiadOm7LXXXgA8/vjjHHzwwYX79evXjwEDBtCxY8cy/9lWKsccAy1awHPPpbsSSZIk\nqVwJIUyOMbbd6XYG2O/vxRehVy9YuxZCSOaD/dnP4A9/gP32S3d1KheWLoV9901OiuuuS3c1kiRJ\nUrlS0gDrNDqloFs3eOIJuOIKGDkSrr0WHnssaXC7995k8Fnt4SZMSJ4dwEmSJEn6zgywpaRbN7jv\nvqQl9o9/hKlToV07uOoqOOEEeOeddFeotMrLS0b5atMm3ZVIkiRJFZYBtow0bQqvvQbPPAMrVkBW\nFvTpA//5T7orU1rk58Pxx0Pt2umuRJIkSaqwDLBlKAT48Y9h5kz4f/8Pnn4amjSBv/wFUgMKa0+w\naVMyz5LT50iSJEnfiwF2N6hVC373O/joI8jOhl//OmmMSw06rMpuxgz45hsDrCRJkvQ9GWB3o6OO\ngpdeSh4bNsAPfgDnnw9ffJHuylSm8vOTZwdwkiRJkr4XA2wanH02TJ8Ot94Kr7wCzZrB7bfDunXp\nrkxlIi8PGjZM/oIhSZIk6TszwKZJjRpw003J/bE//CHceCO0bAmvvpruylTq8vOT7sMhpLsSSZIk\nqUIzwKbZ4Ycngzu9/noyy8pZZyVT8vz73+muTKVi+fLkrxTe/ypJkiR9bwbYcuIHP0jmjv3Tn+Ct\nt6B5c7j5ZlizJt2V6XuZMCF5NsBKkiRJ35sBthypVi0Zofjjj6Fnz2Tk4ubN4fnnIcZ0V6fvJD8/\n6Trcrl26K5EkSZIqPANsOXTwwfD445CbC3XqQI8eyX2yH3+c7sq0y/Lykpub69RJdyWSJElShWeA\nLceysuCDD+Duu5McdOyxcP31sGpVuitTiRQUJF2InT5HkiRJKhUG2HIuMxOuugpmz4beveGPf4Sm\nTeHJJ+1WXO7Nnp0M4uT9r5IkSVKpMMBWEPvvDw8/DOPHJ6979YIuXZL5ZFVO5eUlzwZYSZIkqVQY\nYCuYDh1g4kQYOjQZtbhVK/jlL2HFinRXpm3k50O9etCkSborkSRJkioFA2wFlJEBl12W9FAdMADu\nuivJSCNGJLddqpzIy4P27aGK/5tJkiRJpcHfrCuwBg2SltiJE6FRI+jbFzp1gilT0l2Z+OabpH+3\nAzhJkiRJpcYAWwm0bZvcG/v3v8Mnn0CbNnDFFfDVV+mubA/23nvJKFve/ypJkiSVGgNsJVGlCvzs\nZ0m34iuuSFpmjzkG/vY3uxWnxeYBnNq1S28dkiRJUiVigK1k6tWDe+5J5o9t3hwGDkwaASdOTHdl\ne5j8fGjWDOrXT3clkiRJUqVhgK2kjjsOxo6Fxx+H+fOTsYQGDIAlS9Jd2R4gxiTA2n1YkiRJKlUG\n2EosBPjpT2HWLPjVr+CRR5JuxfffDxs3pru6SuzTT2HpUgdwkiRJkkqZAXYPULcu/PnPybyxbdrA\nlVcmAz+9+266K6uk8vOTZ1tgJUmSpFJlgN2DNGsGY8bAU08lIxR36gQXXQQLF6a7skomLw/q1Elu\nQpYkSZJUagywe5gQ4LzzYOZMuPFG+Mc/oEkTGDwYNmxId3WVRH5+MvpwRka6K5EkSZIqFQPsHqp2\nbbjtNvjoo6Ql9pproFUreOutdFdWwa1eDR9+aPdhSZIkqQwYYPdwjRvDyy/Diy/C2rVw2mlwwQUw\nb166K6ugJk+GTZscwEmSJEkqAwZYEQKcc07SGvu73yVhtmlTuOMOWLcu3dVVMHl5yXP79umtQ5Ik\nSaqEDLAqVLMm/L//l9wfe8YZ8L//C8ceC6NHp7uyCiQ/P2nWbtgw3ZVIkiRJlY4BVtto1AiefTYJ\nriHAD38I554Ln32W7srKuRiTAGv3YUmSJKlMGGC1XWecAdOmwR/+AG+8kcwKc8styb2yKsbnn8Oi\nRQ7gJEmSJJURA6x2qFo1uO46mDULuneH3/42CbIvvJA0OKqI/Pzk2RZYSZIkqUwYYFUihxwCTzyR\nTLNTu3bSpfiss+CTT9JdWTmSl5fcSHzssemuRJIkSaqUDLDaJZ07wwcfwJ13wr/+BS1bJoM9rV6d\n7srKgfx8OPFEyMxMdyWSJElSpWSA1S6rWhVycuDjj+HCC5Ppdpo2haee2oO7FX/7bZLs7T4sSZIk\nlRkDrL6zAw6A4cPh3XeTWWN+8hM4/XSYMSPdlaXB++/Dhg0O4CRJkiSVIQOsvrdTToFJk+D++5Mc\nd/zxcM01sHJluivbjTYP4GSAlSRJkspMmQbYEEK9EMLTIYRZIYSZIYQOqeWDUss+CiH8qSxr0O6R\nkQGXXw6zZ8PPfpbcI9ukCTz22B7SrTgvL5lA94AD0l2JJEmSVGmVdQvs3cDoGGNT4HhgZgihM9Ad\nOD7G2AL4SxnXoN1o333hwQdhwgQ47DC46CI49VT48MN0V1bG8vNtfZUkSZLKWJkF2BDC3sCpwEMA\nMcb1McblwP8Af4gxrkst/7KsalD6nHhi0ig5bFgyh+wJJ8CgQfD11+murAzMn588HMBJkiRJKlNl\n2QJ7BLAEeDiE8EEIYVgIoTZwDNAphDAhhDA2hHBicTuHEAaGECaFECYtWbKkDMtUWalSBfr3T7oV\nX345PPAAHHMMPPQQFBSku7pS5P2vkiRJ0m5RlgE2EzgBGBJjbA2sBq5PLd8HOAn4NfCPEELYeucY\n44MxxrYxxrb77rtvGZapsla/Ptx7L0yenNwXO2BA0lg5aVK6Kysl+flQvTq0apXuSiRJkqRKrSwD\n7HxgfoxxQur90ySBdj7wbExMBAqAhmVYh8qJVq1g3Dh49FH44gto1w4GDoSlS9Nd2feUlwdt2kC1\naumuRJIkSarUyizAxhgXAfNCCE1Si04DZgDPA50BQgjHANWAih5hVEIhQJ8+8PHHcPXV8Pe/J92K\nhwyBTZvSXd13sH590rRs92FJkiSpzJX1KMSDgMdDCFOBVsDtwN+BI0MI04EngL4x7hETraiIunXh\nr39NRidu3Tq5R7ZtWxg/Pt2V7aIPP4R16xzASZIkSdoNyjTAxhinpO5jPS7GeG6M8evUaMR9Yowt\nY4wnxBjfKssaVL61aAFvvAH/+EfSlfiUU6BvX1i0KN2VlVBeXvJsC6wkSZJU5sq6BVbaqRDg/PNh\n5ky44QYYNSoZ7Omuu2DDhnRXtxP5+XDIIclDkiRJUpkywKrc2GsvuP12mD4dTj45uUf2hBMgNzfd\nle1AXp6tr5IkSdJuYoBVuXPMMfDqq/D887BqFXTuDBdeCPPnp7uyrSxaBHPnGmAlSZKk3cQAq3Ip\nBOjeHWbMgN/+NgmzTZvCH/+YDPxbLkxIzRDlAE6SJEnSbmGAVblWsybcfHMSZE8/Ha6/Ho49Fl5/\nPd2VkXQfrlo16ecsSZIkqcwZYFUhHHFE0gr76qsQI5xxBvz4x0kP3rTJz0/mAKpRI41FSJIkSXsO\nA6wqlB/+EKZNSwZ7eu01aNYMbr0Vvv12NxeycSO89573v0qSJEm7kQFWFU716sl0O7NmQbdu8Jvf\nJPPJvvTSbixi2jRYs8YAK0mSJO1GBlhVWIceCk8+CW++mfTi7dYNzj4b5szZDR+en588O4CTJEmS\ntNsYYFXhdekCU6bAX/8K77yTtMbedBOsXl2GH5qXB/vvD4cfXoYfIkmSJKkoA6wqhapV4Ze/hI8/\nhgsugN//Prk/9plnkkGfSqpx48Yl2zA/P2l9DYGlS5dywQUX0KVLF7p27QpAjJErr7ySDh06cOKJ\nJzJq1CgAhg8fzm233bbDQ48YMYJ27dpx6qmn0qtXL9atWwfA+eefz8knn0z79u0ZPnz4FvvMnj2b\nqlWr8u6775b8y0qSJEkVjAFWlcqBB8KIETBuHNSvD+edB127wsyZpfghS5fCJ58U3v+ak5PDb37z\nG9566y1eT83v89FHH/HRRx+Rl5fHW2+9xU033VTiw3fs2JG8vDzeeecdDjvsMB577DEAbr/9dsaP\nH8/YsWO57bbb+LbIyFW33norWVlZpfglJUmSpPLHAKtKqWNHmDwZ7rsPJk2C446DX/8avvlmy+0K\nCgro06cPWVlZXH311UDSSnrOOedwzjnn0Lp1a8aNGwdAv379uPTSSznrhz/kJODLJk3YtGkT06dP\n569//StZWVk88MADABx00EFUq1aNDRs28M0337DPPvsUfuaECRO2OXZRRx55JBkZGQBUr16dzMxM\nAI4++mgAqlWrRkZGBiGEwuMdcMABHHLIIaX3A5QkSZLKIQOsKq3MTLjiiqRbcd++8Je/QJMmMHLk\nf7sVv/DCC9SuXZuxY8dy3nnnsXHjRgA2bNjASy+9xHPPPVcYbAFatGjBK2eeSbcQ+Menn/Lll18y\nbdo0fvGLXzBmzBhGjhzJzJkzqV+/PkcffTTHHHMMrVq12qIFdnvH3tqsWbMYPXo0F1xwwRbL77jj\nDnr16kX16tUB+P3vf8/1119fWj82SZIkqdwywKrS228/GDYMJkyAgw+G3r2hZUvo1Quef3427dq1\nA6B9+/aFrZonnngiAI0aNWLFihWFx2rTpg3k5XHYYYexbNUq6tevz0EHHcTxxx9PtWrVyM7OZtq0\naYwZM4YFCxYwZ84cZs2axf/+7/8W3su69bFXrVpFdnY22dnZhfewzp8/n759+/LEE09Qo0aNws8f\nMWIEU6dO5eabbwbglVdeoW3btjRo0KCMf4qSJElS+mWmuwBpd2nXLgmxV10F998PM2ZA1apH8+WX\nY+jfvz/vvfceMdU0O3nyZAC++OIL6tatW3iMUFAAEydCu3bEGKlRowZHHnkk8+bN49BDD2Xy5Mn8\n+Mc/ZsmSJdSvX5+MjAzq1KnD+vXr2bRpU7HH3muvvcjNzS38jKVLl9KzZ0+GDh3KUUcdVbj8hRde\nYOTIkbz44otUqZL87WnKlCnk5uYyfvx4pk2bxqxZs3jyySc53NGRJUmSVAkZYLVHqbJVn4MNG7rz\n6adPk5WVRfv27QvvN61VqxZnnXUW//nPf7jzzjv/u8PcucmNtEVGK7777rvp06cPGzZsoEuXLpxw\nwgls2rSJUaNG0bFjR9atW8egQYOoVavWjo+d8tvf/pYFCxYUdi++6KKL6N+/P71796Zp06aFIx0/\n/vjj3Hjjjdx4441Aco/ugAEDDK+SJEmqtELclTlG0qRt27Zx0qRJ6S5DlcSLL8KFF8KaNVCrFowa\nBd26/Xf98OHDmT9/fvEjB//tbzBwIMyeDalBlSRJkiR9PyGEyTHGtjvbzhZY7XG6dUtC6+uvJ1Ps\nFA2vO5WfDw0abNECK0mSJGn3sAVW2hXNm8ORR8LLL6e7EkmSJKnSKGkLrKMQSyW1fDnMnAkdOqS7\nEkmSJGmPZICVSmrChOT5pJPSW4ckSZK0hzLASiWVnw8hQGoeV0mSJEm7lwFWKqn8fGjZEorMCytJ\nkiRp9zHASiVRUJAEWLsPS5IkSWljgJVKYvbsZBAnB3CSJEmS0sYAK5VEXl7ybAusJEmSlDYGWKkk\n8vOhXj1o0iTdlUiSJEl7LAOsVBL5+dC+PVTxfxlJkiQpXfxtXNqZb76B6dPtPixJkiSlmQFW2pn3\n3ktGIXYAJ0mSJCmtDLDSzmwewKldu/TWIUmSJO3hDLDSzuTnQ9OmUL9+uiuRJEmS9mgGWGlHYkwC\nrN2HJUmSpLQzwEo78umnsHSpAzhJkiRJ5YABVtqR/Pzk2RZYSZIkKe0MsNKO5OVBnTrQvHm6K5Ek\nSZL2eAZYaUfy85PRhzMy0l2JJEmStMczwErbs2YNfPih979KkiRJ5YQBVtqeSZNg0yYDrCRJklRO\nGGCl7dk8gJMBVpIkSSoXDLDS9uTlQePG0LBhuiuRJEmShAFWKl6MSQus0+dIkiRJ5YYBVirOF1/A\nokV2H5YkSZLKEQOsVJy8vOTZACtJkiSVGwZYqTj5+VCzJhx3XLorkSRJkpRigJWKk5cHJ54ImZnp\nrkSSJElSigFW2tq338IHHziAkyRJklTOGGClrX3wAWzY4P2vkiRJUjljgJW25gBOkiRJUrlkgJW2\nlp8PjRrBAQekuxJJkiRJRRhgpa3l5dn6KkmSJJVDBlipqPnzk4cDOEmSJEnljgFWKmrChOTZFlhJ\nkiSp3DHASkXl5UH16tCqVborkSRJkrQVA6xUVH4+tGkD1aqluxJJkiRJWzHASputXw+TJtl9WJIk\nSSqnDLDSZh9+COvWOYCTJEmSVE4ZYKXN8vOTZ1tgJUmSpHLJACttlpcHBx8MhxyS7kokSZIkFcMA\nK6rb/X4AABFtSURBVG2Wn2/3YUmSJKkcM8BKAIsXw2ef2X1YkiRJKscMsBL89/5XW2AlSZKkcssA\nK0ESYKtWhdat012JJEmSpO0wwEqQDODUqhXUrJnuSiRJkiRthwG2Alu0aBEdOnSgc+fOrFu3jp49\ne5Kdnc3EiRPp3bv3dvcbPXo0jz766C5/3pQpU3jnnXe+U6072zc3N5cBAwZss/zbb7+ld+/edOrU\nid69e/Ptt99us82f/vQn2rdvzymnnMKgQYOIMbJ27Vp+8IMf0LFjR0466ST++c9/brHP22+/TQiB\n+fPnw8aN8N57dh+WJEmSyjkDbAX29ttv07VrV95++22++uorli5dSm5uLu3atePxxx/f7n5nnnkm\nF1100S5/XlkG2O0ZPnw4TZs2Zdy4cTRp0oThw4dvs02PHj2YMGEC//rXv1i8eDFvvfUWmZmZ/O1v\nf+Pdd9/l5ZdfJicnp3D7GCODBw+mbdu2yYJp02DNGgdwkiRJkso5A2wFcsMNN5CVlUWHDh145JFH\nuOWWWxgxYgQDBgxg4MCBTJ06lezsbFatWkXjxo0B+Prrr+nZsydZWVl07tyZRYsWMXz4cG677TYA\nxo4dS1ZWFtnZ2fz85z8nxsjcuXNp06YNffr04YQTTuCuu+4CYPDgwTz00ENkZ2ezYMECsrOzycnJ\noWvXrpx22mmsW7cOgHvvvZdOnTrRoUMHhg0bVuy+xfn000/p0aMHrVq14qmnniqs7+yzzwbgnHPO\nYezYsdvsd/TRRxe+rl69OpmZmVStWpVGjRoBULNmTapU+e+p/tRTT3HGGWdQu3btZIEDOEmSJEkV\nQma6C1DJjB49mq+//pqxY8eyZs0aOnTowHXXXceCBQu46aabmDt3LgMGDOCNN97YYr877riDrl27\nctlllwFQUFBQuC7GSE5ODrm5uey9995cffXVvPLKK7Rs2ZKFCxcybtw4qlSpQrNmzcjJyeGXv/wl\n8+fP56abbio8RnZ2NnfddRcDBw5kzJgxHHXUUYwePZp33nmHgoICOnXqRI8ePYrdd2tLlixhzJgx\nrFmzhrZt29KzZ0+WLVtG/fr1AahXrx5fffXVdvcfO3YsCxcu5NRTT91i+dVXX821114LwIYNGxg2\nbBgvv/wyTz/9NDRtCqtXJxsecQTUqQMrV5bgv4gkSZKk3c0AW0FMmzaNsWPHkp2dDcC6detYtmzZ\nTvebPn06l156aeH7oi2RS5cuZe7cuXTv3h2AVatW0aRJE1q2bEmzZs2oVasWABkZGds9fps2bQA4\n7LDDWLZsGWvXrmXGjBl07twZgJUrVzJv3rwSfcfWrVuTmZlJ3bp12W+//ViyZAn77LMPy5cvB2DF\nihXss88+zJkzp/B+2WHDhtG4cWOmTp3K9ddfz0svvUQIofCYt956K3Xr1uVnP/sZAA8++CB9+vSh\nWrVqyQabw+tm33xTololSZIk7X4G2AqiRYsWdO3albvvvhuA9evXM3LkyGQQoh1o2bIlubm5hd1s\ni7bANmzYkCOPPJKXX36ZvfbaC0haKBcsWLBFCNysWrVqbNy4cYtlRbeLMdKsWTNat27NM888QwiB\nDRs2ULVqVWbMmLHNvlubMmUKGzduZO3atSxevJh9992XrKwsXn31VVq1asWrr75KVlYWjRs3Jjc3\nt3C/OXPmcMkll/DMM8/QsGHDwuX33Xcfn3zyCY888kjhsunTp/Ppp58ycuRIpk6dykXAP4EaO6xM\nkiRJUnngPbAVxI9+9CPq1KlDdnY2nTt3pn///iXa74YbbigMfl26dOHLL78sXBdCYPDgwXTr1o3O\nnTtz2mmnMXPmzO0e65RTTuH111/nvPPOY9GiRcVu07JlS04//fTCe267d+/Oxo0bS7TvQQcdxPnn\nn0+nTp247bbbqFKlCv369WPatGl06tSJadOm0a9fv232y8nJYfny5fTt25fs7GxeeeUVvvzyS37x\ni1/w73//m86dO5Odnc2mTZsYMmQIr7/+OqNHj+a4447jUQyvkiRJUkURYozprmGn2rZtGydNmpTu\nMlQZ1a27Zbdh74GVJEmSdrsQwuQYY9udbWcXYu121157LRMnTix8X61aNV5//fX0FGNYlSRJkioM\nA6x2uz/96U/pLkGSJElSBeQ9sJIkSZKkCsEAK0mSJEmqEAywkiRJkqQKwQArSZIkSaoQDLCSJEmS\npArBACtJkiRJqhAMsJIkSZKkCsEAK0mSJEmqEAywkiRJkqQKwQArSZIkSaoQDLCSJEmSpArBACtJ\nkiRJqhAMsJIkSZKkCsEAK0mSJEmqEAywkiRJkqQKwQArSZIkSaoQDLCSJEmSpArBACtJkiRJqhAM\nsJIkSZKkCsEAK0mSJEmqEEKMMd017FQIYQnwebrrqKAaAkvTXYT2SJ57SgfPO6WL557SwfNO6VBW\n593hMcZ9d7ZRhQiw+u5CCJNijG3TXYf2PJ57SgfPO6WL557SwfNO6ZDu884uxJIkSZKkCsEAK0mS\nJEmqEAywld+D6S5AeyzPPaWD553SxXNP6eB5p3RI63nnPbCSJEmSpArBFlhJkiRJUoVggJUkSZIk\nVQgG2AomhHBoCOHtEMKMEMJHIYRfpJbvE0IYE0L4JPVcP7U8hBDuCSHMCSFMDSGcUORYfVPbfxJC\n6Juu76SKJYSQEUL4IITwcur9ESGECalz7MkQQrXU8uqp93NS6xsVOcYNqeUfhxDOSM83UUURQqgX\nQng6hDArhDAzhNDBa552hxDC1al/a6eHEEaFEGp4zVNpCyH8PYTwZQhhepFlpXaNCyG0CSFMS+1z\nTwgh7N5vqPJqO+fen1P/3k4NITwXQqhXZF2x17IQwpmpZXNCCNcXWV7s9fL7MsBWPBuBa2KMzYGT\ngCtCCM2B64E3Y4xHA2+m3gP8EDg69RgIDIHkwgjcDLQH2gE3b744SjvxC2Bmkfd/BO6MMTYGvgb6\np5b3B75OLb8ztR2p87UX0AI4E3gghJCxm2pXxXQ3MDrG2BQ4nuT885qnMhVCOBi4CmgbY2wJZJBc\nu7zmqbQNJzk3iirNa9wQ4NIi+239WdpzDWfb82EM0DLGeBwwG7gBtn8tS13P7ic5N5sDF6a2he1f\nL78XA2wFE2NcGGN8P/X6G5Jf5A4GugOPpDZ7BDg39bo7MCIm8oF6IYQDgTOAMTHGr2KMX5OcrF7Q\ntEMhhEOAs4BhqfcB6AI8ndpk63Nv8zn5NHBaavvuwBMxxnUxxs+AOST/2ErbCCHsDZwKPAQQY1wf\nY1yO1zztHplAzRBCJlALWIjXPJWyGOM7wFdbLS6Va1xqXd0YY35MRm4dUeRY2sMVd+7FGF+PMW5M\nvc0HDkm93t61rB0wJ8b47xjjeuAJoPtOfkf8XgywFViqe1JrYAKwf4xxYWrVImD/1OuDgXlFdpuf\nWra95dKO3AVcCxSk3jcAlhe50BU9jwrPsdT6FantPfe0K44AlgAPh6Tr+rAQQm285qmMxRgXAH8B\nviAJriuAyXjN0+5RWte4g1Ovt14ulcQlwD9Tr3f13NvR74jfiwG2ggoh7AU8A+TEGFcWXZf6C5vz\nI6lUhRDOBr6MMU5Ody3ao2QCJwBDYoytgdX8tysd4DVPZSPV/bI7yR9RDgJqY6u90sBrnNIhhHAj\nya2Lj6e7lq0ZYCugEEJVkvD6eIzx2dTixaluIqSev0wtXwAcWmT3Q1LLtrdc2p5TgG4hhLkk3UO6\nkNybWC/VvQ62PI8Kz7HU+r2BZXjuadfMB+bHGCek3j9NEmi95qmsnQ58FmNcEmPcADxLch30mqfd\nobSucQv4bxfQosul7Qoh9APOBnqn/oACu37uLWP718vvxQBbwaT6kz8EzIwxDi6y6kVg84hzfYEX\niiy/ODVq3UnAilSXlNeAriGE+qm/MndNLZOKFWO8IcZ4SIyxEclN/G/FGHsDbwPnpTbb+tzbfE6e\nl9o+ppb3So3YeQTJgBITd9PXUAUTY1wEzAshNEktOg2Ygdc8lb0vgJNCCLVS//ZuPve85ml3KJVr\nXGrdyhDCSanz+OIix5K2EUI4k+R2sW4xxjVFVm3vWvYecHRqxOFqJL8jvpi6/m3vevn9xBh9VKAH\n0JGkG8lUYErq8SOSfuZvAp8AbwD7pLYPJCODfQpMIxlNcfOxLiG5AXsO8LN0fzcfFecBZAMvp14f\nmbqAzQGeAqqnltdIvZ+TWn9kkf1vTJ2THwM/TPf38VG+H0ArYFLquvc8UN9rno/d8QBuAWYB04FH\ngepe83yU9gMYRXKf9QaSXif9S/MaB7RNncOfAvcBId3f2Uf5eGzn3JtDck/r5pwxtMj2xV7LUllk\ndmrdjUWWF3u9/L6PkDq4JEmSJEnlml2IJUmSJEkVggFWkiRJklQhGGAlSZIkSRWCAVaSJEmSVCEY\nYCVJkiRJFYIBVpJU6YUQ9g8hjAwh/DuEMDmEkBdC6JFalx1CWBFCmBJCmBlCuDm1vF8I4b6tjpMb\nQmhbzPFzQwhfpOZZ3Lzs+RDCqrL+bt9FCKF1COGh1Ot+IYQYQji9yPpzU8vOS73PDSF8XORnNLDI\ntm+k5p2UJKnMGWAlSZVaKlQ+D7wTYzwyxtiGZKL1Q4psNi7G2IpkvsQ+IYQTvsNHLQdOSX1mPeDA\n71f5rgkhZO7C5v8L3FPk/TSSn8lmFwIfbrVP79TP6BTgj6kJ6yGZH/XyXSxXkqTvxAArSarsugDr\nY4xDNy+IMX4eY7x36w1jjKuByUDj7/A5T/DfEPhj4NmiK0MIvw4hvBdCmBpCuCW1rFEIYVYIYXgI\nYXYI4fEQwukhhH+FED4JIbRLbbdPqkV3agghP4RwXGr5b0MIj4YQ/gU8GkJ4J4TQqshnvhtCOH6r\nOuoAx8UYiwbUcUC7EELVEMJeqe8/ZTvfcy9gNbAp9f5FksArSVKZM8BKkiq7FsD7JdkwhNAAOAn4\n6Dt8zpvAqSGEDJIg+2SR43YFjgbaAa2ANiGEU1OrGwN/BZqmHj8FOgK/ImkpBbgF+CDGeFxq2Ygi\nn9scOD3GeCHwENAv9ZnHADW2CqqQtDJP32pZBN4AzgC6k4TSrT0eQpgKfAzcGmPcBBBj/BqonvrZ\nSZJUpgywkqQ9Sgjh/hDChyGE94os7hRC+AB4HfhDjPEjklBXnO0t3wS8SxJea8YY5xZZ1zX1+IAk\nTDclCbQAn8UYp8UYC0iC85sxxkjSrbdRapuOJF11iTG+BTQIIdRNrXsxxrg29fop4OwQQlXgEmB4\nMXUeCCwpZvnmFuRewKhi1vdOBejDgF+FEA4vsu5L4KBi9pEkqVTtyv0ykiRVRB8BPTe/iTFeEUJo\nCEwqss24GOPZW+23DNh6cKJ9gKU7+KwngOeA3261PAB3xBj/b4uFITQC1hVZVFDkfQEl+3d69eYX\nMcY1IYQxJK2oPwHaFLP9WqDG1gtjjBNDCMcCa2KMs4uMR7X1dktCCO8D7YHPU4trpI4rSVKZsgVW\nklTZvQXUCCH8T5FltUqw33vAKSGEAwBSow9XB+btYJ9xwB1s24L5GnBJ6v5SQggHhxD2K2H9m4/b\nO7VvNrA0xrhyO9sOIxmg6b1U996tzWT79/hez3+7LRcrhFALaA18mnofgAOAuTv8BpIklQJbYCVJ\nlVqMMYYQzgXuDCFcS9J9djVw3U72WxxC+AXwagihCrAKuDDV1Xe7nwX8pZjlr4cQmgF5qZbNVUAf\n/jsQ0s78Fvh76h7UNUDfHdQwOYSwEnh4O+tnhRD2DiHUiTF+s9W6f+6ghsdDCGtJQvzwGOPk1PI2\nQH6McWMJv4skSd9ZSP6tlSRJlUEI4SAgF2i6vbAdQrga+CbGOKwUPu9ukvtw3/y+x5IkaWfsQixJ\nUiURQrgYmADcuKOWYmAIW957+31MN7xKknYXW2AlSZIkSRWCLbCSJEmSpArBACtJkiRJqhAMsJIk\nSZKkCsEAK0mSJEmqEAywkiRJkqQK4f8DyKGdmgmiauAAAAAASUVORK5CYII=\n",
|
|
"text/plain": [
|
|
"<Figure size 1152x720 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {
|
|
"tags": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"id": "vU-2SHss55jw",
|
|
"colab_type": "text"
|
|
},
|
|
"source": [
|
|
"# 1 on 1 Comparisons\n",
|
|
"A few model to model comparisons, pairing models that are a little more fair than the original paper when you consider all of accuracy, rate, and memory efficiency."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"metadata": {
|
|
"id": "SKA-MF-yShDW",
|
|
"colab_type": "code",
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/",
|
|
"height": 187
|
|
},
|
|
"outputId": "83f55196-040a-4a2a-a49e-e6629c38ce83"
|
|
},
|
|
"source": [
|
|
"def compare_results(results, namea, nameb):\n",
|
|
" resa, resb = results[namea], results[nameb]\n",
|
|
" top1r = 100. * (resa['top1'] - resb['top1']) / resb['top1']\n",
|
|
" top5r = 100. * (resa['top5'] - resb['top5']) / resb['top5']\n",
|
|
" rater = 100. * (resa['rate'] - resb['rate']) / resb['rate']\n",
|
|
" memr = 100. * (resa['gpu_used'] - resb['gpu_used']) / resb['gpu_used']\n",
|
|
" print('{:22} vs {:28} top1: {:+4.2f}%, top5: {:+4.2f}%, rate: {:+4.2f}%, mem: {:+.2f}%'.format(\n",
|
|
" namea, nameb, top1r, top5r, rater, memr))\n",
|
|
" \n",
|
|
"#compare_results(results, 'efficientnet_b0-224', 'seresnext26_32x4d-224')\n",
|
|
"compare_results(results, 'efficientnet_b0-224', 'dpn68b-224')\n",
|
|
"compare_results(results, 'efficientnet_b1-240', 'resnet50-224')\n",
|
|
"compare_results(results, 'efficientnet_b1-240', 'resnet50-240-ttp')\n",
|
|
"compare_results(results, 'efficientnet_b2-260', 'gluon_seresnext50_32x4d-224')\n",
|
|
"compare_results(results, 'tf_efficientnet_b3-300', 'gluon_seresnext50_32x4d-224')\n",
|
|
"compare_results(results, 'tf_efficientnet_b3-300', 'gluon_seresnext101_32x4d-224')\n",
|
|
"compare_results(results, 'tf_efficientnet_b4-380', 'ig_resnext101_32x8d-224')\n",
|
|
"\n",
|
|
"print('\\nNote the cost of running with the SAME padding hack:')\n",
|
|
"compare_results(results, 'tf_efficientnet_b2-260', 'efficientnet_b2-260')"
|
|
],
|
|
"execution_count": 34,
|
|
"outputs": [
|
|
{
|
|
"output_type": "stream",
|
|
"text": [
|
|
"efficientnet_b0-224 vs dpn68b-224 top1: -1.55%, top5: -0.06%, rate: +6.82%, mem: +1.10%\n",
|
|
"efficientnet_b1-240 vs resnet50-224 top1: +1.11%, top5: +0.33%, rate: -4.94%, mem: +120.26%\n",
|
|
"efficientnet_b1-240 vs resnet50-240-ttp top1: +0.79%, top5: +0.29%, rate: -1.76%, mem: +61.71%\n",
|
|
"efficientnet_b2-260 vs gluon_seresnext50_32x4d-224 top1: -1.27%, top5: -0.14%, rate: -4.14%, mem: +139.04%\n",
|
|
"tf_efficientnet_b3-300 vs gluon_seresnext50_32x4d-224 top1: -0.22%, top5: +0.43%, rate: -20.81%, mem: +417.25%\n",
|
|
"tf_efficientnet_b3-300 vs gluon_seresnext101_32x4d-224 top1: -2.13%, top5: -0.24%, rate: -9.45%, mem: +376.19%\n",
|
|
"tf_efficientnet_b4-380 vs ig_resnext101_32x8d-224 top1: -3.37%, top5: -2.35%, rate: -17.10%, mem: +247.55%\n",
|
|
"\n",
|
|
"Note the cost of running with the SAME padding hack:\n",
|
|
"tf_efficientnet_b2-260 vs efficientnet_b2-260 top1: -0.59%, top5: -0.70%, rate: -1.02%, mem: +17.48%\n"
|
|
],
|
|
"name": "stdout"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"id": "aSibvBwp5-CX",
|
|
"colab_type": "text"
|
|
},
|
|
"source": [
|
|
"# How are we generalizing to ImageNet-V2?\n",
|
|
"\n",
|
|
"This is often an interesting comparison. The results for the IG ResNeXt are impressive, it's the lowest gap between ImageNet-1k and ImageNet-V2 validation scores that I've seen (http://people.csail.mit.edu/ludwigs/papers/imagenet.pdf)."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"metadata": {
|
|
"id": "aahwcXGnSOab",
|
|
"colab_type": "code",
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/",
|
|
"height": 442
|
|
},
|
|
"outputId": "7a33b7ad-619e-4479-e585-ee9068a3bc13"
|
|
},
|
|
"source": [
|
|
"print('Results by absolute accuracy gap between ImageNet-V2 Matched-Frequency and original ImageNet top-1:')\n",
|
|
"no_ttp_keys = [k for k in results.keys() if 'ttp' not in k]\n",
|
|
"gaps = {x: (results[x]['top1'] - orig_top1[results[x]['model_name']]) for x in no_ttp_keys}\n",
|
|
"sorted_keys = list(sorted(no_ttp_keys, key=lambda x: gaps[x], reverse=True))\n",
|
|
"for m in sorted_keys:\n",
|
|
" print(' Model: {:34} {:4.2f}%'.format(m, gaps[m]))\n",
|
|
"print()\n",
|
|
"\n",
|
|
"print('Results by relative accuracy gap between ImageNet-V2 Matched-Frequency and original ImageNet top-1:')\n",
|
|
"gaps = {x: 100 * (results[x]['top1'] - orig_top1[results[x]['model_name']]) / orig_top1[results[x]['model_name']] for x in no_ttp_keys}\n",
|
|
"sorted_keys = list(sorted(no_ttp_keys, key=lambda x: gaps[x], reverse=True))\n",
|
|
"for m in sorted_keys:\n",
|
|
" print(' Model: {:34} {:4.2f}%'.format(m, gaps[m]))"
|
|
],
|
|
"execution_count": 18,
|
|
"outputs": [
|
|
{
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Results by absolute accuracy gap between ImageNet-V2 Matched-Frequency and original ImageNet top-1:\n",
|
|
" Model: ig_resnext101_32x8d-224 -8.86%\n",
|
|
" Model: gluon_seresnext101_32x4d-224 -10.89%\n",
|
|
" Model: efficientnet_b1-240 -11.14%\n",
|
|
" Model: gluon_seresnext50_32x4d-224 -11.24%\n",
|
|
" Model: tf_efficientnet_b4-380 -11.26%\n",
|
|
" Model: resnet50-224 -11.68%\n",
|
|
" Model: dpn68b-224 -11.91%\n",
|
|
" Model: efficientnet_b2-260 -11.96%\n",
|
|
" Model: tf_efficientnet_b2-260 -12.21%\n",
|
|
" Model: efficientnet_b0-224 -12.33%\n",
|
|
" Model: tf_efficientnet_b3-300 -12.35%\n",
|
|
"\n",
|
|
"Results by relative accuracy gap between ImageNet-V2 Matched-Frequency and original ImageNet top-1:\n",
|
|
" Model: ig_resnext101_32x8d-224 -10.71%\n",
|
|
" Model: gluon_seresnext101_32x4d-224 -13.46%\n",
|
|
" Model: tf_efficientnet_b4-380 -13.64%\n",
|
|
" Model: gluon_seresnext50_32x4d-224 -14.07%\n",
|
|
" Model: efficientnet_b1-240 -14.16%\n",
|
|
" Model: resnet50-224 -14.88%\n",
|
|
" Model: efficientnet_b2-260 -14.99%\n",
|
|
" Model: tf_efficientnet_b3-300 -15.28%\n",
|
|
" Model: tf_efficientnet_b2-260 -15.33%\n",
|
|
" Model: dpn68b-224 -15.37%\n",
|
|
" Model: efficientnet_b0-224 -16.03%\n"
|
|
],
|
|
"name": "stdout"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|