diff --git a/figures/figure-1.png b/figures/figure-1.png
new file mode 100644
index 0000000..b3188af
Binary files /dev/null and b/figures/figure-1.png differ
diff --git a/figures/figure-2.png b/figures/figure-2.png
new file mode 100644
index 0000000..9ffd184
Binary files /dev/null and b/figures/figure-2.png differ
diff --git a/figures/figure-3.png b/figures/figure-3.png
new file mode 100644
index 0000000..860e66d
Binary files /dev/null and b/figures/figure-3.png differ
diff --git a/notebooks/.ipynb_checkpoints/portable-full-comparison-checkpoint.ipynb b/notebooks/.ipynb_checkpoints/portable-full-comparison-checkpoint.ipynb
new file mode 100644
index 0000000..cc56db2
--- /dev/null
+++ b/notebooks/.ipynb_checkpoints/portable-full-comparison-checkpoint.ipynb
@@ -0,0 +1,1313 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "id": "6c9b37e2-2daa-4283-a228-ea581498de0c",
+ "metadata": {
+ "tags": [],
+ "user_expressions": []
+ },
+ "source": [
+ "## AB testing access time for ICESat-2 ATL03 HDF5 files in the cloud.\n",
+ "\n",
+ "This notebook requires that we have cloud optimized versions of an HDF5 file:\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "id": "3b78fb94-10ae-48cb-8e30-521b2c8b7822",
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "import xarray as xr\n",
+ "import h5py\n",
+ "import fsspec\n",
+ "import s3fs\n",
+ "import logging\n",
+ "import re\n",
+ "import time\n",
+ "import numpy as np\n",
+ "import zarr\n",
+ "import pandas as pd\n",
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "\n",
+ "from h5coro import h5coro, s3driver, filedriver\n",
+ "driver = s3driver.S3Driver\n",
+ "\n",
+ "logger = logging.getLogger('fsspec')\n",
+ "logger.setLevel(logging.DEBUG)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "id": "431d900d-0656-4b75-af6b-82f0f171d5f8",
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "xarray v2024.6.0\n",
+ "h5py v3.11.0\n",
+ "fsspec v2024.6.0\n",
+ "h5coro v0.0.6\n",
+ "zarr v2.18.2\n"
+ ]
+ }
+ ],
+ "source": [
+ "for library in (xr, h5py, fsspec, h5coro, zarr):\n",
+ " print(f'{library.__name__} v{library.__version__}')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "7998cd99-6034-4a1b-9ae5-d651bc265bff",
+ "metadata": {
+ "tags": []
+ },
+ "source": [
+ "For listing available test files\n",
+ "\n",
+ "```bash\n",
+ "aws s3 ls s3://its-live-data/test-space/cloud-experiments/h5cloud/ --recursive\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "id": "9850faac-f534-4bc2-9214-c8dababe0f52",
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "test_dict = {\n",
+ " \"1GB\": {\n",
+ " \"links\": {\n",
+ " \"original\": \"s3://its-live-data/test-space/cloud-experiments/h5cloud/atl03/ATL03_20230618223036_13681901_006_01.h5\",\n",
+ " \"original-kerchunk\": \"s3://its-live-data/test-space/cloud-experiments/h5cloud/atl03/ATL03_20230618223036_13681901_006_01.json\",\n",
+ " \"page-only-4mb\": \"s3://its-live-data/test-space/cloud-experiments/h5cloud/atl03/ATL03_20230618223036_13681901_006_01-page-only-4mb.h5\",\n",
+ " \"page-only-8mb\": \"s3://its-live-data/test-space/cloud-experiments/h5cloud/atl03/ATL03_20230618223036_13681901_006_01-page-only-4mb.h5\",\n",
+ " \"rechunked-4mb\": \"s3://its-live-data/test-space/cloud-experiments/h5cloud/atl03/ATL03_20230618223036_13681901_006_01_rechunked-100k-page-4mb.h5\",\n",
+ " \"rechunked-8mb\": \"s3://its-live-data/test-space/cloud-experiments/h5cloud/atl03/ATL03_20230618223036_13681901_006_01_rechunked-100k-page-8mb.h5\",\n",
+ " \"rechunked-8mb-kerchunk\": \"s3://its-live-data/test-space/cloud-experiments/h5cloud/atl03/ATL03_20230618223036_13681901_006_01_rechunked-100k-page-8mb.json\",\n",
+ " \n",
+ " },\n",
+ " \"group\": \"/gt1l/heights\",\n",
+ " \"variable\": \"h_ph\"\n",
+ " },\n",
+ " \"7GB\": {\n",
+ " \"links\": {\n",
+ " \"original\": \"s3://its-live-data/test-space/cloud-experiments/h5cloud/atl03/ATL03_20181120182818_08110112_006_02.h5\",\n",
+ " \"original-kerchunk\": \"s3://its-live-data/test-space/cloud-experiments/h5cloud/atl03/ATL03_20181120182818_08110112_006_02.json\",\n",
+ " \"page-only-4mb\": \"s3://its-live-data/test-space/cloud-experiments/h5cloud/atl03/ATL03_20181120182818_08110112_006_02-page-only-4mb.h5\",\n",
+ " \"page-only-8mb\": \"s3://its-live-data/test-space/cloud-experiments/h5cloud/atl03/ATL03_20181120182818_08110112_006_02-page-only-8mb.h5\",\n",
+ " \"rechunked-4mb\": \"s3://its-live-data/test-space/cloud-experiments/h5cloud/atl03/ATL03_20181120182818_08110112_006_02_rechunked-100k-page-4mb.h5\",\n",
+ " \"rechunked-8mb\": \"s3://its-live-data/test-space/cloud-experiments/h5cloud/atl03/ATL03_20181120182818_08110112_006_02_rechunked-100k-page-8mb.h5\",\n",
+ " \"rechunked-8mb-kerchunk\": \"s3://its-live-data/test-space/cloud-experiments/h5cloud/atl03/ATL03_20181120182818_08110112_006_02_rechunked-100k-page-8mb.json\",\n",
+ " },\n",
+ " \"group\": \"/gt1l/heights\",\n",
+ " \"variable\": \"h_ph\"\n",
+ " }\n",
+ "}\n",
+ "\n",
+ "# This will use the embedded credentials in the hub to access the s3://nasa-cryo-persistent bucket\n",
+ "fs = s3fs.S3FileSystem(anon=True)\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "4d166627-6144-40bf-884d-2188e5c764ba",
+ "metadata": {
+ "tags": [],
+ "user_expressions": []
+ },
+ "source": [
+ "## [h5coro](https://github.com/ICESat2-SlideRule/h5coro/)\n",
+ "\n",
+ "**h5coro** is optimized for reading HDF5 data in high-latency high-throughput environments. It accomplishes this through a few key design decisions:\n",
+ "* __All reads are concurrent.__ Each dataset and/or attribute read by **h5coro** is performed in its own thread.\n",
+ "* __Intelligent range gets__ are used to read as many dataset chunks as possible in each read operation. This drastically reduces the number of HTTP requests to S3 and means there is no longer a need to re-chunk the data (it actually works better on smaller chunk sizes due to the granularity of the request).\n",
+ "* __Block caching__ is used to minimize the number of GET requests made to S3. S3 has a large first-byte latency (we've measured it at ~60ms on our systems), which means there is a large penalty for each read operation performed. **h5coro** performs all reads to S3 as large block reads and then maintains data in a local cache for access to smaller amounts of data within those blocks.\n",
+ "* __The system is serverless__ and does not depend on any external services to read the data. This means it scales naturally as the user application scales, and it reduces overall system complexity.\n",
+ "* __No metadata repository is needed.__ The structure of the file are cached as they are read so that successive reads to other datasets in the same file will not have to re-read and re-build the directory structure of the file.\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
+ "id": "efe41d4a-1947-438b-a3c3-7ab954d75e13",
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Processing format: original, link: s3://its-live-data/test-space/cloud-experiments/h5cloud/atl03/ATL03_20230618223036_13681901_006_01.h5\n",
+ "Skipping s3://its-live-data/test-space/cloud-experiments/h5cloud/atl03/ATL03_20230618223036_13681901_006_01.json\n",
+ "Processing format: page-only-4mb, link: s3://its-live-data/test-space/cloud-experiments/h5cloud/atl03/ATL03_20230618223036_13681901_006_01-page-only-4mb.h5\n",
+ "Processing format: page-only-8mb, link: s3://its-live-data/test-space/cloud-experiments/h5cloud/atl03/ATL03_20230618223036_13681901_006_01-page-only-4mb.h5\n",
+ "Processing format: rechunked-4mb, link: s3://its-live-data/test-space/cloud-experiments/h5cloud/atl03/ATL03_20230618223036_13681901_006_01_rechunked-100k-page-4mb.h5\n",
+ "Processing format: rechunked-8mb, link: s3://its-live-data/test-space/cloud-experiments/h5cloud/atl03/ATL03_20230618223036_13681901_006_01_rechunked-100k-page-8mb.h5\n",
+ "Skipping s3://its-live-data/test-space/cloud-experiments/h5cloud/atl03/ATL03_20230618223036_13681901_006_01_rechunked-100k-page-8mb.json\n",
+ "Processing format: original, link: s3://its-live-data/test-space/cloud-experiments/h5cloud/atl03/ATL03_20181120182818_08110112_006_02.h5\n",
+ "Skipping s3://its-live-data/test-space/cloud-experiments/h5cloud/atl03/ATL03_20181120182818_08110112_006_02.json\n",
+ "Processing format: page-only-4mb, link: s3://its-live-data/test-space/cloud-experiments/h5cloud/atl03/ATL03_20181120182818_08110112_006_02-page-only-4mb.h5\n",
+ "Processing format: page-only-8mb, link: s3://its-live-data/test-space/cloud-experiments/h5cloud/atl03/ATL03_20181120182818_08110112_006_02-page-only-8mb.h5\n",
+ "Processing format: rechunked-4mb, link: s3://its-live-data/test-space/cloud-experiments/h5cloud/atl03/ATL03_20181120182818_08110112_006_02_rechunked-100k-page-4mb.h5\n",
+ "Processing format: rechunked-8mb, link: s3://its-live-data/test-space/cloud-experiments/h5cloud/atl03/ATL03_20181120182818_08110112_006_02_rechunked-100k-page-8mb.h5\n",
+ "Skipping s3://its-live-data/test-space/cloud-experiments/h5cloud/atl03/ATL03_20181120182818_08110112_006_02_rechunked-100k-page-8mb.json\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " tool | \n",
+ " dataset | \n",
+ " cloud-aware | \n",
+ " format | \n",
+ " file | \n",
+ " time | \n",
+ " shape | \n",
+ " mean | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " h5coro | \n",
+ " 1GB | \n",
+ " no | \n",
+ " original | \n",
+ " s3://its-live-data/test-space/cloud-experiment... | \n",
+ " 15.046684 | \n",
+ " (9720204,) | \n",
+ " 386.067383 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " h5coro | \n",
+ " 1GB | \n",
+ " no | \n",
+ " page-only-4mb | \n",
+ " s3://its-live-data/test-space/cloud-experiment... | \n",
+ " 19.098737 | \n",
+ " (9720204,) | \n",
+ " 386.067383 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " h5coro | \n",
+ " 1GB | \n",
+ " no | \n",
+ " page-only-8mb | \n",
+ " s3://its-live-data/test-space/cloud-experiment... | \n",
+ " 9.906620 | \n",
+ " (9720204,) | \n",
+ " 386.067383 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " h5coro | \n",
+ " 1GB | \n",
+ " no | \n",
+ " rechunked-4mb | \n",
+ " s3://its-live-data/test-space/cloud-experiment... | \n",
+ " 14.992573 | \n",
+ " (9720204,) | \n",
+ " 386.067383 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " h5coro | \n",
+ " 1GB | \n",
+ " no | \n",
+ " rechunked-8mb | \n",
+ " s3://its-live-data/test-space/cloud-experiment... | \n",
+ " 17.416383 | \n",
+ " (9720204,) | \n",
+ " 386.067383 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " h5coro | \n",
+ " 7GB | \n",
+ " no | \n",
+ " original | \n",
+ " s3://its-live-data/test-space/cloud-experiment... | \n",
+ " 53.325380 | \n",
+ " (46484912,) | \n",
+ " 1035.163086 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " h5coro | \n",
+ " 7GB | \n",
+ " no | \n",
+ " page-only-4mb | \n",
+ " s3://its-live-data/test-space/cloud-experiment... | \n",
+ " 61.361221 | \n",
+ " (46484912,) | \n",
+ " 1035.163086 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " h5coro | \n",
+ " 7GB | \n",
+ " no | \n",
+ " page-only-8mb | \n",
+ " s3://its-live-data/test-space/cloud-experiment... | \n",
+ " 53.559258 | \n",
+ " (46484912,) | \n",
+ " 1035.163086 | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " h5coro | \n",
+ " 7GB | \n",
+ " no | \n",
+ " rechunked-4mb | \n",
+ " s3://its-live-data/test-space/cloud-experiment... | \n",
+ " 52.564497 | \n",
+ " (46484912,) | \n",
+ " 1035.163086 | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " h5coro | \n",
+ " 7GB | \n",
+ " no | \n",
+ " rechunked-8mb | \n",
+ " s3://its-live-data/test-space/cloud-experiment... | \n",
+ " 59.514650 | \n",
+ " (46484912,) | \n",
+ " 1035.163086 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " tool dataset cloud-aware format \\\n",
+ "0 h5coro 1GB no original \n",
+ "1 h5coro 1GB no page-only-4mb \n",
+ "2 h5coro 1GB no page-only-8mb \n",
+ "3 h5coro 1GB no rechunked-4mb \n",
+ "4 h5coro 1GB no rechunked-8mb \n",
+ "5 h5coro 7GB no original \n",
+ "6 h5coro 7GB no page-only-4mb \n",
+ "7 h5coro 7GB no page-only-8mb \n",
+ "8 h5coro 7GB no rechunked-4mb \n",
+ "9 h5coro 7GB no rechunked-8mb \n",
+ "\n",
+ " file time shape \\\n",
+ "0 s3://its-live-data/test-space/cloud-experiment... 15.046684 (9720204,) \n",
+ "1 s3://its-live-data/test-space/cloud-experiment... 19.098737 (9720204,) \n",
+ "2 s3://its-live-data/test-space/cloud-experiment... 9.906620 (9720204,) \n",
+ "3 s3://its-live-data/test-space/cloud-experiment... 14.992573 (9720204,) \n",
+ "4 s3://its-live-data/test-space/cloud-experiment... 17.416383 (9720204,) \n",
+ "5 s3://its-live-data/test-space/cloud-experiment... 53.325380 (46484912,) \n",
+ "6 s3://its-live-data/test-space/cloud-experiment... 61.361221 (46484912,) \n",
+ "7 s3://its-live-data/test-space/cloud-experiment... 53.559258 (46484912,) \n",
+ "8 s3://its-live-data/test-space/cloud-experiment... 52.564497 (46484912,) \n",
+ "9 s3://its-live-data/test-space/cloud-experiment... 59.514650 (46484912,) \n",
+ "\n",
+ " mean \n",
+ "0 386.067383 \n",
+ "1 386.067383 \n",
+ "2 386.067383 \n",
+ "3 386.067383 \n",
+ "4 386.067383 \n",
+ "5 1035.163086 \n",
+ "6 1035.163086 \n",
+ "7 1035.163086 \n",
+ "8 1035.163086 \n",
+ "9 1035.163086 "
+ ]
+ },
+ "execution_count": 22,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "h5coro_beanchmarks = []\n",
+ "\n",
+ "for key, dataset in test_dict.items():\n",
+ " for k, link in dataset[\"links\"].items():\n",
+ " if \"kerchunk\" in k or link.endswith(\".json\"):\n",
+ " print(f\"Skipping {link}\")\n",
+ " continue\n",
+ " print (f\"Processing format: {k}, link: {link}\")\n",
+ " group = dataset[\"group\"]\n",
+ " variable = dataset['variable'] \n",
+ " final_h5coro_array = []\n",
+ " start = time.time()\n",
+ " if link.startswith(\"s3://nasa-cryo-persistent/\"):\n",
+ " h5obj = h5coro.H5Coro(link.replace(\"s3://\", \"\"), s3driver.S3Driver)\n",
+ " else:\n",
+ " h5obj = h5coro.H5Coro(link.replace(\"s3://\", \"\"), s3driver.S3Driver, credentials={\"annon\": True})\n",
+ " ds = h5obj.readDatasets(datasets=[f'{group}/{variable}'], block=True)\n",
+ " data = ds[f'{group}/{variable}']\n",
+ " data_mean = np.mean(data)\n",
+ " elapsed = time.time() - start\n",
+ " \n",
+ " h5coro_beanchmarks.append({\"tool\": \"h5coro\",\n",
+ " \"dataset\": key,\n",
+ " \"cloud-aware\": \"no\",\n",
+ " \"format\": k,\n",
+ " \"file\": link,\n",
+ " \"time\": elapsed,\n",
+ " \"shape\": data.shape,\n",
+ " \"mean\": data_mean})\n",
+ "\n",
+ "df = pd.DataFrame.from_dict(h5coro_beanchmarks)\n",
+ "df"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 23,
+ "id": "42821313-904d-4b1b-a139-9cc5b05021d1",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0oAAAIhCAYAAABwnkrAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAABn4UlEQVR4nO3deVxU9f7H8ffIvgguKUuB4L5voeWSYqamZpaVpbmb173MVDRLyQVzS1JTs+tCmWk3l+vNrMx9ycQFc0uLMC1FLBV3UDi/P3wwP+cACgoOwuv5eMzjwXzP93zP5xxnGN98zzljMQzDEAAAAADAqpC9CwAAAACAvIagBAAAAAAmBCUAAAAAMCEoAQAAAIAJQQkAAAAATAhKAAAAAGBCUAIAAAAAE4ISAAAAAJgQlAAAAADAhKAEIEvCw8NlsVj0999/37FvaGioLBZLusfTTz99Hyq1D4vFovDwcLtsOzQ0VKGhofd9uydPnlR4eLhiYmLSLUt7veSk3BgzK7J6fIOCgvTMM89kuGzXrl2yWCxauHChtW3hwoU27w9XV1f5+vqqSZMmmjBhghISEtKNk3YMMnrMnDnTppaM+vTp0yfb+38/LF26VFWqVJGbm5ssFkuGrykAuN8c7V0AgPypdOnS+vzzz23aihQpYp9ikCtOnjyp9957T0FBQapZs6bNstdeey3Hg3FujJkXLFiwQBUrVtT169eVkJCgrVu3auLEiZoyZYqWLl2qp556Kt063377rby9vW3agoODbZ43aNBAU6ZMsWnz8fHJ+R24R2fOnFHnzp319NNPa9asWXJxcVH58uXtXRYAEJQA5A43Nzc9/vjjdq0hJSVFN27ckIuLi13rKIgeeeQRPfLII3l+zLygatWqCgkJsT5/4YUX9Oabb6phw4Zq166dfv3113QB59FHH9VDDz1023GLFCli9/fg7Vy9elWurq46evSorl+/rk6dOqlx48Y5MvaVK1fk7u6eI2MBKLg49Q5Atpw+fVodOnSQt7e3fHx81KNHDyUmJt71eH/99Zf+9a9/KSAgQM7OzvL399eLL76o06dPW/scP35cnTp1UsmSJeXi4qJKlSpp6tSpSk1NtfY5duyYLBaLJk2apHHjxik4OFguLi7asGGDJGnVqlWqV6+e3N3dVbhwYTVr1kw//vhjlmo8f/683nrrLZUuXVouLi4qWbKkWrVqpV9++eW26x04cEBt27ZV0aJF5erqqpo1ayoqKsqmT9rpV8eOHbNp37hxoywWizZu3GhtMwxDkyZNUqlSpeTq6qratWtrzZo1WdoHSbp27ZpGjBih4OBgOTs76+GHH1b//v11/vx5m35pp5CtWLFC1atXl6urq0qXLq3p06fb1FenTh1JUvfu3a2ndqWdfpjRaXJp43799deqVauW3NzcVKlSJX399dfWY1GpUiV5eHiobt262rVrl8365jHNp67d+rj1VDnDMDRr1izVrFlTbm5uKlq0qF588UX9/vvvNuPf6/HNSYGBgZo6daouXryojz/++L5uO+21t2jRIg0ePFi+vr5yc3NT48aNtXfv3nT9d+3apWeffVbFihWTq6uratWqpS+//NKmT9q/1ffff68ePXqoRIkScnd3V4cOHdSwYUNJ0ssvv5zu3y4r79u018WePXv04osvqmjRoipTpoyke3/N7dq1S6+88oqCgoLk5uamoKAgdejQQX/88UeG+7dhwwb17dtXDz30kIoXL6527drp5MmT6Y7Z4sWLVa9ePXl6esrT01M1a9bUvHnzbPr88MMPatq0qby8vOTu7q4GDRpo3bp1t/unA5DDCEoAsuWFF15Q+fLltWzZMg0fPlyLFy/Wm2++ma5fbGysihUrJkdHR5UpU0YjR47U1atXbfr89ddfqlOnjlasWKHBgwdrzZo1ioyMlLe3t86dOyfp5mk59evX1/fff6+xY8dq1apVeuqppzRkyBANGDAg3XanT5+u9evXa8qUKVqzZo0qVqyoxYsXq23btvLy8tIXX3yhefPm6dy5cwoNDdXWrVtvu78XL15Uw4YN9fHHH6t79+763//+pzlz5qh8+fI6depUpusdOXJE9evX18GDBzV9+nQtX75clStXVrdu3TRp0qSsHOp03nvvPYWFhalZs2ZauXKl+vbtq169eunIkSN3XNcwDD333HOaMmWKOnfurNWrV2vw4MGKiorSk08+qaSkJJv+MTExGjRokN58802tWLFC9evX1xtvvGE9lat27dpasGCBJOmdd97Rjz/+qB9//FGvvfbabevYt2+fRowYobCwMC1fvlze3t5q166dRo8erX//+9+KiIjQ559/rsTERD3zzDPpXjO3at26tXW7aY8PPvhAklSlShVrv969e2vQoEF66qmntHLl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VX3yyScqWrRouuVBQUEaN26cunTpIk9PT5UqVUr//e9/debMGbVt21aenp6qVq2adu3alW7dlStXqnz58nJ1dVWzZs104sSJ29YCAACABwdB6QEWFRUlR0dH/fTTT5o+fbqmTZumf//735Kk5ORkjR07Vvv27dPKlSsVFxenbt26Wdc9duyYXnzxRT333HOKiYlR7969NXLkSJvx9+/frxYtWqhdu3b6+eeftXTpUm3dulUDBgy4bV3Dhg3TsmXLFBUVpT179qhs2bJq0aKFzp49a9Nv5MiRmjp1qnbt2iVHR0f16NEjw/EaNWqk0qVL67PPPrO23bhxQ4sWLVL37t1vW0v//v3VunVrPfXUU5n2mTZtmho0aKC9e/eqdevW6ty5s7p06aJOnTpZ6+/SpYs1hErSlStXNH78eEVFRWnbtm26cOGCXnnlldvWAgAAgAcHN3N4gAUEBGjatGmyWCyqUKGC9u/fr2nTpqlXr142oaN06dKaPn266tatq0uXLsnT01Nz5sxRhQoVNHnyZElShQoVdODAAY0fP9663uTJk9WxY0frdT3lypXT9OnT1bhxY82ePVuurq7parp8+bJmz56thQsXqmXLlpKkTz75RGvXrtW8efM0dOhQa9/x48ercePGkqThw4erdevWunbtWobj9uzZUwsWLLCuv3r1al25ckXt27fP9PgsWbJEe/bssZnNykirVq3Uu3dvSdKoUaM0e/Zs1alTRy+99JIkKSwsTPXq1dPp06fl6+srSbp+/bpmzpypxx57TNLN0FqpUiXt3LlTdevWve32AAAAkPcxo/QAe/zxx2WxWKzP69Wrp19//VUpKSnau3ev2rZtq1KlSqlw4cIKDQ2VJB0/flySdOTIEdWpU8dmPPN/8Hfv3q2FCxfK09PT+mjRooVSU1MVFxeniIgIm2XHjx9XbGysrl+/rgYNGljHcXJyUt26dXX48GGb8W+9ZsjPz0+S0p0emKZbt2767bfftGPHDknS/Pnz1b59e3l4eGjLli02dXz++ec6ceKE3njjDS1atCjD4JVZHT4+PpKkatWqpWu7tTZHR0eFhIRYn1esWFFFihRJt48AAAB4MDGjlA9du3ZNzZs3V/PmzbVo0SKVKFFCx48fV4sWLZScnCxJMgzDJmSltd0qNTVVvXv31uuvv55uG4GBgerTp4/NjI6/v7/OnTsnSRmObW5zcnKy/py2LDU1NcN9KlmypNq0aaMFCxaodOnS+uabb7Rx40ZJUkhIiM1txH18fLRu3TolJCTo0UcftbanpKRo8+bNmjlzppKSkuTg4JBpHVmpzbw/mbUBAADgwUNQeoClza7c+rxcuXL65Zdf9Pfff+v9999XQECAJKW7GUHFihX1zTff2LSZ+9SuXVsHDx5U2bJlM9x+sWLFVKxYMZu2smXLytnZWVu3blXHjh0l3TxNbdeuXfd8a+7XXntNr7zyih555BGVKVPGOmvl5uaWrsamTZtq//79Nm3du3dXxYoVFRYWZg1Jd+vGjRvatWuXdRbuyJEjOn/+vCpWrHhP4wIAACBv4NS7B9iJEyc0ePBgHTlyRF988YVmzJihN954Q4GBgXJ2dtaMGTP0+++/a9WqVRo7dqzNur1799Yvv/yisLAwHT16VF9++aUWLlwo6f9nRcLCwvTjjz+qf//+iomJ0a+//qpVq1Zp4MCBmdbk4eGhvn37aujQofr222916NAh9erVS1euXFHPnj3vaX9btGghb29vjRs37o43cShcuLCqVq1q8/Dw8FDx4sVVtWrVe6pDujnjNHDgQP3000/as2ePunfvrscff5zrkwAAAPIJZpQyE55o7wruqEuXLrp69arq1q0rBwcHDRw4UP/6179ksVi0cOFCvf3225o+fbpq166tKVOm6Nlnn7WuGxwcrK+++kpvvfWWPvzwQ9WrV08jR45U37595eLiIunmtTubNm3SyJEj9cQTT8gwDJUpU0Yvv/zybet6//33lZqaqs6dO+vixYsKCQnRd999l+HtubOjUKFC6tatmyIiItSlS5d7Guteubu7KywsTB07dtSff/6phg0bav78+XatCQAAADnHYpgvTMlnLly4IG9vbyUmJsrLy8tm2bVr1xQXF6fg4OA7XvCf14SGhqpmzZqKjIzMsTHHjx+vOXPm5OnvA+rVq5dOnz6tVatW2buUe/Igv/YAIF8K97Z3BZl7AP54m9d81Ge9vUvIVP85T9q7hALtdtnAjBmlAmzWrFmqU6eOihcvrm3btmny5Ml3/I4ke0lMTFR0dLQ+//xz/fe//7V3OQAAAMjnCEoF2K+//qpx48bp7NmzCgwM1FtvvaURI0bYu6wMtW3bVjt37lTv3r3VrFkze5cDAACAfI6g9IBKuzX2vZg2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+rxbt2567rnnNGXKFPn5+al48eLq37+/rl+/num+LFiwQN7e3lq7dq0k3XE/Ll++rC5dusjT01N+fn6aOnVqlo/bvn379MEHH2j+/Pnplh07dkwWi0VffvmlnnjiCbm5ualOnTo6evSooqOjFRISIk9PTz399NM6c+ZMuvXfe+89lSxZUl5eXurduzfhFQAA4AFm96Dk6OgoX19f66NEiRKSbs4mRUZGauTIkWrXrp2qVq2qqKgoXblyRYsXL7Zz1XlDVFSUHB0dtW3bNr3//vtq3LixatasqV27dunbb7/V6dOn1b59e2v/ESNGaOLEiXr33Xd16NAhLV68WD4+PjZjjhw5UkOGDFFMTIzKly+vDh066MaNG9mqa8OGDYqNjdWGDRsUFRWlhQsXauHChRn2nTJlioYMGaLvvvtOzZo106lTp+64H0OHDtWGDRu0YsUKff/999q4caN27959x7quXLmiDh06aObMmTYzl2ajR4/WO++8oz179sjR0VEdOnTQsGHD9OGHH2rLli2KjY3VqFGjbNZZt26dDh8+rA0bNuiLL77QihUr9N5772XtgAEAACDPsfvNHH799Vf5+/vLxcVFjz32mCIiIlS6dGnFxcUpPj5ezZs3t/Z1cXFR48aNtX37dvXu3TvD8ZKSkpSUlGR9fuHChVzfB3spW7asJk2aJEkaNWqUateurYiICOvy+fPnKyAgQEePHpWfn58+/PBDzZw5U127dpUklSlTRg0bNrQZc8iQIWrdurWkmzMkVapU0W+//aaKFStmua6iRYtq5syZcnBwUMWKFdW6dWutW7dOvXr1suk3YsQIRUVFaePGjapWrZokafbs2bfdD39/f82bN0+ffvqpmjVrJulmYHzkkUfuWNebb76p+vXrq23btrftN2TIELVo0UKS9MYbb6hDhw5at26dGjRoIEnq2bNnuuDn7Oys+fPny93dXVWqVNGYMWM0dOhQjR07VoUK2f3vEQAAAMgmuwalxx57TJ9++qnKly+v06dPa9y4capfv74OHjyo+Ph4SUo34+Hj46M//vgj0zEnTJhQYP6SHxISYv159+7d2rBhgzw9PdP1i42N1fnz55WUlKSmTZvedszq1atbf/bz85MkJSQkZCsoValSRQ4ODjbj3HpKpSRNnTpVly9f1q5du1S6dOks78fVq1eVnJysevXqWduL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",
+ "text/plain": [
+ "