From 2924b52e8a98552b51411267ffad353422f5c4c1 Mon Sep 17 00:00:00 2001 From: xfr Date: Thu, 29 Aug 2019 09:43:40 +0800 Subject: [PATCH] git rm some ipynb --- Sampler.ipynb | 304 --- generate_chips.ipynb => aug_chips.ipynb | 1566 +------------- eval.ipynb | 2552 ----------------------- pipeline.ipynb | 42 +- submit.ipynb | 543 ----- tools/demo.py | 32 +- vis.ipynb | 143 -- 7 files changed, 36 insertions(+), 5146 deletions(-) delete mode 100644 Sampler.ipynb rename generate_chips.ipynb => aug_chips.ipynb (69%) delete mode 100644 eval.ipynb delete mode 100644 submit.ipynb delete mode 100644 vis.ipynb diff --git a/Sampler.ipynb b/Sampler.ipynb deleted file mode 100644 index 398ecaa..0000000 --- a/Sampler.ipynb +++ /dev/null @@ -1,304 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "%load_ext autoreload\n", - "%autoreload 2\n", - "import mmcv\n", - "from mmcv import Config\n", - "from mmdet.datasets import build_dataset\n", - "from mmdet.datasets import build_dataloader" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "cfg = Config.fromfile(\"./configs/rscup/htc_libra.py\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "train_dataset = build_dataset(cfg.data.train)\n", - "mmcv.dump(train_dataset, \"dataset.pkl\")" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "15000\n" - ] - } - ], - "source": [ - "train_dataset = mmcv.load(\"dataset.pkl\")\n", - "data_loaders = [\n", - " build_dataloader(\n", - " train_dataset,\n", - " cfg.data.imgs_per_gpu,\n", - " cfg.data.workers_per_gpu,\n", - " dist=True)\n", - "]" - ] - }, - { - "cell_type": "code", - "execution_count": 49, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "ic| num_replicas: 4\n", - "ic| self.rank: 3\n", - "ic| self.num_replicas: 4\n" - ] - } - ], - "source": [ - "import sys\n", - "from functools import partial\n", - "from mmcv.runner import get_dist_info\n", - "from mmcv.parallel import collate\n", - "from torch.utils.data import DataLoader\n", - "sys.path.insert(0, \"/home/xfr/git_mm/mmdetection/mmdet/datasets/loader\")\n", - "from mmdet.datasets.loader.sampler import GroupSampler, DistributedGroupSampler, DistributedSampler\n", - "dataset = mmcv.load(\"dataset.pkl\")\n", - "num_gpus = 2\n", - "imgs_per_gpu = 6\n", - "num_workers=4\n", - "sampler = DistributedGroupSampler(dataset, imgs_per_gpu, 4, 3)\n", - "batch_size = num_gpus * imgs_per_gpu\n", - "data_loader = DataLoader(\n", - " dataset,\n", - " batch_size=batch_size,\n", - " sampler=sampler,\n", - " num_workers=num_workers,\n", - " collate_fn=partial(collate, samples_per_gpu=imgs_per_gpu),\n", - " pin_memory=False)" - ] - }, - { - "cell_type": "code", - "execution_count": 50, - "metadata": {}, - "outputs": [], - "source": [ - "from tqdm import tqdm_notebook as tqdm" - ] - }, - { - "cell_type": "code", - "execution_count": 51, - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "f825e7a0cef54cd4b52da3949878f3b4", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "HBox(children=(IntProgress(value=0, max=2500), HTML(value='')))" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "ic| self.num_replicas: 1\n", - "ic| self.rank: 0\n", - "ic| group_sizes: array([12483, 2517])\n", - "ic| num_samples: 15006\n", - "ic| self.num_replicas: 1\n", - "ic| total_size: 15006\n" - ] - }, - { - "ename": "KeyboardInterrupt", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0ma\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m20\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0;32mfor\u001b[0m \u001b[0mitem\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mtqdm\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata_loaders\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3\u001b[0m \u001b[0;31m#print(item[\"img\"].data[0].shape)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m6\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0mm\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mitem\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'gt_labels'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/.conda/envs/mmdet/lib/python3.6/site-packages/tqdm/_tqdm_notebook.py\u001b[0m in \u001b[0;36m__iter__\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 219\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__iter__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 220\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 221\u001b[0;31m \u001b[0;32mfor\u001b[0m \u001b[0mobj\u001b[0m \u001b[0;32min\u001b[0m \u001b[0msuper\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtqdm_notebook\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__iter__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 222\u001b[0m \u001b[0;31m# return super(tqdm...) will not catch exception\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 223\u001b[0m \u001b[0;32myield\u001b[0m \u001b[0mobj\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/.conda/envs/mmdet/lib/python3.6/site-packages/tqdm/_tqdm.py\u001b[0m in \u001b[0;36m__iter__\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 977\u001b[0m \"\"\", fp_write=getattr(self.fp, 'write', sys.stderr.write))\n\u001b[1;32m 978\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 979\u001b[0;31m \u001b[0;32mfor\u001b[0m \u001b[0mobj\u001b[0m \u001b[0;32min\u001b[0m \u001b[0miterable\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 980\u001b[0m \u001b[0;32myield\u001b[0m \u001b[0mobj\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 981\u001b[0m \u001b[0;31m# Update and possibly print the progressbar.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/.conda/envs/mmdet/lib/python3.6/site-packages/torch/utils/data/dataloader.py\u001b[0m in \u001b[0;36m__next__\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 574\u001b[0m \u001b[0;32mwhile\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 575\u001b[0m \u001b[0;32massert\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;32mnot\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshutdown\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbatches_outstanding\u001b[0m \u001b[0;34m>\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 576\u001b[0;31m \u001b[0midx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbatch\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_batch\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 577\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbatches_outstanding\u001b[0m \u001b[0;34m-=\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 578\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0midx\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrcvd_idx\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/.conda/envs/mmdet/lib/python3.6/site-packages/torch/utils/data/dataloader.py\u001b[0m in \u001b[0;36m_get_batch\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 551\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 552\u001b[0m \u001b[0;32mwhile\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 553\u001b[0;31m \u001b[0msuccess\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_try_get_batch\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 554\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0msuccess\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 555\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/.conda/envs/mmdet/lib/python3.6/site-packages/torch/utils/data/dataloader.py\u001b[0m in \u001b[0;36m_try_get_batch\u001b[0;34m(self, timeout)\u001b[0m\n\u001b[1;32m 509\u001b[0m \u001b[0;31m# (bool: whether successfully get data, any: data if successful else None)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 510\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 511\u001b[0;31m \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdata_queue\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtimeout\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mtimeout\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 512\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 513\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mException\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/.conda/envs/mmdet/lib/python3.6/multiprocessing/queues.py\u001b[0m in \u001b[0;36mget\u001b[0;34m(self, block, timeout)\u001b[0m\n\u001b[1;32m 102\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mblock\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 103\u001b[0m \u001b[0mtimeout\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdeadline\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0mtime\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmonotonic\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 104\u001b[0;31m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_poll\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtimeout\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 105\u001b[0m \u001b[0;32mraise\u001b[0m \u001b[0mEmpty\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 106\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_poll\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/.conda/envs/mmdet/lib/python3.6/multiprocessing/connection.py\u001b[0m in \u001b[0;36mpoll\u001b[0;34m(self, timeout)\u001b[0m\n\u001b[1;32m 255\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_check_closed\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 256\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_check_readable\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 257\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_poll\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtimeout\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 258\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 259\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__enter__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/.conda/envs/mmdet/lib/python3.6/multiprocessing/connection.py\u001b[0m in \u001b[0;36m_poll\u001b[0;34m(self, timeout)\u001b[0m\n\u001b[1;32m 412\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 413\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_poll\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtimeout\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 414\u001b[0;31m \u001b[0mr\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mwait\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtimeout\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 415\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mbool\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mr\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 416\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/.conda/envs/mmdet/lib/python3.6/multiprocessing/connection.py\u001b[0m in \u001b[0;36mwait\u001b[0;34m(object_list, timeout)\u001b[0m\n\u001b[1;32m 909\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 910\u001b[0m \u001b[0;32mwhile\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 911\u001b[0;31m \u001b[0mready\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mselector\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mselect\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtimeout\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 912\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mready\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 913\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfileobj\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mevents\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mready\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/.conda/envs/mmdet/lib/python3.6/selectors.py\u001b[0m in \u001b[0;36mselect\u001b[0;34m(self, timeout)\u001b[0m\n\u001b[1;32m 374\u001b[0m \u001b[0mready\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 375\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 376\u001b[0;31m \u001b[0mfd_event_list\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_poll\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpoll\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtimeout\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 377\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mInterruptedError\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 378\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mready\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mKeyboardInterrupt\u001b[0m: " - ] - } - ], - "source": [ - "a = [0 for i in range(20)]\n", - "for item in tqdm(data_loaders[0]):\n", - " #print(item[\"img\"].data[0].shape)\n", - " for i in range(6): \n", - " m = item['gt_labels'].data[0][i]\n", - " for x in m:\n", - " a[x] += 1\n", - "print(a)" - ] - }, - { - "cell_type": "code", - "execution_count": 52, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "[autoreload of mmdet.datasets.custom failed: Traceback (most recent call last):\n", - " File \"/home/xfr/.conda/envs/mmdet/lib/python3.6/site-packages/IPython/extensions/autoreload.py\", line 244, in check\n", - " superreload(m, reload, self.old_objects)\n", - " File \"/home/xfr/.conda/envs/mmdet/lib/python3.6/site-packages/IPython/extensions/autoreload.py\", line 378, in superreload\n", - " module = reload(module)\n", - " File \"/home/xfr/.conda/envs/mmdet/lib/python3.6/imp.py\", line 315, in reload\n", - " return importlib.reload(module)\n", - " File \"/home/xfr/.conda/envs/mmdet/lib/python3.6/importlib/__init__.py\", line 166, in reload\n", - " _bootstrap._exec(spec, module)\n", - " File \"\", line 618, in _exec\n", - " File \"\", line 678, in exec_module\n", - " File \"\", line 219, in _call_with_frames_removed\n", - " File \"/home/xfr/git_mm/mmdetection/mmdet/datasets/custom.py\", line 16, in \n", - " class CustomDataset(Dataset):\n", - " File \"/home/xfr/git_mm/mmdetection/mmdet/utils/registry.py\", line 44, in register_module\n", - " self._register_module(cls)\n", - " File \"/home/xfr/git_mm/mmdetection/mmdet/utils/registry.py\", line 40, in _register_module\n", - " module_name, self.name))\n", - "KeyError: 'CustomDataset is already registered in dataset'\n", - "]\n" - ] - } - ], - "source": [ - "a= mmcv.load(\"./data/classes_indices.pkl\")" - ] - }, - { - "cell_type": "code", - "execution_count": 59, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "47506\n", - "47453\n", - "47506\n", - "47492\n", - "47503\n", - "47498\n", - "47321\n", - "47494\n", - "47504\n", - "47504\n", - "47495\n", - "47506\n", - "47498\n", - "47501\n", - "47485\n", - "47505\n", - "47506\n", - "42358\n" - ] - }, - { - "ename": "IndexError", - "evalue": "list index out of range", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mIndexError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mnumpy\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m19\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 3\u001b[0;31m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmax\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;31mIndexError\u001b[0m: list index out of range" - ] - } - ], - "source": [ - "import numpy as np\n", - "for i in range(19):\n", - " print(np.max(a[i]))" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "ename": "NameError", - "evalue": "name 'train_dataset' is not defined", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mtrain_dataset\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mclass_indices\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;31mNameError\u001b[0m: name 'train_dataset' is not defined" - ] - } - ], - "source": [ - "train_dataset.class_indices" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "mm", - "language": "python", - "name": "mmdet" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.6.8" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/generate_chips.ipynb b/aug_chips.ipynb similarity index 69% rename from generate_chips.ipynb rename to aug_chips.ipynb index 8a10048..4382672 100644 --- a/generate_chips.ipynb +++ b/aug_chips.ipynb @@ -684,180 +684,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### generate train data" - ] - }, - { - "cell_type": "code", - "execution_count": 72, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[{'id': 0, 'name': 'tennis-court', 'supercategory': 'object'}, {'id': 1, 'name': 'container-crane', 'supercategory': 'object'}, {'id': 2, 'name': 'storage-tank', 'supercategory': 'object'}, {'id': 3, 'name': 'baseball-diamond', 'supercategory': 'object'}, {'id': 4, 'name': 'plane', 'supercategory': 'object'}, {'id': 5, 'name': 'ground-track-field', 'supercategory': 'object'}, {'id': 6, 'name': 'helicopter', 'supercategory': 'object'}, {'id': 7, 'name': 'airport', 'supercategory': 'object'}, {'id': 8, 'name': 'harbor', 'supercategory': 'object'}, {'id': 9, 'name': 'ship', 'supercategory': 'object'}, {'id': 10, 'name': 'large-vehicle', 'supercategory': 'object'}, {'id': 11, 'name': 'swimming-pool', 'supercategory': 'object'}, {'id': 12, 'name': 'soccer-ball-field', 'supercategory': 'object'}, {'id': 13, 'name': 'roundabout', 'supercategory': 'object'}, {'id': 14, 'name': 'basketball-court', 'supercategory': 'object'}, {'id': 15, 'name': 'bridge', 'supercategory': 'object'}, {'id': 16, 'name': 'small-vehicle', 'supercategory': 'object'}, {'id': 17, 'name': 'helipad', 'supercategory': 'object'}]\n" - ] - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "038931956d0f46cba1773cf594cef573", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "HBox(children=(IntProgress(value=0, max=1830), HTML(value='')))" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "totol number 45792\n" - ] - } - ], - "source": [ - "datadir = \"./data/train/images\"\n", - "labeldir = \"./data/train/labelTxt\"\n", - "scale_generate(datadir, labeldir, \"train\", [1, 0.5])" - ] - }, - { - "cell_type": "code", - "execution_count": 73, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "loading annotations into memory...\n", - "Done (t=4.82s)\n", - "creating index...\n", - "index created!\n" - ] - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "43b8a69c632d49608a015578d15fe27c", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "HBox(children=(IntProgress(value=0, max=1830), HTML(value='')))" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "totol number 47507\n" - ] - } - ], - "source": [ - "datadir = \"./data/train/images\"\n", - "labeldir = \"./data/train/labelTxt\"\n", - "increment_train_generate(datadir, labeldir, \"train\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### generate val data" - ] - }, - { - "cell_type": "code", - "execution_count": 66, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[{'id': 0, 'name': 'tennis-court', 'supercategory': 'object'}, {'id': 1, 'name': 'container-crane', 'supercategory': 'object'}, {'id': 2, 'name': 'storage-tank', 'supercategory': 'object'}, {'id': 3, 'name': 'baseball-diamond', 'supercategory': 'object'}, {'id': 4, 'name': 'plane', 'supercategory': 'object'}, {'id': 5, 'name': 'ground-track-field', 'supercategory': 'object'}, {'id': 6, 'name': 'helicopter', 'supercategory': 'object'}, {'id': 7, 'name': 'airport', 'supercategory': 'object'}, {'id': 8, 'name': 'harbor', 'supercategory': 'object'}, {'id': 9, 'name': 'ship', 'supercategory': 'object'}, {'id': 10, 'name': 'large-vehicle', 'supercategory': 'object'}, {'id': 11, 'name': 'swimming-pool', 'supercategory': 'object'}, {'id': 12, 'name': 'soccer-ball-field', 'supercategory': 'object'}, {'id': 13, 'name': 'roundabout', 'supercategory': 'object'}, {'id': 14, 'name': 'basketball-court', 'supercategory': 'object'}, {'id': 15, 'name': 'bridge', 'supercategory': 'object'}, {'id': 16, 'name': 'small-vehicle', 'supercategory': 'object'}, {'id': 17, 'name': 'helipad', 'supercategory': 'object'}, {'id': 18, 'name': 'noise', 'supercategory': 'object'}]\n" - ] - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "f1c982851be74ad5b1395315f8380653", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "HBox(children=(IntProgress(value=0, max=593), HTML(value='')))" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "totol number 29057\n" - ] - } - ], - "source": [ - "# datadir = \"./data/val/images\"\n", - "# labeldir = \"./data/val/labelTxt\"\n", - "# scale_generate(datadir, labeldir, \"val\", [1])\n", - "datadir = \"./data/val/images\"\n", - "scale_generate_test(datadir, \"val\", [1])" - ] - }, - { - "cell_type": "code", - "execution_count": 68, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "loading annotations into memory...\n", - "Done (t=0.11s)\n", - "creating index...\n", - "index created!\n" - ] - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "724cde03bd134c6a8ee394e2babe1aa8", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "HBox(children=(IntProgress(value=0, max=593), HTML(value='')))" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "totol number 29650\n" - ] - } - ], - "source": [ - "increment_generate(datadir, \"val\")" + "### generate no patch val data" ] }, { @@ -1485,240 +1312,6 @@ "generate_nopatch(datadir, labeldir, \"val\")" ] }, - { - "cell_type": "code", - "execution_count": 136, - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "28a63863f47b400ab84a57ca5c601e27", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "HBox(children=(IntProgress(value=0, max=1830), HTML(value='')))" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n" - ] - } - ], - "source": [ - "datadir = \"./data/train/images\"\n", - "labeldir = \"./data/train/labelTxt\"\n", - "generate_nopatch(datadir, labeldir, \"train\")" - ] - }, - { - "cell_type": "code", - "execution_count": 287, - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "46a9d1b98fdc45d587d97d7a182b399b", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "HBox(children=(IntProgress(value=0, max=1830), HTML(value='')))" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "datadir = \"./data/train/images\"\n", - "labeldir = \"./data/train/labelTxt\"\n", - "generate_nopatch(datadir, labeldir, \"train\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### generate test data" - ] - }, - { - "cell_type": "code", - "execution_count": 49, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[{'id': 0, 'name': 'tennis-court', 'supercategory': 'object'}, {'id': 1, 'name': 'container-crane', 'supercategory': 'object'}, {'id': 2, 'name': 'storage-tank', 'supercategory': 'object'}, {'id': 3, 'name': 'baseball-diamond', 'supercategory': 'object'}, {'id': 4, 'name': 'plane', 'supercategory': 'object'}, {'id': 5, 'name': 'ground-track-field', 'supercategory': 'object'}, {'id': 6, 'name': 'helicopter', 'supercategory': 'object'}, {'id': 7, 'name': 'airport', 'supercategory': 'object'}, {'id': 8, 'name': 'harbor', 'supercategory': 'object'}, {'id': 9, 'name': 'ship', 'supercategory': 'object'}, {'id': 10, 'name': 'large-vehicle', 'supercategory': 'object'}, {'id': 11, 'name': 'swimming-pool', 'supercategory': 'object'}, {'id': 12, 'name': 'soccer-ball-field', 'supercategory': 'object'}, {'id': 13, 'name': 'roundabout', 'supercategory': 'object'}, {'id': 14, 'name': 'basketball-court', 'supercategory': 'object'}, {'id': 15, 'name': 'bridge', 'supercategory': 'object'}, {'id': 16, 'name': 'small-vehicle', 'supercategory': 'object'}, {'id': 17, 'name': 'helipad', 'supercategory': 'object'}, {'id': 18, 'name': 'noise', 'supercategory': 'object'}]\n" - ] - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "2b4dc09238744ef388ddf68ae4edf8fd", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "HBox(children=(IntProgress(value=0, max=780), HTML(value='')))" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "totol number 63607\n" - ] - } - ], - "source": [ - "datadir = \"./data/test/images\"\n", - "scale_generate_test(datadir, \"test\", [1, 0.5])" - ] - }, - { - "cell_type": "code", - "execution_count": 50, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "loading annotations into memory...\n", - "Done (t=0.19s)\n", - "creating index...\n", - "index created!\n" - ] - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "91f92946cf804106b66132de463d12b5", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "HBox(children=(IntProgress(value=0, max=780), HTML(value='')))" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "totol number 64387\n" - ] - } - ], - "source": [ - "datadir = \"./data/test/images\"\n", - "increment_generate(datadir, \"test\")" - ] - }, - { - "cell_type": "code", - "execution_count": 52, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "loading annotations into memory...\n", - "Done (t=5.41s)\n", - "creating index...\n", - "index created!\n" - ] - } - ], - "source": [ - "import sys\n", - "sys.path.append('D:\\API\\cocoapi\\PythonAPI') # 你下载的 cocoapi 所在路径\n", - "import skimage.io as io\n", - "from pycocotools.coco import COCO # 载入 cocoz\n", - "%matplotlib inline\n", - "coco=COCO(\"./rscup/annotation/annos_rscup_train.json\")" - ] - }, - { - "cell_type": "code", - "execution_count": 53, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[17]\n", - "{'license': 1, 'file_name': 'P5593_1_0.0_832.0_0part4.jpg', 'coco_url': 'xxx', 'height': 511.0, 'width': 511.0, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 26672}\n", - "7\n" - ] - }, - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 53, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAQYAAAD8CAYAAACVSwr3AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4xLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvDW2N/gAAIABJREFUeJzsnXeYHWXZ/z/TT9+zvSbZ9JCEhNAREGkhSBUQC+ir8NIVUSwoYscCAqKogCAKSO+9CoJAAgQSQkkvm8323dPb1N8fZ585swvv+5O/fvldV57r2mt358yZeeaZudv3/t73SJ7nsWvsGrvGrhEc8v/rCewau8ausfONXYph19g1do0PjV2KYdfYNXaND41dimHX2DV2jQ+NXYph19g1do0PjV2KYdfYNXaND41dimHX2DV2jQ+NXYph19g1do0PjV2KYdfYNXaNDw31//UEAI466QhPkiQABBPT8zz/b1mWEZ8DSJKE53n+b7FNlqt6znVdLMvC8zxUVcXzPEKhEJ7nYVkWtm2jKAqqqqKqKsViEdd1MQzDP68sy8iyjGmaKIrin980TSKRCI7jYNs2qqpiWRaSJKFpGgCO42CaJtFolEql4s/VdV1c10VRFGRZxnVd/9rE+cTnjuP4x/I8D0VR/GtVVdX/TFEUACqVCq7rkkgkyGQyhMNhFEXBtu3qPKXqsTVNw3Ec/1ody8bx3Alr7XmeP1dVVbG92jwdx/HnqWkakiT51y+uUfzWNM1fS7Gu4rPJYwID16uuBZLrn09CQZNk3nrhKc47/VTSmQIzZsyimBshHI/x3Ev/Yumyk7jq6hv5r9P/i1IxTaVioWkarmvjeg6JaATPHT8mHpKkIXtg2yblSpG6RD2JRJK+0e2kc1lmzZnOjDndaArkcgXqE/X09w/Ss2Ur2UyGRYsWoKoqmVyOhmQjRljHMAyU8edAM0IYehRPcbAtl2wqS3trG/lslkqpSMUskRodI5FIUi6UCRs6xXyavp4+pk2ZgmmajGUzdM3opnlqJxXLxLFsXMtmpG+AaFM9kq6CIqPKCtFIBKtcIRSLElZDWJbF5s2bKedzmKUi53z/WulDC/8/jJ3CYwgK/eTt4oGcTN2e/B0h9EGFIB5MgEKhgG3bAITDYWRZxnEc8vk8oVCIRCIB4H9HfC8cDqPrOoqioCgK9fX1lMtlZFlG0zRfyUiSRKVS8T8Lh8MUCgVUVUVRFDRNQ1EUdF335y4UmZh/qVTy5yiuQ1xL8Hpt2/YViGmamKaJqqrouk6pVCIajfrrIeat6zq6rvvKSMzV8Vx/joqiYFnWBOUlBF6subgX4tyTlVvwfEGlIBSfUHTB6/aNgeSCJIHs4Xr2+GcO4OJJMpKmE2to4IFHHiaerEMP6zQ0JInHIixZsgTd0PA8h0Ihh+XYREMKmuzgWCayB+VihVKpRKVUrq5bqVi9VxGDhoYkiurR2tZIR1sHc2fNQZFlrGKZkG4QM8KsX7sWu2JywAEH0NLS4ivvjrZ26uridLS14zkujfX1aLKG54CuGhQLZQrZHJqmMDQ8wMjIENu2baNUrDB9xiyKJYuG5jaSze20T5vFvp88mGhjI2+seY+65lbq65t57N6HyPQOE5UNOts6mb1gAS1trSSTSWKRKHgejll9ZsSTUqlUqkbKsalY5n8gibWxUyiG4BAPkPgRD+P/pDyCQ+wTtLKapmEYBuFw2N9HWEJVVTEMA03TyOfzEyydsLamaVIul3Fdt6rBx8bQdR3TNKlUKr5XIRSFruu+xxAOh31BN00Tx3H8805Weo7jEIlE/PmHQiEMw8AwDN8qC4sbtNRCKQWPI84vSRLlclUIoKpshKCqqkooFKp6BONzdF0XXdcBfMUAVQ9F/B30HIQXE7wO4WkEFYKYk7gnQYUovucrCMkFyUWSvPF5aLguPHnvYzx0xwPo0QQnnnwK6WwKVYVIJESlUmJGdzfZdIoNfcP0D+wgHA4jSQ6yDKqsYGgGuBDSw8Tjcerr6ohEIriuTbGYR1JBNRSyhQwD/X3InseUtg7MYonM6Bi5dIrGZBJNlenbscO/p8lkkkgkTEOynv7+PgYG+tmwYUP1+ShbDA0NU8pXSCabCIfD5PNZFEWiVCkTiyX4YMNGFD2MGoqTbO7AU0MYsSSJ5lZmL1hAU3sH997/ICcfcyJX/ezXGLKOZ3ukcnkqlkOxUEaWJKLRKLquI8sy+XyeXC6HJEm0d7QSjYb9Z+s/HTtFKBEcQWsSfGj+0yEETlhMVVVxx91HIbTiAfY8D13XsSzL/x0KhfywQgifcJ0Bfz8hUOJvWZaxbdsX0upDkCccDvtKQXgVQumJeciy7Ic0kUjE319YeMdx0DRtwneFMopGoxQKhQlhhhBwEep4noflOrgS2J6LpmuENJ1CoeB7B2Jff3/L8s8r7kswfBPrLK4L8K9frJUIW0KhEKVS6SO9vwn315OQJBnZA8mrHluVVBwHlp18LE/d/xir397I5447n3xuM9n0KM0zuimYZSKRCO+/9BoAt9z3MD/7ztcpeipW2SIajuNYNoqiYZUrRBIRQiGduoY6SqUSul5HoZghnoiwavVypnVNY96cbmQFOlqTjKVGqG9pYnBwEEVRyOcL40q4GjYVCgVGUyliiQRqKIIejjM4mkZSdEZHMtx99720t7dy9LLDCIVUXBVCkTreWv0+5bLJrbddS119M5WySUtbHYcf/im2bt7IAZ/Yl3vuv4/TPncqpVKJEz5zIj/8+c+ZvXABjzz5JK5jcustf0VBolwuIoVDSKpCRAthlsqEIzH0iE47XQzu6P1YcrhTKIYgPiAeLsCPVycPIdTB2F882CImFUO4ewILEJ8La1YqlSaED5ZlAZDL5fzvBQXZ8zw/Pndd1w8dTNP0hUi46slkEtM0fQ9DeAqO4/jXJuYvlJO4LhHmBAVd0zRfGIU3IrwBsYbiuELZ2LaNYRj+OiiKQrlcxvM8KrZFWDcAxmNxd8Kai22OWxV+MRdh9W3bnoCVhEIhbNv219E0TUKh0IcUR/C+B5WEgoLkSuCB5HmongIeKJ4Mbm2/Rx59nN2729i0cT31Tc20d06jUCwxbdoUnrv/L9z/wGPIylQcVyYUiWEYISpOHkNXKebzOJ7NWCZF2K6wfv16uqd30N7egmPb7LPv3kzp6KRUKuNZLp7sIqsq2XyRto4u1m3czOhYlquuuZkfXPo1JM0grOiU7BzRWJKR0QxPPvM8773/AfvteyCuJ1MsWORzFVxP4+VX3qC3t5eN6zYy0J9mypQOuqfPRZZVstksxUKZf/3rZVKjw2zesoEvf+E0/viH6zjvrLM58oTjOfCE48mXimzbMcRbK1dQqtjYZoloXXhcKdtYFoRCIRzHoVKxUHQNT1I+lkzuFKGE53m+az75wfmofcUDLARdhAbCkgmFIeJdVVUnCJCmaUQiET+MEHF1NBqdEGIIkE/MLRj/i/gtFov5AKDAOMS8SqUSlUoFy7KIxWLYtu0rpsn4giRJvqAL4RJCJRQG1JSiuO5SqTQBvLRt2/d6AB/TCHoRsixTKBRIJBLYXg2oFd8XSkQIvGEY/lzEtYrjBBWS8GKEUhLKTChtcT/EMYLegiRJuJLLEw88xeMPPsWjDz1VVZzj+kAKKJDlb2/jLw+uoLt7KuFogv8++2IymRw/+M0tHHHyWRxz7DIMTSWsyVz+uz9w6W+uxHKy/ODq6/jFjbfzz5dfRA9pzF+wgObWJla+9RZGOESpUqSuLk7fYB8OLoVSmXQqh+PK2K7C4HAa05LRjTpa2xqZN28PCgUHWY9yw/V/5eJvXcIH6zYTjSSwLRjoH+aVV1ZQKltkskWee/7f3HnnQ7z11ruMpgscftSRLNn7ACqmSyabZzQ1RigU4q031jB3zm68/94WFFnm9NO/TP9Yir5clky6wGdP+BKyrXLIgYdx+eW/YkvPdkKhEKZZrv4uVUNfy3WQFQ0JhVmzd/tYMintDP0Yjj5lqScEXoB5Qrg/an6TXdGgu+15nv9bKAuoAjHimLquU6lUACa40UFgTcxFhBTC4ovjCasujiu2CYEUgitwhWg06uMYwexF8FqCXoQ4jgAaw+GwPzfxXU3TfCwhiAGI+D8YHjiuC4GsgG3bfqji2c4Eb0soXnE8V6phP8E5B8M2sa/wuIRiC4fDVCoVX+EFMxfPPPgcAEs/cwSSJPH0A89y1EmHIQMyEo8/8PxHPi+7L5rC9876Aqd//QoAzj3tGI4+6kgKhRxfPO8yAF56/A4euuduiqUs19/zAgC3/v4HPPLok9z37NsAzGhWWLJkCS2tSfZasohSsUhY1TEdm+7uGXiextDQEIVSkVSuSCwap1JxuPOuB5g3byE33PBnTv3cSbzzzmouu/T77Nixg1BIp7G5FdN0aG3r4De/vgojFMc0TYaGBmhpbeJ73/sew8PDlMtl8kWbm266iUgkxLlnn4HnlpAlaKir5/d/uIrTTj6Vxvo6fn7ttVQcl8P3P5ShrX1kyyXUiMylP/oBz/7zCVrbksyeNYPGxgbs8WyMrOl4yMiyyvlnncdb64b/46zEThFKCOEWFkk8gFBDwoEJ7rwY4oE1DMO36JVKxXejBU4Q9CiE+x8ENoWlFN6FoiiEQiFyuRye5xGLxSaAZGL/oPIql8soiuKHESLT4HnehJSo8AiCSiAYriiKgmEYWFb1BgfBxmAIJdKEYs6e5xEOh32FJOaVy+WqHsv4fMX5hHITayPCLeE9BEMLVZExx9cXmKC4gvcxiEGUSiU/bBFZIse0UJCwXZcjTzycZx963t8f4OkH/smnTzqCSqEy4Rk59KhP8sLTLwEQS9Txm+tuAqqK4djjlpKsb2bdqxv9/d95/RUO/MRe5PMZrr9nfM6myeGHfRJZ24d7nniDa39/FevWfYBZMtm8sYdELErXvCns6Otny9atvPrKGyzeYz9ee/1t1qx9D1WViSaaiTU08dxLL3LF1Vfwve9/hyefeISZc6cSiWq8+cbbSIpBXbIeIxwhFE6QzxaIROM0t05FDxs8/vRzrF69kva2Nl5fuRrJ82hra0JVVV5+6U323WcJsiZx9tln09naTCgUQnE1prVPYdGee9Gy9HCy+Tz33fcAZ5xxJqpu87trf83zzz9Pb28fP/3RZZRKJUzTQtbDuBb87Ke/+lgyuVMoBiFg4idohaAWUgQtlfg/iB0EU3tBToM4nojvBW5QKpUmeArClRZoe7FYRNd1VFX1MxMi+xD0DISyiUQiKIpCXV0dxWLRn0elUkHTNJLJJMViccLcgu454J9bKBnheYgsh9hXpB+F8hHcCvEdocCEcIu0rFAC4jPDMPBsx18bsRbC2xAKwrZtFFWZcA/EekMttAiuXzBbItbK9sazPm7NeDmui6LWHsUnHqh6EscefSRGOEKpVGJb76j/eSTSwPq+9/z/L7nkEs4+63w8p8aPMIwoW7ZsobW1yd9WruRpa+/k5BOP5p4n4LgvXMQl55+IoUdobm6uhrLI1CfryGQyrFnzHhu3DBGNNlGf7EJWwJEgk80xf+ECVq1ZxbcuvoBUqp9iKc0vfvEz9t3nYIxQEzfccCvxRJJSyULRDHIjw/z22mu4447bOfaEY1nx5go6pkznyIYOdF1FUyR2DPSzfuMGjjjiU4ym0gz1bWPbpg1Mnz6dX/761/zyN1dx2+23M3+3uXz6mKV84sB9QaoQSxi0t7fz+c9/nubmZjJjmXHMy8CVPCpWhbq66H8sj7CTKIZg2ksI3P8GUgXz6sLFB3whCAJtwe+KB1UITjAtGcQmBOYQVChQBXTECFruYOZDeAwiZCiXyxMURDBMEN8LCpE4trge8ZkA9kT8Lo4hsiZB5Qj4CqxSqfhgqfCMJntcil7NHshe7XoF9iJSog4eXsWe4NmI80+4JyjA+PW4Ek8++PRH3vOjTjrS/84/H3nhI/d57MlnP3L788+8NOH/d7eWuPDSifsMDAyAZLJ122Z/WyadIzX6HrFYLXXX3NSALFXvUyQcY2wsTdhQSSaTnHDiSbz40ttooQRmIYdhhJFlj3x6mPZYC5u3rWdHX5r5C/fhoXtv4zvfvoTNW/u46/Z7MU2bolxi6ozZ9A72c8YZZ/Gr3/yCp55+DNOscPIppzKwY4TXXn2FPfZYSDo1yN13vcZvr/gFmqETioaIRlSakknMUoVypUgqNUZ3dzfHHHs8l176bYrFArfe9lcu+f53OO+8C/j5z39avSgHZFnFdW1kVSEUlpHdjwcn7hTgY9BSBcOG4JjsLYjPhXAKlzaIT4gcvhCG4PEFGCZAyaBi0jSNaDTq/10ul4nFYn4WIkhU8jzPD11EOlSAoUErL1KjwRAkOK+gay6UjZiTiP/FcYLZCFmWKRaL/veC5xMZBIFpiDURSk2kRsX3FV3z10ecTwsZSKoyAbcRYUgwk6QoCniBdKQDjl29Z8tOWMayE5dy+HGHB246lAtl/99ocmKefWrX1P/xeWnp6Jrwf0L5cOgcT+gkk3HqGur8baWijetIfP1nfwXgjj98G8cuoyjyhBCqWCwxPDTC3LlzsR0Ty7FRdAVkj9GxNFu39/LGyrf54Q9/zux5i9mydZDhwQJvvvUey5evYOHus/nC509k6dJPkc1m8TyPyy+/nJUr3yASCdPa2sovf3E5nZ1TKBeK9G/vxbFskvEEVsVkoL+P1OgImVyW7dt7KRQKTJ06hXm7zSIaCzM0PMBtt9+B5Xg89sTjHHjQwRz8ycPQjTCW7aIaei3NjEMkFsbyKh9ao/9t7BQegxDIyanA4AMuBErE38IKC4UQTNUJS/lROXgxyuWy/z1hgYU1F0ooGo36FjOXy/kZDhGC+PF3gKIM+F4DgGEYvtdQqVR8ApHYVzyMggQUBOeC8xdzN00Tw6imGCuViq+UhLCm02kfnwiulVBEQsBLpZJ/vlgs5vMMVEMfz7iMg5WuNMGLCFK1xTmriLiJphrV63ZdQkaEd1ZVQb6nHn4KgMOPO5Klxx5OqVRizaotKON2ae7cOaxbW4KAfPf09tT+8ST89AQwtGMHUNuWdbwP7XPRL26qbgP4UVUR/OSPd0947r74tav+hycyMC4AWM9ZZ5/DZ089lb332ZPRVIbR1BhLFu+B4rk0NbcyPFIknU2TqGukUkyx6u3XmTtnPmFD4+wLvsNJJ52I59rouooigyTJvPn6cg45+CBeeP5ZWtua6GjroLm5mbXrPmDBgt2w7AoVy6a5IUohl6EuGeOpJ59laKCfuXNn09HRyrnnnsubb77J888/A8jEYjEc28aTJWzPRfU88vn8//06J42dQjFATbAn8+hFzCzLsh9TB4HJIBgo8vWCHCQAuclKRIQNwroLRSCENOjWC2sYFIrgsYQXILwEEYKI/QDf+otjBbMgAiMJcjLEnIOcAvG3qPkQaxNMuSqK4vMbVFUlEon4HoLIxIg1EulHkfK0bdtXfmLuk700EbqJNKRYa9d10bXQOH6jMzI4RNiwsMoOTU2tGGGdHdu38/yjtdAg3hAHp7o+69ZuAKChrp2xTD8AdbEmPMsmpOkMjQt8VIqACu0zZ7Jx80b2WTSXCy88m7vuvId1U+oR0ONt112CrioU//AtDF3ii+Pbf3zu52jvaqGxKUa+kCH854uQVZ2tW/ox9JjvceUzWRpbGmlq7WDlO5v496tv8ZcXb+B7my/Btsu4nsnate8zf/48wprOkr33Ymr3NA6ZcSjb+7fT0VDHP265BcVVeWf12/z32V+tPrvYyLJGpVLGNsu0t7dQF2tkn/0OoFwuM3P6VPoHUli2x2gqTSQeoVTIEQ5F2bx5Pad98WSiIY1PHvwp/vGP27jp5uvp6+tl5szprFgRY9q0aWzv3UI0GsWxbDxPwrTG8Sbnw/Up/9vYKRSDsDzCPQ4qiCBwFbRSQRAtGMOL74h0XlDhBGNzIaQiPhfYgwAWLcuiXC5PID8FQUJh5YULH8ykWJblZwdGRkZ8XoFQBkFBEwIdVFpiiLkE8Q9xfeK74lpc1/UzH0IpAr6HIs4TCoX89KHw0OzxeYtjT177IIgYiUQmgJoidAvyM5KJJH19A7i2Qyo1TGNjC3Pmz6d7xjSeeezJ8WNLGONzE0MKAJK2aaK4kK6k/W0PPPAPiuUiruJx8qlw+NLDGBoaoKuri8efXwHA9df8mEw6T7IugedKvmcI0DWlja09m3GVJtqaW/A8j0wuT3NrC1s39TBt2nSG+gdI1icwrQotLS3Mn29w590P+2spYzBjehtTp86uYj6SwuDwMK8u/ze33XU78XicMDIRVWfmzNm4uFiODbZENjtGPBHDk0APGVxy6SVcf90tNDa3kEml6entZ3C0n0M+tT8VM4+hh6nIJbZs2UI4ruPYJueddw6rVq7i3ffWsH79WqZM6SISCbN9+3b+8Y/bOP6EY0ilM+iahiwrKLpR5ZdoH0/UdwqMISi4uq4TiUTQdd0vdhKCoWkaoVDoQ/z7IEAnhF3k6EUcHw6HKZfLfnyu6zrxeNwXasEHEICbwBeE1fe8WmWmIDuJ4iph+UXaNEiaqnL2JZ9KLQQWmJAqFGGTAEWD6dcgjRtq9R5BxQc1Ky88BxFGiOyD4NFXKhWi0SjxeLxK7IpE/HRikHzkuC6uWF/bRbJdsBxwXHRJIawbGKrme0OVSrVIyfZMhoeHUZUqWDs6OsTWrT1YlZrVisfj5LKlCc+BE1BQXzz9RK770xVc/8ff+NtWr3qD004/Hc+truGvf/tnrvvjDSzZa29/n/sfeZJ/v7GGQskFFM646Dr/s0R9hFAoRESrJ5Up0j84RmdHN2bJRterClMJqciyRzSskUqlaG1tZda8uQB0drQRrwshuzaGAorsYjoWre0tvLHyHQ49bCm7LdyDTC7Poj0Ws+a9dznkkIN46J67UPDo7Rsim8lRyOVJj6WYO28ey1e8TLGYJ5Gso29wB089+zRls8S27T0gezS0NDCUSZFsqGdkcIAtW9fT1FbPH373G9rb25AUmb6+PhYvWkhPTx+RcD3xaAJF1lA1DatSxjYrE5ij/8nYKTyGYLpSxL5BtzwI0gkUPmhZhWUT1ltYcsAXsFQqha7rEzILIvYXrnbQo5icUpwMXIq5BL0T4VYHvw81zCEYRgQJVMFMghB0YYEnk44+KoMx2RMRSlMM4XmI6ktVVRkbG/OxiGCNyAROSMUEZ7yWQ1bA81Ck6pxM16oBwaqCYajjHoxDqWIzNiDSi+PYiOTxwrP4cX8/TMAEANKFIR9n+Mtfb+UvN0/EDb7701/y7CPz+NNNfwXO4J7bbuLUL2U590KYO70Jx5NY816B0z//OUxHJqGFOPfUQ6iLx4iEwgwONDBt2nQ0TaFUconoMdKjafLZLLFYjFAoxLTuLkbH+knn0rR2eQyP7OC15f8G4Ma//Ikzv3oGrudgmyaerODi4cgSt/z9b/z6it8ybXo3y479NBEFVrz+Envvvx8/+8n32LZtAw8/8Qw33Xgjuy+cRzadpmfzOmZMn0I2m2eob5Slh30KnDylgoldkYlq9eiGzNz5Onc/cAdHLV1KIpogny/6Xq2LR0NjkqOPPpr7HrifVatWMX36NCoVC133fKNSLhf/NxH80NgpPAZheSenysSDZxiGv0+Q5CSsvXBnRVigaRrhcJhwOOxb37q6OmRZplwuUy6X0XXdj7eDIB/UMh3BzEfQlQ+Cg0F6c7AuIJhyDIZAgiIsQD/hWUBNgIMKThxbeEui4hJq5CKhnIIZj2AqNJfL+dZcKCfXdX26tmVZlEol/9wik6Mp1cyN7I1b80CqV/w4jHsLZqnG3KQWcsVjLaCECUXr+e73f0xDexNL9tuD/Q/cD1WLEg23+vu2tnQwfUozd/79OhbOGN/uSSzoivDw36/k6bv+iOLB4QdXsxvXXftnDtl3D5584A5am1v4w7XXYFVMWhubkTwo5XMsWbwYXGhqakVTQ7z22nI2btmKbXsMDg6TzuXxpGqNgW2bxOJxwqGqNzUw0E86neanP/0xAO+sWQOAOk46UzUZz6tS3489/ngqlklfXx/zFuyG7Vpkc2MUcyNMn9rOs08/wUj/IKvfWsU//nYbd99+B3+/+Sb23XMx09pbiUVkMqk+sulB3lz+CvNmzSSfzbNmzRpeW/46B3/yCPr7x1i9eg0yEtl0Ckn2sK1qWFgoFOjs7GT33Xf3CXqC9RoMVf/TsVMoBs/z/JhXNDbp6enxC5OEtQvG+kHugrCOwsUP1lEEgUXhpquqSqFQIJ1OT8AsVEkGx0WVZDzbwR1vimGVKx+y1IIgJbgFlmX5PR+CMXjwvFBTOkIYgQmZiiDOEQQoxWeipDp4TYC/j+grIQhZQZq1CCvEekYiEd9SCg9I0zSmTp1aPb+uoYcMZEMDTcFTZRwZbMmbQJUW90TTqwohEjX8e6uHFTRdZdmyZZRKFX78o8uxLIeG5iai0QjxeI1487eb/sLvr7qKuTNn09bS4m9v6pzJLf94hNaO6dx59+N87TvjtOc3V2LaEX760yu54oorePSRhzjvzDNZesihNMfjNDXXoyjQNbWLpuZmwuE4++1/CLoeo284zbRZc0jnsmhhHTWkkS8XsByTSsVBRae9tZ3d5y/gV7/8JQD77LMfPYODZHJpZEXCtUyieoiIZmA5Nh0dbWQyo6TSw2zYspYLLjwXqNDe3EIuleHcc87hiYcf57mnn2eor5+ZU6bRt3kT37vofDKDPXQ2hvn9lT/juxf9NzOmNjCW7uPvf7uZxoY23nl7K9FQO+FQAl03sOwKpVKBaDSMJHnIqsJRRx3F8MhIFb8xDFy3GnaK8PbjjJ1CMYiY37Ztn8HX3d0NVOm8QghFY5BgqAA1IDAUChGJRHxhCtY2+OXRHjimhaFqNNQlwXGxKyaSWyuBDmYZBGAnuR6S6/neQ7lcRtU0GEfqhSUPejZBFqfjOH7xFTCBWyDKrIWACbxDeCWT6yaEchOKUFh4XdfJZDJ+45lgmBRkdwpPR6yTgoSuVBWjVa7Qu60HXVExHZuyZWI6VY6D6di4EqDI2J47wXMQigXJBWpYguhfsWbNe9xyy9/5xgXyyYd4AAAgAElEQVTf5NRTv8Srryynra2dUqUGDj748H2sWbOSe+/6O2G9FkKMjfazaM9FrHh7Ba8uf2XCs7NpYw+mafvnfeWVV1iz5j3+cefdlCo2lgOhSJT+oUHG0lk8FPKFCg8+/CgjqTSNjY309GxFkWQa6xvIpNOEQxFisQSu7dDT08MffnctAE898TQdU7owIlEsu2p4iqVxDokC4bBBZ0cbo8MDfOak45k5ewayUuXEDPb1c921v6e3t5eVK1fSs3Ub//7XS7z26kvccftttLc0c+gnDyGbSfHEY4+zbfMWZs+eyRdO+zy6rvL+e+u455776eqcypZtW8jn83R2dmI5NrfeeivxeJSKVUbVZGQZ3xMVz/DH7cewUyiGcDiMZVk+pTiRSPiCFgqF/LAiHK42nAgCgjCxmEc8+JNLnIMEJhHzp1KpCSxHcUwRiogHXggzQKlU8mNywQsQfAchoFBraBLkOQhilPAwRNFVsVicsBai+CgIngZZmIVCAdM0fWsviFWCiDU2NkahUJiQtRAhhlA64jxiTQRdWpIk0uk04XAYx7TQZMX3RoSyFWseXH8RJimKguNa/vVEo1EURaNUquA6EtF4M9f/+WZ+8uPLCUViSIFy4JtuuQXXdSnkMuw+f66/fdG8GSyZN42kYXPdVb/gsEMO5NXlz/Hqv14AXOLxKH19vcybP49ULscd9z1EumDx5lvv0dE5nabmduKJJI7n8tqK5XRNm0ahUERBIhKJMKWri3BIp397L6VskbBhUMhneevtlbS1NjFlSicAra3NpEZGa+XmEii6hi15XHDh1/nhZT/gxj9dx357L6Gzs50p3dM48ZTPcvSyY9h9993pnDqFz3z2RCTZwXVtDjzwAE459RRWvv0Wz7/wKn+75XbeWPEOhx9xNM2tXWzv7WfevHl86tCDiURUli07Ei2ssPseu7Noj90pl8u0trZy3AnHE0vEyeVyGOMdx2pYm0u5bJJKZT6WTO4UikEIo8i5i3g3m836ghuMo4UFFQItHnrRpQkgn89PADWDJcWiKClYQlzMFyb0VhAhjbDiglwluAOGYaBrGva4QhBaWcRzYq7Bv8XNAiZgCIKtKBSWyB4IoFSg/uKGi4yDCJeACTUdsViMeDw+gTEpzheJRPwUrJi3FjJq2R9J9gvGhLeiybXMS8U0q5WaTOSRiBBL13V0oxYeeJaH5Co0NnbS0NyFLUMi0c3Pf34NGzZs4oilS/19Tz7hVGbOmMczTz3P7rvN97fvO38mVrqH99/6N2tWvMiPv3Em6Z736O/ZSFQzWbJ4IWVHZu6CBZx93hmUKmVSWYtcWeMPN95GwYSi6bLHkj05+uhlHLjffnzjGxfy9NPPMjqSZWw4T9RIEItEiYU0bKvIWHoURdXQjQj2eFu0Rx97CE2VSafTjIxl0bUItm1TKOX4wx+vpWtKK1s2v4uhwcjgCKtWryWabCFjefSODnPKSccQCylYZomTTjyO7ds30D1tCkcfcxR/uvlann7xJU787HGYZglZcVl65EHMmz2DD95dzQXnfond5nfS0tLC9p4BRjNZNEMnlUrR3NxMb28vDQ1JcpkUlUqFkG5gaDoyEtFwhPr6+o8lkzuFYghWNoqUoOd5xONx3/qLISytQOOhFrcXi0W/ZZlwnYSHEMwYTO770NXVRShSVSqi9iKoDARhSgCNtm2TzWYnVEUKcC/oIYj4DiY2QhFzD2YCRIZDFEyJsABqxCuxTkGhnpwhERmFQqGAYRjEYjG//wRAsVj0sZBisUg6nfY5G7ZtYzn2BCUtGJMCtwm2eQuGERP6LQQYjIlEjGqz1TyFQp54PE7/wHY6OluYOXsG69ev9/fVdYPRkRTd06dTCHhRs2bPIBaLcchBB9PW0ornWJQKeQxN5rTTTmPVqlXceP2N9PbsYGrnVHq2bmPKlCk4ToVZs2Zy33330dffz7beat+CTVs2MjTQx3HHHcfGjRvZZ9992bhlK43NzRTKFWy3GvaFjQhHLzuRU046GYBzzzmLB+65h67WVuLhEJ5dJmpoNMbj3HX73/nJjy6jUCgwffpM9tx7H0bHxrjrrjso5XN0tLZRMcs89PCDfOfibxKNhdl///2RFYup09px3DJ77zOLBx+4E1mu0N7aQDabZvu2zdTXxaiYZUK6xvDIAN3Tp1Qxt/GMkeu6xGIxKhWLSCSGqmuYtoXjuWiGTjqbmfC8/ydjp0hXBinRAgwUQBnUmqsEawwEuh9k6AlgTlj7YP/F2rEn9huUZZnt27f7IYjosSDCieD84vE4hXKJkZGRav5/vAs0VF1mgSMEwcNg0VKQkxGcsxDAYC2E6Ogk1kVRqo1aheAH+zIEFUexWCQarVpsUR0aBDKh1sVJhA/lchnZ40MMSdd1iUQiZAt58Gpr5nme39shmL0R9yIaroGP5UqBvffZi7UbtqDoGkgukYjBkiWLWL/hPc4882zOopoOfHX564Q0i1M/fxpdzbUaB11R8VwbXA/Hsli39n029Wxg2adP5vDDP8U1v/89s+d2M9I/TFjRMMt5PM9i46Z1JBIx6hIJ1q3bQGtzG7lEEVn2mDN7HmvXvY8kKZTKNl1TZ7Bg0UKe/+fTtOoGnjTeL1SBC849j0u4mkM/eTDLX13BmrfeIpvNousq+UIWw1Axc1m+cd45KLJLOp2mki/wyUM/xb0P3MvXvnYhi/dYyIzu6Zx68olEjBDL//0yEh62k6dkZknE4+y220wWzt+NdWvfQ9UMps6YRTikjgt9Bdu1iCcMVM3FsqsetDpeACe8TXGfTcfC0PTxzySi8f8Pez4GXX4h7MES3snuvyDTBLkCkz0IqKY58/n8BADQAf9YklsjRk1mVjpOtbWaEERBHZY11ScGiY5FQphF/C5Qf3G8yZkRsX8w1VrNNZcnlFMLxSiu33ftA95HkOMgwhJR9xBEo4PVn6LlmvDG8vk80VDYxyQEriNrKqlsxs9a+KnKSbT1YGbI0MMoUg0Ybm5uZOOWTejhCAcdfBjX/uF33HvXXXz+c8eRzWa55urf+/su2Xs/JE0hUd/G8jdfRXCZW1tbGRveQSFXxFAUutoamT6rnXx2kP6hHro66jGLJY469Eh01eFnP/sB763dSGdnJ1u3bqVn61bq6xt47vl/oRsq7e3NzJ+/kK5ps/j55b/ipeXv0NDQwB33PcRZ53yF9NgAjS1tlHIl/vSna7jx5lsByKRH2Xe/vUkmIiiSwwUXnMe2rZv4zEknMHP2dH704+/z2ZNPYfU779E5dRrz587h2t9cwbYtaykWixiyyz+fe5apXV3s6O1hZGSE6d3dFEslSnmTA/Y9mFgkRGfbVBRZY83a94lEIjQl60jE6qlYFroq4Tgmynj1pOeMe8S2h2N7GLqGZVfQlKr3LSNhWxbr1rzH4r2O/49lcqcIJYI9EYRwCysoXGRhmcvlsh92BOsJgnl8gf6LBiWCURkkMTmO4zdIDRZDCYVULpcnNEDxOQteLS0qcvyTm7sIXEQcV2ANjY2NvsCL4i2oNT0RsX+wLFwohWAqNtj5OehtCHxEuPWSJPlcBdu2SSaTAP72UqlUUwqug4OHK0HJrBCOVb2OIEdEzDXoyfmsTVfCc6Vxr6WWaXBdl9bWVsxSmRee/ycAXz3jC4TDYeqbGqlvavD33drTwzvvrmXj5i389Za/1bZv3YosqQwMjvrXtmnjNsrlMi1tdXzn2xexePFi/vznP/Pe+2uQFYuB/i2sfH0leyxaxLJly1i/biMdHZ3oWogdOwZ5Y+XbJJtaKVsee+39CSQ5xFgqTyRUR1NDM7blUrHKbN++jWOOXQaAoUmEwwaf++Ln+NZ3vsWChfM58qiluJ7Hs/98lj332ZPR1BgHHnggc2fNxDEtRvr6mDl9CvXxGG8uf4Vo2KCvdzuFYo5I2GDbti1+6jydTuPaDoVcnh07dtDe2saC3ebjWC7FQpm6ujos08Yxa1iZoijIjHftlmUc20ZFxrFsVFlBkxViRphiJvexZHKnUAxiCMsKtfqJYL1AUHEE421hRcUxRFjgui5jY2P+OxSCfReE1+C6blU5SDU+hWiqIlD4oIUWoYLkepilqoV3TIumpiY/hQiAJFW9b6cK3qmSzMjgUBUJN0JoskK5UBzftRb/uV6tgEp4HGLOQthFv8ogE/KjGJvi+5VKBdmDzFjKP39YNwjrBppcw1DEGhqG4XM0xDUFXyojFKSChIKE7FUfJM9xwHVRlFrOvFKpYKgaxWKR1qZmLr/8corFErvtthvr123ioou+6e+7dv0HbNm6jU2bt/H9Sy/ztxdKFdZ8sJ6GplZM2yabz9E9YzYdnd2UChkKxRyNDc289PK/sV2Xilnk9NM+S2NDA/lshlx2jAvOP5vRsSFGRocYHh5m2/YeHnzgIc477wKeeeo5MqNpMF22b9xMOVfCMS0ioTCqJsM4BXvzxg/IpoeZNWMKv7r8J6RSw5x77tn811e+xCGHHEI0GqW7eyqKDOGQDo5NV1cH69d+QKmQoVIu0tLcSFtrMy1NjTQ0JFm8+zx2330uyfoYW7dt4p13V1EsF0k0xFEUxe8c7jgO27fvGGc9jj8zbq2/iCx5SJKHbZtA1ePWZAXbqrBt8xY62ts/lizuFKFEMOsg/odaSBCLxfyeAaKpqgAaoYYBiP2FEAvWo3CRAQgIkRC22uc13oAokQ5aReH+C5qwyIioqspQ/4CP7svKxJe1CM9HhAgit9/a2komk8Fyx687kP7zvGoHqVgsNsEzEspLKD/hRQTDleCcBZCpKqrvvQivShy7VCrhjh/T9apxfLAB7WTmXJXdWMMUJEmZ4OFIARpzuVJk+fJXefDhJ1i96n2uvu73fP2CM7nh+pt47NFnWL3m13BndV8jpLHb3LkkGxsIRWqZDUU12Hf/g9m4biOvrViBq+ss3nN/ilv6mdJRz5w5Xdz34IvIWpTddl/M5o2raWpu5NSTT2HT5g8olmw2rF/Fpw75BLbtcOdd99DV3MU7q9/mzddX0pRoxPCgv3c7f77iCg4/4lOUKnk+ecRBZHMF3PE6g96N68mnR9l/z4X0bPqAEz69lHIxQ3//IG2NrSTiUUKyyo4dOxjol8hms4w11VPIjeE5LvFohFwmTVNDA5ZVTRdrqkI8lsTzNJKJeurr4pRNE8txMa0c2XyGoZFBbMcjUZ/064dcBxzPwrMtHxuq4lkOnmRg2g6O52JVyqDIbNiwgVr+5/8+dgqPIRhPTy5aEr9F+i2Xy01oHxak8QatpHhoBbougDYCwjeZRSiELCiAoudBsAOyUGJBBqai10hDnlvtZaDItUYmwdLrro7OKjrf3++HFeJaRPZEhBpCQfjH9mr9I8U2sXZQa0Aj3EwR5ohwIvjim1wmS3qsWkOiUA2lJEAZbx4rFFuxWJzAshQejvi8+rYoG9suo8oeulrjJkTjERL1CRqbG7jyd1fxX1/5Mqd/6SvIIZ0jjz6Uo446yt+3IVkPnsroaJ5NW7f720OhEO9/sI58uUJj21T+9cpb1Ld0sWDBXvQPFti0tZ+RsWFOO+00nn3mBVxPZmRslJF0P3++8QYULUKyoY1YXEeSTY4++lCKuRFmTO8kGtYxVA235PCT7/4IM1XiC8cez6mf+wJTu2aTHkyhjF/vPgt2Q3ZtXLvEmjUrGR0bJDUyjGNWkJEZG83Qt2MQQ4+hSCFGRtP8/IoraO2eR3PHVJobk+SzGTxJQ1VDGJpKsVyhr6+X0dF+XM9icGQIZKlq+W2H0eERwpEYU6d3E4/HkT0DVYrguiBrITxUQuFo9VmQVWw0LM9F0lRCsTjReB2JRNI3Ov/p2Ck8BmHphcUJWmMhMIJjIEC94PcEUUgIjlAcQWRfhBHiRwCeIjxxHAfPnfhKtSB7TGAYwXi7WCxWiUCO47v2IqPhn9uyJ5CBbNtmeHRkQirTd/nHcQ1h6cV5gq+WEzyGYG1JsIZEXGdQkMVn4tjCm3Bdl2g85q+1SEcWisUqGWscVxH7Br0gRQnWrASKwFQFWarZm2w2S0fHVO68805USebggw9m98Xz/bh6wcJaW/Mley5idGAURVF4/fU3/e2GEaW+UcO2PMKJJhTtBa6/8WbeXbOWz558AiXLZXgoBbLMr351Jc8+ew8jo4PcdtttrHm3F9eyqU/Usa1nE9FolGKuyHlnn8M/7ryXdF2BmVNm8uxjT3LvA/eyZK89WLnyDeq7O9m6YzuJZB1j6SwAW/v6UfUQqqGjGjFmzZ0PnoSqx4lFE5jlMhs3buSB++8nk8kwODJEsrmBeDRBwbawSkVaW1vZunUz4XCYungzsiwzNDREfX09DfWN/lvRbNMiEo+iR8LIiorjuYQiYcqmSyhkkE+XkBwLIxLGdT2y2QKRSIREvI6KWaxVCVsOTU1N5NIfj+C0UygGIXDCJQ7SgIMeRNBiB8uUxQM9mYMQfAFMEDQLvtMy6K0IV9uPowNWW1hfAfBBrXJT7C8ASMDf33YmegEilSi4FJ4soVC9FkPXUVQVb3zf4JuoRKwvuAmpVArXdWlsbCSbzfrYSJD6LNZGKCixZoJiLpSpLMt4cq2nhKaqfsgltgWrQAEcHFRJpmpMax6E67q4XjAr0YSHw+rVq4hGo1x9zTW89sqL/OyXP2Pvvfemr7cXxqumzz//XL5+7td5+cXnOeerXwSWA5DO5LnymquZPn02y445HstVcOQQbVNm89Rzr1GsmBxy+FH85ea/E47EGRgaIxINce755/Gl07/Cww8/zL57740qG9z6t39w8Te/xXNPP8O3L/oGOwaH+MWvrmbWolmsXvcuv7z0UtauXoGlqcyYPotsqUB9LF69Zq2O5tZWXnr5FR599HGMUJi2lk5cp7oCftanaOEg0dk+m7KV58KvXcxll30Pq1DGcx06OtoYHh5leHTMD3c9z2NgYMBvD1Aul0k2JCmVLVBkZE2l4ri0tnVi2S65bD9fPvOr7L//AQwODrJo4RzOOPur5IdThMMamhrCrjjomoFpm3RMnfaxZHKnCCWEIAMT0oBBpqHjVKvYROFRkCwUJCMBE6zcZG6EUBJQS3EG6xdE5iIICAbTp8HUoSzLNDU1+cIj+BWiKMo0zWpX5JCBrFUJTcVi0U97ypo6QUHpuo48fl5ByRakKUFbdl2X4eFhv+dCJpPx10hcf9Bj8L0hWQJFxnKrXlhdXR319fXVVKRcwx58zMKtvf1KVI0G10WSJB+0FUMoIiXQFGTa9KmMjg6jqirf/fZ3qhRpXSefz9Lbs41YIL/+/e9+n3LZZOqUaazfUGviqugyl112GcuWLaWpsZFUKkWhUGDL1h5QZA765IHsf2C1C9InDjiIdCpHQ0MzkbooXdOn8NAjT/Pwo4/T3taBqqpcedVvWbRoIa8tf5lUZoRULkV9azN6LMYvr7yGzdsHicTqUYwIhZLNps3VsOanP/klv77yat54exUz5syhvrEVywPbdSmWLQolk1LFxpFUmprbGRpOUSpbWJbDlVdcg6yHUTWNeF2cqVO7qoZElZkzZw7dM6bT3NpCIpEgFo/S2taCqornUUeTNDyn2vhnZGiUiy76FrKs0LtjgM6OqcTqklTKFpFoHMfx8MbTl8gyqmZUOSQfY+wUiiGY3w+WTwuB9/sRqqpPk1YUBV1RMdRqhkBB8tF/z3b8KknJ9XAtG892fARdfKYggeMS1g1kr/bi2aCwBsOZj6q/SKfTvjITzVBEejIYPnieh+nY/tuzgyEP4Gc8RL8JkSaNRCIT2rlB7e1SIgQRmEOwpkNwKURmRbBKVVX1FUGlUvHb3AtvKfgdUZcB+DiLWBfGX2QC4OAhqbW0pmPXMI9IJES5XGLT5g0sWryQN15/ncWLFnLt766mr7+X+++/3993w4aNDA4M09bRNSHlKaku5VIBPIdCLk0krKB4Dl2drbhY/OtfzzN75hRGRodJJOo4+KBDKeQrhKMhJEWme2YHv736SlKZFGef/d90drYzMNSHosDiRQtJZVNcePHFHHns8Vio/GvF29z819tpa53G32+7m9f+/QYAUzq7cTywHIdUOkuxXKJQKlIyK0i6jhoO48jVCtTRTBo0hZb2tiqJrncHqXQWSTNIJuvRQwbz5u9GJBplR/8Oenq30zfQT9EsY3seKAqW5SBTTTlapomCgior6JrCqaeewqGHHkoqleIrZ3yV0774JXS92l80kUiiaQbhUAhJ0XBlGVn5/1AxCCsUjIv9z9zq671FdWNjsh5dUavbA3UHwUYpwksQHoJ48IPnC+4zefvk2DzYkEVkP4LzFPwFIZxBQFEcU8TwpmNjOrXGM8FKTuGZQK3Xgs+5CHSWCoKNvqcRCLPEtQUBU2DiuyXdKo9DUhVfQUWj0QkAY7lc9ntITu5ZIeYOMpKkYNsuriQjqRpWoFtQxTVpbmuir6+HE044hgvPP4fW5mZOOekzNDXUs9ceS/x9v/71rxGLV+sPpk2f7W/PF4u4eCiKhGUX+OXlP+HYY5bimkXq4kmam5r49sXf5JQTP0MxX+LLp30ZWVax7TKOaxKLRbjoG1+ne3oXHhaHH3Ew8YYYjm2y8f33+dbXvoZjlfn0MUdwyfe/SazeYK8le/LlL32VtrZuiiURaho4tkq56GG7CpKio2ghND0Cso4nKah6CGc8nVhXF2f71q0cfPCBJBuTmK7MHkv2I1nXRGNjI7lCnkgsRn1zK1oowfS5i0iXPGKNHaSKDrYjISkqluVQzOXZtnUzlWIJs1Rm2bJlXPbjH3LXvXdxxlln8MXTT8P1FLb3DNC7vY9SoUyxUMbxXFxFwpU/nqjvFIohOATKH2yfLtzzyS9eFZ6FaZoTagdEuDC5qYgYk5mIwZAkiGkAfvXkZOalmGMQWAxmDoLZAvG/sMoi0yGUkvA4gvMRHoHIjgQrKQXQGSwom+yBTC4cc9xqFafIzgR5EQIEDVaHirkVCgX/WoSCk8Y5GuIcQXq2OFfwfs6YPYNPHLg/ibo4a9//ANyqorn11ltZuLBWLHXDjX9kYHAHmUyGHTv6/O2xRB2xRILm1ha6uroYHh7EMDR29G3HLNkUMiUUT+Ocs87l5Rf/xejoWLUzsuNww5//xC9+8lPeemMt7W0tJOtizJrZXe0F6biM9Q+ie3DTDdexbfMHZLIDzJrRSUdbA3PnzuWDdesxx1vSOZ6CYysoioEs6ahKBFnSQdaRXJA9GbtiEwmFKRaL5DN56uuSbNy0gZNPPplHH3uKJ556mgcffoT333+/em88Bd2IYkTjfPZzX+Sscy/GcjUUI0rRrJAtlpBVHceTSCaTpNJjSFI1RBwcHOTVV1/hoIMOIhSKcMopp/L8cy/S2tpK2KgyWyVFQQ6E6v/p2KkUQzBbEETBNU3zwwnhRgtlAPiZCpGOE4IY5PD/T55BEGgM1i2IH0GFFpY2SGUWpCnP8/y3OQkuAJOEJ8gtEB2ck8mkP69qebIyQVEFuQRBBmMQ8IQaRiMUh7jmIDdEliQSiYR/HFFIJbAYMUThWnE8MyFe7htkhorjAX5dR5BUJgU6EltWtXR706ZNlMtFHnn8AVasWMGZXzmLH//wp/z4sh/5+w70DSLJkMqNsfqD2pumQno9g4OjbN7ag6yqfGK/JRiqw8IFczFUj5Cmkow1cs+dD+FJGj07Bthz8R5EwjJHHX4EVrnCVb+9lI0b3sXQJEYHRokoUbb0bEOLG9TXhfnMUUdRzqXomtbM5086HiXssc/+i6kLa7Q0N1av1ZHxkMGrWnHLqhYqeZKLJ497b7JEqZChrSXJHnssJBqO0tzUxshgmpndczlg3wM47LBPEo5GGBpJY9syFculf2CEhuapxGINfOviH9DQ2IwRjdE9bTqSC65dNXytLW04jsfQ8BiNTXVYdoU5c+bxzrsf8I2LL0aPhmCcCena1bofZzxd/nHGTpGVEAIT7D3o1y54tbcqBQViMuko6LpPrk8I/g5adGHBgym8oBUPEnwmKwwxFxhvFIOHLI2/24Ja/YeYX1DZieKq4eFhf+5C6IVwifUIejBiPkFKePDa3HGvQHxHeDji3ILsJJSOqKIUvIfJPIdgDUaQhRmcTzBUEtesG7UiqqoXphIOh/j9tVfzlS+fyayZc7jh+r/w9ltvEQ3V9v3+977Lw48+xratveyz1768yDMA9Pb2UV/XwJzZ87DsCk8//SxvrlzN+WefzTnnX8yi3ReTyuS4+fZbSNbHaW5v4BvfuZgDD1hCa+MUFF1j9tw5/PO5x+nsnIJluzS1dZEp5Eg2NpFJZWhuayBRF8L1HNKSiyfBqhde5vA99+aZF6tFXnpcQy7blMpZ4okoobCO49rs2N7DwYccxFFHLqWztYW21mYy2SzReIxvfvNi7BGHdKbA3nst4eWXX+aAfXfHUCMkIhrbtu1g1btrMEJRZs+ey2U/PI3GpiTlYhazUmJwoJ+h/gHmzJ3B6nfX4DgKvb19LFy0JzfdeCPJhgb+60unseyIw5gzby7HHb2sWhJQKpFIxvF0pfrSHHtifcv/bew0HoPwDDyvVhchrKfvDjvOBFxB7BMELoPZCKh5Cx/l5gcF76NwjqCXEfxfuPrieMGeESIcCf4Oegvi3IqiTPAIgvTlYPFUEDcQ6xEMeSYrM3EuUVMijiOuTQzDqLYVj0ajftgWDIsEbhHM9AilJs4lQrbg2k8mXFWvqcT8BfP42tfP5ZJLLuHbF1/Mf595JhEjxMjIiL/vk089imVZ1Nc3svaD2gtqk/X13H3Pvfzzny8yMjLC2yvf4oTjjmdKRzsXnnMWuipTMsss/T/UvXeYVdX1//865fY7d/owM/QiICBN7IANEVCjYiUmMfWTYtQY0xOjxmhi7DFqjL1FRVGwIViwIYoKCIoivU0vd26/97TfH2f2mX0vg9E/vs/Db11RVFMAACAASURBVD/PPHPvuafus/faa73Xe611yhy+9f3vMvXIo1nz8UYcJcz3fnAJ/777bnbs3sW48RMpi1WiBaIYtkZF9UB60lkC0RDJdA82NrV1dcTqqpk792QuOPNMkk1NTBjuuvpMslhGhnhnC5GAj1tvuo7lLy1h08a13HjjXxjUWEGypwnHTNDWvpN1H3/AcSceRygawbBtEqkeZs6cyaZNm9A0HweNHMvNN93OyBFj2bWrielHT2fPrr1s27KNyYdMpLq6mnw+z/BhQ9i0aRPl5eV0dnUwevRolix5limTxlNZEeGGv19DY101ZibFhNGj2b5lK4VCgZ6eHnxaXw2Vr9MOGMEgr7CiPBz00aNlIo9o8kQsBQ7FOcVKLJ9HHsziPF+lle7nOA6a34ce8HsTWDAObcvC6b2OWHnFM4pnELRtIWSEqSQmnHDTys9c+qyyFiMmpgBDhaAVfSSbD8lk0g2p7i2hJpqiKEUsyVKNTAhtcY+l4KqIPZGbi2ko9PTEaW7eTSQS4qqr/szo0aNIpRPefg2DBnLS7NnsbWrBkAZyZXUdu3fvZvrMGYTCYebMmU2ip5ONG9dx1JGHsvmLT6lrqGTdhnVc9utfYdoaP7/0N0w9dAZlsTDLXn2HQQOH0NLaza9/fQVXX/03Vq3+mGzOJhqrwcGt2tQwsBFd9xGLxdi2bRsrVrzCjGMOZ97JxwNw4jFHcNe/bmLD2g84a/5pXPDN81iz5j2SiQ46W/aQTXaSjreTz8QJ+zUGDaznmGOOJptNEwoFicfjpHNpPv/8c6655lou/vmlVJTX8tADj/Lzn17Mrf+4jXffXMlD997PC4tfIBqKomkKmzZtIpPJ8NGadaxdu5Znn12ErsK/77qDSCjAySfN4rjpx6A5NstfepGG+gHs2rWDmtoqEokE6UTSc/N/1aZdddVVX+uA/xft0YWPXAV9q5CMpuu9KrUQFoLIIzfHcaMCNV0HVUFFKdIO5Ekjf4biAQ59mIA8GUSTJ6GjKihan2oteBSlqd3E/YnretqMZeNYNooDjm0T8PtRHCjk8ji2jWW6BUlljUNR+9LLy2BgqRCV3aylGpKI/gyFQh5Lsz9PhwB+xTsRzy+ewYsbgaLfxfFbznV5CCMXDseybQqGSbyrhzEHj+b2O27jyiv/THVtFT+/9GIeGOiWkLu5/l889NgTtDR3kM0W4ErXZTnj1aOYOOlgtmzewkdrPuC0006hYOQZ2FBPNpti5rFH88LSF6mpq+WVV5dhmjbr1q4jm0lRWRlh946tnDZvDuVldWzY8DmRshhvvL2SLVu2seS5FzjyqCM4aNQIcjk3lD/kD5BMJAiFgySzSRY+/RTbfpHlz50/pK2jhT3Ne3lp+UtkC2li5WV8tGY1PkUjqPs5aNRBdHR0URarYPOWHXR1xHn+pRcJhUJEyiJs3rSJOXPmMH78JN5dvQZ/qIJt27fzyCOPUlfXQCLeQyQSZvEzi9iyfTOvv/oqDQ31LHn+JaYddhhHHHEEDQMGEAwFyeZzrPloLUcedjTbvthCQ0M9Y8eOIRL0EQz6sByLYCCA40AwGGbY8HFXf9U5eUBgDKqDG6jiONiWiU+4Ay0bW1EoKyvrradoUVZWVhQU5WELat8qqrFvyrEv+yzOI77LuIScGs1T2UtIPVCMXcjnVB1QUMBxXa8Kbt1CRS1OOScnehWaQibfV/dC03VUySQR1y5lgor7lc0dcX9yZilRZUtoKULAiM9C9RRsUr/fTzqd9nI4CExCNFmAyM00bXTdh1EoMH7iRJ546klM0yKZSVM9oJ5uqa5iznSYOGkyu3e1EFADNONWoRo7ZiKO2cWKFa8zbsJEXl72CuFQAMOwqKupZfWH73PI+FF84+xz+WLzVgKhMMceN5Opkyay7MWnWXDuXBTbZNXKD2hvbyeVTfO731/OlMlTWbL4WVRVpaWlhfJYGYYBPlWlakAt3Z3tDB4yhFm2ySssZPvmzQyfOI5EJsOept1s3bmHdD7HWfPnc9sNN7HuozVc99dr2bp9BwMGDmbipCl0dsQZMXQIBdOisyPBQYdP4drrbmTBBd+iK5lhVMNIDjp4LNlslonjJ/PuyvcY0FjD2EPGM2fuaRw6aQLpVA9jJxxCNFJGKpnEcRwqKioIh6OMH9fIX66+Fp+i4vOrzJp1Ah1te4n3dKP6NWKxMnK5HIFgZJ9382XtgDElxGokZ3YWq64YqCK7kOyyFJ9lXEGcT6z6pTwGYJ99ZQ6E2Cb+f1VTQzSZiyAnoelPiAgOw0vPLOflxa+y9NlXSCaTHmFKdsGKY5c+vYylTy8rAjTFJJUBWdmt6jhuIFkikfCK38hsUiFshRYhJr8oSWdZlhfZJ3s7gCJtA8BR7KLfRG4Lv99PIBhi4sSJlFdWESuvJBgqkw502Zz1dQNobW7xNt9y0y28+dY7TJl6GMlkhvWfbsTnD1Ieq2Tz5k3MmHkM5571DQbWVVAZC7B+/bucNOtoTDtNWcxPdVWUH/zg5wwa2EAhl6OmpgLHzvHGildpbKzn2Okz8PldcwfNwRcMUFNXTTKTxh8JMWHSRPc+/nkbP/zhj1m1ahVnnnUOt/7zVgYOGcLWnTu47JeXc9c99zD0oFHcdue/Wf76CoLRMoYMGcKcOfPQFR2j4LB92x7SOZP1Gz5n9LgJ7GppIlJZTqQixtY9uzCw2dPSzIfr1tLa0kFHV5zm1hYaGwaSSrmp+JI93bS3tzNzxnF8vO4TUqkcgwcPpaqymgULFqAqDjVVlYTDLm/FrxcL8a/SDgiNQXYNihVPXn1EoZTSXI1COJiO7RXt1DSN/qbx/lZ28Sfb//L9yIljbNt2qcX9XKAU+/DMEUckq3WKgDsLl7DlWDa2anPSGSeiKArLn30VX7CPp+A4xclr6H3+084/hXxeStah9lXskr0tssBQFIVIJOLZ0A0NDQSDQdLptFfvMhqNFrl8Sz0xsodGfgcywCn3hc/nA0ftrYKVJxqNUVFZi2MrgEpPXMIYBjZy3NHHcN/td1JTNYA2ugF474N1jB4znA8+WsvMY49m8tTJdHZ00dIVJ1pVgz8QYsXyxSiKwoD6Ri776SXEW7v4+IOPKA+Xo6khMgXoyfVw4203sHvnNg46eDipZIGgL8DLLyxhxOih5HI5aqobyCTibsyD4lDQ8LSaObNOZvEry5g4eQpr160jGguTs030RIq86qcj3Q0heGLxi5RFYlRGK5h17PG0trYyZvREKirL3OCq9jhLX36DslgQy7GprR1PKBwjEAozavRIdu/agT8Y4OU3X2f8lIP59LPPWf/Jp2zbtgPHcUj1xCkUbM4+dwGZrMGME+Zw3vz5dLfvoHXvVqIhjZ2t7aTNPPW1QYL+EKoU8fpV2gGhMQh+gBz4JCaE8FYA3gSQ4x4URfGKp8g8AChe9eVrif9CQxDXECuzDFCWTg5xbKnJIV+j+LPL2JMnj6qCquhomq+IbCSabZgufVvSPMSkt22bk+efVATGptPpfTw5Mp4izhEKhaioqMAwDOrq6jwcQuS4iEQi+xCcxPfSLNeif0q1qf7MCRGP4vP5KI9Fefedt9mxcxvZbJpUui+zUDzeTbQ8huU4RWDZQaPG8O77H/La62+yc1cTV151HYoW4F+338WIYeNJxA1OPGE2ne3dDBk0DM0OsvKtD2lpTlJWXsvf/n49ow4agD8Q4aq/XI0v6GPLxo18uOodVq9aSXksStjvI6Cp5LMpCrbNnuYmAn4/6UQPY0eNAGDGkdM45rBpDGkYzNSJ0zByCvkM7NzSwrbPd3PQiAkEfRXc8++HOGHmSRxz9Ex0PcCIESOIREIkknEvW/P3vv0tHnvgAd5Z9gqFTBbLsmlubqW9tYPOjm527N5Fe3s7He1dhKNlbNq0GUVR2LlzJ5bl8Pnmz2nv2MPepp288/4HBKJVFExX61VMm6BPp5DLomgKhmOQzX+9EnUHhMYAFA1gKLb5ZbVVDHZ51ZcLxZaaDfszBWThIVZbIXD6c+30nbd/d+b+zA3DNkAi/Cx99pV99pl75kkeGQpg+XOvF/0+56zZnndi6dPLvO2zz5xV9H2f8559clHWbRH8JaL5RJ4FQYoSFbpE4ZzSRDCyWVfaZOp1qdlm2UavsDKpraom3tnF3XfdyTe/dQGHH36kt19QV9i4dTOzZs3i4zUbECIjnkgTT7QS7+lg42fb+O3vrkRVVTZ90cLb77zPoVMn0dHRREVVjLEHH8T6deu569/3UlZbz3e/fSpHHnkkb76xkheeX8r06TMJBoPs3LWFIQMbiccTfLD6fcaP+xbpdBpNhYLpxpQMHjyYph27CCjuwpRNpphzwknc8rcb6e5JccpZ5xDP53n1ldd59omlpNNpagfUEYlEGDpkJH6fj0xPD+FwiG3btlFX3+CStBSdP/72N2z6ZB0dO3axZeNGxh12FJZlEQ1F6eroYMTIkaxZswbLsjnm6Bk8cO+D5I0C06YeyhFHHIEeCtDZ3sa8efN4fvlqsobN6IPG8faOzWz9YjMNI0dgZDMY2Pg0ja+rAxwQGoNo8uQScQelq7GMuJci8qUovNhf1hxkb4RYqWX7WeZJ9MchkM2E/lrppAAVy9EAnWVLVgBw2umnMOf0OcybP6d3D6GW99mBc0+fxewzZwHw8qLlHqA49+y+xCaqqnLy/JP4xoJTvW2nnTOX086ZC8DSp5dRHi0jGgp7z5dOp2lvby/CGaqqqrAsi+7ubq+gj6iHKPgQcp/KGo7cv6VeHNEfYn9d1/EHNA4aPYJoOMDoYUNprOrLBn3H3//ODddcx6q33yEsZZrevreZE2efxqgxk7AJ8/NLf8ff/nE7p595NoueXwJBH9GqGMfOOo53Vr9L1YBa/vDnK9mzp4VrrrmGpj17+eNvf8PQIYNZ/uIyPv/0cwYNG4EejlJwVA476jjWbNhMW3eafMEinUrSvGsP8e4kNQ2DSZvuu26P51n45DMMrh9ISAvw30efYPkrr6HrOgNqYlSWhXGMHLblpp7vautCVf0kEgahUITW5ha6u9IcPG4ymUya3du2cfFP/o8dW76gPBqmkMugqpBM9jBq1CjOOG0OK159jba2Nk6eO4dYRSX1jQPZvXsv3V1J3l6xmokHT0FxChQKXTQ37WHalCMJRSrJF2z8WhCrYJJPF1C+Ho3hwNEYoJipJ76Xqu9ie7E3oRcXsIvVaNFKJ3Z/yL7snxfboRhYc1X3vvuRIzHla8nX8ekBsoUsWH37Pb/kRQAahzYye84s0uk8gVAQn9+dDKeefhKOquKTwpcVxS0jVxo+6zgumQlcoSA0n2+cO4/nFr7kVicKBAjqfpTeCS8K2eg+H4qqsnPnTk8giGAtATwGg67/XeZaiPyPMg9DdnmWeivkxDmqquIPBhlQ7+eO229zo11X9O6bzZFLZwgHQ9hm30ieeexxPPPs81RVlvHy8teorhlANmfw3ocfkcjE+eWvrmDE0Ho2fvoJmXSWAQNWYdo6FZWVVFdU8Z3vfJ/1a9fQ093OEYdP5Zgjj+bD9R8xZNhwBg0bxkWXXsHgxnL+78c/wDAsKstDJDu7yWRzWPjRfW5o+CtvrURXdSpj5SiWSX1dDW3ZNI5foVCwiET9KJpGOp1EUVLYjollGSRTWcqiIXyajq77cBSVWG0FvmiQJxY/xZnfvJDuzmbKYwEKVpaLLvkZO3fuZNO2LaSTcU47dS65XI7W1la2bNnCpxs+YeDAgVx00aV0xxP88TcXk4038eRDj1AeCnPON+dj2Qo+vw+/HkBVdFT76wHoB5RgEE2ebKUaQ3+/OzheXYT9uc2gOKtxqb1can7sz5MhLi2r1/3Z2eJeDMu1zdva22gcMgyrYNPasguApp1NNO2Es84/h1QmiWMU34OY8OI7UJSJR1fc/Aqi/oWYuOL+oK/eRaFQwDb6GI1C2/L5fGgl5KVwOIxhGCSTSc/cKPX8CC1A7nM5uE20ZYte7fdd9NeeW/Zav9tXrlzFsGHD8flU4j1dGIaLR1VWVVFwLDRfhJ27uvDpVThOgrylYdoKqD6i0UqamuK0dcSZMfNwQoEwGzdupKw8SktLE4cffiTHzzyMdDrJ+nUfc/SR02hv2UlNVS0d7d0kMwWiFTUAtHV2ENBU1nz0IWNHjODVD9cQrBNAquKmZDNcYloikSAY9GOZLgcnk+5GxfX6BKMh0laaw48/it3bd3P87ON4/e23qWmsZ0/TbqoqowxuqOfdN7qoralkzdoPGXXQCE45ZS5zT56DWTBYueo9Hn78fkYdNILOtla+e+GFXPbLnzFs2DB27NjhhtNbFooDhmkQ9gf67dv9tQNSMMC+XgToW82Faiuaxr7AnwwcCq1AxifkGAZZS5BdpP3hBo7Td+7+bGpZ5VZVtRc7cEgkEjTt2gNAdeVgNJ+bcSoe38ubr61k4pSJaD5JyzGLGY+O42BaxcEw4n5lm19M0BcXLfP6SjyLX/fRk0q6VbB6E8GYpgm9OI0AYQXOIMwt+fzCpCn1IMnxFY7jcPJZrhkkhIbod11xPRSJdIpCoUA44GfpMy6mcuoZs3lz1VpUW8OHTkDRULQgpt9h06ZNTJo0gXg8jmVZ1NbWYtlugtXW1lacgo2GSsAfpa21A8O2mH7CPCaOHcZDjzyDkW/jpNlHEwiqRGNhouUB4vE4Lc07mX3CcRwyYRzpVIJsOk6sPEI2lXYpyY6DHnC1S121GD3mYHI9cTqbmykPhImUVZIpGFiWgm3YhKKR3ngVN6dFR1c3gVAYw8xRW1lBTeNQYjXlnPSNWax67RNgJHAc9931D7rSSX79q5dY/a7b1zddV0ZlRRmjRg7lk42fUl5exger32PYsGE0DKxn49b3mTX3MCJKGDtvsLNzD0mzh6poLbnOjt76Jya6TyNn9eXq+CrtgMAYxKrTXzyEbEIIz4VopUlVxKD0Ih6lY+UwZTkWQU7EIs4jBwyV8iPk65mWhVNy/3KCFvfCCj5fgE6pqGhn924MO0844u99LostW7djOu49FLIZFIq5AbbjuGngpIQbsvYD8NzCl4qEAuBV1PL7/RQs1/MQCAQwDQPbcmsR6LruRVEKYSMX3fU0DonxKGI2RN+K2AtZEAhSlZyGD9zaIAFVJxoKI5K9ABQ0m5BfQ9dA9Sv0ZNNkskkCukJ9XR17m1tA9xEORTELFs0tnTQ0jGT06InEKusJRCpoHDwCmwBzZp/J8GGD2NnUQRY/37voEmKxOvI5h/LKGO3tLQwdPJgph0ykp6eFluadrF+/hp5khvbmNrq7Utg4VEQCNFZFAQjWDWDdhvUcNe0oxo4ex7fOPwu/lWNgTRUmJplCBt2n0p3ooLm1iYJV4KgjD+f+e2/n2985j1nz5lBTW8aMoyYyZtxophzfl3PilXdeI9nTyZV/+Im3LZNM0trWzCefrWfpyy9QVRljzbq1vLNyFbadQTP9PHz/02QL8OpbbxLQw3TsStDTmcJRfai9SX5VVadgfD2Q4YDQGErdXvtT4/sjHX0Z+Ug+h8wIlI+VVeP+tBRZ6yi9p1LQrT8vhWnbdLR3k+tKgaTZdCuO66V3FOJAnDZ2KZsAWL58JTgKSGnYly1avs+2lxZJHo6F7rleFL87CqefPw9XISjGVEoBVfHshULBq7IthKLsFhb9JKJABSlKeC9Kg7GEEBfb9d7s0zi9fAzbQZFKBqq2w8ihw2hp7iCZTOMP6BRyefKmH9tQ0AJ+NN2P3xeks6uLSKycbdubCAaD5AwHx9bY3dqOLxzh1bfewLINvvOtH5GMJ/lozSZ0o4fKsgo6u3pIZTQ+39LGJ583USjAzuZmfnv9gwDc+ucfU1FZi6pBOpNhwc+ugW/+ihkzj+S6m//DZXfAr887l9UvP0c82cPLq90MT7f/46+88NJS3l/9DplMimSqm7def5XDj58FzOKJB+6iraOd9tZWoqEw0UgfGzGdc8gVYLhU/2HGjBk0N+9FDyh8sWkr0w49iiv+dDUvvvgiE8cfiWqHaWhoYOf2NgY2Due7v/iTd+yi+25BsW1mzD1fGpN85XZACIZStfzLJn2pn16ewKWqt9zkAKM+PkGfPb4/AeMReXrNyKJz9q6cSMlR5Gs7joOKQmtzGwAVlfX49QC5XAGrvIFc1qJywCS+892LGdAwgHfOu5x0qoVUppVh37uQxBmzULBQULEUHebPRjlrlvfc/vPmuiaAA0uBb5w3F86dh23bvABFGafk2AbRd3IOCxF0lU6ni/pK9JPsGg4EAl7dDaEhyUxLme0pC0uhsWmaBrabXt+RQLFMTxosm4a6AWRSO8gaLm3bHwrS2dlNZTiEZZoYtkNl9QA0zYdl2XR3uWX0bCw0bAwzT21dHfHuDmxcrGHN2g207NhAbXUtgxoGEY3FaBxYi2nlufT3/yp6r7/4y90APHbnVQS0oLf9upv/432+4cmF+4yVi3/zJ5Kd3yGVTRHwqwwcdxhwmPf7+d/7KfBTLr/sR+zZu5MRg4fzdu9vw4aORlV8VFfWe/vv3rmdYDjM7h27mT17DqNGjubjDeupqKziF5ddil/XmD17NtOmTiadTBXdSygU3CeY7eu0A8KUkGnNXzZJxconOP6lHgvTsb2UZabTV2HKVsB0bC+tmq2AYVsULNNlTapuYlNHVbzPpX+yuSHfj4zEC86A3DRFoZB1eRZWwaCQz2NZNqbhIxiq5re/vxZFiaDrFUydNJNYxWByZhk9KQtb6QU4bQ0NDdPKFUWGCu+BSL4qu3Gh2H0oE6RkNqT4y2azHsEsGAwSCAQ8PoPc5LJ5gJdbQpDRBOYg94scOSsLDJtiLcvIF9i7ay+7trvgbDQaRdE1FF0jEnGzImE7WLZNrmDQ2tZOR2urm6wWG8cyCQR86LpK097dZLIJ7rvvbmIVUbrjcS783nc54YTjGTpiKHt2bWfhU4/z1jtve9f/53WXcvf1l/PgrX8AoLyqkoEDB/HKoj7B8fe//Jqbr/uD9/2vP7mAe274E8uXPARAWfUQnlz4Xz76YLW3z/Ln/svy5x/2vv/30f+SS+UYP3q8t+3Vpa9SEa3mx/93sbctk8vR1taBPxiiuamVbD7HZ599xpIlSygri+BgkUon+GDNB5hOgYfvus471lJB8fet+28s21eQfVk7IDSG0hwD+2tilSt1ITqOG12p0Mf2KxQKZLPZosrT3upfQnWWt4tBLijYAlCTbXn5fsQ9y4VoBc/BNE1US0Gz3X10xa0pmMkZVNYOxbQcbv7nP7EtHdVRaW5r5oJvf5PDjxjOB++voKG2gmy2k4pYEMvOE9AUHDRssw8nMQyDlxe7yP+Li5Zxylkne8JAZIj2vAb0BVPJUZJyun4ZoxGRrLIwUhS3cpVPdbM7KYqComqY+QI+tddUs23XtvXpfRW/AZ/fj9J7DbuXEi5zpUKhCD49QDKbdnMd5vP4/EFaW1spD0cppDJEqquwVZWphx1GOBBmzepVvVR5h7Koq57nc1lMTSXgD9FdyLN82QtAknR2Bi3NTUydMp7jj/sxre1xAqEYF126mBNmn8Elf7jNu5cn7v0bur+crniKaNTFGBY/eSuR8DgUtQ/nOfrYY/nk888JSVjJju1bOXT8BF579jFOPPMCZn/jm0Xj5rabb+PDde8T0ftMibqqSv5115387LJLuPbv7rZMPsldd97HlKmH8fQLb/D0C/vOic1Puv9v/OsfsGydhQ/ewbnfvQgTCPSO8WUvPAxKaN+Dv6QdEIJBTljyv1qpySC2yUeLyS7MhlJuQ+nvssdC2NayzSwDkv0Jr1J7XGRKAsgV8mQLri1uGBb+YJjqSDnHHT+bt1e+RUdns6uaZ7LEysp45plnuOG2W/jow/dJJkzKy2vI5Xvw6w66omPaKpoCiuRJOf28UzxugeM4Hk9BpGfznl3pu18R2i4C0+SITOgzvWQTRGgWYruoqyF+k9+PHOgm96Em4zGa6qWIA+hJJHurk7t1LSzDwTKzrivatgn4NAq5PN3ZLt555w0UV5UjlUoxdNBAOru76EkmsCyLcNAN/qoqD5E1UuSzWTZ+spXT5p1IItnMe++t5tq/38JBYyeTNUymTPwdM48+gtv+7a785//w97y48A4GDR5Ke6trCpqmSTqbIRSOeve88JlFHDHtMD5Y+S5wAQDf+ua5xDvizDrzAhY9cg/DR4zgwYce4J//eRSA5r0trP1wLSOGj/HOYzoWNXVVGPRRwRc/t5jpM2dQWVHD7y//Pzq7Wqipqqajo5uZxx7P7t276e6MM2HCBPL5clA1snlXOz3z/J/y0uKHeG3pE9i2/rXzMRwQpsQ+SP6XNBlT2F8TA1KkQZejFIUpAuyDNchgpCws5ECl/d2T/BcKhbwJsWXbNk9IaH4XpEukMrz88stousKA+hoyuU4iEQ2jkCIaDXPpLy5m/pnnkEo7ZDImDQ21aKoNtsiopIJdnKAVrS/DkpwLU2gNIomKwBSE0JM/y5PYc2XSZw4UcR8kHEIUxhEeDNnzI78L6BMg4hrye+zu7kZRBMdEuITd9+dTNWzTQnEs/L3lAEcdNILJU6YwevRoBg0a5OUBzecMjIKFYutUVVWhqipHHXUMS5e+wuJnX2Dy5Mm8tuItxow9BE0P8vH6Daxd/zmvrXibpx/9D0ufcE2HYDCIZVkEAu5q6xgOqqbhD/fVwqipr0HBZljjIG+bokBPjxsA9slnG3nttRUcddRR3u+Lnn6WTz/ZyMTxE71tN9xyAwUzS0v7Xm9bZU01nd3dVNXWMGzkCILBII2NjdTX1/HoYw+wa/c2KqrKyBsZwtEAoYgfX6BvjM4740J6enpwHAej0MeJ+SpN+aoT8v9lmzf/JEcMKqF6isEGxR6DUuqzqqoeyCKeRAw1+dlKMQlZU5DdkvK1kM5TSmQqFUzyaiufedSyPwAAIABJREFUX1fgvZUf0d3aQyRcA6pCvqAycOihpDMJVL9FTWWEVCKBbVh0dHSQK5hcf8s9bN+9m8XP3M3BIyspiygEoxEyKXd1Nyy3gCmAbfbmx9Q1L2vTS4teYd5ZJxWZSaKvSr0vwvQqBSfF70W8DKe4wI+u9BGbBBfCAyMd2/NeyBwSYWa5pge81OtenXb4ZHbtbMEo2Ng2hAJ+crkCkWAIXQ+Sz+cxDYuMWeCYmdPp7mzHsVwi2Kefvee9i+qKEQSCPrSAH93RXG0jGCQa87Fr++c8tfAxOjvbicQGUNcwkKlT+mx9ub21/AmsgsHxp37b8wi9tvRhTpz7naL9XnjgFk79Xl/V7vfefA6AI4/9Rr/nBRg+qJHte5r2+zvAkoWP0NzcjF/X6OhowjDyRGNlrqD0BdyM35rfY58ahlt1vaWlhW9+/xIAXnz2YS8B8Lnf+tlXhiMPCI0BioEwWcUXPnWBoAvh4ff73YGmSp6J/3GN0kEub5PZiv25HfsTFnIrPUZ8N2yLugEuc87nd58rHAliFhzCoTKiwXI2bliPT7f4yU+/zeoPXiMe38Nf/nwZH3/4Hl3tHQwfNgZNj5LJ2eBTMDDRtD6NSPf7CEXCXg4F0UqFobxd3KNcZ1POWiWo0fvTqoSnQ2TKFun7hXbgOI5nashlA0vdwHK/BUIBbMcN9nIsE7NQwK/pOJZNd08Knz9KwVaorKll69ZtNDftIdHeRaYnycABB1Nf66rmkUgZ+ZxFyB/AH9AJh4NoukLT3hZQIjz4wCI++3wr999/L1MnT3AnvfiTmk/3o/mKwVecfafMqNGj9xkbhUKBj1YtL9q+ecMqHrjzZgD27Gne5zx/+9t1Rd9379xFLBzFyhfQUBhY30DA5ycWLaempoZgIOzNA9HP7e3t+HwBHr33nzz50F0kEikcR0FRvl7Y9QGBMbgrfh96XupWlEOxZXVV1FssYh72/pdVYtg3BLs/zkJ/QqA//sJXaeI4y7K8UFuxWiZTGWrrgowYNZwNn6wB0+SxRx9iyqSx2GSJ97SzefPHPPjwIoL+PC++8CqHHTEBw8nhaAYKoKt+6I0N0X06iq4RUAKe4JSvV2QmiH7qvTfDMDxyUn/uSaGVib6UC/u45lWxNicDw7KXRBYE3jtQFRSnb39fKITp2OiOTTAYdqNSbQXLcdB8Ko4CejAEig/TAMVUyRsZLBvKaqsoWDa0Q01NDWbBQHFUkoludJ/KwePGMe/Uebz43FIGDR7DZxvXM3LkSACC4TKadrfxwap3efyC83nwsScASKSSqKrKsuce4mRg6eIHwNFZ/pybis7v1zHzBZpabJY/8k9CZTHe/3ANqcThLjmqsponH7+XoKqQSCT48COVMWNH8cRD/yZbuJVc7noqKyvYsm0bA+oaGDK8r8bGM4/fTzYVI5GMg2X33quNoriLobtQWmQymaIU/9FolPb2Tpc34veh0Jd8+Ou0A0IwQO9EVnqBPMdBkVRfCzHAQRHIN8UTfX/nlNVloXWUujnFaliKIcjCSbGdffb3AEC1+B5kEyXoCxIod21S2wJN9eOYFp1dTZwy7iQ+WPse3/zuDxk2bBjX/OXPPPTIf/ho/afk8imGjRzG2Qu+zbF33cOVv7uIbHc7weoItmUBNqZpSc9loDp4bkzAC1oSplIpHVxXVHxSdh8ZpJVNLKG9la76rgeimEciCxXb7BNStu2WBXRUpcgcROo7t75nmHy6z6yxHAef5sMwkgSiNVhZBdN2yGRzRH1hYuV+LBxCkQh+231Xaz7ujblod/9FQ5W89XYzO3ZtR1GCvLj0Zdau743huP5v5IBfXX4BY0aPYN7cY3nwsd7373M1neNnnw/Od5l7xvd49flHmP2N7+93zC1/wiDsC5Au5EilEpy34IdFv7+w6H40HSqCEexoAMex+dOfr9/nPLoG0YoyVJ+OT9PJFLIEgj4syyTVkyEcDvd6hTSv3wsFt/hSNFaGZVle5qz+PGr/qx0QpkRpUhTo4x7IvncxSMXklBOlyq0UC1AUxcv+JHz0QsKKACTHcbxal6rj5qF0TAvFdrfLdnJpFiPFLtYwbNvGsm1My8KyHIK94GMwECCdTqP7/URiAVa8tYI//elPHHzweIKhCFdd9RcWPfUM4WCI2tpqNm/fgaNHeWLRMgY0jsS2FLBsgv4AmubDtC0yOZd/oNh97EahYQnQVQCvQij6fD50pY/cpZRE3on7l7NaCYEiU8hlraz0u3g/tm17/Sj6TAip0rwOigKRSAhNV7AcszcDt07eNggEdZr27MChgOUYlFXEQNPI2Ab4ddLZDJ2d7d65Dhk3jfPOcidwKtvNrt3b+N3vf8MVV/zREwpHH364Zz7c/9Bj/PYPf+XcC362z9h54ZkHvG3ZfIFH/309995ypbft1SUPep9nn/8jnnrySYI+P0cfdzoAb7+22OMRnHrW9ykvi1FZXkEkEuHsb/4UgKVLHmXR430EKttxa5JatknezJMr5Eml02RzBcorqwiHwx5QKwexWZbjaY1lZWVEo9GvDOzL7YAQDLLKL6v48gouE3NK7d3++AXiT0hT4Y/PZrNkMhnvXDJgJkdmlgqk8vLyIvVavldwBYm4tqyug42uu+f0+TQCQT9mLz/g7rvvpixWyZq1G5g7dx6mbXHfffcR1v3kkjl6EhkWPfcKhlLBM8+9TqyyETtvkU1kyOVyhMNhwuEwPk33zAqR7UnuH/En7FG5b8QzuCXt+8wNeRILr5HwzMi/ye9O7n+Z2CQLcFGxS/wmH6urNpFoAMcxsW0DkwKqTyUQcl2quk8lEvYTqwgRjPhQAyo5x8HxaYSiIX5x2aUABANlPPzY/Sy44Azv3OecfQbJZIJU0k3/cvnFv2PypEM4Zc50b5/bbrycxU/e430v1TABrr/+ej75ZCOdnV0AvLTwHhRUXnrmXm+fTzd8QigQ5I0XHuPtpQvJZrNFz2nbNql0gkxv9qolC+8hm01jWX1JjtOZFCIdoBzvEg6HSafTpLMZCqaBjUMilaQr3k2ukMfG8Uoqivcj8KOv0w4IU0KQiGDfPAjy4JEHYylwJTdZioomjpFDrsXgFEi+Iu0nI/AimaYsLL5MNZOvqykq+bz7wtOZOAFfhGzO4Nab/sUVf/orAwYNJ5dX2b61BRwfg0YN57+PPUVHew/JrgKTDz+Wj7/YxYzjTmbv9lU01FViO3ksy/AAQr8/iI2DLTEQ5b4Unx3Hwcy75oUq8Q7En2n1mhTiHfSDvXjMVMtG1zQv27X4TZO8FIqiYJkWpnQdx3FQnP5NQJ/PR+PgOiorY+zevZtMMoui+7EMm1Awillw6G6LY2kOuj+Ez19GWbCaQtbAMrPce//9wE/4YM175HIpho6s8s598223ct3fb+bpJ/4LwE23/33f9+b4CQX7poRf1ykUDMqifbyFo48+mrHjxvHk4+55ouUx8nmDbDLH4ofv5Izv/Izxh0zALBQ47tQLvONeXtLHfExnkiiKwvwFrnbiCgWLmpoab5+qqiq6ujrIZlMe9dy2bYJBx8U2TBtNcxe22tpaAK8qumAGJ5NJ732Vsnb/VzsgBIO8CsveAfGbbLeKJg9GeeDK7jl5ksjHAZ56LfaVf5PPFwgEMO3iYKD9PUP/2y0Mw51whpEnEAhTWVlJc3MrGz/7jNdef4ebb72VVSvf4LJfX8MF3z2DeFeeF199gsv/dDN3P/Y80yZNYmj5WB665x1sRydvFHAcyzONCgXTI4nJhCRheskrhkzSkkFes7eOhczcROqH0ohKjeLkLGI/CxtV6cNYZJKYaG58yb7ZnsBNX69GFQ6ZOJ7mpjb27G7B5/eRymSJhssxDJOqmioSqRzTjzmBlxa/zBFHTmPrtk9pHOhOkLvuvgdNsehobwJcjWDipMkMGDDAu9Ld/7yJnp5O/AGNle+sYMGCBcS7IrS29pkjmVwWvz9AXkodmEylCIVC3HTTTSw9FLq64ui6TigU8khEldXV7GlyXZGvPPswpuLQ1dXtnUPTNK+QMPSBtC0tfZmx77jjDn7yk5947yYQCGAYhtefQiuIxWI4jpsjM5lMepwZ4cJMpVJerdSv0w4IU6IU0IJ9sy7/LxxBDF5h28qg2/6abA/LXgsxwYRvWL7O/jQFOWBF3kNRHPy9eRYGDxxAMORH1TS64t2cPv8sfnjRpWQtnZmzzuaxha9w30PLuPwv/+Kgycfy8stv0FhTg1ZI09O+l4/eX0W2kO9z1UqIv5ikwWDQ6zsR61CaREUIXzHoTNP03L6Konj1K0r7t7++769vZKG+P8+Q2CbjDI6q9KrPKpaVp6IywpSpE6itKyMU9pPO9BAMujTsutp6Vr37PmcvOIcde/YwacoRnHe+iyncd++jXP2Xf3DllX2g3usr3gJUxo+bDMCPL7mccFSjoiLIU8+9w/wFF7lemlxf3gJVdcvaGxIGo+tuNu116zcAcMaCH4OikbMMzrrw5wDMOOE4Fj232H0+1fW0CTaq6JdMJsMzj/8bgAu+fzmKolBe3pfmbsGCBYTDYWwbKioq8Pl8VFS4uISLLzgUCjkv1B3w+CjJZJLOzk7y+Tw1NTWUlZWRTPYl3f0q7YAgOM09e7ZTeh8yn6C/Vb90oMrxDzL/oRSD6E/zkM0T0VTpdsQ+Rb9Lq67FvoKr7zw2AUVj8aJXOOmkY/lozWZUvZKOLodTzzybISMPJmeotLe3UldbRWV1ECsUwG9atGzZRnV1JXu2byLqS9M4uJq1m9ZimBlUDQ9AdKWS7QUlKYrCC08t8whOgu+QyWSKzCRFUTyXbzab9Uy6/ijnpduFOWbbtucNkYW7jGWUCnZXs+jDh5Y/43oR5p17MqqjoqquQC0YeQL+IKlUhog/SEdbN4lEkmhFOd3JDGWReo4+6liqq+r48++L0f9+m8xTUJz+f+tvu+IUhbw/+cidVFZWMvvUBftcYuGjd6Eoilc57dT5F/Z7K4v+6+4XCAQ4Zf73+t3n8YfupLy8vHdx6mOSumaFiab5evu2j4ZeyBuIYREKhSgvL8dxHNra2lhw4UVf2TVxQJgSpSuMPJhKwUDYNxek0BLEdzlrdOkgLzU9xD7ydRRFcfkujtOXHUpTi+IxTKe3noKkuosm379tuUFFAL5AgEGDG+nsNPnH9VfxwIMPM3hQPYPqGgnpZbR37GLIoNE0deygq6ubVSteZcvWTZx71mmksym++KITcKnOiuoCee7zKGhKX/YmkRKu9LvstnJUBSRzzCthXyKEhfZUmplb4C8eQOnYHoApvw8Zm5GPFy5oWaMr5E10RXefzXFdsblcb44Iw6KurgafT6OitpLGwfV0tKV5duHTOI4Kzo+YPGUe2VySQi5JU9Meho8YwqFTppHNJUmkekgcNYtNn33KmNGNbK8Kc8q8OcyYeTQ9nW0Ebv4Dn67fwOSbrkBBJ1oWRvernAMsW/wgJwNvvbKQnkSGTAYvYc69d95AeVmMcDRE3jQIhytQFIVk0sURnnnqvqIMY8J9CDFPI132/KOYpkk4HCaV6iMkpdOKV+cjl8vhOG7CnHw+Tz6fp7y8vNfb5hbqicfj2LZNbW0tuq57GFRPT09RmsCv0g4IU0KAJcLul/EGoAgVLyVqCJcY9OUfEMeKFVDm75d6PUrxC6Fie265Xh4F9NnsctWq/ijUxU0FwUZUFBoa6tm7Zws3XHsF2Z49rHj+Me64/teMrNU4/cRpnHTMOMYNjvDhW0uYf9p0fvKjsznj1JkMaqzljTfeJJVKgXAB9j6DrutoPt3DGTwOgEQQEyaFmJSC3CTXrOjPVBLnF/0i7ycXxNF13QtZBxcUE1mgxGSQa2h42xRV6im7SIiI+zcMC8vRURQdn+ankM2R7Ipj5QrEwmWEA66afui0SXR1NzFx6hguuPB8Pt+ymUVLllAzYCDpfI5oZTlZw2TLjma6MyoX//JK7r73STZtbWHVex9zzMwT6YgniEYrsEyHaNitkuX0JqbNZrPYtouDtLW5gVVjxoyhuroa24ZwIEw2kyeXLVAeq0RVdBzTjZ0RE1d4GeTkw4qikUgkSKVSaJqb4l9Q1NetW0dLSwu5XI5kMo3jOB7b1K0PUk99fT2aplFVVUVjY6OHYQQCAeLdPaiKRkQK/Poq7YAQDKXRj6J5rrReYSEmpczEk324pTYt7JuP8cu8CQ7F6c77myQCv5DvQdxrKRjqbrcwhabj1whHdOpqyqit8vH7y77PBacfw4wJdSyYeyi/+tGZfPbecu69+Spmz5jMD79/Dp9+8h7hkMOdd95OLFpJfU3tPs8q34OgNwNFLMj+zKUv6yu5//ttEq5RGgpfen4Zz/CErtn7J11D1RwcDLDdJKayQDetLIaRIxzxo2sQCvqprqhk/IRBRCPutVe8sZQzzz2DHU1tRMrrmX7CiTQMGUV1/SBqGhs5eOpY3v34A974cA0nn/VtbvrPI6TVKGd/68ds2RNnzac7iFYMJFtw6Enn6Umk3eforSuhKBo+TefM837Iggtdj8KME7/BCfPOJhQI4tN0YtEo0XCYQi5HOBhkQG0dfn8QUIlGY1iWQzabp1Aw2b17L4ZhkM1mvSjXbDZLV1cXbW1tBINBBg4cyPbt23s1CQfTdF3nVVU1pFIZ2tra6O7uRlXdvJvpdNoDItt6gVQXe/p64OMBYUrICTxKVy7Z5y0nGxUqrIjuk1VW6GP9yTRf2Jf2LANziqJg2fY+KrVstpSaM6VxFvIxtm2jaD4PsDCtDAG/ij8ABSPJFVdczsN338mqFcvZsP4DVn/4Kg89+hg/veRnTBo3kd27NvOHP15MLmHw9JPPc9UNf6O7o5NgzI/pFLBNt6KVZZvYioNi9lXUEs8m960wf0qfSzS5X4U2Usp89PoLPGRd1iRcLcvNxaDYfUlmSzW9foWOowE2qO57AOG5sMBxsBwTVVNxTAVXv8iRT0FNrUs5D0Y0/nPX3XyydSs/vfQSepwsf7/pOm649lqS6XaaO7ayZfNGfEoUw/HT0tzBmLHjuf72O1n98RbuvOth/n3XjSyYfwZrP3gfw+rFkTS3P30+jXAwxPNPPQCoqJq7YPkDPmxcEp0K6Lrqclds11uQyqR7i/xY5M08fl8QVJXGwY29HAcLx7bJZFNUVlSTydjU19WSy+YJR0KMGzeWQMBHKpUiFAqTSmXw+0I4NqSSaYKBEN1dcc8DpSgauqZQVVWFoiik02nkmiVfpR0QGoMgIAmTQrZfhaoKxQE8IhxakJYEMxH63EFi5RQqcykhR0xm+U9Wc2WAURxTqknI9ytUdtkUkvf1+/3kcjlGjxlDKpWmqrqWL3Zs43dXX4Xp0/hi207qBwwi4NfIplMo9NrtqsO27ZuJRsKsWvkudu9Kq2kKirov70MQnIRp0Z9mI7Se0nuUV3jhkZGJTbLwk5Pzyolh5T6XQ7T/l09dFi6yqSfMGXeR6KXHK732elDF0dx7mH/O2Uw74jBOPO54ME1GNg7mrn/eSH1dGR2tu5l93AnMnXU8B41sZM0H75Ls3oOZT2Dh47wLv88fr76aK/74Z+Z940wahgymvcMlMYn6mkbOJt6TJBKJ4CiuYLQdl3ps5PPoHuhtYRgWeaOAiYOqaJ5nwjZsMsk0qUSCndu2k+jswc5b2JZFwB9yz2UYFEwLyzZpatqD6/I2+OSTjXzn2z/g4p//gtWrV9Pc3EoymSSRSFBeXk40GiWTyXguTKFB+P1+uru7++3z/bUDQmOwbdujLAt7VTYRxIpXyngUv4noslKqrRhgcsp1ue3PfJFVbnkFFcKjP7Cx9HiQcjr0drNlmGQyOSor6+hJWjQOquPyK69m0TMLCcfC1NTEGNxQx97WJlTb4NFHHuHIGUewd1cr1bFBXPSTC7n7gd7ApIKBoitgW6iKgmWB6ZhFQKrIQCX62KbYbOjPrBLPLk90eSKXrvxCmxNmi5z4VbH73L6yAJJxof29l1KNwh3otutKVVwyWqFg4eh51N4cBH+95i9Mn3ki4w4ew+r33qWhsY5//OMqZp0wk0OnHslLi9+iorqCVDbO9KMm899H/8PPfn4par6CnOYn1jCQ8y/4AcPGjePxRc9x8vEuB2LHDjftf6IzQZ4C+byBoqlYtvtsuVwOTXEpzJGyKOl0Gnqf18qkifhDRMJhEok4iXgSVdF44vEnOOLIw7EsiyVLnmX8hIMZM3YsY8eOo729k/bOOJpi4mDx/uqVbP5iK1OnHs706dNJp7OsWLGCG2+8kWw2y/bt29mxYxc1NTVUVdV4NVgzmQyWZZFKpYo4HF+lHRCCAfrAwNKkLf3Z8P3544WNJa84Iq+DPBC/zG6WBYJ8XTm7kbhO6Uq7v3PYtomiuN2sK7qbJkxTKSuP0d0Tp7a2lobaGjrbdhPQwuTSPfh8GtlEiosuuZhkJk28M8PjTzzGh+s/Y97808hZefz+oPuMllE08WSNQdyraLqvWODu7z0IIStrbKXmlSxA5XchhIRMqBKCRgZ+oZjDIF+/v3tTFNeLgiSwFU3BMHOE/G68y/PPL2XR8y8xfvw4zjzzdK648lcMGDqIYQdP4NCp0zFzQSoqqyjXbNLJPVQMGMxnG9ZxyinnMW7qdDqSOXZ19nDElEPoaNpFcy/hKN9be7QrkUT1uaaFX/F7nodAIEAmkyIUCWPbNtFoFF3VME23ang2m6W5abdL7S4YtHV0EautJJ5JsHnbVg6aeDDJbJo9LbtpbGykqqqCSKTMi/0IBsLMnj2bL77YgmUZNDQMYM8et5BNIpGgurqarq4uT0vO5XJuiv6AG20bi8WK+DhfpR0QpoSsDQhVXqC3Ak2XB0zp4JFdaDJdudQrIYSO7OWAvsErxw6UaimyxiBMHihOHCP/yba5Z4b4fdgKpNNJkrlW9rRsxjQStO7YQZnuIxuPk8mmyabSWLZBPp+nkHc4dNqRWJbBHXfcSjgcIRKOYRr0Ao16r0rveEi1PIFFH/aX5q7ULdxfv8q5McTzimeWPToyUChjE+IY2eyQBY/c+juvDOh6SXsB07YoFHL4NZ1jZ8wE4OeXXMbGzTtY9NwLPLbwCZY+v4RT553FpENn4g/ECPodWtv2sOS5JaQNh6OOP5WxE6Zw9inT0XNxCtkCBd3HIeMPZv78+a4HCLwI0Lxl4NhgmTatra309PR47zeTz9HR0UY2m0ZTwMjn2LrpC7raWrFNA59fY8fuHcTTPXQkuzB0h893b0UvDzBtxuHUDqqjI9FFc3sThXyWaDhCY8NQVMXH8OEHsXHjRiZPnsjoMSP5YvOnnHHGGV4VcdM0OeGEEzyBIFL6iexlwjv0ddoBIxhKVdvSSQZ9XgHxWVb3ZTNEbJO5DWIb9KnDAqCUz1HqkpSPF03WHvYX1iowB8dRvLBsG4tIJEQkFGTG9MkYhsOkaZNpauuitmYQAT1GNpmjkEnS09nGHf+8nfPOvgCfGuCEmcfy6ccbWP3+Gtau2YCqh3Acd3XX/VovDqCjqnpfqLiiYBh58vlsUWyIeKZSlqksLEq3y7+LQScEgdx3peeVf5ddkKXvpPSdin084eTYmLaF5djkbRNLtUGDgmOx4dP17rn0AAY6gbIy9u7dxeihgxk5/CBwXPffufPn8rerfwdmBn+ohmCkipkzjueKX/+SjrZmAgEfBx88hkwmR3Nza1HuTIAdu3fhKCq7du3BsSGbyZHN5GhuaiGfyRMOldHdlaAnkaW1o4vK2jqGjBhJ3jKoqqslEAqz8v3VdHR2M27CIbR2dJLIpHjz3bfoSnaTzqb47LPPyGQytLW00tLcgWUp5LJ5pk+fSUtLCyNGjOAHP/gBzc3NrFy5kr179xKPx9m8eTMjR46kpaXFqyIWj8dJp9NFC9xXbQeEYCjlF4jBJfvYYd8ozP5MDiiOt5AngjzAhUYiq1j70xZEE0BaqeutFNSUJ4HjOJi9BW0N2+olmtgodohYWYR4wuTDDZtY9/kXvPHOm/Qk2yiLBBk6sIHzzppPPmvy7QXf4p0332TsqINQNR/d8ZQbOGX3IviWhbUft6Os6gsAT87MJCZ0oVAo4j30l3sB9hWqMsNR8PPlCS4EtRwuL7+j0nfYn/tUBktRdS/oTfPpODrsbXNV/r3NTZRXV4Fi41gGqmYRq44SiIYwbPjBDy9h2rRp3HHngzTv2kuqp4OgpuCP1mLrAfwRHz7bYtGzS3j3vffx+Vyvi9EbBIfhsHXrdizLor29k1QqRWtrK5lMBl3xk8uZxGJVdMUTaIEwf7jyalZ+tIa8ZbPomcXce/+DVJRXEQ5H+HT9p9RV1jJy6HDKglEUR8Wv+2iob6QnkSKRTPVGUwaprKzEMAxGjx6L3x+ksrKaadOmEomEPAxBjMloNOqxfkUWb+D/nwQnWc2R3ZVyqjfoG1z94QSlK5JsHgjVX14BZdRcvraM1MuCRL6+bFOL40STJ6Cwz3WtV2MwXK59NpvHtFwf+cfrN7F163YUBwY3DKKhpgIn3wNGDjtXIOKDWSfM4MYbbmL02JGUqzqdbU0UCjlC/gj5nIOi+9BxvRRumLc7GV2sQUXX/UWaUKl2Jj+PMEdETsf9mRhi0Ik+F0Lcsixsw+wtjeZqDCIVn64WsydLQUYBmpVqE0WLgWUUmSiaontxAH+86o9kU92Y2SyqTyVSUUnIp6MaBprlcMcd9zBl6vH8+pe/YsjIYdQEVT5+/x3uve9R8oZNsjtOdybN9m27OPa4mfh87rjL53rHlO4Cjd3dPRQKJl1dcbLZPKlUio6udpqammhtixPvSdEZ7yZaHqOpuZNr/3Er4ycdytVXX8nQgYMwUgafffwZP/vRT2jZ0UxNZT21lfWURSoY2FCP1YtNKKqF3x+kqqqOUaNGY5omY8ccTFdnD11dCcLhKJZlEYlE2LhxI9u3byeXy9HZ2elbQ/UNAAAgAElEQVQxJP8X0Lu/dkAIBtlkEIy50u3yalO6OgsBIOeLlNmLhUKhyJYWdrAAykST7dpS7UR4PACPKyCDb+I8YpLIbrs+k8S9n2DQTzRWzohRY6mqaOD91R+RTKcoi8Vo6+imJ+vQ3p3jj3++lvLKSro7u3HyWQK2wS03Xss111zD7u17yWRyFIxckWtXBvnkySuv1GLSy88rvotnE/1UqimUPp/oH1mYyuCmADMNw/Bo5oJiLTgOopXawfL55Hcs37dRcME1gAljx7gh3VqAKYfNJFIzjLnzzmDHti+wnSxPPPNfRo4ZwrTDJ6Ak0nz43ho++mQLdzzyBPiC1FSW88WHq7jlphtJ9SQ8F19XV4f33oW24lbs8pFIJMhkcuTzFqbhCsHu7m6CviD/H3VvHiZXVa3/f85Yc1XPQ7ozh5AwQyAMAcKcMAkyCAp6kUnF+1URL44XFRQQvVflCoroxREHBpEpDFFBQEBmEiAJmedOeqjqmutMvz9O7VO7T6pDovf5PXE/Tz/dXXWGffbZe+213rXWuy699HKmTp7Cs399mreWvIlVrXLIIQdxwgnHccWlH2XW3jO56orLmdjdS1Q36e/uJzs4QtSIUSmXqFT82ijFYpFNmzYRjUZZs2YNpmkGG1pPTw+Jeqm7VatWsW3bNgqFAtVqdcw7+JfUGGRVXFCeywJBNPG3wBLkySsmnLzo5R/Z5TieZ0KecOHdSggRz/OjC8WkdhxnDAX7zgJ5NE3DrlfJKler9PT0o6LTmunAcRzWrF9DKtlK/6Tp7D37QD5x1f9j/nEnsd/+B2JoKjENTK3G6HCWbVuHMdUoiuJ7PjxlbBi0+Ft+ZiE0wuMrC8sdAD+p/2GBKmtQsskiYy7yd2IcRRy/oNkXLZz0FjYrwmahoigonodVr6Vw0w1f4/VXX0bTY5ixNk465WxmzZjOIw/8nrfffJH86DZGhjezad3b7Ld3H++uWspRxx1La18fnb0TUBybV555ikJ+hN6eLvr7+gACV9/ISI5isUg8HieVSqFpGt3dvUSjcWq2ix6JoOkKe82cgeNY5LMjLHnjFW684aucc/aZtLe20N/Xh2lozNxrOps3rEd1HQY2bWRy3yQS0QSJeAZVVYMiNyJOoVa1cN3GOPT29uK6biD8k8kk6XSaSCRCpVIJ3oMI45azO3el7RHuSnmXk6PoYMfJIVpYjZfVfrE4haYABMFQ8sQO2+JhrURoCXJf5AKuchSm2AXlz8Iqu+25qHYNTTNIpRPkhkoUsllm7zWNH//4x9x0w+cp5Qcx9CIXnPEBjpo3n5IDhxywP08sfpLJk7uJZ2IsX/I6lXyZWCxBLKJRKI+iK1odeLRQJR7FMTu3s2MVL0VRxgg2YZ/KwKEsOAQSHo4vESaFqqoohl9ZS9xf1LZwHCcgk9V1vwiKzEsgu5zBTxoVw6dKAls2QRSvAZKausJVl13CMy8tZU2hwL77zOKLX76OammEStXiw5dcQUtLCy8//yx33/NLXluxlJ6JU4lGkoyOZElqLmvWL2fOQbNZu2YVbs2/bt/ECQB0dnbS0tZGdniYlpYWhoeHg76Ypk5rW5JoVCWbHeSYY+f5yU4lX5BUKhWiMZOhbQMkYiZRU8OzamiKwoUXXsiDf3yUqZMnM7BlKygaxUqFuBKtp1xrlEoFRkVwlecxOjqK6/qRjq2trWQymYApyp+PtcAU1HV9twXDHqExiEUoT8Rw0k3YT1+r1cYEz4jmOE7Aoy8EjuxjF/cSKrEMdMp8hmF8QdxHnCNH/IkFJrvh5H6Lpqo+GWrVrlKulojEDSZO6mL1qhVUqjYeBo6tsOTV12nLxPnGV79MT3uGRY8+yj77HcD+Bx9CazLN408sZp/ZexE1o5TyFWo1G9e2cCy7/qwNXgRPVfz6j6FFLL4Xi1QWfuJ5xG8hKFRVDTJXZfelPG6ChFRgOJ7nUbUt7DobtHhvYrcbw8cgLfww1hM2JcT9fe4G/xr7zp7Ob371v5x71kKWvv4qG7Zso2vyTCbPPpQD5h7Pbx94nB/d9VuWrx/mgDknE09MxK4aFIdyLHn570yb1sf27Ha2bd9MrVwil8v5z1iv36GbJslkGlU3cWx/kxgcHMRxHIZHBikW8/T1d7HPvjPIZgepVQo4bs1nbFI9qhWLeDxOW1sLmuaX+qtaFoODw+x3wP5s3rqV1rZ29EiUXLFCrWYxMjJCqVQiHk/S2dkd4DtivCuVis8jWndNimhXIYxF9XKZ62FX2h4hGMKaQDMbP3x82K8u79Qi9kGknQoyi7BaLzQLsQhkoFJcW/wez+tQqVQCm13Y50IgNTOFgmtpKq5io0cchvM5qpbCn5/6O46i09M7idtv+zHfu+Vb/GnRItavWsVXvvQlFi/+M5s2bGb+vMPQDT/nv1yyiJkxFKWuZblj8znkOA4R0xCNRneIBpWfUTapxGIUqb/y84u/ZXxDFiqyBuU4Dp6qBOHqchq3/E5kbaHZHBGbgSzwtTq4u3z5Mi684Bx+fdcdfObfL2N4y0ZGcyVqXoREay+2Dbaj4Ko61ZqKY4Ohaixf8gqPPPB7PnnFpdSqZaqVIpokcGpBiLlfmSqZTOK6bp1IxWbixD4u/+ilTJsyGVybWDwKrht4BgzNr+4tNFWxoE3TJJ3yyVemTZlKd3c3pVKJasUCTwsiF0VhoVwuTyyWGBPbo6p+mcFsNhtEugohIVyWsViMdevWjbP6mrc9QjA0EwDyhGnWZFAsbNvKLkRxrbDtLGMPckCODBbKqu14gUyyNhI2HZo9g6qqoChUHIuqZzFl5hQ6uruYPH0fFj3xDJ+55gtc9/VbuPCCD/Pmq29ywrHz+eGtt3Lt5z7P4seeZObMWVz92U/x9tJXWfb2O5hmFEOPEDWNHXZTuV8yKCueMewVkM0GcZ7QwMTCl4WOrBHJWghKIyVbdpUKASHnYOxScpX0uRAoDaHeMP+yuUE2rl1JKgql7Fb64y52fpgTjj6Kvz/zV+z8Nl559nH2mtzFRR88jU99+mK2DS7j9IWHk4m5DA9s5sgD59Ld3Y5haGRaWgACWjRFU8mN5rEsi2QmjW3XaGtro1ar8Oyzz9Ld7e/oZj25StdMHKeB4/hBaD7A7leTMtBVA892cFyL/fedjYJHrVJBRaNa8auZVyoVhoeHyef9e1drlTHv2XEcenp6MAyDSCRCW1sb27dvp1Ao0N7eDrDbkY97BMbQzHYMA1+iicUmJmU4DFrGCQTKLi9qMfEFN6KY/NCoVSiDcrI5Iq7ZDAMREYc7w0aCvqsqmqujqzaeZ5ErO6zasJHOlgTKQJSvfu16hrdsIu5UWLlyJYsevI9IMsX111/PuytX0Dl9Gm6twop3VnDCGScyUtyOYYOrjiUpCswYD2zHxsEHd4U5IJsNYSEmYzPyGMpmlixcZO1L1rTkd+ofM1YLk5sAdIXZoYTGPDw3FA9cRceI+Ah9/4Re8oUROlrTvP3aK+hKgsndnXzh3y/j0ks+guE5fPqjH+D1N99geN27rFnyAv/xsUtZ9NgjbN60lrgZIaInqeTyVMsVEKHs9WFMxNM4dpVcLoem+IvcrpVwbYdKrcy++80iYibwXJV0Ok0hX0LXIqiqiPsAVfWfM51OU7Ut8sVRHMfnWIhG4xixBD3xDI7jUSyWGB7KYpgKXR3tmLpGoeAnTPlYUsM1ns/nAw02k8kwffpeZLPDQS3Trq6uHdbSztoeIRhgbFafbFuGJ094Uco2vJCKQrUXFZZE4I3wXAiBEdZU5IrRskYh/g/7g8PAnNwnuf9hNF3TNDy7Ti5juUR0n6hj64aV3PGdb9CWiLFs6yaOmnMQ+x10IFdc+QkSra3cfd/vKVUdMv3dHHns0Sxe/ELdV61jKAZVxwpYyOQxFfcXGIEPlpmBBiGeRfyWF7LADwTmI4+XrEWE351sjokxqtVLzjWLVRD9cxWfWTsQ4l4jCjNs5ngK4DXe+6IH/tJ8cv0CfsoPAfgR9doNgsLNU+AyuJ9FjeP3ls5VPNTvfzuYV7lcDtM0GRoc8QWf59v85WqJ5cuXM3XqZBRFZ+uWbbS1tZHPF1EUvwK5WzcvxGJVFZ/Mt1gs4nk+EcykSZPYvGkr1WqVWCxG1DAoV4pUKhVcPN8DUrOJRvVAKPiu04bmtXXr1kAop9Nptm/fvttksHuEYGhms+7s2GZNdl3Ku5sotCKbG2FtJKyWyZNP9pvvagvbznJoteiToviVmmKmyaSJfWzcsJV9992PWDKGoXjc/bu7qTglDjv0ELLFUSbtPY1TzlrIU88+z4S9JnPwwfMYHKhQLJaJpDQq5TKKvqNlKKv+itKI9RBVikzTDCZrOIgpPEZhASn+DmtJYUEoYxy24wQFfXYYV0312akkwaPUr+d4Ho7rBFycQgB5nothRFh49gJc14N6kJeieth2jWoF2tNtvP7K3/jpHd8m05KikK9xfP2Wzz7zEFu2bGFCby+6ZuLZLkY0gm27HD7vRAD+/dP/AZ+6FkXx50Q0GiWaTpLNZv36nTWLzs5ObMshmx0llUoQjcZxHP/Yql0NCHQSicSYwCMhmCORCJ6qEMGks9Nh8+YBLKtGteZnHRfLfh2RWCw2JidGFtwCBxIcJclkHFVVAxLZ3Wl7hGAQrr6wUGi2GMOLTv5c3r1l8CuQ0HXVCxiTWCKOk70cwkyRJ7scPRnGHEQbs6M1WSjB/4qHoqpUKjV6etvZtm0QTTN44I+PcOLcgxjKlzn34g+RHxninvvuZtv2rRixKMccMwctnaRY0Dh8zqHc/cd7mHvcHLSIh1dzQBtLQiOzX7lKo9/xeBzLsgIBIfe9GSAoex5kLUHeyYUWJjQ2WXsSZDrBgq4nQ8ncq4/d++RuzJrdbyfxb41/vAsBQS4/TgtNP01V6O7uplwuUir5mmgmk8F1bRzHDnITjp1/jB9DUCv7MQWujut5OI6HrmskEqn6Iq6RSMRQdA3bszG1KK7j1pmgY+RytfqCt/AcB02zyOeL4Hpoiopds4jGfa9DuVwOAPByuUw0GmVwcDAoriTXrNiVtkcIBlkNei/QEcYKjLDwkJOsZGEhFogc7CPXPBCTWxTtkLM0ZXeZfB/ZxSrHYoQFRThKMMjudEEBNMWhVCrw6mtLaIkegJFKc9+DD3DTzd/h8ksuplLIEYlHcDwH16qx6u3V9PfuwwvP/o3cyGj93jV03fA5GVDG3Es0t04uIrLvPM8LFrMsTOT+y30X38lu5bCpImsBQsUXwloev2A8VIUF556E6jU8EWHMqFmTtTAFP4ZDUVQ8z4U6mayLx+L7/XJ0Z597Jg/c9xDf++6XmTJ5Imef83EAXnvhLxx8hK8/vPTCY7iOim4aRKNR9t3/SABu//53qVTKVLwK13zhywDc++ufcd5FlwDw/VtuqIcmp9A0hZHhLPFUAsdxMfQIlm0TqUcrWhWfvk1UlyrXrIBRulKpEI0kMYwIqVSCgYEtdXejjlUXuHbNIpXyBUsqlQLXG8PaJTSHarVKNBqte6KiWNaOKe47a3uEV+KfaeGFLQfbCAIXYMwuJ14KjGU8CscdyN4J8X8481LuQ7MmhxWLhQOgqDoevrCKJFT6JvbS29dPoaby2S99kUuv/ARdLT0sfvJp3lmzgQcf/xNmrJVCOc6UKbPo7e0lNzLIsUfPA0vDrtSBV2/HJCoZL5GDvsJeDPEsOxtrefGHMRfZjJNTzpsJhB3GSdoPmgnYcJOFtc9i5eJ5NuCC6/HE/U+y+P7FnHX+Qha+73geuO8hAH519z1jakccfMTxPPD7O3n9lSc57IiFjBYKOHiUy0Ve/ftTAFz16avrEYaN/px30SX85md3APDpa/+Tz37xa3XTLMqaNeuIxeLYtlMPhjNxXJ8F24zGMaNxHE/BrS8/H3T1iEQMiqUclUqRSZMn4Li+V6K1tXVMlXERVyKzgUej0QCEbGlpCUxo23YZHR31yWN2o+1RgmF37HjYUbsQE1NM+EqlEkxU4XLzPJ84QzDtKooShFfbtk2hUAhiE8Q1ZTZlGceQ1emd9TFsfohndRUwogaVSolJk/vJjRbI54v09vfxxGOPo6Jx969+y14zZ3Pm2eezbNlqvvyfN3P6mZdw2hmnc/AhB7Jx/XqWvvkWimsG6mR4wYomB46Fn2FXx7qZG1g2lYTAkJ9Tzp3YvTfcaOOdF8wBxQVlR46HP97zGC4ep5xzKgDD2SI33vzt4Ps3/v44/f39DAwMAHDygnN87sa6bS5aPB4f857/+6avkc1mueWGrwSfCVdsvlRk/fr1QXGYaCLux46YRqDFifdgW74J67NA5wPcp1AosO+++xKJGliOP08FmA6+Nia8Ra7tMDQ0RLFY9DGNOkeDomjBNXdFE5fbHiUYxuv8eBNX1hLkSDnRZO+A4H8UiwMIwpsFnhCJRIjH44HmICO5wlyQ7yd7HkTkpEzFLrs4d7gGCio2DhYuGo5jUalkacu0sfD4s7nlpm/z1juvYjk2X7/um6xctYlv3PLfLFuzmg+ddx63fftO+nu6KWVzbFq7gXyhjG5GsFwHy/EnT0NA1BeM0yCrUTUNFCWoYSmPaTOhIQO44tnL5TKKogT4TTNBEwaFVUmIyNrUePMh0Aykv8U4Bl4LT8VzNTy3TuunKpx09snBdZ548CmeuH8RZ51zIXvN2I8NWwaD72zXplKpkUq2B58Zhm+r/6Zen9L/zCSTaQ3+nzljL6xqjZaWFn7/y58E422aJoaq+bwIsQgVx8Kyqmimz+gkckQEgKgbfoCSaUaDuee4FuVKgc7uVsyoTjIRI51JYhgK0aiJ69pUq/7mZjk2mtEgNnJth9HRUZ9Fqh7sJMDI3Wl7lGAYr4WjHEUbz4MhA5Aiyk4c73leIEFl0FMOwBHfi4kPO7r+ZGRevm9YiIXVetGESePWyU1NU6e7u5ONWzby/PPPsXXrVo6ffxxfuPbT9Pe28YPv3kxHa5xf/+rH9Hf3csShB/PEI/dQGc1y5KFH0NnZgaqr2K4VpAuHsRhBGKMoSoD2N+uvrKaHXWxhPELUR5ADw+T3MsZF6+0YDbqznUw2E8P9FJ+pSoMQVwhAz3FR0Zh/6nxOO2chC848CYA/3v9bzJjBgYccHFynVC1QLOaBhoAsFS2KxQqHHXZY8FmlmmdwaHPw//qNG0imU5imGaR9i+QwwfPx/HPPY2r+wqyWfDo+TfNd00LAppIZVFVH0wx03SQSiTAy4rtCHbtGOpmiZldJJuOUqhXKVV+zSCRSqLpWr13qF+VxHAcjYjJhgp/b4ThOQEsvF2HalfYvIRhkjoVmGEC4ySquTCkmJqh8rjAzBCYhE9GKgKdmkzfsYhUeAFlr2amNrNbrTnr1xaN69PR2UyqXeXvZcg4/ch7Dw1lWLl9BcXSEH/zPf3Prd2+hUspy969/zXnnnEVryuCqKz5KRNMpFfN41KnTvLFCS/HUQCiM6QMEO7HcxAIWOIHQrGShAX5NxYkTJwYZfuFQcvHOhMCVj2lmdoSb/H0zz4+4vt+nupam+fd/4oHHeHrR09hVF9c2eP8F5wEwWhwhlWmYCE899Veu+sTV4MbG3NcwjCDDUTSR3g1w1dVfIJ/PUyqVuOyqqwGC0Hs5WaxWqWJVfEygVCoFodS67lfcajCSN3hCYrEImUyKbHaY3v4uVFUhX8yTTCaIxXysI18sUKvVqNVqFItFCoUCiUQKux4fI7KUVVX1CzPbu0cfv0fUrlxwzklBJ2QXGDR2H5mvcDybPrxYoeGWDEcwyscJJFd2d4pgIHGdcDiwuIZsJoTtbTm8+LF7n2TBuScFffU8D11RfQ+CqmBboKlRXv7b63S0tnHQfvtQ3LaGoYH13PLtb7J+03oM02T9+o2MbK2wdtUy1q5ewrVfvIWf/O4hvJRJ0R7BMDRqTo3FDzzNaec21GlXIWDiFipv2Isg+i+7XMOLXXwnNDKhMQjhIY+t7LWQ3b9y7IMY/2YaWHhuht/dmOO9xpx47L7H2aEGZXBRgUl4Yz8br2blzs6T2g++/U3aOtrJ5XINkFZXaG9vp7+/n9HRHEbEDGJIolF/4VYrpbpG1uDJEN6cZCrBmrXrwNP589NP0ZJO0p5uw3E8FFTa2tpQVZWuri5s20VRfA05mYxTrVYplUqB1lsul7n8k9fsMtCwR7grm7XwghOLNTxZZNtXTHoZ7BKTTp7wwA6LIQxcilRkoXWInSBAwkNYhvDTl8vlYAKL/oaBOB+TqKHpEagLPUVVcdwqDh5aPMlfX3gRs5zFKgxy7+9/x5FHz2XypH5GNg+wamgtb775KqctPJ47fvQ9jHQ3jy96gWMWzkdVPUytXk/DFfyKDoqiBZl34aAk8YxiHIQgFaZDMw0ozIkp3oNospCRn12My84EQPjzsACWv/fqGENYqTvtjDN47Y0l2FUbUzfJFwvEM1H2P2OB34czj+OVF//O3tNmcvSnr8H+xDXYWFz5iUt49c0XmbD4XjIvPo5VcRjYPkzvc39m2bJlQSTEL+/6of88jkutUqVWMxgZGsaImGMC69avWQuOy6SpUxgcHETVVTKZFPlCDsM1UFWIRhvvpVyuYllVDMMgmxulpa0DT1Gp1KrU7CiReKRODGMxkh2mr68PFKHhWXXh7wUp7fG4D3wKL9yutj3OlJDdanIqtPgurPbKATxhF5qiKEGsv4wNhIOTwn52WViIv+UgIPn64n8RSCJnF4rdNIxDiB3bU/0CKv73LlXbYnB4O2s3rCeby3H+OefywQsuoKujjSmTJnHpRz5MR2sbPb0d5ApFNm3ZSiodpyUTo1apkk6mURRtTMKMDJZ6njeGHQt2jFsAX9jKfnB5LOTzxAKXY0JkQSCE6XhuTbkIULN3K2Md4h3LniH/RmIKj53KmmrguSpW1Q8Tt2sOOCbvvLUSz1FRiHDwIXMZHs5SqY1QKg+QSasMDw0wbepedHf31rNzq6RSCSJRDdtpsCCVSiXy+fwOLkMxPmI+xqMxisUyqqcG6v3IyEjAQyEK2Pr917Ftl0KhQiyWorWlk2efeZHXX3uL+cedwPahYZa+9Q61qo2mqYyOjgbvCfw0drPOu5BKpYL52NbW9q8vGMQkEQu6WQZf+Hi5hbWCcOHWML9DeBcT9w97PIS7M3wvMZmFGi3SXcX34eMDNN1tUNE7joODRzqdore3F11X2WvGDH71q19RrhR5a8mb3HLzjfz+N78ln83z1NN/YeLkPqo1m1gsgqbDPnvPYnR0FKtaC0hSVE3D9byAUk0IuLD7Kpw2Ho/Hg0Ao4fKVF6jADOTMU+Fb39kYhcdA5sZshuOEgccxcSBNQV01eHYF8Gz/fWezWaZNm8bM6bNQ0Fm3eg2up9LdNYENG9Zx8UXn8blrP8mHLjofTVNIJFKsXr0GxxEVxnRqtSo9PY2iLR/75DVB+LFMDCQn4Yl37PNEjgTCQ5hV4njbdrFtF9cBPA3TiFEsVHjyyT/z3HPP88ijj3HYoUdQKlaIxRKsWPkuv/nNb0i3pjEMjVxupOmGmUqlAvAxjJe8V9vjBEOz3VVmZJaJPWDHgibN1NmwcAn74sNuOYFLyNiG8C/LbkoBFglPhxBE4Ykvq9yi/7qioysqlVoZTVMwVI3iaJ69Zk7DquQxDJVps/emWKqxcf0A5XyRjZvWMHP6BDynyKzZM0mn0yjU2LJ5DY5dpjBUwDCjOHUQ0rFcdE3D9BoagzwOYlzlvosxEABaOHGqmZCQx1+0sACW30kz7EAWAmLMBfApxl30XSwuRVGCCtn+jxMAsJ7iohsKjguTp8ykWvGvmUq2Ekt28saryynVHA476lg+ftXHKBa3UixuwKoWMFyblkwSy6nhKNDalvHDittawFP44f98i+986+vBZmAYBiq+S9zQdCqVSlBYtliu4HkKGzZsYNvgViLxCJppkEyk/bBou04T6CoYmoYZjdDb14th6Cw8ZQHvvL0SQ09y9vvO4+pPX8PGDQOsXrWJfMHi1RffZuPaQUZzRWzPT/DyHIdIJEYul6+zPLkMDw8zPDy8y2sQ9kDB8F6tGYL+XseNBzpCY6cXk9z3KZtj8Ipm+IaM2oudWGg4ghwmAKGamB+e5/8YRqS+a9SoWRW6uzupWhW2DGwmnkwRS6U4/Kh5TJk6g9HRAtncMIfOOQTXtigXS+iaiueWWbd6DW+8+gaO46LrPsYQjUfqwnVsCrTMlSCaTPMutCwh9GQCGhFNGhbQclRomA+jWduZpyG8OQi1XIy3X6TVDfI/ms0HRVFIpFMY0QhbB7cTSaQYGBzB8hQKlRqdXX28+PybGJEMy9/dwI033cLaNetR1RqRmIeuuigeGLrO6OgoZqShZU2cPIn2tjbS6bT/7ur1LgRrkphD6XQa0zQZzRUoFsvE40nWr1lLe0srlWqJtpYMmq7gujaGoaAaKi0tKVKpBJmWBOVyiZtuuhGrWqOrs4d33n6XN15fyuD2ESZMmMXsmXNZcPL7aWvpw65axKMRapVGbIlhGAwNDeF5Htlsdtx30az9SwgGeXGG205dgpLaKYcli51MVgPFQpEjHGV0Xp7IYSBTXkzCPBD2udwP2YRAVVE0japloetmXSPRqdaKdHR0MJzL8vIrr7By1Tpqtkc8nmTbwBClWpWz3n82uVyep59+GduB4eFh9prRQ0yPEo+kMFT/mUrlAqo6NtRb1nbk5xOLToyJCIqRtSLZfNgZHhD2duysycIqnHgFYwWwUMHHI96Vx9pyLVpa0jiORSQWpVSz8LQIyUwb0ViCeDLNlGl78bfnXmTW7H14Z9lqDjlkDl2draxe/RaxqMaqFe8GxWZE/8C334eHh+vCUUXTjCAYThTbFV4BXdfJtKRwHItlb79DOt3Cu++uIp/zw5RVDyxLMDq7eDjkCz7pbKlUorOrnVxuhLa2Nr7znccdn6MAACAASURBVO+im3E+etnHOOXk0ygVLTZu2MasmfujqnUTEbeet+GXr4unkpim+a9J7dasyZNqVxZ/s/ObIeIy6CWEhVD/hTCQvRiymhsGLqEBMskut6C+Qsi9KjQQoXoLJN/2XBw839VYq7LP/vugmwapji6e/fvLrN00QM3y+P3v70Ux4/zhjw+zZs06LAcSyTbwTI477jgmTujlnSVLsWp+31pbW+seh1qQ6uzZ9bTnUHyBeAZZiMrAYBh0HO9dhD0YYXtbjJf4TC4oJASAuFZYW5OFgewKlX8QfVM9NAMcLFra05QqRWzHIxFP4uDw9rJXOOH4eey73ywszyWe6uDc8z/Cyy+8SkdLEkNXOfjgg1m8+AkiER+AXbdhEwCxWIxDDz0Ux/bo7Oz0x9FzKVcr/rNoKnrERI+YdYymBppHNGay9M0l9HT18PBDj2PoCRzLJqJHsCwfaxgZzlPIl4hG47R1tPPLX/+CwZFtbNq8AcM0+cCFF3Do3DkccPBkDjhoBnOPOJC/Pf8U5WIBTVcDjbVSKdHS0uJrWJUymmmwO22PFQwwFnzalbj+8M4OO6Y8h88X5oOI3AuXbZdpyAQfpDzBxa4qE5mIcwVpbRiVb2Znu66Lq4Ae0YlGTaq2RaFYJtPWycRJU3juuedIJBJ09fag6yq54SzHHzuXkZERZsyYQSISxdQcVix/B9PwEeh8Ph8sJq9emDWg3bd896Rfmt0OMIYAUJTGq1mItNx25nocz80oPhNaSrN4/mamRbN3Gx5H8J0Vba0ZYjGDaq0EuPR0dfPqa69w4vHzufnGr3Pdf36ehx+8n6OOnkfFgrXrtlOuOTz88KO+V8PzOPzww+shyFX22msmQJ2sRadUKrF27VocrxEQlcz4QVByYFzFqvngnwO4LsXRPB/84IVs276VUrlIpVrCdW3a2too16pEIjHeeH0JZ5x2Bu+8tZTn//ZXHMviS1/8PF/64n9w0snzWXDKMRxy6Gx+fOetVGsFSpUy27cNoqkGsZjv8cgV8sGcFJrPrrY9No5BNHkHG087kFt4MoU1j/FUYBlslP8X54mdTWgfMq9DeFLLZoj4X/wW6rLjWo2+0uAyrFQqaKoPaO2/34Esf+0Vli1bwcBAntNPO4lly95B8WqcuuAYHFvn0Uf/wsc+eTGDI6PoqkNbJo1TL4lnmFHsarlORKqDB67n9y0SiWB7vuAzDb+2I1o9IEvSCMIelmZCbVeafF6zdySEjjATwu9op/dU3MBtGZggOGiKwvDIdizXo711EorqUS7k+NLnryGTjODZvqA84OCDOHXhGZz3/vfzxBNP0d0ZoVKp4Xk606ZNYXhkCMNIMTzis0abpkEulyNiGKi6TjQaJ18YoVgsNkKT6+nsqqqSiGfI5/NEdAPHdtm+fTvPPPsUc488lHQmAQ7ksgWihQI33XQT69esRUVh0YMPo5g6w9sG+PbN30BBY/vWDUybOYOKCoufXERnVxv77z+b1998g1gsQc3yCyzF43GGc1kSiQSVSuVf3ysRngDClSbs5PHUWBirtoYn4s52PZnwVLjzZEEgL3oxcQU4p6pqsNMKARD2nog+hynmGoFGbrBjG0aEmu0wZ84c3l2+gkKlyooNaznrA6dRKBV5YtHjHDZ3NqcuPJpqfjs/veOrlEtbmH/skby2dBmHzjkII+ZPAsVRUD0NT4vgOiqO5zMdCyxFV1QiuhGU6gsLTdG/MKgov6tmeMPOmgBqw96gQLORhIa4frPQ9+AdeioKPpfkGAHiKjiKSk93H8ccOR/XtfmPz/8/Mm0pDCOCqZlc+8Uv8MDDf+Tss85l7mFHc+lHP8Fby1cx88DD+PqNX8HzqtTKNgo6mu7huH6+gWEqdHW3c9KCE7DsKtu2bcM04kzo7a+DtAqe549XqVJj85aN6LpOMtOCohsMjgxx9vln8e7q5QzlB7CBadNm8tiDD3P/3T/nvt/dzaKHH8XUIzglixu+9DVuvv6rfPPr12IoZX79k9vZtG41be0ZOrs7WLt+E+3t3URiJtGkj8Nks1kyyRQbNmygWq0G2aO72vYIjUFefLKfXOzM4aAlucnfyTRsYZS72XnycbLNL46Xd35hQsi7WhhDEAIlFouNKdoiaw5yiLaq+Ek3mqrjeT6a7dgO4BHRo4yOjtLT00Nb2iBfyOGZKiOFAdZvXI1d8/jIZR9m05bVzN5/b4pWngvOO5k124poti+UKrUqpqFRyJfA8khmEkFUnRgPObozvNDDx4hnBsYI6H9EgxDvS9xH/lu+rrin/F7CWmBzAa6iKQpTJk/kr0//he6ePu6/9x4uveTDXP+167jui9fw9a9/ld/e80uSrRl0L86FF32YQnmEe+/9A8ccM4dEKk42VyWWiNfp3utBSa5GrWpjW0VmzZrFtoFBbNsmn7fRNAOo1s20SB0v8N/l+nUbmTipD8dRuPnmW4hGTY6efwSvvrCU57b8jT8+cD+VyjD77X8IRxx+LAsXnM7UqVNZuXIl9//hdzz19GKWLV+Bp6i88eZSjIhZj7h1SaUSuK5dr0RVC0zflpaWgD9yd9oeJxhgLFNQrVYL7Phmx4ZBRvG7mdkQPj7sRgwDZs3OC3sjhOASoI/Y+YXQkHdBkdAiBJ+LMCEapoaqGsRjOlbZDgSNoph88OIPEtUdsCusWfc2E3ono2gRuvsmYXk20WQP533gQn73h8d5deUqgPrYxVFNHU0ZS8UmEHORP+GpjWdz6yHajT6pY2nZQuO7qx4Ieax359xmoGaz9xZunmOj4mHXSmxYswrDMHjn7bdYcNLJlMtFovEYd/zoTt53zrlEIyYDI6M8+czzVLIb2G/fmdx//70cOW8+CT2Nquh4wjfqaZgRH5eaOnUymzdvJhHPMDQ0hGnq9UUZQ1X1IAYCoL2tExePfKHAwgVnMDIyxLdu/DbvP/18/vjcg4xkh6iUCpTzOU5buICa7fHTu/6XFSuWsXb9Oo6adwxr1qwjk2knm80SMaMUyiUc16FU9c0FzTRxKlVcBYZz2TG1SHen7RGmRHiBynkL4fqG4cUeDjgSx4yn3u7MiwHsEKYb3rVkTUFoC4IwI4zqy0lZwJgYAFVVMcxG0ZVGAk2VarWC5/lCJ5vNsnHrFiqeR80DR6mSbmvF0VXa+7vo6J1Aa3c3Na/Cz35/D4v+vJiVK5YDMG3KVKJ6hLZkOiCg9TwPy3VQ9EaWqe2NjUGoD8gYASieS/Yq/LNtZ5O1GRDZ9J51gpZmJC2eotLW0UFvbzf9k/uJJyI8+OCDPPzQQ0TjCXQzzrPPvkCpVOFzn72Gt956i+OPOYFy0WXxk8+wZfNGctnNmKaHioZj+e/VMFUKxRzFYoHBwe1s3bqZSqXqU8JXrXo4vBXMzZpl4bguLh6pVIb+/ilk0h28u2I9Rx1xMrf+4A66eyfw67vv5tzzP0ipYnHDDd/k3PMvYNmKlXT2dKPoGqphghohX6hh2TqVOmicSMRIJpPUqjb5UZ+sRQC6QnOVq7rv0rvZraP/f2rChAjvTLJpIGfyNdvdxQIeL9hGFiJh4SJ2dLEIZHtYPiYcGyAEQiQSCVKRZY1BAJXJZDLwyYvvRE1Cz/NIJuNEYybbt29D0TUmT9+LTFsX7X1TSHfPonv6oWipKXzlWz/klPMuZf7pH+e8j3waW1f5+L9/nOPnzwNgzoEHMXPqdKb1TWrECBh6gCnInhY5fkGMvyiKIud/jBfNGB7TZj+y27bZuwtjQXIyXPjdyu8xuLbiokqhDZbjUKqUOfCQOURiUYxIjIsvuYSb/+u/+NGdv6C3dyqFooXuKUyfPJk/L1rE22+8xm233U65ZLNwwWnce+/9qB5ETZN00o9VqNbyKIrDylUriMfjHHfcCdRqPpcjgOtAPJEgNzpKrc4ODQTj3tHRwcaNm9lvvwMw9DiXfPQKLvjgxWzbnuOPDz1GzVEZzuXZb7/9GBwc5I03llCr2ixd8jaFvF8Fu72zg94J/aiqT/EmqAN8KnovYHISHjdRbm9X2x4hGOSoORFgBIyxheWdVWAC8o4T1ipkV9h4oGUz7UFI10gkMgYkC8fpiwkqQEh5NxW1G8PAmbCjs9ksjmMF17JqDsWiz+x74IEHUrX8zM4PXnQhvf19zJl7OKvWb+d7P7iL+ad+iHmnXMz7LrqSTP8MPvOVmzjrwgvZ57B51FyPZ/72HLrmP+sbr77Cpo3rGc3l2HvGdICgCpIslMJ4gRCMosSfvKh3NnY7+1xcu5lAaXau7P2RN4rwec02BQAPB0/x080dz8ZyHWq2xdC2bRx99LEMZ0f59NWf4667fsmyZcvI53N85ur/R3d3N9+/9UdMnjybX/7yPvr6p/Hkn57B8RrZqlu2bMY0TQ44YD9KpRKe53HQQQdQLOaJxSJ4ChhGBE0zUHQNv5aoSi6XY+3atSx/Zxmd7R0+07Pt4nkKq1auIZZIc8ihRzJx8jR6+yZiWRaFQgnbglyuQDrdSjqTJBo1yQ4PsX7dmnognZ/XguKSaUlRLpd9pmjD9Ktc1SwS0X9BjGG8BS5U7rD7TxwXjk4MT6xmi/K9mhz41MyEkUOjZaAzDKQ1vAwNngIh3UUwlONYRCMN0g7TjPLSSy8RS8SxVYd8KU9HdxfRZIbhUQvbS3PqKQswk3EGc0OMloZ4/m9PoWkaPR0ZRgtFnGqFeNqPchsaGmLmzJmoisKSpUvp6ukiV8hTqqeGO66Lzlg3q3gG8RPOgfhn2u56L+RoSLlm5djmIu9v8kbieQ5WrUbB9ejp7WD9uq2cfe65nH7amTzw0IPc9b+/4r777uFTV1/O+Rd8gKf+8gy33/kTBgYG2bp+G3f86Ns899tHyLS2cc/9f+KySy+Bo6C3tz/gP3Bdl0wmTc1y6OjqZHR0lFgsxqYtA7heXdWPxqhWqyRicR8baG2lUMximCqeo9LZ2sLmTVvZtG4L24YG/RqWxUo9QEmnkC+TTLRSKlZIpuI+9laPtN28eTOGqtHV1YWCh12tEDOjQZGZYIPbzVe4RwgGWU0XgkCAeeEMPPmYnXkr5EkdtvUbbsKxbbydaDyAS1408uKX+1kulwNE+OHfLtrhGrvS/sIT/9B5C08+hcV//hOzZs2iva2NSqkcULQJE8J2XRQa4cea1qg+JTQuGMslMd54yGO9O0JAPl9uYnwFVVrYO+TfQx33GgoQT0QpFApoqk/Jvnjxk1xzzbWAy/DQJqZM7GH2XrO59/4HOOusszn4oLl857+/j27abBjYQr6scudPb+Waz32WRxY9AVeCaxt4ioVp6CQSBvlCllg0wd6zpvPaG29Rqll093SyYcM6LNtfxI5tg+XXmBwY2E40HiOTSuMoMJLL0dbZASgcPHkOAwMDeCoUcgWMaAQzopHNDpHOJMnn83XqPv/dJBJ+kdtsPhswjsViCVRVpVAoBNRz4SLG79X2CMEQJlOBRkSiPBHDtvzOwCvZFhUBJ7syYcPXFNeQhYBs1shCRwgDuXCNmNSnnn9KwD4s4xSu22BT0nWdefPm8cc/3Mu0GTPqAJLBwoUL+cVPf15fGHr9OTxcGkJJRDfGYjEmTeijXCxxz8p76OrpZtu2bXR1d7N89UrMWJRIJILrOOiGgV2toepaneZcH/MexK4t+iaTuchjIxasovjJO7LbuFlrBiyKz2VzTQgAwa4VFtbv1YQQjMfjKBh0dMTQtSg/uuN27rrrLlSgNZNmNDeCXSly6skncss3b6BU2MLSt1/iC1/5DD+67U4uv+Iyersms3ndCAB+cdpKQ1DiYzWebTN9xgxOOvE0AP7nB//l2/+1MvFYgvxIlmxumI6ONmzb5qpPf5abrv8qqVgcq1pG1yIsf2c1/f0TeGfZEnq6J1CrWaiqn5ORHRklVk+ME3MnkUgEdStBJZFIsHnzZlKpVDB2AlDfnbZHYAxykyeZnHMgvtvdawnNQRThkG3rcBsPh5CxDbFzhUG1sIkhnkHgD7Ztk0z6CS0CMRauJM/zArfhbbfdxqWXX4GiqLz/7A9QrXg89vBi4vEkhmqMqc8pCz9xjykTJ7HPPvsweeoUVF2js7OT1tZWNm3aRCKR8PGTuvtX0H6FuRRk8FY8o7hvGPORtQrXdcdQ0/8zrRkoOd7347VAS/QavJCVagnPc/nJT37CTd+8kdNPPZUT5x/NgfvNYuqkHr7yxWvwaiXSyTgHHzSXQw87Ck9RuPXWG7nootMBUBWPVCpVT5xziEZjAdbQ3d3gbEgmk2iGSVtrB56n+HErNT9J6upr/cI1X7zu6z7Zi+cHysVMg4HNW5g+bS9/zlb8amGKogSJUZZVJZFIUC6XKRQKxONxJk6cSCKRoFarEY1G/RTwekSrAJl3p+1xggEaE1NkKYbdhrvSxKQV9qkgrRDXF8eE7zveteQFJHYzATzKVavk64o4B9GPYrEokXPYAf+/kOgzZ87kzDPPZPas/dl75v5c/ZlrOfao4zni8GMol2zwGiQvitZYyGJHdxyHN99ayt9fegnLspg2bRooCtFYjK7eHmbNmhXcVwb2wgJR9lLI2IqM64Q9E0GiE2Oxl/dq4425fH5Yk5T/31kTz+XPGxtF9Zg6dSJDwwN8/frr6OntZP3atbz11lv8xzXXsPCkE5jQ28X/fO9WTjnxdAqjDuefdzGRSJSrrvoQL770KACm7mFVytiWR7lcpVarYpgaqqpQsypj7h+LxtGNKKlkC6lUhtbWdlrburj9+98B4Bd33YEZSaHqMTxVIZExMeMKllMjnkwQjUfQTR3brpEv+DkaruuSz+dIpeK0t7fQ1pYhmYzT1taCovibVzabDQhaotHobhe13WMEg6yKyx4HQY8mp/PuzjXFztxQt8ZPqGrWBEIvq9MCT5CZeMWEDXsooCGkBCuV0BSEK1AswCVLlvDMM8+QGx3C9Wrst//ebNi4mqVvvYanWnT2tlEsl3yUXSKTEQvWL2SaZOv2bby25E0cBTTTYPPmzWwZ2MqSJUsYGRzyF7fr4dR8j8Okvn5s2w4IUHzX39jsUqG+iv/lRQfgen6tirAW0ex9hbNUZdew/CPeoSZddzyhEAagwx4k/34uo/kRzn7/Gbzx5kvceOP1HH/icXR2doKqcN8fH+SXv/4VHV0TGNi2neHhIUqlPJ/61KcojDpoSj3UXKswY+8ZnHzquZxy2jm4ns2cuSfVeSIabMyO5fKJj32SKy//OJ6rkUl30NrWjRGJc9WnP+f3W1OJpDJ4msknPvUZPnrlJzGTOpd//CquvOoqYsk4LS0t9E3sB3wtpLOzk3w2R09XFyoupcIoimeDaxGP+pWrNE2jUCgETFFDQ0PvOdfltsexRMsvMrxD7U6TdxjxvwgiEr/fq4UnqVD7xeKQryPnFYRtbAHqiQUhP5dpmkF05+zZs9m0aROZjE/xBj5+sHbtWtavX8/ee+9NPlukXC6Oia70x0b1cQcpX8O2bXRV82scqgqFQiFw9QqXpah6hDZWI/Ag8FfIWpqIv5BxkvoAN8b+PcY1rPXJ72o8D9V7NVmQLLrnCU49/5TGu5MYpDOZDFu2bCEWS/DEQ4/z6KLH0TSNVavf5YYbbuCKSy4FVaOnv50Zs/YhP1Kkoz3DdV/8PFs2bGXFqnWMB/G/8cpfyZfLHH30gqbf/++Pf+I/k6ry0cs+Gnx+663fJ5lMcumll437fIaq0NPVxjPPPMPg4CCPL1pEa2uK6TOmAS5bt24N3mcy0UoulyORSDAyMkImk8GyLD700U/s8oDuMRqDaPJkF7vsrroamzVxLblE3a4KQ7kfMqYgu/WEGSCEhdB2ZNNHBldFkpbghhSLTNd1Vq9eDcDA1iFeeP5lXnrpFV544e9ks6P0T5xKqWyhqgQmjdA6YOzCcPAC7sZ4MsHQyDAbt2wOyqiLcU4kEr7QAExNbxDqNrHvxW8Zd2jEDOzY5OPD4y3GtFmg1D/izRivCXxBDpravn07rW0ZXK/GEUcfzqOPPkoilaSzdwKHzD2cyXvtzdpNa1i/cQP33/cAoszbxs3rcFVrzPUf+MOd/P35x3nykd8DYDu1QMMV7Sc/+Sl33PEjAC698nIsy6Jq1bjjzjuDYxJJE0Wpcvtttwaf/fC2H9LXNyH4/6IPfZBJk6Zy112/4PHHF5NJt1GruRQLJQYGttPW1kEikQJ8OnkRRJfJZP4hd/MeJxjEhBMqu1zhSF5sO1vg8qQUaqocpSg8BzLr0njYheyVCGsB8v3Du6i4j6BEE88ks1nLarlwIRYKBWLxCJVqiX322YdYLEY0GqVSLmJbVSpWjX333ZdivuAXKq0HM+E61Jz69e0G+YplWUSjUdpbWgO1UlGUQEDkcjlc12eoFuOD5+dLiL6KZ5D5JmRNYQdPjvS5JrlCZYEqCwf5s39Ugw1riACe24jFEALbNE2smocZiZHItLLoT3+iYjuk0i1cccXHWLNuA6ecehaqHmHKhC7SMZ1Srsixx5zMwYceDsBvf3MLAGe//wrmHrmAk0//AI89/Ds/ddqIBvf/29/+RLkwgutIAkXVScQzjI40iswqmPT3TUXBF/Lzj57L8ree5fPXXMiPb78OgDlHzOHCj1zMAQfuzVGH708uu45qJc+mTVuYMnk6ruMxfdoMMukWRvMjqJpXr12h4nk+deDutD1OMABjJmM44nBXdpSw2wsa5KTy9+HrhyelLGCEEJHTwOUJF46wlHEGoTWI+8spzLIwGRry7f9iscgBBxzA4OAgRx55ZMAhGIlEiMVirFmzJgBnZWZiXWlkeYpUcIGHCLBUxlxyuRylUimIMBUxI2FNaWfj22zcxjRtrGkga22yoPi/0Bbe6/yGxudvBol4lH1m783HrrwS26qSz+dYv2Et69au5cXnXuTVl1/n+edeoDBa5Oij5rH8nWUA/O43DzJ/3nTeeO3J4NoLz7gA27XHMCVls1kmTuzDiDb6FUuYFMo5IslGLUnHg8svv5InFz8OwH/+59VcduUFHHvsXMAnWPFwUFWF1WuW8/rSFzjtjOPondBONGbwzjvvoGm+Oz6dTrNx48aglkQ8HieRjNPe0bZbY7nHCQYxQcIAlfz9ezV59wnvcmJRykJhPIETBkPFj8zMJK4pfstUZdBYkJ7njQEr5XsL7UH0uVqtsnLlSlasWMEbb7zBtm3bKBQKbNy4kdE6iBqPx0mn09TKlWA3l8dMLPax4JsXHCsKkQjcJBKJBNpZMxBQjIcQcHLG3s7eiexFaHa9Zn//nzVlRxenuI+uaigKVColOlrTPPfXp3FqVfbfZzZvvvYqx8w7lkcfWUxHew/Tps3g+uuvx7F8IfuHB5/l6edW+YQrT9/H359/BIB0OsngYKNgbiRikGpJMDraIGLdNridyVOn8tWvfSP47OFHH+PQuYfwkX+7AIA7f/IjTjrhLFat2MCVV/nei3QyRcSM09c/CU/RWLb8TbYOrMOq5VFUm46ONjZv3kxHRweu6zI6Oko2N0I8ESMWi+22Ob5HgI+nvP9Er5nrsJlqKU+unWkQYsE1K50WXojNzhXHh8Oq5ahLebDFdWQOxfCzCJdimPhUnGfbNn19fYyMjAQ+a0VR6O7uZnR0lEqlQiqdxipXKOXyxFPJIJcBxw0Yk10a9TNkV2qQ1WkYgaYgwM/WjnYKhUJQ/FReRGHEfwyGImMbjoMmx0OE3ptCg5BlDEYREhbNhIcMjDY7Tm6P3fskp55/yg7vBq9hukUMjdHRAvFYikqlzPDwMPvtsy9nnvk+nlj8JPlsiU3rt9LX18djjz3CrNnTsOwKr7y4ZFzw8Z8ufxc+N3TO7T+8nYipkhsdZEKHSV9/F++++y6KapAbsTnpxAUsWbKEllYfYE0mkyQSCbq7O9m8eTNnnvvRXZa+e0Tk43hq5Hjoddin3ew8sTB8gg1zzPXEopTV/GZN7JDybicvtPDkFuq4mHzCSyHuLe7f3t4eBMQIk8myLCKRCIVCIdBIYrEYlUqFrVu3Mjo6yrRp09i0aRMtiRRdnZ3kRkfRhX2vaWiApyq4hGI+XL/ojCwg4vF4gLMkk0my2WyAP+wALoa0BznyVFNVvPoxanixhwSsrusgYStCy5LvJcdOjPcudiWWRVx/jKmI77J0PZdq1a5XcPIwIzq9E7p5+tmnWLNmDfFkAtfReHfNavSIQf/kfnomTqhvMEvGFwD/V00WHNJ1a7UslbKKGYmyas024skEHV2dvP3Wco4+6mSGhgdp72gjmYyTzQ6j6yq1WoVsNrvbAU57hGAIN1n1DU+SsOrfbOeQXYNyTrocbyAWo6gEtTPgK7yzNQutFm5QaF7hWdxDhBh7nkd/fz/Dw8NBENfg4GCgogvw1TRNWlpaaGlpoVQq0dvbSzE7SrlcRhOmjeOgKj6Bq1f3M8p2uwJ4eGMEg6x1FYtFbM8NXJjyc4fHRGg94vlUVUVRVTxpwTc7Pxhz4UaVMKSdaQzhOSGbXu/VdoaPiG8su0okEqFWq3DQQQew8t21DI5sJ5PqYM6cQ2hrT6OZ9hj6+DPOPolcdpjE6fOIRk0+dOFFzHrjGSzL5q9PP0v89v/mL08t5pvfuJ6Bpx8m/uIiHn/8caLxCDP2nsWVfVHS+07m27d8FzMR4YNdLXzumi9x6hlnchBw929/x4wXXubiD30AZfokssNbGRip0dXdym9/cx8fuuBDODWHFe9u4Md33sZN37gZ04zWy9Xp1GoVwDcn0uk0uVyOlpaWHcZiZ22PEAxiMoQXbrPjZJcZ7DxaUUa8YWy2puxG3FU0vJnGIprs+RDHCGFh1XPyPc+jq6uLgYEBpk6dSqVSwbZtcrlc4IMGAntfCAYRzl0s+vELBgpOneVZBDoF41i/v6uAythFJj+nfI7ruqj1w2SsQg5qEsfKHBVC85KTr2RtwANQFRSv4doVpoQYM2HuhQVKs0Ut9orEHQAAIABJREFUm3Li/PFMycfufbLp57veVoz7TaYlhap5vPTSyxx80Bz+tPiv9HT2EIvFmHf0EUyePJFXXnmG3/z656QSaQ4//HAeeOAhjjr6SNau38QJJ5zA44ufQdU1PEvlFz/7JfFkioP2mwXAhz74AU4/83S+d/u3eOyhJ7jy8o+zH4dSypc46fiTKBWrPPL4Yyw8eT7Xfu5r/OoXf+ArX/kKyaRBuTJKpWLT2pZh65Zt9UAn36W5O22PwBhOfN9xnoyGh5u8U8sTdbzcBhnADOcwiN/yBBeTXOzm4j7h8mzimuI7OeZCLhYrVN5arUZHRwfVapVcLhfc//DDD+f5F16gva0Nq1KlraWV4ayfoCNo3h3PRTF8UpehwUFSqZS/EFQV1XZx61GLYsEpHqAqOAo4KoGbsJlZIOMvAasUY0vECReqMMlkgRIEQTXBf+RjPOqasNtQ6/G8Hd5bM43BCx0nxlj0V866/YeaV8dEFGVsgp2n+mXuPBXPA89rbEKapvPQPQ9xxtkLqVUtXn7pJWrVEp/8xBWsX7eSyZMnc9ghc/jZz/+Xo446ivPO/QCHzp1HrQZz5x7C/ONO4Jvf/A6ZtjiVskVbaxc//9WvqdbKxBIJjj/mmKB7jz72ML/+2U849tgTuO666xjYnmPZipf4y5+fwjAixONJRoYL3Pnjn7Lg5JPZa8ZEDjl4NuAyMry9rjka5HJ54vEo1WqZs86/4l8rwElG/cUOFN61YPyipqKFzYvwghDXEziBjB/IdqtY7LI7UVxD1mrkwB/ZayELjZGRkaAkeSaTob29naVLlxKNRsnlclRKZV9b0A10VaMt00JEN0jGE+iaRiGf93fjWr04b91zIFRx0dewh0UWevKYiP5GIpEAyxAeDHE9segEC5W8SMNCIQwAe16jBiYQaAtyC3s+5LEOl88Tbt8wCPzPejHkfsvmk6CIG/Pecer4kv9cuq6zcsUqUolOIkaaRY8+yaVXXMyrr73IY08+xtXX/AffuPH7/NtlH2Of/edQtuC1Jau54cbbmDn7YE46+RzmHnEc3//BD3nwkUdZ+vYyli9/l5/99h6eeuFl3lqxGk2NcdwJp3Do3MPpmzgJgOOPnU+5WCSiG+SzeX5216+wbIWW1m5++KOf4rk6UTNBd/cEHJcgkM6vyP0vyPkoLzDRmoFgMDZ2fme7xXgTJyww5Ps0Q8TD9xD3F1qDvNhk4SMWmK7rRKNRbNv2Q5rzearVKpqq0prOYKgaVqUaVIjKZrM+flAHThVFIaI3XI9C6IjALDmwSv5pFlosCxHLsgI+TSEoFUUZk88hYwRhravZeIuxkc1AcXwYMAyPmzhOCCWxWOVcklqtFphY/6ym6+GgqDvSBvrN55B0XVEk1wXFDgrmlot+LcpctoJlGaxas5Gf3vVz3nx7GQ8+spgLLvoYxQqsXjfCYNama9JU3n/hR1AiKa758tc44bT34UVN1m3bxO/uuZto3GCvvafR09vB/9z2fd5d8y6Wa3Hk0cdyzHHHc8JJJwIQjydYsOAU2lrTqChs2z6E46occPBc+iZM4wPnfRjXNrAdha4uvzCR41SpVqsYRmS3xmePEAzNYgrkqEV54uxsp3gvQSHHJEDzySqEgYwZyLtv2P4Vx8i8iGJHFzTyg4ODtLe3s3HjxjERhOViyVeN6xRqlmVh1wvAVIolFMVPtRXeA5mRWlwjqFWhjE333plQFSaEHNsge3JEDr+qqoHwCAOu8vUDj43jYNk2KI1cC891UcTfXsPtOV5wk1z5y61f0/Ua5elkwTweFhHWYOTPZS3Q//GZnprNJV9wNL4Xsra1tRXHsonH43R19dDe1s2LLyxDoQXNaMFyIszY+wBiyXZm7DWbzo4+Xnn5dTq62umd0EV7e4YZM6Zz330P8LGrPsHdd99dr4VpceWVV/rp+dEIx51wEoZhsGVgCwCHzp3LggUL6kV2Vb721S9z3PFHE43qXPvFz3Pk0fP43q231vkdff5LM6KRSseaPuPO2h4hGESTF7+YwGISyztMuKCL3OSJ2uw7GaeQdzY5NFrcO+ytEAJD/JajCmUhJiIlRVmwVCpFNBoln88Hzxc1TOLxeNOAp2KxSC6XI51IUi2Vg6rJQd/Usbsy7NzMCi8g8ZzlcjkQYqZpBqSiwosih1CP5wUIVG6lUaYvLMhVVfVdgxL+Ij+33He5KI9s3gABoU1YQ2tWDEecI3t4gB02m4Yw9QWA7FaWBalsHq1du4F4PE6lUqJQypMbLZLLq4wWVEZGbHQjQf+UqRjRCLFkAquq0tE+gXPOPp/bfnA7nZ3dfOqTn2X71izfuP7bTOyfTiKRwXMNXn31Dc484yy+cO3/R92bB1hSlXf/n1NVd+99evZh2HfIsCOrEEDQGI1LFox7fnGJ0ZjEaBI1MRr3RMXlzWZi9NUYCIgJalQ0GlFARBhUNhlgYIZZu6enl7tW1TnvH3Wfus89fXuG8TXvrznazO3qulWnTp3nOd/n+yznrVx44YVcfuVlzM/P5HO0Uqmye+8e9uzZSVRwnHzS0Vjb4NZbv8Nvvvhqmp0WteEROp2MuF61alW3//05HAdry0ox+E0LuZ+b8LPamINWEz2JNCsvAmKM6Stj79QKJhNMSqWJ0pFJF2Jo1RuEGALXJQVTS6vVotls5tcql8t5JOLKFZN5BBuQC7CMQ99GsNb25SssBfn1GOocCBGMer3eV/xWmu/ZOVDT3EGOCGyvsKwoN99E0X3OEcwAxa4F1vcuydZw+nqCfoSPEc+Pr7z654fDmDAjH63BWkiSfs/JI1t2kiYR1sQY4wgKQ1hbZOPGY7j0iis49/yzufGL17HxiNV84frP8dznXcWn/vkfuPo3fpNCUOWNr38Tt9xyC3/ziWtYuXIl73jHO7jlv7/NRz/yV2y++w5OPflYVkzWqDf2EydNgrDLsUUFzjjrLN793vex/rB12LROtWx5dMuPmZ/bwz0/vodNZ57B773hDymXahgKzM3WabdixsfHD/r+dFvWigEWuwil/by8KcaYPHpwkE0twi/CqeG5TDZrLe12u+/veuJVKhWmpqa6BFaST2bJgZDKUvp32y1HJ6ukrIziT/frHSyV1+CfI/0ul8u5ENbr9VxopbiM/GjTbqm2KMJRlKIKnRYh1YE2vrLPlZ1yQ8p9ByFBHfDU7Ba41chGPC+ChCTzMct5iRfdf1DTgWp79mThzmliSFOHc5bp/TOMjU5y9jlnMrswy5/9+Vt59PGHqLf2c+21n2Nufj+/+/rf5nnPfxZ/+e53smXLFtauXc3n/uXTzDf38+GP/BUP/vTHfOU//501a8botGcZHi0ShDEjIyOEoSEMe2MRxymbNm3iHe96J1FoGBsZYXSkRhDA5KpVedzLQ488SrFQYWhohDVr1vGUJB8PRCbJCuzzA9rG1X5tgYzy+yC4qSe5rJxyfV11Sd9f4K+Gt2JqCFT2+yfXhh5DLHka0ie61487HRbm50njhNRZiqUSaZwwNzdHs9POhMwEFMMIF3RLrVlH4DL7vd1uZ7C/eyxxNk9g8oXPWpsTm4KKtOfH9wzI37SnKN+vQ103v4/LoiDTNM2zNp1zGNvvsfDNxJzj6fbDkkVsWrKYCClw45Os+ndt6mlFKntkyLsphkWMHZAPIo9AinVJV0mFzEw32PbYHgBKlSKtTpNSqcxJJ51CYlO2PPQ4O7Y+wRve8AY67SZD1Rpx0uZNb/kDDl+/nmuuuYa77/wBadymGEW87jWv4brPf5Y//qPX87/+5mNs2HgYs/NztNtNarUaUbGEibK50El6CrNQKFCrDRNFRU47/UxacZ35xn7Wb1jDjTf8G9Y6jj/+eD56zcexNqBYqGBtRmofSlsWigEODQH4xJf+vkw0HWkIg3esGgS7y+Vy354QenPbpfqqV1Q9yXVugqAC2XAmirJt1PsChqIIEwZEhQL1ep123MkVTh4lmFrajSZxkhAWopx0zMiyABd00YHLfgaZTnI/gfiivDqdTp4rAYtXdG0yaQQzyL7X/EE+FoUofw+ioPR7tF2zKFdS9L8rnxvQ70XfSzfNJR3MHHIuU0RC1Om5oiMH5xZazM41+PtPfpItjzzI5Vc9nT9605u58lnPplFv88EPfISpvXM4W+CDH7iGXbt2Q9rh4x99HxNjEXFrP//49x8ndJZzzz2HsZHRfEx1TEW91QQCgqir0IKIRrNNsVThmGNP4JynXcDll11F0skUxtVX/zqFEI455jiGhqv8xtUv4Pvfv4Uvf/nf8+C5J9uWhWLQK+3P0mQySKFVaeKvh370cCA7XCCp2KVyzUHf06uq/rv0IYoi2klMJ82Uk/Rl//79WGuZmJjAiAmgBDWO43yL+jRNMbafNDVRf9CRc1lewiBPxKAmAiTIR55H110QxeG7E8Vk0gjOV7jildBjpQlMubdOZQfy/TLlHGNMphzc4HgJ/1347zS/hgqIk75bQ5505s8B/a98LhaLWQk4oFqtsun006lUKlx33bXUahXOO+88vvbVr/KZz3yWp517IdNT+znzjHO4/vob2Lr1EV772lfznvf+Be3OHGvXjTM6NkSztZDnqGTu0R63lfU7IsUhOjdxlmK5RDvuEAYlJiYmufjipzM6Mk6jPs/ePbtYs2YVk5MTvOq3XsmnP/2PjI6VOeaYjWx9bMsB54TflkVItC6HJm0QOeSvXnq1gJ6rS5htYaN9xeO73fQqJK1er3dj6DuLViPdD73qaXeYKKLc7jVZsJPcU3ZGckmSEW1pigsMw0NDJM5ScI5Gq5nfR9yHYra4pCe0spqaKMTYrFDsk1EQ2kY3JgtoEmTjr+Z6hRezyjmXuxL9cdFeo8D03LiCCKxzpNZmdSKDILuOF1Dmvy/9vDqWRZ4hN0W0WeLxPf61UzKzJ1DPYY0FE2Dole0LQ8vaDWu5l3soVkJm5qbYvmM7q1at4qqrrmJufoYf3Hk7F1xwHi9+yW+yefOdfPjDH+YP//APqJYjxsdHGZ8YwdmE+eZ+ipWI/XOz1IaGsDgCE3aJTy9KlZ5chGFI4ixBIaIQFtl02hlseeB+JiYnGR8fZ+fOXezZvZPjjz+Ru+78Pk/sfJj160eZnZvF2UNbeJeFYvCF1p+ISzHj/suWf2VS6twIfY7PhGsfPvSQhnOuz23pM+p6wuo0atH6QjaKUMRxRihVq1Xm5udpJzHGWoIwyE2CufoClVqVYqnEmnVr2bs3i3GXRLBOp0O5WCB2lmIpS77qdDqkOAgWB+sM8jBo5NRqtbJndNmeFAsLC/kz+zUutYLMr6HehXA0OnkM6BN6zVeICaNRnrw78Q5podYIQCsF3Ud9TAtUnwJVx+W6mQnWNcMA5wwGkxVICSEIHGFXWsbGKzTqHd78ljcxPj7OwnwW2bp9+3bWbdjIlofvI05afPwT17DptBMpViIajYXuRjGGtu1gLdk+ora7HQD9CW8YuhsBWVy3ZmXqLFJsNkkS4jThhJNP4n9/5nNc+YzL2LJlC6tWrWHP3r0cfuRR1Bf24ogxQUyxdGgBTstCMfgvXwuev2rpCSfnLNV8m3OQUoDeyqnrJCzFYcj3dHCQ/rv/r1zXOcfY2BjNZpPh4eGMv4hjIhMQ4DBRSBSFFLvCMjU1lWU9dkvfN5tNCuUsvLXT6WRKR6WTl0sZxBwEqa3p5U7oMRYuxRhDFEa5d8Jfjf3r+X/T19Uu3wPB/aXQn4y/7pt/D59nkH9FgYvw6ySvHjzvFb3V9/ebMQZyE8aR2jhnJicmJjjyyHEgezdbtjzCxMQYa9auwJqA4ZEqK1eNZUV7kwaNhs03+XHOYm1/0p0LTJ4jo585cPK8Ut087T5ThuhGR0dpLMzz8NZH2b9/lkIhC2Gfnp5lcmKcTtuxf6bOiSeeyO23b170jAdqy0Ix+G0pE+Jg5NFSzZ/EmvySiaQz92Ri63v7SkJeoHxXoL6G5t2b5T7kubk5Op0OU1NTVIeHaDWakPRK2sumMyEm324sCIJuSGsPuURRZnu6IIuJSNOUZrvVx3lIG2RHa05A3IiZYsoQguzgtFSdCrlG2o1K1MrDGENi06XrjXjmja8kZBzlefV5eMghf0ZPSfuRrVoR5KaetURPMufCOcfCwjxDQ1n5+NHRYfbtm6JaKzI7t48jjtzAwsICI6NVgqjYXdUj2p0G1VqRuJvj0n0SjOn1MSXFuK4ihtw0MwCuf1/O7tNmShCYmpmiEhVZt24d//ipf+LrX72Zb3/720xPz7Nv3yw2sVSGCuzcuZs1a9Yc9Dl1WxaKQU9AgcuaOPRh/CBFoSeYv5LonZL1fbTpoXMO5KXJtuUymfSGMzIRZXXz3ZvyGcjLtktfjDFUoyLzzZleBCAm/1+r1WLlypXs2bOHWq3W29qO3oSKTADW5RGHS63uUgdyUNN5HWL2yHNrYfKFR0P8UJGP+Th1Q6ql4Kx2iWqTRCtojTb0vMjfuRJsjQRlPCT+YxDKlGfQ7zYKF+fbCGLMjltEx6apo1YbxnTH8qbr/33JMf2fbs4ZjAkpGKgMZ0FdKYYVqzZw7gUXctONX+D7d9wJQZk4LtJOO9T3LdBu1Q9+cdWWhWLQTTY+CcMwFwhxqWnXl4aH0G83Q39uhJ7gPrkDi7eBl/uKu1K+K0VKpEnWpOYVxM6W72iBk/u3222iKMp3x5qZmemLnBwaGmJ6eppKpTIwGlH3XdqBvDr+CjtIiSTuye3wJRA/F2z6x176K8VnDuQF0n0ZlM6tx9E3KzSfo4O0/LFaao7oa/rKZNC95b3+0guvyj87qwLHulmZqXNIrUljsuI5gWcmDzKRdPMVstTK0N+TBUkIyclVK9m69RGuevYv80e//waqoytJwgLtZkwxrDA+cmjuymWnGPzYdiEAxU6XSenzB1rIB5kO/nn+33RUoM4P8CP19MooQgDZipWmaQ779QT1s0GLxSIPb32UkZERWt1YBe0abLVaOcrRQTr+s+jm2+yDnlGPsa9oNOpYBOFVE4ifr9zedaUvkl/ge3P0u9FejtyNqJRDXzAbPTenEKPyHREQ+X3Qsw8SSt1fqfEg6EbnbGj+wjqw3ToOTq5vLDa7UPf8bui2iTAYrEv7rnWg9zhIUekpmyPhtFs7pHt8emaGiy95Ovumptmw8TC279xLGhSp1kbZ/uhPKa0ZHni/pdqyiGM4UNMvRaCmdiECi+CwfEdWiINdW64BPXtU7tFoNPKQWlFWvqCL+bNU/UJ9bRH4Wq0GZCtwO4kzV2P3XGugkyYEha4fu/u7RBH6z7DUsUF/k6YRlS6zpqNQZWL6ORBa2EQY8tTobkp5p92mEEUZr55mpecKUZS5Bo3JoyMDY7BpmhFz1uZ/c9bmx+2AhLWsjFkv2lQUkEYoOqLTJyC1F0PeoTatdISsjA+A6S7fqXO4wBGEXWEOXO/H9O+RoRXdUrUkdD/9fg1CNgQhRq4VGKqjw+zeN0WM5fW//0bStE59+nGOW7+SNRPjnHHWeUvOhUFt2SoGf1Lrl90XUkx/8o0oDz2gS11/EIklkX966zg9oeQ8uYbeYlxDYh24o1do8Sjo0F7pSydNMg+CSqv2zRBtOy+lFHwBGXSOTHxBZ6IQJEdC5zn4EFaeSZoxhqSbMq6Dw7S7WaCvFhKtNAcRhj6yEEEvFAqUSqW+7FD/vctuzzp5SswO/UxyDBYrfD1euo8i/MYYrLGk9Gf65nPK2LzIy8C/e9fX725QFqg+Nz8/I55IUynxZ1m1ei2rV68msClPbP0pI7Uijz762MC5sFRbdorB17JL/U1rVn/yLjWQumkYK00EWAKbKpVKvtJohOKTi/rlOefyZCjf3JF7ZpFuiwk9/zwtqHL8QChA+rKU0tBNowVJuxb4rK8lTa+0+nc95jrHRK/gg96PRh967HwTUPop6c+as9HjIueLchaFLfyUmGeiAPV3NF8xiI8Z9FmEPms+KrU4l6qfg7+PQc+sx1fun5s2zuBMgHMmVz6hAWMck2tX8653/xVnnXsxHdshLMDKiadoduVSE8M/B5a2p33iyD9PJsCgly+/C58xMjKSJxrpakm+G1M+a4jYbrf7ttbT95KVy5CtUJs2bcpXbr0PZRzHuXmiV46lJllfJfODTER/ZYrjmGaz2VezQAuQHneNnNQFCYIg90L4KErG3d+HdNBKOkgxaCJYozJJHNPP4VyPPNachBTY1YpLCF/Nq+i54D/roPmYne+7dYPusa7gevPNb/5clOcxNks862vWgXUY15sTgQPjUuI0oVSpMlwb4qynnceVz34BQyMTFMIiu3Y/seT9B7VlQT7qVUVD/EHEFdB3rjYngEUklP6eJrn03wbdu9ls9k1kP+jHf9F9LjwV9CT3FBOo1Wr1hVpv3ryZ8fFx6vV6374OuhCtvqcw1IvQVPc/vsmjy7bp1d5XmoUoExJRXLIJsP98eqw1ykmSJI+aHNT0e9LKRofDD+qX/uwLrUSnyu9yD+lDsVjMlYVP4LZaLYaGhqhUKkxPT+el7vx2IATrn+M3Pa/kvCejJPLxsIu5orAQLTomcxgkU9nQaDRYs34VF198Mbd97xZ27dq15D0H9v2Qzv4faprF1/avT8TA4MhCLYj6uzoFd5CCGXRP/dmPoJNJJjyE7p+GxBpd6OAbDVmllctl5ubmFq3GGjb2CeiTiPHyn/FgTfoZBAHNZrOXvOWZZNoEEEJYIK8OENOmgy/M8q+G/XnmqFssCNL0d6TPGk0JpyN1JqQcnm/uVCqVPIhKslu1whw0hgcT5gO1QajoZ/mefHcQGtT9t9aSOke91eRp55/HWU97GmecfRZDoyOH1O9loRh08RKgb6JpBnkQj6Ann2Z99WftVpSmazdoeKltWrFV5TxRYHpV1AIjv+tr+JPO5w0kEEgrj4Nlmy6VGajbgUyypc7VSWd+UJico71DGoloVn+pSa2bnGOtzb0+2mQ6UD9Foeh3LO9mYWGhT+Ho66Vp2q2HmJXbExNKKwet7H3F/GR5gp9Xk/d8sHftzz3nslgYjKUyNMwJp5xJpVo9pHsvC1PCfwk+3AT6VimtJMSvrouLCC8gk0PXV9BuKpnUAmcHQWU5R6CqIBAfpcjO01rJaH+4NjV0FqifrCTn6YjLpSakTJg8pj7QK54l35Gqe44ftKM/J643vmK3a2+M9EEXwpG+CS/jKxP9DrUC97f5k2fVQqlNKY1UpGnFKX8bdH8d92BM5q1IkoT5+fn8HWVb1fW4Ig3Nfx6oYVDT46GffSlvWvauXW5KLnXNJEkwQUSrkSnIo449jlazyfT+2UPr3/9rLTioXf7cS52G0To7T79cEUztnlpYWAD6bTNZwXTq81Irlp6gPtcB/Xa0BD+J7Qo99r3ValGpVCiVStTr9ZxF9+1pmXxiahx22GHMzMzktQnlWjJBdd6GtEHPopXlIDNCqhX5kDx/TtO7thZGX2EPuoa4dnUcgD/m+rMoH71Ky/l6O0FdB2OpZDX97vQiIEpAcj50VuXw8DAzMzN9SkmvtpqHkmc+EIL7WZoeD01qa8/PgZqvIHRWahynRIHBOYMLC5QLRb799a8xPbXwpDXbsjAltJtMC7JeYURItBtQCowKrJTSX1rb6yKeOmhFC5FMBt8216uEHNeJRtoToZOexNSQFy42uzYRRIAajUZ+XCooRVHEihUrBrvPvLHzhXeQJ0Q/r998JaHvpwVd0JdWPGJqSer2gVY83cRroPsg99fFWnWwlfZ0+O9IX0PmhwRBCdLTC0Cz2cxJVh3irU1Irfx+nkjBb9oc0/PJWrvoXR/sOuKODU2QJ9dFYZFOO+G00844pH4tC1NCT+YgCPqSWXz4r1cSeeF+3QC9asmKoYVek5F6RdCrkE+aCcMvwqAVjjYfsl1/es+l3XMCobWNPjs7mzPicnxubi5f0XR/gD6Tx/+b32c55lzmcQ+87/St4g6SJeDyUuMiocjajBqEODT6g97enL7Q6Xcq3xcF3Gq1llR8+l6C5LRHIjDdHBfTK3abxJZCoZRfM01TDCFpmm0245OW/1Nt0NyDA+e+AFgCwm7otTNkofUUaTabVMrDNJuW2dl52u09rF+3hsnJyUPq17JRDDrZSZsUsJho1NGAuvmRkBqKy6q31P319QaZVzKxBRWITS3/+jbioOvIM/jmiZyrSU4/J0GvJHK+b6fq+2oBk+OB6Vc0PnoKTNAnwPn31CTVEFt+dF6L/Kt/9LsRxeqv9v7YyFiKCam5IB916UApuV72HWi3m4Rh5oqNwqxgyp13/pizzjqHJO0wNDSU17jokagHdpH/PJoeq0Gmrn/eomZsDh/FJDIm87r8+J7NdBox5fIQzXZMrVpmfHTokPq3bEwJf6XwXzYcIAqNfiXhT/gDwUH/nIOdp2Gm3vfR5wF08916ch29s5S40OR8zTPI3/VElTHQ9rUc84VyqTbI3DjQuOpx0H3Q70oLuyAg7cHQcRXaNNF5JgLntZIQJS8K1DcP5Bq68jRku0YVi9nmPvPz85RKlb5IT9kUSGotyDvyeRvpx8+7LTW/n0xzxgJZVadarcbs7GyGGIolquUaoStQiko8tnUb8/XGIV17WSgGqffvrziwNIw7ELzzbeRcUAacuxQsH9Rk8okwaHJM774sE1ommKx68iNmiV4BS6USxWIx50XEdSgreKlUymG7LxCadD3Y2BzKOA46x48xkef0x07zNhppSeq6xBn4C4JGe9pLEwRBbhqI4vDvJdcRcwEC9uyZIu6kzM0ucMLxJ5EmjlNOPq2HYIJCVtvRBQQmwqZA2h/M9T9tSkg7tPv0zAhrYHp6mtWr17Ltse20mzEuDSAxFKMyxWKVqelD80osC1PCTykeZEfrpjW4uKk0StAT1phezYCDXU+aVlD6mEBNWe305NWrnF6xxdzwV1PoCZkIi4bdoiSL0qopAAAgAElEQVTkPPmeH3+hr6X5l0Fj6CMp/fzZOPVCbJ1zYHrxHn3KKBuQfFz60rC7z6wFXvdHzvWJTF/5aD5JKwoZn0FeD60ckiQhMBHOGiqVbP/PHTt2US5XKRQKNJt1cF2XtyngrCNwDsmBKATd+p/enPhZlMSBXIxg+nbdyuc2cOA7BeQl3zBUKyN0mgnVYo2du6cpBpZSKaDTtrgoYHbfU7BQy1L2mxYMH6LKZ6CvfoJPqjnn8oFf6qVqM8C3VZdaObRykkmpbV6tEOR8vVpqOK29JYMiALXC0X3xf/fJzqWaP8lzJVYsYOOkT5EaYwiD/mtam6VHizLQWY2CigT2i/sxSZLc46DrHuj4Ew3dByllPyxd/tUmRLPZ7CVLmZTh4WFarQbQ60Or1cqKujjXRQv5jbK6D2bpuIWljh9Y+A/cAtdzF2cK+eDKJ3CAy4oIB86RJin1dhuXBgSmkAXNBYbmwjwTI5PE7dZBr6nbslAMGj7qyaqJML0C+gpEC9Oi1X/AsUH3l+sOsqn9fmoBkN+lkhOQ267ittS2sSgILRjCvGtIrJ9nKbvfmMW5H3pMfN7jQLA1CAKSdqdvLPvI3MDk5phWftpU0uOjFZ08s1aU0uQamuTT3IJWtv7zaVMqjuPcbdrjflzvMwFBEBEEmWIrRgWSxGbIx2U7gg2aJlpol1cLIM/uDNi7dy/Tu/YRtxOqpTKNRgMbOobGalibLJoLB2vLQjH4JJOs/vr4IBcj0AfpNVzNvQhKsVjb3ZK9CzX1jst+UIv0y1dGetLrkNtGo0GplFXpHRoayoUF+vdilOto16VeNQVVHMx9Kr9rhDCIyPJRhR47GW+NNDQXIL9n/ff2ylRBQ3JMuBFrbV7Bqd1u50hBog4l8EiUhfTFV2YaHWqUoOdNtkt1xg+EhQLWdSiVClgLxmZb0aVxShgaou61oiCgHTtCAtrNFiOVMbY9sZ25uf2ceMoJtGNwLiUlwZgQ48Ks5qRZXCEq74uKQv2/bUvpIS0fsUsYqY7RnFvAJjGTI6Ns27KNMCjRdC2GJ4aZm9vP449t49Of/jRh9BTcu1Kanvj+ZxFgHabr25mS6qxdWhJwJKGvtVotL/QhsQjalaYFbdC9/H5pcg2yFXD//v25AGg34qBn1TEXmpvQsFqbKoOCngZde5D97v+rV2lpcu1Ot6BrNjAqGIn+Car7q7kBiYSUKktpmuYegGYz20jHz3j0FZb/TP7C4CM9R/+2hLFNSayFIKJcHaKTWNpxSsc6Aiw2jZmZ2sd3v3srO7btYWZfnendcxSMyUr626x0e153wS3tVjzQe/DN0J+19c0/YNeOnd15k3Lz17/FzL69FAuG6Zm9/Nlf/BnVkVGcdaxZs4ajDj/ikO61rBQD0Cds0kRofAH1V05NTsVxnMcDZBuB1vKYeOiFN8tnWa2WCj/WQqCPy+dqtYq1Ns/YE6+DDrrym68E9HH/PH3+oHP0ub7gL9UGoQgZB4H/g/qhv+MjPGN6PnUhUEVZl8vlPo5BV7ny+7XUMT1mg8co29otK8IfkiSWOE5oNJokSUq1NkQhKvKje37Cffc+yP33P0StOsbw0DjFsMoDDzxE3I4pBAVMFGLJOKogCPKybv9/NhmHYrHIxMQESRrz9a99ixc87xmcvulkhmslhobL3LX5h1x6xaVQCFi5ciW/cOrJh3SfZaUYfOgMPSZeXHwaxgN5ZWCd5iwoQX6XLLr9MzPMzc3l9qi2keVeugkS0GaBCIW2q7P49Ixkm5iYyPsn1YMGrfBaoOReArl9gXXO5UVFtGtykHnhB0QdiDPRx/RxyehzgYFw8fZ8cmbfMXW/OI77NuPV6KhUKvXt8uUHq/UpSLJ9FrTxv1iZqVXcdZVTVyGQGsZqYwyXRkibcN/mB/nal77BHd/7Aa2GoVqdpFxZQatl2bV7inpjnrjT5Hvfu4tmx9BJAoKgQhAVMC4mdOlABf+ztAMpbedcX2Vo2aA47Kq7yAQYm9JqzFOrlDn11KMpFgJm9+9lx46tvO+97+QrX/4iZ5+ziTPPPpVffu7lfPSj7zmk/i2LJKorn3+50yuBRgjaphf7Wyry+Kw/9Nx2eWKKmCJq8mtyzU/N1e5GQSiDmi9M2kbWSV/6b4PQjjYZRPHpMfADf/S9xa0p52hviD5P+im7UQ1SDjmpyuLoRc29+Mp7ENLQx8SsiOM4j9XQG+PKeX5fujfM7xF6fdCmjMEvPR+QxI6hUo3HH32cqakZ2s0W1WqVIAqoVss8svUJoqjI+NgKXJoyO7OPhfoUF194JueceynnXnAuX7z5yzzyyCMM1cpUIgtJm05QOqBZoEHFgc7zTUxjTC+Rza/aBFnVpj5zKyWkRIAhiZu84HnP4Z6772Hr1sfZs2+G3/+DP+D7P7iDSrHEmZtO4S/e9sfcdf+OJ23PLAvEoEk+Db394CExGYTYEmEQkkvnL2hBks1KfAi61OopUYl6wi4lTFp49P6SIqyFQiFHNfIdQSJ+zINMdoHbOkKvUqksqlEhCWS58Kg8Dj1mur9LtUHw3H9u3zOg+9snqKZ/f0mgryaGKAgx8/x7dG/cF5vhm1D5guHkPl1SNAgwJmB2dp67N/+EJ3buIU0M42MrCU1EY6HBY48+zthIjcmJEeoL06xaOc4lF53D5z71N7z/XW/FNWZ465t+ny33PoBLYdXK1ZmS/39gSvi3MI58t29BDYEDawM67ZRyZYh2x/Lbr34jJ518OgsLCd+/9S5+51WvhUaTa971QU4//HAuOOHEQ+rHskAMz3jeZd2Ymf6iGiKYOoxY+AOZaDr9WeC4uKjiOM62VvdWPa1whEGX1d3POfBXdWmDTAP5Vys3PZG1YMsz6qAjQTryHR04pT0Aes8GjVCSJKFarebh1PKsucDaxbEgfv+1P91HDP75egxEMeYZforEFeUdhiHVajWvlO0jEN1S258/YxiMSjLF0EMM1lqm9s6wc+deRkYm2btjD4E1JJ2EYiGAwLF//z4uv/w8Zmfn+JM/eSvlsMRLrv5V1qwc4T3vfAsLe/dz0lnn8LYPfoyp+QalaolyMSY0KWm4uPybboeCGHw3uzW92hpAXx3PvusCSRJw708eZmFhgUqlhMGyY/tu1qxey46dT/DMyy7k2PVrWVersnq4xoM/2sxffuVbTxoxLAvFcMWv/KKTQZRJKOHAzvXq9Wnh1Cw+9FZiEZJBNvgg6C/mhH5R8llH7B3oJevmnMths3OOUqnUVxdCwoBlRdWFZuS5xAwRRDAouEkLiDY3tJLzox+dc4vMCReYvFaD9tf3w1a3SJDls+ZItALxoyxlXEQR+54QGatms0mhu1mvXhwChUa0hyYIApw1GBMSBN1nthG33HIbISnFwgb2TU0xNuTozE3z/F95ATundvHn73wrO7Y+zoc/+F7mGvuJKBLEMUFzijf+3u/S7iT8ZHqBPQ2YnprC0KBYK9Lq9FzPmLC7D0a2ExUsrRhEyCWEWd6FNZnpYIwhwPQtUFFUJMTQbscUyhkR2qk3CU3EyMgIt373Hur1BmNjo6RJh+npGTasOQxnGuzes4PJoRrrC0V+5+Uv418+/ylufHDnk1YMyyKOAQYz3XJcE4waUcjKJ4Ijq5T8u6TtSm9ia8H3leRAQuwgSsKYbHs2KaYqJo8QbcaYPO1YhxJr16kmGXUQ1VLoRacx68Quv4UDPOS+PeuHlvuKWI+HDkHWsRBLEXSaiNTvUpeBHx8fZ2b//kXj7wc9CTIJTESK5K/IIuI499yzue2220j3zxF0FnjmZRdz7tlPY2a6w6+98Nd5w++8gi98/no+95lP8vG/+QS7d+zhiHXr+O7NN1GIWqSdeW77xrc47NQLsmChoM54rUwUFvI+QMZhiVJYqlmz2GY3xkCXVLRiXtJDliaIsEmKSyA0AUEaknRaPPrQ4xxz5FGk7YTD1k2w7bEGrtOkaAJOPOJwtm7dSqEUccn557Pp+GPYMDrM+675IK9/3asP2Ee/LTvEoLkGmRCCHnQwEvS7sPQklaZXPF9QliIVoR/mHei8pZqs9o1Gg+Hh4dx/L2aBzpQUpQDk7lNRWIOe1f8sz6LrG0j8gJhZIQfPmhTEIP3Se4WK0GveZxCnoMfKN4l0oJKvoDW6KxaLtLr1H4FeP1QkpZybb4FnDWEusAntdkKxUGbzPfdz8uGn8PuvfRGrV7T5x7/7JPfevY2VK9dyxHET3P+Te3nv+95Js1PnI9f8LZVwmJ2PPc6VFx7PERtXcNxZV/CCV/8pW6dnueD8cymYgMrocK6IJG4iy6joIhvhTbu8QJf6WBQAZVyGHrCe+zUIcWIyhiFxPeaJbbvYvXMPnSSmXKwQtzrsnZmiVkq5954fcdqpZ7FiZIIoTHnPe9/BDdf+G3/xp2/lm/91M7umdxN3mrzgWc/ktF952VOLfPRXQ01cyWrb52nwviPNOkdq+yszy+oLKE3/5PpjTDcBy/vBOz7o+51Oh1KpRKvVyolC6N/mXYKs0jTNCUshDqW/Ph+g3aTSknaHkJ5SjEyQk1Q+SvB5k0FNE6PC6Ug2pDwfqe0rZS+EqiCh/J0ozkbOkXci/8ZxnCs2aUK+Oudwqi96D1OZF725kSGyVatWYgLH6OgotpzwqWs/w7ve+T6ef8UlBJ2drJwwTI6tYsX4BNufeIT5+h4euP/H7N8/x5HHnMIXb76VqLya97/r7XzoPX/Cf33tq4RmmMCUKJUNNmnhiNV76Y23c66PGxDyMLR093/wPnddkIWgkMVOOAgdFEzAtsd3cNfmn7Dt8Z0QFjBBARcENDptnvWMq/iFk4/hrW9+A29/0+v55Mc+xGnHH8HKoYiJAlx5yeXcc9eP+cTf/jNr1x7On/3p2we+66XaskEM2v2oNwaBXki0VhrSclYceiXUgl5Cz1Ks+VLP3QdfvXP0hO/jOzwB86HvIPgsPn0hS0WopDQZ9Aqv+tmjwrlIBqAx2Q7aWtiyXIDM/ZlXVwr7EYiPrqzpxlOEUV5ybnJyMo/7kL7Ic4igBoUoJxflb378guZ9oihifn6eKIrywDA5T4+7HlV5ZzJuEoeS5QFAFGbh1o6UUrFCux1TLNRop02ee+UzOfuojTz0nS+wZu0kn73hJoLKBh566AHm6nt57et+nS9+4Rsce9SZXH/D1znrvFOY37GNFz7zbM67/Cou+403cd6zfpVKNSJNdgFZyHhiHcaqudQ1ywLXQ0LyHA5IA3LBt9aSdJeVEBmrgIAuh4Lje7fdQcGUaDTarFq1it27d/G0s8/g4YceIqzP8fKXPIt7N9/Jsy77JSqFYSZXjvG9W7/NUG0FQVjj4W27qa1cycLMXpKZ3Xz8a//91OIYZIUNgiDfrFSvTtrm9ok4CV5CcRHQIxeBvkKrT0YpyPf95ofv5hPaLa7cpJWQr6CA3LPQarX6Yi8klFqamBNC3BnbrYtoMvOhVqlm9Sysw7rMpZbGCZ20ycjICNZYrElwSllppZBDWhlrR54AFpqAqT17qVQq2XnOUZ9foFarEadJb1yTHklYLBYpl8u527bZbOaKQsaj3c4mutS4tMpM0LEnKFNQ/hUyWricKDLMzc1nY1oMAcP8wgxjYxPMz0+xbds0N974H1w3tZPfeu4ltNKAE447nh/e9wSzs3OcdPJJTIyu45cuv5KPXvMv/OqvXIYLHGbVCKOrxtmx6yG++Y1P8ZVbt3LvTx6imUYQGHAhIY60uyNUgMmRgiwUmohMA8U1ODBBkO17aW22obE1pHFK5EIcjkqpzMzuaY45+jjmZuYYKoXM06S981FGmjM87znP4NIzNrEitHznmzdz5LGb2Hxfyh133svUbBMThczNz2PCgE5zgfVrVgyc80u1ZWFKiBDLaqLTkqEHn/0dpTURVSqVFm3ICpkwDw0NHTBYSfcj/zzg79IPHy4DOdSWYiKaJCwWi3mCleYBpEmfx8bGci+Gb6PrH8k1wLqMGOsy/QKtk3ZW5zIPJBIldRBwKOy4XKdarebjKu9H9vMUD4j+EcFuNBo5ghDPivyIGSXPJyafKMMwzIwf5y0A4rWoVqs45xgbG+vLv5D9Qo3JktgWFhYYHRvinNPP5vvfvZ3h4WHqnYSpfS1OOP5kypWISy65hPn5Jn/9/g+zeuUa3v6217Nz58PY/fvYufNRVh9xGC1jabs6e3dt5b677qZUHCIMSiRxFn6d99Ejcfu2DBQXMF2PBJCSZaq6KCDF0ElTSuUqM7P7ue2227jzrh9y7lmn85Uv/Qc27rB968NMDFX50nX/wnOuuIRzzjqb//zKzXz/jruoNzsUhya4/Z4HeWDrXnbPNZlvtanUqoyPDfHa172W5BC5smWBGCRu3me99aorK65MvlKplMctOHpkl7WWqAtppRpxo9HIg4UG2dc+ipBPIohyjrb99b+CFnyCTfvWNVwWIRFYrgVeeA2UkgyCgEK372EQQJxSCiKC0OXuxiTubhQThhSHh4nCkEajQbVSwVlL0ulkIc6m3+VocYu0oPS53mwQBVmNg2IYEZkgJ8sKJqCVxsTdgqSlbgSmoL12u92XUq2VvaAG6LlUJQZCAtUEnYk5JaRtuVzO+ycemFKpSLNVV++hGwTXSdm7bwfnnX8hx518Inc9+giP3X8Xr3nZi7jrO3dz/KkbufLKZzA7tYtaxXHUxpVsvnsFt97+Qz724Q/SLtaZOGI187MzHL9uHb/2iQ/z9ve8l5GxCtZ1CCgTBBGtVoNSIVNKxnY9XamFwJBa203IMhhncC4llrliLUE7JbSO5r79/GDzZhr1mJuu+2e+dOMXuPT8s7n7P/6JP3nRxVx4/kWUh1dwxbOfxzkXXMSr/vQ9/M7rX8cN136DN7/mZdx03Wd59nOfw9YH7qY6PMFhRx3DxiOP4JRTj+WMMzfRTDqHJJPLgmP4xV9+uvPTh33loD0FmrGOoignHKEreCr+QYqGiGDrMGXtLhPhNMbkULZPgGwvC1JiH+RvuP5S575Z4ROr4mkRhORXM/JJ2CDIto6rVCoMDw+zd8cuauVeJGS73SYjuDPFIXtfGGOoVbKAp9impDhMGPQFS/lKUrsdQ5OZcGkn7lN6kNnNplSgkyYE3VVeuA8ZS0EN2qsh6NC/v/Z++FyOPqdareauYD+ISxOTYRhC4KhFNRb217n/wYf5wHvejlnYyzAt5nbu5L+/fyvrNx7NjzbfwwnHr+boY9axct0a2skwlULEkaccw/bdO/jJXfdx+qZn8Lu/9xbGjjqa4bEqSdIhiord9P2A+nyDSqWSEb8qEMs6lxW1cY7EdD0/SYptx1S7JtptX/8GST3llS99PqXIMbVjBy/45V/msUd/yvjEKOeefgab7/whU/ubDB99Ov/w+X/j0T3T3HHHD3n6uWfQ2PsYf/SqF7FyxSSV6gjHnX4+L7z6JfzTZ/43117/WdpJh0/986eZqj/5yhLLQjFIrsSgqEPoD6f1oxbjOCbtmhO5Mul+398ZShNiuvkC4tRxP99BBFUUVBZQ0zMLNLehrz9I8PV39HH5mwiW9KNSLFEbGaY+vR9DNwCoiz4Eeku8RGh6yhHICEKbuVGb7SwyEtvN78AtGndrbYZKxD2o+ilIpu1SCDOPS6veyIjUNMnD1sWU0cK81PiIwvSVlh8iL0lYCwsLeVq7VkZasSUuoUqATQ1Tcy3q9ToXbzqGo1aUWVcLePDRh3li9z5e8fLf4uijV/Gd276GiQLKQxtozbepTE6wes06Ihex6/F5EhvyyZtuYm5hNgtg66K1KDA0F5pUq9XsWRRBLO9UKwZS2LftCbY9/DBps81Ln/8crnr6hXz9y//OyskRTj3xJG7/7nexxRKf/8J/c8FFp7Pr0Ud40a/9On/995+hOr6a3c4wOzPHmpEaY4WUsDPPMSecyNMuvIi77nuQRux43e+9kb/5h0/Q6XQ4/pSTePuff/CpRT5Cz3eviSg9SX1CTz4Xi0WsWmGTLkknE0hKfWkBFyXis+A5zNaCCjm8t8Ksd/scGNPnStOp377ga8Wij/mrobg5tZcBMhvWJimN+QUmJydZmJ2jY+LcpDJdyE8YgXWk9LwD2erZLSOXWqIgxGC6UXsZMuiZEyb7vxojZ22+96GQwpmZEGCKUZ5N2el0smIopheFqRW0zw9pJSimh45C1VyLzA8xvfLnNv01JYXLabVaWJdijSVJLVExZLy2nm/e+kPOevVLWLuywnFnbWL/7AwUEqbqc8SmQpoWOHrNYcQTjtrK1ezcM8OOx7Zz2aVXsGXrY5SCiDUr1rJvbo56o8FwrYJz3Qpe3WeT4kD9WbsZkrXdd79qYgUfe/d72LnlAaYef5D6zi2YhSkOP+lIHvzJZjadfByuXuekt7ycw045nQd/+hB/+/efolAeJgjLRFM7eOFl5/C0XziV5r5ZTjntTD5zww38+itewbsvvJDjTz6Z93zsrzAO7r77bl752tcekjwuG/IRFucpSBMzIIeI6u9CBKZpSqqyE4WslOAh367Pr6XsXg3h/bwGIc30hJW+CfElfVyK5BQTQghKLbiFQoF6vU6apvnmKtpGj4KQdqPJcG2IUrGYewra7TaNhTpxq51HXJbL5ezvppefYZMU2xUq8bkHxmSKT/3Qhb6GnlmmPSgyFiKQwhWIySYIp91u51mVGglIf+TcIAgol8t5dSe5vijSKIryRDS5tq5+ZawjMgFpJ8ZYR9qJacwvQGqpFat5XY5atcLOJ57g1E1n8efv/hD7WgFPTM+zasMGfnTfvfzgrnvYdPoFHHn4KVRqYxgT8YPv38nk5CpOP/1Mtu/aTSdN2D+1lygIqVWGCMMoqxwVFIhUyL6uOaEXHin+EgYFxsfHeeUrX86Pf3QXa1ZN0Om0OPbYoxkaGuLwDYcxPbWHylCNoaLh83//EdzcXt7w2y/FxQvUCpahkuHd7/xzhsZrlEeqXHj55dz5k7t52W+9kpPPPJ3ScI3UAIFhzZo1fOQjHzkkmVwWiEGvJj7khv4y8BpJyCri6Pm8xbaWCkTlcrnP9y1C32g0svsFvX0Stfmi+QXtHREviD5P7484yIb27WhtFmn3qy5gIspFYHuxWMRYx759+9g+9xhjtWFMFNJuthgaGsIlaa4UhMSU0GitUFPXi6/Auu4qtjhUXJp81uPT7nQIHBRKBYxNMVFI3Grn79I5RyHoz23pdDqYIMAZ16e8S6USc3Nz+bP671/Ga5AZIggB+nNryuVy9t12TKFQoh0nlMpVjj7icIqFMivWHUV5fB1Tux5kZq7JSaecRqlc4L77HsAmJX760KNceN7T2LRphJl9U4zWxiEIufOeu9n1xOOsWrOBe++9l9HJUarlAjZ1vV2hFB8mz54hsxTjyPIhrKVUrXDamWfw61f/Bv910w2sqBYo16pEJmLf3CzDlQr1xLFz22Ncdv5FTM/Ms+nM47n0nJM46Rc2cexJJ/C///VfOfqEk7jx5lv44stfyhkXXcLumX3sm97P5OpVhIUIEhgdH2P37p2HJJPLgmO47DmXOB3qKm1Q32Ry6BRjaZpolGg9WXUkeCgPtvEIPyC327UrUSclyfk+ahlEOur+aoWj+ypoQ5671WplkzpJCYuFnkJJUoompNVsUhsaotNsUYoKEAZ9ikY21pU9GwXei3JstVpExYIHcfvJVd1n39MC/aXoOjbNKksbKHRNGWMMJuomb6U2Y+fxTEMyW1vMBs3baG5B54no8HCpBtXpKihRNPpaNknJHIHZ/hKdTgcTFpmda3He+Zcwv28nL7r6Kjr1fezZ+ijFKOXoY49kvpGZdEccfiQ33fRl6vU6F1x4MbunZznqqGOIE8tPf/pT1h95LL/zxj9m/cbDCF2Mo01koi7qCiDIPBDGpjgT9G9h4BzVQgkDPH7vnfzSpRczHMDKSoE146MYE2LTAFcKsJ2Yxx59nBXrN7D6yKO4/Yf3UK0NM3nsYXz4mk+wasPhuGqNdlDCOTIzsdkkiGSzoq7JaB3XXfelpxb5+IznXdaXKyETVSaD5AL4kXV6sglBJ4hBFz2B/kzDIAhyOxB6ghGY/shKWdX0jshyXL6n+wy9wCV9XK+cvgDKM0r/RaAIg9x9R2oxSUbiEQaUwgjbjnGBIXU2S7LxBFjfSyD92NgY7bjTJ0A+qav7q1dqPX45gjJk0ZRdpl2iG2ObZqZKEOSKQSuhxKZZ35V3R569UqksSpbT7036Lj8lFeEp7zHfyxSHcwZjs2eNUyiWajxw/8MUjOMfPvlX3Hn7f3PW8cezb+oJjjrmcBpNy+M7t3PzV2/mxS9+eRaA5RypiaA7xoWoxDN/+Vc5YdOZrFm7NkvndlmgWmiirmIQJZDtGqqlzLnM/LFxQsG1Oe/Uk9l05EYK7XlKnRZvetOHeOdfvoFG2mB8ZAU7d+zlge272TlX57BNp/P5G25g3caNVCo10iAkjQydIMgiLoFinHYVU5Y7EgaZm/kLX/jqUytXApbezQh6bjCdNalXe3/l05NHny+2qpzb58kYQBZKv0RBDFr5RcBEKPRqrPugiVSfVJNnHBoaYmZmhmanzfj4eP4sjUYDF/RW1SRJIOxtfFMoZcpweHi4L8PRGEOtVmPjxo1ZfcBuZWy/CI08pxz3SVQZ60FjINGLcg1jTC+129F3XMdz6PwRbZeLUpV7aVeu9goJEpTjg2JJUgfOZIortilB6Oh0WlSqRSpDw9z4xf+k1YJm2zK5ch13fH8zu3ftpVqpceaZZ9NqdojCItPT2QbDk5OTVMtlCoHhbz/+ESZGRyhEAYWwO0ZdhJSkHaWsum5tNdZZ3yzWQHF8JX/76X9hx75ZNt/7INt2PMHLX/4MTOBIUsPd9z/ILff8hOe/7NXc9O3b+PLtP+SMK59JqzBM0xSxxQqxNQQ2JTQpoUsgyMY6Vd6mqFjgUNqyUQbjopMAACAASURBVAx6cmmBFxKuL85giaZXwUGoQ5OGQgRquAqD0YBzro/86kMAXWGX3ZUHFXzRTSaxFhYRkkajwapVqxgdHWVubg5rLRMTExx7wvEEUUg7iRkeHu7rJ/QY/dnZ2T5BkSCg+fn5XvCUgtw+ilmKF/GjPOUa0ncxCcQMM448byAyAVHXdRqGIUGUmQEhhkqxRGSCRcleEo8gUaaiOLRiEgXTSRMSZ0lcz5zIUScBqXOkhmyfx8ARFR3r1q/gsKM28v0778GaCusOO5rEFVi3/ggmJiYpFErMLzQoFsuEhSLrDtvYQ6VJwr6pvRyx8TCqlQr33ns/sevFwxjjMgTn8WX+HDBBgIlCFtoJp55zHq//4/ex9pgTKE2sYXj9Eexotjn/l17Cfz20m2/tmOJ3P/ABzrz0UiaHS7SndhOG84TFNkl7P0UbU7aOcsdQjjNFmJXoy5RDu9Oh01W4T7YtC8Wg9zDQdqRMPCAvfKIFXAc6Qa9SkBCPssLqVOfcJFBk1uzsLJ1uqq/8aKURxzGNRiOP60/TNHORBr2MT9k/QUwC6Bcgn7vQgij30lyAPPvCwgJ79+7N0EAhotluESfZqpDYtM/UEb5FIj6hJ2SSpKaVYEBWHERzMtJH5xxJJ8Y4KEYFArJgKckJ0NyJfj5rbR4XYW2WBxDbHsnYbrZoN1uUiyWwjk6r59UQZaA9QT7/ID8S9KVNxsRlJliu2FSyggtMlpuQxsRJm127tlMqVXjr297Bo9seIyoUqQ2Pcs9PfkyhVOGii57OE088QblcplyIaLXaTO/dx9ve/g5whpWTE8zO7ue008/EmQJzCw2arQ6J7c989Tks6VuubJM2QSHitKf9AnGpxg9/upXxI46luv4ofvU1r6G4cgXrjz6W8cmVWeh5GNKsLzBUqmTkcRhmz2wNCY7YZCXvw7BHOoddHuhQ2rJQDHGrncea53Y8ZEUw6JkIMjnEhaW3QdPEo5gdGm3oa8s15djI8HAedy/X1i45H4kYL8AJ6CvOIhvQal5Cmyx6courE7L9FsTOlizL3N1ooFAu5SHDcm/hIbQyi6IoT3CSnZl0VKJz2aomTT7rMbEejI/jmIWFhdyGH4QutECYsJf7UiwWKZZLpC5DaaOjo8StNoGDdavXZOjC9mpTyDv2+R59X+GTdE3NHCmaXpUkaQ5yeO2cI4yg3mpy+JFHs39hga9989uYoMDpZ5xBMYzYvn07Gzdu4Ibr/7WL5NZQKQ9z2qlnMrliBZvvvIM/+9O3YNOYlZNrCUtlrMl2u8rNSRabqOISluK2IYZ9+2eoTozz/o9+nKQ6zJvf/QGu/eo3WXvskTTbbYqBgU4nq+BkAuJCAWfLWFMmDUukJiAOHO0wpRkkWFyWnxFk9SDk51DasiAfr/qVy1yaZoQUdIuoiBmh3GQ6yk37umWVkUmvFYjY1do2zhUNvZfnw35fs/dxIKY/TDfs9kHvIpWfS7+d7hOmosiEJNRBXlrwRFgr5TJB6rCdXlRkHMcE9PMpYt4AucKQWAHteuwjH03v+SAzA3TT32/HHVID2RawLk81hgzGSrk48QTNN+qMj48zPjRCc6FOompWxrK/RCHsQ1sy7s65DHl08ym0CxNjFtnvPUSUYum+N8Bgcc4QBgUcKfv2xlx+6RV891v/zhtf+2omV0xQqTjuuO121q9fz4b1q4migNm5Brd8dzN//w//TGdhjmOOWMP7P/AuGJpg71xCsTLBR//hQ4zUhmgtzGPS/pL4uUdCzcGcF+k4WoEhJWGsViOZn6PViRlesYKFepvQkLk6wwAbOALXrWGKI+4Sv8a6jN8wkJDNx0gp+ziOIQz48nVPMfJxUGw8Xe2q7U0hnCRISGCk3rhEowVZZTSz3YcCFPPdarX6+AaNEmTF7F4g74+/Oa0Ivj6u070H2ZxBENBqtfKgJv0DPfMojmMCY3rBT4VClmqddEvIu2xi6AK3cZpk/IMJ8jLzg7wLzrkslbj7OTAmV3aaf8jdgnHSIxmty/d3zIVZiWqn06HVytyraSdmx44dNBoNkk4WMNVqtzOYG/ZKx0VBmNUlSNK80ElkgqxSdheBkGaLQ6DGVL9nIFcKIAtAZlJalzA/26EQxXzsY+/llu/dwbqjjqedpszNzXH4UUezYcMGwtCwY/cO7vzh7Vz9/BfyS5dczkt+8zd40W/+Gp/9zKfYs/Uxjj/8cF7xipfxwue/lJ27prE4ggCVhp3mKMFHrM45bLFAqRAyWh1idr5JEtWwURUTFOm4ONu0NugiYRf0InGV0s5+70YPu/6CsjnndIjr/7IIcNIro6ACWeGglzPgnMt3tjZKqAe53cTFKUKpSTI34CVpOz1JknxlFGWUR+8FvYpB+rq6YK0gGuEkdCyEbmKT63wIOU9yDSqVSh5yLH3Iob5CJlINqt1s9ZlPMm5J0iuuoo/nZla3T5qs1e5hyOo0FItFki6/YoyhEGYBUomzfRNS5wkIB6TRWxhGFAsRCS4fJ6eUiyhXUWbGGOIkod3pEIUhhSii3mrmcSD6nnpO6SYLhXOOSjVixfhKkk6HSnGI33vDH/Kxj7yfTsMwOzvLY489xuSKjAS+4IILmF+Y4cijDiMMA27/7m386Ec/4KJLn8WjD2/hjb/7Oqb37iIKHWncodiNqI3jFAJwrldwR/qh+2Rt2kN4NjNLG41GRtLarAbHILl2rpu67XqlCvVzaw/QobZlgRigP0FHJoO4wjSJt1SEoj5HI4xBZoK2Yf0EHAkIEvtdrq3rCci9fPtxEBmn60vo7+q6j5p919cqFos0m81cKYRhSDGM8mcQAjJJElrtNo1unQat/AYpQT1RluI+nMtcaqJgpRSdHs8+2O4WT3j9b96n7pAlNqXTTc+WewZBVsEojuPcmzFcrWXei261qigMMTZDcOPj40rR9LtplzKRc47Ctpifn2F8fJxtT+xmfGI173v/NdTrMXHSZM+eXVQrI4zUJnjwwYdotWd59nMuYahW4cgjjuM5z/k1xkaHWbNyhHUrhrn5S19k12NbyUKcAtI0C302trdx8qD3AQnGuKygjku69Rpknsd9Y/xkmv+uDzQWB2rLAjHk9jq9F5skCSMjI5TLZaampvpMAhFSOU9PZn9gfH5BVkTRprKiixCnaUqz2cyv19c/ZZeLoHQ6HTppf2EVjTTE3NGKSk8U/eL0ai1EptQmyJUdApnJbM0gIOiuUFmSVEqRILP7uwFG6cD1ZvA7kHHLn70bxCTKK9/Ux2WuWpemmTdA+CFMH9HlT8xsDCHohrLn0Y/W5d4MYx0FVTo/TVPmG3WqQzVMlNWFkKI9Mh8EXck9NdcjTXM3pVKZ2f3zVCsjrFq9hqGREfZP72LHnr2cdOwxkGxlamqG0ZFJDCF79uziP/79BrY/Ps0Pf7CZnbtm+dcbP087MRSKE1zxvF/hRVf/Bp///OdwJYMJHEHgcFhM1/Mjlb6gxztkwXYxjqwEvsn7H0MIGIuzgPnZ1/BDUSz5d34WbfLzbr/4rIucuF1gsabTXgWp1mSModlsEoZhXv/P/56e7OK+lJVXw349Bn4kog6eyW10VNgwvUQqSTMWhSBRkJp/0KhClIRGOrLxrpBGSZLk5dxyJBF1IzG75oGJesSoSbN06dimWLLkK63kpPmBWALj9RhqD0D+DF3+wJnuBBbeQZkBOo1bmob4QaqiVenZwNbQV9Q26F5f+iBpy5Vit8oVvchRXb5PSFL9/uTeomDTxDFUrZLElsQWuPP2O2nVZ7n+uk+TNudZNTGJ7cQ02w1uv/1WwsARt+s897kv4Dv//T2uesaVvP6Nr2Vi5TqOPOoUzrvsCv70bW/FOsfxJ53A3qmdDA1VM1KaMI+2FYJdeBjXZ/wH4CKycvQWZ2zGGVj6OIV8fnTH40D8gXMuv+eXrv3Ppxb5KC4qf/JqAk+77lqtFvPz8/mKLULjrxAi0GHYKx2mm15B/Pv6BJ1vmhj6/dKSZSjeBYni8yelKAN5Jj8fQHgGay2FIKQUZe64uN3BJpkwd5I4CyuOAmyYVWFKunaq8BnlcrlXb0HFT0BPwfqRnzriUZ8rYyXmhaVntmVeMUPoMnY87JJufaXNXOa5SFy2+ieuyyPRC4ISMtMYkxF1Yjp2CcYwDImCkBDTZ4aJqzsrlrqbIAioNxpEXaQlyl+Qh2RwlgoFrE0oFA0miDnhlBP4/T96E1+/+dusWHU4e6Zn2Dc/zZZHt3DRJZdy9DEnsnXbHvbNzTM6NsStt3+L5z/3OXzza9/i0kvOp4jlw+//AC9/6Su474H72XjE4TlyCoKAhXo9U57dH6kBael3KbrAYkmz0KTsAIPE9GALer4AHTpYyPr8s33t59sOZhNrQlFv2CpEZA7J0v4qzHr10+nZMlF01SXdFx1lKROq72+KrdeBRFoJaVtcKx5txsizSgpyuVzO+hcnJO0O7XabdrtNq9Hsi9voU1phgAsMLjCEhYhWt46DoKlBEZh+FGjfSqoUlUZG/k8e3ahiEOgiKN200pPn99+jVj7yDrUJZa3NGDYW50uIIgyCII8K1a5rubeMQQ8tOpyNsS4mCAwjI0N88cYvccEFv8i2x3fw4IMPUihGnH3OWSQ25nff8Ea2bdtJo95m/fq1TIwMceZpp/PSl/wqn/qnvyNpN/jMP/8TH/7gB7jmw9ewfft2oqBAISjlJlMm573NazPFkQm+7YZup33jLHtyHpqYLiVLh9KWhWLQoa6D4KwmFOVB9aSWyaaTnXTcgXynUCjkFYx9hOGvnPq7Mjnls0YBclzMBmHYRWlJPYIcOqtnlQCnJElotVo52Zqabn5BkpkFI7WhjNOIsn0HCmGvspJL0nyPhyRJ8ghRsbf1s0nTJpYOeNImFvTi+33zzFpL6nqKM78uWWKVvq9cKzIBxTDquZOtzfdPkK9oN6nUc8jfvVKoklUqiVvGGPbs2ZPzH1EYYtLeYuKT0Gma0kk7xF0EUykEhC5hw/q1/O3f/CPbdk3znTvuojo8xL69e4jrDT75yU+y/vAj+NJXvsp8vcPcQpvHt23l8//yb5xy/En82dv+hJu+eAP/+ZUv842vf43QZMrPpoY0NZRKNQLCfEt7CcLKNqshPx4g88yAzQrNOGMXozCy330zQr8nCeaybrBX40BtWSgGn93XK7UE/ei/AXk15VarlbP3ohB0VWN9XU3yCWzWUFPzAFr4RYDld0Edc3NzWZhvN/JQdqSGHqmmd+DW95YJLdyHcAulUinfFyOKIgJjqNfrdJpZaTI/KjNfUemvayEIRpOf/phLXzSx6iMSTZbKs2mzR9COz6H4iiRXzmGUu+Y0itAoTN6hXFv6mIe40zPHpEK1RFhK/zTC1GHTcv1SVCJIIbSGpNWmFIYEWNqdJv96/fVc8YxnMjw0QdyxTE/vY9++fVx00UXct+Vh9u6rMzS2ltm65U1vfjOfu/YLXP2il7NycjX3/vhuvvwfNzJSGyEyEZWhKs6lxDYG1K7uA4Ra+i7PrJX0oCZj60fYCu+Ue9KeyuSjc46gEOX+fxE0WXUrlQrO9ddxFIGQXZ414oDF7jMRaskv0E2vfFoZhGFIvV7Pj8v3JJ/BWpsXBtFIRSMXeVl79+7NqgnVan35IbqP0gIHtp3FLwgSsGmKKUS9kvGlYj/v4bLNTEKbRR/6cQgahQ1q+XZqHiehobhGasWokL+rqFjAdc9NXM8US11P4WZelYxLCIOgtwLq4Cql0LV717pe9GNYyMYuyGIZMwXYvY9jcSajfv8yd0JCbBITdQOpAlMkcYYdu6Y47+mX8JUv3sD/+tBf0p7dT7lYoN7u8N3bb+fFr3wVN/zr9dx43fWsGBsiiS27p6ZZs3o9jdYCe/Zu56W/9Vs889nP413veS+loRKFKMtuzFzvKcb0C/xS70MjgkUmGt0S9B5pLM3nFhzw5aca+Qi9IAxZhWQvCJmIUlPAb+KRyCLVwj5zA1ikKIwxOdwWoZEJ6Wvodrud5Qe4Xv5Do9HIlUCtVssrQ+l7+7a7IIqRkRFGRkb6PAzSxJuh80CGh4dzOC0rbGQCRkZGWLFiBVEQ0mm1s81PU5ujBBf0CNsgyPL+tU3/ZNugRSNfmRw54Sp8gJXgKXoxEaEJ8ijA0ASUC71VXb+XQTaxJg2DIMi9M1IJSfrRhwYHmE0+ZwUZgDdhVmE8iweJacUtVm9Yxb3338vqDRs4/Ihj2DO1jz96y5sZHR8DLB/664/wX9/6Djt3TTPfSGnGDusC5usx/9+rXsVrXvMagiDgxVe/lC0Pbc0zSpvNJtbYruft4Nsk5mMwQMBd97jeF1OfN4hwPFTMsCwQw8XPOM/JhO6zS1VcvEBzv26DvzmN/N1vghbkXG066NZngnTRipgDcr7cSycmiWLQsN4YkwuLtukFjUh/BkFBUotN0p7rMwihi5jKXZNFE4WiWAzkG6qGhYg0TggxxF7WnzQNr6Xsm6RMa5JUmiAdGc+wkCVsVavVPsIzUIFofdwRiyPxRMgT21OsYRgyPDycr/KCknT6cBAEuSsu7aZeyxyQ3A3fpBECN+lmlopNby04Y4iKBfbsnuaqq57Nb7/4Jdx52y1UiyHXXnstoxMr+PRnr2V8eCXtdkJoTB7zcvwJp3LX3bfR6jQYHRmlNjTJcSeeQFiNqQxn+SJZgd+MTFzKjOj7fQnRDBz5VgDWKJ6te346wF0MPPVyJTRBpCeNFhhxNcnKBz1oLyutrsXoNx9u+SHS+jyZRHEc91Uj1vyCCKVvw4tdJ14PsX0lZDnbVi0zB5IkyRGBPHcURVnAUhjkGZv1ep0oivK9JQyQxDHOZpvrFAsFit0syijooR6JppSakX7fZQy1AMneiWIGaXvfL3Yr70y7ZnOzBgb+DGoWl9edlPsZY1hYWKDRaLCwsJATu85a0iTBdcesR9qZrLZD0BM6rRT8eRHhCMiKpbjAYKIsKMlgGR8b5u/+7u845Yxzs+Ipu/fxpa9+E2uL1BfajIytILEQO0NtdJRWYpldmGV4dII16w9jYuUGCuUa373tdnBBZrbEEo+RKT5Z5fPx8kwBoN+N6SEEbX7pd6kXrv+btiwiH/OJafpjGTQK0CRYHxOuzj8QWaPtV+3C8wmzHJFAvquSTHwde6D7J9fXQqaRie6ncCTDw8O5YoF+2NzudP5Pe1cfK8dV3X93ZnZ2Zz/e83t+z86znfgjcZzEiQMkJVHqkNJSQEolUBEloIKoUFGpUoRKCaJCVYJoUf9pWlVBCYqIVARFglBBCaRBpSlNRNtAAk1qO44dm4Dtl2f7fezu29mdj3v7x51z58zdWRNHqfSQ5ic9vfd2d3Zm7tx77jm/84Wg0UDQbCKRKfxG3bgzhQLaUx2MRiPj8YDMAr9835hWSukdhcaFu1dtcpWPiWCVovh102+ej5AqCZXm7kHyCskkhaiN734C+eSmp8Y/RcKa8lW461gpZYrXCgGdq5Fdl1Ta1haOgMfmkNlxVf6jr0PXY6SgIeIlfNfDMByg0Whj394rsWfPNYhQw0P/8BX8yUfvwkMPPoQ4FVjr9dFotfU1ChfTs5tx5OhhbN9+KVIp0ezM4tTpRWzfcRmiYYq0qZ+z43lIWZjzhTixSeBRpVLoe6HnKC7aYJiMDWFK3Pa2WxSgVSAi9/jgASi8TkVP7bBXLi05G84Tbeg9+qEoSiLR3Cy8mJsENuvvZwuQexz4tZCJ4Lqu6UpEQU/NZtPUNgiCwGgISWaykAaRJAk2dabQ7/aAVKKRcRzUb4LnbQCZkJLlz5L79bk3gcaC4jl4SjstUv4+CUaeyGYWevY+UKzYDOQmCf9ujoLGUnIcvW7DfE4ps4smSpqKUVJKXZU5TeGiWFsDAKQrdN1KkZfLF46j3YqyhvVeBM+t4eOfuAt/+KEPIx7qZxRm+R2e72N5eRnNZoBWK4AQLqamprAeDnH27Fk4rkDHb2D31Tsxv2UGw/A80jRGIh20Wi0MRwP4dV0UlpsWfOOyNzqu4XLT2yaY7Q1JCPGrZ0rwGwFQIMrILWVa3Ge2Z6fTMcKCRxIS6DWarPw83FwIw9AQiuQKLCMv+Wucdygj0chsAGCKpFAeRq/Xw2g0MiZKp9PBaDg0jWBJoyDTIU1TtFotCEdXLOLRmrS78nPT3wTSgLiL1g6UIpcfV+O5yWG7Dev1+lhncR4QxnfDMu2pDLa2xZ+/fU/AuOeEPsO5BYr34POjTGUHu36KuBSQePzx72P/ddfijjvuwFq3DzcjTputBmq+C5lG2L5tKzxXYDAaotdbw/K583CFwJYtWzC3eR6OX8MLR19Et9vHYDTEzNxmBE397IMgKJSAs++xTPvlmjO/b1s42ONysQrAhtAYDr7lJuV5Or6fR7LRT5IkpssyqfS0+/HsSD657BgFW6KSbWzSmLOFQLkQAAqcBWV7cvPGNik4uckf1Gg41C5Xv45mp60ndaqJMNevodfrmUVL9RtlrGspBHXNM9QczSWQQOE7ghF+JRqD/XztoC7OR9gmhPEsWMQvjy0hwtKO2bAXLv/fJogvRIpyQVH2GWMtZNWKjHaXxTqkUWzOIa1cF+mKAnln5ohUWO8OMT01hxMnf4G5LQs4f66LZCSxunIWEDGUSlFzXQi4UDIBGg0kwxGSUYJGs41mu43uYB0rq8totVroTPm4Zv8OBIGPer2B1dWu0eRImPHdnuavbVpzYUtkKz0jPi5cSyN89+uPvWKNYUNwDEAxXdYsMKkgXDEmEUktp4Hli5pPIqrHwCc2t69pMdD5bO2CIKDb0zWDIO+ZmKZ5PQTkzWCFEIUCphTn4Ps+mvWGsXWTJEV/EMJv1KGSFOvrA2zatMkUR5UAtl2yACkl1pZXtBvT84zbTwhmX2dCJkWxYa89yYCiYORjWq/XzbgMhiEc1zFqODcR6D5troWPI38G/Hy29sWvgS9MoGjCcaE/CTRm5OHwPE+Xj3Py4ibcI5KmuggMsnF0IQBFhKBCI/AhVYTtOxcQxQora6tIYgeddhujqI8oTrC6uoLpzjS2bNmCpXOLGPYHcIWLdOQhrdcxNd1BrV6D49Sw76o9+N13vRUCCf7l0e+h5tTgOECqAMfNu71zbcAeK9sLRYls/JnTZ/n4X0hTmzieF33E/wOMycCqCSMLaaW24mEYmtoMEDrrLo5y92DeOj0PegJy95ptu9JOSxwEXQdNICGyZB02qNwdR98TRRES1kei3dbhy0GriWa7hbnNm3Wwll+HSnUPiFE4hIwTTLc7iEcRIJUJZGr4eoHWaz6WlpbQW13TmlGmDptJofL0b6rxSGQkJxgpQQ2ASZ2mzMMoigyJSRzLKI6MicIFJ90vCVeKKbGJYT45bZOgTJ3n98LBTZFJqjA9KxLQSHX7PerZ4Dg6f4PvoHQerpHy5DEKgPM8B0k6glQRnn3uGUAoTE210V8PUW800euH8BsBVtd6+MXpU+h1u9g0PY2FhQXs27dP13EMWnj55SV4ro/Tpxbx4vGfI46A1fNrGKxrkni915+oIfBNr8BbMZOvbMw4l8L5qIvBhtAYuBpE7iYlqCyb0myy48IRDiC0+pqmuk8AlAudpgpISb0PWYt6FLsn0cCTUKD3aCEUdjAUe1gQicl5CuPVkBLdXg9KKXT7PTSbTdTrdayGy/BdHU+QRjGSLFCnGQQYhiF8N1vsQjPmySgCXF1joR1ootJ18nJxrijupGbMLG6kTA0ti9ngY8THgkCcCWlpNDY2T/FKYAtm/owuhF/2GaV0foTjeojTJE/msrQiI2TYcUIC/Ou1Wl+DlCmEAPy6wP79+3BuKcTh5w5jYdtlOLfaR81vY2ZuDrt3Xoaf/ewE2o06FhcXEaCGwyd+Abe1CY3OZvzazbfhJ8/8CNOdAP/+b/+JZ57+Eb7xta/jgQf+DtFQF/YVCqbmxaR7LxMCQDkpO4mzuBhsCI2BdgzSGrgLkdd85GXhKRKRgyYBDXAZD0E73Gg0KuQT0OftjESKn+BuM4oHoB2ZFtKmTZtMI106D/WboGCoTruNZhAgiTRXQsRXGsVGS4qHI8Oi55pQMfuQHnqSJKYKEoVwczuU78Z8otj+bq6qUrh3EASmxBydn4/Bq5149ExswthGGV9T9hmldBn6MAyRxnkJfEJhDNhxhfezWAghBODojEfX1WPSbAWI4iHe/Ju/gTAMsfeKfbh875XodgcIRwlqtToGgyEGwwQvnT6N+UsWEKXAiZ+fxpHDx/DOd74TtVoNV111Da4/cAO+/OV/xPTUDIbrQ7SDPJSfx/JQd7Gyey8zxV5rbAiNASiSXUIIs0sB2kwYZsSf7/t68TWaSKVecF6NdlGaEE5BapIKxl+zB91ecAKAV6shDEPEcazbwwEmWMgOjCIQOegKB0kUQ2Y5H5B68lH4tN+oI0lT7a7KFmWN1WqkugWecJCMIr0DSl13gfgAKgJD48eDjOg1W3ja/ANxIfQ/Cd401WHWnIwkuMjdfFBF3zrBFkYkgKmgTafTKQSs0XVPihGxMcZJeG7p501LektYaO+mgERWGwEKguagTKFc/ZrneVDSwfT0FBIV4uCtt+D48Z8jjEa44porceTIISzMLyBNJa45cADLKz2cW+1i6yU7sGv3ZZDRAB/58EcwO70JK8tLmJnZjF53HVu3ziAcJGg2s8pNIssydgSQpnAcDw4JrJLqTamT8yll4GPwagT4hhEMZXan/l1kjfPdXe9YNZ8XHa1DqRQ0B/hx3M4sC4TiZgFpAFSENUkShGGIZrNpPCOco7DdpPZiSpSE5zhQidTcSJKgxohOuqco0nyDaaku84rMaZKg5nqmghV5Bkg48N2X75Dk4eGqJZkCNhk7SdPgO7Axe6wSbmXPk4+D4zimEW0QBBgOh+ZZUFAWmSr8OJursG1we+7Q/4D2LtScccEIsPwCoSuokYmh8crefwAADSRJREFUeQsHUiUQRPDKGJdetoDnnj2E4byD890VzGzegv4wxv7r34DzZ8+h7nv44VNPYcv8JXjb7b+DEy+9hHPnFrF46iT+7BMfxUMPfRECCR759rfwyLf+GQ88cC8ee/Tb+NfHv49ubxWjOK9Cplx9YZFM4LjjzZ6BPHX7l+HVanUbRjDQwuU7Bv0dhuvwfZ2WzKsjuZ5AFMUF/sCeJGNBQCiXpnzyDYdDo7UIIXTQSpbyzHdhLqxc19UZgIwgAnThDSmlaUBby3oZUg4EqY3kptTpuQppFMFx814KFPVI10deGBIKk5h/Msf4PQJ5WX4AJkbE8dwiv6BZWDiOa6IISdhSSO4klLknKUaDBAGdm7SsQpEYdv1lz4h+LjjxHWFCrc09gb4XhlzgvJJSOmLUkQ6E0E1hpXSwtHQalyzMYXpmFvVGG0eeP4Gduy5Fd62POJE4c/Zl3HjDG7F1yxwe+84jeO8Hfh8/+MHjuOmNN+CWm27GHe95N2684Xo8/PDDOPb88/jzT30CR55/Fgvbtuq4GNcz2anaZEvHtL2x23uFwuHVYENwDEAuGDgTC+gJNjs7i5eXzqDXX0Oz2TQDRhwBD/KxYwm4sOA1GOjzdF5aHORepMrMgzBEt9fD1NQUBoNBbtNmk7xQ2ISdU0od00+8hhEWrmOyO5XSQTjJKIJKUsTDEdpBE81GoHMeAO2izMaIdnjumuUFUO1oNx7kxbkHpRTgCN0tSgBuzUM90JWxeZs6QpqmhvDlGtgFn2f2Q4svSZJCUxzOsnMBRccoZBGNShdpMbu5yONIuCeERT3nGYjZsfyHXqM0bT4PuMnJ+RQIibn5GczNz2DH9nksvXwKU60GhJRYH/SweXYTwv46Ws0GDly7H/uvvgKf/9u/wfve/S584H3vxfceexQ/efpp3PXJT+GZp3+KpaWzOHnyJObnt2BlZcWEgLtCd6VOohhpnEAkEq5E6c+FEqxeC2yIAKffuv1NqozMov8bjQbW+j04joN2u228B1zF4guU51Twicx9xPaORqRhGIZGU6Ad2/d9pFn0ouPoTD+a0BQkBWhOIooi41qkxjh0XTXHRTzK2P00I0KVft02SYTQ2aZRonkU36uNaUP2eHFvgT0+/PM8jNkGPwdpGuTOvdBcMYsr4xyoxR0RqEkcFzwqlMchs8VqhDXLluRaihBZTUh+TmQxJkoV0pDpOB7wRN/D4yN4GDt38ZLwpSY4VBskjmMI1cDeK67FT376vzi9eAa7du7BW9/6Nnzuc3+NvXt24Q0H9mPHtkuwc/fl+MY/fRMf+/jH8NKpRaz3u9i+fTtUKvHggw9i5fwiNs9NI4pWzfMX+YXqsVbFbN7CeAOmOC6NA5BrEWXP6lcuJLqs9qJhZ7MYBgqBpk5M3AVJngHyVNCC5DsomSbk7+dBJFTR2XVd45IkXz/ZwHGsOycNBgMAOVlmWrZlXg5aIESc8l4MXt1Hre5rwZDtmqYcHfNAONm1JkliOk2R6m27SumHxmCSUKBx4H9PYrPpHNQb0j6WfwdX9U2NBBIsKs8aLTPnuLuVxshxHNP2jmddFu6B9Tk1rsfsVriAKLtO+5wEw6eIfGx4vIvRTn0H//Psj3HPZz6Ng7fehBtuvA7Layv40le+hNe94XrceecfY/fOnbjuuv1wXACOC4UUzXYLV111FYTrYLW7hgOvfx1cPzcVXDYGruNo9+sEoTAJr5W2AGwQjeHW375ZlSXW6IFRaDSa6K73jZrPg2J41iNX6Uny84Ak7pUgkFuOOkTTw4kyQUCsvUxTI3hoURptItt5KGSa1Fw6L+UWDAYDxFlhlUbNRzQaodkIdKkyITDKtBYnu/5YaRNHuLraEQlKrvryezMFTSwTit8rUNQY+D1zoQPAFDGlgC/7+RTiERRb9CLzAmS1GX3XQ5qpyua6WFdqBWbWiSwNW2hNytyfymIMAF181nONmaKUMlWXgfGEJC6UuFZJi53+V0rpQippAqV0yDGNZRzHaLfbcJ0aXKeBYy+ewJX79uH229+BhW27cPnle9Fu1DA3FeDY8y8AXg2uH+CP7rwT9913Hw4deg5P/scT2L//OiwvL2NmUwtP/ehJLJ99CVGotUyZ5OaVRJEItlGmMdB9vxYaw4YgH8n+5pF7fNL3+30o6IpJVNuRFgkvolK2W/JiKkCRaKLdmlRmkxWYfY68EI7jQHkeIPKCGIlMjHAg0LUQR0LXmEYxBuEISgANvw7hStRcD42aFirUvIVUdqkU0iRBlGoNxPc8KIyHE9NvEo4238EhRO5FoMlng5szUkqd4IPyjEcz1nSsAEyUQCYkyNVGtRMUy+UolJzLzqE5hSzIiqn42aBod6KC6aMhpCqYDw4ybwMzH2y3JtdYysZASIU0C3oiISyEgF+vI04SxCqGJyJcvXc3lpfPY/X8El489gKuvnI3ls6eQ68foD03h0OHDmF2djP+6i/vwWh9HU//+Cnc85m/wOFDR7UGEg/x1H89iXCo4AkXSmW9JJSDKIkLGwuNQ4GUBZAKBSnzYK40uy8lx5P7LhYbwpSgUF1gwoTObmx1ddXs0pyoLAsE8TwPQRAYIpFsbzvenAuGsgxNvkvT7mPqCzJhxBckmSR0joQSeRQg40SXY2MxA1xY0XnJNCKiskzbob95HMIk3sCGrV7zhjx8MdnnLJCc7Brs0mJS6DR64hCMuaHywiq8PBuZB3xTKN0pRW5CKIExU8K+50n3caHX7L+5Bkp/9/praAV13Hff32Pbtm34zqOPIBwNcObMKXzr29/Erj27UW81MDM7i+nZDg4e/HU88cQTWF45h3379gDQvUDTWEKJLHHPcQEnF9oXem70Pr8/rv1cjAlShg0hGGjn5VWHCXzxUV4AbyFHk9rmKaSUJlKSfpPdTP5iIg1JGBCvQIubBz3ZYdsEIUQhppYeFmkqtawTFFJp6iqQOSREligmcnKUhBfVibTPZ48bjZEtGDm4uk+g+HvqCUHfxTWPMoHLNYU0U/lJUKbEDTBGn9TaVOqS83SMykwGAIXqRNykGLuPfJALr/PPUg9N7kGh52nfy6QxM1WdRB5GLqB5AE1UDzMXa4qDt96Ce+7+NBYXT+PYsaOYmZ3G0ReO4MyZUzh58iROnHwRR48egVIpDh48iF27duHkyVNwXQ+D9QjCdOQuzindcGbyzm8LCGBcOyr77CvFhuAYDr7lJkUPjrsiC/Yzcmmdt/cqdm+mQbEnAVd/afFR5qP9PmkNCXN7UiLVaDSCywKTCu4ypeDXamg2mzi/dNbEF7SCpi5PXvNNZqaQ5WXa+Y4kpUSUJgXpz58VfYaz6kjLJwYfQ/qeAveAoglm27UKxcUnZL5wKcOPhDSZEPQ6F0ZUq9AItExomLZ3SpmmLPwYgkslKbO3XYjcdGDH8HE1qreaTLbSd9rjy7+D3qMNw3VdQDlQSqDT6eDEiZO4++678YUvfAGfvOtTEMLF3iuuRpymkClw5swZwBEYDIZwhYc33/Ym3HLLzVjvn8OlO7ZiEPbRbDaM9pqmMYTMNiUmoLlgHkjt3iVOis9ve10L8StYqAXI8wBGo5HxPNhwXV3kk3ZTGRczKAEYVw/tWHyn54KDfz8tYvIn024q0xQpKzbLd3QudOI4hufqCtK91TWT0ut7NagkRb3mw3c9nWFpCQPHcUwbNq4B2UKSjpnEppcl4NjjC4wvELOQ2QIiVR3IhYKpO6iUWbhcKBR2NlEkIu1ahdSijWsPKastUHr9AmPahimfzoWWGBcQF/pec10WlFLGu8X5FargJYSA4+rEvX6/i907d+Bzn/0sPvj+9+PH//0U5mfncfz4cRw/+iJuv/0dmJmZxyOPfBd/8MEP4ffe/R7cf//9uP+Bz2Mw6GMYjVAPfISjISsH7xqTjK8EitEgcEFA18fNsFe78W8IwWATLVwl4jwC3TCv3ES7L0lRmqB0PC9DxlVmPpnJFOELkohNOoZ6O/i+D+HmqbokpYfDoflcUG+YsOW11VWsd3vodbumvTu370nQcBOG3yvxDVyt5yquTbpOgm22EIygYC5AyQguDlqUtgrOd9dJ6jlfvIUdGIwsZu3bSpEJJLNgSth3owVepIltPxMgJ8U5v6CUMq7pOI5Rb9QgVYJ+2Mf2nQv46te+itffeAM+9vE/RbPdRj1o4k233oa3v/3tePKJH+Lee+/FocPP4MCBazEYrMP1BOBm5pijCsJzUg6KXU2dz42yxLQLmZmTsCFMiQoVKmwsbAiNoUKFChsLlWCoUKHCGCrBUKFChTFUgqFChQpjqARDhQoVxlAJhgoVKoyhEgwVKlQYQyUYKlSoMIZKMFSoUGEMlWCoUKHCGCrBUKFChTFUgqFChQpjqARDhQoVxlAJhgoVKoyhEgwVKlQYQyUYKlSoMIZKMFSoUGEMlWCoUKHCGCrBUKFChTFUgqFChQpjqARDhQoVxlAJhgoVKoyhEgwVKlQYw/8Bpanr+mrgUy8AAAAASUVORK5CYII=\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# get all images containing given categories, select one at random\n", - "catIds = coco.getCatIds(catNms=['helipad'])\n", - "print(catIds)\n", - "imgIds = coco.getImgIds(catIds=catIds)\n", - "# imgIds = coco.getImgIds(imgIds=[335328])\n", - "img = coco.loadImgs(imgIds[np.random.randint(0, len(imgIds))])[0]\n", - "I = io.imread('./rscup/train/'+img['file_name'])\n", - "plt.imshow(I)\n", - "plt.axis('off')\n", - "print(img)\n", - "annIds = coco.getAnnIds(imgIds=[img['id']], iscrowd=None)\n", - "print(len(annIds))\n", - "anns = coco.loadAnns(annIds)\n", - "for ann in anns:\n", - " bbox = ann['bbox']\n", - " x = [int(x) for x in bbox]\n", - " cv2.rectangle(I, (x[0],x[1]), (x[0]+x[2],x[1]+x[3]), (0,255,0), 2)\n", - " cv2.putText(I, CLASS[ann['category_id']], (x[0],x[1]), cv2.FONT_HERSHEY_COMPLEX, 1, (0, 0, 255), 2)\n", - "plt.imshow(I)\n", - "#coco.showAnns(anns)" - ] - }, { "cell_type": "code", "execution_count": 307, @@ -1823,74 +1416,6 @@ "scale_generate_noobj(datadir, labeldir, \"pre\", [0.5, 1])" ] }, - { - "cell_type": "code", - "execution_count": 318, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "loading annotations into memory...\n", - "Done (t=0.22s)\n", - "creating index...\n", - "index created!\n" - ] - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "dc6ce8b895d44193a50ea03790a79ceb", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "HBox(children=(IntProgress(value=0, max=780), HTML(value='')))" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "totol number 64387\n" - ] - } - ], - "source": [] - }, - { - "cell_type": "code", - "execution_count": 316, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "loading annotations into memory...\n", - "Done (t=1.80s)\n", - "creating index...\n", - "index created!\n", - "14156\n" - ] - } - ], - "source": [ - "import sys\n", - "sys.path.append('D:\\API\\cocoapi\\PythonAPI') # 你下载的 cocoapi 所在路径\n", - "import skimage.io as io\n", - "from pycocotools.coco import COCO # 载入 cocoz\n", - "%matplotlib inline\n", - "coco=COCO(\"./data/annotation/annos_rscup_train.json\")\n", - "imgids = coco.getImgIds()\n", - "curr = max(imgids)+1\n", - "print(curr)" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -3547,1095 +3072,6 @@ "source": [ "aug_with_background(\"container-crane\")" ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## noise aug" - ] - }, - { - "cell_type": "code", - "execution_count": 235, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "def noise_generate(datadir, phase):\n", - " \n", - " " - ] - }, - { - "cell_type": "code", - "execution_count": 236, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[{'id': 0, 'name': 'tennis-court', 'supercategory': 'object'}, {'id': 1, 'name': 'container-crane', 'supercategory': 'object'}, {'id': 2, 'name': 'storage-tank', 'supercategory': 'object'}, {'id': 3, 'name': 'baseball-diamond', 'supercategory': 'object'}, {'id': 4, 'name': 'plane', 'supercategory': 'object'}, {'id': 5, 'name': 'ground-track-field', 'supercategory': 'object'}, {'id': 6, 'name': 'helicopter', 'supercategory': 'object'}, {'id': 7, 'name': 'airport', 'supercategory': 'object'}, {'id': 8, 'name': 'harbor', 'supercategory': 'object'}, {'id': 9, 'name': 'ship', 'supercategory': 'object'}, {'id': 10, 'name': 'large-vehicle', 'supercategory': 'object'}, {'id': 11, 'name': 'swimming-pool', 'supercategory': 'object'}, {'id': 12, 'name': 'soccer-ball-field', 'supercategory': 'object'}, {'id': 13, 'name': 'roundabout', 'supercategory': 'object'}, {'id': 14, 'name': 'basketball-court', 'supercategory': 'object'}, {'id': 15, 'name': 'bridge', 'supercategory': 'object'}, {'id': 16, 'name': 'small-vehicle', 'supercategory': 'object'}, {'id': 17, 'name': 'helipad', 'supercategory': 'object'}]\n" - ] - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "f73f27c455664b398327087c657f6746", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "HBox(children=(IntProgress(value=0, max=75532), HTML(value='')))" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "totol number 75532\n" - ] - } - ], - "source": [ - "noise_generate(\"/home/xfr/rssid/pre/\", \"noise\")" - ] - }, - { - "cell_type": "code", - "execution_count": 222, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "['P5203_1_17056.0_2912.0_part2524.jpg',\n", - " 'P11054_1_4576.0_17472.0_part772.jpg',\n", - " 'P8587_1_4576.0_416.0_part49.jpg',\n", - " 'P1540_1_3328.0_2496.0_part76.jpg',\n", - " 'P1489_1_1664.0_1248.0_part46.jpg',\n", - " 'P1599_1_2912.0_1664.0_part79.jpg',\n", - " 'P3536_1_9984.0_9152.0_part1276.jpg',\n", - " 'P3536_1_2080.0_9568.0_part271.jpg',\n", - " 'P9847_1_4992.0_25792.0_part857.jpg',\n", - " 'P5203_1_14976.0_23296.0_part2292.jpg',\n", - " 'P2642_1_5824.0_5038.0_part97.jpg',\n", - " 'P1336_1_2496.0_832.0_part44.jpg',\n", - " 'P9018_1_3744.0_3744.0_part107.jpg',\n", - " 'P5203_1_23296.0_1248.0_part3394.jpg',\n", - " 'P1221_1_3487.0_2080.0_part80.jpg',\n", - " 'P9847_1_3328.0_2912.0_part539.jpg',\n", - " 'P3536_1_16224.0_12064.0_part2241.jpg',\n", - " 'P11054_1_20384.0_6656.0_part3235.jpg',\n", - " 'P1375_1_416.0_2496.0_part17.jpg',\n", - " 'P3536_1_3744.0_2496.0_part467.jpg',\n", - " 'P1205_1_2496.0_2912.0_part64.jpg',\n", - " 'P2751_1_416.0_2912.0_part13.jpg',\n", - " 'P11054_1_2912.0_21216.0_part517.jpg',\n", - " 'P9847_0.5_6240.0_12896.0_part495.jpg',\n", - " 'P1470_1_1664.0_2080.0_part27.jpg',\n", - " 'P2359_1_1516.0_832.0_part23.jpg',\n", - " 'P3536_0.5_5824.0_4576.0_part254.jpg',\n", - " 'P1309_1_3328.0_2080.0_part60.jpg',\n", - " 'P1401_1_1248.0_2080.0_part12.jpg',\n", - " 'P3536_1_3328.0_9984.0_part425.jpg',\n", - " 'P1574_1_3328.0_2496.0_part77.jpg',\n", - " 'P3536_1_17888.0_11232.0_part2498.jpg',\n", - " 'P9018_1_3328.0_0.0_part89.jpg',\n", - " 'P1108_1_0.0_2447.0_part2.jpg',\n", - " 'P6637_1_4992.0_13312.0_part797.jpg',\n", - " 'P6637_1_21632.0_25376.0_part3264.jpg',\n", - " 'P1299_1_1248.0_1664.0_part23.jpg',\n", - " 'P1451_1_1248.0_0.0_part10.jpg',\n", - " 'P6637_0.5_3328.0_5408.0_part235.jpg',\n", - " 'P2642_1_2080.0_2080.0_part18.jpg',\n", - " 'P1574_1_2912.0_0.0_part66.jpg',\n", - " 'P1119_1_1248.0_0.0_part6.jpg',\n", - " 'P1205_1_1664.0_0.0_part39.jpg',\n", - " 'P1353_1_2496.0_0.0_part31.jpg',\n", - " 'P1140_1_832.0_0.0_part21.jpg',\n", - " 'P3397_1_3328.0_416.0_part24.jpg',\n", - " 'P1117_1_832.0_416.0_part9.jpg',\n", - " 'P1634_0.5_0.0_416.0_part5.jpg',\n", - " 'P1055_1_4343.0_3328.0_part84.jpg',\n", - " 'P1869_1_0.0_832.0_part4.jpg',\n", - " 'P1300_1_4160.0_2496.0_part83.jpg',\n", - " 'P3536_1_19968.0_17056.0_part2836.jpg',\n", - " 'P3536_1_9568.0_1248.0_part1200.jpg',\n", - " 'P1139_1_1664.0_3328.0_part72.jpg',\n", - " 'P1656_1_416.0_3328.0_part17.jpg',\n", - " 'P11054_1_2912.0_24128.0_part524.jpg',\n", - " 'P1620_1_3488.0_3488.0_part3.jpg',\n", - " 'P0335_1_0.0_416.0_part3.jpg',\n", - " 'P1277_1_416.0_2080.0_part17.jpg',\n", - " 'P6637_1_28687.0_11232.0_part4225.jpg',\n", - " 'P2641_1_4992.0_4160.0_part95.jpg',\n", - " 'P1705_0.5_1248.0_1487.0_part21.jpg',\n", - " 'P8461_1_1248.0_3744.0_part38.jpg',\n", - " 'P9847_0.5_12896.0_6240.0_part877.jpg',\n", - " 'P6637_1_23712.0_25376.0_part3555.jpg',\n", - " 'P1696_1_832.0_832.0_part24.jpg',\n", - " 'P6637_1_24128.0_21632.0_part3600.jpg',\n", - " 'P1208_0.5_832.0_1487.0_part21.jpg',\n", - " 'P2428_1_0.0_1664.0_part3.jpg',\n", - " 'P1393_1_4992.0_4992.0_part82.jpg',\n", - " 'P1652_1_1248.0_2912.0_part33.jpg',\n", - " 'P1393_1_1664.0_3328.0_part30.jpg',\n", - " 'P0973_1_416.0_832.0_part7.jpg',\n", - " 'P3536_1_23296.0_1248.0_part3325.jpg',\n", - " 'P1131_1_2080.0_0.0_part71.jpg',\n", - " 'P9847_1_19136.0_27107.0_part4441.jpg',\n", - " 'P7763_1_3583.0_0.0_part32.jpg',\n", - " 'P1267_1_832.0_3107.0_part62.jpg',\n", - " 'P5203_0.5_4576.0_8320.0_part322.jpg',\n", - " 'P9847_1_6240.0_416.0_part992.jpg',\n", - " 'P1295_1_4160.0_1664.0_part89.jpg',\n", - " 'P1369_1_4687.0_832.0_part110.jpg',\n", - " 'P3536_0.5_11232.0_6240.0_part654.jpg',\n", - " 'P6637_1_19136.0_24128.0_part2888.jpg',\n", - " 'P3536_0.5_6240.0_6656.0_part286.jpg',\n", - " 'P8461_1_6656.0_4160.0_part149.jpg',\n", - " 'P11054_1_23296.0_7072.0_part3694.jpg',\n", - " 'P2503_1_1529.0_832.0_part24.jpg',\n", - " 'P7442_1_832.0_2496.0_part16.jpg',\n", - " 'P1676_0.5_1248.0_1248.0_part15.jpg',\n", - " 'P1670_1_2912.0_832.0_part57.jpg',\n", - " 'P1343_1_3487.0_2080.0_part52.jpg',\n", - " 'P6637_1_7904.0_17472.0_part1240.jpg',\n", - " 'P6637_1_22880.0_8320.0_part3404.jpg',\n", - " 'P9847_0.5_14087.0_11232.0_part969.jpg',\n", - " 'P1070_1_1248.0_0.0_part15.jpg',\n", - " 'P3536_1_12064.0_5824.0_part1579.jpg',\n", - " 'P5203_0.5_11232.0_4576.0_part681.jpg',\n", - " 'P2729_1_2080.0_2080.0_part17.jpg',\n", - " 'P1515_1_832.0_832.0_part20.jpg',\n", - " 'P1524_1_3328.0_832.0_part74.jpg',\n", - " 'P11054_1_11232.0_19552.0_part1831.jpg',\n", - " 'P1116_1_5824.0_0.0_part56.jpg',\n", - " 'P1333_1_1664.0_1664.0_part30.jpg',\n", - " 'P3536_1_0.0_24128.0_part51.jpg',\n", - " 'P1632_1_3328.0_416.0_part74.jpg',\n", - " 'P3536_0.5_11232.0_12064.0_part667.jpg',\n", - " 'P11054_1_9568.0_6656.0_part1536.jpg',\n", - " 'P1295_1_2912.0_1664.0_part63.jpg',\n", - " 'P5203_1_11648.0_26208.0_part1829.jpg',\n", - " 'P5812_1_511.0_416.0_part7.jpg',\n", - " 'P11054_1_12064.0_20800.0_part1966.jpg',\n", - " 'P1445_1_4992.0_1248.0_part67.jpg',\n", - " 'P3536_1_24960.0_6240.0_part3601.jpg',\n", - " 'P1768_0.5_1248.0_0.0_part12.jpg',\n", - " 'P2748_1_2815.0_0.0_part25.jpg',\n", - " 'P2734_1_832.0_1664.0_part13.jpg',\n", - " 'P1869_1_4160.0_2496.0_part74.jpg',\n", - " 'P5203_1_9152.0_1664.0_part1398.jpg',\n", - " 'P0218_1_1664.0_416.0_part10.jpg',\n", - " 'P1015_1_1664.0_267.0_part2.jpg',\n", - " 'P1221_1_416.0_0.0_part12.jpg',\n", - " 'P0913_1_2496.0_832.0_part14.jpg',\n", - " 'P3536_1_22880.0_16224.0_part3296.jpg',\n", - " 'P5203_1_22880.0_23712.0_part3382.jpg',\n", - " 'P2389_1_1248.0_1490.0_part23.jpg',\n", - " 'P2457_1_832.0_0.0_part8.jpg',\n", - " 'P1155_1_416.0_1248.0_part13.jpg',\n", - " 'P1389_1_5408.0_4992.0_part80.jpg',\n", - " 'P1526_0.5_1487.0_1248.0_part19.jpg',\n", - " 'P5203_0.5_6656.0_3744.0_part434.jpg',\n", - " 'P9847_1_13728.0_6240.0_part2168.jpg',\n", - " 'P11054_0.5_6656.0_10400.0_part540.jpg',\n", - " 'P1768_1_416.0_2080.0_part16.jpg',\n", - " 'P11054_1_24128.0_13312.0_part3838.jpg',\n", - " 'P1317_1_2080.0_832.0_part35.jpg',\n", - " 'P9847_1_16640.0_22464.0_part2642.jpg',\n", - " 'P9847_1_16224.0_11648.0_part2563.jpg',\n", - " 'P5203_0.5_416.0_2496.0_part34.jpg',\n", - " 'P9847_1_24544.0_14144.0_part3747.jpg',\n", - " 'P6637_0.5_7488.0_11232.0_part488.jpg',\n", - " 'P1607_1_416.0_1248.0_part16.jpg',\n", - " 'P2545_1_2080.0_1804.0_part42.jpg',\n", - " 'P5203_0.5_832.0_9568.0_part78.jpg',\n", - " 'P1170_1_2912.0_2912.0_part137.jpg',\n", - " 'P9847_1_1664.0_7072.0_part285.jpg',\n", - " 'P9847_0.5_416.0_13297.0_part974.jpg',\n", - " 'P1249_1_3487.0_2496.0_part85.jpg',\n", - " 'P6637_0.5_4992.0_10400.0_part346.jpg',\n", - " 'P9847_1_20800.0_27040.0_part3247.jpg',\n", - " 'P11054_1_13312.0_6240.0_part2129.jpg',\n", - " 'P1161_0.5_1664.0_2801.0_part25.jpg',\n", - " 'P5203_1_15808.0_2912.0_part2358.jpg',\n", - " 'P11054_1_416.0_14560.0_part105.jpg',\n", - " 'P5203_1_22048.0_24544.0_part3259.jpg',\n", - " 'P5203_1_416.0_16640.0_part104.jpg',\n", - " 'P1132_1_4680.0_2080.0_part125.jpg',\n", - " 'P9847_1_19136.0_24960.0_part3002.jpg',\n", - " 'P1222_1_2496.0_1664.0_part55.jpg',\n", - " 'P2550_1_4104.0_2912.0_part79.jpg',\n", - " 'P8204_1_6240.0_416.0_part52.jpg',\n", - " 'P2438_1_0.0_832.0_part4.jpg',\n", - " 'P1741_0.5_1631.0_0.0_part1.jpg',\n", - " 'P2519_1_0.0_416.0_part5.jpg',\n", - " 'P7885_1_3583.0_416.0_part26.jpg',\n", - " 'P2716_1_832.0_1931.0_part41.jpg',\n", - " 'P2490_1_1248.0_1248.0_part17.jpg',\n", - " 'P5203_0.5_12896.0_1248.0_part777.jpg',\n", - " 'P1646_0.5_416.0_416.0_part4.jpg',\n", - " 'P11054_1_12896.0_2912.0_part2055.jpg',\n", - " 'P1615_1_3487.0_2496.0_part84.jpg',\n", - " 'P2750_1_832.0_416.0_part6.jpg',\n", - " 'P9347_1_6240.0_2080.0_part84.jpg',\n", - " 'P1401_0.5_1664.0_1248.0_part5.jpg',\n", - " 'P9847_1_9568.0_9984.0_part1534.jpg',\n", - " 'P2739_1_3452.0_2116.0_part2.jpg',\n", - " 'P2332_1_2478.0_1664.0_part30.jpg',\n", - " 'P1868_1_5408.0_2912.0_part31.jpg',\n", - " 'P1580_0.5_832.0_1487.0_part15.jpg',\n", - " 'P6637_0.5_2080.0_2496.0_part151.jpg',\n", - " 'P1552_1_416.0_0.0_part13.jpg',\n", - " 'P6637_1_9152.0_6656.0_part1400.jpg',\n", - " 'P1168_1_1664.0_6240.0_part37.jpg',\n", - " 'P6637_1_20384.0_416.0_part3026.jpg',\n", - " 'P1272_1_2912.0_832.0_part63.jpg',\n", - " 'P9847_0.5_1664.0_1248.0_part135.jpg',\n", - " 'P2702_1_1248.0_1664.0_part6.jpg',\n", - " 'P5203_1_20384.0_21216.0_part2997.jpg',\n", - " 'P1614_0.5_832.0_0.0_part9.jpg',\n", - " 'P9847_0.5_4992.0_9984.0_part401.jpg',\n", - " 'P4724_1_2496.0_4160.0_part55.jpg',\n", - " 'P11026_1_511.0_416.0_part9.jpg',\n", - " 'P1464_1_1248.0_0.0_part4.jpg',\n", - " 'P1521_1_1248.0_2080.0_part31.jpg',\n", - " 'P1205_1_2496.0_416.0_part58.jpg',\n", - " 'P11054_1_13728.0_1248.0_part2183.jpg',\n", - " 'P5297_1_0.0_511.0_part10.jpg',\n", - " 'P1245_0.5_0.0_416.0_part2.jpg',\n", - " 'P1656_1_0.0_1248.0_part6.jpg',\n", - " 'P6301_1_832.0_0.0_part6.jpg',\n", - " 'P1709_1_0.0_3488.0_part2.jpg',\n", - " 'P1535_1_416.0_0.0_part15.jpg',\n", - " 'P4228_1_511.0_0.0_part8.jpg',\n", - " 'P1674_1_1248.0_0.0_part30.jpg',\n", - " 'P5203_1_8736.0_26624.0_part1392.jpg',\n", - " 'P1328_1_1664.0_1248.0_part33.jpg',\n", - " 'P1554_1_2496.0_1248.0_part58.jpg',\n", - " 'P1205_1_2080.0_3328.0_part56.jpg',\n", - " 'P6637_0.5_13312.0_10816.0_part798.jpg',\n", - " 'P1426_1_4160.0_3328.0_part110.jpg',\n", - " 'P0113_1_0.0_2080.0_part4.jpg',\n", - " 'P1540_1_3328.0_3328.0_part78.jpg',\n", - " 'P1231_1_0.0_3487.0_part76.jpg',\n", - " 'P1428_1_1664.0_1248.0_part20.jpg',\n", - " 'P1279_1_2496.0_3328.0_part65.jpg',\n", - " 'P1305_1_2080.0_2496.0_part42.jpg',\n", - " 'P1287_1_0.0_1248.0_part7.jpg',\n", - " 'P9847_1_27040.0_7072.0_part4094.jpg',\n", - " 'P1365_1_0.0_416.0_part5.jpg',\n", - " 'P1741_1_1664.0_832.0_part35.jpg',\n", - " 'P2364_1_0.0_1248.0_part7.jpg',\n", - " 'P10943_1_511.0_0.0_part8.jpg',\n", - " 'P5203_0.5_4992.0_0.0_part332.jpg',\n", - " 'P1745_1_3328.0_1248.0_part63.jpg',\n", - " 'P3536_0.5_3744.0_7488.0_part145.jpg',\n", - " 'P9847_1_14976.0_7904.0_part2362.jpg',\n", - " 'P1311_1_2912.0_832.0_part45.jpg',\n", - " 'P1148_1_1664.0_4160.0_part60.jpg',\n", - " 'P1158_1_5956.0_3744.0_part113.jpg',\n", - " 'P1571_1_0.0_4451.0_part97.jpg',\n", - " 'P1717_1_416.0_2080.0_part17.jpg',\n", - " 'P1646_1_2080.0_1248.0_part38.jpg',\n", - " 'P9018_1_416.0_2496.0_part19.jpg',\n", - " 'P3536_0.5_3328.0_11232.0_part133.jpg',\n", - " 'P5203_1_17056.0_14560.0_part2551.jpg',\n", - " 'P2665_1_832.0_1248.0_part10.jpg',\n", - " 'P3536_1_16640.0_17888.0_part2318.jpg',\n", - " 'P1552_1_2912.0_3487.0_part95.jpg',\n", - " 'P3397_1_3583.0_832.0_part28.jpg',\n", - " 'P1152_1_1664.0_832.0_part40.jpg',\n", - " 'P6637_1_4576.0_7488.0_part722.jpg',\n", - " 'P5203_1_6656.0_13312.0_part1045.jpg',\n", - " 'P1426_0.5_2496.0_832.0_part24.jpg',\n", - " 'P2550_1_0.0_2912.0_part9.jpg',\n", - " 'P1555_0.5_1488.0_1488.0_part3.jpg',\n", - " 'P11054_1_11648.0_21216.0_part1901.jpg',\n", - " 'P1132_1_4680.0_832.0_part122.jpg',\n", - " 'P2734_1_3618.0_1664.0_part22.jpg',\n", - " 'P3536_1_2496.0_19136.0_part336.jpg',\n", - " 'P1171_1_5824.0_4802.0_part199.jpg',\n", - " 'P9847_1_18720.0_0.0_part2887.jpg',\n", - " 'P3536_1_5824.0_27107.0_part4252.jpg',\n", - " 'P1171_1_5824.0_2080.0_part158.jpg',\n", - " 'P1631_1_1248.0_3328.0_part31.jpg',\n", - " 'P1368_1_2496.0_0.0_part56.jpg',\n", - " 'P6637_1_8320.0_27040.0_part1322.jpg',\n", - " 'P9421_1_416.0_511.0_part11.jpg',\n", - " 'P6637_1_18304.0_15392.0_part2747.jpg',\n", - " 'P11054_1_4576.0_22464.0_part784.jpg',\n", - " 'P11054_1_12896.0_27107.0_part4560.jpg',\n", - " 'P1698_1_832.0_832.0_part24.jpg',\n", - " 'P11054_0.5_7904.0_832.0_part613.jpg',\n", - " 'P11054_0.5_416.0_5408.0_part49.jpg',\n", - " 'P6637_1_20384.0_18304.0_part3066.jpg',\n", - " 'P1408_1_5824.0_4160.0_part101.jpg',\n", - " 'P1591_1_3780.0_416.0_part62.jpg',\n", - " 'P5203_1_9152.0_4160.0_part1404.jpg',\n", - " 'P1287_1_4687.0_832.0_part106.jpg',\n", - " 'P6637_1_21216.0_1248.0_part3150.jpg',\n", - " 'P5203_1_6656.0_15392.0_part1050.jpg',\n", - " 'P1562_1_0.0_1248.0_part7.jpg',\n", - " 'P1132_1_4576.0_2080.0_part116.jpg',\n", - " 'P2731_0.5_1248.0_832.0_part8.jpg',\n", - " 'P2483_0.5_0.0_427.0_part5.jpg',\n", - " 'P11054_1_13728.0_19968.0_part2228.jpg',\n", - " 'P1211_1_2912.0_3328.0_part74.jpg',\n", - " 'P5203_1_4576.0_23296.0_part755.jpg',\n", - " 'P9847_1_2912.0_24960.0_part526.jpg',\n", - " 'P2552_1_2434.0_0.0_part22.jpg',\n", - " 'P1509_1_1664.0_2496.0_part28.jpg',\n", - " 'P5203_0.5_3744.0_3328.0_part254.jpg',\n", - " 'P1757_1_0.0_416.0_part5.jpg',\n", - " 'P9847_1_11648.0_416.0_part1836.jpg',\n", - " 'P1336_1_3744.0_2496.0_part71.jpg',\n", - " 'P1344_1_4576.0_2912.0_part50.jpg',\n", - " 'P2560_1_2080.0_3053.0_part57.jpg',\n", - " 'P6637_1_6240.0_12896.0_part979.jpg',\n", - " 'P11054_1_14976.0_18304.0_part2422.jpg',\n", - " 'P2516_1_416.0_416.0_part9.jpg',\n", - " 'P5203_1_11232.0_17056.0_part1744.jpg',\n", - " 'P9847_1_4992.0_19552.0_part842.jpg',\n", - " 'P1616_1_0.0_832.0_part6.jpg',\n", - " 'P8029_1_416.0_511.0_part11.jpg',\n", - " 'P2764_1_416.0_1664.0_part16.jpg',\n", - " 'P2368_0.5_0.0_640.0_part7.jpg',\n", - " 'P1455_1_0.0_4160.0_part5.jpg',\n", - " 'P5203_1_27872.0_22048.0_part4139.jpg',\n", - " 'P3536_1_18304.0_17888.0_part2576.jpg',\n", - " 'P1649_1_416.0_832.0_part11.jpg',\n", - " 'P11054_1_26624.0_24960.0_part4227.jpg',\n", - " 'P1141_1_5061.0_0.0_part120.jpg',\n", - " 'P2743_1_1664.0_0.0_part31.jpg',\n", - " 'P1274_1_2496.0_1248.0_part44.jpg',\n", - " 'P1558_1_416.0_0.0_part13.jpg',\n", - " 'P2536_1_1892.0_832.0_part31.jpg',\n", - " 'P1620_1_2496.0_416.0_part55.jpg',\n", - " 'P2553_1_2080.0_1248.0_part24.jpg',\n", - " 'P1369_1_3744.0_1248.0_part87.jpg',\n", - " 'P3536_1_20800.0_16224.0_part2966.jpg',\n", - " 'P2641_1_4160.0_832.0_part73.jpg',\n", - " 'P1698_1_832.0_2912.0_part29.jpg',\n", - " 'P1217_1_0.0_1248.0_part7.jpg',\n", - " 'P3536_1_6240.0_8320.0_part779.jpg',\n", - " 'P11054_1_4992.0_18720.0_part841.jpg',\n", - " 'P9847_0.5_13728.0_6240.0_part929.jpg',\n", - " 'P2534_1_0.0_416.0_part5.jpg',\n", - " 'P11054_1_11232.0_11648.0_part1812.jpg',\n", - " 'P1211_1_3488.0_3488.0_part3.jpg',\n", - " 'P3536_1_22880.0_8320.0_part3277.jpg',\n", - " 'P1279_1_2912.0_3487.0_part97.jpg',\n", - " 'P9847_1_10816.0_2496.0_part1711.jpg',\n", - " 'P1869_1_2496.0_832.0_part43.jpg',\n", - " 'P4049_1_512.0_512.0_part3.jpg',\n", - " 'P3536_1_7488.0_9152.0_part942.jpg',\n", - " 'P11054_1_14560.0_21216.0_part2363.jpg',\n", - " 'P1724_1_832.0_3328.0_part31.jpg',\n", - " 'P9847_1_23296.0_21632.0_part3592.jpg',\n", - " 'P3081_1_0.0_511.0_part9.jpg',\n", - " 'P1152_1_416.0_3370.0_part56.jpg',\n", - " 'P1489_1_832.0_3328.0_part31.jpg',\n", - " 'P3536_1_12064.0_8736.0_part1586.jpg',\n", - " 'P9847_0.5_7904.0_2496.0_part589.jpg',\n", - " 'P1670_1_1664.0_0.0_part33.jpg',\n", - " 'P1399_1_1664.0_1664.0_part50.jpg',\n", - " 'P7885_1_416.0_2496.0_part8.jpg',\n", - " 'P1352_1_2080.0_3328.0_part29.jpg',\n", - " 'P1526_1_832.0_1248.0_part22.jpg',\n", - " 'P11054_1_9152.0_21632.0_part1506.jpg',\n", - " 'P3536_1_28288.0_1664.0_part4112.jpg',\n", - " 'P1403_1_832.0_416.0_part5.jpg',\n", - " 'P1705_1_3487.0_2496.0_part84.jpg',\n", - " 'P5203_1_22464.0_19968.0_part3311.jpg',\n", - " 'P5203_1_20800.0_13312.0_part3043.jpg',\n", - " 'P1555_1_2912.0_3487.0_part95.jpg',\n", - " 'P11054_1_2912.0_15392.0_part503.jpg',\n", - " 'P11054_1_8320.0_26208.0_part1385.jpg',\n", - " 'P5203_1_3328.0_12896.0_part542.jpg',\n", - " 'P2991_1_511.0_416.0_part9.jpg',\n", - " 'P1509_1_1664.0_1248.0_part27.jpg',\n", - " 'P1554_1_2496.0_1664.0_part59.jpg',\n", - " 'P1688_1_0.0_2912.0_part11.jpg',\n", - " 'P0857_1_0.0_1248.0_part2.jpg',\n", - " 'P1638_1_1664.0_0.0_part36.jpg',\n", - " 'P7311_1_0.0_511.0_part8.jpg',\n", - " 'P0933_1_1685.0_416.0_part8.jpg',\n", - " 'P9847_1_18304.0_2496.0_part2833.jpg',\n", - " 'P9847_1_28687.0_18720.0_part4374.jpg',\n", - " 'P6637_1_832.0_7072.0_part147.jpg',\n", - " 'P11054_0.5_7488.0_8736.0_part600.jpg',\n", - " 'P2381_0.5_0.0_416.0_part3.jpg',\n", - " 'P1652_1_832.0_0.0_part17.jpg',\n", - " 'P1597_1_416.0_1664.0_part19.jpg',\n", - " 'P9847_1_12896.0_11232.0_part2051.jpg',\n", - " 'P5869_1_0.0_416.0_part5.jpg',\n", - " 'P1641_1_1248.0_0.0_part29.jpg',\n", - " 'P2359_1_1248.0_416.0_part17.jpg',\n", - " 'P2249_0.5_0.0_1248.0_part6.jpg',\n", - " 'P3536_1_3744.0_17056.0_part494.jpg',\n", - " 'P3536_1_18304.0_24960.0_part2593.jpg',\n", - " 'P1139_1_0.0_5961.0_part2.jpg',\n", - " 'P1258_1_416.0_2496.0_part16.jpg',\n", - " 'P1686_1_1248.0_3328.0_part36.jpg',\n", - " 'P5203_1_23296.0_12480.0_part3420.jpg',\n", - " 'P9847_1_14560.0_4576.0_part2290.jpg',\n", - " 'P1408_1_832.0_416.0_part24.jpg',\n", - " 'P5203_1_25376.0_22880.0_part3762.jpg',\n", - " 'P9365_1_416.0_0.0_part3.jpg',\n", - " 'P1217_1_1664.0_2912.0_part47.jpg',\n", - " 'P2642_1_2496.0_4576.0_part32.jpg',\n", - " 'P9901_1_512.0_512.0_part3.jpg',\n", - " 'P1676_1_2080.0_832.0_part48.jpg',\n", - " 'P1288_1_0.0_1664.0_part5.jpg',\n", - " 'P1597_1_2496.0_3744.0_part70.jpg',\n", - " 'P7476_1_4576.0_3328.0_part55.jpg',\n", - " 'P5593_1_1248.0_416.0_part15.jpg',\n", - " 'P1408_1_3328.0_2496.0_part71.jpg',\n", - " 'P3536_1_18304.0_17056.0_part2574.jpg',\n", - " 'P11054_1_11648.0_10816.0_part1876.jpg',\n", - " 'P9018_1_1248.0_832.0_part37.jpg',\n", - " 'P1707_1_1248.0_2912.0_part37.jpg',\n", - " 'P5203_1_2496.0_17056.0_part425.jpg',\n", - " 'P2364_1_0.0_0.0_part4.jpg',\n", - " 'P11054_0.5_12896.0_2080.0_part984.jpg',\n", - " 'P11054_1_28288.0_1664.0_part4406.jpg',\n", - " 'P6637_1_2496.0_10400.0_part408.jpg',\n", - " 'P2390_1_832.0_1420.0_part32.jpg',\n", - " 'P1368_1_1664.0_1664.0_part43.jpg',\n", - " 'P9847_1_6240.0_16640.0_part1030.jpg',\n", - " 'P1725_1_1248.0_3487.0_part73.jpg',\n", - " 'P1600_1_1664.0_416.0_part41.jpg',\n", - " 'P6637_0.5_10400.0_0.0_part636.jpg',\n", - " 'P1437_1_1664.0_3744.0_part58.jpg',\n", - " 'P6637_1_20384.0_832.0_part3027.jpg',\n", - " 'P5203_1_27456.0_22464.0_part4077.jpg',\n", - " 'P1401_1_0.0_1248.0_part3.jpg',\n", - " 'P1634_1_0.0_2912.0_part11.jpg',\n", - " 'P2691_1_4576.0_4992.0_part136.jpg',\n", - " 'P3536_1_28687.0_12896.0_part4204.jpg',\n", - " 'P1638_1_3328.0_0.0_part64.jpg',\n", - " 'P3536_1_17056.0_9568.0_part2363.jpg',\n", - " 'P1686_1_1248.0_416.0_part30.jpg',\n", - " 'P5203_0.5_0.0_4160.0_part10.jpg',\n", - " 'P4528_1_511.0_416.0_part9.jpg',\n", - " 'P2523_1_0.0_1248.0_part4.jpg',\n", - " 'P9847_1_12064.0_11232.0_part1926.jpg',\n", - " 'P6637_1_27872.0_8320.0_part4095.jpg',\n", - " 'P3536_1_8736.0_19552.0_part1118.jpg',\n", - " 'P2611_1_1248.0_1248.0_part3.jpg',\n", - " 'P5203_1_832.0_15392.0_part166.jpg',\n", - " 'P6637_1_3744.0_20800.0_part625.jpg',\n", - " 'P1871_0.5_4576.0_1248.0_part12.jpg',\n", - " 'P1645_1_1248.0_416.0_part30.jpg',\n", - " 'P8461_1_2080.0_1664.0_part54.jpg',\n", - " 'P1317_1_2496.0_1248.0_part43.jpg',\n", - " 'P1387_1_3744.0_0.0_part31.jpg',\n", - " 'P3536_1_24128.0_17056.0_part3495.jpg',\n", - " 'P9018_1_4160.0_1664.0_part110.jpg',\n", - " 'P0861_1_1248.0_832.0_part3.jpg',\n", - " 'P9580_0.5_1536.0_1536.0_part2.jpg',\n", - " 'P3536_1_17056.0_1248.0_part2344.jpg',\n", - " 'P9847_1_28687.0_23296.0_part4385.jpg',\n", - " 'P9847_1_19136.0_832.0_part2949.jpg',\n", - " 'P2396_1_0.0_0.0_part4.jpg',\n", - " 'P0049_1_416.0_0.0_part6.jpg',\n", - " 'P1704_1_2496.0_416.0_part54.jpg',\n", - " 'P2253_1_1248.0_0.0_part3.jpg',\n", - " 'P1686_1_1664.0_0.0_part37.jpg',\n", - " 'P5203_0.5_4576.0_8736.0_part323.jpg',\n", - " 'P1673_1_1248.0_2496.0_part42.jpg',\n", - " 'P11054_0.5_10400.0_11232.0_part824.jpg',\n", - " 'P9847_0.5_1248.0_12480.0_part130.jpg',\n", - " 'P1614_0.5_1248.0_832.0_part15.jpg',\n", - " 'P1600_1_0.0_2496.0_part10.jpg',\n", - " 'P2460_1_416.0_416.0_part1.jpg',\n", - " 'P1689_1_2080.0_4160.0_part68.jpg',\n", - " 'P1306_0.5_1248.0_1248.0_part8.jpg',\n", - " 'P3536_1_13728.0_9152.0_part1843.jpg',\n", - " 'P3536_1_20384.0_0.0_part2861.jpg',\n", - " 'P3536_1_10400.0_5824.0_part1331.jpg',\n", - " 'P2641_1_1664.0_2080.0_part47.jpg',\n", - " 'P7885_1_3328.0_416.0_part20.jpg',\n", - " 'P1368_1_2080.0_3328.0_part55.jpg',\n", - " 'P9847_1_22464.0_1664.0_part3434.jpg',\n", - " 'P2552_1_2080.0_2080.0_part20.jpg',\n", - " 'P11054_1_4992.0_3328.0_part804.jpg',\n", - " 'P1571_1_416.0_4451.0_part98.jpg',\n", - " 'P7197_1_0.0_0.0_part3.jpg',\n", - " 'P2693_1_1642.0_1248.0_part4.jpg',\n", - " 'P2719_1_4025.0_832.0_part47.jpg',\n", - " 'P2354_1_416.0_1248.0_part8.jpg',\n", - " 'P1250_1_2912.0_2912.0_part59.jpg',\n", - " 'P1582_1_0.0_3744.0_part13.jpg',\n", - " 'P5203_1_10816.0_4576.0_part1657.jpg',\n", - " 'P2280_1_2496.0_832.0_part28.jpg',\n", - " 'P1517_1_3328.0_1664.0_part74.jpg',\n", - " 'P7476_1_3744.0_2912.0_part46.jpg',\n", - " 'P1670_0.5_416.0_416.0_part3.jpg',\n", - " 'P1364_1_416.0_2080.0_part18.jpg',\n", - " 'P1554_1_0.0_1664.0_part8.jpg',\n", - " 'P5203_1_10816.0_24960.0_part1699.jpg',\n", - " 'P1708_0.5_1248.0_416.0_part13.jpg',\n", - " 'P11054_1_17056.0_14976.0_part2744.jpg',\n", - " 'P1717_0.5_832.0_832.0_part12.jpg',\n", - " 'P5203_0.5_2496.0_6656.0_part181.jpg',\n", - " 'P6637_1_17888.0_25792.0_part2708.jpg',\n", - " 'P1495_1_2080.0_4903.0_part93.jpg',\n", - " 'P11054_1_16640.0_26624.0_part2706.jpg',\n", - " 'P2756_1_416.0_3744.0_part8.jpg',\n", - " 'P1519_1_416.0_832.0_part13.jpg',\n", - " 'P1232_1_3328.0_2080.0_part66.jpg',\n", - " 'P1247_1_3328.0_3328.0_part66.jpg',\n", - " 'P0082_1_4979.0_0.0_part1.jpg',\n", - " 'P1534_1_3780.0_2496.0_part96.jpg',\n", - " 'P1395_1_0.0_832.0_part5.jpg',\n", - " 'P1325_1_2496.0_1664.0_part39.jpg',\n", - " 'P3536_1_8320.0_19968.0_part1065.jpg',\n", - " 'P1599_1_416.0_4160.0_part24.jpg',\n", - " 'P5203_1_15808.0_10400.0_part2372.jpg',\n", - " 'P5203_1_10816.0_7488.0_part1664.jpg',\n", - " 'P11054_0.5_9568.0_13297.0_part1096.jpg',\n", - " 'P1267_1_416.0_2912.0_part17.jpg',\n", - " 'P9018_1_416.0_0.0_part13.jpg',\n", - " 'P1368_1_1664.0_416.0_part40.jpg',\n", - " 'P2505_1_416.0_832.0_part9.jpg',\n", - " 'P1708_0.5_832.0_416.0_part9.jpg',\n", - " 'P6637_1_14560.0_8736.0_part2202.jpg',\n", - " 'P5203_0.5_4576.0_832.0_part304.jpg',\n", - " 'P5916_1_0.0_511.0_part6.jpg',\n", - " 'P1158_1_0.0_832.0_part6.jpg',\n", - " 'P0038_1_832.0_3328.0_part15.jpg',\n", - " 'P3536_1_14976.0_10400.0_part2044.jpg',\n", - " 'P1607_1_1664.0_3487.0_part86.jpg',\n", - " 'P1689_1_3487.0_2912.0_part108.jpg',\n", - " 'P1714_1_3328.0_832.0_part67.jpg',\n", - " 'P9337_1_3744.0_416.0_part84.jpg',\n", - " 'P1139_0.5_3744.0_1248.0_part53.jpg',\n", - " 'P8461_0.5_2080.0_416.0_part21.jpg',\n", - " 'P2691_1_5366.0_3744.0_part153.jpg',\n", - " 'P2234_1_973.0_0.0_part1.jpg',\n", - " 'P1174_1_416.0_1248.0_part20.jpg',\n", - " 'P5102_1_2912.0_2080.0_part50.jpg',\n", - " 'P5203_1_3328.0_18720.0_part555.jpg',\n", - " 'P6637_1_7072.0_19136.0_part1121.jpg',\n", - " 'P6637_1_21216.0_19136.0_part3189.jpg',\n", - " 'P3536_1_16224.0_25376.0_part2273.jpg',\n", - " 'P5203_1_3328.0_21216.0_part561.jpg',\n", - " 'P2457_1_1114.0_416.0_part10.jpg',\n", - " 'P1719_1_3744.0_1248.0_part87.jpg',\n", - " 'P1674_1_2912.0_0.0_part66.jpg',\n", - " 'P6637_1_2912.0_27040.0_part514.jpg',\n", - " 'P1753_1_3487.0_3328.0_part85.jpg',\n", - " 'P2490_1_1664.0_2050.0_part31.jpg',\n", - " 'P1221_1_1664.0_416.0_part36.jpg',\n", - " 'P11054_1_13728.0_25792.0_part2242.jpg',\n", - " 'P2550_1_4104.0_1664.0_part76.jpg',\n", - " 'P1550_1_1664.0_2080.0_part42.jpg',\n", - " 'P1388_1_2912.0_2080.0_part22.jpg',\n", - " 'P11054_1_24544.0_25792.0_part3927.jpg',\n", - " 'P1217_1_2080.0_0.0_part49.jpg',\n", - " 'P6637_1_832.0_9568.0_part153.jpg',\n", - " 'P6637_1_5408.0_3328.0_part836.jpg',\n", - " 'P1309_0.5_0.0_1298.0_part1.jpg',\n", - " 'P7763_1_416.0_1664.0_part5.jpg',\n", - " 'P1552_1_416.0_3328.0_part21.jpg',\n", - " 'P1258_1_4687.0_2912.0_part94.jpg',\n", - " 'P3536_1_24128.0_4576.0_part3465.jpg',\n", - " 'P5203_1_23712.0_5824.0_part3467.jpg',\n", - " 'P1526_1_1248.0_1664.0_part32.jpg',\n", - " 'P2790_1_3744.0_416.0_part49.jpg',\n", - " 'P0853_1_618.0_0.0_part4.jpg',\n", - " 'P1364_1_416.0_2912.0_part20.jpg',\n", - " 'P1535_1_0.0_2080.0_part9.jpg',\n", - " 'P9847_1_3744.0_3328.0_part606.jpg',\n", - " 'P1765_1_2080.0_2912.0_part46.jpg',\n", - " 'P1306_1_2912.0_3487.0_part81.jpg',\n", - " 'P2514_1_1527.0_416.0_part25.jpg',\n", - " 'P1660_1_0.0_1248.0_part6.jpg',\n", - " 'P1322_1_2912.0_1664.0_part48.jpg',\n", - " 'P9847_1_16640.0_25792.0_part2650.jpg',\n", - " 'P11054_1_24544.0_14560.0_part3902.jpg',\n", - " 'P4079_1_511.0_0.0_part5.jpg',\n", - " 'P1224_1_2496.0_2080.0_part41.jpg',\n", - " 'P0038_1_832.0_832.0_part12.jpg',\n", - " 'P3536_0.5_10400.0_12896.0_part606.jpg',\n", - " 'P1446_1_0.0_1248.0_part5.jpg',\n", - " 'P1872_1_416.0_4483.0_part61.jpg',\n", - " 'P2545_1_832.0_0.0_part12.jpg',\n", - " 'P1683_1_2080.0_2080.0_part53.jpg',\n", - " 'P3536_1_22464.0_25376.0_part3252.jpg',\n", - " 'P3536_1_4992.0_25792.0_part663.jpg',\n", - " 'P1250_1_3328.0_832.0_part63.jpg',\n", - " 'P1634_1_3328.0_832.0_part76.jpg',\n", - " 'P6637_1_24960.0_2912.0_part3677.jpg',\n", - " 'P5203_1_8320.0_17472.0_part1305.jpg',\n", - " 'P6637_1_16640.0_3744.0_part2481.jpg',\n", - " 'P1537_0.5_832.0_1248.0_part14.jpg',\n", - " 'P8126_1_0.0_511.0_part9.jpg',\n", - " 'P3536_1_8736.0_7904.0_part1097.jpg',\n", - " 'P3536_1_0.0_2080.0_part9.jpg',\n", - " 'P1753_1_3328.0_2080.0_part73.jpg',\n", - " 'P5203_1_12480.0_10400.0_part1917.jpg',\n", - " 'P6637_1_7072.0_4160.0_part1087.jpg',\n", - " 'P1816_1_416.0_416.0_part1.jpg',\n", - " 'P3536_1_16640.0_11648.0_part2303.jpg',\n", - " 'P1265_1_1248.0_1664.0_part31.jpg',\n", - " 'P5812_1_512.0_0.0_part1.jpg',\n", - " 'P1389_1_4160.0_4576.0_part48.jpg',\n", - " 'P1114_1_4607.0_832.0_part49.jpg',\n", - " 'P1207_1_3328.0_0.0_part75.jpg',\n", - " 'P1537_1_832.0_4449.0_part108.jpg',\n", - " 'P1659_1_0.0_3328.0_part11.jpg',\n", - " 'P1297_0.5_0.0_416.0_part5.jpg',\n", - " 'P1443_1_4160.0_2496.0_part58.jpg',\n", - " 'P1582_1_1248.0_0.0_part37.jpg',\n", - " 'P1308_1_4687.0_2080.0_part74.jpg',\n", - " 'P1251_1_3744.0_2912.0_part66.jpg',\n", - " 'P9086_1_416.0_3328.0_part21.jpg',\n", - " 'P10203_1_0.0_416.0_part5.jpg',\n", - " 'P6637_1_2496.0_14976.0_part419.jpg',\n", - " 'P1717_1_832.0_832.0_part23.jpg',\n", - " 'P1574_0.5_1248.0_0.0_part15.jpg',\n", - " 'P1757_1_3328.0_3328.0_part76.jpg',\n", - " 'P11054_1_416.0_17056.0_part111.jpg',\n", - " 'P2538_1_0.0_1248.0_part6.jpg',\n", - " 'P1871_1_11516.0_1248.0_part144.jpg',\n", - " 'P1251_1_832.0_3328.0_part22.jpg',\n", - " 'P7885_1_3583.0_2080.0_part30.jpg',\n", - " 'P5203_1_1248.0_22048.0_part246.jpg',\n", - " 'P2731_1_2080.0_4160.0_part55.jpg',\n", - " 'P1217_1_2496.0_1664.0_part60.jpg',\n", - " 'P6637_1_21632.0_416.0_part3208.jpg',\n", - " 'P1517_1_2912.0_3328.0_part70.jpg',\n", - " 'P5203_1_27456.0_26624.0_part4087.jpg',\n", - " 'P6637_1_11648.0_4992.0_part1767.jpg',\n", - " 'P11054_1_17056.0_2080.0_part2713.jpg',\n", - " 'P1443_1_2912.0_2080.0_part41.jpg',\n", - " 'P6637_1_14560.0_3744.0_part2191.jpg',\n", - " 'P11054_1_5824.0_22048.0_part981.jpg',\n", - " 'P11054_1_24960.0_8736.0_part3952.jpg',\n", - " 'P5203_1_416.0_2080.0_part71.jpg',\n", - " 'P0025_1_832.0_1664.0_part8.jpg',\n", - " 'P2770_1_832.0_832.0_part14.jpg',\n", - " 'P0000_1_0.0_0.0_part4.jpg',\n", - " 'P11054_0.5_12480.0_5408.0_part965.jpg',\n", - " 'P6637_0.5_0.0_10400.0_part25.jpg',\n", - " 'P11054_0.5_7904.0_4576.0_part622.jpg',\n", - " 'P9847_1_20800.0_4992.0_part3199.jpg',\n", - " 'P9086_0.5_1248.0_1535.0_part25.jpg',\n", - " 'P3536_1_17888.0_27040.0_part2536.jpg',\n", - " 'P3536_1_2496.0_27107.0_part4244.jpg',\n", - " 'P5203_1_11232.0_1248.0_part1708.jpg',\n", - " 'P1336_0.5_1664.0_0.0_part7.jpg',\n", - " 'P9347_1_1248.0_1664.0_part24.jpg',\n", - " 'P9847_1_27872.0_7072.0_part4220.jpg',\n", - " 'P5593_1_2496.0_3583.0_part30.jpg',\n", - " 'P6637_1_19136.0_12064.0_part2860.jpg',\n", - " 'P11054_1_10400.0_19968.0_part1700.jpg',\n", - " 'P3536_1_1664.0_27107.0_part4242.jpg',\n", - " 'P5203_1_14144.0_17888.0_part2162.jpg',\n", - " 'P2403_1_1620.0_832.0_part18.jpg',\n", - " 'P1540_1_1664.0_2912.0_part41.jpg',\n", - " 'P1680_1_2912.0_2496.0_part85.jpg',\n", - " 'P0981_1_832.0_832.0_part2.jpg',\n", - " 'P1340_1_1248.0_3487.0_part52.jpg',\n", - " 'P1200_1_4160.0_0.0_part91.jpg',\n", - " 'P2379_1_0.0_1664.0_part8.jpg',\n", - " 'P1670_1_2496.0_1664.0_part52.jpg',\n", - " 'P1389_1_4576.0_416.0_part50.jpg',\n", - " 'P2534_1_2080.0_832.0_part34.jpg',\n", - " 'P2748_1_2496.0_2559.0_part31.jpg',\n", - " 'P1741_1_1664.0_1248.0_part36.jpg',\n", - " 'P6637_1_3744.0_17888.0_part620.jpg',\n", - " 'P5203_1_7904.0_19552.0_part1247.jpg',\n", - " 'P1704_1_0.0_3488.0_part2.jpg',\n", - " 'P9337_1_5408.0_416.0_part101.jpg',\n", - " 'P9847_1_7904.0_27107.0_part4414.jpg',\n", - " 'P3536_1_17056.0_25792.0_part2402.jpg',\n", - " 'P1158_1_1664.0_3744.0_part27.jpg',\n", - " 'P2804_1_2496.0_1659.0_part15.jpg',\n", - " 'P3536_1_27456.0_416.0_part3979.jpg',\n", - " 'P11054_1_19136.0_24960.0_part3087.jpg',\n", - " 'P11054_1_9568.0_25376.0_part1581.jpg',\n", - " 'P4998_1_416.0_416.0_part4.jpg',\n", - " 'P2691_1_4160.0_3328.0_part121.jpg',\n", - " 'P11054_1_10400.0_16640.0_part1692.jpg',\n", - " 'P1587_1_3487.0_1664.0_part79.jpg',\n", - " 'P1551_1_0.0_1664.0_part7.jpg',\n", - " 'P10990_1_512.0_0.0_part1.jpg',\n", - " 'P2800_1_2080.0_832.0_part36.jpg',\n", - " 'P9847_0.5_9152.0_6656.0_part669.jpg',\n", - " 'P9847_1_3328.0_14560.0_part567.jpg',\n", - " 'P2756_1_4160.0_832.0_part47.jpg',\n", - " 'P1171_1_3328.0_3328.0_part95.jpg',\n", - " 'P5102_1_4160.0_2080.0_part72.jpg',\n", - " 'P11054_1_27872.0_10816.0_part4371.jpg',\n", - " 'P1866_1_0.0_1664.0_part8.jpg',\n", - " 'P1291_1_832.0_1248.0_part24.jpg',\n", - " 'P2453_1_1360.0_1664.0_part18.jpg',\n", - " 'P1366_0.5_832.0_0.0_part5.jpg',\n", - " 'P9847_1_28687.0_0.0_part4330.jpg',\n", - " 'P1580_0.5_416.0_832.0_part5.jpg',\n", - " 'P1509_1_3744.0_0.0_part46.jpg',\n", - " 'P1224_1_3328.0_2496.0_part58.jpg',\n", - " 'P5203_0.5_7488.0_4992.0_part477.jpg',\n", - " 'P11054_1_16640.0_21632.0_part2694.jpg',\n", - " 'P1869_0.5_416.0_416.0_part3.jpg',\n", - " 'P9847_0.5_9568.0_7904.0_part690.jpg',\n", - " 'P0346_1_1248.0_832.0_part21.jpg',\n", - " 'P1281_1_0.0_416.0_part4.jpg',\n", - " 'P1291_0.5_1488.0_0.0_part1.jpg',\n", - " 'P6637_1_12480.0_24960.0_part1940.jpg',\n", - " 'P6637_1_5408.0_16224.0_part866.jpg',\n", - " 'P1164_1_2496.0_2080.0_part42.jpg',\n", - " 'P1141_0.5_1248.0_1248.0_part16.jpg',\n", - " 'P11054_1_9152.0_8320.0_part1474.jpg',\n", - " 'P5203_1_26624.0_1248.0_part3900.jpg',\n", - " 'P1686_0.5_1633.0_1248.0_part18.jpg',\n", - " 'P1462_1_5408.0_1664.0_part83.jpg',\n", - " 'P3536_1_26208.0_21216.0_part3834.jpg',\n", - " 'P1288_1_3487.0_832.0_part76.jpg',\n", - " 'P7134_1_512.0_512.0_part3.jpg',\n", - " 'P9847_1_22464.0_4992.0_part3442.jpg',\n", - " 'P1174_1_3328.0_5408.0_part99.jpg',\n", - " 'P3536_0.5_12480.0_11648.0_part761.jpg',\n", - " 'P11054_1_1248.0_10400.0_part227.jpg',\n", - " 'P1753_0.5_416.0_1248.0_part5.jpg',\n", - " 'P2761_1_0.0_2912.0_part9.jpg',\n", - " 'P1174_1_0.0_2912.0_part11.jpg',\n", - " 'P1208_0.5_1487.0_832.0_part17.jpg',\n", - " 'P6637_0.5_7072.0_2912.0_part450.jpg',\n", - " 'P1585_0.5_1487.0_1248.0_part20.jpg',\n", - " 'P6637_1_4992.0_11648.0_part793.jpg',\n", - " 'P1746_1_2080.0_416.0_part31.jpg',\n", - " 'P3348_1_511.0_0.0_part7.jpg',\n", - " 'P1311_1_3487.0_2080.0_part56.jpg',\n", - " 'P1443_1_1248.0_1248.0_part25.jpg',\n", - " 'P1399_1_5408.0_0.0_part102.jpg',\n", - " 'P6637_1_11648.0_14976.0_part1791.jpg',\n", - " 'P2759_1_1664.0_0.0_part31.jpg',\n", - " 'P8751_1_512.0_0.0_part1.jpg',\n", - " 'P9580_1_832.0_3328.0_part21.jpg',\n", - " 'P6637_1_9152.0_8736.0_part1405.jpg',\n", - " 'P1725_1_832.0_3487.0_part72.jpg',\n", - " 'P6637_1_10816.0_4576.0_part1642.jpg',\n", - " 'P2332_1_416.0_0.0_part6.jpg',\n", - " 'P1551_1_416.0_1664.0_part16.jpg',\n", - " 'P5203_1_10400.0_5824.0_part1599.jpg',\n", - " 'P11054_1_27872.0_0.0_part4345.jpg',\n", - " 'P1300_1_2080.0_0.0_part40.jpg',\n", - " 'P1139_1_1664.0_4160.0_part74.jpg',\n", - " 'P3065_1_4576.0_3744.0_part59.jpg',\n", - " 'P3065_1_4160.0_3328.0_part50.jpg',\n", - " 'P2490_1_832.0_0.0_part9.jpg',\n", - " 'P1522_1_832.0_2416.0_part63.jpg',\n", - " 'P4851_1_1248.0_416.0_part21.jpg',\n", - " 'P1457_1_1664.0_2080.0_part14.jpg',\n", - " 'P1489_1_2080.0_1248.0_part55.jpg',\n", - " 'P2288_1_1248.0_416.0_part28.jpg',\n", - " 'P1394_1_3328.0_2496.0_part42.jpg',\n", - " 'P1639_1_1248.0_3744.0_part37.jpg',\n", - " 'P1502_1_2912.0_3328.0_part62.jpg',\n", - " 'P9847_0.5_9568.0_8736.0_part692.jpg',\n", - " 'P5203_1_26208.0_24960.0_part3892.jpg',\n", - " 'P2764_1_416.0_1248.0_part15.jpg',\n", - " 'P0169_1_4992.0_832.0_part78.jpg',\n", - " 'P1871_1_6656.0_4160.0_part67.jpg',\n", - " 'P9847_0.5_12480.0_12480.0_part865.jpg',\n", - " 'P2468_1_416.0_832.0_part10.jpg',\n", - " 'P2495_1_1248.0_832.0_part22.jpg',\n", - " 'P1467_1_0.0_2496.0_part8.jpg',\n", - " 'P5203_1_17472.0_12480.0_part2604.jpg',\n", - " 'P6637_1_4576.0_18720.0_part746.jpg',\n", - " 'P1443_1_416.0_2496.0_part16.jpg',\n", - " 'P10435_1_512.0_0.0_part1.jpg',\n", - " 'P9847_1_23712.0_2080.0_part3604.jpg',\n", - " 'P11054_1_24128.0_4992.0_part3818.jpg',\n", - " 'P0021_1_2080.0_832.0_part29.jpg',\n", - " 'P11054_1_15808.0_10816.0_part2536.jpg',\n", - " 'P5702_1_0.0_0.0_part3.jpg',\n", - " 'P2728_1_1664.0_1664.0_part11.jpg',\n", - " 'P1574_0.5_1248.0_1487.0_part24.jpg',\n", - " 'P9645_1_5408.0_1248.0_part84.jpg',\n", - " 'P11054_1_14144.0_16640.0_part2286.jpg',\n", - " 'P1539_0.5_1488.0_1488.0_part2.jpg',\n", - " 'P6637_1_3744.0_15392.0_part614.jpg',\n", - " 'P1221_0.5_832.0_416.0_part12.jpg',\n", - " 'P1298_0.5_0.0_416.0_part4.jpg',\n", - " 'P1537_1_2080.0_2496.0_part59.jpg',\n", - " 'P2364_1_1542.0_416.0_part25.jpg',\n", - " 'P1255_1_1248.0_832.0_part19.jpg',\n", - " 'P1209_0.5_1487.0_416.0_part19.jpg',\n", - " 'P2641_1_1248.0_1248.0_part37.jpg',\n", - " 'P6637_0.5_8736.0_8320.0_part549.jpg',\n", - " 'P3536_1_13312.0_3744.0_part1767.jpg',\n", - " 'P2249_1_0.0_832.0_part6.jpg',\n", - " 'P2742_1_0.0_832.0_part6.jpg',\n", - " 'P1141_1_5061.0_1248.0_part122.jpg',\n", - " 'P1069_1_832.0_0.0_part11.jpg',\n", - " 'P11054_1_0.0_7904.0_part23.jpg',\n", - " 'P4937_1_0.0_512.0_part2.jpg',\n", - " 'P6637_1_5408.0_11648.0_part856.jpg',\n", - " 'P5203_1_6656.0_20800.0_part1063.jpg',\n", - " 'P1142_0.5_0.0_1943.0_part18.jpg',\n", - " 'P5203_0.5_1664.0_7904.0_part129.jpg',\n", - " 'P5203_1_17472.0_6656.0_part2590.jpg',\n", - " 'P5392_1_4992.0_2080.0_part55.jpg',\n", - " 'P4464_1_5408.0_832.0_part77.jpg',\n", - " 'P1669_1_3781.0_2912.0_part96.jpg',\n", - " 'P4172_1_0.0_416.0_part4.jpg',\n", - " 'P5102_1_1664.0_3328.0_part32.jpg',\n", - " 'P1740_1_1248.0_3487.0_part92.jpg',\n", - " 'P1458_1_832.0_2080.0_part26.jpg',\n", - " 'P5102_1_2080.0_416.0_part35.jpg',\n", - " 'P2769_1_0.0_2912.0_part11.jpg',\n", - " 'P2665_0.5_857.0_0.0_part1.jpg',\n", - " 'P6637_1_416.0_4576.0_part79.jpg',\n", - " 'P1653_1_2912.0_1248.0_part66.jpg',\n", - " 'P1791_1_1664.0_3744.0_part25.jpg',\n", - " 'P2655_0.5_832.0_416.0_part4.jpg',\n", - " 'P6637_0.5_2912.0_7488.0_part210.jpg',\n", - " 'P3536_0.5_6240.0_8736.0_part291.jpg',\n", - " 'P5203_1_10400.0_18304.0_part1625.jpg',\n", - " 'P2368_0.5_776.0_0.0_part5.jpg',\n", - " 'P5195_1_6240.0_4399.0_part84.jpg',\n", - " 'P1497_1_2724.0_0.0_part23.jpg',\n", - " 'P1321_1_2496.0_832.0_part40.jpg',\n", - " 'P1217_1_1248.0_832.0_part33.jpg',\n", - " 'P9847_1_0.0_6240.0_part19.jpg',\n", - " 'P1171_1_3744.0_2912.0_part104.jpg',\n", - " 'P10398_1_416.0_511.0_part5.jpg',\n", - " 'P6637_1_3328.0_832.0_part517.jpg',\n", - " 'P1139_1_416.0_3744.0_part28.jpg',\n", - " 'P1640_0.5_1248.0_416.0_part9.jpg',\n", - " 'P2642_1_4992.0_2080.0_part60.jpg',\n", - " 'P9847_1_11232.0_4992.0_part1783.jpg',\n", - " 'P0119_1_832.0_0.0_part13.jpg',\n", - " 'P1382_1_416.0_2496.0_part14.jpg',\n", - " 'P9847_1_2080.0_22464.0_part388.jpg',\n", - " 'P1256_1_3487.0_0.0_part74.jpg',\n", - " 'P7885_1_3583.0_1664.0_part29.jpg',\n", - " 'P1173_0.5_0.0_1391.0_part7.jpg',\n", - " 'P1232_1_0.0_2496.0_part7.jpg',\n", - " 'P1554_1_2080.0_832.0_part48.jpg',\n", - " 'P11054_1_4992.0_21216.0_part847.jpg',\n", - " 'P2641_1_4576.0_2912.0_part84.jpg',\n", - " 'P1132_0.5_416.0_1664.0_part9.jpg',\n", - " 'P1232_1_0.0_3487.0_part79.jpg',\n", - " 'P2743_1_3954.0_2496.0_part88.jpg',\n", - " 'P1279_1_2496.0_0.0_part58.jpg',\n", - " 'P1250_1_2080.0_3487.0_part78.jpg',\n", - " 'P5203_1_14976.0_18720.0_part2284.jpg',\n", - " 'P1676_0.5_1248.0_416.0_part13.jpg',\n", - " 'P1756_0.5_832.0_1248.0_part13.jpg',\n", - " 'P1597_1_2496.0_416.0_part62.jpg',\n", - " 'P0250_1_621.0_1248.0_part3.jpg',\n", - " 'P9847_1_26624.0_20800.0_part4064.jpg',\n", - " 'P7730_1_0.0_512.0_part2.jpg',\n", - " 'P5203_1_16640.0_7904.0_part2478.jpg',\n", - " 'P3536_1_19136.0_12480.0_part2694.jpg',\n", - " 'P3536_0.5_1248.0_10816.0_part57.jpg',\n", - " 'P9847_1_17056.0_416.0_part2655.jpg',\n", - " 'P1351_1_1248.0_2080.0_part16.jpg',\n", - " 'P11054_1_4576.0_19136.0_part776.jpg',\n", - " 'P1426_1_4576.0_0.0_part114.jpg',\n", - " 'P7311_1_0.0_416.0_part4.jpg',\n", - " 'P1182_1_0.0_3026.0_part1.jpg',\n", - " 'P1360_1_2496.0_2496.0_part25.jpg',\n", - " 'P0122_1_0.0_832.0_part4.jpg',\n", - " 'P9847_0.5_14087.0_5824.0_part956.jpg',\n", - " 'P1466_1_3744.0_2912.0_part39.jpg',\n", - " 'P1279_1_1664.0_2912.0_part47.jpg',\n", - " 'P9847_1_20800.0_16224.0_part3224.jpg',\n", - " 'P3536_1_8736.0_2496.0_part1088.jpg',\n", - " 'P1116_1_2496.0_832.0_part27.jpg',\n", - " 'P1243_1_2496.0_0.0_part40.jpg',\n", - " 'P2759_1_7072.0_2080.0_part120.jpg',\n", - " 'P1305_0.5_0.0_832.0_part2.jpg',\n", - " 'P1132_1_0.0_1664.0_part8.jpg',\n", - " 'P2164_1_2496.0_2132.0_part52.jpg',\n", - " 'P3536_1_7072.0_19552.0_part908.jpg',\n", - " 'P1328_1_2912.0_2496.0_part59.jpg',\n", - " 'P1446_1_0.0_416.0_part3.jpg',\n", - " 'P3536_0.5_4160.0_3744.0_part159.jpg',\n", - " 'P1686_1_832.0_2080.0_part26.jpg',\n", - " 'P1869_0.5_1248.0_0.0_part5.jpg',\n", - " 'P1299_1_2496.0_3328.0_part50.jpg',\n", - " 'P1600_1_2912.0_2080.0_part71.jpg',\n", - " 'P9847_1_19552.0_9984.0_part3030.jpg',\n", - " 'P1317_1_416.0_2496.0_part10.jpg',\n", - " 'P11054_1_19968.0_3744.0_part3165.jpg',\n", - " 'P11054_1_12480.0_4992.0_part1994.jpg',\n", - " 'P9847_1_2080.0_14976.0_part370.jpg',\n", - " 'P0000_0.5_416.0_0.0_part5.jpg',\n", - " 'P1545_1_2912.0_2912.0_part57.jpg',\n", - " 'P3065_1_2496.0_1664.0_part30.jpg',\n", - " 'P11054_0.5_11232.0_11232.0_part888.jpg',\n", - " 'P9847_1_22048.0_11232.0_part3399.jpg',\n", - " 'P4946_1_832.0_3583.0_part62.jpg',\n", - " 'P2418_0.5_0.0_0.0_part3.jpg',\n", - " 'P3536_0.5_4576.0_4576.0_part177.jpg',\n", - " 'P2800_0.5_0.0_0.0_part3.jpg',\n", - " 'P1602_1_3744.0_1664.0_part85.jpg',\n", - " 'P1139_0.5_4032.0_2080.0_part61.jpg',\n", - " 'P11054_1_5824.0_3744.0_part937.jpg',\n", - " 'P2437_1_832.0_1454.0_part9.jpg',\n", - " 'P2506_0.5_453.0_0.0_part6.jpg',\n", - " 'P5203_1_9984.0_2912.0_part1530.jpg',\n", - " 'P5203_1_5824.0_832.0_part889.jpg',\n", - " 'P8587_1_3744.0_0.0_part32.jpg',\n", - " 'P11054_1_9984.0_4576.0_part1597.jpg',\n", - " 'P1600_1_2080.0_0.0_part49.jpg',\n", - " 'P9847_1_19552.0_3328.0_part3016.jpg',\n", - " 'P3065_1_6656.0_0.0_part87.jpg',\n", - " 'P5203_1_0.0_23296.0_part56.jpg',\n", - " 'P6637_1_3744.0_21216.0_part626.jpg',\n", - " 'P9847_0.5_1248.0_12896.0_part131.jpg',\n", - " 'P1696_0.5_416.0_832.0_part9.jpg',\n", - " 'P1638_0.5_832.0_1487.0_part13.jpg',\n", - " 'P1574_1_0.0_3328.0_part11.jpg',\n", - " 'P1562_1_1664.0_2080.0_part39.jpg',\n", - " 'P1661_0.5_416.0_1487.0_part22.jpg',\n", - " 'P9847_0.5_2496.0_7904.0_part214.jpg',\n", - " 'P1686_0.5_0.0_1488.0_part1.jpg',\n", - " 'P1660_0.5_0.0_1487.0_part18.jpg',\n", - " 'P2343_1_1686.0_416.0_part22.jpg',\n", - " 'P1689_1_1664.0_0.0_part48.jpg',\n", - " 'P1159_1_832.0_416.0_part12.jpg',\n", - " 'P9847_1_13728.0_25376.0_part2211.jpg',\n", - " 'P1758_0.5_416.0_0.0_part6.jpg',\n", - " 'P8003_1_4992.0_1248.0_part43.jpg',\n", - " 'P9847_1_26208.0_18304.0_part3996.jpg',\n", - " 'P5203_0.5_13728.0_7072.0_part845.jpg',\n", - " 'P1649_1_1248.0_2496.0_part25.jpg',\n", - " 'P5203_0.5_11648.0_3328.0_part703.jpg',\n", - " 'P5203_1_2912.0_25376.0_part508.jpg',\n", - " 'P9645_1_1664.0_1248.0_part20.jpg',\n", - " 'P0573_1_832.0_0.0_part3.jpg',\n", - " 'P1292_1_832.0_2080.0_part26.jpg',\n", - " 'P3536_1_27872.0_7488.0_part4060.jpg',\n", - " 'P8853_1_511.0_0.0_part7.jpg',\n", - " 'P2249_1_1793.0_0.0_part58.jpg',\n", - " 'P1181_1_1248.0_3647.0_part74.jpg',\n", - " 'P5203_1_3744.0_23712.0_part630.jpg',\n", - " 'P3536_1_17472.0_9152.0_part2428.jpg',\n", - " 'P1736_1_3328.0_4453.0_part114.jpg',\n", - " 'P1307_1_1664.0_416.0_part33.jpg',\n", - " 'P6637_1_28288.0_832.0_part4138.jpg',\n", - " 'P5102_1_4160.0_4160.0_part74.jpg',\n", - " 'P3536_1_26208.0_9152.0_part3805.jpg',\n", - " 'P1141_1_2496.0_2080.0_part62.jpg',\n", - " 'P11054_0.5_5824.0_12896.0_part482.jpg',\n", - " 'P6637_0.5_6240.0_4992.0_part413.jpg',\n", - " 'P2381_1_832.0_416.0_part12.jpg',\n", - " 'P3536_1_9152.0_9568.0_part1156.jpg',\n", - " 'P1768_1_2080.0_3328.0_part53.jpg',\n", - " 'P2686_1_1248.0_2080.0_part12.jpg',\n", - " 'P1662_1_2080.0_2912.0_part55.jpg',\n", - " 'P2740_1_3394.0_0.0_part34.jpg',\n", - " 'P1389_1_4992.0_2080.0_part60.jpg',\n", - " 'P5951_1_0.0_511.0_part10.jpg',\n", - " 'P5203_0.5_11648.0_4992.0_part707.jpg',\n", - " 'P1366_0.5_0.0_0.0_part2.jpg',\n", - " 'P5034_1_832.0_2912.0_part6.jpg',\n", - " 'P1170_1_2912.0_4576.0_part141.jpg',\n", - " 'P1705_1_2080.0_2496.0_part53.jpg',\n", - " 'P1600_1_1248.0_0.0_part31.jpg',\n", - " 'P1632_0.5_416.0_416.0_part9.jpg',\n", - " 'P3536_1_17888.0_21216.0_part2522.jpg',\n", - " 'P1247_1_0.0_416.0_part4.jpg',\n", - " 'P1139_0.5_3744.0_0.0_part50.jpg',\n", - " 'P9847_1_832.0_6240.0_part151.jpg',\n", - " 'P6637_0.5_10400.0_10816.0_part654.jpg',\n", - " 'P1292_0.5_416.0_1487.0_part21.jpg',\n", - " 'P1565_1_416.0_3328.0_part18.jpg',\n", - " 'P1358_1_416.0_3487.0_part30.jpg',\n", - " 'P5164_1_0.0_416.0_part5.jpg',\n", - " 'P1078_1_1248.0_416.0_part4.jpg',\n", - " 'P1535_1_2080.0_0.0_part53.jpg',\n", - " 'P9018_1_1248.0_2912.0_part42.jpg',\n", - " 'P1638_1_2912.0_832.0_part59.jpg',\n", - " 'P11054_1_14560.0_2080.0_part2317.jpg',\n", - " 'P5203_1_15808.0_22464.0_part2392.jpg',\n", - " 'P3536_1_6656.0_6656.0_part832.jpg',\n", - " 'P6637_1_12064.0_25792.0_part1880.jpg',\n", - " 'P9847_1_25792.0_7488.0_part3908.jpg',\n", - " 'P1748_1_0.0_3328.0_part12.jpg',\n", - " 'P3536_1_24544.0_25376.0_part3581.jpg',\n", - " 'P1744_1_3328.0_3328.0_part74.jpg',\n", - " 'P9847_1_11648.0_9568.0_part1858.jpg',\n", - " 'P1682_0.5_0.0_0.0_part4.jpg',\n", - " 'P5733_1_1248.0_1248.0_part24.jpg',\n", - " 'P1636_1_2912.0_2080.0_part65.jpg',\n", - " 'P2512_1_1374.0_0.0_part1.jpg',\n", - " 'P1399_1_3328.0_2080.0_part75.jpg',\n", - " 'P11054_1_20384.0_24544.0_part3278.jpg',\n", - " 'P1300_1_4160.0_1664.0_part81.jpg',\n", - " 'P1308_1_2496.0_0.0_part31.jpg',\n", - " 'P11054_0.5_2080.0_9984.0_part188.jpg',\n", - " 'P11054_1_8320.0_5824.0_part1336.jpg',\n", - " 'P1574_1_2912.0_416.0_part67.jpg',\n", - " 'P1640_1_1248.0_416.0_part31.jpg',\n", - " 'P2533_0.5_0.0_641.0_part5.jpg',\n", - " 'P1670_1_0.0_416.0_part3.jpg',\n", - " 'P2690_1_1664.0_416.0_part6.jpg',\n", - " 'P1669_1_3781.0_2496.0_part95.jpg',\n", - " 'P1552_1_2496.0_832.0_part60.jpg',\n", - " 'P6637_1_8320.0_24544.0_part1317.jpg',\n", - " 'P1171_1_4160.0_832.0_part111.jpg',\n", - " 'P1245_0.5_832.0_1487.0_part11.jpg',\n", - " 'P1243_1_2496.0_3328.0_part45.jpg',\n", - " 'P1445_0.5_0.0_0.0_part4.jpg',\n", - " 'P1166_1_2496.0_1248.0_part48.jpg',\n", - " 'P3536_1_17888.0_15392.0_part2508.jpg',\n", - " 'P9847_1_25376.0_11648.0_part3855.jpg',\n", - " 'P2729_1_1664.0_416.0_part11.jpg',\n", - " 'P11054_1_5824.0_20800.0_part978.jpg',\n", - " 'P2382_0.5_0.0_450.0_part2.jpg',\n", - " 'P1067_1_1248.0_2080.0_part7.jpg',\n", - " 'P1132_1_2912.0_832.0_part73.jpg',\n", - " 'P1493_0.5_1248.0_0.0_part5.jpg',\n", - " 'P0861_1_0.0_0.0_part2.jpg',\n", - " 'P3536_1_12896.0_5824.0_part1706.jpg',\n", - " 'P9847_1_5408.0_1248.0_part864.jpg',\n", - " 'P11054_1_2496.0_4576.0_part411.jpg',\n", - " 'P1868_1_3744.0_2912.0_part27.jpg',\n", - " 'P3536_1_16640.0_17472.0_part2317.jpg',\n", - " 'P2534_1_2087.0_1664.0_part42.jpg',\n", - " 'P5392_1_6656.0_1664.0_part81.jpg',\n", - " 'P6637_1_6656.0_416.0_part1015.jpg',\n", - " 'P1632_0.5_416.0_832.0_part10.jpg',\n", - " ...]" - ] - }, - "execution_count": 222, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "os.listdir(\"/home/xfr/rssid/pre/\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] } ], "metadata": { diff --git a/eval.ipynb b/eval.ipynb deleted file mode 100644 index 07b676e..0000000 --- a/eval.ipynb +++ /dev/null @@ -1,2552 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "import pickle\n", - "import json\n", - "import mmcv\n", - "from tqdm import tqdm_notebook as tqdm\n", - "from mmdet.datasets import build_dataloader, build_dataset\n", - "from pycocotools.coco import COCO\n", - "import pycocotools.coco as cocoapi\n", - "import pycocotools.mask as MASK\n", - "import os\n", - "import cv2\n", - "from icecream import ic\n", - "import matplotlib.pyplot as plt\n", - "from mmdet.models import build_detector\n", - "from mmcv.runner import load_checkpoint, get_dist_info\n", - "import numpy as np\n", - "from multiprocessing import Pool" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "loading annotations into memory...\n", - "Done (t=0.18s)\n", - "creating index...\n", - "index created!\n", - "loading annotations into memory...\n", - "Done (t=0.09s)\n", - "creating index...\n", - "index created!\n" - ] - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "b736fa9d2f9b49c8a48a73c2eea4db78", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "HBox(children=(IntProgress(value=0, max=36909), HTML(value='')))" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "593\n" - ] - } - ], - "source": [ - "\n", - "cfg = mmcv.Config.fromfile(\"configs/rs_cascade_mask_rcnn_r50_fpn_ohem.py\")\n", - "CLASSES = ('tennis-court', 'container-crane', 'storage-tank', 'baseball-diamond', 'plane','ground-track-field',\n", - " 'helicopter', 'airport','harbor', 'ship', 'large-vehicle', 'swimming-pool', 'soccer-ball-field',\n", - " 'roundabout', 'basketball-court', 'bridge', 'small-vehicle', 'helipad')\n", - "results = mmcv.load(\"./result/val.pkl\")\n", - "dataset = build_dataset(cfg.data.test)\n", - "img_infos = dataset.load_annotations(\"/home/xfr/mmdetection/data/rscup/annotation/annos_rscup_val.json\")\n", - "ann = {}\n", - "last_name = \"\"\n", - "last = \"\"\n", - "for i in tqdm(range(len(results))):\n", - " filename = img_infos[i]['filename']\n", - " items = filename.split(\"_\")\n", - " name = items[0]\n", - " img = cv2.imread(\"./data/rscup/val/\" + filename)\n", - " h, w, _ = img.shape\n", - " if name not in ann:\n", - " ann[name] = {\"bbox\": [[] for i in range(len(dataset.CLASSES))], \"seg\": [[] for i in range(len(dataset.CLASSES))],\n", - " \"vis\": [[] for i in range(len(dataset.CLASSES))], \"rect\": [[] for i in range(len(dataset.CLASSES))]}\n", - " scale_factor = 1/float(items[1])\n", - " locx = int(float(items[2]))\n", - " locy = int(float(items[3]))\n", - " result = results[i]\n", - " bboxes = result[0]\n", - " segs = result[1]\n", - " for cls in range(len(dataset.CLASSES)):\n", - " bbox_cls = bboxes[cls]\n", - " seg_cls = segs[cls]\n", - " if( len(bbox_cls) > 0):\n", - " for bbox, rle in zip(bbox_cls, seg_cls):\n", - " xmin, ymin, xmax, ymax, score = bbox\n", - "# cv2.rectangle(img, (xmin, ymin), (xmax, ymax), (0,0,255), 2)\n", - "# cv2.putText(img, str(cls), (int(xmin), int(ymin)), cv2.FONT_HERSHEY_COMPLEX, 1, (0, 0, 255), 2)\n", - "\n", - " xmin += locx\n", - " ymin += locy\n", - " xmax += locx\n", - " ymax += locy\n", - " bounding_box = np.array([xmin*scale_factor, ymin*scale_factor, xmax*scale_factor, ymax*scale_factor, score])\n", - " mask = MASK.decode(rle) \n", - " contours, hierarchy = cv2.findContours((mask).astype(np.uint8), cv2.RETR_TREE,\n", - " cv2.CHAIN_APPROX_SIMPLE)\n", - " areas = [cv2.contourArea(contour) for contour in contours]\n", - " if(len(areas) > 0):\n", - " index = np.argmax(areas)\n", - " contour = contours[index]\n", - " rect = cv2.minAreaRect(contour)\n", - " box = cv2.boxPoints(rect)\n", - " box += np.array([locx, locy])\n", - " \n", - " \n", - " center = np.array(rect[0])\n", - " size = np.array(rect[1])\n", - " angel = rect[2]\n", - " size *= scale_factor\n", - " center += np.array([locx, locy])\n", - " center *= scale_factor\n", - " rect = (tuple(center), tuple(size), angel )\n", - " else:\n", - " continue\n", - " ann[name]['rect'][cls].append(rect)\n", - " ann[name][\"bbox\"][cls].append(bounding_box)\n", - " ann[name]['vis'][cls].append(np.array([box[0]*scale_factor, box[1]*scale_factor, box[2]*scale_factor, box[3]*scale_factor]))\n", - "# poly = []\n", - "# for point in box:\n", - "# poly.append(point[0])\n", - "# poly.append(point[1])\n", - "# poly = np.array(poly, np.double)\n", - "# poly = [poly*scale_factor]\n", - "# rles = MASK.frPyObjects(poly, H, W)\n", - "# rle = MASK.merge(rles)\n", - "# ann[name][\"seg\"][cls].append(rle)\n", - " #cv2.imwrite(\"./vis/\"+filename, img)\n", - "print(len(ann.keys()))\n", - " #coco_eval(result_file, eval_types, dataset.coco)\n", - " # nms\n", - " # toBbox\n", - " # box - mask - rle\n", - " # rles = maskUtils.frPyObjects(segm, h, w)\n", - " # rle = maskUtils.merge(rles)\n", - "mmcv.dump(ann, \"./result/eval_temp.pkl\")" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "loading annotations into memory...\n", - "Done (t=0.15s)\n", - "creating index...\n", - "index created!\n", - "loading annotations into memory...\n", - "Done (t=0.09s)\n", - "creating index...\n", - "index created!\n" - ] - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "0fdd2e6dccfe45dcb671fc734db1a98b", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "HBox(children=(IntProgress(value=0, max=40000), HTML(value='')))" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "1a561b6cc08b472bbb1c840fd0651bbe", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "HBox(children=(IntProgress(value=0, max=36909), HTML(value='')))" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "def get_ann(bboxes, segs, cls, name, locx, locy, scale_factor):\n", - " Rect = []\n", - " Bbox = []\n", - " Vis = []\n", - " bbox_cls = bboxes[cls]\n", - " seg_cls = segs[cls]\n", - " if( len(bbox_cls) > 0):\n", - " for bbox, rle in zip(bbox_cls, seg_cls):\n", - " xmin, ymin, xmax, ymax, score = bbox\n", - " xmin += locx\n", - " ymin += locy\n", - " xmax += locx\n", - " ymax += locy\n", - " bounding_box = np.array([xmin*scale_factor, ymin*scale_factor, xmax*scale_factor, ymax*scale_factor, score])\n", - " mask = MASK.decode(rle) \n", - " contours, hierarchy = cv2.findContours((mask).astype(np.uint8), cv2.RETR_TREE,\n", - " cv2.CHAIN_APPROX_SIMPLE)\n", - " areas = [cv2.contourArea(contour) for contour in contours]\n", - " if(len(areas) > 0):\n", - " index = np.argmax(areas)\n", - " contour = contours[index]\n", - " rect = cv2.minAreaRect(contour)\n", - " box = cv2.boxPoints(rect)\n", - " box += np.array([locx, locy])\n", - "\n", - "\n", - " center = np.array(rect[0])\n", - " size = np.array(rect[1])\n", - " angel = rect[2]\n", - " size *= scale_factor\n", - " center += np.array([locx, locy])\n", - " center *= scale_factor\n", - " rect = (tuple(center), tuple(size), angel )\n", - " else:\n", - " continue\n", - " Rect.append(rect)\n", - " Bbox.append(bounding_box)\n", - " Vis.append(np.array([box[0]*scale_factor, box[1]*scale_factor, box[2]*scale_factor, box[3]*scale_factor]))\n", - " return cls, name, Rect, Bbox, Vis\n", - "def get_all_ann(filename, result,size, CLASS_NUM=18):\n", - " items = filename.split(\"_\")\n", - " name = items[0]\n", - " h, w = size\n", - "# img = cv2.imread(\"./data/rscup/val/\" + filename)\n", - "# h, w, _ = img.shape\n", - " scale_factor = 1/float(items[1])\n", - " locx = int(float(items[2]))\n", - " locy = int(float(items[3]))\n", - " bboxes = result[0]\n", - " segs = result[1]\n", - " Rect = [[] for cls in range(CLASS_NUM)]\n", - " Bbox = [[] for cls in range(CLASS_NUM)]\n", - " Vis = [[] for cls in range(CLASS_NUM)]\n", - " for cls in range(CLASS_NUM):\n", - " bbox_cls = bboxes[cls]\n", - " seg_cls = segs[cls]\n", - " if( len(bbox_cls) > 0):\n", - " for bbox, rle in zip(bbox_cls, seg_cls):\n", - " xmin, ymin, xmax, ymax, score = bbox\n", - " xmin += locx\n", - " ymin += locy\n", - " xmax += locx\n", - " ymax += locy\n", - " bounding_box = np.array([xmin*scale_factor, ymin*scale_factor, xmax*scale_factor, ymax*scale_factor, score])\n", - " mask = MASK.decode(rle) \n", - " contours, hierarchy = cv2.findContours((mask).astype(np.uint8), cv2.RETR_TREE,\n", - " cv2.CHAIN_APPROX_SIMPLE)\n", - " areas = [cv2.contourArea(contour) for contour in contours]\n", - " if(len(areas) > 0):\n", - " index = np.argmax(areas)\n", - " contour = contours[index]\n", - " rect = cv2.minAreaRect(contour)\n", - " box = cv2.boxPoints(rect)\n", - " box += np.array([locx, locy])\n", - "\n", - "\n", - " center = np.array(rect[0])\n", - " size = np.array(rect[1])\n", - " angel = rect[2]\n", - " size *= scale_factor\n", - " center += np.array([locx, locy])\n", - " center *= scale_factor\n", - " rect = (tuple(center), tuple(size), angel )\n", - " else:\n", - " continue\n", - " Rect[cls].append(rect)\n", - " Bbox[cls].append(bounding_box)\n", - " Vis[cls].append(np.array([box[0]*scale_factor, box[1]*scale_factor, box[2]*scale_factor, box[3]*scale_factor]))\n", - " return name, Rect, Bbox, Vis\n", - "cfg = mmcv.Config.fromfile(\"configs/rs_cascade_mask_rcnn_r50_fpn_ohem.py\")\n", - "CLASSES = ('tennis-court', 'container-crane', 'storage-tank', 'baseball-diamond', 'plane','ground-track-field',\n", - " 'helicopter', 'airport','harbor', 'ship', 'large-vehicle', 'swimming-pool', 'soccer-ball-field',\n", - " 'roundabout', 'basketball-court', 'bridge', 'small-vehicle', 'helipad')\n", - "results = mmcv.load(\"./result/val.pkl\")\n", - "dataset = build_dataset(cfg.data.test)\n", - "img_infos = dataset.load_annotations(\"/home/xfr/mmdetection/data/rscup/annotation/annos_rscup_val.json\")\n", - "ann = {}\n", - "rets= []\n", - "CLASS_NUM=18\n", - "p = Pool(32)\n", - "def update(*a):\n", - " pbar.update()\n", - "pbar = tqdm(total=40000)\n", - "for i in tqdm(range(len(results))):\n", - " filename = img_infos[i]['filename']\n", - " h = img_infos[i]['height']\n", - " w = img_infos[i]['width']\n", - " rets.append(p.apply_async(get_all_ann, args=(filename, results[i],(h, w), 18), callback=update)) \n", - "\n", - "for ret in rets:\n", - " name, Rect, Bbox, Vis = ret.get()\n", - " if name not in ann:\n", - " ann[name] = {\"bbox\": [[] for i in range(CLASS_NUM)], \"vis\": [[] for i in range(CLASS_NUM)], \n", - " \"rect\": [[] for i in range(CLASS_NUM)]}\n", - " for cls in range(CLASS_NUM):\n", - " ann[name]['bbox'][cls] += Bbox[cls]\n", - " ann[name]['rect'][cls] += Rect[cls]\n", - " ann[name]['vis'][cls] += Vis[cls]\n", - "mmcv.dump(ann, \"./result/eval2_temp.pkl\")\n", - "p.close()\n", - "p.join()" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": { - "scrolled": true - }, - "outputs": [], - "source": [ - "def nms_rotate_cpu(boxes, scores, iou_threshold, max_output_size):\n", - " keep = []\n", - " order = scores.argsort()[::-1]\n", - " num = len(boxes)\n", - " suppressed = np.zeros((num), dtype=np.int)\n", - " for _i in range(num):\n", - " if len(keep) >= max_output_size:\n", - " break\n", - " i = order[_i]\n", - " if suppressed[i] == 1:\n", - " continue\n", - " keep.append(i)\n", - " r1 = boxes[i]\n", - " r1 = tuple(r1)\n", - " area_r1 = boxes[i][1][0] * boxes[i][1][1]\n", - " for _j in range(_i + 1, num):\n", - " j = order[_j]\n", - " if suppressed[i] == 1:\n", - " continue\n", - " r2 = boxes[j]\n", - " area_r2 = boxes[j][1][0] * boxes[j][1][1]\n", - " inter = 0.0\n", - " r2 = tuple(r2)\n", - " int_pts = cv2.rotatedRectangleIntersection(r1, r2)[1]\n", - " if int_pts is not None:\n", - " order_pts = cv2.convexHull(int_pts, returnPoints=True)\n", - " int_area = cv2.contourArea(order_pts)\n", - " inter = int_area * 1.0 / (area_r1 + area_r2 - int_area + 0.0000001)\n", - " # inter = int_area * 1.0 / min(area_r1+1e-5, area_r2+1e-5)\n", - "\n", - " if inter >= iou_threshold:\n", - " suppressed[j] = 1\n", - "\n", - " return np.array(keep, np.int64)\n", - "def rotate_nms(ann, thresh):\n", - " for name in tqdm(ann.keys()):\n", - " info = ann[name]\n", - " for cls in range(len(dataset.CLASSES)):\n", - " bbox = np.array(info['bbox'][cls], np.float32)\n", - " seg = np.array(info['seg'][cls])\n", - " vis = np.array(info['vis'][cls])\n", - " rect = info['rect'][cls]\n", - " if(len(bbox)<=0):\n", - " continue\n", - " scores = bbox[:, 4]\n", - " inds = nms_rotate_cpu(rect, scores, thresh, 1000)\n", - " ann[name]['bbox'][cls] = bbox[inds]\n", - " ann[name]['seg'][cls] = seg[inds]\n", - " ann[name]['vis'][cls] = vis[inds]\n", - "# ann[name]['rect'] = rect[inds]\n", - " return ann" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "def py_cpu_nms_poly_fast(dets, thresh):\n", - " obbs = dets[:, 0:-1]\n", - " x1 = np.min(obbs[:, 0::2], axis=1)\n", - " y1 = np.min(obbs[:, 1::2], axis=1)\n", - " x2 = np.max(obbs[:, 0::2], axis=1)\n", - " y2 = np.max(obbs[:, 1::2], axis=1)\n", - " scores = dets[:, 8]\n", - " areas = (x2 - x1 + 1) * (y2 - y1 + 1)\n", - "\n", - " polys = []\n", - " for i in range(len(dets)):\n", - " tm_polygon = polyiou.VectorDouble([dets[i][0], dets[i][1],\n", - " dets[i][2], dets[i][3],\n", - " dets[i][4], dets[i][5],\n", - " dets[i][6], dets[i][7]])\n", - " polys.append(tm_polygon)\n", - " order = scores.argsort()[::-1]\n", - "\n", - " keep = []\n", - " while order.size > 0:\n", - " ovr = []\n", - " i = order[0]\n", - " keep.append(i)\n", - " # if order.size == 0:\n", - " # break\n", - " xx1 = np.maximum(x1[i], x1[order[1:]])\n", - " yy1 = np.maximum(y1[i], y1[order[1:]])\n", - " xx2 = np.minimum(x2[i], x2[order[1:]])\n", - " yy2 = np.minimum(y2[i], y2[order[1:]])\n", - " # w = np.maximum(0.0, xx2 - xx1 + 1)\n", - " # h = np.maximum(0.0, yy2 - yy1 + 1)\n", - " w = np.maximum(0.0, xx2 - xx1)\n", - " h = np.maximum(0.0, yy2 - yy1)\n", - " hbb_inter = w * h\n", - " hbb_ovr = hbb_inter / (areas[i] + areas[order[1:]] - hbb_inter)\n", - " # h_keep_inds = np.where(hbb_ovr == 0)[0]\n", - " h_inds = np.where(hbb_ovr > 0)[0]\n", - " tmp_order = order[h_inds + 1]\n", - " for j in range(tmp_order.size):\n", - " iou = polyiou.iou_poly(polys[i], polys[tmp_order[j]])\n", - " hbb_ovr[h_inds[j]] = iou\n", - " # ovr.append(iou)\n", - " # ovr_index.append(tmp_order[j])\n", - "\n", - " # ovr = np.array(ovr)\n", - " # ovr_index = np.array(ovr_index)\n", - " # print('ovr: ', ovr)\n", - " # print('thresh: ', thresh)\n", - " try:\n", - " if math.isnan(ovr[0]):\n", - " pdb.set_trace()\n", - " except:\n", - " pass\n", - " inds = np.where(hbb_ovr <= thresh)[0]\n", - "\n", - " # order_obb = ovr_index[inds]\n", - " # print('inds: ', inds)\n", - " # order_hbb = order[h_keep_inds + 1]\n", - " order = order[inds + 1]\n", - " # pdb.set_trace()\n", - " # order = np.concatenate((order_obb, order_hbb), axis=0).astype(np.int)\n", - " return keep\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### poly nms" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "a03d4bea83db477aa9554664a8449ad0", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "HBox(children=(IntProgress(value=0, max=593), HTML(value='')))" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "ename": "NameError", - "evalue": "name 'py_cpu_nms_poly_fast' is not defined", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 21\u001b[0m \u001b[0;31m# result = copy.deepcopy(ann)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 22\u001b[0m \u001b[0mann\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmmcv\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mload\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"./result/eval2_temp.pkl\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 23\u001b[0;31m \u001b[0mresult2\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnms\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mann\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mthresh\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 24\u001b[0m \u001b[0mmmcv\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdump\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mresult2\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"./result/eval2_postnms.pkl\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m\u001b[0m in \u001b[0;36mnms\u001b[0;34m(ann, thresh)\u001b[0m\n\u001b[1;32m 13\u001b[0m \u001b[0mdets\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mc_\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mdets\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mscores\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 14\u001b[0m \u001b[0;31m#print(bbox.shape)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 15\u001b[0;31m \u001b[0minds\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpy_cpu_nms_poly_fast\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdets\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mthresh\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 16\u001b[0m \u001b[0;31m# print(len(inds))\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 17\u001b[0m \u001b[0mann\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'bbox'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mcls\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mbbox\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0minds\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mNameError\u001b[0m: name 'py_cpu_nms_poly_fast' is not defined" - ] - } - ], - "source": [ - "from mmdet.ops.nms import nms_wrapper\n", - "def nms(ann, thresh):\n", - " for name in tqdm(ann.keys()):\n", - " info = ann[name]\n", - " for cls in range(18):\n", - " bbox = np.array(info['bbox'][cls], np.float32)\n", - " vis = np.array(info['vis'][cls])\n", - " if(len(bbox)<=0):\n", - " continue\n", - " dets = vis.reshape(-1, 8)\n", - " dets = np.array(dets, np.int32)\n", - " scores = bbox[:, 4]\n", - " dets = np.c_[dets, scores]\n", - " #print(bbox.shape)\n", - " inds = py_cpu_nms_poly_fast(dets, thresh)\n", - " # print(len(inds))\n", - " ann[name]['bbox'][cls] = bbox[inds]\n", - " ann[name]['vis'][cls] = vis[inds]\n", - " return ann\n", - "thresh=0.5\n", - "# result = copy.deepcopy(ann)\n", - "ann = mmcv.load(\"./result/eval2_temp.pkl\")\n", - "result2 = nms(ann, thresh)\n", - "mmcv.dump(result2, \"./result/eval2_postnms.pkl\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### bbx nms" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "06f2d691f9634fa28abe6dff35a51a5e", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "HBox(children=(IntProgress(value=0, max=593), HTML(value='')))" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "from mmdet.ops.nms import nms_wrapper\n", - "def nms(ann, thresh):\n", - " for name in tqdm(ann.keys()):\n", - " info = ann[name]\n", - " for cls in range(18):\n", - " bbox = np.array(info['bbox'][cls], np.float32)\n", - " vis = np.array(info['vis'][cls])\n", - " if(len(bbox)<=0):\n", - " continue\n", - " #print(bbox.shape)\n", - " _, inds = nms_wrapper.nms(bbox, thresh)\n", - " # print(len(inds))\n", - " ann[name]['bbox'][cls] = bbox[inds]\n", - " ann[name]['vis'][cls] = vis[inds]\n", - " return ann\n", - "thresh=0.5\n", - "# result = copy.deepcopy(ann)\n", - "ann = mmcv.load(\"./result/eval2_temp.pkl\")\n", - "result2 = nms(ann, thresh)\n", - "mmcv.dump(result2, \"./result/eval2_postnms.pkl\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### generate file" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "ff62445202f14be183409e0794d29b2e", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "HBox(children=(IntProgress(value=0, max=593), HTML(value='')))" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "tennis-court\n", - "1151\n", - "container-crane\n", - "71\n", - "storage-tank\n", - "4250\n", - "baseball-diamond\n", - "638\n", - "plane\n", - "3961\n", - "ground-track-field\n", - "670\n", - "helicopter\n", - "293\n", - "airport\n", - "211\n", - "harbor\n", - "5835\n", - "ship\n", - "19647\n", - "large-vehicle\n", - "15893\n", - "swimming-pool\n", - "1892\n", - "soccer-ball-field\n", - "484\n", - "roundabout\n", - "865\n", - "basketball-court\n", - "515\n", - "bridge\n", - "2304\n", - "small-vehicle\n", - "58979\n", - "helipad\n", - "1\n" - ] - } - ], - "source": [ - "result2 = mmcv.load(\"./result/eval2_postnms.pkl\")\n", - "names = list(result2.keys())\n", - "res = { CLASSES[cls]: [] for cls in range(len(dataset.CLASSES)) }\n", - "for name in tqdm(names):\n", - " result = result2[name]\n", - " bboxes = result[\"bbox\"]\n", - " segs = result['vis']\n", - " for cls in range(len(dataset.CLASSES)):\n", - " curr_class = CLASSES[cls]\n", - " bbox_cls = bboxes[cls]\n", - " seg_cls = segs[cls]\n", - " if( len(bbox_cls) > 0):\n", - " for bbox, rle in zip(bbox_cls, seg_cls):\n", - " rle = np.array(rle)\n", - " xmin, ymin, xmax, ymax, score = bbox\n", - " location = list(rle.flatten())\n", - " location = [str(int(x)) for x in location]\n", - " if(score<0.05):\n", - " continue\n", - " out = name + \" \"+str(score)+ \" \"+\" \".join(location)\n", - " res[curr_class].append(out)\n", - "for key in res.keys():\n", - " print(key)\n", - " fp = open(\"./result/val_temp/\"+key+\".txt\", 'w')\n", - " print(len(res[key]))\n", - " for line in res[key]:\n", - " fp.write(line+\"\\n\")\n", - " fp.close()" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "from shapely.geometry import *\n", - "import poly.polyiou as polyiou\n", - "def voc_ap(rec, prec, use_07_metric=False):\n", - " \"\"\" ap = voc_ap(rec, prec, [use_07_metric])\n", - " Compute VOC AP given precision and recall.\n", - " If use_07_metric is true, uses the\n", - " VOC 07 11 point method (default:False).\n", - " \"\"\"\n", - " if use_07_metric:\n", - " # 11 point metric\n", - " ap = 0.\n", - " for t in np.arange(0., 1.1, 0.1):\n", - " if np.sum(rec >= t) == 0:\n", - " p = 0\n", - " else:\n", - " p = np.max(prec[rec >= t])\n", - " ap = ap + p / 11.\n", - " else:\n", - " # correct AP calculation\n", - " # first append sentinel values at the end\n", - " # first appicend sentinel values at the end\n", - " mrec = np.concatenate(([0.], rec, [1.]))\n", - " mpre = np.concatenate(([0.], prec, [0.]))\n", - "\n", - " # compute the precision envelope\n", - " for i in range(mpre.size - 1, 0, -1):\n", - " mpre[i - 1] = np.maximum(mpre[i - 1], mpre[i])\n", - "\n", - " # to calculate area under PR curve, look for points\n", - " # where X axis (recall) changes value\n", - " i = np.where(mrec[1:] != mrec[:-1])[0]\n", - "\n", - " # and sum (\\Delta recall) * prec\n", - " ap = np.sum((mrec[i + 1] - mrec[i]) * mpre[i + 1])\n", - " return ap\n", - "def no_overlap(a, b):\n", - " xmin, xmax, ymin, ymax = a\n", - " gxmin, gxmax, gymin, gymax = b\n", - " if(xmax < gxmin or ymin > gymax or gxmax < xmin or gymin > ymax):\n", - " return True\n", - " else:\n", - " return False\n", - "def eval(classname, detpath, ovthresh, coco):\n", - " CLASS=['tennis-court', 'container-crane', 'storage-tank', 'baseball-diamond', 'plane', 'ground-track-field', 'helicopter', 'airport', 'harbor', 'ship', 'large-vehicle', 'swimming-pool', 'soccer-ball-field', 'roundabout', 'basketball-court', 'bridge', 'small-vehicle', 'helipad']\n", - " #CLASS={'tennis-court', 'container-crane', 'storage-tank', 'baseball-diamond', 'plane', 'ground-track-field', 'helicopter', 'airport', 'harbor', 'ship', 'large-vehicle', 'swimming-pool', 'soccer-ball-field', 'roundabout', 'basketball-court', 'bridge', 'small-vehicle', 'helipad'}\n", - " class_to_ind = dict(zip(CLASS, range(len(CLASS))))\n", - " imgIds = coco.getImgIds()\n", - " recs = {}\n", - " use_07_metric = False\n", - " for imgid in imgIds:\n", - " img = coco.loadImgs(imgid)[0]\n", - " file_name = img['file_name']\n", - " file_name = file_name.split(\".\")[0]\n", - " annIds = coco.getAnnIds(imgIds=[imgid], iscrowd=None)\n", - " anns = coco.loadAnns(annIds)\n", - " objects = []\n", - " for ann in anns:\n", - " obj = {}\n", - " obj['name'] = CLASS[ann['category_id']]\n", - " obj['bbox'] = ann['segmentation']\n", - " objects.append(obj)\n", - " recs[file_name] = objects\n", - " class_recs = {}\n", - " npos = 0\n", - " for filename in list(recs.keys()):\n", - " R = [obj for obj in recs[filename] if obj['name'] == classname]\n", - " bbox = np.array([x['bbox'] for x in R])\n", - " bbox = np.reshape(np.squeeze(bbox),(-1,4, 2))\n", - " det = [False] * len(R)\n", - " npos = npos + len(bbox)\n", - " class_recs[filename] = {'bbox': bbox,\n", - " 'det': det}\n", - " detfile = detpath.format(classname)\n", - " with open(detfile, 'r') as f:\n", - " lines = f.readlines()\n", - "\n", - " splitlines = [x.strip().split(' ') for x in lines]\n", - " image_ids = [x[0] for x in splitlines]\n", - " confidence = np.array([float(x[1]) for x in splitlines])\n", - " BB = np.array([[float(z) for z in x[2:]] for x in splitlines])\n", - " BB = np.reshape(BB, (-1, 4, 2))\n", - " nd = len(image_ids)\n", - " tp = np.zeros(nd)\n", - " fp = np.zeros(nd)\n", - " if BB.shape[0] > 0:\n", - " # sort by confidence\n", - " sorted_ind = np.argsort(-confidence)\n", - " sorted_scores = np.sort(-confidence)\n", - " BB = BB[sorted_ind, :]\n", - " image_ids = [image_ids[x] for x in sorted_ind]\n", - "\n", - " # go down dets and mark TPs and FPs\n", - " for d in tqdm(range(nd)):\n", - " R = class_recs[image_ids[d]]\n", - " bb = BB[d, :].astype(float).flatten()\n", - " ovmax = -np.inf\n", - " BBGT = R['bbox'].astype(float).reshape(-1,8)\n", - " if BBGT.size > 0:\n", - " # compute overlaps\n", - " # intersection\n", - " BBGT_xmin = np.min(BBGT[:, 0::2], axis=1)\n", - " BBGT_ymin = np.min(BBGT[:, 1::2], axis=1)\n", - " BBGT_xmax = np.max(BBGT[:, 0::2], axis=1)\n", - " BBGT_ymax = np.max(BBGT[:, 1::2], axis=1)\n", - " bb_xmin = np.min(bb[0::2])\n", - " bb_ymin = np.min(bb[1::2])\n", - " bb_xmax = np.max(bb[0::2])\n", - " bb_ymax = np.max(bb[1::2])\n", - "\n", - " ixmin = np.maximum(BBGT_xmin, bb_xmin)\n", - " iymin = np.maximum(BBGT_ymin, bb_ymin)\n", - " ixmax = np.minimum(BBGT_xmax, bb_xmax)\n", - " iymax = np.minimum(BBGT_ymax, bb_ymax)\n", - " iw = np.maximum(ixmax - ixmin + 1., 0.)\n", - " ih = np.maximum(iymax - iymin + 1., 0.)\n", - " inters = iw * ih\n", - "\n", - " # union\n", - " uni = ((bb_xmax - bb_xmin + 1.) * (bb_ymax - bb_ymin + 1.) +\n", - " (BBGT_xmax - BBGT_xmin + 1.) *\n", - " (BBGT_ymax - BBGT_ymin + 1.) - inters)\n", - "\n", - " overlaps = inters / uni\n", - "\n", - " BBGT_keep_mask = overlaps > 0\n", - " BBGT_keep = BBGT[BBGT_keep_mask, :]\n", - " BBGT_keep_index = np.where(overlaps > 0)[0]\n", - " \n", - " \n", - " \n", - " def calcoverlaps(BBGT_keep, bb):\n", - " overlaps = []\n", - " for index, GT in enumerate(BBGT_keep):\n", - "\n", - " overlap = polyiou.iou_poly(polyiou.VectorDouble(BBGT_keep[index]), polyiou.VectorDouble(bb))\n", - " overlaps.append(overlap)\n", - " return overlaps\n", - " if len(BBGT_keep) > 0:\n", - " overlaps = calcoverlaps(BBGT_keep, bb)\n", - "\n", - " ovmax = np.max(overlaps)\n", - " jmax = np.argmax(overlaps)\n", - " # pdb.set_trace()\n", - " jmax = BBGT_keep_index[jmax]\n", - "\n", - " if ovmax > ovthresh:\n", - " if not R['det'][jmax]:\n", - " tp[d] = 1.\n", - " R['det'][jmax] = 1\n", - " else:\n", - " fp[d] = 1.\n", - " else:\n", - " fp[d] = 1.\n", - " fp = np.cumsum(fp)\n", - " tp = np.cumsum(tp)\n", - " rec = tp / float(npos)\n", - " # avoid divide by zero in case the first detection matches a difficult\n", - " # ground truth\n", - " prec = tp / np.maximum(tp + fp, np.finfo(np.float64).eps)\n", - " ap = voc_ap(rec, prec, use_07_metric)\n", - " print(\"ap of {} is {}\".format(classname, ap))\n", - " return ap" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "loading annotations into memory...\n", - "Done (t=5.37s)\n", - "creating index...\n", - "index created!\n" - ] - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "540faf519407441cb74c3d4dfb536507", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "HBox(children=(IntProgress(value=0, max=18), HTML(value='')))" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "ap of container-crane is 0.0\n", - "ap of tennis-court is 0.9471871184162259\n", - "ap of helicopter is 0.5587836717732454\n", - "ap of ground-track-field is 0.7358625689552859\n", - "ap of baseball-diamond is 0.7624642192899145\n", - "ap of airport is 0.7976206570793456\n", - "ap of swimming-pool is 0.5597168047738967\n", - "ap of storage-tank is 0.6314881477347973\n", - "ap of plane is 0.8977405909719963\n", - "ap of harbor is 0.7361267138683685\n", - "ap of large-vehicle is 0.7679770589594814\n", - "ap of roundabout is 0.6299256796308623\n", - "ap of bridge is 0.4567274136151177\n", - "ap of soccer-ball-field is 0.5836499359971897\n", - "ap of basketball-court is 0.6849244231323451\n", - "ap of ship is 0.8601033785809702\n", - "ap of helipad is 0.0\n", - "ap of small-vehicle is 0.4676732700743925\n", - "map is 0.6154428696029686\n" - ] - } - ], - "source": [ - "from multiprocessing import Pool\n", - "p.close()\n", - "p.join()\n", - "p = Pool(18)\n", - "detpath=\"./result/val_temp/{}.txt\"\n", - "CLASS=['tennis-court', 'container-crane', 'storage-tank', 'baseball-diamond', 'plane', 'ground-track-field', 'helicopter', 'airport', 'harbor', 'ship', 'large-vehicle', 'swimming-pool', 'soccer-ball-field', 'roundabout', 'basketball-court', 'bridge', 'small-vehicle', 'helipad']\n", - "ovthresh = 0.5\n", - "aps = []\n", - "coco=COCO(\"/home/xfr/rssid/data/annotation/annos_rscup_val.json\")\n", - "for classname in tqdm(CLASS):\n", - " aps.append(p.apply_async(eval, args=(classname, detpath, ovthresh, coco)))\n", - "# ap = eval(classname, detpath, ovthresh, coco)\n", - "# ret.append(ap)\n", - "ret = []\n", - "for ap in aps:\n", - " ret.append(ap.get())\n", - "print(\"map is {}\".format(np.mean(np.array(ret))))\n", - "p.close()\n", - "p.join()" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "loading annotations into memory...\n", - "Done (t=0.42s)\n", - "creating index...\n", - "index created!\n" - ] - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "ab17b4052e4f4d6dab592f34fca8a5cf", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "HBox(children=(IntProgress(value=0, max=593), HTML(value='')))" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n" - ] - } - ], - "source": [ - "result2 = mmcv.load(\"./result/eval_postnms.pkl\")\n", - "ann = result2\n", - "cfg = mmcv.Config.fromfile(\"configs/rs_test.py\")\n", - "dataset = build_dataset(cfg.data.val)\n", - "for idx in tqdm(range(len(dataset))):\n", - " img_info = dataset.img_infos[idx]\n", - " img = cv2.imread(\"/home/xfr/rssid/data/val/images/\"+img_info['filename'])\n", - " filename = img_info['filename'].split(\".\")[0]\n", - " info = ann[filename]\n", - " seg = info['vis']\n", - " box = info['bbox']\n", - " for cls in range(len(dataset.CLASSES)):\n", - " polys = seg[cls]\n", - " boxes = box[cls]\n", - " for poly, b in zip(polys, boxes):\n", - " temp = np.array([poly], np.int32)\n", - " cv2.putText(img, CLASSES[cls], (int(b[0]), int(b[1])), cv2.FONT_HERSHEY_COMPLEX, 1, (0, 0, 255), 2)\n", - " cv2.polylines(img, temp, 1, (0, 255, 0), 1)\n", - " cv2.imwrite(\"./result/val/{}\".format(filename)+\".jpg\", img)" - ] - }, - { - "cell_type": "code", - "execution_count": 77, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "import mmcv\n", - "import numpy as np\n", - "from pycocotools.coco import COCO\n", - "from pycocotools.cocoeval import COCOeval\n", - "\n", - "\n", - "def coco_eval(result_files, result_types, coco, max_dets=(100, 300, 1000)):\n", - " for res_type in result_types:\n", - " assert res_type in [\n", - " 'proposal', 'proposal_fast', 'bbox', 'segm', 'keypoints'\n", - " ]\n", - "\n", - " if mmcv.is_str(coco):\n", - " coco = COCO(coco)\n", - " assert isinstance(coco, COCO)\n", - "\n", - " if result_types == ['proposal_fast']:\n", - " ar = fast_eval_recall(result_files, coco, np.array(max_dets))\n", - " for i, num in enumerate(max_dets):\n", - " print('AR@{}\\t= {:.4f}'.format(num, ar[i]))\n", - " return\n", - "\n", - " for res_type in result_types:\n", - " result_file = result_files[res_type]\n", - " assert result_file.endswith('.json')\n", - "\n", - " coco_dets = coco.loadRes(result_file)\n", - " \n", - " img_ids = coco.getImgIds()\n", - " iou_type = 'bbox' if res_type == 'proposal' else res_type\n", - " cocoEval = COCOeval(coco, coco_dets, iou_type)\n", - "# for cls in range(18):\n", - "# cocoEval.params.catIds = [cls]\n", - "# print(cocoEval.params)\n", - "# print(\"------------------------------------------\",CLASSES[cls],\"----------------------------------------------\")\n", - " cocoEval.params.imgIds = img_ids\n", - " cocoEval.params.maxDets = [100, 100, 100]\n", - " if res_type == 'proposal':\n", - " cocoEval.params.useCats = 0\n", - " cocoEval.params.maxDets = list(max_dets)\n", - "\n", - " cocoEval.evaluate()\n", - " cocoEval.accumulate()\n", - " cocoEval.summarize()\n" - ] - }, - { - "cell_type": "code", - "execution_count": 47, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "loading annotations into memory...\n", - "Done (t=0.46s)\n", - "creating index...\n", - "index created!\n" - ] - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "98f574b0af4446e5a7cdaea0c2d2a966", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "HBox(children=(IntProgress(value=0, max=593), HTML(value='')))" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n" - ] - } - ], - "source": [ - "ann = mmcv.load(\"./result/eval_temp.pkl\")\n", - "cfg = mmcv.Config.fromfile(\"configs/rs_test.py\")\n", - "dataset = build_dataset(cfg.data.val)\n", - "for idx in tqdm(range(len(dataset))):\n", - " img_info = dataset.img_infos[idx]\n", - " img = cv2.imread(\"/home/xfr/rssid/data/val/images/\"+img_info['filename'])\n", - " filename = img_info['filename'].split(\".\")[0]\n", - " info = ann[filename]\n", - " seg = info['vis']\n", - " for cls in range(len(dataset.CLASSES)):\n", - " polys = seg[cls]\n", - " for poly in polys:\n", - " temp = np.array([poly], np.int32)\n", - " cv2.polylines(img, temp, 1, (0, 255, 0), 1)\n", - " cv2.imwrite(\"./result/prenms/{}\".format(filename)+\".jpg\", img)" - ] - }, - { - "cell_type": "code", - "execution_count": 78, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "loading annotations into memory...\n", - "Done (t=1.44s)\n", - "creating index...\n", - "index created!\n", - "Loading and preparing results...\n", - "DONE (t=2.70s)\n", - "creating index...\n", - "index created!\n", - "Running per image evaluation...\n", - "Evaluate annotation type *segm*\n", - "DONE (t=184.62s).\n", - "Accumulating evaluation results...\n", - "DONE (t=1.54s).\n", - " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.327\n", - " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.564\n", - " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.338\n", - " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.196\n", - " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.357\n", - " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.478\n", - " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.398\n", - " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.398\n", - " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.398\n", - " Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.268\n", - " Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.425\n", - " Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.573\n" - ] - } - ], - "source": [ - "from mmdet.core import results2json\n", - "outputs = []\n", - "ann = mmcv.load(\"postnms.pkl\")\n", - "cfg = mmcv.Config.fromfile(\"configs/rs_test.py\")\n", - "dataset = build_dataset(cfg.data.val)\n", - "for idx in range(len(dataset)):\n", - " img_info = dataset.img_infos[idx]\n", - " filename = img_info['filename'].split(\".\")[0]\n", - " if filename not in ann:\n", - " #print(filename)\n", - " ann[filename] = {\"bbox\": [np.array([]) for i in range(len(dataset.CLASSES))], \"seg\":[[] for i in range(len(dataset.CLASSES))]}\n", - " info = ann[filename]\n", - " #print(info['seg'][0])\n", - " m = np.array(info['bbox'])\n", - " for i in range(len(m)):\n", - " m[i] = np.array(m[i])\n", - " temp = (m, info['seg'])\n", - " outputs.append(temp)\n", - "result_files = results2json(dataset, outputs, \"xx\")\n", - "coco_eval(result_files, ['segm'], dataset.coco)" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "loading annotations into memory...\n", - "Done (t=1.20s)\n", - "creating index...\n", - "index created!\n" - ] - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "3f401cba14b44c4a9657471e3646a1de", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "HBox(children=(IntProgress(value=0, max=18), HTML(value='')))" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "1edc604a2c9d4f1b8deb8449f8f768a2", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "HBox(children=(IntProgress(value=0, max=966), HTML(value='')))" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "ap of tennis-court is 0.9461078239129896\n", - "ap of tennis-court is 0.9461078239129896\n" - ] - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "23ac2984c16f492e8c398bedbfde933d", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "HBox(children=(IntProgress(value=0, max=49), HTML(value='')))" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "ap of container-crane is 0.011904761904761904\n", - "ap of container-crane is 0.011904761904761904\n" - ] - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "4a2181e6d98d41b1a339a5c2411f70fb", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "HBox(children=(IntProgress(value=0, max=3192), HTML(value='')))" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "ap of storage-tank is 0.6423659993901099\n", - "ap of storage-tank is 0.6423659993901099\n" - ] - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "7576917d99814b9e807ca0a8a6129e60", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "HBox(children=(IntProgress(value=0, max=408), HTML(value='')))" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "ap of baseball-diamond is 0.8416521148635843\n", - "ap of baseball-diamond is 0.8416521148635843\n" - ] - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "07860c026ead4ab1adfb0223b15d6391", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "HBox(children=(IntProgress(value=0, max=3289), HTML(value='')))" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "ap of plane is 0.9075101643210136\n", - "ap of plane is 0.9075101643210136\n" - ] - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "124e69f94958463eae22b43d633c01c6", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "HBox(children=(IntProgress(value=0, max=394), HTML(value='')))" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "ap of ground-track-field is 0.8132392946479243\n", - "ap of ground-track-field is 0.8132392946479243\n" - ] - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "8b4fecd7e7a147a1b4632751c1cddbf8", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "HBox(children=(IntProgress(value=0, max=187), HTML(value='')))" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "ap of helicopter is 0.6585310938833637\n", - "ap of helicopter is 0.6585310938833637\n" - ] - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "a33830d425a847de8941d545710cc3f5", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "HBox(children=(IntProgress(value=0, max=310), HTML(value='')))" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "ap of airport is 0.5767733008167736\n", - "ap of airport is 0.5767733008167736\n" - ] - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "c616483e2fa944df8af1fd5ca300067c", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "HBox(children=(IntProgress(value=0, max=5202), HTML(value='')))" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "ap of harbor is 0.7092265062662213\n", - "ap of harbor is 0.7092265062662213\n" - ] - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "9700b3b9cf9f4ecaa0a64ac01248e583", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "HBox(children=(IntProgress(value=0, max=19504), HTML(value='')))" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "ap of ship is 0.85020379116034\n", - "ap of ship is 0.85020379116034\n" - ] - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "82253f93319846288a2506ef2285463f", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "HBox(children=(IntProgress(value=0, max=13016), HTML(value='')))" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "ap of large-vehicle is 0.7728940465363776\n", - "ap of large-vehicle is 0.7728940465363776\n" - ] - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "8ba9458be867484a84f951edbcc4bc76", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "HBox(children=(IntProgress(value=0, max=1442), HTML(value='')))" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "ap of swimming-pool is 0.5635800413204949\n", - "ap of swimming-pool is 0.5635800413204949\n" - ] - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "334c3556e3f44d32a29365d52ae6edaa", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "HBox(children=(IntProgress(value=0, max=333), HTML(value='')))" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "ap of soccer-ball-field is 0.6242170684009745\n", - "ap of soccer-ball-field is 0.6242170684009745\n" - ] - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "2ccfe97c1e7e4a599fa1317f2985c5f9", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "HBox(children=(IntProgress(value=0, max=414), HTML(value='')))" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "ap of roundabout is 0.6920844814776893\n", - "ap of roundabout is 0.6920844814776893\n" - ] - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "d875476935094b31a10fa08e7c819a9d", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "HBox(children=(IntProgress(value=0, max=377), HTML(value='')))" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "ap of basketball-court is 0.6834833805051985\n", - "ap of basketball-court is 0.6834833805051985\n" - ] - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "35031edb509a44aabc74c607647afb1d", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "HBox(children=(IntProgress(value=0, max=1238), HTML(value='')))" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "ap of bridge is 0.4487948537678508\n", - "ap of bridge is 0.4487948537678508\n" - ] - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "7e54e399fa604f4892783aa55593801d", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "HBox(children=(IntProgress(value=0, max=47524), HTML(value='')))" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "ap of small-vehicle is 0.4905447846177097\n", - "ap of small-vehicle is 0.4905447846177097\n", - "ap of helipad is 0.0\n", - "ap of helipad is 0.0\n", - "\n", - "map is 0.6240618615440766\n" - ] - } - ], - "source": [ - "detpath=\"./result/val_temp/{}.txt\"\n", - "CLASS=['tennis-court', 'container-crane', 'storage-tank', 'baseball-diamond', 'plane', 'ground-track-field', 'helicopter', 'airport', 'harbor', 'ship', 'large-vehicle', 'swimming-pool', 'soccer-ball-field', 'roundabout', 'basketball-court', 'bridge', 'small-vehicle', 'helipad']\n", - "ovthresh = 0.5\n", - "aps = []\n", - "coco=COCO(\"/home/xfr/rssid/data/annotation/annos_rscup_val.json\")\n", - "for classname in tqdm(CLASS):\n", - " ap = eval(classname, detpath, ovthresh, coco)\n", - " print(\"ap of {} is {}\".format(classname, ap))\n", - " aps.append(ap)\n", - "aps = np.array(aps)\n", - "print(\"map is {}\".format(np.mean(aps)))" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [ - { - "ename": "NameError", - "evalue": "name 'long_time_task' is not defined", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0mp\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mPool\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m5\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 4\u001b[0;31m \u001b[0mp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mapply_async\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlong_time_task\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 5\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'Waiting for all subprocesses done...'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[0mp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mclose\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mNameError\u001b[0m: name 'long_time_task' is not defined" - ] - } - ], - "source": [ - "from multiprocessing import Pool\n", - "p = Pool()\n", - "for i in range(5):\n", - " p.apply_async(long_time_task, args=(i,))\n", - " print('Waiting for all subprocesses done...')\n", - " p.close()\n", - " p.join()\n", - " print('All subprocesses done.')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "from shapely.geometry import *\n", - "import copy\n", - "import time\n", - "def py_cpu_pnms(dets, pts, thresh):\n", - " dets = np.array(dets)\n", - " pts = np.array(pts)\n", - " scores = dets[:, 4]\n", - " order = scores.argsort()[::-1]\n", - " areas = np.zeros(scores.shape)\n", - " inter_areas = np.zeros((scores.shape[0], scores.shape[0]))\n", - " for il in range(len(pts)):\n", - " poly = Polygon(pts[il])\n", - " areas[il] = poly.area\n", - " for jl in range(il, len(pts)):\n", - " polyj = Polygon(pts[jl])\n", - " inS = poly.intersection(polyj)\n", - " inter_areas[il][jl] = inS.area\n", - " inter_areas[jl][il] = inS.area\n", - "\n", - " keep = []\n", - " while order.size > 0:\n", - " i = order[0]\n", - " keep.append(i)\n", - " ovr = inter_areas[i][order[1:]] / (areas[i] + areas[order[1:]] - inter_areas[i][order[1:]])\n", - " inds = np.where(ovr <= thresh)[0]\n", - " order = order[inds + 1]\n", - " return np.array(keep, np.int32)\n", - "def nms(ann, thresh):\n", - " \n", - " for name in tqdm(ann.keys()):\n", - " info = ann[name]\n", - " for cls in range(len(dataset.CLASSES)):\n", - " bbox = np.array(info['bbox'][cls])\n", - " \n", - " seg = np.array(info['seg'][cls])\n", - " vis = np.array(info['vis'][cls])\n", - " if(len(bbox)<=0):\n", - " continue\n", - " t1 = time.time()\n", - " h, w = seg[0]['size']\n", - " bbox_result = []\n", - " seg_result = []\n", - " vis_result = []\n", - " tm = time.time()\n", - " maps = np.zeros((h, w))\n", - " for box in bbox:\n", - " xmin, ymin, xmax, ymax , score = box\n", - " maps[int(ymin):int(ymax), int(xmin):int(xmax)] = 1\n", - "# for a in seg:\n", - "# m = MASK.decode(a)\n", - "# maps.append(m)\n", - "# maps = np.sum(np.array(maps), axis=0)\n", - "# maps[maps>=1] = 1\n", - " tn = time.time()\n", - " kernel = np.ones((5,5),np.uint8) \n", - " maps = cv2.dilate(maps,kernel,iterations = 1)\n", - " contours, hierarchy = cv2.findContours((maps).astype(np.uint8), cv2.RETR_TREE,\n", - " cv2.CHAIN_APPROX_SIMPLE)\n", - " for contour in contours:\n", - " xmin, ymin, w, h = cv2.boundingRect(contour)\n", - " xmax = xmin+w\n", - " ymax = ymin+h\n", - " region_box = []\n", - " region_mask = []\n", - " region_vis = []\n", - " for i, bb in enumerate(bbox):\n", - " if(bb[0]>=xmin and bb[1]>=ymin and bb[2]<=xmax and bb[3]<=ymax):\n", - " region_box.append(bbox[i])\n", - " region_mask.append(seg[i])\n", - " region_vis.append(vis[i])\n", - " if(len(region_box) <= 0):\n", - " continue\n", - " keep_ind = py_cpu_pnms(region_box, region_vis, thresh)\n", - " bbox_result += list(np.array(region_box)[keep_ind])\n", - " seg_result += list(np.array(region_mask)[keep_ind])\n", - " vis_result += list(np.array(region_vis)[keep_ind])\n", - " ann[name]['bbox'][cls] = bbox_result\n", - " ann[name]['seg'][cls] = seg_result\n", - " ann[name]['vis'][cls] = vis_result\n", - " t2 = time.time()\n", - " \n", - " return ann\n", - "thresh=0.5\n", - "# result = copy.deepcopy(ann)\n", - "ann = mmcv.load(\"eval_temp.pkl\")\n", - "result = nms(ann, thresh)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "loading annotations into memory...\n", - "Done (t=0.14s)\n", - "creating index...\n", - "index created!\n", - "loading annotations into memory...\n", - "Done (t=0.08s)\n", - "creating index...\n", - "index created!\n" - ] - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "167233bccfd04c0aa683557c444d6d73", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "HBox(children=(IntProgress(value=0, max=36909), HTML(value='')))" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'license': 1, 'file_name': 'P0814_0.5_226.0_0.0_0part1.jpg', 'coco_url': 'xxx', 'height': 275, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 0, 'filename': 'P0814_0.5_226.0_0.0_0part1.jpg'}\n", - "{'license': 1, 'file_name': 'P0814_0.5_0.0_0.0_0part2.jpg', 'coco_url': 'xxx', 'height': 275, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 1, 'filename': 'P0814_0.5_0.0_0.0_0part2.jpg'}\n", - "{'license': 1, 'file_name': 'P0814_0.5_226.0_0.0_0part3.jpg', 'coco_url': 'xxx', 'height': 275, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 2, 'filename': 'P0814_0.5_226.0_0.0_0part3.jpg'}\n", - "{'license': 1, 'file_name': 'P0814_0.5_0.0_0.0_0part4.jpg', 'coco_url': 'xxx', 'height': 275, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 3, 'filename': 'P0814_0.5_0.0_0.0_0part4.jpg'}\n", - "{'license': 1, 'file_name': 'P0814_1_964.0_0.0_0part1.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 4, 'filename': 'P0814_1_964.0_0.0_0part1.jpg'}\n", - "{'license': 1, 'file_name': 'P0814_1_0.0_39.0_0part2.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 5, 'filename': 'P0814_1_0.0_39.0_0part2.jpg'}\n", - "{'license': 1, 'file_name': 'P0814_1_964.0_39.0_0part3.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 6, 'filename': 'P0814_1_964.0_39.0_0part3.jpg'}\n", - "{'license': 1, 'file_name': 'P0814_1_0.0_0.0_0part4.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 7, 'filename': 'P0814_1_0.0_0.0_0part4.jpg'}\n", - "{'license': 1, 'file_name': 'P0814_1_416.0_0.0_0part5.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 8, 'filename': 'P0814_1_416.0_0.0_0part5.jpg'}\n", - "{'license': 1, 'file_name': 'P0814_1_832.0_0.0_0part6.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 9, 'filename': 'P0814_1_832.0_0.0_0part6.jpg'}\n", - "{'license': 1, 'file_name': 'P0814_1_963.0_0.0_0part7.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 10, 'filename': 'P0814_1_963.0_0.0_0part7.jpg'}\n", - "{'license': 1, 'file_name': 'P0814_1_0.0_38.0_0part8.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 11, 'filename': 'P0814_1_0.0_38.0_0part8.jpg'}\n", - "{'license': 1, 'file_name': 'P0814_1_416.0_38.0_0part9.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 12, 'filename': 'P0814_1_416.0_38.0_0part9.jpg'}\n", - "{'license': 1, 'file_name': 'P0814_1_832.0_38.0_0part10.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 13, 'filename': 'P0814_1_832.0_38.0_0part10.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_0.5_1488.0_0.0_0part1.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 14, 'filename': 'P1314_0.5_1488.0_0.0_0part1.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_0.5_0.0_1488.0_0part2.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 15, 'filename': 'P1314_0.5_0.0_1488.0_0part2.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_0.5_1488.0_1488.0_0part3.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 16, 'filename': 'P1314_0.5_1488.0_1488.0_0part3.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_0.5_0.0_0.0_0part4.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 17, 'filename': 'P1314_0.5_0.0_0.0_0part4.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_0.5_0.0_416.0_0part5.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 18, 'filename': 'P1314_0.5_0.0_416.0_0part5.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_0.5_0.0_832.0_0part6.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 19, 'filename': 'P1314_0.5_0.0_832.0_0part6.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_0.5_0.0_1248.0_0part7.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 20, 'filename': 'P1314_0.5_0.0_1248.0_0part7.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_0.5_416.0_0.0_0part8.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 21, 'filename': 'P1314_0.5_416.0_0.0_0part8.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_0.5_416.0_416.0_0part9.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 22, 'filename': 'P1314_0.5_416.0_416.0_0part9.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_0.5_416.0_832.0_0part10.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 23, 'filename': 'P1314_0.5_416.0_832.0_0part10.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_0.5_416.0_1248.0_0part11.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 24, 'filename': 'P1314_0.5_416.0_1248.0_0part11.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_0.5_832.0_0.0_0part12.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 25, 'filename': 'P1314_0.5_832.0_0.0_0part12.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_0.5_832.0_416.0_0part13.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 26, 'filename': 'P1314_0.5_832.0_416.0_0part13.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_0.5_832.0_832.0_0part14.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 27, 'filename': 'P1314_0.5_832.0_832.0_0part14.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_0.5_832.0_1248.0_0part15.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 28, 'filename': 'P1314_0.5_832.0_1248.0_0part15.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_0.5_1248.0_0.0_0part16.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 29, 'filename': 'P1314_0.5_1248.0_0.0_0part16.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_0.5_1248.0_416.0_0part17.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 30, 'filename': 'P1314_0.5_1248.0_416.0_0part17.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_0.5_1248.0_832.0_0part18.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 31, 'filename': 'P1314_0.5_1248.0_832.0_0part18.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_0.5_1248.0_1248.0_0part19.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 32, 'filename': 'P1314_0.5_1248.0_1248.0_0part19.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_0.5_1487.0_0.0_0part20.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 33, 'filename': 'P1314_0.5_1487.0_0.0_0part20.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_0.5_1487.0_416.0_0part21.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 34, 'filename': 'P1314_0.5_1487.0_416.0_0part21.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_0.5_1487.0_832.0_0part22.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 35, 'filename': 'P1314_0.5_1487.0_832.0_0part22.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_0.5_1487.0_1248.0_0part23.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 36, 'filename': 'P1314_0.5_1487.0_1248.0_0part23.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_0.5_0.0_1487.0_0part24.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 37, 'filename': 'P1314_0.5_0.0_1487.0_0part24.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_0.5_416.0_1487.0_0part25.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 38, 'filename': 'P1314_0.5_416.0_1487.0_0part25.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_0.5_832.0_1487.0_0part26.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 39, 'filename': 'P1314_0.5_832.0_1487.0_0part26.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_0.5_1248.0_1487.0_0part27.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 40, 'filename': 'P1314_0.5_1248.0_1487.0_0part27.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_3488.0_0.0_0part1.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 41, 'filename': 'P1314_1_3488.0_0.0_0part1.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_0.0_3488.0_0part2.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 42, 'filename': 'P1314_1_0.0_3488.0_0part2.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_3488.0_3488.0_0part3.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 43, 'filename': 'P1314_1_3488.0_3488.0_0part3.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_0.0_0.0_0part4.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 44, 'filename': 'P1314_1_0.0_0.0_0part4.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_0.0_416.0_0part5.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 45, 'filename': 'P1314_1_0.0_416.0_0part5.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_0.0_832.0_0part6.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 46, 'filename': 'P1314_1_0.0_832.0_0part6.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_0.0_1248.0_0part7.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 47, 'filename': 'P1314_1_0.0_1248.0_0part7.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_0.0_1664.0_0part8.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 48, 'filename': 'P1314_1_0.0_1664.0_0part8.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_0.0_2080.0_0part9.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 49, 'filename': 'P1314_1_0.0_2080.0_0part9.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_0.0_2496.0_0part10.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 50, 'filename': 'P1314_1_0.0_2496.0_0part10.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_0.0_2912.0_0part11.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 51, 'filename': 'P1314_1_0.0_2912.0_0part11.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_0.0_3328.0_0part12.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 52, 'filename': 'P1314_1_0.0_3328.0_0part12.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_416.0_0.0_0part13.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 53, 'filename': 'P1314_1_416.0_0.0_0part13.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_416.0_416.0_0part14.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 54, 'filename': 'P1314_1_416.0_416.0_0part14.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_416.0_832.0_0part15.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 55, 'filename': 'P1314_1_416.0_832.0_0part15.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_416.0_1248.0_0part16.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 56, 'filename': 'P1314_1_416.0_1248.0_0part16.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_416.0_1664.0_0part17.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 57, 'filename': 'P1314_1_416.0_1664.0_0part17.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_416.0_2080.0_0part18.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 58, 'filename': 'P1314_1_416.0_2080.0_0part18.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_416.0_2496.0_0part19.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 59, 'filename': 'P1314_1_416.0_2496.0_0part19.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_416.0_2912.0_0part20.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 60, 'filename': 'P1314_1_416.0_2912.0_0part20.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_416.0_3328.0_0part21.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 61, 'filename': 'P1314_1_416.0_3328.0_0part21.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_832.0_0.0_0part22.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 62, 'filename': 'P1314_1_832.0_0.0_0part22.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_832.0_416.0_0part23.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 63, 'filename': 'P1314_1_832.0_416.0_0part23.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_832.0_832.0_0part24.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 64, 'filename': 'P1314_1_832.0_832.0_0part24.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_832.0_1248.0_0part25.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 65, 'filename': 'P1314_1_832.0_1248.0_0part25.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_832.0_1664.0_0part26.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 66, 'filename': 'P1314_1_832.0_1664.0_0part26.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_832.0_2080.0_0part27.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 67, 'filename': 'P1314_1_832.0_2080.0_0part27.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_832.0_2496.0_0part28.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 68, 'filename': 'P1314_1_832.0_2496.0_0part28.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_832.0_2912.0_0part29.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 69, 'filename': 'P1314_1_832.0_2912.0_0part29.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_832.0_3328.0_0part30.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 70, 'filename': 'P1314_1_832.0_3328.0_0part30.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_1248.0_0.0_0part31.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 71, 'filename': 'P1314_1_1248.0_0.0_0part31.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_1248.0_416.0_0part32.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 72, 'filename': 'P1314_1_1248.0_416.0_0part32.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_1248.0_832.0_0part33.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 73, 'filename': 'P1314_1_1248.0_832.0_0part33.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_1248.0_1248.0_0part34.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 74, 'filename': 'P1314_1_1248.0_1248.0_0part34.jpg'}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'license': 1, 'file_name': 'P1314_1_1248.0_1664.0_0part35.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 75, 'filename': 'P1314_1_1248.0_1664.0_0part35.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_1248.0_2080.0_0part36.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 76, 'filename': 'P1314_1_1248.0_2080.0_0part36.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_1248.0_2496.0_0part37.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 77, 'filename': 'P1314_1_1248.0_2496.0_0part37.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_1248.0_2912.0_0part38.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 78, 'filename': 'P1314_1_1248.0_2912.0_0part38.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_1248.0_3328.0_0part39.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 79, 'filename': 'P1314_1_1248.0_3328.0_0part39.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_1664.0_0.0_0part40.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 80, 'filename': 'P1314_1_1664.0_0.0_0part40.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_1664.0_416.0_0part41.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 81, 'filename': 'P1314_1_1664.0_416.0_0part41.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_1664.0_832.0_0part42.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 82, 'filename': 'P1314_1_1664.0_832.0_0part42.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_1664.0_1248.0_0part43.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 83, 'filename': 'P1314_1_1664.0_1248.0_0part43.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_1664.0_1664.0_0part44.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 84, 'filename': 'P1314_1_1664.0_1664.0_0part44.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_1664.0_2080.0_0part45.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 85, 'filename': 'P1314_1_1664.0_2080.0_0part45.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_1664.0_2496.0_0part46.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 86, 'filename': 'P1314_1_1664.0_2496.0_0part46.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_1664.0_2912.0_0part47.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 87, 'filename': 'P1314_1_1664.0_2912.0_0part47.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_1664.0_3328.0_0part48.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 88, 'filename': 'P1314_1_1664.0_3328.0_0part48.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_2080.0_0.0_0part49.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 89, 'filename': 'P1314_1_2080.0_0.0_0part49.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_2080.0_416.0_0part50.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 90, 'filename': 'P1314_1_2080.0_416.0_0part50.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_2080.0_832.0_0part51.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 91, 'filename': 'P1314_1_2080.0_832.0_0part51.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_2080.0_1248.0_0part52.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 92, 'filename': 'P1314_1_2080.0_1248.0_0part52.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_2080.0_1664.0_0part53.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 93, 'filename': 'P1314_1_2080.0_1664.0_0part53.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_2080.0_2080.0_0part54.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 94, 'filename': 'P1314_1_2080.0_2080.0_0part54.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_2080.0_2496.0_0part55.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 95, 'filename': 'P1314_1_2080.0_2496.0_0part55.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_2080.0_2912.0_0part56.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 96, 'filename': 'P1314_1_2080.0_2912.0_0part56.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_2080.0_3328.0_0part57.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 97, 'filename': 'P1314_1_2080.0_3328.0_0part57.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_2496.0_0.0_0part58.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 98, 'filename': 'P1314_1_2496.0_0.0_0part58.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_2496.0_416.0_0part59.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 99, 'filename': 'P1314_1_2496.0_416.0_0part59.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_2496.0_832.0_0part60.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 100, 'filename': 'P1314_1_2496.0_832.0_0part60.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_2496.0_1248.0_0part61.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 101, 'filename': 'P1314_1_2496.0_1248.0_0part61.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_2496.0_1664.0_0part62.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 102, 'filename': 'P1314_1_2496.0_1664.0_0part62.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_2496.0_2080.0_0part63.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 103, 'filename': 'P1314_1_2496.0_2080.0_0part63.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_2496.0_2496.0_0part64.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 104, 'filename': 'P1314_1_2496.0_2496.0_0part64.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_2496.0_2912.0_0part65.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 105, 'filename': 'P1314_1_2496.0_2912.0_0part65.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_2496.0_3328.0_0part66.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 106, 'filename': 'P1314_1_2496.0_3328.0_0part66.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_2912.0_0.0_0part67.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 107, 'filename': 'P1314_1_2912.0_0.0_0part67.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_2912.0_416.0_0part68.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 108, 'filename': 'P1314_1_2912.0_416.0_0part68.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_2912.0_832.0_0part69.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 109, 'filename': 'P1314_1_2912.0_832.0_0part69.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_2912.0_1248.0_0part70.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 110, 'filename': 'P1314_1_2912.0_1248.0_0part70.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_2912.0_1664.0_0part71.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 111, 'filename': 'P1314_1_2912.0_1664.0_0part71.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_2912.0_2080.0_0part72.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 112, 'filename': 'P1314_1_2912.0_2080.0_0part72.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_2912.0_2496.0_0part73.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 113, 'filename': 'P1314_1_2912.0_2496.0_0part73.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_2912.0_2912.0_0part74.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 114, 'filename': 'P1314_1_2912.0_2912.0_0part74.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_2912.0_3328.0_0part75.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 115, 'filename': 'P1314_1_2912.0_3328.0_0part75.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_3328.0_0.0_0part76.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 116, 'filename': 'P1314_1_3328.0_0.0_0part76.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_3328.0_416.0_0part77.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 117, 'filename': 'P1314_1_3328.0_416.0_0part77.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_3328.0_832.0_0part78.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 118, 'filename': 'P1314_1_3328.0_832.0_0part78.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_3328.0_1248.0_0part79.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 119, 'filename': 'P1314_1_3328.0_1248.0_0part79.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_3328.0_1664.0_0part80.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 120, 'filename': 'P1314_1_3328.0_1664.0_0part80.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_3328.0_2080.0_0part81.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 121, 'filename': 'P1314_1_3328.0_2080.0_0part81.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_3328.0_2496.0_0part82.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 122, 'filename': 'P1314_1_3328.0_2496.0_0part82.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_3328.0_2912.0_0part83.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 123, 'filename': 'P1314_1_3328.0_2912.0_0part83.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_3328.0_3328.0_0part84.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 124, 'filename': 'P1314_1_3328.0_3328.0_0part84.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_3487.0_0.0_0part85.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 125, 'filename': 'P1314_1_3487.0_0.0_0part85.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_3487.0_416.0_0part86.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 126, 'filename': 'P1314_1_3487.0_416.0_0part86.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_3487.0_832.0_0part87.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 127, 'filename': 'P1314_1_3487.0_832.0_0part87.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_3487.0_1248.0_0part88.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 128, 'filename': 'P1314_1_3487.0_1248.0_0part88.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_3487.0_1664.0_0part89.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 129, 'filename': 'P1314_1_3487.0_1664.0_0part89.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_3487.0_2080.0_0part90.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 130, 'filename': 'P1314_1_3487.0_2080.0_0part90.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_3487.0_2496.0_0part91.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 131, 'filename': 'P1314_1_3487.0_2496.0_0part91.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_3487.0_2912.0_0part92.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 132, 'filename': 'P1314_1_3487.0_2912.0_0part92.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_3487.0_3328.0_0part93.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 133, 'filename': 'P1314_1_3487.0_3328.0_0part93.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_0.0_3487.0_0part94.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 134, 'filename': 'P1314_1_0.0_3487.0_0part94.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_416.0_3487.0_0part95.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 135, 'filename': 'P1314_1_416.0_3487.0_0part95.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_832.0_3487.0_0part96.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 136, 'filename': 'P1314_1_832.0_3487.0_0part96.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_1248.0_3487.0_0part97.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 137, 'filename': 'P1314_1_1248.0_3487.0_0part97.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_1664.0_3487.0_0part98.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 138, 'filename': 'P1314_1_1664.0_3487.0_0part98.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_2080.0_3487.0_0part99.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 139, 'filename': 'P1314_1_2080.0_3487.0_0part99.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_2496.0_3487.0_0part100.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 140, 'filename': 'P1314_1_2496.0_3487.0_0part100.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_2912.0_3487.0_0part101.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 141, 'filename': 'P1314_1_2912.0_3487.0_0part101.jpg'}\n", - "{'license': 1, 'file_name': 'P1314_1_3328.0_3487.0_0part102.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 142, 'filename': 'P1314_1_3328.0_3487.0_0part102.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_0.5_1488.0_0.0_0part1.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 143, 'filename': 'P1275_0.5_1488.0_0.0_0part1.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_0.5_0.0_1488.0_0part2.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 144, 'filename': 'P1275_0.5_0.0_1488.0_0part2.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_0.5_1488.0_1488.0_0part3.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 145, 'filename': 'P1275_0.5_1488.0_1488.0_0part3.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_0.5_0.0_0.0_0part4.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 146, 'filename': 'P1275_0.5_0.0_0.0_0part4.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_0.5_0.0_416.0_0part5.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 147, 'filename': 'P1275_0.5_0.0_416.0_0part5.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_0.5_0.0_832.0_0part6.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 148, 'filename': 'P1275_0.5_0.0_832.0_0part6.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_0.5_0.0_1248.0_0part7.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 149, 'filename': 'P1275_0.5_0.0_1248.0_0part7.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_0.5_416.0_0.0_0part8.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 150, 'filename': 'P1275_0.5_416.0_0.0_0part8.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_0.5_416.0_416.0_0part9.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 151, 'filename': 'P1275_0.5_416.0_416.0_0part9.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_0.5_416.0_832.0_0part10.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 152, 'filename': 'P1275_0.5_416.0_832.0_0part10.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_0.5_416.0_1248.0_0part11.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 153, 'filename': 'P1275_0.5_416.0_1248.0_0part11.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_0.5_832.0_0.0_0part12.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 154, 'filename': 'P1275_0.5_832.0_0.0_0part12.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_0.5_832.0_416.0_0part13.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 155, 'filename': 'P1275_0.5_832.0_416.0_0part13.jpg'}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'license': 1, 'file_name': 'P1275_0.5_832.0_832.0_0part14.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 156, 'filename': 'P1275_0.5_832.0_832.0_0part14.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_0.5_832.0_1248.0_0part15.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 157, 'filename': 'P1275_0.5_832.0_1248.0_0part15.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_0.5_1248.0_0.0_0part16.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 158, 'filename': 'P1275_0.5_1248.0_0.0_0part16.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_0.5_1248.0_416.0_0part17.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 159, 'filename': 'P1275_0.5_1248.0_416.0_0part17.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_0.5_1248.0_832.0_0part18.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 160, 'filename': 'P1275_0.5_1248.0_832.0_0part18.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_0.5_1248.0_1248.0_0part19.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 161, 'filename': 'P1275_0.5_1248.0_1248.0_0part19.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_0.5_1487.0_0.0_0part20.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 162, 'filename': 'P1275_0.5_1487.0_0.0_0part20.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_0.5_1487.0_416.0_0part21.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 163, 'filename': 'P1275_0.5_1487.0_416.0_0part21.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_0.5_1487.0_832.0_0part22.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 164, 'filename': 'P1275_0.5_1487.0_832.0_0part22.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_0.5_1487.0_1248.0_0part23.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 165, 'filename': 'P1275_0.5_1487.0_1248.0_0part23.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_0.5_0.0_1487.0_0part24.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 166, 'filename': 'P1275_0.5_0.0_1487.0_0part24.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_0.5_416.0_1487.0_0part25.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 167, 'filename': 'P1275_0.5_416.0_1487.0_0part25.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_0.5_832.0_1487.0_0part26.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 168, 'filename': 'P1275_0.5_832.0_1487.0_0part26.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_0.5_1248.0_1487.0_0part27.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 169, 'filename': 'P1275_0.5_1248.0_1487.0_0part27.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_3488.0_0.0_0part1.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 170, 'filename': 'P1275_1_3488.0_0.0_0part1.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_0.0_3488.0_0part2.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 171, 'filename': 'P1275_1_0.0_3488.0_0part2.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_3488.0_3488.0_0part3.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 172, 'filename': 'P1275_1_3488.0_3488.0_0part3.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_0.0_0.0_0part4.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 173, 'filename': 'P1275_1_0.0_0.0_0part4.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_0.0_416.0_0part5.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 174, 'filename': 'P1275_1_0.0_416.0_0part5.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_0.0_832.0_0part6.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 175, 'filename': 'P1275_1_0.0_832.0_0part6.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_0.0_1248.0_0part7.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 176, 'filename': 'P1275_1_0.0_1248.0_0part7.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_0.0_1664.0_0part8.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 177, 'filename': 'P1275_1_0.0_1664.0_0part8.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_0.0_2080.0_0part9.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 178, 'filename': 'P1275_1_0.0_2080.0_0part9.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_0.0_2496.0_0part10.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 179, 'filename': 'P1275_1_0.0_2496.0_0part10.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_0.0_2912.0_0part11.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 180, 'filename': 'P1275_1_0.0_2912.0_0part11.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_0.0_3328.0_0part12.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 181, 'filename': 'P1275_1_0.0_3328.0_0part12.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_416.0_0.0_0part13.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 182, 'filename': 'P1275_1_416.0_0.0_0part13.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_416.0_416.0_0part14.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 183, 'filename': 'P1275_1_416.0_416.0_0part14.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_416.0_832.0_0part15.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 184, 'filename': 'P1275_1_416.0_832.0_0part15.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_416.0_1248.0_0part16.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 185, 'filename': 'P1275_1_416.0_1248.0_0part16.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_416.0_1664.0_0part17.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 186, 'filename': 'P1275_1_416.0_1664.0_0part17.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_416.0_2080.0_0part18.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 187, 'filename': 'P1275_1_416.0_2080.0_0part18.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_416.0_2496.0_0part19.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 188, 'filename': 'P1275_1_416.0_2496.0_0part19.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_416.0_2912.0_0part20.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 189, 'filename': 'P1275_1_416.0_2912.0_0part20.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_416.0_3328.0_0part21.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 190, 'filename': 'P1275_1_416.0_3328.0_0part21.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_832.0_0.0_0part22.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 191, 'filename': 'P1275_1_832.0_0.0_0part22.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_832.0_416.0_0part23.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 192, 'filename': 'P1275_1_832.0_416.0_0part23.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_832.0_832.0_0part24.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 193, 'filename': 'P1275_1_832.0_832.0_0part24.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_832.0_1248.0_0part25.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 194, 'filename': 'P1275_1_832.0_1248.0_0part25.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_832.0_1664.0_0part26.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 195, 'filename': 'P1275_1_832.0_1664.0_0part26.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_832.0_2080.0_0part27.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 196, 'filename': 'P1275_1_832.0_2080.0_0part27.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_832.0_2496.0_0part28.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 197, 'filename': 'P1275_1_832.0_2496.0_0part28.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_832.0_2912.0_0part29.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 198, 'filename': 'P1275_1_832.0_2912.0_0part29.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_832.0_3328.0_0part30.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 199, 'filename': 'P1275_1_832.0_3328.0_0part30.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_1248.0_0.0_0part31.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 200, 'filename': 'P1275_1_1248.0_0.0_0part31.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_1248.0_416.0_0part32.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 201, 'filename': 'P1275_1_1248.0_416.0_0part32.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_1248.0_832.0_0part33.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 202, 'filename': 'P1275_1_1248.0_832.0_0part33.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_1248.0_1248.0_0part34.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 203, 'filename': 'P1275_1_1248.0_1248.0_0part34.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_1248.0_1664.0_0part35.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 204, 'filename': 'P1275_1_1248.0_1664.0_0part35.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_1248.0_2080.0_0part36.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 205, 'filename': 'P1275_1_1248.0_2080.0_0part36.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_1248.0_2496.0_0part37.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 206, 'filename': 'P1275_1_1248.0_2496.0_0part37.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_1248.0_2912.0_0part38.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 207, 'filename': 'P1275_1_1248.0_2912.0_0part38.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_1248.0_3328.0_0part39.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 208, 'filename': 'P1275_1_1248.0_3328.0_0part39.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_1664.0_0.0_0part40.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 209, 'filename': 'P1275_1_1664.0_0.0_0part40.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_1664.0_416.0_0part41.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 210, 'filename': 'P1275_1_1664.0_416.0_0part41.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_1664.0_832.0_0part42.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 211, 'filename': 'P1275_1_1664.0_832.0_0part42.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_1664.0_1248.0_0part43.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 212, 'filename': 'P1275_1_1664.0_1248.0_0part43.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_1664.0_1664.0_0part44.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 213, 'filename': 'P1275_1_1664.0_1664.0_0part44.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_1664.0_2080.0_0part45.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 214, 'filename': 'P1275_1_1664.0_2080.0_0part45.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_1664.0_2496.0_0part46.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 215, 'filename': 'P1275_1_1664.0_2496.0_0part46.jpg'}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'license': 1, 'file_name': 'P1275_1_1664.0_2912.0_0part47.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 216, 'filename': 'P1275_1_1664.0_2912.0_0part47.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_1664.0_3328.0_0part48.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 217, 'filename': 'P1275_1_1664.0_3328.0_0part48.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_2080.0_0.0_0part49.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 218, 'filename': 'P1275_1_2080.0_0.0_0part49.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_2080.0_416.0_0part50.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 219, 'filename': 'P1275_1_2080.0_416.0_0part50.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_2080.0_832.0_0part51.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 220, 'filename': 'P1275_1_2080.0_832.0_0part51.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_2080.0_1248.0_0part52.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 221, 'filename': 'P1275_1_2080.0_1248.0_0part52.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_2080.0_1664.0_0part53.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 222, 'filename': 'P1275_1_2080.0_1664.0_0part53.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_2080.0_2080.0_0part54.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 223, 'filename': 'P1275_1_2080.0_2080.0_0part54.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_2080.0_2496.0_0part55.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 224, 'filename': 'P1275_1_2080.0_2496.0_0part55.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_2080.0_2912.0_0part56.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 225, 'filename': 'P1275_1_2080.0_2912.0_0part56.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_2080.0_3328.0_0part57.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 226, 'filename': 'P1275_1_2080.0_3328.0_0part57.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_2496.0_0.0_0part58.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 227, 'filename': 'P1275_1_2496.0_0.0_0part58.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_2496.0_416.0_0part59.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 228, 'filename': 'P1275_1_2496.0_416.0_0part59.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_2496.0_832.0_0part60.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 229, 'filename': 'P1275_1_2496.0_832.0_0part60.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_2496.0_1248.0_0part61.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 230, 'filename': 'P1275_1_2496.0_1248.0_0part61.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_2496.0_1664.0_0part62.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 231, 'filename': 'P1275_1_2496.0_1664.0_0part62.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_2496.0_2080.0_0part63.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 232, 'filename': 'P1275_1_2496.0_2080.0_0part63.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_2496.0_2496.0_0part64.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 233, 'filename': 'P1275_1_2496.0_2496.0_0part64.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_2496.0_2912.0_0part65.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 234, 'filename': 'P1275_1_2496.0_2912.0_0part65.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_2496.0_3328.0_0part66.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 235, 'filename': 'P1275_1_2496.0_3328.0_0part66.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_2912.0_0.0_0part67.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 236, 'filename': 'P1275_1_2912.0_0.0_0part67.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_2912.0_416.0_0part68.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 237, 'filename': 'P1275_1_2912.0_416.0_0part68.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_2912.0_832.0_0part69.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 238, 'filename': 'P1275_1_2912.0_832.0_0part69.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_2912.0_1248.0_0part70.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 239, 'filename': 'P1275_1_2912.0_1248.0_0part70.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_2912.0_1664.0_0part71.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 240, 'filename': 'P1275_1_2912.0_1664.0_0part71.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_2912.0_2080.0_0part72.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 241, 'filename': 'P1275_1_2912.0_2080.0_0part72.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_2912.0_2496.0_0part73.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 242, 'filename': 'P1275_1_2912.0_2496.0_0part73.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_2912.0_2912.0_0part74.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 243, 'filename': 'P1275_1_2912.0_2912.0_0part74.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_2912.0_3328.0_0part75.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 244, 'filename': 'P1275_1_2912.0_3328.0_0part75.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_3328.0_0.0_0part76.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 245, 'filename': 'P1275_1_3328.0_0.0_0part76.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_3328.0_416.0_0part77.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 246, 'filename': 'P1275_1_3328.0_416.0_0part77.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_3328.0_832.0_0part78.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 247, 'filename': 'P1275_1_3328.0_832.0_0part78.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_3328.0_1248.0_0part79.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 248, 'filename': 'P1275_1_3328.0_1248.0_0part79.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_3328.0_1664.0_0part80.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 249, 'filename': 'P1275_1_3328.0_1664.0_0part80.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_3328.0_2080.0_0part81.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 250, 'filename': 'P1275_1_3328.0_2080.0_0part81.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_3328.0_2496.0_0part82.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 251, 'filename': 'P1275_1_3328.0_2496.0_0part82.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_3328.0_2912.0_0part83.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 252, 'filename': 'P1275_1_3328.0_2912.0_0part83.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_3328.0_3328.0_0part84.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 253, 'filename': 'P1275_1_3328.0_3328.0_0part84.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_3487.0_0.0_0part85.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 254, 'filename': 'P1275_1_3487.0_0.0_0part85.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_3487.0_416.0_0part86.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 255, 'filename': 'P1275_1_3487.0_416.0_0part86.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_3487.0_832.0_0part87.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 256, 'filename': 'P1275_1_3487.0_832.0_0part87.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_3487.0_1248.0_0part88.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 257, 'filename': 'P1275_1_3487.0_1248.0_0part88.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_3487.0_1664.0_0part89.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 258, 'filename': 'P1275_1_3487.0_1664.0_0part89.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_3487.0_2080.0_0part90.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 259, 'filename': 'P1275_1_3487.0_2080.0_0part90.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_3487.0_2496.0_0part91.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 260, 'filename': 'P1275_1_3487.0_2496.0_0part91.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_3487.0_2912.0_0part92.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 261, 'filename': 'P1275_1_3487.0_2912.0_0part92.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_3487.0_3328.0_0part93.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 262, 'filename': 'P1275_1_3487.0_3328.0_0part93.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_0.0_3487.0_0part94.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 263, 'filename': 'P1275_1_0.0_3487.0_0part94.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_416.0_3487.0_0part95.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 264, 'filename': 'P1275_1_416.0_3487.0_0part95.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_832.0_3487.0_0part96.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 265, 'filename': 'P1275_1_832.0_3487.0_0part96.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_1248.0_3487.0_0part97.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 266, 'filename': 'P1275_1_1248.0_3487.0_0part97.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_1664.0_3487.0_0part98.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 267, 'filename': 'P1275_1_1664.0_3487.0_0part98.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_2080.0_3487.0_0part99.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 268, 'filename': 'P1275_1_2080.0_3487.0_0part99.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_2496.0_3487.0_0part100.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 269, 'filename': 'P1275_1_2496.0_3487.0_0part100.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_2912.0_3487.0_0part101.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 270, 'filename': 'P1275_1_2912.0_3487.0_0part101.jpg'}\n", - "{'license': 1, 'file_name': 'P1275_1_3328.0_3487.0_0part102.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 271, 'filename': 'P1275_1_3328.0_3487.0_0part102.jpg'}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'license': 1, 'file_name': 'P0844_0.5_0.0_0.0_0part1.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 435, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 272, 'filename': 'P0844_0.5_0.0_0.0_0part1.jpg'}\n", - "{'license': 1, 'file_name': 'P0844_0.5_0.0_43.0_0part2.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 435, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 273, 'filename': 'P0844_0.5_0.0_43.0_0part2.jpg'}\n", - "{'license': 1, 'file_name': 'P0844_0.5_0.0_43.0_0part3.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 435, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 274, 'filename': 'P0844_0.5_0.0_43.0_0part3.jpg'}\n", - "{'license': 1, 'file_name': 'P0844_0.5_0.0_0.0_0part4.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 435, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 275, 'filename': 'P0844_0.5_0.0_0.0_0part4.jpg'}\n", - "{'license': 1, 'file_name': 'P0844_1_360.0_0.0_0part1.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 276, 'filename': 'P0844_1_360.0_0.0_0part1.jpg'}\n", - "{'license': 1, 'file_name': 'P0844_1_0.0_597.0_0part2.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 277, 'filename': 'P0844_1_0.0_597.0_0part2.jpg'}\n", - "{'license': 1, 'file_name': 'P0844_1_360.0_597.0_0part3.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 278, 'filename': 'P0844_1_360.0_597.0_0part3.jpg'}\n", - "{'license': 1, 'file_name': 'P0844_1_0.0_0.0_0part4.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 279, 'filename': 'P0844_1_0.0_0.0_0part4.jpg'}\n", - "{'license': 1, 'file_name': 'P0844_1_0.0_416.0_0part5.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 280, 'filename': 'P0844_1_0.0_416.0_0part5.jpg'}\n", - "{'license': 1, 'file_name': 'P0844_1_359.0_0.0_0part6.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 281, 'filename': 'P0844_1_359.0_0.0_0part6.jpg'}\n", - "{'license': 1, 'file_name': 'P0844_1_359.0_416.0_0part7.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 282, 'filename': 'P0844_1_359.0_416.0_0part7.jpg'}\n", - "{'license': 1, 'file_name': 'P0844_1_0.0_596.0_0part8.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 283, 'filename': 'P0844_1_0.0_596.0_0part8.jpg'}\n", - "{'license': 1, 'file_name': 'P1878_0.5_0.0_0.0_0part1.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 320, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 284, 'filename': 'P1878_0.5_0.0_0.0_0part1.jpg'}\n", - "{'license': 1, 'file_name': 'P1878_0.5_0.0_18.0_0part2.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 320, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 285, 'filename': 'P1878_0.5_0.0_18.0_0part2.jpg'}\n", - "{'license': 1, 'file_name': 'P1878_0.5_0.0_18.0_0part3.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 320, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 286, 'filename': 'P1878_0.5_0.0_18.0_0part3.jpg'}\n", - "{'license': 1, 'file_name': 'P1878_0.5_0.0_0.0_0part4.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 320, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 287, 'filename': 'P1878_0.5_0.0_0.0_0part4.jpg'}\n", - "{'license': 1, 'file_name': 'P1878_1_130.0_0.0_0part1.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 288, 'filename': 'P1878_1_130.0_0.0_0part1.jpg'}\n", - "{'license': 1, 'file_name': 'P1878_1_0.0_547.0_0part2.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 289, 'filename': 'P1878_1_0.0_547.0_0part2.jpg'}\n", - "{'license': 1, 'file_name': 'P1878_1_130.0_547.0_0part3.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 290, 'filename': 'P1878_1_130.0_547.0_0part3.jpg'}\n", - "{'license': 1, 'file_name': 'P1878_1_0.0_0.0_0part4.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 291, 'filename': 'P1878_1_0.0_0.0_0part4.jpg'}\n", - "{'license': 1, 'file_name': 'P1878_1_0.0_416.0_0part5.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 292, 'filename': 'P1878_1_0.0_416.0_0part5.jpg'}\n", - "{'license': 1, 'file_name': 'P1878_1_129.0_0.0_0part6.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 293, 'filename': 'P1878_1_129.0_0.0_0part6.jpg'}\n", - "{'license': 1, 'file_name': 'P1878_1_129.0_416.0_0part7.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 294, 'filename': 'P1878_1_129.0_416.0_0part7.jpg'}\n", - "{'license': 1, 'file_name': 'P1878_1_0.0_546.0_0part8.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 295, 'filename': 'P1878_1_0.0_546.0_0part8.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_0.5_1488.0_0.0_0part1.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 296, 'filename': 'P1542_0.5_1488.0_0.0_0part1.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_0.5_0.0_1488.0_0part2.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 297, 'filename': 'P1542_0.5_0.0_1488.0_0part2.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_0.5_1488.0_1488.0_0part3.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 298, 'filename': 'P1542_0.5_1488.0_1488.0_0part3.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_0.5_0.0_0.0_0part4.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 299, 'filename': 'P1542_0.5_0.0_0.0_0part4.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_0.5_0.0_416.0_0part5.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 300, 'filename': 'P1542_0.5_0.0_416.0_0part5.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_0.5_0.0_832.0_0part6.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 301, 'filename': 'P1542_0.5_0.0_832.0_0part6.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_0.5_0.0_1248.0_0part7.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 302, 'filename': 'P1542_0.5_0.0_1248.0_0part7.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_0.5_416.0_0.0_0part8.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 303, 'filename': 'P1542_0.5_416.0_0.0_0part8.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_0.5_416.0_416.0_0part9.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 304, 'filename': 'P1542_0.5_416.0_416.0_0part9.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_0.5_416.0_832.0_0part10.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 305, 'filename': 'P1542_0.5_416.0_832.0_0part10.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_0.5_416.0_1248.0_0part11.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 306, 'filename': 'P1542_0.5_416.0_1248.0_0part11.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_0.5_832.0_0.0_0part12.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 307, 'filename': 'P1542_0.5_832.0_0.0_0part12.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_0.5_832.0_416.0_0part13.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 308, 'filename': 'P1542_0.5_832.0_416.0_0part13.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_0.5_832.0_832.0_0part14.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 309, 'filename': 'P1542_0.5_832.0_832.0_0part14.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_0.5_832.0_1248.0_0part15.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 310, 'filename': 'P1542_0.5_832.0_1248.0_0part15.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_0.5_1248.0_0.0_0part16.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 311, 'filename': 'P1542_0.5_1248.0_0.0_0part16.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_0.5_1248.0_416.0_0part17.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 312, 'filename': 'P1542_0.5_1248.0_416.0_0part17.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_0.5_1248.0_832.0_0part18.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 313, 'filename': 'P1542_0.5_1248.0_832.0_0part18.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_0.5_1248.0_1248.0_0part19.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 314, 'filename': 'P1542_0.5_1248.0_1248.0_0part19.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_0.5_1487.0_0.0_0part20.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 315, 'filename': 'P1542_0.5_1487.0_0.0_0part20.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_0.5_1487.0_416.0_0part21.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 316, 'filename': 'P1542_0.5_1487.0_416.0_0part21.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_0.5_1487.0_832.0_0part22.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 317, 'filename': 'P1542_0.5_1487.0_832.0_0part22.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_0.5_1487.0_1248.0_0part23.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 318, 'filename': 'P1542_0.5_1487.0_1248.0_0part23.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_0.5_0.0_1487.0_0part24.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 319, 'filename': 'P1542_0.5_0.0_1487.0_0part24.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_0.5_416.0_1487.0_0part25.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 320, 'filename': 'P1542_0.5_416.0_1487.0_0part25.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_0.5_832.0_1487.0_0part26.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 321, 'filename': 'P1542_0.5_832.0_1487.0_0part26.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_0.5_1248.0_1487.0_0part27.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 322, 'filename': 'P1542_0.5_1248.0_1487.0_0part27.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_3488.0_0.0_0part1.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 323, 'filename': 'P1542_1_3488.0_0.0_0part1.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_0.0_3488.0_0part2.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 324, 'filename': 'P1542_1_0.0_3488.0_0part2.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_3488.0_3488.0_0part3.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 325, 'filename': 'P1542_1_3488.0_3488.0_0part3.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_0.0_0.0_0part4.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 326, 'filename': 'P1542_1_0.0_0.0_0part4.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_0.0_416.0_0part5.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 327, 'filename': 'P1542_1_0.0_416.0_0part5.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_0.0_832.0_0part6.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 328, 'filename': 'P1542_1_0.0_832.0_0part6.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_0.0_1248.0_0part7.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 329, 'filename': 'P1542_1_0.0_1248.0_0part7.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_0.0_1664.0_0part8.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 330, 'filename': 'P1542_1_0.0_1664.0_0part8.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_0.0_2080.0_0part9.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 331, 'filename': 'P1542_1_0.0_2080.0_0part9.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_0.0_2496.0_0part10.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 332, 'filename': 'P1542_1_0.0_2496.0_0part10.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_0.0_2912.0_0part11.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 333, 'filename': 'P1542_1_0.0_2912.0_0part11.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_0.0_3328.0_0part12.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 334, 'filename': 'P1542_1_0.0_3328.0_0part12.jpg'}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'license': 1, 'file_name': 'P1542_1_416.0_0.0_0part13.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 335, 'filename': 'P1542_1_416.0_0.0_0part13.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_416.0_416.0_0part14.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 336, 'filename': 'P1542_1_416.0_416.0_0part14.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_416.0_832.0_0part15.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 337, 'filename': 'P1542_1_416.0_832.0_0part15.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_416.0_1248.0_0part16.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 338, 'filename': 'P1542_1_416.0_1248.0_0part16.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_416.0_1664.0_0part17.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 339, 'filename': 'P1542_1_416.0_1664.0_0part17.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_416.0_2080.0_0part18.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 340, 'filename': 'P1542_1_416.0_2080.0_0part18.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_416.0_2496.0_0part19.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 341, 'filename': 'P1542_1_416.0_2496.0_0part19.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_416.0_2912.0_0part20.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 342, 'filename': 'P1542_1_416.0_2912.0_0part20.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_416.0_3328.0_0part21.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 343, 'filename': 'P1542_1_416.0_3328.0_0part21.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_832.0_0.0_0part22.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 344, 'filename': 'P1542_1_832.0_0.0_0part22.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_832.0_416.0_0part23.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 345, 'filename': 'P1542_1_832.0_416.0_0part23.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_832.0_832.0_0part24.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 346, 'filename': 'P1542_1_832.0_832.0_0part24.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_832.0_1248.0_0part25.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 347, 'filename': 'P1542_1_832.0_1248.0_0part25.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_832.0_1664.0_0part26.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 348, 'filename': 'P1542_1_832.0_1664.0_0part26.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_832.0_2080.0_0part27.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 349, 'filename': 'P1542_1_832.0_2080.0_0part27.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_832.0_2496.0_0part28.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 350, 'filename': 'P1542_1_832.0_2496.0_0part28.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_832.0_2912.0_0part29.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 351, 'filename': 'P1542_1_832.0_2912.0_0part29.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_832.0_3328.0_0part30.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 352, 'filename': 'P1542_1_832.0_3328.0_0part30.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_1248.0_0.0_0part31.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 353, 'filename': 'P1542_1_1248.0_0.0_0part31.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_1248.0_416.0_0part32.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 354, 'filename': 'P1542_1_1248.0_416.0_0part32.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_1248.0_832.0_0part33.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 355, 'filename': 'P1542_1_1248.0_832.0_0part33.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_1248.0_1248.0_0part34.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 356, 'filename': 'P1542_1_1248.0_1248.0_0part34.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_1248.0_1664.0_0part35.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 357, 'filename': 'P1542_1_1248.0_1664.0_0part35.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_1248.0_2080.0_0part36.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 358, 'filename': 'P1542_1_1248.0_2080.0_0part36.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_1248.0_2496.0_0part37.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 359, 'filename': 'P1542_1_1248.0_2496.0_0part37.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_1248.0_2912.0_0part38.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 360, 'filename': 'P1542_1_1248.0_2912.0_0part38.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_1248.0_3328.0_0part39.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 361, 'filename': 'P1542_1_1248.0_3328.0_0part39.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_1664.0_0.0_0part40.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 362, 'filename': 'P1542_1_1664.0_0.0_0part40.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_1664.0_416.0_0part41.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 363, 'filename': 'P1542_1_1664.0_416.0_0part41.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_1664.0_832.0_0part42.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 364, 'filename': 'P1542_1_1664.0_832.0_0part42.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_1664.0_1248.0_0part43.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 365, 'filename': 'P1542_1_1664.0_1248.0_0part43.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_1664.0_1664.0_0part44.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 366, 'filename': 'P1542_1_1664.0_1664.0_0part44.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_1664.0_2080.0_0part45.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 367, 'filename': 'P1542_1_1664.0_2080.0_0part45.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_1664.0_2496.0_0part46.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 368, 'filename': 'P1542_1_1664.0_2496.0_0part46.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_1664.0_2912.0_0part47.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 369, 'filename': 'P1542_1_1664.0_2912.0_0part47.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_1664.0_3328.0_0part48.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 370, 'filename': 'P1542_1_1664.0_3328.0_0part48.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_2080.0_0.0_0part49.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 371, 'filename': 'P1542_1_2080.0_0.0_0part49.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_2080.0_416.0_0part50.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 372, 'filename': 'P1542_1_2080.0_416.0_0part50.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_2080.0_832.0_0part51.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 373, 'filename': 'P1542_1_2080.0_832.0_0part51.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_2080.0_1248.0_0part52.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 374, 'filename': 'P1542_1_2080.0_1248.0_0part52.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_2080.0_1664.0_0part53.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 375, 'filename': 'P1542_1_2080.0_1664.0_0part53.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_2080.0_2080.0_0part54.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 376, 'filename': 'P1542_1_2080.0_2080.0_0part54.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_2080.0_2496.0_0part55.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 377, 'filename': 'P1542_1_2080.0_2496.0_0part55.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_2080.0_2912.0_0part56.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 378, 'filename': 'P1542_1_2080.0_2912.0_0part56.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_2080.0_3328.0_0part57.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 379, 'filename': 'P1542_1_2080.0_3328.0_0part57.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_2496.0_0.0_0part58.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 380, 'filename': 'P1542_1_2496.0_0.0_0part58.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_2496.0_416.0_0part59.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 381, 'filename': 'P1542_1_2496.0_416.0_0part59.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_2496.0_832.0_0part60.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 382, 'filename': 'P1542_1_2496.0_832.0_0part60.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_2496.0_1248.0_0part61.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 383, 'filename': 'P1542_1_2496.0_1248.0_0part61.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_2496.0_1664.0_0part62.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 384, 'filename': 'P1542_1_2496.0_1664.0_0part62.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_2496.0_2080.0_0part63.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 385, 'filename': 'P1542_1_2496.0_2080.0_0part63.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_2496.0_2496.0_0part64.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 386, 'filename': 'P1542_1_2496.0_2496.0_0part64.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_2496.0_2912.0_0part65.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 387, 'filename': 'P1542_1_2496.0_2912.0_0part65.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_2496.0_3328.0_0part66.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 388, 'filename': 'P1542_1_2496.0_3328.0_0part66.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_2912.0_0.0_0part67.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 389, 'filename': 'P1542_1_2912.0_0.0_0part67.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_2912.0_416.0_0part68.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 390, 'filename': 'P1542_1_2912.0_416.0_0part68.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_2912.0_832.0_0part69.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 391, 'filename': 'P1542_1_2912.0_832.0_0part69.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_2912.0_1248.0_0part70.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 392, 'filename': 'P1542_1_2912.0_1248.0_0part70.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_2912.0_1664.0_0part71.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 393, 'filename': 'P1542_1_2912.0_1664.0_0part71.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_2912.0_2080.0_0part72.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 394, 'filename': 'P1542_1_2912.0_2080.0_0part72.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_2912.0_2496.0_0part73.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 395, 'filename': 'P1542_1_2912.0_2496.0_0part73.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_2912.0_2912.0_0part74.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 396, 'filename': 'P1542_1_2912.0_2912.0_0part74.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_2912.0_3328.0_0part75.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 397, 'filename': 'P1542_1_2912.0_3328.0_0part75.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_3328.0_0.0_0part76.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 398, 'filename': 'P1542_1_3328.0_0.0_0part76.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_3328.0_416.0_0part77.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 399, 'filename': 'P1542_1_3328.0_416.0_0part77.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_3328.0_832.0_0part78.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 400, 'filename': 'P1542_1_3328.0_832.0_0part78.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_3328.0_1248.0_0part79.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 401, 'filename': 'P1542_1_3328.0_1248.0_0part79.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_3328.0_1664.0_0part80.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 402, 'filename': 'P1542_1_3328.0_1664.0_0part80.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_3328.0_2080.0_0part81.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 403, 'filename': 'P1542_1_3328.0_2080.0_0part81.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_3328.0_2496.0_0part82.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 404, 'filename': 'P1542_1_3328.0_2496.0_0part82.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_3328.0_2912.0_0part83.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 405, 'filename': 'P1542_1_3328.0_2912.0_0part83.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_3328.0_3328.0_0part84.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 406, 'filename': 'P1542_1_3328.0_3328.0_0part84.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_3487.0_0.0_0part85.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 407, 'filename': 'P1542_1_3487.0_0.0_0part85.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_3487.0_416.0_0part86.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 408, 'filename': 'P1542_1_3487.0_416.0_0part86.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_3487.0_832.0_0part87.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 409, 'filename': 'P1542_1_3487.0_832.0_0part87.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_3487.0_1248.0_0part88.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 410, 'filename': 'P1542_1_3487.0_1248.0_0part88.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_3487.0_1664.0_0part89.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 411, 'filename': 'P1542_1_3487.0_1664.0_0part89.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_3487.0_2080.0_0part90.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 412, 'filename': 'P1542_1_3487.0_2080.0_0part90.jpg'}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'license': 1, 'file_name': 'P1542_1_3487.0_2496.0_0part91.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 413, 'filename': 'P1542_1_3487.0_2496.0_0part91.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_3487.0_2912.0_0part92.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 414, 'filename': 'P1542_1_3487.0_2912.0_0part92.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_3487.0_3328.0_0part93.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 415, 'filename': 'P1542_1_3487.0_3328.0_0part93.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_0.0_3487.0_0part94.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 416, 'filename': 'P1542_1_0.0_3487.0_0part94.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_416.0_3487.0_0part95.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 417, 'filename': 'P1542_1_416.0_3487.0_0part95.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_832.0_3487.0_0part96.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 418, 'filename': 'P1542_1_832.0_3487.0_0part96.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_1248.0_3487.0_0part97.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 419, 'filename': 'P1542_1_1248.0_3487.0_0part97.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_1664.0_3487.0_0part98.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 420, 'filename': 'P1542_1_1664.0_3487.0_0part98.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_2080.0_3487.0_0part99.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 421, 'filename': 'P1542_1_2080.0_3487.0_0part99.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_2496.0_3487.0_0part100.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 422, 'filename': 'P1542_1_2496.0_3487.0_0part100.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_2912.0_3487.0_0part101.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 423, 'filename': 'P1542_1_2912.0_3487.0_0part101.jpg'}\n", - "{'license': 1, 'file_name': 'P1542_1_3328.0_3487.0_0part102.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 424, 'filename': 'P1542_1_3328.0_3487.0_0part102.jpg'}\n", - "{'license': 1, 'file_name': 'P6582_0.5_0_0_0part0.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 425, 'filename': 'P6582_0.5_0_0_0part0.jpg'}\n", - "{'license': 1, 'file_name': 'P6582_1_512.0_0.0_0part1.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 426, 'filename': 'P6582_1_512.0_0.0_0part1.jpg'}\n", - "{'license': 1, 'file_name': 'P6582_1_0.0_512.0_0part2.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 427, 'filename': 'P6582_1_0.0_512.0_0part2.jpg'}\n", - "{'license': 1, 'file_name': 'P6582_1_512.0_512.0_0part3.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 428, 'filename': 'P6582_1_512.0_512.0_0part3.jpg'}\n", - "{'license': 1, 'file_name': 'P6582_1_0.0_0.0_0part4.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 429, 'filename': 'P6582_1_0.0_0.0_0part4.jpg'}\n", - "{'license': 1, 'file_name': 'P6582_1_0.0_416.0_0part5.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 430, 'filename': 'P6582_1_0.0_416.0_0part5.jpg'}\n", - "{'license': 1, 'file_name': 'P6582_1_416.0_0.0_0part6.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 431, 'filename': 'P6582_1_416.0_0.0_0part6.jpg'}\n", - "{'license': 1, 'file_name': 'P6582_1_416.0_416.0_0part7.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 432, 'filename': 'P6582_1_416.0_416.0_0part7.jpg'}\n", - "{'license': 1, 'file_name': 'P6582_1_511.0_0.0_0part8.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 433, 'filename': 'P6582_1_511.0_0.0_0part8.jpg'}\n", - "{'license': 1, 'file_name': 'P6582_1_511.0_416.0_0part9.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 434, 'filename': 'P6582_1_511.0_416.0_0part9.jpg'}\n", - "{'license': 1, 'file_name': 'P6582_1_0.0_511.0_0part10.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 435, 'filename': 'P6582_1_0.0_511.0_0part10.jpg'}\n", - "{'license': 1, 'file_name': 'P6582_1_416.0_511.0_0part11.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 436, 'filename': 'P6582_1_416.0_511.0_0part11.jpg'}\n", - "{'license': 1, 'file_name': 'P4037_0.5_0_0_0part0.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 437, 'filename': 'P4037_0.5_0_0_0part0.jpg'}\n", - "{'license': 1, 'file_name': 'P4037_1_512.0_0.0_0part1.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 438, 'filename': 'P4037_1_512.0_0.0_0part1.jpg'}\n", - "{'license': 1, 'file_name': 'P4037_1_0.0_512.0_0part2.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 439, 'filename': 'P4037_1_0.0_512.0_0part2.jpg'}\n", - "{'license': 1, 'file_name': 'P4037_1_512.0_512.0_0part3.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 440, 'filename': 'P4037_1_512.0_512.0_0part3.jpg'}\n", - "{'license': 1, 'file_name': 'P4037_1_0.0_0.0_0part4.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 441, 'filename': 'P4037_1_0.0_0.0_0part4.jpg'}\n", - "{'license': 1, 'file_name': 'P4037_1_0.0_416.0_0part5.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 442, 'filename': 'P4037_1_0.0_416.0_0part5.jpg'}\n", - "{'license': 1, 'file_name': 'P4037_1_416.0_0.0_0part6.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 443, 'filename': 'P4037_1_416.0_0.0_0part6.jpg'}\n", - "{'license': 1, 'file_name': 'P4037_1_416.0_416.0_0part7.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 444, 'filename': 'P4037_1_416.0_416.0_0part7.jpg'}\n", - "{'license': 1, 'file_name': 'P4037_1_511.0_0.0_0part8.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 445, 'filename': 'P4037_1_511.0_0.0_0part8.jpg'}\n", - "{'license': 1, 'file_name': 'P4037_1_511.0_416.0_0part9.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 446, 'filename': 'P4037_1_511.0_416.0_0part9.jpg'}\n", - "{'license': 1, 'file_name': 'P4037_1_0.0_511.0_0part10.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 447, 'filename': 'P4037_1_0.0_511.0_0part10.jpg'}\n", - "{'license': 1, 'file_name': 'P4037_1_416.0_511.0_0part11.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 448, 'filename': 'P4037_1_416.0_511.0_0part11.jpg'}\n", - "{'license': 1, 'file_name': 'P9705_0.5_0_0_0part0.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 449, 'filename': 'P9705_0.5_0_0_0part0.jpg'}\n", - "{'license': 1, 'file_name': 'P9705_1_512.0_0.0_0part1.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 450, 'filename': 'P9705_1_512.0_0.0_0part1.jpg'}\n", - "{'license': 1, 'file_name': 'P9705_1_0.0_512.0_0part2.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 451, 'filename': 'P9705_1_0.0_512.0_0part2.jpg'}\n", - "{'license': 1, 'file_name': 'P9705_1_512.0_512.0_0part3.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 452, 'filename': 'P9705_1_512.0_512.0_0part3.jpg'}\n", - "{'license': 1, 'file_name': 'P9705_1_0.0_0.0_0part4.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 453, 'filename': 'P9705_1_0.0_0.0_0part4.jpg'}\n", - "{'license': 1, 'file_name': 'P9705_1_0.0_416.0_0part5.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 454, 'filename': 'P9705_1_0.0_416.0_0part5.jpg'}\n", - "{'license': 1, 'file_name': 'P9705_1_416.0_0.0_0part6.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 455, 'filename': 'P9705_1_416.0_0.0_0part6.jpg'}\n", - "{'license': 1, 'file_name': 'P9705_1_416.0_416.0_0part7.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 456, 'filename': 'P9705_1_416.0_416.0_0part7.jpg'}\n", - "{'license': 1, 'file_name': 'P9705_1_511.0_0.0_0part8.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 457, 'filename': 'P9705_1_511.0_0.0_0part8.jpg'}\n", - "{'license': 1, 'file_name': 'P9705_1_511.0_416.0_0part9.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 458, 'filename': 'P9705_1_511.0_416.0_0part9.jpg'}\n", - "{'license': 1, 'file_name': 'P9705_1_0.0_511.0_0part10.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 459, 'filename': 'P9705_1_0.0_511.0_0part10.jpg'}\n", - "{'license': 1, 'file_name': 'P9705_1_416.0_511.0_0part11.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 460, 'filename': 'P9705_1_416.0_511.0_0part11.jpg'}\n", - "{'license': 1, 'file_name': 'P0199_0.5_74.0_0.0_0part1.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 461, 'filename': 'P0199_0.5_74.0_0.0_0part1.jpg'}\n", - "{'license': 1, 'file_name': 'P0199_0.5_0.0_278.0_0part2.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 462, 'filename': 'P0199_0.5_0.0_278.0_0part2.jpg'}\n", - "{'license': 1, 'file_name': 'P0199_0.5_74.0_278.0_0part3.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 463, 'filename': 'P0199_0.5_74.0_278.0_0part3.jpg'}\n", - "{'license': 1, 'file_name': 'P0199_0.5_0.0_0.0_0part4.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 464, 'filename': 'P0199_0.5_0.0_0.0_0part4.jpg'}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'license': 1, 'file_name': 'P0199_0.5_73.0_0.0_0part5.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 465, 'filename': 'P0199_0.5_73.0_0.0_0part5.jpg'}\n", - "{'license': 1, 'file_name': 'P0199_0.5_0.0_277.0_0part6.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 466, 'filename': 'P0199_0.5_0.0_277.0_0part6.jpg'}\n", - "{'license': 1, 'file_name': 'P0199_1_660.0_0.0_0part1.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 467, 'filename': 'P0199_1_660.0_0.0_0part1.jpg'}\n", - "{'license': 1, 'file_name': 'P0199_1_0.0_1067.0_0part2.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 468, 'filename': 'P0199_1_0.0_1067.0_0part2.jpg'}\n", - "{'license': 1, 'file_name': 'P0199_1_660.0_1067.0_0part3.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 469, 'filename': 'P0199_1_660.0_1067.0_0part3.jpg'}\n", - "{'license': 1, 'file_name': 'P0199_1_0.0_0.0_0part4.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 470, 'filename': 'P0199_1_0.0_0.0_0part4.jpg'}\n", - "{'license': 1, 'file_name': 'P0199_1_0.0_416.0_0part5.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 471, 'filename': 'P0199_1_0.0_416.0_0part5.jpg'}\n", - "{'license': 1, 'file_name': 'P0199_1_0.0_832.0_0part6.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 472, 'filename': 'P0199_1_0.0_832.0_0part6.jpg'}\n", - "{'license': 1, 'file_name': 'P0199_1_416.0_0.0_0part7.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 473, 'filename': 'P0199_1_416.0_0.0_0part7.jpg'}\n", - "{'license': 1, 'file_name': 'P0199_1_416.0_416.0_0part8.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 474, 'filename': 'P0199_1_416.0_416.0_0part8.jpg'}\n", - "{'license': 1, 'file_name': 'P0199_1_416.0_832.0_0part9.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 475, 'filename': 'P0199_1_416.0_832.0_0part9.jpg'}\n", - "{'license': 1, 'file_name': 'P0199_1_659.0_0.0_0part10.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 476, 'filename': 'P0199_1_659.0_0.0_0part10.jpg'}\n", - "{'license': 1, 'file_name': 'P0199_1_659.0_416.0_0part11.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 477, 'filename': 'P0199_1_659.0_416.0_0part11.jpg'}\n", - "{'license': 1, 'file_name': 'P0199_1_659.0_832.0_0part12.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 478, 'filename': 'P0199_1_659.0_832.0_0part12.jpg'}\n", - "{'license': 1, 'file_name': 'P0199_1_0.0_1066.0_0part13.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 479, 'filename': 'P0199_1_0.0_1066.0_0part13.jpg'}\n", - "{'license': 1, 'file_name': 'P0199_1_416.0_1066.0_0part14.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 480, 'filename': 'P0199_1_416.0_1066.0_0part14.jpg'}\n", - "{'license': 1, 'file_name': 'P3575_0.5_0_0_0part0.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 481, 'filename': 'P3575_0.5_0_0_0part0.jpg'}\n", - "{'license': 1, 'file_name': 'P3575_1_512.0_0.0_0part1.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 482, 'filename': 'P3575_1_512.0_0.0_0part1.jpg'}\n", - "{'license': 1, 'file_name': 'P3575_1_0.0_512.0_0part2.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 483, 'filename': 'P3575_1_0.0_512.0_0part2.jpg'}\n", - "{'license': 1, 'file_name': 'P3575_1_512.0_512.0_0part3.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 484, 'filename': 'P3575_1_512.0_512.0_0part3.jpg'}\n", - "{'license': 1, 'file_name': 'P3575_1_0.0_0.0_0part4.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 485, 'filename': 'P3575_1_0.0_0.0_0part4.jpg'}\n", - "{'license': 1, 'file_name': 'P3575_1_0.0_416.0_0part5.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 486, 'filename': 'P3575_1_0.0_416.0_0part5.jpg'}\n", - "{'license': 1, 'file_name': 'P3575_1_416.0_0.0_0part6.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 487, 'filename': 'P3575_1_416.0_0.0_0part6.jpg'}\n", - "{'license': 1, 'file_name': 'P3575_1_416.0_416.0_0part7.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 488, 'filename': 'P3575_1_416.0_416.0_0part7.jpg'}\n", - "{'license': 1, 'file_name': 'P3575_1_511.0_0.0_0part8.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 489, 'filename': 'P3575_1_511.0_0.0_0part8.jpg'}\n", - "{'license': 1, 'file_name': 'P3575_1_511.0_416.0_0part9.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 490, 'filename': 'P3575_1_511.0_416.0_0part9.jpg'}\n", - "{'license': 1, 'file_name': 'P3575_1_0.0_511.0_0part10.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 491, 'filename': 'P3575_1_0.0_511.0_0part10.jpg'}\n", - "{'license': 1, 'file_name': 'P3575_1_416.0_511.0_0part11.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 492, 'filename': 'P3575_1_416.0_511.0_0part11.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_0.5_3168.0_0.0_0part1.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 493, 'filename': 'P4151_0.5_3168.0_0.0_0part1.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_0.5_0.0_1944.0_0part2.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 494, 'filename': 'P4151_0.5_0.0_1944.0_0part2.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_0.5_3168.0_1944.0_0part3.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 495, 'filename': 'P4151_0.5_3168.0_1944.0_0part3.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_0.5_0.0_0.0_0part4.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 496, 'filename': 'P4151_0.5_0.0_0.0_0part4.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_0.5_0.0_416.0_0part5.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 497, 'filename': 'P4151_0.5_0.0_416.0_0part5.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_0.5_0.0_832.0_0part6.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 498, 'filename': 'P4151_0.5_0.0_832.0_0part6.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_0.5_0.0_1248.0_0part7.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 499, 'filename': 'P4151_0.5_0.0_1248.0_0part7.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_0.5_0.0_1664.0_0part8.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 500, 'filename': 'P4151_0.5_0.0_1664.0_0part8.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_0.5_416.0_0.0_0part9.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 501, 'filename': 'P4151_0.5_416.0_0.0_0part9.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_0.5_416.0_416.0_0part10.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 502, 'filename': 'P4151_0.5_416.0_416.0_0part10.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_0.5_416.0_832.0_0part11.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 503, 'filename': 'P4151_0.5_416.0_832.0_0part11.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_0.5_416.0_1248.0_0part12.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 504, 'filename': 'P4151_0.5_416.0_1248.0_0part12.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_0.5_416.0_1664.0_0part13.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 505, 'filename': 'P4151_0.5_416.0_1664.0_0part13.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_0.5_832.0_0.0_0part14.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 506, 'filename': 'P4151_0.5_832.0_0.0_0part14.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_0.5_832.0_416.0_0part15.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 507, 'filename': 'P4151_0.5_832.0_416.0_0part15.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_0.5_832.0_832.0_0part16.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 508, 'filename': 'P4151_0.5_832.0_832.0_0part16.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_0.5_832.0_1248.0_0part17.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 509, 'filename': 'P4151_0.5_832.0_1248.0_0part17.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_0.5_832.0_1664.0_0part18.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 510, 'filename': 'P4151_0.5_832.0_1664.0_0part18.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_0.5_1248.0_0.0_0part19.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 511, 'filename': 'P4151_0.5_1248.0_0.0_0part19.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_0.5_1248.0_416.0_0part20.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 512, 'filename': 'P4151_0.5_1248.0_416.0_0part20.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_0.5_1248.0_832.0_0part21.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 513, 'filename': 'P4151_0.5_1248.0_832.0_0part21.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_0.5_1248.0_1248.0_0part22.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 514, 'filename': 'P4151_0.5_1248.0_1248.0_0part22.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_0.5_1248.0_1664.0_0part23.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 515, 'filename': 'P4151_0.5_1248.0_1664.0_0part23.jpg'}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'license': 1, 'file_name': 'P4151_0.5_1664.0_0.0_0part24.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 516, 'filename': 'P4151_0.5_1664.0_0.0_0part24.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_0.5_1664.0_416.0_0part25.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 517, 'filename': 'P4151_0.5_1664.0_416.0_0part25.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_0.5_1664.0_832.0_0part26.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 518, 'filename': 'P4151_0.5_1664.0_832.0_0part26.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_0.5_1664.0_1248.0_0part27.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 519, 'filename': 'P4151_0.5_1664.0_1248.0_0part27.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_0.5_1664.0_1664.0_0part28.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 520, 'filename': 'P4151_0.5_1664.0_1664.0_0part28.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_0.5_2080.0_0.0_0part29.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 521, 'filename': 'P4151_0.5_2080.0_0.0_0part29.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_0.5_2080.0_416.0_0part30.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 522, 'filename': 'P4151_0.5_2080.0_416.0_0part30.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_0.5_2080.0_832.0_0part31.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 523, 'filename': 'P4151_0.5_2080.0_832.0_0part31.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_0.5_2080.0_1248.0_0part32.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 524, 'filename': 'P4151_0.5_2080.0_1248.0_0part32.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_0.5_2080.0_1664.0_0part33.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 525, 'filename': 'P4151_0.5_2080.0_1664.0_0part33.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_0.5_2496.0_0.0_0part34.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 526, 'filename': 'P4151_0.5_2496.0_0.0_0part34.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_0.5_2496.0_416.0_0part35.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 527, 'filename': 'P4151_0.5_2496.0_416.0_0part35.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_0.5_2496.0_832.0_0part36.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 528, 'filename': 'P4151_0.5_2496.0_832.0_0part36.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_0.5_2496.0_1248.0_0part37.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 529, 'filename': 'P4151_0.5_2496.0_1248.0_0part37.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_0.5_2496.0_1664.0_0part38.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 530, 'filename': 'P4151_0.5_2496.0_1664.0_0part38.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_0.5_2912.0_0.0_0part39.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 531, 'filename': 'P4151_0.5_2912.0_0.0_0part39.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_0.5_2912.0_416.0_0part40.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 532, 'filename': 'P4151_0.5_2912.0_416.0_0part40.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_0.5_2912.0_832.0_0part41.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 533, 'filename': 'P4151_0.5_2912.0_832.0_0part41.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_0.5_2912.0_1248.0_0part42.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 534, 'filename': 'P4151_0.5_2912.0_1248.0_0part42.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_0.5_2912.0_1664.0_0part43.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 535, 'filename': 'P4151_0.5_2912.0_1664.0_0part43.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_0.5_3167.0_0.0_0part44.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 536, 'filename': 'P4151_0.5_3167.0_0.0_0part44.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_0.5_3167.0_416.0_0part45.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 537, 'filename': 'P4151_0.5_3167.0_416.0_0part45.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_0.5_3167.0_832.0_0part46.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 538, 'filename': 'P4151_0.5_3167.0_832.0_0part46.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_0.5_3167.0_1248.0_0part47.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 539, 'filename': 'P4151_0.5_3167.0_1248.0_0part47.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_0.5_3167.0_1664.0_0part48.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 540, 'filename': 'P4151_0.5_3167.0_1664.0_0part48.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_0.5_0.0_1943.0_0part49.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 541, 'filename': 'P4151_0.5_0.0_1943.0_0part49.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_0.5_416.0_1943.0_0part50.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 542, 'filename': 'P4151_0.5_416.0_1943.0_0part50.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_0.5_832.0_1943.0_0part51.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 543, 'filename': 'P4151_0.5_832.0_1943.0_0part51.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_0.5_1248.0_1943.0_0part52.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 544, 'filename': 'P4151_0.5_1248.0_1943.0_0part52.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_0.5_1664.0_1943.0_0part53.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 545, 'filename': 'P4151_0.5_1664.0_1943.0_0part53.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_0.5_2080.0_1943.0_0part54.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 546, 'filename': 'P4151_0.5_2080.0_1943.0_0part54.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_0.5_2496.0_1943.0_0part55.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 547, 'filename': 'P4151_0.5_2496.0_1943.0_0part55.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_0.5_2912.0_1943.0_0part56.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 548, 'filename': 'P4151_0.5_2912.0_1943.0_0part56.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_6848.0_0.0_0part1.jpg', 'coco_url': 'xxx', 'height': 512, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 549, 'filename': 'P4151_1_6848.0_0.0_0part1.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_0.0_4400.0_0part2.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 512, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 550, 'filename': 'P4151_1_0.0_4400.0_0part2.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_6848.0_4400.0_0part3.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 551, 'filename': 'P4151_1_6848.0_4400.0_0part3.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_0.0_0.0_0part4.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 552, 'filename': 'P4151_1_0.0_0.0_0part4.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_0.0_416.0_0part5.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 553, 'filename': 'P4151_1_0.0_416.0_0part5.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_0.0_832.0_0part6.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 554, 'filename': 'P4151_1_0.0_832.0_0part6.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_0.0_1248.0_0part7.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 555, 'filename': 'P4151_1_0.0_1248.0_0part7.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_0.0_1664.0_0part8.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 556, 'filename': 'P4151_1_0.0_1664.0_0part8.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_0.0_2080.0_0part9.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 557, 'filename': 'P4151_1_0.0_2080.0_0part9.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_0.0_2496.0_0part10.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 558, 'filename': 'P4151_1_0.0_2496.0_0part10.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_0.0_2912.0_0part11.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 559, 'filename': 'P4151_1_0.0_2912.0_0part11.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_0.0_3328.0_0part12.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 560, 'filename': 'P4151_1_0.0_3328.0_0part12.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_0.0_3744.0_0part13.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 561, 'filename': 'P4151_1_0.0_3744.0_0part13.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_0.0_4160.0_0part14.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 562, 'filename': 'P4151_1_0.0_4160.0_0part14.jpg'}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'license': 1, 'file_name': 'P4151_1_416.0_0.0_0part15.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 563, 'filename': 'P4151_1_416.0_0.0_0part15.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_416.0_416.0_0part16.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 564, 'filename': 'P4151_1_416.0_416.0_0part16.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_416.0_832.0_0part17.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 565, 'filename': 'P4151_1_416.0_832.0_0part17.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_416.0_1248.0_0part18.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 566, 'filename': 'P4151_1_416.0_1248.0_0part18.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_416.0_1664.0_0part19.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 567, 'filename': 'P4151_1_416.0_1664.0_0part19.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_416.0_2080.0_0part20.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 568, 'filename': 'P4151_1_416.0_2080.0_0part20.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_416.0_2496.0_0part21.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 569, 'filename': 'P4151_1_416.0_2496.0_0part21.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_416.0_2912.0_0part22.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 570, 'filename': 'P4151_1_416.0_2912.0_0part22.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_416.0_3328.0_0part23.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 571, 'filename': 'P4151_1_416.0_3328.0_0part23.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_416.0_3744.0_0part24.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 572, 'filename': 'P4151_1_416.0_3744.0_0part24.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_416.0_4160.0_0part25.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 573, 'filename': 'P4151_1_416.0_4160.0_0part25.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_832.0_0.0_0part26.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 574, 'filename': 'P4151_1_832.0_0.0_0part26.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_832.0_416.0_0part27.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 575, 'filename': 'P4151_1_832.0_416.0_0part27.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_832.0_832.0_0part28.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 576, 'filename': 'P4151_1_832.0_832.0_0part28.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_832.0_1248.0_0part29.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 577, 'filename': 'P4151_1_832.0_1248.0_0part29.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_832.0_1664.0_0part30.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 578, 'filename': 'P4151_1_832.0_1664.0_0part30.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_832.0_2080.0_0part31.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 579, 'filename': 'P4151_1_832.0_2080.0_0part31.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_832.0_2496.0_0part32.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 580, 'filename': 'P4151_1_832.0_2496.0_0part32.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_832.0_2912.0_0part33.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 581, 'filename': 'P4151_1_832.0_2912.0_0part33.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_832.0_3328.0_0part34.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 582, 'filename': 'P4151_1_832.0_3328.0_0part34.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_832.0_3744.0_0part35.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 583, 'filename': 'P4151_1_832.0_3744.0_0part35.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_832.0_4160.0_0part36.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 584, 'filename': 'P4151_1_832.0_4160.0_0part36.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_1248.0_0.0_0part37.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 585, 'filename': 'P4151_1_1248.0_0.0_0part37.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_1248.0_416.0_0part38.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 586, 'filename': 'P4151_1_1248.0_416.0_0part38.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_1248.0_832.0_0part39.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 587, 'filename': 'P4151_1_1248.0_832.0_0part39.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_1248.0_1248.0_0part40.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 588, 'filename': 'P4151_1_1248.0_1248.0_0part40.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_1248.0_1664.0_0part41.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 589, 'filename': 'P4151_1_1248.0_1664.0_0part41.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_1248.0_2080.0_0part42.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 590, 'filename': 'P4151_1_1248.0_2080.0_0part42.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_1248.0_2496.0_0part43.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 591, 'filename': 'P4151_1_1248.0_2496.0_0part43.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_1248.0_2912.0_0part44.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 592, 'filename': 'P4151_1_1248.0_2912.0_0part44.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_1248.0_3328.0_0part45.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 593, 'filename': 'P4151_1_1248.0_3328.0_0part45.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_1248.0_3744.0_0part46.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 594, 'filename': 'P4151_1_1248.0_3744.0_0part46.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_1248.0_4160.0_0part47.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 595, 'filename': 'P4151_1_1248.0_4160.0_0part47.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_1664.0_0.0_0part48.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 596, 'filename': 'P4151_1_1664.0_0.0_0part48.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_1664.0_416.0_0part49.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 597, 'filename': 'P4151_1_1664.0_416.0_0part49.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_1664.0_832.0_0part50.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 598, 'filename': 'P4151_1_1664.0_832.0_0part50.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_1664.0_1248.0_0part51.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 599, 'filename': 'P4151_1_1664.0_1248.0_0part51.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_1664.0_1664.0_0part52.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 600, 'filename': 'P4151_1_1664.0_1664.0_0part52.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_1664.0_2080.0_0part53.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 601, 'filename': 'P4151_1_1664.0_2080.0_0part53.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_1664.0_2496.0_0part54.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 602, 'filename': 'P4151_1_1664.0_2496.0_0part54.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_1664.0_2912.0_0part55.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 603, 'filename': 'P4151_1_1664.0_2912.0_0part55.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_1664.0_3328.0_0part56.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 604, 'filename': 'P4151_1_1664.0_3328.0_0part56.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_1664.0_3744.0_0part57.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 605, 'filename': 'P4151_1_1664.0_3744.0_0part57.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_1664.0_4160.0_0part58.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 606, 'filename': 'P4151_1_1664.0_4160.0_0part58.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_2080.0_0.0_0part59.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 607, 'filename': 'P4151_1_2080.0_0.0_0part59.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_2080.0_416.0_0part60.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 608, 'filename': 'P4151_1_2080.0_416.0_0part60.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_2080.0_832.0_0part61.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 609, 'filename': 'P4151_1_2080.0_832.0_0part61.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_2080.0_1248.0_0part62.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 610, 'filename': 'P4151_1_2080.0_1248.0_0part62.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_2080.0_1664.0_0part63.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 611, 'filename': 'P4151_1_2080.0_1664.0_0part63.jpg'}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'license': 1, 'file_name': 'P4151_1_2080.0_2080.0_0part64.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 612, 'filename': 'P4151_1_2080.0_2080.0_0part64.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_2080.0_2496.0_0part65.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 613, 'filename': 'P4151_1_2080.0_2496.0_0part65.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_2080.0_2912.0_0part66.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 614, 'filename': 'P4151_1_2080.0_2912.0_0part66.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_2080.0_3328.0_0part67.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 615, 'filename': 'P4151_1_2080.0_3328.0_0part67.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_2080.0_3744.0_0part68.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 616, 'filename': 'P4151_1_2080.0_3744.0_0part68.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_2080.0_4160.0_0part69.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 617, 'filename': 'P4151_1_2080.0_4160.0_0part69.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_2496.0_0.0_0part70.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 618, 'filename': 'P4151_1_2496.0_0.0_0part70.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_2496.0_416.0_0part71.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 619, 'filename': 'P4151_1_2496.0_416.0_0part71.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_2496.0_832.0_0part72.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 620, 'filename': 'P4151_1_2496.0_832.0_0part72.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_2496.0_1248.0_0part73.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 621, 'filename': 'P4151_1_2496.0_1248.0_0part73.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_2496.0_1664.0_0part74.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 622, 'filename': 'P4151_1_2496.0_1664.0_0part74.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_2496.0_2080.0_0part75.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 623, 'filename': 'P4151_1_2496.0_2080.0_0part75.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_2496.0_2496.0_0part76.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 624, 'filename': 'P4151_1_2496.0_2496.0_0part76.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_2496.0_2912.0_0part77.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 625, 'filename': 'P4151_1_2496.0_2912.0_0part77.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_2496.0_3328.0_0part78.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 626, 'filename': 'P4151_1_2496.0_3328.0_0part78.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_2496.0_3744.0_0part79.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 627, 'filename': 'P4151_1_2496.0_3744.0_0part79.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_2496.0_4160.0_0part80.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 628, 'filename': 'P4151_1_2496.0_4160.0_0part80.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_2912.0_0.0_0part81.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 629, 'filename': 'P4151_1_2912.0_0.0_0part81.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_2912.0_416.0_0part82.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 630, 'filename': 'P4151_1_2912.0_416.0_0part82.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_2912.0_832.0_0part83.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 631, 'filename': 'P4151_1_2912.0_832.0_0part83.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_2912.0_1248.0_0part84.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 632, 'filename': 'P4151_1_2912.0_1248.0_0part84.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_2912.0_1664.0_0part85.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 633, 'filename': 'P4151_1_2912.0_1664.0_0part85.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_2912.0_2080.0_0part86.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 634, 'filename': 'P4151_1_2912.0_2080.0_0part86.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_2912.0_2496.0_0part87.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 635, 'filename': 'P4151_1_2912.0_2496.0_0part87.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_2912.0_2912.0_0part88.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 636, 'filename': 'P4151_1_2912.0_2912.0_0part88.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_2912.0_3328.0_0part89.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 637, 'filename': 'P4151_1_2912.0_3328.0_0part89.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_2912.0_3744.0_0part90.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 638, 'filename': 'P4151_1_2912.0_3744.0_0part90.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_2912.0_4160.0_0part91.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 639, 'filename': 'P4151_1_2912.0_4160.0_0part91.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_3328.0_0.0_0part92.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 640, 'filename': 'P4151_1_3328.0_0.0_0part92.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_3328.0_416.0_0part93.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 641, 'filename': 'P4151_1_3328.0_416.0_0part93.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_3328.0_832.0_0part94.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 642, 'filename': 'P4151_1_3328.0_832.0_0part94.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_3328.0_1248.0_0part95.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 643, 'filename': 'P4151_1_3328.0_1248.0_0part95.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_3328.0_1664.0_0part96.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 644, 'filename': 'P4151_1_3328.0_1664.0_0part96.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_3328.0_2080.0_0part97.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 645, 'filename': 'P4151_1_3328.0_2080.0_0part97.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_3328.0_2496.0_0part98.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 646, 'filename': 'P4151_1_3328.0_2496.0_0part98.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_3328.0_2912.0_0part99.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 647, 'filename': 'P4151_1_3328.0_2912.0_0part99.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_3328.0_3328.0_0part100.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 648, 'filename': 'P4151_1_3328.0_3328.0_0part100.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_3328.0_3744.0_0part101.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 649, 'filename': 'P4151_1_3328.0_3744.0_0part101.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_3328.0_4160.0_0part102.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 650, 'filename': 'P4151_1_3328.0_4160.0_0part102.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_3744.0_0.0_0part103.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 651, 'filename': 'P4151_1_3744.0_0.0_0part103.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_3744.0_416.0_0part104.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 652, 'filename': 'P4151_1_3744.0_416.0_0part104.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_3744.0_832.0_0part105.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 653, 'filename': 'P4151_1_3744.0_832.0_0part105.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_3744.0_1248.0_0part106.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 654, 'filename': 'P4151_1_3744.0_1248.0_0part106.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_3744.0_1664.0_0part107.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 655, 'filename': 'P4151_1_3744.0_1664.0_0part107.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_3744.0_2080.0_0part108.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 656, 'filename': 'P4151_1_3744.0_2080.0_0part108.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_3744.0_2496.0_0part109.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 657, 'filename': 'P4151_1_3744.0_2496.0_0part109.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_3744.0_2912.0_0part110.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 658, 'filename': 'P4151_1_3744.0_2912.0_0part110.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_3744.0_3328.0_0part111.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 659, 'filename': 'P4151_1_3744.0_3328.0_0part111.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_3744.0_3744.0_0part112.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 660, 'filename': 'P4151_1_3744.0_3744.0_0part112.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_3744.0_4160.0_0part113.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 661, 'filename': 'P4151_1_3744.0_4160.0_0part113.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_4160.0_0.0_0part114.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 662, 'filename': 'P4151_1_4160.0_0.0_0part114.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_4160.0_416.0_0part115.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 663, 'filename': 'P4151_1_4160.0_416.0_0part115.jpg'}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'license': 1, 'file_name': 'P4151_1_4160.0_832.0_0part116.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 664, 'filename': 'P4151_1_4160.0_832.0_0part116.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_4160.0_1248.0_0part117.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 665, 'filename': 'P4151_1_4160.0_1248.0_0part117.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_4160.0_1664.0_0part118.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 666, 'filename': 'P4151_1_4160.0_1664.0_0part118.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_4160.0_2080.0_0part119.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 667, 'filename': 'P4151_1_4160.0_2080.0_0part119.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_4160.0_2496.0_0part120.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 668, 'filename': 'P4151_1_4160.0_2496.0_0part120.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_4160.0_2912.0_0part121.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 669, 'filename': 'P4151_1_4160.0_2912.0_0part121.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_4160.0_3328.0_0part122.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 670, 'filename': 'P4151_1_4160.0_3328.0_0part122.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_4160.0_3744.0_0part123.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 671, 'filename': 'P4151_1_4160.0_3744.0_0part123.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_4160.0_4160.0_0part124.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 672, 'filename': 'P4151_1_4160.0_4160.0_0part124.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_4576.0_0.0_0part125.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 673, 'filename': 'P4151_1_4576.0_0.0_0part125.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_4576.0_416.0_0part126.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 674, 'filename': 'P4151_1_4576.0_416.0_0part126.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_4576.0_832.0_0part127.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 675, 'filename': 'P4151_1_4576.0_832.0_0part127.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_4576.0_1248.0_0part128.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 676, 'filename': 'P4151_1_4576.0_1248.0_0part128.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_4576.0_1664.0_0part129.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 677, 'filename': 'P4151_1_4576.0_1664.0_0part129.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_4576.0_2080.0_0part130.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 678, 'filename': 'P4151_1_4576.0_2080.0_0part130.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_4576.0_2496.0_0part131.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 679, 'filename': 'P4151_1_4576.0_2496.0_0part131.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_4576.0_2912.0_0part132.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 680, 'filename': 'P4151_1_4576.0_2912.0_0part132.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_4576.0_3328.0_0part133.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 681, 'filename': 'P4151_1_4576.0_3328.0_0part133.jpg'}\n", - "{'license': 1, 'file_name': 'P4151_1_4576.0_3744.0_0part134.jpg', 'coco_url': 'xxx', 'height': 511, 'width': 511, 'date_captured': '2019-06-25', 'flickr_url': 'xxx', 'id': 682, 'filename': 'P4151_1_4576.0_3744.0_0part134.jpg'}\n" - ] - }, - { - "ename": "KeyboardInterrupt", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 15\u001b[0m \u001b[0mitems\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfilename\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msplit\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"_\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 16\u001b[0m \u001b[0mname\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mitems\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 17\u001b[0;31m \u001b[0mimg\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcv2\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mimread\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"./data/rscup/val/\"\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0mfilename\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 18\u001b[0m \u001b[0mh\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mw\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0m_\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mimg\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 19\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mKeyboardInterrupt\u001b[0m: " - ] - } - ], - "source": [ - "cfg = mmcv.Config.fromfile(\"configs/rs_cascade_mask_rcnn_r50_fpn_ohem.py\")\n", - "CLASSES = ('tennis-court', 'container-crane', 'storage-tank', 'baseball-diamond', 'plane','ground-track-field',\n", - " 'helicopter', 'airport','harbor', 'ship', 'large-vehicle', 'swimming-pool', 'soccer-ball-field',\n", - " 'roundabout', 'basketball-court', 'bridge', 'small-vehicle', 'helipad')\n", - "results = mmcv.load(\"./result/val.pkl\")\n", - "dataset = build_dataset(cfg.data.test)\n", - "img_infos = dataset.load_annotations(\"/home/xfr/mmdetection/data/rscup/annotation/annos_rscup_val.json\")\n", - "ann = {}\n", - "last_name = \"\"\n", - "last = \"\"\n", - "img_size = {}\n", - "for i in tqdm(range(len(results))):\n", - " filename = img_infos[i]['filename']\n", - " print(img_infos[i])\n", - " items = filename.split(\"_\")\n", - " name = items[0]\n", - " img = cv2.imread(\"./data/rscup/val/\" + filename)\n", - " h, w, _ = img.shape\n", - " " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "mm", - "language": "python", - "name": "mmdet" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.6.8" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/pipeline.ipynb b/pipeline.ipynb index 4366979..2b63552 100644 --- a/pipeline.ipynb +++ b/pipeline.ipynb @@ -471,7 +471,25 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 26, + "metadata": {}, + "outputs": [], + "source": [ + "a = mmcv.load(\"./batch_3s.pkl\")\n", + "b = a\n", + "def merge(a, b):\n", + " for i in range(len(a)):\n", + " for m in range(2):\n", + " for cls in range(len(a[0][m])):\n", + " a[i][m][cls] += b[i][m][cls]\n", + " return a\n", + "a = merge(a, b)\n", + "mmcv.dump(a, \"xx.pkl\")" + ] + }, + { + "cell_type": "code", + "execution_count": 27, "metadata": {}, "outputs": [ { @@ -479,11 +497,11 @@ "output_type": "stream", "text": [ "loading annotations into memory...\n", - "Done (t=0.58s)\n", + "Done (t=0.57s)\n", "creating index...\n", "index created!\n", "loading annotations into memory...\n", - "Done (t=0.14s)\n", + "Done (t=0.15s)\n", "creating index...\n", "index created!\n" ] @@ -491,7 +509,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "9c248859e15f40fc9d539facfcaabb12", + "model_id": "37cecb50ce9347b9a7420cc9ffe39152", "version_major": 2, "version_minor": 0 }, @@ -505,7 +523,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "a98b58a5ff334450987a6cfcb72cc84c", + "model_id": "6330180eb9b243b6b4f3ddbeca103982", "version_major": 2, "version_minor": 0 }, @@ -519,7 +537,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "3632fd29d36646b7be00f5d1c84984d1", + "model_id": "db6ae8925590425bbd160c9af894ea24", "version_major": 2, "version_minor": 0 }, @@ -571,7 +589,7 @@ "helipad\n", "56\n", "loading annotations into memory...\n", - "Done (t=0.47s)\n", + "Done (t=0.45s)\n", "creating index...\n", "index created!\n" ] @@ -579,7 +597,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "0c73f77c79cd418bb6132343ecd1fb81", + "model_id": "ed3d4e89dc0c45b6bf548b7bc33fe42b", "version_major": 2, "version_minor": 0 }, @@ -600,12 +618,12 @@ "ap of storage-tank is 0.6533062063301498\n", "ap of ground-track-field is 0.7819431266550643\n", "ap of helicopter is 0.6306510061855081\n", - "ap of plane is 0.9295126087930184\n", "ap of airport is 0.8237992763956039\n", - "ap of swimming-pool is 0.5944164022764115\n", + "ap of plane is 0.9295126087930184\n", "ap of soccer-ball-field is 0.6971203056860775\n", - "ap of roundabout is 0.6439169739562174\n", + "ap of swimming-pool is 0.5944164022764115\n", "ap of harbor is 0.7461641487400417\n", + "ap of roundabout is 0.6439169739562174\n", "ap of basketball-court is 0.7148957424594877\n", "ap of helipad is 0.25\n", "ap of bridge is 0.45799643002119494\n", @@ -618,7 +636,7 @@ ], "source": [ "config_file = \"./configs/rs_cascade_mask_rcnn_r50_fpn_ohem.py\"\n", - "result_file = \"./batch_3s.pkl\"\n", + "result_file = \"./xx.pkl\"\n", "anno_file = \"/home/xfr/mmdetection/data/rscup/annotation/annos_rscup_val.json\"\n", "out_file = \"./result/eval_temp.pkl\"\n", "img_prefix = \"./data/rscup/val/\"\n", diff --git a/submit.ipynb b/submit.ipynb deleted file mode 100644 index c0ac141..0000000 --- a/submit.ipynb +++ /dev/null @@ -1,543 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "loading annotations into memory...\n", - "Done (t=0.28s)\n", - "creating index...\n", - "index created!\n", - "loading annotations into memory...\n", - "Done (t=0.13s)\n", - "creating index...\n", - "index created!\n" - ] - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "c3e2dd16fde1431a989b0469f9617d36", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "HBox(children=(IntProgress(value=0, max=64387), HTML(value='')))" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "780\n" - ] - } - ], - "source": [ - "import pickle\n", - "import json\n", - "import mmcv\n", - "from tqdm import tqdm_notebook as tqdm\n", - "from mmdet.datasets import build_dataloader, build_dataset\n", - "from pycocotools.coco import COCO\n", - "import pycocotools.coco as cocoapi\n", - "import pycocotools.mask as MASK\n", - "import os\n", - "import cv2\n", - "from icecream import ic\n", - "import matplotlib.pyplot as plt\n", - "from mmdet.models import build_detector\n", - "from mmcv.runner import load_checkpoint, get_dist_info\n", - "import numpy as np\n", - "def get_original_size(name):\n", - " datadir = \"/home/xfr/rssid/data/test/images/\"\n", - " files = os.listdir(datadir)\n", - " img_name = \"\"\n", - " for file in files:\n", - " img_name = file.split(\".\")[0]\n", - " if(img_name == name):\n", - " break\n", - " filename = os.path.join(datadir, file)\n", - " img = cv2.imread(filename)\n", - " h, w, _ = img.shape\n", - " return h,w\n", - "cfg = mmcv.Config.fromfile(\"configs/rs_cascade_mask_rcnn_r50_fpn_ohem.py\")\n", - "CLASSES = ('tennis-court', 'container-crane', 'storage-tank', 'baseball-diamond', 'plane','ground-track-field',\n", - " 'helicopter', 'airport','harbor', 'ship', 'large-vehicle', 'swimming-pool', 'soccer-ball-field',\n", - " 'roundabout', 'basketball-court', 'bridge', 'small-vehicle', 'helipad')\n", - "results = mmcv.load(\"./result/test.pkl\")\n", - "dataset = build_dataset(cfg.data.test)\n", - "img_infos = dataset.load_annotations(\"/home/xfr/git_mm/mmdetection/data/rscup/annotation/annos_rscup_test.json\")\n", - "ann = {}\n", - "last_name = \"\"\n", - "last = \"\"\n", - "for i in tqdm(range(len(results))):\n", - " filename = img_infos[i]['filename']\n", - " items = filename.split(\"_\")\n", - " name = items[0]\n", - " if(name == last_name):\n", - " H, W = last\n", - " else:\n", - " H, W = get_original_size(name)\n", - " last_name = name\n", - " last = (H, W)\n", - " if name not in ann:\n", - " ann[name] = {\"bbox\": [[] for i in range(len(dataset.CLASSES))], \"seg\": [[] for i in range(len(dataset.CLASSES))],\n", - " \"vis\": [[] for i in range(len(dataset.CLASSES))], \"rect\": [[] for i in range(len(dataset.CLASSES))]}\n", - " scale_factor = 1/float(items[1])\n", - " locx = int(float(items[2]))\n", - " locy = int(float(items[3]))\n", - " result = results[i]\n", - " bboxes = result[0]\n", - " segs = result[1]\n", - " for cls in range(len(dataset.CLASSES)):\n", - " bbox_cls = bboxes[cls]\n", - " seg_cls = segs[cls]\n", - " if(cls ==7):\n", - " if not(locx == 0 and locy==0):\n", - " continue\n", - " if( len(bbox_cls) > 0):\n", - " for bbox, rle in zip(bbox_cls, seg_cls):\n", - " xmin, ymin, xmax, ymax, score = bbox\n", - " xmin += locx\n", - " ymin += locy\n", - " xmax += locx\n", - " ymax += locy\n", - " bounding_box = np.array([xmin*scale_factor, ymin*scale_factor, xmax*scale_factor, ymax*scale_factor, score])\n", - " mask = MASK.decode(rle)\n", - " contours, hierarchy = cv2.findContours((mask).astype(np.uint8), cv2.RETR_TREE,\n", - " cv2.CHAIN_APPROX_SIMPLE)\n", - " areas = [cv2.contourArea(contour) for contour in contours]\n", - " if(len(areas) > 0):\n", - " index = np.argmax(areas)\n", - " contour = contours[index]\n", - " rect = cv2.minAreaRect(contour)\n", - " box = cv2.boxPoints(rect)\n", - " box += np.array([locx, locy])\n", - " center = np.array(rect[0])\n", - " size = np.array(rect[1])\n", - " angel = rect[2]\n", - " size *= scale_factor\n", - " center += np.array([locx, locy])\n", - " center *= scale_factor\n", - " rect = (tuple(center), tuple(size), angel )\n", - " \n", - " else:\n", - " continue\n", - " ann[name]['rect'][cls].append(rect)\n", - " ann[name][\"bbox\"][cls].append(bounding_box)\n", - " ann[name]['vis'][cls].append(np.array([box[0]*scale_factor, box[1]*scale_factor, box[2]*scale_factor, box[3]*scale_factor]))\n", - " poly = []\n", - " for point in box:\n", - " poly.append(point[0])\n", - " poly.append(point[1])\n", - " poly = np.array(poly, np.double)\n", - " poly = [poly*scale_factor]\n", - " rles = MASK.frPyObjects(poly, H, W)\n", - " rle = MASK.merge(rles)\n", - " ann[name][\"seg\"][cls].append(rle)\n", - "print(len(ann.keys()))\n", - "mmcv.dump(ann, \"./result/test_temp.pkl\") " - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "e49f35499e8a4d38b079ed50175ffaf3", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "HBox(children=(IntProgress(value=0, max=780), HTML(value='')))" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n" - ] - } - ], - "source": [ - "from mmdet.ops.nms import nms_wrapper\n", - "def nms(ann, thresh):\n", - " for name in tqdm(ann.keys()):\n", - " info = ann[name]\n", - " for cls in range(len(dataset.CLASSES)):\n", - " bbox = np.array(info['bbox'][cls], np.float32)\n", - " seg = np.array(info['seg'][cls])\n", - " vis = np.array(info['vis'][cls])\n", - " if(len(bbox)<=0):\n", - " continue\n", - " h, w = seg[0]['size']\n", - " #print(bbox.shape)\n", - " _, inds = nms_wrapper.nms(bbox, thresh)\n", - " # print(len(inds))\n", - " ann[name]['bbox'][cls] = bbox[inds]\n", - " ann[name]['seg'][cls] = seg[inds]\n", - " ann[name]['vis'][cls] = vis[inds]\n", - " return ann\n", - "thresh=0.5\n", - "# result = copy.deepcopy(ann)\n", - "ann = mmcv.load(\"./result/test_temp.pkl\")\n", - "result2 = nms(ann, thresh)\n", - "mmcv.dump(result2, \"./result/test_postnms.pkl\")" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "61dbe6c5ea1d4dfe9c186b6ccb96b25d", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "HBox(children=(IntProgress(value=0, max=780), HTML(value='')))" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n" - ] - } - ], - "source": [ - "def nms_rotate_cpu(boxes, scores, iou_threshold, max_output_size):\n", - " keep = []\n", - " order = scores.argsort()[::-1]\n", - " num = len(boxes)\n", - " suppressed = np.zeros((num), dtype=np.int)\n", - " for _i in range(num):\n", - " if len(keep) >= max_output_size:\n", - " break\n", - " i = order[_i]\n", - " if suppressed[i] == 1:\n", - " continue\n", - " keep.append(i)\n", - " r1 = boxes[i]\n", - " r1 = tuple(r1)\n", - " area_r1 = boxes[i][1][0] * boxes[i][1][1]\n", - " for _j in range(_i + 1, num):\n", - " j = order[_j]\n", - " if suppressed[i] == 1:\n", - " continue\n", - " r2 = boxes[j]\n", - " area_r2 = boxes[j][1][0] * boxes[j][1][1]\n", - " inter = 0.0\n", - " r2 = tuple(r2)\n", - " int_pts = cv2.rotatedRectangleIntersection(r1, r2)[1]\n", - " if int_pts is not None:\n", - " order_pts = cv2.convexHull(int_pts, returnPoints=True)\n", - " int_area = cv2.contourArea(order_pts)\n", - "# inter = int_area * 1.0 / (area_r1 + area_r2 - int_area + 0.0000001)\n", - " inter = int_area * 1.0 / min(area_r1+1e-5, area_r2+1e-5)\n", - "\n", - " if inter >= iou_threshold:\n", - " suppressed[j] = 1\n", - "\n", - " return np.array(keep, np.int64)\n", - "def rotate_nms(ann, thresh):\n", - " for name in tqdm(ann.keys()):\n", - " info = ann[name]\n", - " for cls in range(len(dataset.CLASSES)):\n", - " bbox = np.array(info['bbox'][cls], np.float32)\n", - " seg = np.array(info['seg'][cls])\n", - " vis = np.array(info['vis'][cls])\n", - " rect = info['rect'][cls]\n", - " if(len(bbox)<=0):\n", - " continue\n", - " scores = bbox[:, 4]\n", - " inds = nms_rotate_cpu(rect, scores, thresh, 1000)\n", - " ann[name]['bbox'][cls] = bbox[inds]\n", - " ann[name]['seg'][cls] = seg[inds]\n", - " ann[name]['vis'][cls] = vis[inds]\n", - "# ann[name]['rect'] = rect[inds]\n", - " return ann\n", - "thresh=0.5\n", - "# result = copy.deepcopy(ann)\n", - "ann = mmcv.load(\"./result/test_temp.pkl\")\n", - "result2 = rotate_nms(ann, thresh)\n", - "mmcv.dump(result2, \"./result/test_postnms.pkl\")" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "('tennis-court',\n", - " 'container-crane',\n", - " 'storage-tank',\n", - " 'baseball-diamond',\n", - " 'plane',\n", - " 'ground-track-field',\n", - " 'helicopter',\n", - " 'airport',\n", - " 'harbor',\n", - " 'ship',\n", - " 'large-vehicle',\n", - " 'swimming-pool',\n", - " 'soccer-ball-field',\n", - " 'roundabout',\n", - " 'basketball-court',\n", - " 'bridge',\n", - " 'small-vehicle',\n", - " 'helipad')" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "dataset.CLASSES" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "bbf41594be5e4e5c90d88fc35465ad61", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "HBox(children=(IntProgress(value=0, max=780), HTML(value='')))" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "tennis-court\n", - "1128\n", - "container-crane\n", - "1438\n", - "storage-tank\n", - "10928\n", - "baseball-diamond\n", - "383\n", - "plane\n", - "1672\n", - "ground-track-field\n", - "1194\n", - "helicopter\n", - "21\n", - "airport\n", - "903\n", - "harbor\n", - "5662\n", - "ship\n", - "25776\n", - "large-vehicle\n", - "8169\n", - "swimming-pool\n", - "1542\n", - "soccer-ball-field\n", - "797\n", - "roundabout\n", - "1751\n", - "basketball-court\n", - "683\n", - "bridge\n", - "4413\n", - "small-vehicle\n", - "43926\n", - "helipad\n", - "62\n" - ] - } - ], - "source": [ - "# result2 = mmcv.load(\"/home/xiongbaiqiao/competition/detection/test_postmerge.pkl\")\n", - "result2 = mmcv.load(\"./result/test_postnms.pkl\")\n", - "names = list(result2.keys())\n", - "res = { CLASSES[cls]: [] for cls in range(len(dataset.CLASSES)) }\n", - "for name in tqdm(names):\n", - " datadir = \"/home/xfr/rssid/data/test/images/\"\n", - " files = os.listdir(datadir)\n", - " img_name = \"\"\n", - " for file in files:\n", - " img_name = file.split(\".\")[0]\n", - " if(img_name == name):\n", - " break\n", - " filename = os.path.join(datadir, file)\n", - " img = cv2.imread(filename)\n", - " result = result2[name]\n", - " bboxes = result[\"bbox\"]\n", - " segs = result['vis']\n", - " for cls in range(len(dataset.CLASSES)):\n", - " curr_class = CLASSES[cls]\n", - " bbox_cls = bboxes[cls]\n", - " seg_cls = segs[cls]\n", - " if( len(bbox_cls) > 0):\n", - " for bbox, rle in zip(bbox_cls, seg_cls):\n", - " rle = np.array(rle)\n", - " xmin, ymin, xmax, ymax, score = bbox\n", - " location = list(rle.flatten())\n", - " location = [str(int(x)) for x in location]\n", - " if(score<0.05):\n", - " continue\n", - " out = name + \" \"+str(score)+ \" \"+\" \".join(location)\n", - " res[curr_class].append(out)\n", - " cv2.putText(img, CLASSES[cls] + str(score), (int(xmin), int(ymin)), cv2.FONT_HERSHEY_COMPLEX, 1, (0, 0, 255), 2)\n", - " \n", - " cv2.polylines(img, np.array([rle], np.int32), 1, (0, 255, 0), 1)\n", - " #cv2.poly(img, np.array([rle], np.int32), (0,))\n", - " cv2.imwrite(\"./result/test2/{}.jpg\".format(name), img)\n", - "for key in res.keys():\n", - " print(key)\n", - " fp = open(\"./result/detection/\"+key+\".txt\", 'w')\n", - " print(len(res[key]))\n", - " for line in res[key]:\n", - " fp.write(line+\"\\n\")\n", - " fp.close()" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "ca79a2972737467d8444574e6d85da1c", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "HBox(children=(IntProgress(value=0, max=780), HTML(value='')))" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n" - ] - } - ], - "source": [ - "from mmdet.ops.nms import nms_wrapper\n", - "def nms(ann, thresh):\n", - " for name in tqdm(ann.keys()):\n", - " info = ann[name]\n", - " for cls in range(len(dataset.CLASSES)):\n", - " bbox = np.array(info['bbox'][cls], np.float32)\n", - " seg = np.array(info['seg'][cls])\n", - " vis = np.array(info['vis'][cls])\n", - " if(len(bbox)<=0):\n", - " continue\n", - " h, w = seg[0]['size']\n", - " #print(bbox.shape)\n", - " _, inds = nms_wrapper.nms(bbox, thresh)\n", - " # print(len(inds))\n", - " ann[name]['bbox'][cls] = bbox[inds]\n", - " ann[name]['seg'][cls] = seg[inds]\n", - " ann[name]['vis'][cls] = vis[inds]\n", - " return ann\n", - "thresh=0.5\n", - "# result = copy.deepcopy(ann)\n", - "ann = mmcv.load(\"./result/test_temp.pkl\")\n", - "result2 = nms(ann, thresh)\n", - "mmcv.dump(result2, \"./result/test_postnms.pkl\")" - ] - }, - { - "cell_type": "code", - "execution_count": 74, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "'/home/xfr/git_mm/mmdetection'" - ] - }, - "execution_count": 74, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "pwd" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "mm", - "language": "python", - "name": "mmdet" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.6.8" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/tools/demo.py b/tools/demo.py index 3e030cf..b2768ba 100644 --- a/tools/demo.py +++ b/tools/demo.py @@ -23,34 +23,12 @@ def main(): # config_file = args.config # checkpoint_file = args.checkpoint # p = Pool(4) - config_file = "./configs/rscup/htc_sy.py" - checkpoint_file = "./work_dirs/htc_sy/epoch_12.pth" - # model = init_detector(config_file, checkpoint_file) - # print(model.CLASSES) - # pbar = tqdm(total=100) - # def update(*a): - # pbar.update() - # rets = [] - # for i in range(100): - # img = './result/demo/7.jpg' - # # torch.multiprocessing.spawn(inference_detector, args=(model, img), nprocs=2, join=True, daemon=False) - # rets.append(p.apply_async(inference_detector, args=(model, img), callback=update())) - # for ret in rets: - # a = ret.get() - num_processes = 4 - img = './result/demo/7.jpg' + config_file = "./configs/rscup/htc_res50.py" + checkpoint_file = "./work_dirs/htc_res50/epoch_12.pth" model = init_detector(config_file, checkpoint_file) - model.cuda() - # NOTE: this is required for the ``fork`` method to work - model.share_memory() - processes = [] - for rank in range(num_processes): - p = mp.Process(target=inference_detector, args=(model, img)) - p.start() - processes.append(p) - for p in processes: - p.join() - + print(model.CLASSES) + img = './result/demo/7.jpg' + results = inference_detector(model, img) if __name__ == '__main__': main() \ No newline at end of file diff --git a/vis.ipynb b/vis.ipynb deleted file mode 100644 index 634b3de..0000000 --- a/vis.ipynb +++ /dev/null @@ -1,143 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "import pickle\n", - "import json\n", - "import mmcv\n", - "from tqdm import tqdm_notebook as tqdm\n", - "from mmdet.datasets import build_dataloader, get_dataset\n", - "from pycocotools.coco import COCO\n", - "import pycocotools.coco as cocoapi\n", - "import pycocotools.mask as MASK\n", - "\n", - "import cv2\n", - "from icecream import ic\n", - "import matplotlib.pyplot as plt\n", - "from mmdet.models import build_detector\n", - "from mmcv.runner import load_checkpoint, get_dist_info\n", - "import numpy as np\n", - "CLASSES = ('tennis-court', 'container-crane', 'storage-tank', 'baseball-diamond', 'plane','ground-track-field',\n", - " 'helicopter', 'harbor', 'ship', 'large-vehicle', 'swimming-pool', 'soccer-ball-field',\n", - " 'roundabout', 'basketball-court', 'bridge', 'small-vehicle', 'helipad')\n", - "cfg = mmcv.Config.fromfile(\"configs/rs_cascade_mask_rcnn_r50_fpn_1x.py\")\n", - "results = mmcv.load(\"results.pkl\")\n", - "result_bbox = mmcv.load(\"results.pkl.bbox.json\", file_format=\"json\")\n", - "print(len(result_bbox))\n", - "dataset = get_dataset(cfg.data.test)\n", - "print((results[0][1][0]))\n", - "img_infos = dataset.load_annotations(\"/home/xfr/mmdetection/data/rscup/annotation/annos_rscup_val.json\")\n", - "a = json.load(open(\"/home/xfr/mmdetection/data/rscup/annotation/annos_rscup_train.json\"))\n", - "print(a[\"categories\"])\n", - "m = []\n", - "for key in a[\"categories\"]:\n", - " m.append(key['name'])\n", - "print(m)\n", - "ann = {}\n", - "num_cls = set()\n", - "last_name = \"\"\n", - "last = \"\"\n", - "for i in tqdm(range(len(results))):\n", - " filename = img_infos[i]['filename']\n", - " img = cv2.imread(\"./data/rscup/val/\" + filename)\n", - " h, w, _ = img.shape\n", - " items = filename.split(\"_\")\n", - " name = items[0]\n", - " if(name == last_name):\n", - " H, W = last\n", - " else:\n", - " H, W = get_original_size(name)\n", - " last_name = name\n", - " last = (H, W)\n", - " if name not in ann:\n", - " ann[name] = {\"bbox\": [[] for i in range(len(dataset.CLASSES))], \"seg\": [[] for i in range(len(dataset.CLASSES))]}\n", - " locx = int(float(items[1]))\n", - " locy = int(float(items[2]))\n", - " result = results[i]\n", - " bboxes = result[0]\n", - " segs = result[1]\n", - " for cls in range(len(dataset.CLASSES)):\n", - " bbox_cls = bboxes[cls]\n", - " seg_cls = segs[cls]\n", - " if( len(bbox_cls) > 0):\n", - " for bbox, rle in zip(bbox_cls, seg_cls):\n", - " xmin, ymin, xmax, ymax, score = bbox\n", - "# cv2.rectangle(img, (xmin, ymin), (xmax, ymax), (0,0,255), 2)\n", - "# cv2.putText(img, str(cls), (int(xmin), int(ymin)), cv2.FONT_HERSHEY_COMPLEX, 1, (0, 0, 255), 2)\n", - " xmin += locx\n", - " ymin += locy\n", - " xmax += locx\n", - " ymax += locy\n", - " num_cls.add(cls)\n", - " ann[name][\"bbox\"][cls].append([xmin, ymin, xmax, ymax, score])\n", - " mask = MASK.decode(rle)\n", - "\n", - " contours, hierarchy = cv2.findContours((mask).astype(np.uint8), cv2.RETR_TREE,\n", - " cv2.CHAIN_APPROX_SIMPLE)\n", - " areas = [cv2.contourArea(contour) for contour in contours]\n", - " index = np.argmax(areas)\n", - " contour = contours[index]\n", - " rect = cv2.minAreaRect(contour)\n", - " box = cv2.boxPoints(rect)\n", - " temp = np.array([box], np.int32)\n", - "# cv2.polylines(img, temp, 1, (0, 255, 0), 1)\n", - "# cv2.fillPoly(img, temp, 255)\n", - " box += np.array([locx, locy])\n", - "# poly = []\n", - "# for point in box:\n", - "# poly.append(point[0])\n", - "# poly.append(point[1])\n", - "# poly = np.array(poly, np.double)\n", - "# poly = [poly]\n", - "# rles = MASK.frPyObjects(poly, H, W)\n", - "# rle = MASK.merge(rles)\n", - " ann[name][\"seg\"][cls].append(box)\n", - " # cv2.imwrite(\"./vis/\"+filename, img)\n", - "print(len(ann.keys()))\n", - " #coco_eval(result_file, eval_types, dataset.coco)\n", - " # nms\n", - " # toBbox\n", - " # box - mask - rle\n", - " # rles = maskUtils.frPyObjects(segm, h, w)\n", - " # rle = maskUtils.merge(rles)\n", - " " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "mm", - "language": "python", - "name": "mmdet" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.6.8" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -}