diff --git a/log-analysis/NodeNorm_log_analysis.ipynb b/log-analysis/NodeNorm_log_analysis.ipynb new file mode 100644 index 0000000..b881db1 --- /dev/null +++ b/log-analysis/NodeNorm_log_analysis.ipynb @@ -0,0 +1,700 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "ba1f42e6-f208-4511-8117-4d92d392bd84", + "metadata": {}, + "source": [ + "# NodeNorm Log Analysis\n", + "\n", + "As of [PR #312](https://github.com/TranslatorSRI/NodeNormalization/pull/312), NodeNorm produces logs in the format:\n", + "\n", + "```\n", + "2025-06-18T03:26:30-04:00\t2025-06-18 07:26:30,635 | INFO | normalizer:get_normalized_nodes | Normalized 1 nodes in 1.21 ms with arguments (curies=['UMLS:C0132098'], conflate_gene_protein=True, conflate_chemical_drug=True, include_descriptions=False, include_individual_types=True)\n", + "```\n", + "\n", + "This Jupyter Notebook is intended to be used in analysing these logs." + ] + }, + { + "cell_type": "markdown", + "id": "bc4248bb-1c4a-446e-95a3-54acc13e01de", + "metadata": {}, + "source": [ + "## Install prerequisites" + ] + }, + { + "cell_type": "code", + "id": "721be6fa-7f14-4979-bffb-5a32cb316444", + "metadata": { + "ExecuteTime": { + "end_time": "2025-07-10T19:11:18.077862Z", + "start_time": "2025-07-10T19:11:16.014835Z" + } + }, + "source": [ + "import csv\n", + "%pip install pandas matplotlib numpy seaborn" + ], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: pandas in /Users/gaurav/Developer/translator/babel-validation/venv/lib/python3.13/site-packages (2.3.0)\r\n", + "Requirement already satisfied: matplotlib in /Users/gaurav/Developer/translator/babel-validation/venv/lib/python3.13/site-packages (3.10.3)\r\n", + "Requirement already satisfied: numpy in /Users/gaurav/Developer/translator/babel-validation/venv/lib/python3.13/site-packages (2.3.1)\r\n", + "Requirement already satisfied: seaborn in /Users/gaurav/Developer/translator/babel-validation/venv/lib/python3.13/site-packages (0.13.2)\r\n", + "Requirement already satisfied: python-dateutil>=2.8.2 in /Users/gaurav/Developer/translator/babel-validation/venv/lib/python3.13/site-packages (from pandas) (2.9.0.post0)\r\n", + "Requirement already satisfied: pytz>=2020.1 in /Users/gaurav/Developer/translator/babel-validation/venv/lib/python3.13/site-packages (from pandas) (2025.2)\r\n", + "Requirement already satisfied: tzdata>=2022.7 in /Users/gaurav/Developer/translator/babel-validation/venv/lib/python3.13/site-packages (from pandas) (2025.2)\r\n", + "Requirement already satisfied: contourpy>=1.0.1 in /Users/gaurav/Developer/translator/babel-validation/venv/lib/python3.13/site-packages (from matplotlib) (1.3.2)\r\n", + "Requirement already satisfied: cycler>=0.10 in /Users/gaurav/Developer/translator/babel-validation/venv/lib/python3.13/site-packages (from matplotlib) (0.12.1)\r\n", + "Requirement already satisfied: fonttools>=4.22.0 in /Users/gaurav/Developer/translator/babel-validation/venv/lib/python3.13/site-packages (from matplotlib) (4.58.4)\r\n", + "Requirement already satisfied: kiwisolver>=1.3.1 in /Users/gaurav/Developer/translator/babel-validation/venv/lib/python3.13/site-packages (from matplotlib) (1.4.8)\r\n", + "Requirement already satisfied: packaging>=20.0 in /Users/gaurav/Developer/translator/babel-validation/venv/lib/python3.13/site-packages (from matplotlib) (24.1)\r\n", + "Requirement already satisfied: pillow>=8 in /Users/gaurav/Developer/translator/babel-validation/venv/lib/python3.13/site-packages (from matplotlib) (11.3.0)\r\n", + "Requirement already satisfied: pyparsing>=2.3.1 in /Users/gaurav/Developer/translator/babel-validation/venv/lib/python3.13/site-packages (from matplotlib) (3.2.3)\r\n", + "Requirement already satisfied: six>=1.5 in /Users/gaurav/Developer/translator/babel-validation/venv/lib/python3.13/site-packages (from python-dateutil>=2.8.2->pandas) (1.16.0)\r\n", + "\r\n", + "\u001B[1m[\u001B[0m\u001B[34;49mnotice\u001B[0m\u001B[1;39;49m]\u001B[0m\u001B[39;49m A new release of pip is available: \u001B[0m\u001B[31;49m23.2.1\u001B[0m\u001B[39;49m -> \u001B[0m\u001B[32;49m25.1.1\u001B[0m\r\n", + "\u001B[1m[\u001B[0m\u001B[34;49mnotice\u001B[0m\u001B[1;39;49m]\u001B[0m\u001B[39;49m To update, run: \u001B[0m\u001B[32;49mpip install --upgrade pip\u001B[0m\r\n", + "Note: you may need to restart the kernel to use updated packages.\n" + ] + } + ], + "execution_count": 1 + }, + { + "cell_type": "markdown", + "id": "3a6bab9f-897e-4c96-84c8-3e402676e753", + "metadata": {}, + "source": [ + "## Loading files\n", + "\n", + "These files can be checked into the repository into the `logs/` subdirectory." + ] + }, + { + "cell_type": "code", + "id": "c6e9048c-6f68-4d67-b60f-f6e8fa13f4ea", + "metadata": { + "ExecuteTime": { + "end_time": "2025-07-10T19:11:18.088492Z", + "start_time": "2025-07-10T19:11:18.086611Z" + } + }, + "source": [ + "logfiles_json_gz = [\n", + " \"https://stars.renci.org/var/babel_outputs/nodenorm-logs/nodenorm-ci-logs-2025jul3-10k.json.gz\",\n", + " \"https://stars.renci.org/var/babel_outputs/nodenorm-logs/nodenorm-ci-logs-2025jun26-to-2025jun29.json.gz\"\n", + "]" + ], + "outputs": [], + "execution_count": 2 + }, + { + "cell_type": "markdown", + "id": "67ca8f70-adaa-4883-ac51-1c0ec235bd13", + "metadata": {}, + "source": [ + "We can use Python dataclasses to load the important information from the logfile." + ] + }, + { + "cell_type": "code", + "id": "42805620-22f8-4469-845a-a5fd40ae7a3d", + "metadata": { + "scrolled": true, + "ExecuteTime": { + "end_time": "2025-07-10T19:11:18.095981Z", + "start_time": "2025-07-10T19:11:18.091562Z" + } + }, + "source": [ + "import json\n", + "from dataclasses import dataclass\n", + "from datetime import datetime\n", + "import csv\n", + "import gzip\n", + "import logging\n", + "import re\n", + "import ast\n", + "\n", + "logging.basicConfig(level=logging.INFO)\n", + "\n", + "@dataclass\n", + "class LogEntry:\n", + " time: datetime\n", + " curies: list[str]\n", + " curie_count: int\n", + " time_taken_ms: float\n", + " time_taken_per_curie_ms: float\n", + " arguments: dict[str, str]\n", + " node: str = \"\"\n", + "\n", + "def convert_log_line_into_entry(line: str) -> list[LogEntry]:\n", + " # Depending on where the log file comes from, it might start with one of two types of timestamps:\n", + " # - ISO 8601 date (e.g. \"2007-04-05T12:30−02:00\"), which will be separated from the rest of the log line with a tab character.\n", + " # - Python log format date (e.g. \"2025-06-12 13:01:49,319\"), which should always be in UTC.\n", + "\n", + " # Entry variables.\n", + " log_time = None\n", + " curies = []\n", + " curie_count = -1\n", + " time_taken_ms = -1.0\n", + " arguments = {}\n", + "\n", + " # Parse the datetime stamp.\n", + " iso8601date_match = re.match(r'^(\\d{4}-\\d{2}-\\d{2}(?:[T ]\\d{2}:\\d{2}(?::\\d{2}(?:[\\.,]\\d+)?(?:Z|[+-]\\d{2}:\\d{2})?)?)?) |', line)\n", + " if iso8601date_match:\n", + " log_time = datetime.fromisoformat(iso8601date_match.group(1))\n", + " else:\n", + " raise ValueError(f\"Could not identify the datetime for the line: '{line}'\")\n", + "\n", + " # Is the log line too long?\n", + " if len(line) > 81_900: # Longest we've seen is 114688, and that was truncated.\n", + " return []\n", + "\n", + " # Parse the log text.\n", + " log_text_match = re.search(r'\\| INFO \\| normalizer:get_normalized_nodes \\| Normalized (\\d+) nodes in ([\\d\\.]+) ms with arguments \\((.*)\\)', line)\n", + " if not log_text_match:\n", + " raise ValueError(f\"Could not find NodeNorm log-line (length: {len(line)}): {line}\")\n", + " curie_count = int(log_text_match.group(1))\n", + " time_taken_ms = float(log_text_match.group(2))\n", + " argument_text = log_text_match.group(3)\n", + "\n", + " # To parse the argument_text, we can turn it into a function call and use Python's ast module to parse it.\n", + " argument_fn_call = f'arguments({argument_text})'\n", + " tree = ast.parse(argument_fn_call, mode=\"eval\")\n", + " call_node = tree.body\n", + " for kw in call_node.keywords:\n", + " arguments[kw.arg] = ast.literal_eval(kw.value)\n", + "\n", + " # Some assertions.\n", + " if 'curies' not in arguments:\n", + " raise ValueError(f'No CURIEs found in arguments {argument_text} on line {line}, which was parsed into: {arguments}')\n", + " curies = arguments['curies']\n", + " if len(curies) != curie_count:\n", + " raise ValueError(f'Found {len(curies)} CURIEs in arguments but expected {curie_count} CURIEs: {curies}')\n", + " if len(curies) < 1:\n", + " raise ValueError(f'Found no CURIEs in line: {line}')\n", + "\n", + " # Emit the LogEntry.\n", + " return [LogEntry(\n", + " time=log_time,\n", + " curies=curies,\n", + " curie_count=curie_count,\n", + " time_taken_ms=time_taken_ms,\n", + " time_taken_per_curie_ms=time_taken_ms/curie_count,\n", + " arguments=arguments\n", + " )]" + ], + "outputs": [], + "execution_count": 3 + }, + { + "metadata": { + "ExecuteTime": { + "end_time": "2025-07-10T19:11:21.902892Z", + "start_time": "2025-07-10T19:11:18.164112Z" + } + }, + "cell_type": "code", + "source": [ + "import urllib\n", + "import io\n", + "\n", + "logs = []\n", + "for logfile_json_gz in logfiles_json_gz:\n", + " print(f\"Loading logfile {logfile_json_gz}\")\n", + "\n", + " with urllib.request.urlopen(logfile_json_gz) as response:\n", + " with gzip.open(io.BytesIO(response.read()), 'rt', encoding='utf-8') as logf:\n", + " # The entire log file from AWS is one massive JSON list *curses*.\n", + " data = json.load(logf)\n", + " for row in data:\n", + " # print(f\"Processing row: {row}\")\n", + "\n", + " # Weirdly enough, AWS logs are wrapped in TWO layers:\n", + " message = row['@message']\n", + " if isinstance(message, dict):\n", + " line = row['@message']['log']\n", + " else:\n", + " # This will probably (?) be an incomplete log line, so let's skip it.\n", + " continue\n", + "\n", + " # We're only interested in log-lines -- these will all contain `normalizer:get_normalized_nodes`\n", + " if \"normalizer:get_normalized_nodes\" not in line:\n", + " continue\n", + "\n", + " logs.extend(convert_log_line_into_entry(line))\n", + "\n", + " print(f\"Loaded {len(logs)} log entries from {logfile_json_gz}\")" + ], + "id": "77059385da4ddcc9", + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Loading logfile https://stars.renci.org/var/babel_outputs/nodenorm-logs/nodenorm-ci-logs-2025jul3-10k.json.gz\n", + "Loaded 9992 log entries from https://stars.renci.org/var/babel_outputs/nodenorm-logs/nodenorm-ci-logs-2025jul3-10k.json.gz\n", + "Loading logfile https://stars.renci.org/var/babel_outputs/nodenorm-logs/nodenorm-ci-logs-2025jun26-to-2025jun29.json.gz\n", + "Loaded 19043 log entries from https://stars.renci.org/var/babel_outputs/nodenorm-logs/nodenorm-ci-logs-2025jun26-to-2025jun29.json.gz\n" + ] + } + ], + "execution_count": 4 + }, + { + "cell_type": "code", + "id": "227a6bd5-1ca5-4c5b-8cde-4821b7efa7cc", + "metadata": { + "ExecuteTime": { + "end_time": "2025-07-10T19:11:21.912357Z", + "start_time": "2025-07-10T19:11:21.909442Z" + } + }, + "source": [ + "logs[0:10]" + ], + "outputs": [ + { + "data": { + "text/plain": [ + "[LogEntry(time=datetime.datetime(2025, 7, 3, 14, 1, 4, 186000), curies=['CHEMBL.COMPOUND:CHEMBL112', 'UniProtKB:P05177', 'UniProtKB:O43570', 'UniProtKB:P00918', 'UniProtKB:P00915', 'UniProtKB:P07451', 'UniProtKB:P35218', 'UniProtKB:Q9Y2D0', 'UniProtKB:P23280', 'UniProtKB:P22748', 'UniProtKB:P43166', 'UniProtKB:Q16790', 'UniProtKB:Q9ULX7', 'UniProtKB:P20292', 'UniProtKB:P51589', 'UniProtKB:P02144', 'UniProtKB:P35354', 'UniProtKB:P23219', 'UniProtKB:O15438', 'UniProtKB:O95342', 'UniProtKB:P10635', 'UniProtKB:P08684', 'UniProtKB:O15439', 'UniProtKB:Q92887', 'UniProtKB:P04798'], curie_count=25, time_taken_ms=48.27, time_taken_per_curie_ms=1.9308, arguments={'curies': ['CHEMBL.COMPOUND:CHEMBL112', 'UniProtKB:P05177', 'UniProtKB:O43570', 'UniProtKB:P00918', 'UniProtKB:P00915', 'UniProtKB:P07451', 'UniProtKB:P35218', 'UniProtKB:Q9Y2D0', 'UniProtKB:P23280', 'UniProtKB:P22748', 'UniProtKB:P43166', 'UniProtKB:Q16790', 'UniProtKB:Q9ULX7', 'UniProtKB:P20292', 'UniProtKB:P51589', 'UniProtKB:P02144', 'UniProtKB:P35354', 'UniProtKB:P23219', 'UniProtKB:O15438', 'UniProtKB:O95342', 'UniProtKB:P10635', 'UniProtKB:P08684', 'UniProtKB:O15439', 'UniProtKB:Q92887', 'UniProtKB:P04798'], 'conflate_gene_protein': True, 'conflate_chemical_drug': True, 'include_descriptions': False, 'include_individual_types': False}, node=''),\n", + " LogEntry(time=datetime.datetime(2025, 7, 3, 14, 1, 3, 537000), curies=['CHEMBL.COMPOUND:CHEMBL112'], curie_count=1, time_taken_ms=11.73, time_taken_per_curie_ms=11.73, arguments={'curies': ['CHEMBL.COMPOUND:CHEMBL112'], 'conflate_gene_protein': True, 'conflate_chemical_drug': True, 'include_descriptions': False, 'include_individual_types': False}, node=''),\n", + " LogEntry(time=datetime.datetime(2025, 7, 3, 14, 1, 3, 308000), curies=['CHEMBL.COMPOUND:CHEMBL112'], curie_count=1, time_taken_ms=11.74, time_taken_per_curie_ms=11.74, arguments={'curies': ['CHEMBL.COMPOUND:CHEMBL112'], 'conflate_gene_protein': True, 'conflate_chemical_drug': True, 'include_descriptions': False, 'include_individual_types': False}, node=''),\n", + " LogEntry(time=datetime.datetime(2025, 7, 3, 14, 1, 3, 241000), curies=['CHEMBL.COMPOUND:CHEMBL112'], curie_count=1, time_taken_ms=12.35, time_taken_per_curie_ms=12.35, arguments={'curies': ['CHEMBL.COMPOUND:CHEMBL112'], 'conflate_gene_protein': True, 'conflate_chemical_drug': True, 'include_descriptions': False, 'include_individual_types': False}, node=''),\n", + " LogEntry(time=datetime.datetime(2025, 7, 3, 13, 1, 4, 335000), curies=['CHEMBL.COMPOUND:CHEMBL112', 'UniProtKB:P05177', 'UniProtKB:O43570', 'UniProtKB:P00918', 'UniProtKB:P00915', 'UniProtKB:P07451', 'UniProtKB:P35218', 'UniProtKB:Q9Y2D0', 'UniProtKB:P23280', 'UniProtKB:P22748', 'UniProtKB:P43166', 'UniProtKB:Q16790', 'UniProtKB:Q9ULX7', 'UniProtKB:P20292', 'UniProtKB:P51589', 'UniProtKB:P02144', 'UniProtKB:P35354', 'UniProtKB:P23219', 'UniProtKB:O15438', 'UniProtKB:O95342', 'UniProtKB:P10635', 'UniProtKB:P08684', 'UniProtKB:O15439', 'UniProtKB:Q92887', 'UniProtKB:P04798'], curie_count=25, time_taken_ms=71.37, time_taken_per_curie_ms=2.8548, arguments={'curies': ['CHEMBL.COMPOUND:CHEMBL112', 'UniProtKB:P05177', 'UniProtKB:O43570', 'UniProtKB:P00918', 'UniProtKB:P00915', 'UniProtKB:P07451', 'UniProtKB:P35218', 'UniProtKB:Q9Y2D0', 'UniProtKB:P23280', 'UniProtKB:P22748', 'UniProtKB:P43166', 'UniProtKB:Q16790', 'UniProtKB:Q9ULX7', 'UniProtKB:P20292', 'UniProtKB:P51589', 'UniProtKB:P02144', 'UniProtKB:P35354', 'UniProtKB:P23219', 'UniProtKB:O15438', 'UniProtKB:O95342', 'UniProtKB:P10635', 'UniProtKB:P08684', 'UniProtKB:O15439', 'UniProtKB:Q92887', 'UniProtKB:P04798'], 'conflate_gene_protein': True, 'conflate_chemical_drug': True, 'include_descriptions': False, 'include_individual_types': False}, node=''),\n", + " LogEntry(time=datetime.datetime(2025, 7, 3, 13, 1, 3, 608000), curies=['CHEMBL.COMPOUND:CHEMBL112'], curie_count=1, time_taken_ms=16.55, time_taken_per_curie_ms=16.55, arguments={'curies': ['CHEMBL.COMPOUND:CHEMBL112'], 'conflate_gene_protein': True, 'conflate_chemical_drug': True, 'include_descriptions': False, 'include_individual_types': False}, node=''),\n", + " LogEntry(time=datetime.datetime(2025, 7, 3, 13, 1, 3, 386000), curies=['CHEMBL.COMPOUND:CHEMBL112'], curie_count=1, time_taken_ms=11.73, time_taken_per_curie_ms=11.73, arguments={'curies': ['CHEMBL.COMPOUND:CHEMBL112'], 'conflate_gene_protein': True, 'conflate_chemical_drug': True, 'include_descriptions': False, 'include_individual_types': False}, node=''),\n", + " LogEntry(time=datetime.datetime(2025, 7, 3, 13, 1, 3, 319000), curies=['CHEMBL.COMPOUND:CHEMBL112'], curie_count=1, time_taken_ms=17.6, time_taken_per_curie_ms=17.6, arguments={'curies': ['CHEMBL.COMPOUND:CHEMBL112'], 'conflate_gene_protein': True, 'conflate_chemical_drug': True, 'include_descriptions': False, 'include_individual_types': False}, node=''),\n", + " LogEntry(time=datetime.datetime(2025, 7, 3, 12, 1, 3, 873000), curies=['CHEMBL.COMPOUND:CHEMBL112', 'UniProtKB:P05177', 'UniProtKB:O43570', 'UniProtKB:P00918', 'UniProtKB:P00915', 'UniProtKB:P07451', 'UniProtKB:P35218', 'UniProtKB:Q9Y2D0', 'UniProtKB:P23280', 'UniProtKB:P22748', 'UniProtKB:P43166', 'UniProtKB:Q16790', 'UniProtKB:Q9ULX7', 'UniProtKB:P20292', 'UniProtKB:P51589', 'UniProtKB:P02144', 'UniProtKB:P35354', 'UniProtKB:P23219', 'UniProtKB:O15438', 'UniProtKB:O95342', 'UniProtKB:P10635', 'UniProtKB:P08684', 'UniProtKB:O15439', 'UniProtKB:Q92887', 'UniProtKB:P04798'], curie_count=25, time_taken_ms=47.77, time_taken_per_curie_ms=1.9108, arguments={'curies': ['CHEMBL.COMPOUND:CHEMBL112', 'UniProtKB:P05177', 'UniProtKB:O43570', 'UniProtKB:P00918', 'UniProtKB:P00915', 'UniProtKB:P07451', 'UniProtKB:P35218', 'UniProtKB:Q9Y2D0', 'UniProtKB:P23280', 'UniProtKB:P22748', 'UniProtKB:P43166', 'UniProtKB:Q16790', 'UniProtKB:Q9ULX7', 'UniProtKB:P20292', 'UniProtKB:P51589', 'UniProtKB:P02144', 'UniProtKB:P35354', 'UniProtKB:P23219', 'UniProtKB:O15438', 'UniProtKB:O95342', 'UniProtKB:P10635', 'UniProtKB:P08684', 'UniProtKB:O15439', 'UniProtKB:Q92887', 'UniProtKB:P04798'], 'conflate_gene_protein': True, 'conflate_chemical_drug': True, 'include_descriptions': False, 'include_individual_types': False}, node=''),\n", + " LogEntry(time=datetime.datetime(2025, 7, 3, 12, 1, 3, 183000), curies=['CHEMBL.COMPOUND:CHEMBL112'], curie_count=1, time_taken_ms=12.33, time_taken_per_curie_ms=12.33, arguments={'curies': ['CHEMBL.COMPOUND:CHEMBL112'], 'conflate_gene_protein': True, 'conflate_chemical_drug': True, 'include_descriptions': False, 'include_individual_types': False}, node='')]" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "execution_count": 5 + }, + { + "metadata": {}, + "cell_type": "markdown", + "source": "# Some overall measures", + "id": "a13af441dd8d87d" + }, + { + "metadata": {}, + "cell_type": "markdown", + "source": "", + "id": "2ee4b13bab99da17" + }, + { + "metadata": { + "ExecuteTime": { + "end_time": "2025-07-10T19:29:21.432135Z", + "start_time": "2025-07-10T19:29:21.277505Z" + } + }, + "cell_type": "code", + "source": [ + "times = sorted(list(set(map(lambda x: x.time, logs))))\n", + "count_requests = len(logs)\n", + "unique_curies = sorted(set([x for xs in map(lambda x: x.curies, logs) for x in xs]))\n", + "\n", + "print(f\"Time range: {times[0]} to {times[-1]} ({times[-1] - times[0]})\")\n", + "print(f\"Total number of requests: {count_requests}\")\n", + "print(f\"Total number of CURIEs: {sum(map(lambda x: x.curie_count, logs))}\")\n", + "print(f\"Total time taken: {sum(map(lambda x: x.time_taken_ms, logs))} ms\")\n", + "print(f\"Average time per request: {sum(map(lambda x: x.time_taken_ms, logs))/count_requests} ms\")\n", + "print(f\"Average time per CURIE: {sum(map(lambda x: x.time_taken_per_curie_ms, logs))/count_requests} ms\")\n", + "print(f\"Total number of unique CURIEs: {len(unique_curies)}\")" + ], + "id": "702b88dac738feb0", + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time range: 2025-06-26 00:01:03.559000 to 2025-07-03 14:01:04.186000 (7 days, 14:00:00.627000)\n", + "Total number of requests: 19043\n", + "Total number of CURIEs: 2176206\n", + "Total time taken: 6709482.9 ms\n", + "Average time per request: 352.33329307357036 ms\n", + "Average time per CURIE: 5.6768893532676605 ms\n", + "Total number of unique CURIEs: 233697\n" + ] + } + ], + "execution_count": 32 + }, + { + "metadata": { + "ExecuteTime": { + "end_time": "2025-07-10T20:12:47.933696Z", + "start_time": "2025-07-10T20:12:47.432571Z" + } + }, + "cell_type": "code", + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import seaborn as sns\n", + "from dataclasses import asdict\n", + "\n", + "# Assume `records` is your list of dataclass instances\n", + "# Convert to DataFrame\n", + "df = pd.DataFrame([asdict(r) for r in logs])\n", + "df['curie_count'] = df['curie_count'].astype(int)\n", + "df['time'] = pd.to_datetime(df['time'])\n", + "df['throughput_cps'] = df['curie_count'] / df['time_taken_ms'] * 1000\n", + "print(f\"Throughput: {df['throughput_cps'].mean()} CURIES per second\")" + ], + "id": "95e54a3b26740479", + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Throughput: 454.24311040513027 CURIES per second\n" + ] + } + ], + "execution_count": 64 + }, + { + "metadata": { + "ExecuteTime": { + "end_time": "2025-07-10T19:11:22.830659Z", + "start_time": "2025-07-10T19:11:22.690071Z" + } + }, + "cell_type": "code", + "source": [ + "# Plot requests against time.\n", + "requests_per_hour = df.set_index('time').resample('h').size()\n", + "sns.lineplot(x=requests_per_hour.index, y=requests_per_hour.values)\n", + "plt.title(\"Requests per Hour\")\n", + "plt.xlabel(\"Time\")\n", + "plt.ylabel(\"Number of Requests\")\n", + "plt.xticks(rotation=45)\n", + "plt.tight_layout()\n", + "plt.show()" + ], + "id": "acd50a9d9affe09f", + "outputs": [ + { + "data": { + "text/plain": [ + "
" + ], + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAHWCAYAAAD6oMSKAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAAfF5JREFUeJztnQd0FOX6xl9SCSX0DgIivQWpigWwYL8KilevvStcr1dFBSyIIIodKcofFL12Eb2K7VpRUIpIld57J6GlZ//n+Wa/yexmU8m2+Z7fOTm7O7ObzL6Z8sxbK3g8Ho8QQgghhJCoJybcG0AIIYQQQsoHCjtCCCGEEJdAYUcIIYQQ4hIo7AghhBBCXAKFHSGEEEKIS6CwI4QQQghxCRR2hBBCCCEugcKOEEIIIcQlUNgRQkgpYV93QkikQmFHCCk3rr/+emndurXPT5s2beTUU0+VAQMGyH//+1+JdtatWyfXXHONRBvbt29X/4+ZM2cGXI/lWI/3EUKil7hwbwAhxF20a9dOnnjiCft1bm6u7N69W6ZPny4PPfSQVK9eXc4++2yJVr755htZvHhxuDeDEEICQmFHCClXqlSpIikpKQWWn3XWWXLaaacpz1A0CztCCIlkGIolhISExMRESUhIkAoVKtjL8vLyZMqUKXLeeedJhw4dpH///vKf//ynwGffe+89ta5Tp07yj3/8Q37//XcVNpw/f75a/+qrr6rX/mAZ1mkyMzNl3LhxSlji71166aXy1Vdf+XxmxYoVcuONN0rXrl2lS5cuctNNN8mSJUvsvzNhwoQCv3vu3LkyaNAg9f7u3bvL3XffLRs2bCg2LPrll1/KXXfdJZ07d5Y+ffrIxIkTlU2cfPzxx3LxxRer7cV78DfhBdU88sgjanvhJUXI+6KLLvJZfyJs3rxZ7r33Xundu7cS6wi1L1q0yF4P+zv/Dxq8Dz+afv36ydNPP622E//DESNGlMv2EUIKQo8dIaTcCwtycnLs1xAZO3bsUKLl2LFj8re//c1eN3LkSOXBu/POO5UoWrhwoRIAhw8flsGDB6v3QOiNHj1aCQUIsjlz5sh9991Xpu3C7/zzzz+VWGnRooV899138u9//1uysrLk8ssvl6NHj8ptt90mvXr1UgIKyydPniy33nqr/Pzzz3LVVVepsPKMGTPkww8/lPr168u2bdvknnvukYEDB8r999+vtv3FF1+UO+64Q/3+mJjC75/x/fGd8LcgmCAajx8/LkOHDlXrX3/9dXnppZfkuuuuk2HDhsmqVavUe3ft2qXspPnjjz+UcIaN8fnY2NhC/yaEo/P/41zuZP369UqsNmvWTB599FGJj4+Xt99+W4mzN954Q3r06FEq+7/77rty8803y+233y6VK1cu1WcJISWHwo4QUq5AnLVv395nGbx0rVq1kldeeUX69u2rlm3atEk++ugjJYYggsAZZ5yh3gtBc+2110q1atWUsIK3DuICnHnmmUogwpNVGn777Tf59ddflVCCV0v/rvT0dHn++eflkksuUWLm0KFDcsMNNyjvFzj55JOViMPfhJDDD9DhZnjdMjIylDitV6+eWob3/PDDD0pkITRdGLAT/rYOVeP9b731lvL4QYhOmjRJrr76avu7wz7IUcRriKSWLVuq5RBqo0aNsretKOAtK4nHDCITHlaIOf0d4DGEneD1hLgtDQ0bNpQHH3ywVJ8hhJQeCjtCSLkCsfLkk0+q53v37pWXX35ZsrOz1SNEkmbevHlKvCBM5/Qg4TXEHDxYzZs3lwMHDsg555zj8zcuu+yyUgs7hG8hGuEh8/97n3/+uap2hVCqWbOmCo9ecMEFSvghDKk9aIFAGBXesiuvvFJ9BgKtZ8+eKuRYHPASOoGAhZBCcQZsA8EYyD46/KuFHcReSUQdGDJkiBJo/sAjqcPMYMGCBUqEO4VpXFycCgtr72tpaNu2baneTwgpGxR2hJByBWG2jh07+ggfCLFbbrlFhV0hnEBqaqp6hFAIxJ49e6RGjRrquf6MRnvGSgP+HsSS9sT5AxEK8YGQIYTl119/rTx1FStWVOFjeMngwfKncePG8s4776hcQXixIMySk5OVxxEhY2dOoT/+30N/z7S0NDs0qr2ZgbZXU5rQZqNGjXz+PxoIWyfYhtq1axd4H5bBjghbl4ZKlSqV6v2EkLJBYUcICSoQAo8//rj861//kjFjxsgLL7yglkP8AIQeAwkThO4gLgC8dk60KNRo8YR8Pp1f5u9Rqlq1qhIXEF6BaNq0qXqEV/G5555Tv2vZsmWq9977778vJ510ksq/CwS8c/B2IScPnkYIwtdee0318LvwwgsLtQ3Cvk7096xVq5Yq9AAI1SLPzZ9Aoqs8QRh8//79BZbv27dPPUJ0b9myJWB+HmzPPDpCwgOrYgkhQUeHNWfNmqVCfKBbt262uIEHSf8cPHhQ5eJBvCEU26BBA9U7zsmPP/7o81qHC1HYoHFWbwIk+yOHDd4m599bu3atCi0i3Im/g8IJiBcIRBR0oMABInTnzp3q9/gXQ6A/H0KWEHXw6KGly1NPPaXW6c8Uxvfff+/z+ttvv5WkpCTl5cQPChbguXRuL8KhKM4IdiNhVPf+9NNPPp45iF3kFGI78F0D2R1ivKiKYEJIcKHHjhASEoYPH65Csqhw/fTTT1WbDLx+7LHHVNUs2nmgoALFDQhvwksFTxyaGqPAAgn/8H7Bi4aqTCfImxs7dqzyDKKCFVWjEGtOrxHeA7GCClb8oCoWv2v8+PFKdCIMijAtvE+onkUIFJ9HSPbIkSNy/vnn+3gaIVIhviAE4VXDZ1C9CkH4wQcfKOGjC0UKA78b3jlsGwQvwsCo0oVnET/wEELkQlwhbw8iD69hF3gDgwly8X755RdVSAJbQGQi5Iwq4KlTp6r34H8I4Q1bQ+TpwheIU0JIeKCwI4SEBIQ40bIEogyhTYggiDEIAQgheH0gclCxitw0HVLFazxHmw+ERZEH98ADD6jPauDZe/bZZ1VuHEQIRBu8Ztpzpj1tyIODMMLfRNgTOW6oLtWtVerWratEC94DIYmKWRQo4G9DwAEIPGwH+sehYAIePYRdIW4gQOHVgkjF93QWiwQC4WkIOoRuIZAgTJ3jymCHOnXqqD5+2C6ER+ERxN9BaDmY4Hvj78I7iFYrEG0IOSOUrb2t+L9AGKP1CrYJ4WG0Q9m4caMS6YSQ0FPBw2nWhJAoAw1x4UmCyIAnK9pAGBWVvhCnmKFLCCHlBXPsCCGEEEJcAoUdIYQQQohLYCiWEEIIIcQl0GNHCCGEEOISKOwIIYQQQlwChR0hhBBCiEtgH7sAoEEputCj71VRcx4JIYQQQoINyiGgTTB5xn/6jT8UdgGAqFu+fHm4N4MQQgghxEaP8ysKCrsAaDUMA+ru9+UNutNDPAbzb0QDtIMF7WBBO1jQDha0gwXtYGGyHXK93704bx2gsAuADr9ixwn2zhOKvxEN0A4WtIMF7WBBO1jQDha0g4XJdqhQgvQwFk8QQgghhLgECjtCCCGEEJdAYUcIIYQQ4hIo7AghhBBCXAKFHSGEEEKIS6CwI4QQQghxCRR2hBBCCCEugcKOEEIIIcQlUNgRQgghhLgECjtCCCGEEJdAYUcIIYQQ4hIo7AghhJwQaenZkpvnCfdmEEIo7AghhJwIu9MypMeY72XIe3+Ge1MIIRR2hBBCToSN+49KZk6erNl9JNybQggJt7DbsmWL3HrrrdKlSxfp06ePTJ061V63bds2uemmmyQlJUUuuugimTNnjs9nf/vtN7nkkkukc+fOcsMNN6j3O5k+fbqceeaZ6ncPHz5c0tPTQ/a9CCHEFLJzrRBsnoehWEKMFnZ5eXlyxx13SI0aNeTTTz+VJ598UiZPnixffPGFeDweGTx4sNSuXVs++eQT+dvf/iZDhgyRnTt3qs/iEesHDBggM2bMkJo1a8o999yjPge+/fZbmTBhgowaNUreeustWbp0qTz33HPh+qqEEOJacnLz1GMuhR0hZgu7/fv3S9u2bWXkyJHSrFkzOfvss+W0006TRYsWybx585QHDsKsRYsWcueddyrPHUQe+Pjjj6VDhw5yyy23SMuWLWXs2LGyY8cOWbBggVr/9ttvy4033ih9+/aVTp06KdGIz9JrRwghQfLYWfqOEGKqsKtbt668/PLLUqVKFeVpg6BbuHCh9OjRQ3nY2rVrJ5UqVbLf37VrV1myZIl6jvXdunWz1yUlJUn79u3V+tzcXFm+fLnPeojC7OxsWb16dYi/JSGEuJtsr8dOR0wIIeElIoon+vXrJ9dee63Kh+vfv7/s27dPCT8ntWrVkt27d6vnRa0/fPiwZGZm+qyPi4uT6tWr258nhBBSPuR4XXUMxRISGcRJBDB+/HgVmkVYFmFVhEwTEhJ83oPXWVlZ6nlR6zMyMuzXhX2+pMD7Fyz07w7m34gGaAcL2sGCdog+O2RmWdsIfVfe2xtNdggmtIOFyXbILcV3jghh17FjR/UIT9uDDz4oAwcOLJAPB1FWsWJF9TwxMbGASMPr5ORktU6/9l+PkG1pQEg32ITib0QDtIMF7WBBO0SPHTZtOa4es7Kz7XQZE+0QCmgHC9ohQoUdPHQ4CZx77rn2slNOOUXlwtWpU0c2btxY4P06vFqvXj31OlAxBkKuEHd4jcILkJOTI6mpqer3llZwxsbGSjDQuYDB/BvRAO1gQTtY0A7RZ4dl6VtE/jysthP5zKbaIZjQDhYm2yHX+90jWtht375dtTCZPXu2EmpgxYoVqnUJCiXeeOMNFVbVXjoUV2A5QO86vNbAu7dy5Ur1+2JiYtQ/Het79uyp1kNAIs+uTZs2pdpG7DjB3nlC8TeiAdrBgnawoB2ixw7eolj1GKxtjQY7hALawYJ2iNDiCYgvVLKiefD69euVwEOvubvuuktVxjZo0ECGDRsm69atkylTpsiyZcvkyiuvVJ9FqPbPP/9Uy7Ee72vcuLEt5FCIMW3aNPn+++/V55C7N2jQoFKHYgkhhBQNGxQTElmETdhBbU+aNEmJrauvvlpGjBgh119/vZoiodeh+hVNiD///HOZOHGiNGzYUH0WIu7VV19Vvekg9hBmxfoKFSqo9RdffLHqfff444+rXnfoZTd06NBwfVVCCDGg3Um4t4QQEvbiCYRgMSEiEE2bNpV33nmn0M+ioTF+CgNTLfBDCCEkBJMn8qjsCIkEIqKPHSGEkOgk2yvoGIolJDKgsCOEEFJmsnMYiiUkkqCwI4QQUmZy6LEjJKKgsCOEEHLCxRMcKUZIZEBhRwghpFyqYj0Ud4SEHQo7QgghZSZHdyhmnh0hEQGFHSGEkDKT5fXYAYZjCQk/FHaEEELKxWPHAgpCwg+FHSGEkDKTk5fvsaOuIyT8UNgRQggpM1n02BESUVDYEUIIOeGRYoBjxQgJPxR2hBBCTrjdCaCuIyT8UNgRQggpM9k+7U6o7AgJNxR2hBBCyqV4gqFYQsIPhR0hhJAyk53jLJ4I66YQQijsCCGEnAjZPu1OqOwICTcUdoQQQsqpQXFYN4UQQmFHSGDgeViz+4hPKwdCSNFVsRwpRkj4obAjJAA/rdkr/V/+RcZ8tSrcm0JI1FTF5tFlR0jYobAjJAAb9x1TjzP+2C4Z2bnh3hxCosJjR4cdIeGHwo6QAOjRSEcyc+TnNXvDvTmERMfkCSo7QsIOhR0hAXCm1n2+dGc4N4WQiCbbEX7lrFhCwg+FHSEBcF6gfli1V45kZId1ewiJjlAshR0h4YbCjpAAOJPAM3Py5H9/7Qnr9hASiWDShFPLsXaCkPBDYUdIAPQFKqaC9chwLCFFe+sAR4oREn4o7AgJgE4C731KbfU4Z/1+OXA0M8xbRUhkCzvm2BESfijsCCkiFNuiThXp0ChZeSJ+Wbcv3JtFSMROnQDUdYSEHwo7QgKgPQ8VKog0rJaknh/PYj87QpwwFEtI5EFhR0gRodjYChUk1ptox676hBTe6gQwFEtI+KGwIyQA+voUE1NBYuC2Y8UfIQXwn6XMY4SQ8ENhR0gAdEgJog7izrmMEBI4FMs+doSEHwo7QgKgQ0qxMfktTxhmIsSXbL/iCd78EBJ+KOwICUCew2OHPDu1jMKOkGLanYRtUwghXijsCCmieMI3FBvmjSIkwj12DMUSEn4o7AgpcvIEiif0Ml60CCmqeELfEBFCwgeFHSFFhGKRY8d2J4SUzGPHQ4SQ8ENhR0iRDYrz253QG0GIL9l5HClGSKRBYUdIAHSECd469rEjJDDZOWx3QkikEVZht2fPHrn33nulR48ecuaZZ8rYsWMlM9MatD569Ghp3bq1z88777xjf3bWrFly7rnnSufOnWXw4MFy8OBBn5PL888/L7169VK/e9y4cZLnd2dJSFHoCxSisAzFEhKYHL9jggVGhISfuHBeOCHqkpOT5d1335W0tDQZPny4xMTEyMMPPywbNmyQBx54QK644gr7M1WqVFGPy5YtkxEjRsiTTz4pbdq0kTFjxsiwYcPk9ddfV+vffPNNJfwmTJggOTk5MnToUKlVq5bceuut4fq6JIqrYr0OO4aZCCm23QmPEUKM9dht3LhRlixZorx0LVu2lG7duimhB0EGIOzatWsnderUsX+Skqxh7PDcXXjhhXL55ZcrYQeP3OzZs2Xbtm1q/dtvv61+F34nvHYPPvigEo+ElBTtiIC3TvexY44dIb6w3QkhkUfYhB2E2tSpU6V27do+y48ePap+EKZt1qxZwM8uXbpUiTZNgwYNpGHDhmo5Prdr1y7p3r27vb5r166yY8cO2bt3bxC/EXFtg2KGYgkpWbsThmIJMVfYIQSLvDoNcuDgiYOHDd46VCO+9tprctZZZ8lll10mn376qf1eCLS6dev6/D6EWnfv3i379u1Tr53rtXjEekJKNSs2BqFYFk8QEgiGYgmJPMKWY+fPc889JytXrpQZM2bIX3/9pS6mJ598slx33XWycOFCeeyxx1SO3XnnnScZGRmSkJDg83m8zsrKUuv0a+c6gPWlITc3t1y+W1G/O5h/IxqIVDvk6mIbT55UEI/tnQjWdkaqHUIN7RBddsjM8d2+nNzcct3maLFDsKEdLEy2Q24pvnNcpIi6t956S1566SVp1aqVyrnr27evVK9eXa1HHt3mzZvl/fffV8IuMTGxgEjDa+TgOUUc3qefA52jV1KWL19eTt8wvH8jGog0OxxKTVOPO7dvl33HrQNqz959smSJVbVtih3CBe0QHXbYuu2Yz+vNm7fIEs9e4+wQKmgHC9ohwoXdU089pQQbxF3//v3VMnjrtKjTwHs3b9489bxevXqyf/9+n/V4jbw9rAMIyTZu3Nh+DrC+NHTs2FFiY2MlWOobO2cw/0Y0EKl2qLpskciufdL0pJMkPi1dZNUGFe5PSWlvlB1CDe0QXXb4LXWDiByxXzc+6SRJSWlknB2CDe1gYbIdcr3fPeKFHdqRfPDBB/Liiy/KBRdcYC9/5ZVXZPHixTJ9+nR72erVq5W4A+hdt2jRIhkwYIB6jWIJ/GA5hB0KKbBeCzs8xzL/vLziwI4T7J0nFH8jGog0O+h8uri4WInzbheCstwfQgPtEB128CuKxW15ULY30u0QKmgHC9ohQoUdCiQmTZokd9xxh6pa1V41gDDslClTZNq0aSr0OmfOHPnss89UGxNwzTXXyPXXXy8pKSlKuaOPXZ8+faRJkyb2ejQorl+/vnr9wgsvyC233BKmb0qiEZ0EjoJYb1EsWzkQ4kdOgXYnYdsUQki4hd0PP/ygXIuTJ09WP07WrFmjvHbjx49Xj40aNVLirEuXLmo9HkeNGqXWo7Fx7969VUhXg0bEBw4ckCFDhihVf+WVV8pNN90U8u9Iol/YqZFiXmWnK2UJIYGrYtnrkRCDhR08dfgpDIwLw09hIAyrQ7H+QMxhEgV+CCkLuihW9bFjg2JCStSgmO1OCDF8Viwh0TBSDD+A1yxCiutjF7ZNIYR4obAjJAB6ykRsjNWkGDAUS4gvOdq17YV5qISEHwo7QgKgQ0povaOLJxhmIqToUCxvfggJPxR2hARAX69inbNiKewI8YGhWEIiDwo7QgKgQ0oxCMXq4gletQgppt0JjxFCwg2FHSEB0CLOWTxBXUeIL1n+7U54kBASdijsCAmAvj6pdicxvgUVhBCLHIZiCYk4KOwIKbIqtoIqoFDLGGYixIcc73GSEGddSniMEBJ+KOwIKXKkmLNBcZg3ipAIIyvH8tgleoUdc+wICT8UdoQU2aDY8toBhmIJCeyxS4yzBrL7RWYJIWGAwo6QYkOx3mX0RhASMMdOe+x4jBASfijsCAmAds4hv0577FjxR4gvWd78BIZiCYkcKOwICYAWcRB1OseO3ghCAnvsdPGETmEghIQPCjtCimpQXMHy2gE67AgJPHkiMd7KseMxQkj4obAjpMjiCYZiCSluVmyit9kjvdqEhB8KO0KKaVDs1XXMHyLEj5w831AsDxFCwg+FHSHFVMXGaI8dr1qEBPbY6Rw7erUJCTsUdoQEQIeUEGGyGxSzRxchheTYMRRLSKRAYUdIALTnAYUTCMcChmIJCSzsErw5djxECAk/FHaEBEBHlOCti/EeJQwzEeJLTq7/5AkeI4SEGwo7QoqZFas9dgwzEZIPPNj2SDGGYgmJGCjsCAmA9jzAW2fPiuU1i5AChRO+I8XCuEGEEAWFHSEB0I4Hp8eOYSZCCrY6cYZimYdKSPihsCMkALq1iWp34u1jxzATIYE9dvZIMd78EBJ2KOwICYAWcXDW2aFYXrQIKVAR6xR2PEQICT8UdoT4gXCSx1kVy1mxhBRaERsXU8Hu9chQLCHhh8KOED+cAs4KxXLyBCGFeeziY2OUZxvwGCEk/FDYEeKHM08IDYoZiiWkcGEXF+s4RniIEOIOYXfw4EG64IlrcBZJsHiCkMDoHnbw2LHXIyFRLOz27Nkj//73v2XVqlWSmZkp1113nfTu3Vv69esnq1evDs5WEhJCnBcniLoYr7JjxR8h+WTl6FBs/s0Pb/AJiUJhN3LkSOWhq169usycOVPWrl0rH3zwgRJ2Tz31VHC2kpAQ4hRw8EToxHDqOkIKeuziYmJ480NIBBFX2g/MmzdPCboGDRrI999/L+ecc4507txZatasKZdccklwtpKQEOK8NnGkGCFF59ih1QkrxwmJYo9dYmKiCsGmpaXJ/PnzpU+fPmr59u3bpVq1asHYRkJCirNIQuXYeY8SeiMICVA84chDZSiWkCj02J177rly3333ScWKFZWQg7D76quv5Omnn5YrrrgiOFtJSDhz7OweXWHcKEIitY+danfCUCwhUSvskGP3zjvvyI4dO+Tqq69WHrysrCy56667VCEFIdGO7sWFa5Wz3Ql7dBESIBSLdicMxRISvcLutddek1tvvVWSkpLsZZdffrkcPXpUnnnmGXnkkUfKexsJCSnOqRPAblDMqxYhBWbFwmOn0xWYh0pIlAi7jRs3yoEDB9TziRMnSps2bQrk0+nqWAo7Eu1oAacFnc4f0jlEOuxEiMnk5Dlz7JiuQEhUCbu9e/fKTTfdZL8eMmRIgffAg3fjjTeW79YREk5h5/VC6FCsXodO+4SYTqCqWHq1CYkSYderVy+7+TD61c2YMUO1NyHEjWivg75YOT10vG4R4heKdXjsGIolJArbnfz4449K1OV53fDw5n399deyadMmKcsUi3vvvVd69OghZ555powdO1a1UgHbtm1TXsKUlBS56KKLZM6cOT6f/e2331TfPPTQu+GGG9T7nUyfPl39zi5dusjw4cMlPT291NtHzEQXSegcO6fHjhcuQnw9dtZIMWsZDw9ColDYLVq0SAmmBQsWKFE3YMAAefzxx+XSSy9VAq+kIFcJog6C691335WXXnpJfvrpJ3n55ZfVusGDB0vt2rXlk08+kb/97W8q/Ltz5071WTxiPf629h7ec889dg+lb7/9ViZMmCCjRo2St956S5YuXSrPPfdcab8qMRQt3rSjTgs8wFATIb7tTuKd7U6o7AiJPmGHfnXwoMFT9tFHH6l2J3PnzlXjxMaPH1/i34OCjCVLligvXcuWLaVbt25K6M2aNUtNt4AHDsKsRYsWcueddyrPHUQe+Pjjj6VDhw5yyy23qM/id6D9CsQmePvtt1W+X9++faVTp07y5JNPqs/Sa0dK06BYe+qctRL02BHi16AY7U68xwqPD0KiUNitW7dOiSYUSyAse/7550tCQoIKp2qPWkmoU6eOTJ06VXnlnKBtCjxs7dq1k0qVKtnLu3btqoQgwHoIQQ22pX379mp9bm6uLF++3Gc9RGF2dradJ0hIUWinXEygUKx1LSPEeHSOnTMUS4c2IVHYxw5CbP369XL8+HFZuXKl3d4EOW+YH1tSkpOTVUhXg5w9ND5Goca+ffukbt26Pu+vVauW7N69Wz0vav3hw4dVnp5zfVxcnFSvXt3+fEmBSAwW+ncH829EA5Foh+ycHFvYqe1yXK2yc3MkN7fU90NRaYdwQDtEjx2ycqxtQ5G4ToPBebw8tzka7BAKaAcLk+2QW4rvXGphh4IG5LfFxMRIx44dlacOTYuR04aQaFlBDhyEInLmUPgAL6ATvMaEC4CQamHrMzIy7NeFfb6kwPMXbELxN6KBSLLDxkPZ6jE3N1t5gZ3zL5ctWy7VKsYaYYdwQjtEvh227TiiHtMOHZTNm46p50ePHbcjK6bYIZTQDha0QzkLO1SgIsyJsOsZZ5yhlsHLhpmxaFxcVlGHIgcUULRq1Url7aWmpvq8B6IM82mBHmPmvx5eQKzTr/3XO6dllAQI19jY4FzEdcg4mH8jGohEO8RsTxP5/ndJTEhQYXy17JNvlOOubbv2UjfZ2g/dbodwQDtEjx2+27NGZNUmaVCvjrQ8pY7Ir39IxYpJ9jFjih1CAe1gYbIdcr3fPSjCDiD/LT4+Xn799Vfp3bu3CoM2bty4LL9KFV28//77Stz1799fLatXr54K9zrZv3+/HV7Ferz2X9+2bVsVcoW4w2sUXoCcnBwlFJHXVxqw4wR75wnF34gGIsoOjtw6vU0IyyIxvEJMcLczouwQRmiHyLeDN8VOEuJiJc67jVgUjO2NZDuEEtrBgnYomlInC6WlpalwLFqQoIoVo8bGjBmjesqhMrU0IHyLMWQvvviiXHzxxfZyVNz+9ddfdlhVt1nBcr0erzUIzSKMi+U6ROxcj9AA8uzK6lEkZhdPqOfe7HC2cyCkYPGEPlTYDoiQKBR2o0ePViFNtCTRoVG0QKlfv75aV1I2bNggkyZNkttvv11VvKIgQv8gbw+FGMOGDVNVuFOmTJFly5bJlVdeqT47cOBA+fPPP9VyrMf74DHs2bOnWn/ttdfKtGnT5Pvvv1efGzlypAwaNKjUoVhiJrplg7MaVvey061QCDEdn3YnnDxBSMRQ6lAswq//+c9/VD6bBg2CIa7+/ve/l/j3/PDDDypmPHnyZPXjZM2aNUr0jRgxQjUhbtq0qUycOFEaNmyo1kPEvfrqq0pQYjmmS+BRN8mE9w/eQzRORm4dWrIMHTq0tF+VGIoWb87+dfntHHjhIsS/QbH2aPPwICT8lCnHTo/9cnLw4EEV7iwpd9xxh/opDIg5tD8pjLPPPlv9lPX3E1LSkWI+oVh67AjxGymGWbHWMt74EBKFoVjk0iGnDiFQeMjQzw5h2ccee0xNpCAk2vEEyrGzQ03h2ipCIots78EQF4MGxcxBJSRqPXYPPfSQKnZAiBTTHFBEgeqUq666Sq0jJNrRXjntpQMcmUSIL9k5Xo9dXL6w42QWQqJQ2KHRL6ZN3HfffWqeK/LkmjRpIpUrVw7OFhIStuKJ/GW2R4IuO0IUOV4VFx+DUKzOsePxQUjUCbuFCxcWWIZWI5ru3buf+FYREgHCzjcU67uOENMJ2O6Exwch0Sfsrr/++kI9eWgAjGpXQqIZb064j7CzQ7EMNRFSsN2JnaoQ5o0ihJRe2K1evdrnNUKxW7duVRMkLr300vLcNkLC7LGTAMUTvHIRUqDdCUOxhERvVaw/KJxo3ry5yrt75ZVXymerCImAPnbOBsUx3iOFoSZCLLLsdicQdtYyeuwIcYGw02C02OHDh8vr1xESNvTFSTe8Bpw8QUjg4gmEYtnnkZAoDsViwoQ/x44dk99++00uuOCC8touQiKrQTH72BESOBTr6GPHVAVConTyhD/Vq1eXhx9+WPW0IyTa0XlCOvxqPadHgpDAodj8yRPUdYREobAbO3ZscLaEkEhrUBwgFMvkcEJ8PXZxjuIJ3vgQEoXCbsKECSV+75AhQ0r76wkJO/ra5CyeYJ8uQnzJ8XrsEiDsOJmFkOgVdlu2bJFvvvlGhV87dOig+tehBQpanqSkpEhcXFyBxHNCogldIBGojx09EoRYZNkeO4ZiCYn6kWLoV/fkk09KfHy8vfzZZ5+VtLQ0efrpp8t7GwkJKbkBJ0/oUGzYNouQyBwppoQdPXaERG27k6+++kpuu+02H1EHBg0apNYR4soGxfTYEeJDdo6zj533+KCwIyT6hF29evXk119/LbD822+/lSZNmpTXdhESUQ2KY5ljR4gP2XnO4glrGQ4PFhgREmWh2AceeEDuu+8++fnnn6VNmzZq2fLly2XlypXy2muvBWMbCQkp2ikXOBTLixYhzuKJ+Jj8UCzAIcIUa0KiyGN33nnnycyZM6VVq1ayYcMG2bFjh/To0UN57PBIiGvanfiMFNOh2LBtFiER5dXWN0DOdieAXm1CorBBcevWrdUEChRLVKlSRWJiYlgFS9ydY2fPwuRFixCneEPKgvNY4TFCSJR57BCKmjx5svTs2VNOO+002blzpwwdOlQef/xxycrKCs5WEhJC8gKMFNP5drxoEeJbRBQXIBRLCIkiYTdx4kT5/PPP5ZlnnlGtT8AVV1whc+fOlXHjxgVjGwkJT46dMxTLzvqE2OTk+Xvs8o8V3vwQEmXC7tNPP5VRo0ZJ37597fBr7969VR+7r7/+OhjbSEiYRorlL8vv0xWurSIkcsj1Nie2hZ3jSsKbH0KiLMfuwIEDUrdu3QLLk5OT5fjx4+W1XYREVrsTHYrlRYsQuzmxf8oC4CFCSJR57Hr16iXTpk3zWXb06FF58cUXVd4dIdGOvjA5C4LYWZ+QwF7tmAI5djxGCIkqYTdy5EjVsw7h18zMTLnnnnvk7LPPVm1PHn300eBsJSFhqPhzeiK0846tHAjJPw7ivDFYZ9oCQ7GERFkotn79+jJjxgz5/fffZePGjZKTkyPNmzeXM844Q7U9ISTa0R4H58WKoVhC8snx5tjp4wLebdwH4dAx+RDZdvC41K9WUY1ZIySq+tgBtDrBjwbeO0ye+Ne//lVe20ZI5DQoZvEEIQWOEbQ6cR4j8OSZGopdsi1VLp84VwZ1ayzjruwc7s0hBlOi2wrk0I0YMULl0J1++umqKtbZs+6bb76RCy64QKZOnRrMbSUkfCPF7MkTZl60CAnU7iRWD1H2aeItRrJ5/zHvI4sISRR47CDkfvnlF7n55pslPj5e3n33XYmNjVUzY9Gc+Mcff1Q5d/5FFYREdYNiZ1UsJ08QUqzHTsRjbB5qtnfeoLNimJCIFXZz5syR0aNHy7nnnqtew2sHkbd27VrZtGmTjB8/Xs4///xgbyshIUHn0fl47FgVS4iNFi/Omx/7GDHUZafFrrN5MyERK+xSU1OlY8eO9uu2bduq8Gx2drZ88cUXUq1atWBuIyEhRXscfBoU26HYcG0VIZHoscvP5tHHi6n3Ptla2DmaNxMSsTl2eXl5EhfnqwERkn344Ycp6ogRDYrz84d40iYkJ9Axom9+DD1GchmKJRHCCdVk16xZs/y2hJAIblDMdieElCTHztybHy12GYolUdPuZPHixT7eOZS0L1u2THbv3u3zvu7du5fvFhISEQ2KzfZGEFJUHzvfUKzhwo6hWBItwm7IkCEFlj3wwAM+r+HhWLVqVflsGSER1KCYfewIKeixC1g8YegxkuMNxbIlEokKYbd69ergbwkhEdygmKFYQoqpijW816P22Om2J4SEC849IaQkDYoNzx8ipPgcOzH6GNEhWFOFLYkcKOwIKbQqVgpctJhjR0ghVbHemx9TDxF67EikEBHCDuPJLrnkEpk/f769DA2RW7du7fPzzjvv2OtnzZqlGiZ37txZBg8eLAcPHvTJkXr++eelV69e0qNHDxk3bpxq2UJISdAeB6fHjqFYQorrY2d4KJY5diSahN3cuXN9ZsOWJ5mZmXL//ffLunXrfJZv2LBBFWdg6oX+GThwoFqHalzMrkVBx4cffiiHDx+WYcOG2Z998803lfCbMGGCmoqBJspYRkhJ0EVtTmGnW5/wnE1IIcUTMYaHYrXHjicJEg3CDgJKe8TOOeccOXToULn88fXr18ugQYNk69atBdZB2LVr107q1Klj/yQlJal18NxdeOGFcvnll0ubNm2UR2727Nmybds2tf7tt9+We++9V7p166a8dg8++KCab0tIWRsU67As78YJcXjs9BBlVsXaBSU8R5CoqIpNTk6WiRMnyqmnnio7duyQL7/8UqpUqRLwvRBbJWXBggXSs2dP+fe//y0pKSn2cowr27NnjzRr1izg55YuXSq33367/bpBgwbSsGFDtTwhIUF27drl00+va9euarv37t0rdevWLfH2EdNDsfnLdE87U3t0EVLyHDszjxEt6PAIGzgbnBMSccLu8ccfl1dffVV+++03tbNOnTpVYhy5FRqsK42wu/baawMuh7cOv+u1116TX375RapXry4333yzXHHFFWp9IIFWq1Yt1Sx537596rVzfe3atdUj1lPYkbK0O9EnaRZPEIJjJK/QqlhTPVbZjsbEEL7xDm8mIREn7BB+xQ/o16+fzJgxI6jjxDZu3KgupCeffLJcd911snDhQnnssceUl/C8886TjIwM5ZlzgtfIA8Q6/dq5DpQ2TzA3N7dcvk9RvzuYfyMaiEQ72AUSHo+9XRVEd5XPC8q2RqIdwgHtEB12yMrJtb10ehu1xy4nN7fctjvS7RCoeAJkZuVITEJsuf3uaLJDMDHZDrml+M4lnjyh+fHHH+2CCnjWUG3avHlzOf300yU+Pl7KA3j9+vbtqzx1AHl0mzdvlvfff18Ju8TExAIiDa+Rg+cUcXiffg50jl5JWb58ebl8n3D/jWggkuxwKC1NPe7Yvk2WxB9Qz/fsOaoe9+8/IEuWLDHCDuGEdohsO2zZekw9HjmcZh8Pmd6b6nXr10vFw1a+s9vt4GTfgVT7+eKlS6VSfPk3nYgGO4QC2qGchR1y3+6++27ZtGmTEnRQkVu2bFE5bqg8rVevnpwo8NZpUaeB927evHnqOf7G/v37fdbjNQos9N9HSLZx48b2c4D1paFjx44SG1t+d11OYDfsnMH8G9FAJNqhytI/RHZlStOmJ0lKirUPzUvbKLJirVSvUVNSUjoaYYdwQDtEhx0WH98ssni11K5ZQ1JSOqtllX+dK3L4iDQ/uYWknGKlv7jdDk6qrlwsIpa4bdu+g9So5BtVMsUOwcRkO+R6v3tQhN3IkSNVPhtEXLVq1dQyVMkOHTpUxowZo9qLnCivvPKKLF68WKZPn+4z1gziDqB33aJFi2TAgAHqNYol8IPlEHYQmVivhR2eY1lp8+uw4wR75wnF34gGIskOOhIb79imOG9ZrEcqBHU7I8kO4YR2iGw7eDxW2DU+NsbePjsntUL+MrfbwUmOo1WqR8rfBtFih1BAO5SzsIPXDL3jtKgDNWrUUC1F/vGPf0h5gDDslClTZNq0aSr0ih52n332mWpjAq655hq5/vrrVSUtlDsEZZ8+faRJkyb2ejQorl+/vnr9wgsvyC233FIu20bcj66PCDzg3MzEcEJKWhVr6jGiC0qcrU8IiQphB0GX5s1BcoImweWVY9epUyfltYP3D4+NGjVS4qxLly5qPR5HjRql1mNbevfuLU899ZT9+VtvvVUOHDig+u9B1V955ZVy0003lcu2Efejq/qc7QpMH3BOSMCqWJ8+dmJ0uxMtdtVzR4UsIREv7C6++GJ59NFHVUgW3jKA/nEQWhdddFGZN2TNmjU+rzEuDD+FgTCsDsX6AzGHSRTOaRSElBTd0kT3rrOei9HeCEKK9djZNz9iJE4x5xR5hES8sPvXv/6lvGHwiuk7Mwipq666Sh566KFgbCMhIcUToEGxvmhR2BHiGCnm9GobHop1hl+dYVlCIl7YoZ3IM888I8OHD1ctSPD6pJNOkkqVKgVnCwmJgAbF9kWL52tCHB67/JYeDMXSY0eiVNg5x4whF44Qt6HPyVrMOZ9z8gQhRc+KZSiWOXYkvJR/B0VCohwdSvJ2OPF5bk+lIMRgtHBhVWw+9NiRSIHCjhA/9IXJpyrW8IsWIU70ceAzK1bf/Bh6jDhHijmfExLxwm7WrFmSmpo/OoUQt6HPyYESwxlhISS/UCCQx85QXefTCokeOxJVwu7JJ5+UgwcPBmdrCIkA7Gpvx0VLP2colhBHjl0AYWdqr8dsZ4Ni3gGSaBJ2PXv2VF67rKys4GwRIRHToDh/mX5uapiJkMA5dgWrYk09RnJ9+tgxFAv2HM6QTxdvlyznvDUSeVWx6GE3adIkee2116RmzZqSmJjos/6HH34oz+0jJDIaFHPyBCEl8tgZquskm5MnCvDs16tl5uIdkhgXKxd1bBDuzTGGUgu7QYMGqR9C3Iq+MDn72MUaftEipMSTJww9SHyKJ3gDqDhwLMvnkUSosLviiivs55jTWrVqVVU96KwgJMQVDYod+7Tev029aBFSfB87s0Oxvu1OGHp02oFVwhGeY4fE8smTJ6tcu9NOO0127NghQ4cOlccff5x5d8QV5AUYKcZQLCElq4o19RBxhl95nrDI9tqEoekIF3YTJ06Uzz//XI0Vwzgx7cWbO3eujBs3LhjbSEhI0ZWvvhcts8clEVLyHDszjxGnmNOCxnS0p85ZMUwiUNh9+umnMmrUKOnbt68dnurdu7c8++yz8vXXXwdjGwkJ/0gxw/OHCCl2VqzhXm2neMmlkPHZT+ixi3Bhh6rYunXrBpwde/z48fLaLkLChhZvTmGniyd4viakMI+d9WiiroOX33nPR4+dhW5zks0cu8gWdr169ZJp06b5LDt69Ki8+OKLKu+OEDc2KOZIMULy0R4YZ+W4yaFY/1CjqV7Lwjx2FLoRLuxGjhwpK1euVOHXzMxMueeee+Tss89WRRSPPvpocLaSkLBUxeYv0xEnnrAJ4eQJf/y/Mz1Uvjl2rIqN8HYn9evXlxkzZsjvv/8uGzdulJycHGnevLmcccYZEuPItyAk6oVdgD529NgRUlhVrPVooK4r4JEyUdwWWRVLe0S2sHMKvGPHjkl8fLwSdhR1xHUNigMUT/D8RAjyUKVQj52JNz/+Qo5CxvcGgB7MCBd2u3btkoceekgWLlwo1apVU/kUR44ckX79+smYMWOkevXqwdlSQsI4UszkixYh/uiqT9/JE2Jsjp1/qJFVoL52oD1CS6ndbMiji42NVTNh58+fLwsWLFBtTg4dOqSaFBMS7Wjx5hymoq9fDLEQkn+hjnO2O7Fz7MQ4/D10nDxhkaX72Jm4U0STxw6eupkzZ0qjRo3sZc2aNVOi7u9//3t5bx8hIUefk53eCP1cNy8mxGT0DQ4rxyWgR4qhWF+7ZNMeke2xa9Gihaxdu7bA8m3btvmIPUKif6QYxyURUtpZsUaGYv08dKwCteCs2Aj22H322Wc+fexGjBihWp507NhRhWXXrFkj06dPl5tvvjmY20pIaBsUO2577DCTgRctQgqfPMHpLIFDsebZwB8IfF0Vyz52ESjsxo8f7/O6Ro0a8tVXX6kfTdWqVeWTTz5Rfe0IieaTkb4uOYsnGIolpGR97Ew8RAqEYilkfPKRmXMYgcLuxx9/DP6WEBIBOC9KvqFYvZ4nbEKK7mNn3jFSIBRrorr1w2kDCt0o6GO3evVq1Zw4KyurwLrLL7+8PLaLkLDfZfqMSzJ8wDkhgT12BatiDdR1BYScbgcDVu48LKt3H5YrujSSCs5Se0MqYv2fkwgUds8//7xMnTpVatWqJYmJiT7rsNNS2JFoxultcI4UizX4okVIqXLsDLz5KSoU+/Any2T5jjRpUz9Z2jVMFlNw2oDFExEu7D788EPViHjgwIHB2SJCIkTYBWrlYGJiOCH+5Np97BiKLS4Ue/CYFdlKPV4wwuVmnGKOoekIb3eCIglUwxJiVI6d90gx0RtBSIk8dgZ7tQv2sSsYhjQtHOnsXceq2Aj32D388MMyatQouffee6Vhw4YFZsRiGSGuyLELUBVr4kWLkNI0KDbx5qfArFiHkMnK0dMXPOZ67AwTtVEn7DIyMuSvv/6SG264wScRFG0i8HrVqlXlvY2EhAxPITl2DMUSUtAjFbjdiXnHiP/ILGfoUa/TAs8UnEKWodgIF3bPPfecDBo0SP1UrFgxOFtFSATceXNcEiGBb370YRK43YkYRwGPXV4gj51pws4RjjZM1EadsEOLk+uuu06aNGkSnC0iJIzo8zF0nNMjnT8uKd87TYiJOEWMT7sTO13BPGXnPwtVhx7R0FyLPNNy7HyqYtmgOLKLJ2655RZ5/fXXJTMzMzhbREiEzYn190yYmENESCBvVKzPrFiTc+wCh2KdYs44j53DJmxQHOEeu7lz58qSJUvU/NjatWurWbFOfvjhh/LcPkLCkxTuJ+yczYoNvG4RUojHjqHYQIUR2mOXZXA40inmTBO1USfsBgwYoH4IcbPHzj/S6vTgMc+OmIyPxy5guxOP0VXCeK5fO8WcaeKGfeyiSNhdccUVwdkSQiIAHT1wXrDUawo7QgoWGPn0ejS3clyLmIpxMXIsK9f24DnFnGntTpx5hwzFRriwu/7664tMHH/77bdPdJsIibgcO+dLE3OICPFPhIeO85mnbHAoVnukKsbHKmEXyGNnWig22/ndc/NYdBbJxRM9e/aUHj162D+nnnqq1KlTR1auXClnn312mTYClbaXXHKJzJ8/3162bds2uemmmyQlJUUuuugimTNnjs9nfvvtN/WZzp07q556eL+T6dOny5lnnildunSR4cOHS3p6epm2jZiF9jb4Oex8PHgs8CImo0WLsyLW9JZA2iMFYecsHPBp+WFaKNbvRMkb4gj22A0ZMiTg8pkzZ8r//vc/ufXWW0v1+1Bd+8ADD8i6devsZVD2gwcPllatWsknn3wi33//vfq7X331lZpssXPnTrX+n//8pxJvEydOlHvuuUc+//xzdUfw7bffyoQJE1TPvVq1asmwYcPU88cff7y0X5cYhs4PcnoiAEOxhPiKGP90BdtjZ+AFXHvsEuNjfERMpjPHzjSPXYExax6J8621JJHisSuM7t27y++//16qz6xfv141Ot66davP8nnz5ikPHEaXtWjRQu68807luYPIAx9//LF06NBBtV5p2bKljB07Vnbs2CELFiyww8E33nij9O3bVzp16iRPPvmk+iy9dqQ49E11bFGhWAo7YjD5HrvAleN5RufYxfqIX6OLJ/w8dqZ9/6gSdvCW+f/A2wavWaNGjUr1uyDEENr98MMPfZYvXbpU2rVrJ5UqVbKXde3aVbVZ0eu7detmr0tKSpL27dur9bm5ubJ8+XKf9RCF2dnZsnr16tJ+XWJqjp3fRQueYJM9EoT4e6ecPex8Q7FicI5djI+ocXqtsgwrICjYAsas7x9Vodh+/foVSIBE+KpBgwby9NNPl+p3XXvttQGX79u3T+rWreuzDCHV3bt3F7v+8OHDKrzrXB8XFyfVq1e3P19SIBKDhf7dwfwb0UCk2SE7x9qOmADbhNBTXq5Hvae8tzfS7BAuaIfIt0NWTo7t1fbZPu9NUV5eXrltdyTbwUmW97yRGBdjixpsc0ZWtv2ezOycMn+PaLGDk6xs3221vv+JxWKj0Q7lRWm+c6mFnX8DYoi8+Ph41ay4vCpeEDJNSEjwWYbXKLIobn1GRob9urDPlxR4/oJNKP5GNBApdlh/0DoR5+Zk2x5i/wvX8r/+kt2VYl1th3BDO0SuHTalWseIJzfH5xjZvv24ejyUerjgseNCOzjZufuIesxKP2Y9Zlnnj9W7rOsR2Lv/4AnbJdLt4GTTVssWmiXLV0idcjpvRpMdwkGphV1pw61lITExUVJTU32WQZRVrFjRXu8v0vA6OTlZrdOv/dcjZFsaOnbsWGCyRnmhQ8bB/BvRQKTZocK2VJEfDkhiYoIK4TuJ++w7yc7LlbZt20rjGvlpAm60Q7igHSLfDjHb00S++73AMbLRs0Nk4XKpUrVqgWPHjXZw8uXOVSJrjkndWtVFdu0RT4UYZYM98XtEZLF6T5XkamW2S7TYwcmfxzaLLM5Pf2rVuq00rXVi581otEN5ob97uQm7QOHXQOA9qGA9UerVq6cKK5zs37/fDq9iPV77r8cFFyFXiDu8RuEFyMnJUUIRbVlKA3acYO88ofgb0UCk2AEnZLU9MTEFtsdOu6tQcJ3b7BBuaIfItYPHey2Ii63gs21xsdaxA792eW9zJNrBia4LSIqPs3PusL05jrQyhGdP9DtEuh2c+KfU5Ynv/mKKHcJBiYQd2ooUxvHjx+WNN95QVanoGVceoDfdlClTVFhVe+kWLVqkCij0erzWIDSLPnpoiRITE6PUPNajMAPA/Y08uzZt2pTL9hED2p0EuI+xO+ubmB1OiBf2sSuq3Ym3KjZQg2KDR4qp12wAGlnCrrAxYsi3e/XVV5W4Gz16tFx55ZXlslFofIxiDPSfQ3+6n376SZYtW6bamoCBAwfKtGnTlPhDSxNU5DZu3NgWcijKQM869MGDl2/kyJGqrUppQ7HE3IuWf1Wss28XdR0xGedc1IDCzsDrd36D4vw+drhJ9B0pZpZhWBUbRTl2AN45CLnZs2fLgAED5MEHH1Qh0PICLtZJkybJiBEj1O9v2rSpEm9oTgwg4iAoUYWL5fAU4lGHiy+++GK1jRB3yK07//zzZejQoeW2fcS9aNHmP1LMdI8EIcX2sTP4+HCOFHPaybePnVl2YR+7KBF2yFWDp2zy5MlKbL377rvlFn5ds2aNz2v8/nfeeafQ92N8WVEjzO644w71Q0hp0Bcl/wbFpl+4CCnQx66QyRMmHh5axOgGxdYyX4+dabNi/T10pgnbqBB2mOOKSRB79uyR++67T81nRT4bISY0KFbLvIuYY0dMJtcrYgqbPGHiZBb/BsV6mc9IMcM8Vv45hf45dyTMwg6h1i+//FK1OkG+GqpSncUL/qPFCIn6HLsAxRN2jh3PT8RgCp8Va65H2x4p5gjFYpnZxRN+HjveEEeWsJs1a5Z63L59uxJ5hYEct1WrVpXf1hESrlBsQI+duRcuQoqvirUeTbx+a5voyROBQrGmeez8c+zosYswYccZq8QU9LkoUN9GfR0zMdRESLE5drZH27zjQ+ePoZcfQtSwETxWPh47w3Ls/HPqmGMXOpgkR4gDLdr85pt7l1Xw6XVHiNEeO7+DxGSPtrNSWNsFHitn+NU0YcM+duGDwo6QgA2KCw/FMqJATKa4qlgDHXZ2mBWiToeo4bHzCcWa5rHz2xFMC0WHEwo7Qhzoc0/AqlhOniCk8KpYgz3agT12vlWxphVP+AtZ0zyW4YTCjpBA7U4YiiWklB47c298tHcK3joteFUo1k/YmXTu0PuJ/ZrCLmRQ2BFSwqpYHZ1l8QQxmeKrYj3GejFjiwjFwiwmiV7/0Ctz7EIHhR0hAfvYFT4r1qSTMyH+aM+Lf7qCfm2grrNtEh8TY58n4LHKMjgcqW2iT6UmffdwQ2FHSAlnxcYafOEipKSzYk30aDvD0/HeHDt48fzz6kzKs9Meukreps3sYxc6KOwIcaB7cAUOxdJjR0jxVbHmHR9atEDUabvAQ5Wd42sLk3rZaQ9dUoLVLpdVsaGDwo6QEhdP+L6HEBPR+39hHjsTU6mcYlfn2OEGMNNPzJgkbvR3TUqw7MFQbOigsCPEQW4J+thR2BGTKW5WrEmVnwVy7DB5wnsHCGFTsOVHnnE2SdKhWBMVf5igsCOkhDl2+X3sQr1VhERBHzuDR+75euzyUzYK5NiZFIr17ie2sKPHLmRQ2BFSwhw73ceOHjtiMvkixr/diT4+xDi0Nwo5dpgXq0OP/kLOqOIJr5Cr6BV2DMWGDgo7Qhxo0RbAYWd7JCjsiMkUNyvWxFBsrh2ezm93Ajv5h15NEje6oKRSAkOxoYbCjpAAF61AHjvm2BFSeFWs11FlZNW4DjvGOdqd+E+eUO8zyGOnp3FUYlVsyKGwIyTQ5Ikiiid4fiImU1gfO90OyEBd5+PF1CFqhCK1sEvwql6jcuy8J0qGYkMPhR0hDvRFSV+knGgPhc7DI8REdEitsKpY0zzaCD1r0YJWJ/HOWbFecVM5MdbYHDvd7oQNikMHhR0hAUOxBdeZeuEipGSTJ6xH0w4P530ebOJsUJwv7LzhSAM9droqVodmSfChsCPEgafIPnbmtnMgpGAfu8BVsabl2DlzxxCKRS87kJmTZ4vcKlrYGRSO1LmY+e1OzBG14YbCjhAH+tzjP+DcJxRrzrmZkJJ77Ozjw6wDxClkEYrV54n0rBx7ufbYZeXmiik3yNouFXVVrEGiNtxQ2BFSwpFi9oWLyo4YTHGzYg3TdT6CBR473QbmeFa+iMsPxZphHKdnshJDsSGHwo6QUlfF8gRFzKWwlkD6mDEtVcHZnw1eTO3J1MIOZkmK91bFGhKOdIan7XYnBuUXhhsKO0ICNigONHnC9z2EmEhhVbH57U48xnowYQM9eSLdK+zQ6iQhTrf8yDPOi2mHYtmgOGRQ2BHiQJ932aCYkLJXxZo0fUKLNW0P22OXnS/sdNNiU/rY6YbNoGJc/og1Ehoo7AgJFIoNJOzsUUEh3yxCIj4U66wkN0jXFRC6KKBwFk8kxMXYDYpN89hZkzi8fezosQsZFHaEONCFEYFmxeocInrsiMnkFDYr1iH0TMqzs5sTewWMf/EEhA3EHcgyxGtlezEd7V9YFRs6KOwIcZBbVPGE92hhVSwxmXyPnX8fu/znJt38FPTYWY/HdI5dHEKxhnnsvDbB99ZC15TvHglQ2BHiQF+PAjcoZh87QmyPHUOxBbxT6tGvj51T2BmTY+e1Sbwjv5A5dqGDwo6QAHffgRoU2+1OTLpqEVLSdifOUGyeiR47HYqNKRiKNcxr5Swo0Xbh5InQQWFHSAkbFNuTJwy6aBFSUo9dBUNDsbooQHvs8idP5IdidY6dKcJO59P5hGJ53gwZFHaElLJBsUkXLUL8yS2kj50zFGvSNTx/dq71/XXoUXvsEmOdoViPcWI3v3jCDFEbCVDYEeJAV+QHDsVajwzFEpPJb2URU0SOnTnHiF0o4LWHLipJ9/axi4/LFzfmTJ4I0O6EOXYhg8KOEAdatAUqntB35AZdswgpRR+7gu8xcXau9thpVINiHYrNMTAU67WLs2kxCS4UdoQ40Plz3pvMQhoUm3PRMn1f+GLpTtmdlhHuTYnMYgE/AYNxWvp+yKRDRIcYtaDzF7zIr0M41qQcO9+qWE6eCDUUdoQELJ4oIhRr0lXLYGYs2i7/fH+xPPP1qnBvSkR7qJzo48bEUKztsfMLUStxE+cdKWaYsIP41zcAOG+atF+Ek4gWdt999520bt3a5+fee+9V61auXClXXXWVdO7cWQYOHCgrVqzw+eysWbPk3HPPVesHDx4sBw8eDNO3INGEvqkMGIo18KJlMt/+tVs9bj+UHu5NiYpZsc5jxKQ8VDvn0OuZCuSxM62PnTPv0Cl06bULDREt7NavXy99+/aVOXPm2D+jR4+W48ePyx133CHdunWTmTNnSpcuXeTOO+9Uy8GyZctkxIgRMmTIEPnwww/l8OHDMmzYsHB/HRLl7U4QajLtomUqGdm5MnfDfvX8cEZ2uDcnIiseA938GBmK1RWgevKEX4g60cDJEz4jxbzeSsB5saEhooXdhg0bpFWrVlKnTh37Jzk5Wb766itJTEyUhx56SFq0aKFEXOXKleWbb75Rn3vnnXfkwgsvlMsvv1zatGkj48aNk9mzZ8u2bdvC/ZVI1OTYFV48YdJFy1R+33hAMrKti9DhdGuCACk6x86nJVCeuR47/2ph56xYUzxWTps47WHK9w83ES/smjVrVmD50qVLpWvXrrYHBY+nnnqqLFmyxF4Pb56mQYMG0rBhQ7WckJJ47PS+5YQNis3hp9V77ef02JWsQTHQi0xyaheYFRugKhY/ZoVivcUTqt2Jw2NniMcy3ESssEMe06ZNm1T4tX///ipf7vnnn5esrCzZt2+f1K1b1+f9tWrVkt27rZyYvXv3FrmekMLQ551AHjut9Vg84W5w7vnRIezQaNaUEFrp2p3EFF45bpCy0208bGFXRI6dKfuR9szhe+MmWZ9P6bELDXESoezcuVPS09MlISFBXn75Zdm+fbvKr8vIyLCXO8FriD6A9xS1vqTk5loNJoOB/t3B/BvRQKTZIU/ngHg8BbapgqPzfnlvb6TZIVxEgh3W7T2qCiZwQdYeltRjmVKzsu85xe12KE7YVfAUPA50KDYnJ6dctj2S7aDJzrG2DdoN21lBfMULorCxFTx2VWxZvks02MFJZnaOj00gdrHfZGZnS25ufJl/b7TZoTwpzXeOWGHXqFEjmT9/vlSrVk0p/rZt26qL7tChQ6VHjx4FRBpeV6xYUT1H/l2g9UlJSaXahuXLl5fDNwn/34gGIsUOh9LS1OP27VtlSZyVPK/ZvfOYetx/4KAd9nerHcJNOO3w2Rrr/9yuVpysOZAt6TkemffnMmlYNfSny0jcH7SQWbN6lRyoFOuzLi/XuqCvXLVaDu+Ic7UdNFu2WvvLkbQ0dV7YsifTZ/2BvXtkU2yqen48PfOEzh2RbAcnW7dpm6Sq7xvjFbvLVqyU/eVwHEWLHcJFxAo7UL16dZ/XKJTIzMxURRT79/tedPFah1/r1asXcD0+Vxo6duwosbG+J67yVN/YOYP5N6KBSLNDlcULcSqW5k2bSkpKI591i49tFlm2WqpVryEpKZ1dbYdwEQl2GPfHfPV4WfcW8n+/bpL0tAxp3LyldGpczSg7FEbeJ9/CpS2dOrSXusnWzbQm4asfcRctLdGeql5VV9tBs/DIJpGla6R2rZqSktJJMjcdFPllgb3+pCaNpEOrOiLfzRFPTKykpKS40g5O5qVtFFl2ROrWriUpKR2l4pc/SHpOtrRs3UZa1q1S5t8bbXYoT/R3j2ph9+uvv8qDDz4oP//8s+1pW7VqlRJ7KJz4v//7P5ULA28eHv/880+566671PvQu27RokUyYMAA9XrXrl3qB8tLA3acYO88ofgb0UCk2MHjDbjGBdgeXfWGe89gbWuk2CHchMsOKJT4Y4vlXTm3bX356I/tsistQ45m5YZleyJtf8C5VodiE+LjCmybzrGrUCGmXLc70uzgRKeNIXSPbUyM993OivFx6kfnmJ3I94hkOwSySXyctb363JnnqVAu2x8tdggXEVs8gd50CKk++uijsnHjRtWuBG1LbrvtNrngggtUb7oxY8aoXnd4RN4dWpyAa665Rv773//Kxx9/LKtXr1ZtUfr06SNNmjQJ99ciEY6+aOkLlBO9TFfOEvfx+4YDah9oXruynFSrkiRXtPKB2PKkYOGQf1sPoA8bk44R/2IS/6ISVTzhbXdiyuQJ/zFrqI5Vy9nHzmxhV6VKFZk2bZqaGIHJEuhVd/XVVythh3Wvv/667ZVDG5MpU6ZIpUqVbFE4atQomThxohJ5yNMbO3ZsuL8SifIGxfk9ukK9VSRUzF1vpXCccUpt9ZicZHla2PLEt9UJiC2ij51Buq6AiPGvilV97BxVsSZMrsnWkyd0bz/DqoLDTcSGYkHLli3lzTffDLiuU6dO8umnnxb6WQg+HYolpLTCTo9GchJrYCsHN7Nh31F5Z94WGdL3FKlVJVEtm6OFXUuvsLM9dhR2BT12hQs7k1oC+c+KLdDHLi5f2OHUgfc7e7u5kWxvNbm2hX5ku5PQENHCjpBQo69HgRoU22Emgy5abmbcN6vl27/2qAkTYwd0lJ2p6bJx3zH1f+51ci31nuQkr7Cjx66gxy5guoJ5oVh7Lmohkycg6pxjteC10u81YVas81FPpCDBxd17FyFlzpcpYlySQRcttwJxPh/ViyLy+ZIdcjQzx/bWdWpcXap5BZ0Wdmn02BXwxAXyaucfI2IMWqzEFtqgGNMXHGO1cjxGzYoFWtjqZs4kuNBjR4gDTwly7HjTGf2s2XNEUo9bYu1YVq58vmSnzN90QL0+0xuGBckVvTl2LJ7wSX7H8RGowCjWwJsf5/iswCPFYpXYg2lgFhMKKLTY9fdi0mMXGijsCHGg8+cCXrS8y0xIfnY78zZaIg4XXISN3luwRXanZahlvb2FE4Ch2MLmogYO9lQwMF0hP8eukFBsnDVWCyIHk0xMEHb+Y9Z0TiFnxYYGhmIJCTQrNlCYSRdPGHTRcruwu7l3M5UDtWLHYdl/NEuS4mOly0n5jdFZPOGL9rgUousMDcUGLhTQaFFjV8Z6CwtM9NiZIGojAQo7QgKGYgsvnqCwc09+3YUdG8gFHerb63o0rymJcfmNT/PbnTAUWxKPnYlebe2xiys0x85bQGBXhrpf3GT7t4CxPXbm7BfhhMKOkIANiguu0148g65Zrs6vq5QQKx0bVZNre55kr3Pm1wFdREGPXeDWHv7oanKTWgJpsaJ7telHTaJX2GmBZ4LXSrc10bbQnjs2KA4NFHaEBGxQXPDCZeJFy81h2G7NaqoLTs/mNaVDo2QVKjunbT2f99qhWObY+RwfgXrY+U6eEAO9mIU3KHY+Is/O7eQUkmPHPnahgcUThDjQF6RAHgm9zKSKPzcLu14n17QF+7u39VJeuSY1rek1/sUT6HWXmZPrE6Y1Ef/WHv6Y2BLIv7VHYaHY/OkTHvNy7LTHzgBvZSRAjx0hJRwppiMsJlX8uTm/rmdzqwmxDrn6izpQNTHOrvRky5OC3qlC5ykbdIz4N+ONLcZjZ1KOXVyBWbHm7BfhhMKOkEA5dgzFupK1e638OlS/dmpcrdj3Q6hUSeS8WP8QW6A5saaGYv3zDnGecArfBP8cOyNCsb5FNtpjZ0J+YSRAYUeIA63ZAgk7u/kqz01RywKvt65bsxolHuvEliclr4o1MRTr3+7E32unQ7A6zyzLII8dpm749rEzZ78IJxR2hDjgSDF3s2jLIfXYramVX1cS8psUMxRbXFVsfuW4OceIv3cKOG8aEowMxfp57OzJE+7/7pEAhR0hgSZPBGxQ7H2PSXEmlwq7rk1rlPgz1XQvO3rsis2x04eNSdfvojx2sJPOO9ShWBOEnb9NbFHLc2dIoLAjJFCD4iL62NFjF53sOZwh2w+lqzywzk2Kz6/TsOVJyT12Jnq1A4lde9qEV8yp50a1O/GtiuVIsdBCYUdIoFBsESPFeNMZ3d661vWTpapXrJUqFMuqWMn160/mj74hMknY+TfjdQpfZ0jW7mNnQJ6ZXRWrPZfsYxdSKOwIcaBFm66ANd0b4c4wbP4s2NJ47NIYimUfuxJ67HROmdNjF69DsQbPijUhDB0JUNgR4kD33yqqQTFz7KKDV39YJ3+f8rscPJZV5sIJ33mxFHYlroo16PqdHcCLqT1UOvxq7qxY/1Asz52hgMKOkBI2KLZ7dFHYRTzI5Zk8e4PM23hQJv+8XjKyc+WvnWmlLpwAbHdSmhw7Mddj5yie0CLP6bHTM2NNyLErMI3DLp5w/3ePBDhSjJCSVsXaYaaQbxYpJat3H5HjWbnq+du/b5HOTaqr/J46VROlcY2kUv0utjspWTsg53KDdJ3thXJ6Me1QbIAcOxM8dv7TOPR3p8cuNNBjR4gDLdp0oUQgYcfJE5HPn1utsCvIzMmTRz9boZ53PalGwPzJosC4MUCPXfEeOxOns9jTOAKFYuPMLJ6wxa7d7kSPFHO/qI0EKOwICZRjF2jyhO2NcP+JOdr505tPd9rJ1jxYjBErSxgWJFdkjl2Jq2INDMX6Fwo47aMFjWkeOzvvUIdi7eIJc/aLcEJhR0igUGygPnZsUBw1LPJ67O7p20JOb2GJO3BqWYQd253YaE1SfFWsGO3F1DllPn3sDMmxw/lR63odis1vd+Lu7x4pUNgR4gWeuKJmxdphJpOuWlHI3iMZsu1gupqCkNKkujxwfiu1vHJCrHRolHwCwi7beG+t7bFzeKIC9no06BjRTXed3jkt8hLiYu1lCYaIG+f30y1eWBUbWlg8QYgX57UoYCjWnoMZyq0ipeXPLanqsXW9qqoRcdemNWXqDd2UQEt0XGhLG4rF8Hbk61WML/3vcJ93qph2JwYdJIE8dvbkiQChWOxHpgg7u0Ex+9iFFAo7Qrw4L0ZFVcWalBgezYUTXU7KD7ue265emX9f5YQ4lTuG6ze8diYLu+Jmxebn2ImrSc/KldT0LGlQLanA+Cyn8A1UPOH2PDOnVy6/j523KtbtO0aEwFAsIV6cIdZADgkTxyVFc+FEWQolCgsv6hFkphdQFFcVm+/V9j1GVu06LMu2W55UNzD4vT/lrHE/ybyNBwK2gMkvngiUY2e14XErunACu0L+aDXOig0lFHaEeHFeiwJ57PRJihX7kQsS05ftKFsj4pK0PEkzvICiOI9doDzUzJxc+fuUeXL16/Mk9bg1BSSaQf7g7xsOKM/b8E+X28t1oYBPg2KnsDPMY+djD0O+e6RAYUeIF2eINZBHgqHYyGVnarrsP5qppktA3NWsnCDNalUqt9/PsWIlnRVrPTojbqt3HVFzdtOzc1Xj6GhnZ1q6+i5g475j9vLY2GL62MWZUTzh38MOxMeY8d0jBebYESIFQ6yBetiamBgeLTl1Ayb9pp4nefPfTj2peqkbERcFx4qVtI9dwWPEGYJdu+eI9PL2FoxW1u09atvAmTPmMyvWb+KC8zkKcNyMLg7xnZ3LHLtQQo8dIV6cLRqKblDMJsWRxOw1++zn2pNyxim1y/VvUNiVsCo2QLuTZdut0LgWdtHOBq+wO69dPZ9wv6+wq+AzH9Y3FOtuYaenSzi9lexjF1rosSPEizMvKHAo1ve9+mQFkbdmzxE5uXYVn5MZCQ0Iv4KHLmitvEGHjmXJWa3qlOvfqJecqB43HzguJhNo4H1xodjl3pxHsHa3JYqimXV7rO/Qsl5V+We/lnLZhDlSo3JC8SPFvM/dLm4Czc7VopZ97EIDhR0hUvBiFCiM55wf63zv50t3yr8+WCJ392khD1/QJujbSXzRwqFHs5pyqqPFSXnSuUl1kd+3yJJt7qnsDEZVrH8o9nhWjo+Xbu3eI+pGqDzD5KFm/T6vsKtbRdo1TJZZ956hhIvzO9WolODz6OOxy3G3uNHC1Sn+9XPOig0NdC8Q4kVfjIq7aDnfC779a7f1uMJ6JKGdMrHncKbKicRFNljonngQkW4fCVUUdmuPQoSZ/zzllTsPq5ugWpUTlDcPM3v3HcmUaAXfa51XqJ5St4p6bFM/WU6uYz3X3HHWyTJ2QEcZ1L2JcQ2KA/X146zY0EJhR0rEkYxs2X7I3WEoLdYK0XU+FzP9Xpzo5208qJ5v3H9M9hzOCMWmEi9/7TisHlvUqSKVEoIXgECFbfVK8UrUoSebqWiPS2E3P/oQ0ZXjOr8OwrhZrcrq+VpvKDMa2Xc0Uw5n5KhzRPPa1vcJRK0qiXJNj5OkSmKccbNibY9dgEkcbg9DRwoUdqRE3PrWH9Lv+dmyevdh13sjAvWwU8tjCr4XFXIHj+X35kLDUhI6VnjDsB2C6K0DCLNh7ixY7J1sYSLFT57QoVjfithOjatJq3pV1XPko0Yr672i9KSalUo9gcQUcZPf7qRgHzvm2IUGCjtSLOv3HpUFmw6qEMIni7aLW9HR1UKFndNjlxdYyGnvHQltfl2HRtWC/re6NLHCsSbn2dl97IotnvB67Lz/H0vYWeHKtVHcy07n151S1xKppcGUqlj9/RIC9bFjjl1IoLAjxTJr2U7H810+rQzcRKDRQMWFYrWw63KS5c2ZT49dSPlr5+HQCTvv/3ixwcJOh1gL9dg52p2gmbNu4NupcXVpVb+qXUAR7RWxOr+uNNg5dq4PxRb02Onvjt3H2X2ABAcKO1IkyCH7Ymm+sNuVliF/eGdxug0t1gor2HMuxwXOmV93b7+Waj3z7EIHQuA7UtPV8/ZBDsXalbEisuXAcTlwNHoLAMrn5iem2FCsDpM3rpGkJoHoUCzEUbT2gUT0QlfElhadY4cGxRnefotuzsP0bVCc/9ztHstIwLXCLjMzU4YPHy7dunWTM844Q954441wb1JUsmrXEdmw75g6KfVvX08tcwo9k6pikWflDDXp/DpMO+h9Sm1bXDDPLrRhWCSxV/U2EA4mmBfbok5lo8OxOcXm2OUfH8u354dhAYonkGd2NDNHdqZlRPXUibJ47OpWTZQG1SoqG06bs0ncij0rNoDHTq2nxy7ouFbYjRs3TlasWCFvvfWWPPHEEzJhwgT55ptvwr1ZUQd6tIF+reuqKi/w1fJdkuPCuy79lQpr5aDW2aGmfAHXrVkNJXx7Na9V5jy7X9btk7nb0qPWkxHWwokQhGH9256YKuxyi5kVq4+dxVtT5b0FW+0wLMAxoitJozHPLvV4lppHDFqUQdghNKn7XE76ab1q1WNMHzvH/pLt8lB0JOBKYXf8+HH5+OOPZcSIEdK+fXs577zz5LbbbpN333033JsWtWHYy1IaKq8UQioHjmXJ76X0SiGvBDM99Ykx0kBO0Per9qjnRTVP1esQitXCrmfzmupRz8AsTZ4dBPKYL1fKzdMXyYvz0uTfHy2T9Cz3hmmisSI2YJ7dVjOFXXEeO318QPgiZI2RWn1a508B0eHYaBwtpsOwDatV9GljUhou69xQhfSPZeXKi/9bK24BvQk/WLBVvl+5x56F65w84bwRYAFF8HHl5InVq1dLTk6OdOnSxV7WtWtXee211yQvL09iCskPCSXoyL54d6YcWrOv0HyVkuS77EpLt/O66icnSfM6ldWJp7DKztKwPTVd5TBVToiVvq3rKnf6hR3qy7vzt8qUXzaqUNietAw5mpmrckawPcinwTbUT7a2AReCuev3K88fwpY4wPu0qiOXdG4g1ZMS1FDxjbsy5VBS6eyAUA/6if224YC6iOBE26RmJWlSI8n7WElqV02QClK8HbCNU3/dKPM3WZ623qcUPqRceyTwnbRnTgu67s1r2nl2L363Vnampqu7V4SgTq5T2Z43qvGIR96cu1l+Xbdfvca574tlu9Tn7zu3VaEXz8JA1fK2g8fV59PSs1VLhua1KpfYDpFAafYH7TXrGEKPnW55gr/90+q95f77kxJilVerVqW4iP3/FOWx0yHKJjWTlIf/qq5NpE5VaxxbvrDbpW6iIABwTsB0BoQoa1VBE2Pf31vW84OTI5k5snn/MfUDYN9mtSuXWpzhmC+rt85ZXPL4JW1l4OTf5cM/tkn3ZjXVzXJxOO1wPDtPlmxNlcXbDsnRjBzp2LiamrjSsHrFIo9znBM2eu0AwY3zNM5NSCUpDJyjcH6Ht/LA0SzZ6j2/HDyWKY2rV1K/Y1dquvyybr+df6lzCRPiKvgIflQF4xz169r9JfrOxdmhLPuDRzxy8Fi2tT8cOCZVK8YpGzStVUkS40rXvsaftg2SpX61ihIJRObZ4wTZt2+f1KhRQxIS8nee2rVrq7y71NRUqVnT8rAUR25u8Dwnw2aukFnLD4n8ukginXPb1pWEWMseF3e0hB3EiBYkJQUnUuTX/LB6r/rxYc6J2eF4Vq7sPZIpi06gsAMnuIf6t5Lrep5U6P8eOUKYA//QjGXqdcX4GGnfoKp6f5WEGGnXIFlVao7/YV2p/u4zV7SXtL3b5eWFR9Tnb3/7DzGaUuwPbepXCeqx6uSU2pXU/wv78c3TFwbt71RKiJWkWI/Ef/tT4dU8YUD3bISuC2TzizrUk64P95E6VRLtClnn+07x5igu3HxI/ZSYEzw/lCf4Dieyv6U0rqbOo18u3y0PfLy0dB8OYAfk/c38c4eEmm0H030iN/Ccbz+ULqk4QXpbnDjtBMEHYVfq7xzh+4OmZqV4mT+sn8/oyfKkNPucK4Vdenq6j6gD+nVWVn4z2eJYvny5BIs2VTJkTc14n9FUZaFmUqw0qBIrtZJi5UB6ruw8kiuHMsrvIlcRoZR6WbJkyRL1Ot7jkQtaVJIdR3KkVlKM+vuV4yvYd2d7jubKrqO5kurYhoZV4+TspknSqW6CWjd7S7qs2Jtlt04oK3Urx0qHuonSrna8IHq591iu7D2WI3vUY64cySq5y79e5Tj5R8cqUj/pkCxbVvgF54rWSTJnq1WJibvjs5tWlJUrLJEH/nZyjMTkJCjbNKgSJ7h5xXfedTRHMgLMiExOjJHrOlaVxp690rhOgjzdp7pMX3JY9h0v/f8Q3o46lWKlYdVYJTJhh51HcuRoKewQbXRtkCib1vwV0r95bftKMntLhrr7L2+OZXlk7/FcdaOi5rykR17qAo70nIM7ZMmSwj2WuwpZXj3XI72bVJRjWXlSq1KsVEuMkcOZeerchcdggH5qOBZxngQ7j+bK7qM5klWGZrlJcTHSueox+3xYVv7WNFe2700o07EJT37z6vHSula8VE6oIGsPZMu6g9nF/q6KcV47VI1TLUlwTtp9NLfYYgZ8DueTqgkxUq9yrPo8/m/YT3cdyVHbc3qTitKoapxk5iSp8/v8HRnSpXqGj50G4ty5zTp3hpNK8THqHFm/cpyk5+SpayauFyd6PepYN0GWLSsH0VoOuFLYJSYmFhBw+nXFiiV3lXbs2FFiY0/MPVv4786V0xovD+rfCBan5ke4y8QlfnchENDRYoeUlOLX33ph6X+vtkO/nily3umRb4dgEQ37A/7Hw4P4+5GPuvXAUVm2co2ccsopEZE64j8uC6HTstKzq7v2h7JyzmnutEPPbmU7d7rNDuWN/u7GCrt69erJoUOHVJ5dXFycHZ6FqEtOLnmiNXacYO88ofgb0QDtYEE7WJhsh6TYWDmlXrIc3RUvnZrUMNYOTkzeH5zQDha0Q9FE1q1gOdG2bVsl6Jxu4EWLFimVH2l3v4QQQggh5YUrVU5SUpJcfvnlMnLkSFm2bJl8//33qkHxDTfcEO5NI4QQQggJGq4MxYJhw4YpYXfjjTdKlSpV5J///Kecf/754d4sQgghhJCg4VphB6/ds88+q34IIYQQQkzAlaFYQgghhBATobAjhBBCCHEJFHaEEEIIIS6Bwo4QQgghxCVQ2BFCCCGEuAQKO0IIIYQQl0BhRwghhBDiEijsCCGEEEJcgmsbFJ8IHo9HPebm5gbtb+jfHcy/EQ3QDha0gwXtYEE7WNAOFrSDhcl2yPV+Z61PiqKCpyTvMoysrCxZvnx5uDeDEEIIIcSmY8eOkpCQIEVBYReAvLw8ycnJkZiYGKlQoUK4N4cQQgghBuPxeJQ2iYuLU9qkKCjsCCGEEEJcAosnCCGEEEJcAoUdIYQQQohLoLAjhBBCCHEJFHaEEEIIIS6Bwo4QQgghxCVQ2BFCCCGEuAQKO0IIIYQQl0Bh5yJMb0m4YsUKNTXEdDtoTLaD87vTDgWfE4Jmt0RceVxQ2EU5mzZtkt27d8vBgwfVlAw37qQl4cUXX5Qrr7xS2cPkaSE7duyQQ4cOyZEjR5QdTD15HzhwQI4ePWrbwVR27twpqampcvjwYaPPD1u2bAn3JkQE69atUz979uwpdnqB28+TBw4ckLS0NFeeJ+PCvQHkxMTMN998o0aMYEDwG2+8IY0aNRLTGDNmjHz88cfStGlT2bZtm7Ru3VpdwEy7oI8fP15+/PFHtS/UqVNHnnjiCWUT03jllVfk999/l4yMDHXCvv/+++X0008vdr6iG88PP/zwg3qO767tEBsbKybxxx9/qHPjDTfcIL169RJTeemll9T1AsARMHz4cLniiiuMO1e+9NJLMnv2bHWerFatmrp+uO08SWEXpeAA/eSTT+Tll1+W9PR0OX78uI+owwXNhDuyZ555Rv773/8qYff666/Ll19+Keeee65RJyrw/vvvKxvAHvv27ZMvvvhC3nnnHRkxYoRab8rJe+bMmcoOzz33nDpx46J+9913y5AhQ+Tqq6+W2rVriwngONB2wNzrxYsXKzv885//VBfzunXriilA1P7yyy/qBhi2OOOMM8Q0ZsyYoc6Tzz//vPrf//TTT/Loo49K48aNpXv37mIK7777rrpu4riAuMX54tNPP5X77rvPVddNCrsoZevWrdKuXTv7oMQOuWzZMhVyadasmTpg3c7jjz8un3/+uRI1LVu2VCdsnLyQZxcfH2+EkNGsWrVKLrroIundu7d6vXLlSjsEVbFiRalXr56YAL53z5495bTTTlOvsU8kJycr7xVO2BB3NWvWFBPOD6eeeqotYvr06SMnnXSS8lZkZmbKddddZ4QdQI0aNdT5AGkaH330kTov6OPEFFavXi1nnnmmdOvWTb2+8cYbZc6cOfLee+9Jly5dlBfXhPPl8uXL5bLLLrPPD3PnzlUCD7aA4D3llFPEDUS/NDWU6tWrqx1Sh5tuuukmeeSRR5TYwY6LuxC306BBA3Viatu2rXrdpk0bWbhwoTpYTThJAZ0zBfGGXCrkVAHYACL3lltuUfvDZ5995vN+t6G/F/7vyKuDtw7L8IjwG0IuuAH43//+p97ntpwafzsgFI/zw/79++11AwcOlIceekg+/PBDtW+42Q5OW+CmB6E2eLORd4nvj+PDBPT/F8IN+WQ4HjQQ+ps3b1aeTLefL/Py8tQPvr/TBvDoI30F1014sidPnqycI9EOhV2UgjuLXbt2qRMUdsxKlSqpUCQuXvfcc4/Kn0D4wc0Xc4SW4LXEgYqDFsIOF6/vvvtOjh07JiagT8jwUs2fP1/uvPNOdWcO4Q/Ri9yim2++WYl+Nwte/b3gpcL3/PXXX9UyXNDgrTnnnHPk2muvlSeffFLWrFnjinBLUXaA1x4heeQSOS/wEPkIOz377LMqPOtWOzhtgRSVhg0bSvv27WXo0KHqwm2KuNP/X0Q0sD+gYEALG5wv4RjAj1PsuNUOMTExcsEFF8jJJ5+sliEPt0ePHsqLi2sGcu2mT58uP//8c9RfNxmKjaLcANxdbd++XSUBw5WMC9WDDz6odtaUlBRp0qSJeu9tt92mqp4mTpyoQrXw5rjNDqhquv7665W3DiJG06lTJ5kwYYLyVFSuXFmdsNyYLK7tgGIRhFUgXPB9sQwnKoRlW7Rood571113KXtMmjRJunbtKomJia4ReE47wGt94YUXKuGGnDrcgSMM9+abbyobwQ4bNmxQ3mx4rmADt9gB30lfuCHcEHK7/PLLlZCtX7++Cj3q/KGrrrpKtQaaNm2aClG7KW0B+VOwAcTbP/7xDxVuhqAbPXq0Wo/zxbBhw2Ts2LFK3AE3hmW1HeClw3kSHQP69esnVapUscVedna2Cstr0QP++usvad68uXIUuMkOqampyg44T2pwDcW+gVQNgOMF55G33npL+vfvH9XFVu69XXMRyIvBRRkHGw5EnKT+85//yB133KFEHU7qzpALwMGJE3ZSUpJrTtpOO+Au8+mnn1Y5dtrNDuCxw90pigawDKLObeEmpx2QT6j3B4Qc//73v6sTOMIrAOsBci5xooLId+P+gO/51FNPKTtA2OD/j5Ascmog8nADBGAD3erBLXaA9w3J4GvXrlXee+QRAnzvQYMGyeDBg5X33umdgwcLRVewh5v2B9gBeZbw2ELoY39AOygIPB2GQ9U8xB3EH4oKtFfTLTjtgNwxOAKmTp2qrh34f2tPFKIaEHc6vw6FFUjdwPvcgNMO8M5if4AddLoK0KJO2wQ3QTifRP3Nr4dENFu3bvVcccUVnj/++MNeNnr0aE+fPn08qamp6mfYsGGejh07embNmuXZs2ePes8zzzzjuf766z3Hjx/35OXledxqh759+yobgJycHPW4bNky9d1ff/11V3z30uwP4I033vB06NDBs379evs9zz77rGfw4MGejIwMV9ikMDucddZZnrS0NPU6NzfXXqeXPfXUU55Ro0apfcUNdli9erXnoosu8qxatUq93rhxo+ecc85Rj/r7v/jii5727dt73n//fXufGDNmjOf222/3pKenu8IOhw4d8gwaNMjz888/28smTZqkzgNPPPGE2l8Avqu2y5o1azwDBgzwPPzww+o86QZKagfw5ptvevr162fvIykpKZ6lS5d6TLLD7t271TGhz51PP/2055Zbbon644Kh2AgHd0+ocHPePSCPCp4q5FSdf/758thjj6lwJHIEcAeCu9P169crlzI8dm62A9p6zJs3T7nOtUeiVatWql8XenjBU4WwpFsoyg6//fabCkUi5IBQG0KRCMnBcwvPFUKSuBN1ux1wdw47wFOLUBQ8WvDa4Lv/+eefKnzrlvA87OD01sMeCMm+8MILKm0DHmyEoHEcIP92ypQpKjyNkNPbb7/tmjQN2AEheWeuGHJw0d7m66+/Vt8VKSq6OhweGpwnsG/AQ+Om82RJ7VCrVi3l2Ue/S4QsP/jgA+nQoYOYZIft27erRxwfsAeqh5FnF+3HBYVdhIMdEYUSGzduVPljOBCx0+kqJ4CTEnKG0L8NYSactPBeN7U8KcwOEHOodAO6sz4u4AhBweWO3EM3UZQddMEIluHCjj5mOLlB7CP0hIR6E+yAno4AyyBiLrnkEnWjg+UPP/ywnTztBnBDh1YmugoYN3PItcWNDUJQELo4DvC9UViC8wOOF+QWuamZOYRK37591c0c2nfg/w6QTwiBP2vWLLUOqQo6txL2ckt7i9LaAfnZOIbQDgn7BPJyUYhmoh3GjRuncvCwHOkcOlc9qgm3y5AUz0cffeRZsWKFCiHAPZyZmalCTu+8845ar0MLCLOZbAfNkSNHCoTiTLSD2ynODjqUkp2d7XEzy5cvt58vXrzYDisB2KJ///4+ITi38vHHH3uuueYazyeffFIgtIpQ43nnnec5evSox3Q7nHvuuZ5jx46p1+PGjfOsXbvWY6Id+vXrZ9vBbbB4IoLRSf+4y8DdlE74RgIsPHY6MR7LUeEGFzI6q0dzmfaJ2AGgvQdCbbBDVCe/nqAdkCSMsJvJ+wOWwQ44NtxoB/19nOEzeKjRs0/bCJWh+O6YNOB2UPmJqlcUTKBlhfbcgn//+9+qUECPWDPZDtgfdD9HFBqh2MxEO+Tl5dl2cBsUdhGC86KjT8o6ZwyvtUjBc1Sz4eKl86UwGxPVPwjJRHuzyRO1A9zqtMMrqsLt7LPPph2ef961+4P+Pv49yGAH/R7YA4288eMWkB8InNXu+jnyjdGfDT09EYbWzWZxUUcOla6CNN0OEP8A+bcm26G6o1WWm2COXYRw6NAh5XHQfYb0bE/dh23v3r2qxQe6heuGvMgpgpcOXiqU7aOMP9qhHSxoBwvaoXR2wMQJTBlBUji+97p169QPLm5uAH33vvrqK5Uj5Uxw18IX+YP/+te/VHI83oM2L/Biou8lfnRvR9Pt4JbcQu4PhRDuWDDxeMaPH69aNwwcONBz11132blBOkds+/btnk6dOnkmTpxofwbvQ0uLzp07q/YeboB2sKAdLGiH0tkB7RwA7HHdddepNiho3bBy5UqPG0Arinbt2nl69+7t87/VbY5gB7R1QRsP8N1336m2LldeeaXn7rvvtlvCRDu0gwXtUDgUdmHmgw8+8PTq1cvz9ddfq+dTpkzxWb9z50614z7++OM+xQAjR470tG7d2rNu3TqPG6AdLGgHC9qh9HZwFongOXr3uaU/Gy7iPXr0UH0Lr7rqKvtirUE/MtgBPcqysrJ81qGoxn9ZtEI7WNAORUNhF2bQLBWNVTW4G8dOqe+ycUJ/9dVX7YuXs2nirl27PG6BdrCgHSxohxO3g1sYPny4p3v37vZ3RkXj0KFD1XMtZmfOnKns4Mbvr6EdLGiH4mGOXZhBvsymTZvUc+QH3X777bJr1y7VkwzjTTDrEWPDNM68Gqx3C7SDBe1gQTuU3Q5uAknuGA2H5tqocATIi0LlO/qv6YbDaMbtZmgHC9qhZLAqNsyg+zmqevCDZG9U72EG6uTJk1XlEk7k6CTvrPRxS9d8J7SDBe1gQTuU3Q5uAlMhxo8frxoqo00HwCQZtHhBA27nnGg3QztY0A4lowLcdiV8LykHvv/+ezXuBDvl3/72N7UMg5cxRaJnz57qLuTSSy+1349O6ZgY8Mwzz4iboB0saAcL2sGCdsi3A6p8cZHGeDjdlkO3uMFklT/++ENVO6JaGMt1Gxw3QTtY0A6lw9xvHgbQa+7RRx9VMxtHjx4tN954o/z4448yatQoqVy5sroj1312tN7GOBTs0G6CdrCgHSxoBwvawdcOmF2KEU+Ydfvll1+qBsO6GfU///lPFZJGuwugW8C4CdrBgnYoPRR2IQIDy9H1fMKECequAv100HMKXbHRh+eBBx6Q7t27q1mPa9assU/WyCfATuqWzvm0gwXtYEE7WNAOhduhZs2aqh8h8qr0VBE0oX7kkUeUl+abb75xXX4h7WBBO5QNFk+EMOkT4RQkd+JEnJSUJCNHjlS5MvPmzVO5M7gbwbIhQ4aonRdDmn/77Td1p4L1boB2sKAdLGgHC9qhcDs88cQT8tprr6nvihDc9ddfr77vqaeeKgsXLlQX+bp166rXboF2sKAdygY9diEC8/iaNm2q7r416CI/ePBg1SF+7ty5ypWMjvlwNffr10+6du0qM2fOdEXnfA3tYEE7WNAOFrRD8XZAfuGcOXPk119/Vctxsb/kkkuUt6ZRo0biJmgHC9qhbLB4IkQgVPLqq6/KypUrVTL0aaedZq/D2JMHH3xQvQdDy90M7WBBO1jQDha0Q8nsMHToUBVyhsdGg7C0c5yUG6AdLGiHskGPXZDw18twFd9www1qR0WuwJIlS3zuQNCP6s8//1Q/+rNu0Ny0gwXtYEE7WNAOZbMDQtELFiyQxYsX25+FhybaoR0saIfygcIuSPgnbqL8ulatWqotAfpO4Q5j9uzZ9nrslE2aNFE7q/6sG5I/aQcL2sGCdrCgHU7MDqgSph1oB7fa4URhKLacQZsC5AQgodMJ7jh0gjM6yWNHxTLkEJx++ukqERTVPB9++KHdPTuaoR0saAcL2sGCdrCgHSxoBwvaoZwpwdgxUkLGjh3r6dKli2fVqlU+y3NyctTj9u3bPe3bt/f8/PPPngMHDnimT5/uue666zwXX3yxZ8CAAZ6//vrL4wZoBwvawYJ2sKAdLGgHC9rBgnYofyjsyokxY8Z4TjvtNM+KFSt8luvh3Ng5Tz/9dM9jjz3mycrK8nnPoUOHPMeOHfO4AdrBgnawoB0saAcL2sGCdrCgHYIDhV05MHfuXE/r1q09S5cu9Vl+8OBBz+bNm9XzV1991fPCCy/YdyEgLy/P4yZoBwvawYJ2sKAdLGgHC9rBgnYIHsyxKwdgwttuu00lcGJAMbjnnntU36kdO3bI2WefLYMGDZJu3bq5OrGTdrCgHSxoBwvawYJ2sKAdLGiH4EFhV06gDcGkSZNU09ANGzaoUSdologO8Zj1WL16dTUWJTk5We3Qbt1RaQcL2sGCdrCgHSxoBwvawYJ2CA4UdmUE3a5TU1OlUqVK0rNnT3tIN5ajQSLG/6ByBxw7dkz69++vKn7uvPNOcRO0gwXtYEE7WNAOFrSDBe1gQTuEBncMGAwxzz//vPz3v/+VZs2ayapVq5TLGCNOrr76avnpp59k79696k4DoDQbO+8ZZ5yh+vC4CdrBgnawoB0saAcL2sGCdrCgHUJIEPP3XMmcOXM8ffv2tRM+UaJ9/vnne5599ln1GuXYW7duLfC5e+65x/Pcc8+5JvmTdrCgHSxoBwvawYJ2sKAdLGiH0EKPXSnZvXu36oTdqVMn9bpNmzbyj3/8Q15//XU1+qR+/foqP2DZsmVqBAqaLqalpcm8efPk/vvvV59xQ54A7WBBO1jQDha0gwXtYEE7WNAOoYXCrpSgu/WhQ4dkzZo10rp1a7UMOyHyA3SHbIDRP1u2bJGDBw+q5++99560aNFC3ALtYEE7WNAOFrSDBe1gQTtY0A6hhcKuBOTm5qrH2NhYtTMi7o+7B8yxi4mJkcaNG6ucAOy4uOsAJ598snz00UfqfZmZma4YTEw7WNAOFrSDBe1gQTtY0A4WtEP4oLArBriKcZexdetWleSJnXPkyJFqh8TOqXdg7KzYGfXPF198IQ0aNFA9eBISEiTaoR0saAcL2sGCdrCgHSxoBwvaIbxYFiYBmTp1qkyfPl1SUlKkXbt2atjwww8/LLNnz1buY3SKwY55+PBhyc7OViXc2DlfeuklGTFihD2UONpzA2gHC9rBgnawoB0saAcL2sGCdgg/9NgVAUqyb7rpJpXcCZYsWSKzZs2S0aNHqx3y3HPPVTtffHy82mHhNn711VflrbfeknfffVeaNGkiboB2sKAdLGgHC9rBgnawoB0saIfwQ2FXCHAZo6+OvnsAuANBLgB2yBdeeEGSkpKkd+/eUqdOHdV/B9U7ixYtkg8++EA6dOggboB2sKAdLGgHC9rBgnawoB0saIfIgKFYP9atW6dGm6Dr9Y033iiff/65GnuiOemkk9T8ul69eqmy7M2bN0vFihXVncjixYtlxowZrtg5aQcL2sGCdrCgHSxoBwvawYJ2iCw4UswBYvw//vij2jlxV3H66aernQ/l10OGDJFWrVrZ7124cKG6+8ByJIaiczaqfPQ4lGiGdrCgHSxoBwvawYJ2sKAdLGiHyIPCzsuHH34oEydOVAOHMYh406ZNagRKnz59VK8d7Ki33Xabzw6IOxPkAyB3wC3QDha0gwXtYEE7WNAOFrSDBe0QmTAU6wVu5H79+qnO2Ci1xvOOHTuq0utLLrlEDS7GnQk6Y2tq1KghjRo1EjdBO1jQDha0gwXtYEE7WNAOFrRDZGJ88QQclqjQwaBhxPs1GH+Cne+XX36R++67T1XufPvtt3LLLbdIz5491d0JcgjgUnYDtIMF7WBBO1jQDha0gwXtYEE7RDbGe+x0rxzcXWzbtk327Nljd8zGDoru1+i5c9ZZZ6lePE8//bQ0bNhQ2rZtqzpkn3LKKeIGaAcL2sGCdrCgHSxoBwvawYJ2iGyM99hpzjnnHFWVgzsOvdNiFAp+cEeCO4/k5GQ15+78888Xt0I7WNAOFrSDBe1gQTtY0A4WtENkYrzHzgl676Bhoh55cvz4cVXpo+tLXnzxRenfv78aUIy7EbdCO1jQDha0gwXtYEE7WNAOFrRD5EGPXRH5A9hRceeByh50xv7Pf/6j3Mh6YLHboR0saAcL2sGCdrCgHSxoBwvaIXKgsCsCdMWuXLmyjBo1Sj7++GN5//33jWyiSDtY0A4WtIMF7WBBO1jQDha0Q/hhH7siWLp0qVx99dVqFAr69WCgsYnQDha0gwXtYEE7WNAOFrSDBe0QfijsiiA9PV11yb722mvl5JNPFlOhHSxoBwvawYJ2sKAdLGgHC9oh/FDYlWCoMRJDTYd2sKAdLGgHC9rBgnawoB0saIfwQmFHCCGEEOIS2O6EEEIIIcQlUNgRQgghhLgECjtCCCGEEJdAYUcIIYQQ4hIo7AghhBBCXAKFHSGEEEKIS2CjGUIIKYZHHnlEPv300yLf88MPP0jjxo1Dtk2EEBII9rEjhJBiOHLkiGRkZKjnX331lbzxxhsyY8YM9TovL09yc3OlXr16avg5IYSEE3rsCCGkGKpWrap+9HMIuDp16oR7swghpADMsSOEkBNg+/bt0rp1a/UI8Pzrr7+WCy+8UDp37iz333+/bNu2TW644Qb1GjM09+zZY3/+u+++k4suukitu/LKK2XBggVh/DaEkGiHwo4QQsqZ8ePHyzPPPCOvv/66/O9//5NrrrlG/XzwwQeyb98++b//+z/1vtWrV8vDDz8sd999t3z++edy2WWXye233y5btmwJ91cghEQpDMUSQkg5c9NNNykPHGjbtq00b95cefDA+eefrwQdmDZtmgwaNEguvfRS9RpevYULF8r777+vCjYIIaS0UNgRQkg506RJE/t5xYoVpVGjRj6vs7Ky1PMNGzaosO2HH35or8/OzpYzzjgjxFtMCHELFHaEEFLO+FfHxsQEznpBNS1Cr5dffrnPcog/QggpC8yxI4SQMIEQLYoumjZtav/Ae/fLL7+Ee9MIIVEKhR0hhIQxFw998d5++23ZunWrTJ8+Xf00a9Ys3JtGCIlSKOwIISRMpKSkyLhx4+S9995TLU8++ugjeeGFF6R79+7h3jRCSJTCyROEEEIIIS6BHjtCCCGEEJdAYUcIIYQQ4hIo7AghhBBCXAKFHSGEEEKIS6CwI4QQQghxCRR2hBBCCCEugcKOEEIIIcQlUNgRQgghhLgECjtCCCGEEJdAYUcIIYQQ4hIo7AghhBBCXAKFHSGEEEKIuIP/B8h2DTcIIxV6AAAAAElFTkSuQmCC" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "execution_count": 8 + }, + { + "metadata": { + "ExecuteTime": { + "end_time": "2025-07-10T19:48:12.664790Z", + "start_time": "2025-07-10T19:48:12.603158Z" + } + }, + "cell_type": "code", + "source": [ + "# Plot the frequency distribution of requests grouped by hour.\n", + "curies_per_hour = df.set_index('time').resample('h').size()\n", + "sns.histplot(curies_per_hour, bins=10, stat='percent')\n", + "plt.title(\"Requests per Hour\")\n", + "plt.xlabel(\"Number of requests\")\n", + "plt.ylabel(\"Frequency\")\n", + "plt.xticks(rotation=45)\n", + "plt.tight_layout()" + ], + "id": "cd45fe49f9ffbc4d", + "outputs": [ + { + "data": { + "text/plain": [ + "
" + ], + "image/png": "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hhzsNgEAACCvKnZnn322TZo0yZ0+bM2aNfbjjz/aaaed5hYq1tkoAAAAECcVOznllFOse/fukd0aAAAA5G2w0/p1L730ki1ZssSdKzYUCmW4XkufAAAAIA6CXbdu3Vyoa9mypSUlJUV+qwAAAJB3Z54YPXq0VatWLSe/DgAAgFiZPFG6dGk77LAc/SoAAABirSu2d+/e7swT5cqVswIFCmS4vkyZMpHaPgAAAORmsLv99tvd944dO7rv+fLlc981iUL///bbb3NytwAAAMjrYDdjxoyDeUwAAADkghwNlCtbtqz7Sk5OtmXLllmxYsVsz549rgtWlwMAACBOKnbbtm2zO++807744gv387Rp06xfv362bt06GzVqFOEOAAAgXip2jz76qCUmJtpnn31mhQoVcpf179/fjjnmGHcdAAAA4iTYzZ492+6++2474ogjwpcVL17cevToYV9++WUktw8AAABZlOPF6Hbu3Jnpsl9//dXy58/x6WcBAACQ18GuRYsWbkzdypUr3fImmkShbtmHHnrImjdvfjDbAwAAgLxeoHjw4MHWunVr27Vrl7Vq1coSEhKsXbt27joAAADESbArWLCgde/e3bp27epmwqalpdnxxx9vRYsWjfwWAgAAIPeC3b4mSGg9u0DdunVzcrcAAADI62DXvn37/VbySpYsyZkpAAAA4iXYLV++PMPP6or98ccfrW/fvtayZctIbRsAAADyYrmT9DRxonz58m7c3TPPPBOJuwQAAEA0gl1gy5Yttn379kjeJQAAAHKzK1ZnmNjbH3/8YfPmzbNmzZrl5C4BAABwkCJ2moijjjrK7r//fremHQAAAOIk2A0YMCDyWwIAAIC8D3ZDhw7N8m27dOmSk4cAAABAXgS7tWvX2tSpU133a5UqVdz6dVoCRUue1KhRw/Ln/+tudR5ZAAAAxPgpxbReXZ8+faxAgQLhywcOHGjbtm2z/v37R3IbAQAAkFvLnUyePNluuummDKFOLrvsMncdAAAA4iTYlS5d2mbPnp3p8mnTptnxxx8fie0CAABAXnTF3nPPPda1a1ebNWuWnXbaae6yJUuW2LJly2zEiBE5uUsAAABEo2J3wQUX2MSJE+3UU0+11atX208//WT16tVzFTt9BwAAQBwtUFyxYkV3BgpNlkhKSrLDDjuMWbAAAADxVrELhUI2fPhwO+OM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mzdvto4dO9pFF11kxx9/fLQ3zYuDEp29RTt3narv7rvvtgYNGmTpvIPI7JlnnrHZs2fbrl27rEyZMnbLLbdYtWrVor1ZcWnUqFH24osv2lVXXWU7d+60t956y6pUqWL33XefCyUEkuwZOnSovf7663bxxRfbtm3b7LPPPrMzzzzTHn74YRf0cAi8PhXscGDPPfdc6JZbbgn/nJqaGvrwww9D1apVC/Xv3z+q2+aDefPmhRo0aBBasGBB6McffwxNmzYt1KRJk1D37t3dZci5Dz74IFS/fv3QnDlzQrNmzQo9++yzocqVK4eGDRsW2rhxY7Q3L+6MHz/etef06dNDY8eODfXp08e154QJE0K7du2K9ubFlZSUlNBtt93m2jSwZcuWUKtWrULXXnute+/v2bMnqtsYL9RO27ZtC11zzTWhyZMnhy9btmxZqGHDhqEOHTrwfj9EXp/0GxxAUNBUCfaPP/4IX56QkGAXXHCBDRs2zMaOHeu+I+dUoStVqpTVrl3bVeguvPBCe/zxx23t2rWufXW+YOTMunXrrEaNGq5Cd84559jtt99ujz76qGvX//73v65LEVm3evVqa9y4sZ1//vl2xRVXWK9evVwF9MEHH3RtiqwrXLiw/fnnn7Z8+fLw/rZ48eKu4qRq6JAhQ+z777+P9mbGBVWOdOpNDQ1Yv359+HJ1Hb7zzjuuHXv27Gmpqanucjrr/H19EuwOICiznnvuufbll1+6sQuisTQaU9OwYUN77LHH7LXXXrOpU6dGeWvjT7BzKVeunHsDLV68OHxdrVq1rHv37va///3PJkyYQADJYdsqMP/2229ubGhAY27UtmrXSZMmucv0esb+Be2j8Ylqz+ADUm644QZ76KGHrH///m44QfrbY/8UQqpXr24//vijm5im/e3u3btdl+HIkSPdAZ+GaCBr1HbHHnusff311+5ntadepwoj48ePd+PudP714Dr4+fok2GXRySef7I52NLbm/fffzxDudPTesmXLcCjhSCjrgp1L6dKlrUSJEi4c60MzoHFL9957r3344YcE5xy27YknnujGhX7yyScZAofG4Nxzzz1u7OiCBQsY+H8AQfuccsop9sUXX7gv0ZG7aAxO165drUePHvbdd9/RnvuxcOFC93pTFUQ9H1dffbWrguoDUvtOjfsMPjxfeuklN2hdY5yxbwprar8f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wp26UisHaLhFcCpBXxDsAA+6aoLvODi0Z2ToPNBalkdnQtACujg4tCeyg2AHAIg4n8YsxQLaE1lFsAMAAPAEc84BAAA8QbADAADwBMEOAADAEwQ7AAAATxDsAAAAPEGwAwAA8ATBDkBEVaxY0e65555Ml0+cONGaNGmSK4+p+9X9R8uMGTPs7LPPturVq9vs2bMtXumMG2+//Xa0NwPAQSDYAYi4999/3+bPn2+HimeffdYaNmxokydPtrp161q8euWVV+ytt96K9mYAOAgEOwARV7ZsWXfC8tTUVDsU/P7771a7dm33d8fzycRZrx6IfwQ7ABHXtWtX+/nnn+3FF1/c5/X/+9//XJetvgeGDBli7du3d/9Xt6r+P3z4cFcBa9CggesinDp1qjVu3Njq1Kljjz/+eIb7XLlypV166aVWtWpVu/HGG239+vXh6zZs2GCdO3d2XaXqth06dKilpaWFH+uKK66w2267zYWzd999N9P27ty50z3eOeecYzVq1HD3pfsU3d9PP/1kDzzwwD67mj///HN3+cMPP+zuf9SoUe7ycePGuctr1qzp/tYVK1Zk6BJVd7aua9q0qfvb1V5ZaTtZsGCBtW7d2qpVq2YtW7a0adOmha9Tu9xwww3uvs8880zr27ev7dq1y7WD2kUnSA8eS1XXVq1auTY977zz3DYDiG0EOwARV7p0abvjjjtsxIgRtm7duhzdx1dffeV+d8KECXbxxRdb79697bXXXnNhr3v37vbCCy/YsmXLwrcfO3as3XTTTa4rUefVvP/++8NVqC5duliJEiVs0qRJNmDAAHvvvffctqV/rJNPPtnGjx/vulT3plA2ffp0GzhwoAs3uv9bb73V9uzZ47bvmGOOccFO/98XBT9VLxWeWrRoYTNnznQh6qGHHnLbpMB37bXX2rZt29zte/bsaatXr7bXX3/devToYYMHD85yu23atMk6derkgp3+TrWJ2kthTxTkihQp4sLisGHDXOjT3928efNw4JszZ44LvgrozZo1sylTptidd95pffr0sVWrVmXjWQSQ1wh2AHKFKkjlypWzfv365ej3FcgefPBBdx+XX365paSk2O23326nnXaatW3b1gW1NWvWhG9/5ZVXutB06qmnusdU5Unh6LPPPnNVKgWak046yc444wwX+hQSA/ny5bNbbrnFKlSoYMWLF8+wHQpb77zzjvXq1cvq16/vHv+JJ56w77//3ubOnetun5CQYIcffnim301PAUt/S5kyZVwoVfhS9fHEE090AUrduKoW6vEUIvW3V6lSxc4991zr2LFjltttzJgxdtZZZ9k111zjHk8VN7Xfq6++Gg6Z2lZtR61atVwFUZVIdSEr8BUoUMBKlizpupe3bt1qRx99tB133HF2ySWX2Msvv+yuAxC78kd7AwD4SWFHVbarrrrKPvroo2z/voKbgoYUKlTIfVfACCiIpB/Dp27HgG531FFHueCnLmEFFFXFAqq0/fnnn/bbb7+FH2t/Y+N++OEHd3t14wZ03+XLl3fBsVGjRln6e9Jvu35PXbvpK3Hq7tVjrV271lXLFCADqqJllf7mjz/+OMPvqKtV2xsETFUXFR41k1eVukqVKmW6H/2NCssKmM8995wLoW3atLEjjzwyy9sCIO8R7ADkGlWEFAZUQVOgSF8h25u6N9PLnz/z7mlfv5c+SKanMKbqk+5XlTqFk72pcpU+OO7L/q5T+NJjZFX6+9HvKlxpjFt6SUlJtmXLlky/W7BgwSy3nf6vcXUaB7iv9lTlTY+rsD1r1izXZX7zzTfbXXfdlel+Fcyvvvpqd1t9vfHGG64dVeEDEJvoigWQq+69915LTk7OMJFCgUv++OOP8GXpJwPkxHfffRf+vypf27dvd1UqfakrVt2k6prUlx5LS5T8W1AMHH/88S4ULV68OHyZKn2qrAVVsOzS723cuDG8PfrSmD89hh5PQW7JkiXh26cfS3igttN9a9vS37fW2dN4O3nqqadceFQ1buTIka4b+MMPP3TXpW8PjdXTmDr9vrqpNXZRXdEaHwggdhHsAOSqYsWKuXCnsV0Bjds69thjXdjTBAlNKlD16GBo/JcCyvLly92EA3UdKpRoMoTGr913331u5qkmEWjSQmJiYqYq374ULVrU2rVr58boaYar7l/3pQkTmq2bEx06dHBj3jSB4ccff3TdspqgoDF+2i5VyfR4CnpffvmlPf3001luO3V9L1261AU4BVwFOnX5akxd0FWrpWj0d2gm8SeffBLuitVj//LLLy4oqstV3bX9+/d326jt0O/sq9sWQOwg2AHIdZrskH7M12GHHea6Z7/55hs3xkvLmOzddZiTsKQAdNlll7kxcwokovCmmbTqNtV1moChrkSNHcsqTbbQhAR1W6rSpW5VLeabvos0O/Q3q+tTVUNN+NCyItpGTaSQu+++2y3por9Jj63u7Ky2nUKsqn86A4buW22iWbHqgg26VxUONblF7VGqVCk3C1cuuOAC106ahazJE+p2VZjT76qyp+dRIRdA7MoXYkVKAIhpqhRqOZT0a90BwL5QsQMAAPAEwQ4AAMATdMUCAAB4goodAACAJwh2AAAAniDYAQAAeIJgBwAA4AmCHQAAgCcIdgAAAJ4g2AEAAHiCYAcAAOAJgh0AAID54f8B7kn4+oVr+EAAAAAASUVORK5CYII=" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "execution_count": 60 + }, + { + "metadata": { + "ExecuteTime": { + "end_time": "2025-07-10T19:45:27.354339Z", + "start_time": "2025-07-10T19:45:27.284086Z" + } + }, + "cell_type": "code", + "source": [ + "# Plot the frequency distribution of CURIE counts grouped by hour.\n", + "curies_per_hour = df.set_index('time').resample('h')['curie_count'].sum()\n", + "sns.histplot(curies_per_hour, bins=10, stat='percent')\n", + "plt.title(\"CURIEs per Hour\")\n", + "plt.xlabel(\"Number of CURIEs\")\n", + "plt.ylabel(\"Frequency\")\n", + "plt.xticks(rotation=45)\n", + "plt.tight_layout()\n", + "plt.title(\"CURIEs per hour\")\n", + "plt.xlabel(\"Number of CURIEs\")\n", + "plt.ylabel(\"Percentage\")\n", + "plt.xticks(rotation=45)\n", + "plt.tight_layout()" + ], + "id": "a6ad5a37dd6128f5", + "outputs": [ + { + "data": { + "text/plain": [ + "
" + ], + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAHWCAYAAAD6oMSKAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAARr5JREFUeJzt3QmcjWX/x/HfZJ0hydYTlZSSPWvRSpvkiSxpX1SWRKUesrVLad+RhBKPvaeStClJm12WbEnZlRChcf6v7+V/TzNmMMs5c85c5/N+mdfMnDnOueea+9zne/+u5U4IhUIhAwAAQJ53RLQ3AAAAAOFBsAMAAPAEwQ4AAMATBDsAAABPEOwAAAA8QbADAADwBMEOAADAEwQ7AAAATxDsAAAAPJE/2hsAwC8LFiywESNG2HfffWe//fablSlTxho0aGDt27e3448/PuV+119/vfv85ptvZvg4jRs3tvr169vjjz+ecv9vv/02zX0SEhIsKSnJTjzxRLvxxhutefPmKT+777773P0//fRT9/0333xjN9xwwyG3/bXXXrNzzz3X8orDtSGA+EOwAxA2I0eOtMcee8zOOOMMu+eee1yoW716tb3++us2depUGz58uJ122mnZfvwqVarYAw88kPJ9cnKyrV+/3oYNG2bdu3e34sWL23nnnXfIx7j//vutatWqGf7s5JNPzva2AUAsINgBCItZs2ZZv3797Nprr7XevXun3K6Qd+GFF1qLFi2sV69eNmHChGw/R9GiRe30009Pd7uqbKoK6rEPF+wqVqyY4WMAgA8YYwcgLFSVO/LII61bt27pflaiRAnXNXrBBRfYzp07w/7chQoVsoIFC7qu2XDYt2+fPfvss647uFq1au7z008/bXv37j3o/3nxxRfd/T777DNr0qSJ1axZ06688krXBZza1q1bXdWwYcOGVr16dXefmTNnprlPpUqV7KWXXrKWLVtajRo13NcHEwqFXBfy+eef7+7btm1bmz9/frru8VtuucWF7Nq1a1vHjh1t2bJlKT9XINZz/vLLL2n+n34f/d2ys10AooOKHYAcU7j48ssvXRBITEzM8D5NmzYNy/P8/fffabpif/31V3v55Zftzz//TDPG7lChLfVjBBQK8+XL575WUBo1apT16NHDjQucN2+eC3oFChSwrl27HvSxNaZQ/+eOO+6wE044wYYO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AABAHgl2Gk/32Wef2V9//WVHH320jR8/3j7++GMrXry4NW3aNPxbCQAAgMh0xWpyxL59+6xUqVLue423u/baa61BgwbWqlWr7DwkAAAAcqtip9muWs4kmBU7cOBAS0pKSnOf1atX26+//prTbQIAAEAkg12FChXcWDrNiNWH1q8rUKBAys8TEhJc0OvXr192tgMAAAC5Fex0CbERI0a4r3v27Gm9e/e2okWL5vT5AQAAEM3JE/3793efN23aZH///ber4KVWtmzZ8GwdAAAAIhvstG5d3759bd26de57BTt1xQafFy9enJ2HBQAAQG4Hu4cffthq1Khhr776Kt2xAAAAeTnYrV+/3k2k0Lg7AAAA5OF17OrWrWuzZs0K/9YAAAAgdyt29erVs4ceesimTZtm5cuXT7Psidxxxx3Z3yIAAADk7uSJatWq2ZYtW9xHapo8AQAAgDwS7N58883wbwkAAAByf4ydrFmzxp544gm7/fbbbePGjTZu3DjG3QEAAOS1YKdrxV5++eXuurDTp0+33bt328qVK+3GG2+0qVOnhn8rAQAAEJlg9+STT9o999xjL7zwguXPv783t3v37nbvvfe62wAAAJBHgt2PP/5o5513XrrbL7jgAvv555/DsV0AAADIjWBXrlw5W7BgQbrbtfyJfgYAAIA8Miv2rrvusvvuu8+Fu+TkZJs0aZL98ssv9v7779uAAQPCv5UAAACITMXuoosuspEjR7o17E455RT75JNPbM+ePe62pk2bZuchAQAAEI2KnZQuXdo6depkFSpUcN9PnjzZypYtm9PtAQAAQG5W7GbOnOmqdu+++27KbSNGjHDVOtayAwAAyEPBTgsTd+zY0bp27Zpy2+jRo+3WW2+1xx57LJzbBwAAgEgGu59++smaNGmS7vZLL73Uli9fnp2HBAAAQDSC3UknnWQffPBButs//fRTO+GEE3K6TQAAAMjN5U50jdgZM2ZY1apV3W1Lly6177//3l588cXsPCQAAACiUbE799xz3dp1VapUcdeI1dUmTjvtNLeOXUZXpAAAAECMVuxUrdO1YrVIMQAAAPJwxW727NmWP3+2l8ADAABABGQrnV1zzTV2991321VXXeUWJS5UqFCan9erVy9c2wcAAIBIBrtXXnnFfb7//vvT/SwhIcEWL16cnYcFAABAbge7JUuW5OQ5AQAA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9zPeUA9Px8433njDrr/+elu4cKHt3r3bChUqZHfddZeddtpp7IuZ9MILL9jIkSPt0ksvtSVLlrgTDR0rdYUmnQyzL8bn/kiwy6RXX33VFixYYK+88or7Xi+gadOm2b333mtXXXWV9ezZM9qb6BVdQk5XHdGBS93eumbwu+++6w5Sb731FuEuG8aPH29PP/209evXz7XdF198YStWrLBKlSrZ/fff7+6T1w5g0aA3UgW7++67z7XXO++844Zn1K9f39q3b+/uwxvqwf3999/WqVMnO//88+3aa691t2lfVDsuXbrUndBVqVKFffEwdu7caR06dHDvP5dddpm7bcyYMe5kWPufToJPOukk9sU43B/zxlZGUZB7deD+888/U25XoLjooovs5ZdftlGjRrnPCB+dMZUvX96qVavmXlRt2rRx4Vndsqow6UWmv4E+I3PUVXPWWWdZo0aNXLWuW7duri1nz56dcmKiAxfneoemav0VV1zhrmWtoRg68NeoUcO9oT7//PPuPnojpR3T0+tVb6RbtmxJc/u5555rt956q3ut9+7d25YtW8a+eAhqFw2nUMU4dWi78sor3Uf+/PlddX7NmjWEujjcHwl2hxG8KJTmv/vuO3e2Lvoja6c4++yz7fHHH7cRI0bYlClTory1eV/wwlGA+/XXX61gwYIpwVpvnnoTVaDTi073zStnULHQplu3bnUHqEDx4sVdF46qTDozfeKJJ9ztvBEcmsbYqrsmoLGK6sJRYNYxQmN1hHZMT69XVeAbNmzojpl6jQcqV67suhBVZVLPiE5EaMOMqV30+tU477Fjx9rmzZtTfqb9UCcd6lXSz1TZQ3ztj7wrZlLFihVdctcZ+XvvvZcm3OmF9O9//9t1F0peSfWxKHjhqJJUtGhRu/POO9P9HdQFpuA3ePDgKG1l3mxTDazetm1bynACSUxMdCctbdu2dWFFXeA4NLWjQvKECRNSbjv66KPdgGuNb/rqq69s0aJFUd3GWKN96/vvv3eToXR8DMaAvfTSS27MckAV+iZNmriqqCYEIC21n8bS7dixw31/+eWXu2EV6oLVazugirzGfGq4UOqeJsTH/kiwywKFjeuuu86efPJJN94rCHd6czzyyCNt3rx57kWWV1J9LFEltE+fPq5qFLxhaoyIXkz9+/dPc1+9eWpW8vz586O0tXnD+++/74YI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" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "execution_count": 56 + }, + { + "metadata": { + "ExecuteTime": { + "end_time": "2025-07-10T19:15:37.888556Z", + "start_time": "2025-07-10T19:15:37.807791Z" + } + }, + "cell_type": "code", + "source": [ + "# Plot CURIEs over time (by hour)\n", + "curies_per_hour = df.set_index('time').resample('h')['curie_count'].sum()\n", + "sns.lineplot(x=curies_per_hour.index, y=curies_per_hour.values)\n", + "plt.title(\"CURIEs per Hour\")\n", + "plt.xlabel(\"Time\")\n", + "plt.ylabel(\"Number of CURIEs\")\n", + "plt.xticks(rotation=45)\n", + "plt.tight_layout()\n", + "plt.show()" + ], + "id": "b5e3a1ee3c803152", + "outputs": [ + { + "data": { + "text/plain": [ + "
" + ], + "image/png": "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" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "execution_count": 16 + }, + { + "metadata": { + "ExecuteTime": { + "end_time": "2025-07-10T20:27:07.780527Z", + "start_time": "2025-07-10T20:27:07.493995Z" + } + }, + "cell_type": "code", + "source": [ + "# Plot CURIEs against hour of day\n", + "df['hour_of_day'] = df['time'].dt.hour\n", + "sns.barplot(data=df, x='hour_of_day', y='curie_count')\n", + "plt.title(\"CURIEs per Hour\")\n", + "plt.xlabel(\"Hour (UTC)\")\n", + "plt.ylabel(\"Number of CURIEs\")\n", + "plt.xticks(rotation=45)\n", + "plt.tight_layout()\n", + "plt.show()" + ], + "id": "e8ed60c82d49d7e1", + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:matplotlib.category:Using categorical units to plot a list of strings that are all parsable as floats or dates. If these strings should be plotted as numbers, cast to the appropriate data type before plotting.\n", + "INFO:matplotlib.category:Using categorical units to plot a list of strings that are all parsable as floats or dates. If these strings should be plotted as numbers, cast to the appropriate data type before plotting.\n" + ] + }, + { + "data": { + "text/plain": [ + "
" + ], + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnUAAAHWCAYAAAARl3+JAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAAT8FJREFUeJzt3Qm81PP+x/HPaS+paFNJEtq1KkkiUrohJbuuW2QpyyURriUlsqdEZLmKEimS5eLyT7KVFnLShrQnlbR35v94f+/9zZ2zNnPOb87M/M7r+XhM029+c77znd/8ls/vu6aFQqGQAQAAIKUVS3QGAAAAUHAEdQAAAAFAUAcAABAABHUAAAABQFAHAAAQAAR1AAAAAUBQBwAAEAAEdQAAAAFAUAcAABAAJRKdAQDBtWjRIvvnP/9pX3/9tW3evNmqVatm7dq1s/79+1vt2rXD77vsssvc88svv5xjOp06dbI2bdrYAw88EH7/V199lek9aWlpVq5cOTvyyCPtr3/9q51zzjnhdbfddpt7/8cff+yWv/zyS+vTp0+eeX/22Wft5JNPtlTx5JNP2ujRo23JkiU5rj/QNgaQ+gjqAMTFxIkT7f7777e2bdvazTff7AK6n3/+2caPH28ffPCBvfTSS9agQYN8p9+oUSO7++67w8v79++3devW2YsvvmiDBw+2SpUqWceOHfNM46677rLGjRvnuK5evXr5zhsAJAJBHQDfzZ0714YPH26XXHKJ3XHHHeHXFeCdfvrp1qNHD7v99ttt6tSp+f6M8uXLW/PmzbO9rtI1lQYq7QMFdUcffXSOaQBAKqJNHQDfqTTu4IMPtptuuinbukMPPdRVh5522mm2Y8cO3z+7dOnSVqpUKVcd64eMjAx77LHHXBVwkyZN3PMjjzxie/fuzbMqVO/797//bV27drVmzZrZ+eef76p9I23ZssWVFp544onWtGlT9545c+Zkek/9+vVdtWrPnj3tuOOOc//3y8yZM126LVq0sPbt27u8bN26Nbxev5O+R6Rff/3V5ckLyPWdtDxp0iQ79dRTrWXLljZ79mzf8gggepTUAfBVKBSyzz77zAUDZcuWzfE93bp18+Vz9u3bl6n6dfXq1TZmzBj7888/M7Wpyytgi0zDo4CwePHi4bZ1r776qt16662uHeCCBQtckFeyZEm7/vrrc01bbQj1NwMHDrQjjjjCnn/+eevXr59NmTLFGjZsaLt373Zt/zZt2mR///vfXfX0G2+8YVdccYU999xzrrTR8/TTT7sq7Lp161qtWrXy/E45fR9ve0UGuk899ZSNGjXKLr74Yvf5q1atsieeeMLmz59vr732mpUpU8ZioWDzzjvvtF27drkgEUDhI6gD4Kvff//dBSyHH354XD9HnS+ytodT0HLssce64ESlRgdy+eWX5/j6McccYzNmzHD/VwcLldD16tXLLavDhoJVlUTmZefOnXbPPfe4qmY54YQTXNXzuHHjXFA4ffp0S09PdwGUSvK8qmN1aHj44YddgOdp3bq1/e1vf7No5NZG0Mu7qDRu7NixrmRQpXMebTtVmeuz9RwLBYcqlQSQOAR1AHzllXCp5MxPWatTFbzce++97v8bNmywxx9/3FWJ6vmoo46KKk39fU5BUGQpldoBqrpVQYtKH0855RS79NJLD5h2iRIlrHv37pnSVND2f//3f25Z1axVq1Z1nx9ZuqZgdOTIkS7wqlixontNJXvRev3113N8PbJTiUrj9uzZkyl/XvCokkAFsrEGdbHkEUB8ENQB8JUCkYMOOsjWrFmT63vUlk4BmBe0aCgStS/LjQKQrFW5+gy1Q/OotOvss8+2vn37uvZeart3IKrOjEwjJ6oO1Wep9EolaA899JAryVNVo0rfclOlShUX2EWqXLly+HvqeePGjbmWrGld5PaJVm7fR9/B47WbUx5zyvcff/xhsYoljwDig44SAHx30kknuQb0qobNiaocFRB9//334UBCpW25BXRqn5ZTABJJ61WVuHbtWtfz1i/FihVzpVYKFNUBYMSIES5P1113nXvOTU5BqtrPKbATVd9qTD2VrOX0iGf1tRcsKj85BZOHHHJIuHQ0a4lrPDq3APAHQR0A36m0TEGNqkJzChrUaUDDiXilVGrrpZI9VQtm9eGHH7rAIq9SMY/adHXo0MG1h8s6OHF+XXjhhTZs2DD3fwVk6i2qIG/btm22ffv2XP9OHQZmzZqVaVlVr14HCH1nBaBKU6Vr3kOBozpKeNXY8aBSTfUQ9toNer755hv3O6gHq1e657WRjByuBkByovoVgO809tsNN9zggrrly5e7zgIq/Vm6dKkb7kRBQmTAp96wGoz4qquucg8Fe+qZOm/ePBfgqO2XF2gciMa/UzWsArE333wz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d5neP2PGDDv99NPd+gEDBtjmzZsTkGsAAIDkkBRB3TvvvGOffvppeHnHjh0uyGvdurVNnTrVWrRoYVdddZV7XRYuXGh33HGHDRw40CZPnmzbtm2zIUOGJPAbAAAAFPGgbsuWLTZy5Ehr2rRp+LWZM2da6dKlbfDgwVavXj0XwB100EH23nvvufUTJkywM88803r06GENGjRwf6+gcNWqVQn8JgAAAEU4qHvwwQftnHPOsaOPPjr82oIFC6xVq1aWlpbmlvXcsmVLmz9/fni9SvE8NWrUsJo1a7rXAQAAiqISifzwOXPm2DfffGNvv/223XPPPeHXN27cmCnIk8qVK9vSpUvd/zds2GDVqlXLtn7dunUx52H//v1WvHjxfH+HnNIDAAAo7NgiYUHd7t277e6777a77rrLypQpk2ndzp07rVSpUple0/KePXvc/3ft2pXn+lgoUGzcuLH5ZcmSJS7/AAAAhSlhQd3o0aOtSZMm1qFDh2zr1J4ua4CmZS/4y2192bJlY87HMcccY36qX7++r+kBAICibf/+/bZo0aLkDerU43XTpk2uZ6t4Qdr7779v3bt3d+siadmrcq1evXqO66tWrRpzPvyseo1HegAAANHIV1CnIURUWqZHenq6ffbZZ64Ks127dlGn8fLLL9u+ffvCyw8//LB7HjRokH399df27LPPWigUcp0k9Dxv3jy7+uqr3Xs0Nt3cuXOtZ8+ebnnt2rXuodcBAACKoph7v3744Yd28sknu6Dq559/tksuucTefPNNu/baa91QI9GqVauW1alTJ/zQkCV66P9du3Z1gePw4cNt2bJl7lnt1DSMiVx00UU2ffp0mzJligsqNfTJKaecYrVr14716wAAABTNoO7xxx+366+/3k488UQXVGk4EVWlPvroo/b888/7kqny5cvbM888Ey6N01Al48aNs3Llyrn1qrIdOnSojRkzxgV4FStWtBEjRvjy2QAAAEWi+vWXX34Jl5h99NFHrlTN63BQkKm6HnjggUzLxx13nCsBzI2CPa/6FQAAoKiLOajTIL9ffvml66ywcuVK69Spk3tdY80deeSR8cgjAAAA/A7qVPWqNmzqXqt2bJreS7NCTJo0yQ1TAgAAgBQI6rp162YnnHCCrV+/3ho2bOhe6927t/Xr18+qVKkSjzwCAADAj44Sa9asccOKeA499NBwQCdHHXWUVahQwVXBAgAAIEmDutNOOy1bJ4j+/fu7OVg9GoJE1bIAAABI0qAuspTOowGCNX8rAAAAUnCcOgAAACQfgjoAAIAAIKgDAAAoSkOafPvtt246rsh2dgsXLrR169a55a1bt8YnhwAAAPAvqBs4cGC2126++eZMy2lpadEmBwAAgMIO6tLT0/38TAAAAPiMNnUAAABFpaRuyJAhUSc4YsSIguQHAAAA+UBJHQAAQFEpqaP0DQAAIEAlddu3b7edO3fmuG7jxo3M/QoAAJDMQZ3Gorv88svt+OOPt5YtW9pVV10VHpdu//79Nn78eOvSpYt9+umn8c4vAAAA8hvUDR061FavXm0jR460xx57zJXKqUp2/fr11rt3b3vkkUese/fu9t5770WTHAAAABLRpm7u3Ln2+OOPW7t27dxyo0aN7Nxzz3Xj12lmicmTJ1vTpk39zhsAAAD8DOq2bdtm9erVCy8fccQRtnfvXqtVq5YL9kqWLBnt5wEAACBR1a8qjStevHim17R83XXXEdABAACk+jh1Bx10kH85AQAAQHyrX+Xdd9+18uXLh5czMjLsgw8+sMqVK2d6X48ePfKfGwAAAMQvqKtZs6Y9//zzmV5TMDdx4sRMr6WlpRHUAQAAJGtQ9/HHH8c/JwAAAMg35n4FAAAoKiV1nTp1clWr2f64RAmrUKGCNWzY0C655BKrX79+PPIIAAAAP4I6DV2SE3WW+OOPP2zBggV24YUX2nPPPWetWrWKJkkAAAAUdlCn2SMOZPTo0W4g4pdfftmPfAEAACARberOOOMM++GHH/xKDgAAAIkI6sqUKeNmngAAAEAKB3UanLhBgwZ+JQcAAAC/29RNmzYtz44S8+fPtw8//NDGjRsXy2cDAACgMIO6UaNG5fh6yZIl7eCDD3ZDmbz66qvWpEkTv/IFAACAGDCjBAAAQFFrU7d9+3ZX5RppyZIlrgoWAAAAKRDUvfDCC3byySe79nORHnzwQTvppJMYnw4AACDZq1+nT59uTzzxhA0aNMgaN26cad2YMWPs9ddft0ceecQqV65s3bp1i1deAQAAUJCg7qWXXrI77rjDevfunW1d2bJl7bLLLrO9e/fa+PHjCeoAAACStfp15cqVdsIJJ+T5nk6dOtmKFSv8yhcAAAD8DuoqVKhgmzdvzvM927Zts4MOOiiWzwYAAEBhBnXqIKGq1bxofevWrf3KFwAAAPwO6gYMGGBz5861K664wmbPnm1bt251Q5v8/vvv9tlnn7nXv/jiC7vuuuti+WwAAAAUZkeJww47zCZOnGj33nuvC+Cyat++vb3yyitWr149v/IFAAAAv4M6OfLII91YdevXr7f09HQ34HClSpWsUaNGduihh8bymQAAAEhUUOepXr26exQVoWLFLGRplmYh96xlAACAZEOEciDFStieqg1cQKdnLQMAEBSaRKBz587uGamNoC4KO2u3sa0t+7hnAACCYteuXTZt2jTX+VHPWkbAgzr1eN2zZ0/8cwMAAArNvn37XEAnetYyAh7UDRw4MDz48GmnneaGMvHDzz//bP369bMWLVrYKaecYs8991x43apVq+zyyy+35s2bu6nHNHRKpM8//9y6d+9uzZo1sz59+rj3AwAAFFUlop1RQnXtLVu2tNWrV9s777xj5cuXz/G9PXr0iOqDdUfQv39/a9q0qb355psuwLvppptcJwwFaxob79hjj7U33njDPvzwQxdYzpw502rWrGlr1qxx6zUuXocOHVzerr32WnvrrbcsLS0tti0AAABQVIK6u+66y5588klXOqagSSVqxXLoBap10QZ1mzZtsoYNG9o999zjAkQNmdKuXTs3yHGVKlVcydukSZOsXLlybvy7OXPmuABPgdyUKVOsSZMm1rdvX5fWiBEj3Fh5X331lbVt2zbWbQAAAFA0gjpVueohnTp1stdff73AY9NVq1bNHn/8cff/UChk8+bNs6+//truvvtuW7BggRv/TgGdp1WrVjZ//nz3f62PnJKsbNmy1rhxY7eeoA4AABRFMY/P8fHHH4c7TyxfvtxVo9atW9dOPPFEK1myZL4yoUBRVaqnnnqqdenSxe6//34X9EWqXLmyrVu3zv1/48aNea4HAAAoamIO6jSjxDXXXGMrV650wdz+/ftdezi1ddOME/kZmHjUqFGuOlZVsapK3blzp5UqVSrTe7Ts9cA90PpYKP/FixeP+e/ySg8AgFSQ9ZqlZa5jySfa3yTmoE6Bl0rFFMBVrFjRvabesLfccosNHz7cBWixUmcJ2b17tw0aNMh69erlArdICtjKlCnj/l+6dOlsAZyW1aEjVkuXLnVVt35ZsmRJtrwDAJCMsl6vFi1a5Jo0ITXFHNR98cUXNnny5HBAJ4cccogLxi655JKo01HJnNrAnX766eHXjj76aNu7d69VrVrVVqxYke39XpWrSgO1nFPHi1gdc8wx5qf69ev7mh4AAPGyffv2bIUsuY1ugcSW1Cng9j2oUzC3devWbK9v27YtpjZ1v/76qxum5NNPPw1X2X733XeuA4Y6RTz//PNuZGuvdE69YvW6aGw6LUfeaSxevNilFys/q17jkR4AAPGS9ZqlZa5jRWiasL/85S925513uiFGFOHroU4T//jHP9wgwdHS3YCqPW+//XZbtmyZC+4eeughu/rqq61NmzZWo0YNGzJkiKseHTdunC1cuNDOO+8897eqnlVvWb2u9Xrf4YcfTs9XAABQZMVcUnfDDTfYb7/95maC0FAkoqi+d+/eNnjw4KjT0d889dRTdt9999kFF1zg6vAvu+wyNzuExrvTujvuuMN69uxpderUcQMMqzOGKIDTuHnqJavXNSOFnhl4GAAAFFUxB3XqZfrAAw+4EraffvrJLR9xxBGZxpSLlqpdR48eneM6BXITJkzI9W87duzoHgAAAMhHUOdRT9PjjjvO39wAAACgcNrUAQAAIPkQ1AEAABTFoG7GjBm2ZcuW+OQGAAAAhRPU3XvvvbZ58+b8fRoAAACSI6jTWHAqrcvPPKsAAABIkt6vGqNOY8g9/fTTbvYHzcMa6aOPPvIzfwACQONITps2zXr06GEDBgxIdHYAIJBiDurOP/989wCAaGi6PwV0GRkZ7lkDl3vT/wEAEhjUnXvuueH/aw7Ygw8+2M3kwGwOAHKyb98+F9CJnrUMAEiCNnWaGmzs2LGubV27du1s9erVdsstt9hdd91FOzsAAIBUCerUNuatt95yU4VpijCv9G727Nk2cuTIeOQRQMTx17lzZ/cMAECBgro333zThg4daqeeemq4yrV9+/b24IMP2rvvvhtrcgDy2TZNywAA5DuoU+/XatWq5TgX7I4dO2JNDkCUaJsGAPA1qDvhhBNs/PjxmV7bvn27Pfroo66dHQAAAFIgqLvnnnts8eLFrsp19+7ddu2111rHjh1dh4k777wzPrkEAACAv0OaHHbYYfb666/bnDlzbMWKFa4KqG7dunbSSSdZsWIxx4gAAABIRFAXGdz9+eefVrJkSRfUEdABAACkUFC3du1aGzx4sH399ddWsWJFN27dH3/8YZ06dbLhw4dbpUqV4pNTAAAQs/0ZGVbcp4IXP9NCEgR1ajdXvHhxN8drrVq13Gs//fST3X777W4A4lGjRsUhmwAAID8UhN35yixbuWFrtnUZezMPjXTl2PesWMmcp/GrW62iDbu4Q9zyiQQEdSqhmzp1ajigkyOPPNIFdBdeeKEPWQIAAH5SQJe+enO219P27bGKEctL12yxUIn/TCyA1BNzGWq9evXsxx9/zPb6qlWrMgV6AAAASLKSOo1eHzlO3R133OGGNWnatKmril2yZIm9+OKL9re//S2eeQUAAEBBgrqs7eQOOeQQmzlzpnt4Dj74YHvjjTfcuHUAAABIwqDu448/jn9OAAAAULjj1KWnp7uBh/fs2ZNtXY8ePfKfGwAAABROUPfwww/bc889Z5UrV7bSpUtnWpeWlkZQBwAAkApB3eTJk90gw7169YpPjgAAABD/IU3UIUK9XgEAAJDCJXW33nqrDR061K6//nqrWbNmtjlf9RoAAACSPKjbtWuXff/999anTx/Xhs6jOWC1/MMPP/idRwAAAPgd1D300EN2/vnnu0eZMjnPDwcAAIAkD+o0jMmll15qtWvXjk+OACAGY8aMcbPeqOf9gAEDEp0dAEidjhJ9+/a1Z555xnbv3h2fHAFADM1BFNBlZGS4Zy0DQFEVc0nd7Nmzbf78+e4EWqVKFTf3a6SPPvrIz/wBSAH7MzKseJZOU4WRzr59+1xAJ3rWMgAUVTEHdT179nQPAPAoELvzlVm2csPWbOsy9mYuPbty7HtWrGT29rh1q1W0YRd3iGs+ASDIYg7qzj333PjkBEBKU0CXvnpzttfT9u2xihHLS9dssVCJUoWaNwAoCmIO6i677LJMQ5lk9c9//rOgeQIAAEC8g7q2bdtmWlYbllWrVtmnn35q11xzTazJAQAAIBFB3cCBA3N8ferUqfbBBx9Yv379/MgXAAAAYlDw7mr/dfzxx9ucOXP8Sg4AAADxLKlbs2ZNttf+/PNPGz9+vNWqVSvW5AAAAJCIoK5Tp07ZOkpo3tcaNWrY/fff70eegCLJr7He/E4LABDQoC7r4MIK8EqWLOkGIs6rVyyA/I/1Joz3BgDwNaijihUo/LHehPHeAAAFDupyqnLNid7z4YcfRpMkABR5Y8aMcVMu9ujRwwYMGJDo7AAoCkHdddddl+u6HTt22PPPP2+rV6+2Fi1a+Jk3AAisXbt2uYBOc9bqWcNBlSmTvTodAHwN6nKbGkzt65588kkX2A0bNszOO++8qD8YAIoyDdyugE70rGUAKNQ2daJSOQVxmkWiZ8+eNmjQIKtUqVKBMgIAAApXqFgxC1mapVnIPWsZRSSo052kxqMbO3as1alTxyZOnEiVKwAAqapYCdtTtYGV2pjunrWM1BX1r/fll1/a0KFDbf369XbjjTdanz59rBgRPQAAKW1n7TbugSIS1Kl69Z133nHDmdxzzz1WvXp1mzt3bq7ThQEAACAJg7oZM2a4519//dUFeHkNafLDDz9E/eEq9Rs+fLh98cUXVrp0aevWrZvddNNN7v+rVq2yf/zjHzZ//nyrWbOm3X777XbSSSeF//bzzz93M1jofc2aNXPp1K5dO+rPBpAamGkDAHwM6tLT081vmlrs+uuvtwoVKri2eVu3bnWBm6p0Bw8e7MZsOvbYY+2NN95wY98NHDjQZs6c6QI8zT+r9RpqpUOHDm6sp2uvvdbeeustZrUAitBMG9HOsiHMtAEg6BLWInLFihWuFG727NluijFRkPfggw/aySef7ErgJk2aZOXKlbN69erZnDlzXICnQG7KlCnWpEkT69u3r/u7ESNGWPv27e2rr76ytm3bJuorASjkmTaYZQMA/idh9RBVq1a15557LhzQebZv324LFiywRo0auYDO06pVKxcEita3bt06vK5s2bLWuHHj8HoA8ItqAjp37uyeASCZJSyoU7Wrqk49GnxzwoQJdsIJJ9jGjRutWrVqmd5fuXJlW7dunfv/gdYDQDxmfdAyACSrpBmQ5qGHHrLFixfb66+/bi+++KKVKpW5CkXLe/bscf/fuXNnnutjsX//fitevHgBc585PSA//NwPC3tfjOcxlMjtsnv37kyzPmi5ZMmSccmHljl/IB5S+dyC2LZ5iWQJ6F566SV77LHHXOcI9X7dsmVLpvcoYPPmRdT6rAGcllX6F6ulS5e6qlu/LFmyxAWdQCzUhEBNDvxUWPvigfIe64j1kflO9HbJ+r5Fixa5PPkhnmkDnkQfQyhcCQ/q7rvvPnv11VddYNelSxf3msbBW7ZsWab3bdq0KVzlqvVazrq+YcOGMX/+McccY36qX7++r+kBKb8vxjhifbzzHUv6auMbqWnTpla+fHlf8hHPtIEicW4pYiV1ixYtSu6gbvTo0a6H66OPPmpdu3YNv65x58aNG+far3ilcxrsWJ0lvPWRgx/rjkFVtxr2JNHF0n6nBwRhX4xlxPp45zuW9LO+V8t+5S+eaQPxxH6avBLWUWL58uX21FNP2ZVXXumCNXV+8B5t2rSxGjVq2JAhQ1z1qAK8hQsX2nnnnef+tlevXjZv3jz3utbrfYcffjjDmQAAgCIrYUHdRx995IoTx44d62aKiHzoLkABnwK8nj17ukGFNZyABh4WBXBPPvmkG7dOgZ7a32k9Aw8DAICiKmHVr/3793eP3NSpU8cNcZKbjh07ugcQK90AaHiKHj16uJlJgHjxa1oypjcDkBIdJYBEjjvWr1+/cLtNIBmnOGN6MwDRIqhDkbJv375M445pGYgnpjiDH6hhQDQozwcAIIkxswmiRVAHAEASzxNMDQOiRVAHpAhvZgb3/yhmZgBQeChNQzLgqgCkiv/OzKCALpqZGQAUHkrTkAy4KgApJJaZGYqCWOeVBYAg4wwIIHVRegkAYZwBAaQ0Si8B4D8oqQMAAAgAgjoAAIAAIKgDUGRpTtVkTAsA8oM2dQCKrLzmZhXmZwWQSgjqABRpuc3NKszPisKikl7dZCRLOkhNBHUAACRxqTElxogWQR0AAElQmpZbqTElxogWQR0ABJAmldccpD169LABAwYkOjuBQGkakh1BHQAEfHL5fv36WZky2QMMxI7SNCQzWlMCQALnrXX/93neWiaXB4omgjoASATmrQXgM84iAJAgzFsLwE+U1AEIN6zv3LmzewYApB6COgDZGtZrGQCQWgjqANCwHgACgKAOAIAi2lMawcKeAQBAMgde9JRGlNgzAADwKfAqtTE9LoEXPaURDYI6BI5f8zP6nRaAYCPwQqIR1CFw/JifUZijEQCQSgjqEEjMzwgAKGqoVwKAXNDrEEAq4QwF+IhZGQKGXocAUghBHeATZmUIJjV839qyT9I1gFcnnmRKB0DicdsJ+IRZGZBqHYLoDAQEC0EdAKQoOgTFTk0jVJLeo0cPGzBgQKKzA/iK6lcAQJFAEwkEHUEdAKBIoIkEgo6gDgAAIAAI6gAAAAKAoA4AACAACOoAAIHg55h7jN+HVMSQJgCAwI/dJ4zfh6AjqAMABH7sPmH8PgQd1a9AEcG0UgAQbJTUAUUE00qhqAsVK2YhS7M0C7lnLQNBQlAHFCFMK4UirVgJ21O1gZXamO6etQwECXs0AKDI2Fm7jXsAQUTZMwAAQAAQ1AFAQNuOuf/TdgwoMjjSASCgbccU0NF2DCg6ONIBIIBoOwYUPUlRUrdnzx7r3r27ffnll+HXVq1aZZdffrk1b97cunXrZp999lmmv/n888/d3zRr1sz69Onj3g8AAFBUJTyo2717t9100022dOnS8GuhUMgGDBhgVapUsTfeeMPOOeccGzhwoK1Zs8at17PW9+zZ015//XU79NBD7dprr3V/BwAAUBQlNKhbtmyZnX/++fbLL79kev2LL75wJW9Dhw61evXq2VVXXeVK7BTgyZQpU6xJkybWt29fO+aYY2zEiBG2evVq++qrrxL0TQAAAIpwUKcgrG3btjZ58uRMry9YsMAaNWpk5cqVC7/WqlUrmz9/fnh969atw+vKli1rjRs3Dq8HAAAoahLaUeLiiy/O8fWNGzdatWrVMr1WuXJlW7duXVTrY7F//34rXrx4zH+XV3pILD9/z1h+06zv03Is+0O88x3P/TxV0s6aPts857RTFb9n/NPOKX3EX7TbPCl7v+7cudNKlco8RZGW1aEimvWxUFs+lfL5ZcmSJS5/SAyV2qqU18+5H73ftGTJktaoUWMrUSLnE2TWE6eW8zqZ7tu33xYv/t727t17wHwXdF/0O/1UTTsyfbZ5zmmnKn7Pwkk7a/pILkkZ1JUuXdq2bNmS6TUFbGXKlAmvzxrAablChQoxf5ba5Pmpfv36vqaHxM/9GPmbKki785VZbg7VrDL27sq0fOXY96xYyf/ss1nVrVbRhl3cwdcbisLcF1M17XinT9rBkqrbPJWPIeReUrdo0SJLyaCuevXqrhNFpE2bNoWrXLVey1nXN2zYMObP8rtY2u/0kPjxu7L+pgro0ldvzva+tH17rGLE8tI1WyxUolRMafuJtAs/fdIOllTd5ql8DCHFhzTJicae+/77723Xrv+VfMydO9e97q3XskfFwIsXLw6vBwAAKGqSMqhr06aN1ahRw4YMGeLavI0bN84WLlxo5513nlvfq1cvmzdvnntd6/W+ww8/3PWkBQAAKIqSMqhT0e5TTz3lerlqgOG33nrLxowZYzVr1nTrFcA9+eSTbtw6BXpqf6f1aWn/mcAaAACgqEmaNnXqTROpTp06NmHChFzf37FjR/cAAABAkpbUAShc3lAv7v9RDvUCAEgunLkBhId6UUAX7VAvAIDkwpkbQL6GegEAJBdK6gAAAAKAoA4AACAACOoAAAACgKAOAAAgAAjqAAAAAoCgDgAAIAAI6gAASUNTPnbu3Nk9A4gNQR0AICns2rXLpk2bZhkZGe5ZywCiR1AHAEgK+/btcwGd6FnLAKJHUAcAABAABHUAgEKz/78lccmWFhAEzP0KACg0xYsVsztfmWUrN2zNti5jb+Y2dFeOfc+KlSyTYzp1q1W0YRd3iFs+gVREUAf4JFSsmIUszdIs5J61DCA7BXTpqzdnez1t3x6rGLG8dM0WC5UoVah5A1IZVx3AL8VK2J6qDVxAp2ctA4j9xsj9nxsjIGZcdQAf7azdxj0A5P/GqNTGdG6MgHzgiAEAJA1ujID8o2wbAAAgAAjqAAAAAoCgDgAAIAAI6gAAAAKAoA4AACAACOoAAAACgKAOABCTMWPGWOfOnd0zgORBUAcAiNquXbts2rRplpGR4Z61DCA5ENQBAKK2b98+F9CJnrUMIDkQ1AEAAAQAQR0AIJP9/y2JS7a0AOSNuV8BAJkUL1bM7nxllq3csDXbuoy9mdvQXTn2PStWskyO6dStVtGGXdwhbvkEkBlBHQAgGwV06as3Z3s9bd8eqxixvHTNFguVKFWoeQOQM6pfAQBRCxUrZiFL+8//Lc0tA0gOHI0AgOgVK2F7qjZwAZ2etQwgOXA0AgBisrN2G/cAkFwoqQMAAAgAgjoAAIAAIKgDAAAIAII6AACAACCoAwAACACCOgAAgAAgqAMAAAgAgjoAAIAAIKgDAAAIAII6AACAACCoAwAACACCOgAAEDdjxoyxzp07u2fEF0EdAACIi127dtm0adMsIyPDPWs5VQLGMSkYjBLUJVgq7jQeDiYAQF727dvnAjrRs5ZTIWDclaLBKEFdAsV7p4nnjpPKBxMAIPXFM2Dcl6LBaEoHdbt377bbb7/dWrdubSeddJI9//zzlkriudPEe8dJ1YMJAOCf/f89VydbWsksnte4EpbCRo4cad9995299NJLtmbNGrv11lutZs2a1rVrV0sW2kmLFyuWkLQKuuP4lfec0oln2gCAwqHz752vzLKVG7bmuD5jb+bChCvHvmfFSpbJ9r661SrasIs7BOY6tN/na3/gg7odO3bYlClT7Nlnn7XGjRu7x9KlS23ixIlJFdTltcNHu7PntsPHO2D0I++5HajxTBsAUHh0Hk9fvTnHdWn79ljFiOWla7ZYqESpqNNO1etQcZ+v/fv377dAB3Xp6emu5KlFixbh11q1amVPP/20K5UqlkSlN7nt8PHc2f0KjuKV93inDQBIvFCxYhayNEuzkHvWsm9BY8Y+qxiR9o/rtpkV2+FL2ql6jUvZoG7jxo12yCGHWKlS/9sQVapUce3stmzZYoceeqgV6Z3dpx0+nnlPRNoAgEJUrITtqdrASm1Md89aToW0Qyl6jUvZoG7nzp2ZAjrxlvfs2XPAvw+FQuH36u+OOayilSqelu/81KlawRWPZi0iLV68eJ5p/7Gjte34ZZGVO6Kp1TmyekzpHyjtaNOPZ96TMe1o5XebJ2PafqWfqmnnlj7bPFjbnN8zSX/PI840szPjk/c4pv1Hgq9xkel7cY0Xu+QmLXSgdySpd99914YNG2azZ88Ov7Z8+XLr1q2bffnll1apUqU8/14baNGiRYWQUwAAgIJr2rRptgKtQJTUVa9e3X7//XfXrq5EiRLhKtkyZcpYhQoVDvj3+httHLW9S0sr2N0LAABAvKj8Tf0FvHgncEFdw4YN3ZebP3++G6dO5s6dGw7UDkTvySvaBQAASCUp2wK9bNmy1qNHD7vnnnts4cKF9uGHH7rBh/v06ZPorAEAABS6lG1T53WWUFD3wQcfWPny5a1fv352+eWXJzpbAAAAhS6lgzoAAACkePUrAAAA/oegDgAAIAAI6gAAAAKAoA5IcjR7BQBEg6AOSUWDK8bLL7/8YqmImU9QFKXyzUw8z2OpKJV/y1RDUJeL9evX2+bNm23Hjh2WSn788UdbsWKFe8TD2rVrbdOmTfbHH3/4mq6mdtu+fbsbFDoeJ8QHH3zQ7r//fjcMjt9WrlwZ3l/89uSTT9r5559v3377rcWDl+94bJctW7a4R6odQ4nChe9/0z1qW6TiTD8fffSRm4IymgHwiwJvTtR4/5bxOHa2bdtmf/75p5u1ym979+6NS7opPaNEPD366KP22Wef2YYNG+z444+3Dh06WM+ePX1LX4MlH3vssW5KMz899thj9vHHH7sdsVy5cnbeeef5Om6f0p8zZ44L7E466SS75JJLrEmTJgVOVwHLLbfc4rbxlVdeaQcddJAL7Pw6MY4YMcJee+01mzRpkhu02k8PP/ywffrppy54ady4sV133XXu2Q/33Xefvf7663bIIYfEJTB6/PHH7YsvvrBff/3VOnXqZL1793YzsvjhiSeecLO9/PTTTy5N7S8KTv22bt06F5DWrVs3/JrfAYGf+2KkJUuWuJujww47zGrUqOEmAPcr72vWrHHbpV69eua3r7/+2g4//HCXZ7/de++97kbjoYcecucBv2l/9LZLyZIlfd1PnnrqKRs1apS98sor1rJlS1/3Q20T5fvII480v2m6TV0z9Jt6efZjn3/mmWfcPr5q1Sq74IIL3Hmgfv36vuV7woQJrvbl9ttvd3n2c3s/9dRTboaqn3/+2U477TTr3LlzeOaqgnr22WctPT3dFQboeqdzb+nSpc03GqcO//Pmm2+G2rdvH5o9e3Zo2rRpobFjx4aaNWsWevTRRwuc9v79+0MbN24MtW3bNjR+/PjQ7t27Q36ZNGlSqEOHDqEFCxaEvvnmm9DkyZNdvt99911f0n/xxRdDJ554Yuirr74KTZkyJXTBBReEJkyY4Eva27dvD5166qmh7t27h0aOHBnatm2bez0jI6PAad9///2h448/PrRy5cqQ395++223r8ydOzf01ltvhT744APf0h4xYkSodevWobVr14buueee0K233ur2Hz388PLLL7u8z5kzJ/Tqq6+63/OZZ57xJW3te0r7iy++CM2YMcOl27hx49ATTzwR8tNDDz0U+stf/hJq1apVqH///qHnnnsufEz5sZ0ijx0/9sVIDz/8sNvf27RpE7roootC9913n2/ng0ceeSR0zjnnhFq2bBnq27dvaOnSpb58B23TZcuWhRo0aODOh2vWrAn5Sft8ixYtQt9//30oHh544IFQ165d3Xbp06dP6Ntvv/Utbf1+zZs3d8fsCy+8EPKTtrV+T53HtJ97v6dfaevY13545ZVXhsaMGePLMfTss8+GTjjhhNBLL70U+sc//hHq169f6LLLLgt98sknvuV9+vTpofr167vP8vM4HTt2rLvW6Xz+9NNPhwYNGuSOo59//rnAaescqO2ia6fS1XbXMeUnSuqyUCnUcccdZyeeeGK4mFR3dYMGDbJdu3bZkCFD8p227iSqVKlilSpVcqWBuhv661//6u4Y/aiyUMSvvItKLmbOnOlKS7p27epLta5K/lRyqce8efNswYIFdvTRR7sShvzexWgb6PvXrFnTFUer2lh3eFdccYXbTiq6V/r5LcVRiWu3bt3C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+/GoUaNcGyP9ftouamukNnBy880356vdkb77li1b3P//+OMPt4/ce++9mfKn/f+dd95xbabeeOONmNPfunWr+//69etDvXv3Dn3++eehhQsXhtq1axcaMGBA+L2xbpPIvKsNprZBZFua1157zbW10ffK2pbpQJ8VmfaPP/7ovr93PlB7TJ1rfv/999C//vWv0KWXXup+2/xsE8+sWbNC559/frgNstrD6hhQ+0Z9Tixpb968ObysdqNKa/To0aHBgwe7/Ou88OGHH7p8q01cLNs9crts2rTJtUvTfqk2wfotlf6GDRtce2GlH9k260Dmz58f2rdvX3g58je76qqrXPux/IrM94oVK9x21b5x8sknh3r16uXadinvOucq3zqG85O2voO2ibZ35LnywgsvDE2cONEdQ14buANtd7XNUxtR/X7dunULDRs2zLUbve6660JLlizJ9F61y1Y7Pu1H0cqavs5Xaout/EYe902aNAmfZ6LJd9a0db3UOUvHoX5f75qstoy33HJLpr+Lpk1pZNp61jbx6LrgtR8XnQ+072j/LAj6XedAVU8qcVIxtKqjRHcguqNWJK+qh/x209adpqqedHeqNHSHqmpYlbKpV0xkFWqsvCoE785QVYEq0fCGCFG7Fd0pFWToDS+trHfMugtRFbDuSPKzXXT3ojsjlV6qhEWlmao60h2jqgHUHiG/pSOqhtadnErNVMIQSXenuhtW/vOTvraniuq1T+gO2qN9RVUx6lma320SSSUgagOnqh2VxvhBpROqYlXJSOSQJsq77lDzm3f9ltrH9Tuq2l4ljCoZ1B20t15V4rHsc/rOSlPV0toX1AblwgsvdG2jdNx4tP+rtEFtAlV9F2v6ar+kY0allKr2V5Waeu3p+FQJptqoiVcSEGvaKqVQerfddpvVqVMn/D6dC7Qvatt7x69K11Q6kNv2z5q2fkO14/Sq6HU+UDsjnWtU0qDSQFXLqjQs1nxrm3uUb+VX1WxqU6dtrd9Bx0E0wxFFpq1SLTW7ENWEqARGtRgqgVH+VWWnEliV6irfsW5zb3/R76naFZUm/fvf/3a/q9JXCeBFF13kqtojS0+jSVtV/d520W+mbSIq8VMpmNrZxSLrNtf5W/nU9lAbL20bnW9UuqW8/+1vf3P5juZYymk/VG2L9gnVhOhYUum8zjGqjlVJqc6JKn2VvM4B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XXe59md///vfo/oMBVW5dbzQZy1ZssS1dfObF5wdfPDBUb1f1bKaNPyHH35wJZIAigaCOgCBcP3119sZZ5yR6bUPPvjAXn31Vfd/dSpQ6ZoX0EnLli1dMPbLL79E9Rm1atXKdd3WrVstIyPDDjnkkPBrCqxErxcrlrliRK956w/Eq3LVZ0RDn6XvqZ64AIoOql8BBELlypVdJ4HIh17zlC5dOtvf7N+/P/yclpaWbb0Cvkg5peHx/l7BmqdChQru+Y8//six9M1bfyD63GOOOca+//77HNfffvvtNmPGjEyv5RRIAgg2jngARULdunVd54YtW7aEX5s/f74rLTviiCNcr9M///wzvC4UCrnerNFSaZqGH/n999/DrymwLFOmjPucrAHdypUrrWHDhlGnrw4a6syRtZ1cenq660QRWTWrgE6lelWqVIk6fQCpj6AOQJGgzgNqazZ48GDX9u2LL75wbfC6d+/uSsyaNGniAj51otDQISNGjIi6ulNUKqaeqErbo16w559/vt1777326aef2urVq+3rr7+2gQMHus/TeHTR0hh1ah+oHrlKS3l899137eqrr3bt/E4++eTwe1XVLMoPgKKDNnUAigSVoj311FMukFOgpd6iZ511lt10001uvdrb3XrrrTZ27FjXM1bDh2jmhlh06NDB5s2b5wYf9ihNtW/T8CkaUkX/P+WUU+yWW27Jsco3Nyrxe+mll2zMmDEuSNy0aZPVqFHDzjvvPLviiisypTV37lwXMJYvXz6m/ANIbWkh1TEAAApMHS4UDKqnbdmyZROWD5XmKdg755xzEpYHAIWP6lcA8Ina5nXs2NHefvvthOVBVa9r1661bt26JSwPABKDoA4AfKTq1okTJ4Znqihsqp7V+HuxzD0LIBiofgUAAAgASuoAAAACgKAOAAAgAAjqAAAAAoCgDgAAIAAI6gAAAAKAoA4AACAACOoAAAACgKAOAAAgAAjqAAAALPX9P8klF40p42f+AAAAAElFTkSuQmCC" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "execution_count": 90 + }, + { + "metadata": { + "ExecuteTime": { + "end_time": "2025-07-10T19:11:22.902146Z", + "start_time": "2025-07-10T19:11:22.840515Z" + } + }, + "cell_type": "code", + "source": [ + "# CURIEs per request\n", + "sns.histplot(df['curie_count'], bins=50, stat='percent')\n", + "plt.title(f\"CURIEs per request (max = {max(df['curie_count'])})\")\n", + "plt.xlabel(\"Number of CURIEs\")\n", + "plt.ylabel(\"Frequency\")\n", + "plt.show()" + ], + "id": "f9e4e8b8b5738328", + "outputs": [ + { + "data": { + "text/plain": [ + "
" + ], + "image/png": "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THSyxk6dOtlnn32W6QzUGryekpJiHTp0sI8//jjT73z66afud1QzHaWn54d75pln7JRTTnHXFdP2q8HxyVjHoUOHZtsup02bFtG2p6GCjzzyiJ1wwgnWunVrGzFihDvRVlH066+/ur9XvU5tN8OHD3effcK2GH0N2Q5jSIN4EZn77rvPO++887xly5Z577zzjtesWTPvrbfeivdqJZyxY8d6ffr08X777bfQ7c8///S2b9/utWnTxnvwwQe91atXe/fff7930kknuemyZMkSr0mTJt6sWbO8FStWeJdffrnXu3dvL1ns2rXL69u3r1evXj1v4cKFbtrevXvdNtevXz9Xs3HjxnlNmzb1fv75Z/e4fqakpHiTJk3yvv32W+/mm2/2OnXq5H5P5syZ47Vo0cJ7//33XX07dOjgDRkyxEu2OkqPHj288ePHZ9oud+zYEdG2p/qedtpp3hdffOEtWLDAO/nkk72nn37aK2q03Vx00UVer1693Pak13v22We7v1m2xehrKGyHsUOAiZB2so0bN870gThmzBi3gSEzfcA9+uij2aa/9NJL3hlnnBH6QNNP/WHPnDnT3e/fv783cODA0PPXr1/v1a9f3/vxxx+9om7VqlXev/71L7eDCN/xfvrpp26n4Ic8ueqqq7wnnnjC/X/UqFGZtkF9ECpY+7/fvXv30HNFH3z6gPQ/MJOljnLKKad48+fPz/H38tv2tNPwt1N59dVXvbZt23pFjYKJ6rZx48bQtNdff93tKNkWo6+hsB3GDl1IEfrmm2/cZQ3U9Olr0aKFLVmyJLmb8HKwZs0aO/LII7NNV61UM//aVPrZvHnz0NmW9bi653yHHnqo1axZ000v6j7//HM7/vjj7YUXXsg0Xa+9QYMGVq5cudA01TC3mukEkA0bNnSP64quuqBp+ONq+v/777/d9pxMddy2bZtr1s9pu8xv29Pv/fLLL9aqVatM78HPP/9sv/32mxUl1apVs6efftqqVq2arX5si9HXkO0wthL2WkiJRtdhOvjggzNdX0kbqPo1t2zZYpUrV47r+iUKtep99913rm98/Pjx7oOrffv2rj9YNaxbt26m51epUsVWrVrl/q8/wurVq2d7fMOGDVbUde/ePcfpqlleNcnr8a1bt7rtM/xxXZ7joIMOKrI1za2OCtUKzOPGjbOPPvrI1aBnz57WuXPnfLc91VjCH/d3Tno86+8Fma4zpzEbPn050/gMjblgW4y+hmyHsUWAiZAGm2W9OKR/P+tVs5PZ+vXrQ7UaNWqU/fTTT27Q2q5du3KtoV8/PSevx5NRfjXL63HV07+f2+8ni7Vr17odx9FHH22XX365ffHFF3bXXXe5M3yfffbZeW57OdUxWf72H374YTfw/uWXX3YDcNkWo6vh119/zXYYQwSYCJUuXTrbRuLf1xWy8T+1atVyR35UqlTJ/aHqopz6BtK/f383aj6nGvr1y63GaopOVqqJWvgKWjN9C9Rj/v1kr6muq9a2bVv3jVeOPfZY+/7772369Olux5HXthe+k8ha06JcR+14p06dao899pjVq1ePbTEGNTzmmGPYDmOIMTARqlGjhv3xxx9uHIxPTXr649UfKP6hP05/nIvUqVPHNR+rb3jTpk2Znqv7ftOnapzT4/q9ZJVbTSKpmd4HfdCFP67tVzuhZKuptkd/p+HTt2CNK8ivjnpM/Cb88P8X1Tref//9NmXKFLcDbteunZvGthh9DdkOY4sAEyG1JKjP1h+wJosWLbLGjRvbAQdQRt/8+fPdIMrw8zusWLHC/dFqwNlXX33lxsmIfi5evNid70D0UzX1acCabv7jyUivXc3OfvOxqEa51Ux1V3O1pmu71PYZ/ri2X23H+uaXTB5//PFsF4LV4FHtPPLb9rTj0EDK8Mf1f00riuMORo8ebTNmzLCRI0dax44dQ9PZFqOvIdthjMXwiKYi76677vI6duzojtWfO3eu17x5c+/tt9+O92ollL/++ssdJnjrrbd6a9as8ebNm+cOH5wwYYJ77IQTTnDnf9Hhrvqp88L4h2UuXrzYa9iwoffiiy+GzoGg88kkm/DDf/fs2ePOl3HLLbe4c0ro/BE6lNU/98a6devc4f2a7p97Q4cQ+4eqv/HGG2471faq7Vbbr+qebHXUa2/QoIE7Z8YPP/zgPf/8816jRo3cNhfJtqf6ajvW/HTT/ydPnuwVNToE+LjjjvMee+yxTOcp0Y1tMfoash3GFgGmAHS+ggEDBrg/Wm04U6ZMifcqJSR9eOlkTaqTAsqTTz4Z+hDTH/AFF1zgPuguvPBC7+uvv870uzrHgc51oN/Vycg2b97sJZus5y/5/vvvvcsuu8x90OlD/5NPPsn0fIXEc845x51TQ+flyHreHH3onXjiie4kYoMGDXInekvGOmrHqR2qtr327dtn+/KR17annfewYcO8li1bescff7z38MMPh7bpokTbiuqW003YFqOvIdth7BTTP7Fu1QEAANiXGLwBAAAChwADAAAChwADAAAChwADAAAChwADAAAChwADAAAChwADAAAChwADFCH169e3fv36ZZv+yiuv2BlnnLFPlqn5av7x8t5779mpp57qTreuS1nkRKdjv/POO93zUlJS3MUdX3311YheR9ba6f+qs3/TqfB1odJ///vfbjm+22+/3d184b+T9aartgMoGK5GDRQxb7zxhl144YV24oknWjJ44okn7OSTT7a+fftalSpVsj2uq/12797dmjdv7q5Fo+csWLDA7rnnHtu8ebNdffXVBV7mHXfcYR06dHD/19XWV69e7eY3cOBAe/bZZ3P9vSeffNKaNWuWbXrlypULvA5AsiPAAEVMrVq17L777rP//ve/VqpUKSvq/vrrL3ehUL3unAwZMsS1kig8+FdJP+KIIyw9Pd1dbE9hr6BXlD/wwAMzXQFYF9q76aabrH///m599HhOKlWqlLRXDgZijS4koIi55ZZb7Ndff7VJkybl+Li6K7J2W2jnfsUVV4S6TPT/p556ylq1amVt2rRx3S1z5syxtm3bWsuWLe3hhx/ONM9Vq1a5bhldcfiaa66x9evXhx5Tt8p1113nunjU/aIr9WZkZISWdckll7jWE4WQ1157Ldv67t692y3vtNNOc90/mpffVaP5/fzzz65FJKcusg0bNrjWFl0B2A8vPgWXiRMnWrly5SwW/LAYzdXpZ8+ebe3atXN1VAvPu+++G5N1A4oiAgxQxPitAePGjbN169YVah5fffWV+92XX37ZOnbsaPfee6/rGlGo0biOp59+2pYvXx56/vTp061Xr142c+ZM27Nnj+tKEV1q7YYbbnDdNrNmzbLhw4fb66+/7tYtfFl169a1F1980XUFZaWumblz59pDDz1kM2bMcPO//vrrXdeN1u+QQw5xAUb/z2rlypVuHRQIsipbtqwLYyVKRN8Q/eOPP9qECRPslFNOsfLlyxdqHr///rsNGDDA+vTp48Ji165d7dZbb7UtW7ZEvX5AUUQXElAEqQVFrRsPPPBAprAQKe30NehVrRMXX3yxTZ061W688UbXFaObul7Wrl1rDRo0cM+/9NJLrVOnTu7/WuaZZ55pa9assd9++821xrz00kuuZeLoo4924WbQoEGu1UXUMqIBsGXKlMm2Hn/++afrClNLyQknnOCmPfLII3b66afbJ5984gJD8eLFXZdNTuNItm7d6n7m1qVTWApV999/v/u/AlXJkiXda1aQysu1117r1jecWp4UCNVq9vfff7tApu4wjc1RS1np0qVjuu5AUUGAAYog7STVaqLBq4XphlCLid+14u9ADzvssNDjChsaQ+Jr0qRJ6P963kEHHeQCjnbKakHQTtqnlpNdu3bZH3/8EVpWTuHFH4Cr56v7yad5H3XUUS4gKcDkRc/1g0x+A2XVEqNlZaVpWVtp1MJ1zjnn2Pbt2133m7qxdPTXwQcfnOcyhg4dmum1iP/ajzvuOBfMevbs6V6fAlG3bt1cSxGA7OhCAoooHXWjbgi1iOzcuTM0PetYEL8VIVxO3So5/Z4va6uCdvpqldB81eqiMTT+TeNc3nnnnVCrSF4tDLk9pjE0OYWNrBo2bOjWe9myZdke27FjhwsL33zzjbuv9dm2bVu25+U0KFehq3bt2q4FSkc2ibq11IKSX/eefi/8pmmi9Rw/frxrrdI4mA8++MA6d+5sK1asyPd1AsmIAAMUYbfddpvbUYcP6FWwELUe+KI9D8m3336bqdVELR5qRdBNXUhq/fB32FqWDn3OKxD5Dj/8cBemUlNTQ9PUcvPDDz+4eedHy9UgZHWBqVssnMbrfPnll3booYe6++qu0XicrJYsWRLqKstt8K5aVhQ0nnnmGSsstShpnI9as/7zn//Ym2++6dYtt3PbAMmOAAMUYerSUIhRF4evatWqbseoUKOBuhorM2/evKiWM2XKFNeqotYMjW/R0UoKKxqUq/EcOrxYA2oVGO666y7XLZK11SYnGhCrbhSNN/nss8/c/DUvjRNRMImE1mfp0qV28803u5/fffedTZ482R3ZpG4fHdrsj+PRSfE0UFkBSeurI6bUEnLZZZfluQyFDh3VNHbsWNdtlhuN6dm4cWO2m4600qHcGgyteeh90Xui9y2v8AQkMwIMUMRpxxp+8jQNplW3knbmOlRXR7zo0ORoqCtm1KhRdtFFF7nulWHDhrnpCikKBOru0WMaCKzDoTVAOFIa9HvSSSe5cScKGepWUktHpOe40RFO//d//+f+r8HC6pbRyf5UAx1e7dORSurCUYuHDgnXshYuXOgG2Grgcn7UaqLWrayHmIfT61eoy3rTe6Dzw2g8zdtvv+2O/NK5fHQUUk5HZgEwK+ZlbVcFAABIcLTAAACAwCHAAACAwCHAAACAwCHAAACAwCHAAACAwCHAAACAwCHAAACAwCHAAACAwCHAAACAwCHAAACAwCHAAACAwCHAAAAAC5r/B1hpoLnUi2aOAAAAAElFTkSuQmCC" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "execution_count": 9 + }, + { + "metadata": { + "ExecuteTime": { + "end_time": "2025-07-10T19:11:22.956832Z", + "start_time": "2025-07-10T19:11:22.911068Z" + } + }, + "cell_type": "code", + "source": [ + "# CURIEs per request (but only from 1-10)\n", + "sns.histplot(df['curie_count'], bins=10, binrange=(1, 10), stat='percent')\n", + "plt.title(\"CURIEs per request (from 1-10)\")\n", + "plt.xlabel(\"Number of CURIEs\")\n", + "plt.ylabel(\"Frequency\")\n", + "plt.show()" + ], + "id": "c661fc023ff6240c", + "outputs": [ + { + "data": { + "text/plain": [ + "
" + ], + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjAAAAHFCAYAAADsRsNYAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAANd9JREFUeJzt3Ql4FFXa9vEnhC0hgyibgIqKiIJsgrgvuAyIOCiKOjr64qjgsOkoKogLrggqogIq7oqvuACOC4Ib+oqCCwqEQRkWF5RBQUUnhkVCvus+Y/XX6SSQNJ1UnfT/d119dVLdqT5dlaTufs45VRmFhYWFBgAA4JFqYTcAAACgvAgwAADAOwQYAADgHQIMAADwDgEGAAB4hwADAAC8Q4ABAADeIcAAAADvEGAAoAw45ycQLQQYpJXc3Fy74oor7JhjjrF27drZ8ccfb9dee62tWrWqyPPOPfdcdyvNsccea8OGDSvy/FatWhW57bfffnbggQda79697R//+EeRn9fPah2BDz74oNjPJ97+7//+L6XbAmU3f/5869evX5me+80331jXrl3txx9/dN8vXbrUTjnlFDvggAOsR48eFkVr1qyxzp07u9/D8nrrrbfc72dJ5syZY6eddpq1b9/e/b4//PDDRYLg3XffbSNHjtyhtiN9VQ+7AUBleeqpp+zWW2+1gw8+2C6//HJr1KiRffXVV+6f6muvvWaPP/64Cx3Jat26tV1//fWx7wsKCtyB4bHHHrMrr7zS6tWrZ0cfffQ213HddddZmzZtSnysRYsWSbcNO+a5556zFStWbPd5OjgPHz7c/ud//sd22WUXt2zChAm2evVqdx8si5J///vfdsEFF9h//vOfcv+sAo/+lkqyYMECu/jii+3EE0+0Sy65xIXA22+/3f1dBGFQ9926dXO3Qw89dIffC9ILAQZpQf88b7nlFjvnnHNsxIgRseUKM6rC6BPy1VdfbdOmTUv6NXJycqxDhw7Flh911FHun7PWvb0As88++5S4Dvjh9ddft3/9618uFAd++ukn23fffbe77yvb1q1b7YUXXrDRo0eX+2fz8vLswQcfdLc//OEPlp+fX+w59957r+2///4utAR/B1u2bLH777/fzjvvPKtdu7ZlZWW5sDdq1Ch78cUXU/K+kD7oQkJa0AFF/2gvu+yyYo/pU7G6dI477rgS/xHvqFq1alnNmjUtIyMjZQeeu+66y5Xk1S2h+zvvvNN+++23Un9GBxM9b/bs2da9e3dX0j/jjDOKdRmsX7/eVYEOO+wwa9u2rXvO3LlzizxH3QXjx493XWPqhtPXJVG32tChQ23IkCEulJ1//vlu+aZNm2zMmDHugK72n3zyyTZjxoxi71EVC3X1qa36JP/qq6+611YXTUndcKLH9Jz4IFqW9/Tee++55R07drSDDjrI/va3v8UqLnqd6dOn27ffflts3YkeeOABV03Q/g621YcffmgfffRR7Gd1U7VOVZ3DDz/cunTpYsuXL3fP13bQdlU79Jja/fPPPxfZj9p/Cko9e/Z076dXr1726aefuopHnz593D7RY4nvMZG6tlQxVHjX/iiP559/3p599lnXvr/85S/FHt+8ebP73TrhhBOKLNe2+fXXX90HioDaumzZMnv77bfL1QaAAIMqT2V99cWrCqJPfCXR2ISBAwdadnb2Dr2OPmEGNx2oV65c6boU9E9bB5rt0YE7fh3BTWX3gD71Pv300669jzzyiP35z392Ae2+++7b5ro1JuOqq66ys88+24090CdgdR189tln7nG1V5+G33zzTfv73//ugsmuu+5qF154YbGDoT5FK3jcc8897qBUGoWOOnXquLZpPdpGaveUKVNcoNFyHaz1eqoGBHRAnThxohs/oYN23bp1i3TPlVVZ3pPGPw0YMMCFKbVHlbovvvjCdW9of+gxha2GDRvaM88840JVSbSvFy9ebH/84x9jy/R8hRXd4n9W+1P7Tq+l3w91D+r9KmAr7Gm7ajvNmjXLBcGNGzfG1qluydtuu82FOu3HX375xYVE/awCjIKftrPeb/zPJWrSpIkLQnp9/S6Uh4Kjxr6cddZZJT6ubapAveeeexZZ3rx5c3ev7Rto3Lixe88vvfRSudoA0IWEKk8lfB3Idttttwp9HX3KThy/oqqLug90oNHAzu3p27dvictbtmxpL7/8svtan+h1sNXBXfQJXsFMFaZt2bBhgxswqU/ccsghh7jus0mTJrmKjgYaf/755+6TtaoeQdlfB9A77rjDpk6dGluXBnwGFZVtqVGjht1www2xioQqHe+++657vWBA65FHHunaptfQp3GFvcmTJ7tuhsGDB8faodd7//33rTzK8p4WLVrkDvT9+/d3B1NRyFHoUUVujz32cFU6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NmzImXoBAED0Asznn39e5Ht1IX399dd200032cknn5yqtgEAAKR2GnU8DeDda6+93LiYu+++OxWrBAAAqNgAE/jhhx/sl19+SeUqAQAAUtOFpDPuJvr111/t/ffft+7duyezSgAAgDJL2Wlz69WrZ1dddZU7JwwAAEDkAsyoUaNS3xIAAICKDDDjx48v83MHDRqUzEsAAACkNsB89dVXNnPmTNdtdMABB7jzv2hqtaZSd+jQIXZBR10nCQAAIDKXEtD5Xm644QarUaNGbPno0aPt559/tltvvTWVbQQAANjxadQzZsywCy+8sEh4kTPOOMM9BgAAELkA07hxY3v33XeLLZ81a5a7qCMAAEDkupAuv/xydyXqt99+2/bbbz+3LDc3113Q8f777091GwEAAHa8AnPCCSfYtGnTbN9997UVK1bYt99+a126dHEVGN0DAABE8kR2rVq1cmfk1aDdnJwcq1atGrOOAABAdCswhYWFdt9999nBBx9shx56qK1evdquuOIKu+6662zz5s2pbyUAAMCOBpgJEybYiy++aLfddpubUi2nnnqqvffeezZmzJhkVgkAAFCxAWb69Ol24403WteuXWPdRocffrg7D8yrr76azCoBAAAqNsD88MMP1qhRo2LL69ata/n5+cmsEgAAoGIDzCGHHGIPP/xwkWV5eXk2duxYNy4GAAAgcgFm5MiR7pwv6jbatGmTDRgwwI4++mg3nfqaa65JfSsBAAB2dBq1uoqef/55mzt3rq1cudK2bNlie+21lx1xxBFuOjUAAEDkAkzPnj1t/Pjxbgq1bgAAAJUpqXKJqiy//fZb6lsDAABQURWYY445xs4//3w3jbpZs2axc8EEBg0alMxqAQAAKi7ALF261Nq0aWPff/+9u8XjcgIAACAyAeacc85xlw/QAN4nn3zSLdu4caPVrl27ItsHAACQ/BiY+fPnFxv3cthhh9mqVavKugoAAICU2KE5z7qoIwAAQGXjpC0AAMA7BBgAAFC1ZyHpStM5OTmx77du3Wqvv/667bLLLkWed8opp6SuhQAAAMkGmKZNm9ojjzxSZFn9+vVt8uTJxaZRE2AAAEAkAsxbb71VoQ0BAAAoK8bAAAAA7xBgAACAdwgwAADAOwQYAADgHQIMAADwDgEGAAB4hwADAAC8Q4ABAADeIcAAAADvEGAAAIB3Qg0w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BLKysuyUU06xkSNH2qJFi+yNN95wJ7I777zzwm4aAAAIWWQH8cqGDRtcgHnttdcsJyfHLrjgAuvbt2/YzQIAACGLdIABAADwqgsJAACgNAQYAADgHQIMAADwDgEmDX333Xc2ZMgQ69Klix155JE2atQod4kGhK9fv342bNiwsJuR9nTSzBtuuMEOOuggO+yww2zs2LHbPa05Ks6///1v69+/vx144IF27LHH2mOPPRZ2k9L276Jnz572wQcfFDlDvibXdOjQwXr06GFz5syptPYQYNKM/gkrvGiGl67sfdddd7nLNYwbNy7spqW9V155xV0mA+G7+eab7f3337eHH37Y7rzzTnv22WftmWeeCbtZaevSSy+17OxsmzZtml199dXu/9Xrr78edrPSyqZNm+yyyy6zZcuWFTmeDBw40F2ncOrUqdarVy8bNGiQrV69ulLaRIBJMytXrnQnB1TVpWXLlta5c2cXaF5++eWwm5bWdIHSMWPGuBM1Ivx9oX/GN910k7Vr184OPfRQ++tf/2oLFy4Mu2lp6eeff3b/s/72t7/Znnvu6a6Hp8rx3Llzw25a2li+fLmdccYZ9vXXXxdZPm/ePFeBufHGG61FixauSqZKjP5+KgMBJs00bNjQHnroIZeY4+Xl5YXWJpiNHj3afXrZZ599wm5K2tMZv3XeKXWxxnftKfSj8unyMTqxqaovuvKxPoR98skn7mztqBwffvihHXzwwcWqkAr1rVu3dtWxQKdOnYqcQb8iEWDSjK4jpU8vAV0wa/LkyXbIIYeE2q50pk+SH3/8sQ0YMCDspuD3Pv1mzZrZCy+8YN27d7fjjjvOJkyY4P5WEM6Ffa+77jp38Gzfvr2deOKJdtRRR1mfPn3CblraOPvss13XnYJkPF2fsFGjRkWW1a9f39asWVMp7YrsxRxROW6//XZbsmSJPf/882E3JW37la+//nr3D7osV1lHxcvPz7evvvrKpkyZ4qou+iet/aN/3upKQuVbsWKFde3a1c4//3w3BkPde+ra+9Of/hR209Lahg0bil00Wd9rsG9lIMCkeXh5/PHH3UDefffdN+zmpKXx48fbAQccUKQqhnDpIrLqUtXgXVViRIMSn376aQJMSBVKfcDSAHeFfI0T00zK++67jwATgeqYxozFU3iprA9jBJg0pU8w+oesENOtW7ewm5PWM4/WrVtnHTt2dN8Hn1xmzZpln376acitS99xYvrHHIQX2WuvvdxUXlS+xYsXW/PmzYscFDXu4v777w+1XTBr3LixG+AbT//PEruVKgoBJk0/9as8rnNbqI8f4XnyySdty5Ytse/vuOMOdz906NAQW5XeNM5CXXtffPGFCy6igaPxgQaVRwdDdekp3AfdFdofu+22W9hNS3vt27e3SZMm2caNG2MBU4PgNZC3MjCINw37kidOnGgXXXSR+yVT/35wQ+XTQVGfLoNbnTp13E1fIxx77723HXPMMTZ8+HD7/PPP7d1333X/pP/85z+H3bS0pBPX1ahRw6655hoXKt966y1XfTn33HPDblra69KlizVp0sT9rWhskv5OFi1aZKeffnqlvD4VmDTz5ptvWkFBges/1i3e0qVLQ2sXECWqhKmbVaFFg3fPOeccDpgh+cMf/uDOvHvLLbe4A+Muu+zizglz5plnht20tJeZmek+EI8YMcJ69+7tPnhpxl7Tpk0r5fUzCjk/NgAA8AxdSAAAwDsEGAAA4B0CDAAA8A4BBgAAeIcAAwAAvEOAAQAA3iHAAAAA7xBggCqkVatWdvnllxdbPm3aNHdG04qg9Wr9YZ6c8aijjnKnNddZc0ui6xjpTK56XocOHeyUU06xF154oUzvI3Hb6Wtt5+C23377uTOS6uRq8ddLGjZsmLsF4n8m8fbNN9+kaGsA6YMz8QJVzMsvv+zOWHrooYdaOrjnnnvsiCOOsIEDB1r9+vWLPf7ll1/a2WefbQceeKDdfffd7jm6wvH1119vP/74Y1JXmL766qutR48e7uutW7e6C9ppfVdddZU98cQTpf7cvffeG7twZzydXRZA+RBggCp4faUbb7zR/vGPf8QufleV/ec//3HX9SrtYos33HCDq5IoPGRkZLhle+yxh7s4oC5oqrBXt27dcp/eXletjr8q75AhQ+yKK65w7dHjJdlpp52K/ByA5NGFBFQxl156qX333Xf28MMPl/i4uisSuy10cA+u9aMuE32ta2UddNBBdvjhh7vulpkzZ1rXrl2tc+fOdvvttxdZpy7kpm6Ztm3b2gUXXGCrV6+OPaZulYsvvth18aj7RVdD1/W4gtc666yzXPVEIeTFF18s1l5dGVqvd/TRR7vuH60r6KrR+r799ltXESmpi2zNmjWu2tK3b99YeAkouDz44IOWnZ1tqRCExWrVkv+3OmPGDOvWrZvbjqrwvPHGGylpG1AVEWCAKiaoBuiKvatWrUpqHZ9++qn72eeff95OOukkGzlypOsaUajRuI6HHnrIlixZEnv+008/bRdeeKFNnTrVtmzZ4rpSRJdaGzRokOu2mT59uo0aNcpeeukl17b419pnn33s2WefdV1BidQ18/rrr9vo0aNtypQpbv0DBgxwXTdq36677uoCjL5OpAuUqg0KBIl0kUaFserVd7wQ/fXXX7sr8R555JHuauLJ+OGHH+zKK6+0/v37u7B42mmn2WWXXWbr16/f4fYBVRFdSEAVpAqKqhu6gm98WCgrHfQ16FXVCV319/HHH7fBgwe7rhjd1PWycuVKa926tXu+rtrcs2dP97Ve87jjjrMVK1bY999/76oxzz33nKtM7L333i7cDB8+3FVdRJURDYCtXbt2sXb8/PPPritMlZJDDjkkdqXoY445xt577z0XGHRFXHXZlDSO5JdffnH3pXXpJEuhSlerFgWqGjVquPesILUtF110kWtvPFWeFAhVNfvtt99cIFN3mMbmqFJWq1atlLYdqCoIMEAVpIOkqiYavJpMN4QqJkHXSnAA3W233WKPK2xoDEmgXbt2sa/1vHr16rmAo4OyKgg6SAdUOdm4caP99NNPsdcqKbwEA3D1fHU/BbTuvfbaywUkBZht0XODILO9gbKqxOi1EmlZYpVGFa4//vGP9uuvv7ruN3VjafbXzjvvvM3XuPnmm4u8Fwne+/777++C2fnnn+/enwJRnz59XKUIQHF0IQFVlGbdqBtCFZENGzbElieOBQmqCPFK6lYp6ecCiVUFHfRVldB6VXXRGJrgpnEur732Wqwqsq0KQ2mPaQxNSWEjUZs2bVy7Fy9eXOyx/Px8FxY+//xz973ak5eXV+x5JQ3KVehq3ry5q0BpZpOoW0sVlO117+nn4m9aJmrnAw884KpVGgcze/ZsO/XUU+2zzz7b7vsE0hEBBqjChg4d6g7U8QN6FSxE1YPAjp6H5F//+leRqokqHqoi6KYuJFU/ggO2XktTn7cViAK77767C1MLFiyILVPl5quvvnLr3h69rgYhqwtM3WLxNF7n448/tiZNmrjv1V2j8TiJFi5cGOsqK23wriorChqPPfaYJUsVJY3zUTXr73//u73yyiuubaWd2wZIdwQYoApTl4ZCjLo4Ag0aNHAHRoUaDdTVWJm33357h17n0UcfdVUVVTM0vkWzlRRWNChX4zk0vVgDahUYrr32Wtctkli1KYkGxKobReNNPvjgA7d+rUvjRBRMykLtWbRokV1yySXu/osvvrBHHnnEzWxSt4+mNgfjeHRSPA1UVkBSezVjSpWQc845Z5uvodChWU0TJ0503Wal0ZietWvXFrtpppWmcmswtNah/aJ9ov22rfAEpDMCDFDF6cAaf/I0DaZVt5IO5pqqqxkvmpq8I9QVM27cODvjjDNc98qtt97qliukKBCou0ePaSCwpkNrgHBZadDvYYcd5sadKGSoW0mVjrKe40YznP73f//Xfa3BwuqW0cn+tA00vTqgmUrqwlHFQ1PC9Vrz5s1zA2w1cHl7VDVRdStxink8vX+FusSb9oHOD6PxNLNmzXIzv3QuH81CKmlmFgCzjMLEuioAAEDEUYEBAADeIcAAAADvEGAAAIB3CDAAAMA7BBgAAOAdAgwAAPAOAQYAAHiHAAMAALxDgAEAAN4hwAAAAO8QYAAAgHcIMAAAwHzz/wC+Bci3gECBHAAAAABJRU5ErkJggg==" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "execution_count": 10 + }, + { + "metadata": { + "ExecuteTime": { + "end_time": "2025-07-10T19:11:23.019072Z", + "start_time": "2025-07-10T19:11:22.965897Z" + } + }, + "cell_type": "code", + "source": [ + "# Time taken distribution\n", + "sns.histplot(df['time_taken_ms'], bins=20)\n", + "plt.title(\"Time taken\")\n", + "plt.xlabel(\"Time taken (ms)\")\n", + "plt.ylabel(\"Frequency\")\n", + "plt.show()" + ], + "id": "c06ac224b4390df3", + "outputs": [ + { + "data": { + "text/plain": [ + "
" + ], + "image/png": "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yy+/yMyZM+Xuu+/2/Nh169a1O7CvW7fO82MD4YaABOCK0a61wC42fa3dYM2aNbO7iPfp00diY2OtNUeXO3ToIAcPHvTv/9FHH0nz5s2trG3btrJ27doUW2gWLVpkjyZNmtg67Xrq0qWLVK9e3e46rsfes2dPsvuPGDFCGjVqJPv377dlDRytW7eWKlWqyB133CErVqwI6lbU7R977DE7r4YNG8q7776bYh0sXrxYSpcubXebV9rtqF1jr732mtSqVUvq1atn+y9fvlwaN24sNWvWlNGjR/v3/+abb+TOO++09/C3v/1N5s6dG3R8fb9z5sy5pO8HgJQRkACkq/Hjx1s32Ouvvy4ffvihtG/f3h76h//w4cPy73//27bbsWOHPPXUU/LII4/I+++/L3//+9/l4Ycflh9//PGiY3bu3NlClz60iy8pKUn++c9/SvHixeW9996zYycmJgYFD8e0adNsmylTpkixYsXsHLp162YBScPNQw89ZKEosJVm9uzZUrFiRVmyZInceuutMmjQIOtuTM6XX34pN910U9C6jRs3WjDUc23RooUMHjzYWpk0NOnXeuONN2T79u12zhrEbr/9dguWjz76qAwZMiRo3JEGrK+++ipkW9CAjIKABCBdderUyVpetHuoQoUKFh402OhrDRvff/+9baeBpV27dtaCU6pUKWtluvnmm5NtLbnqqqskV65c9tDxTjou6p577rGwcc0111iY0UHS7gHNOm5qwoQJFsrKlCnjDz96Tvfdd599XW290e6xGTNm+PfTljANayVLlrTQol9v165dyb5fDTrOsR0aZp555hk7vh47ISFBevXqJeXLl7eWsvz588vevXstdJ04cUIKFCggJUqUsJCogU67LR16bN0mLi7uT35ngPCWLb1PAEB401Dh0ECjrTyBy+fOnbPX2h2mrSbz5s3zl58/f17q16//h18jKirKWqW062rbtm0WNjSoaNAIpAFKx0kVKVLEv063/fTTT61rLvDrajeZ469//av/dXR0tD1fuHAh2XM5duyY5M2bN2idBiA9R5UzZ0571gDkroc8efLY+9Aw9eqrr1oXXJs2bWzwu8M5tn6dwGMASB0CEoB05R6wnSVL8g3b2r2krTStWrUKWq/h4VIGRmtLjIYHHaPTsmVLCz56lV0g7XLT7qyRI0fKmDFj/EFHW620iy5Qtmz//+sze/bsF33NlLq4IiIi7L2kdKzA7ZKj3W/33nuvrFy50h4aGDUs6dgnpd2Jv7c/gEtDFxuADEFbbHRwt3ZDOQ8NB1988UWy2wcGBB3MfejQIRvXo2OItMtMB2C7Q8xtt91mrTMffPCBfPvtt/6vq+OcAr/uxx9/bOORLoe2FmkX2OXQ8VA65kjPQcdiLViwwLomP/nkE/82ztxKgd1uAFKPgAQgw4xV0jFCGnL27dsn06dPt0dg91agyMhIG4ejV8Fp11R8fLy1uGjImj9/vo0tcrrvAul4KB1nNHToUGs90qvdtFvuxRdflB9++MGC0bhx42wA9+WIiYm57PmWtCtNr+QbPny41YGGOB28rsd06LG169C5Sg7A5SEgAcgQqlWrJqNGjZK33nrLLvV/++23ZezYsXZpfHI05OgAbx3IrPv26NHDWl90WS+tHzhwoM22HTiNgOPxxx+3cKUTLuqYqEmTJtnVZ9o199JLL9lYJT3O5WjQoIFs2LDhsvbV8VHanaahSL++XtGmXYd33XWXf5v169fbuCy62IA/h5m0AeAKOn36tM2xpFMJBA5I94L+Om/atKmNodL5kwBcPlqQAOAK0qvcdJC1toB57euvv5ZChQoRjgAPEJAA4ArTK+J06gCvb1arE0vqVW4A/jy62AAAAFxoQQIAAHAhIAEAALgQkAAAAFwISAAAAC4EJAAAABcCEgAAgAsBCQAAwIWABAAA4EJAAgAAkGD/B5EUoVI7RuQIAAAAAElFTkSuQmCC" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "execution_count": 11 + }, + { + "metadata": { + "ExecuteTime": { + "end_time": "2025-07-10T19:11:23.096150Z", + "start_time": "2025-07-10T19:11:23.032486Z" + } + }, + "cell_type": "code", + "source": [ + "# Time per CURIE distribution\n", + "# CURIEs per request\n", + "sns.histplot(df['time_taken_per_curie_ms'], bins=30)\n", + "plt.title(\"Time taken per CURIE\")\n", + "plt.xlabel(\"Time taken per CURIE (ms)\")\n", + "plt.ylabel(\"Frequency\")\n", + "plt.show()" + ], + "id": "629b162554799779", + "outputs": [ + { + "data": { + "text/plain": [ + "
" + ], + "image/png": "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IPKd0rC0Zs0aF4jUE5SRwpLCTfHixY/aph6mK664wtq2bevuq+eoWbNmtmHDBitXrpxNmTLFevXqZXXq1HHb+/TpY08++aR7vl9++cXmzp1rc+bMsbJly1rFihVt8eLF9tJLLxGWAABAZA3DLViwwOrXr+96eELt3bvXtmzZYmeffXam+6k3yAtCUqpUKStdurRbr/1+++03q1u3bnB77dq1bePGjbZ161b3GD1eQSl0+3fffZcrbQQAANHtlPYsdejQIdP16lVKSEiw8ePH22effWaFCxe2W265JTgkp9BTokSJdPtomG3z5s22bds2dz90e7Fixdyttz2zfRWysistLc3CTbVViYmJKrzSnxzJjeMKN+8Yo+FYTwTtjC3x0s54aivtjK92puWw/ae8Zikz69atc2GpfPnydtNNN9nChQvt3nvvdTVLl156qas3yp8/f7p9dF+F4trm3Q/dJtqempqa5b7ZtWzZMgu3pKQkq1q1qu1LTXU9bNmxLznB3a5atcq1MxrkxnsYiWhnbImXdsZTW2lnbFkW5nZGZFhSLZJqkNSjJCriXr9+vb388ssuLBUoUOCocKP7ChqhwUiP834Wbc9q34IFC2b7OKtXr/7fXqAw8s7aS05KspSU7HUtJScnu1udORjplO71y5wb72EkoZ2xJV7aGU9tpZ3x1c60/22PibCkXiUvKHnUy/T111+7n0uWLGnbt29Pt133VQyubaLhNq8uyRua87ZntW926YPItV+6hAT9yZFo+h8hV9/DCEI7Y0u8tDOe2ko7Y0timNsZEfMsZaQz1zp37pxu3cqVK11gEs2ttGjRouA2FXRr0XqFIRV7h27Xz1qnWqWaNWu6Ym/VL4Vu13oAAICoCEsaglOd0sSJE92p/jqt/80337Rbb73Vbb/hhhvcRJIzZsxwIapfv37WtGlTN22At12TUmqSSy2jR4+2jh07um16TKNGjdzcS9pXz6E5mW688cZT2mYAABCZInIYTvMdqXfpqaeecrdlypRxgUczbotuhw0b5rbv2bPHGjZsaA888EBwf82ntGPHDuvRo4frhmvfvn26nirNy6RJLa+77jo3/Pbggw8yxxIAAIjssKQzuELpUiZastKuXTu3ZEYBSbN0a8mMpgrQtAQAAABROQwHAAAQKQhLAAAAPghLAAAAPghLAAAAPghLAAAAPghLAAAAPghLAAAAPghLAAAAPghLAAAAPghLAAAAPghLAAAAPghLAAAAPghLAAAAPghLAAAAPghLAAAAPghLAAAAPghLAAAAPghLAAAAPghLAAAAPghLAAAAPghLAAAAPghLAAAAPghLAAAAPghLAAAAPghLAAAAPghLAAAAPghLAAAAPghLAAAAPghLAAAAPghLAAAAPghLAAAAPghLAAAAPghLAAAAPghLAAAAkR6WDh48aG3atLH58+cH1y1evNiuv/56q1Wrll1++eU2Y8aMdPtcddVVVqlSpXTLjz/+6LYFAgEbNWqUNWjQwOrVq2cjR460I0eOBPfdtWuX9ezZ0z138+bN7a233jqJrQUAANEk76k+gAMHDljv3r1t9erVwXXbtm2zf/7zn3bDDTfYww8/bCtWrLCBAwda8eLFrWnTppaWlmbr16+3qVOn2tlnnx3cr0iRIu520qRJNnv2bBszZowdPnzY+vbta0WLFrUuXbq47Xqu/fv32/Tp023JkiV2zz332DnnnGMXXHDBKXgHAABAJDulYWnNmjUuKKknKNTHH39sxYoVs7vvvtvdVyBSr9OsWbNcWPr111/t0KFDLtwUKFDgqOedMmWK9erVy+rUqePu9+nTx5588kkXln755RebO3euzZkzx8qWLWsVK1Z0vVgvvfQSYQkAAETWMNyCBQusfv36rocnVOPGje2hhx466vF79+4NhqxSpUplGpS2bNliv/32m9WtWze4rnbt2rZx40bbunWr60nSvgpKodu/++67MLcOAADEglPas9ShQ4dM1yvIhIaZHTt22DvvvOPqjGTt2rWWL18+u+2222z58uVuCK1fv36uZ0hDeFKiRIng/uqlks2bN7vtodtEQ3QKWQAAABFXs3Qsqi1SSFLg+cc//uHW/fTTT7Znzx679tpr3XDbq6++ap06dbJ3333XPV7y588ffA7vZxWSp6amptvmbde27FLtVLipED0xMVFV6vqTI7lxXOHmHWM0HOuJoJ2xJV7aGU9tpZ3x1c60HLY/osPSn3/+aXfccYcr5lZNUVJSklv/wAMPuFCUkpLi7g8dOtS+/fZbd1bbxRdf7NYp/HjDdF4Q0v5alzEY6X7BggWzfXzLli2zcNMxVq1a1falpgaHHY/XvuQEd7tq1SoXCqNBbryHkYh2xpZ4aWc8tZV2xpZlYW5nxIYlBYWuXbu6guzJkyenO+stb968waAkCQkJVr58eTeUVrJkSbdOw23eUJ43NKez6bR9+/bt6V5L97Utu6pXr/7fXqAw8qY4SE5KspSU7HUtJScnu1tNoxDplO71y5wb72EkoZ2xJV7aGU9tpZ3x1c60/22PibCkwNCjRw931tu///1vq1ChQrrtN998sysM12O8x6s35cYbb3RhqHTp0rZo0aJgWNLPWqdapZo1a7pib9UvnXnmmcHtWp9d+iBy7ZcuIUF/ciSa/kfI1fcwgtDO2BIv7YynttLO2JIY5nZGZFh67bXX3FQB48aNs0KFCgV7hlTUXbhwYTeR5NixY61KlSquuFtTBfzxxx929dVXu8dpfiZNSumFodGjR9utt97qfi5Xrpw1atTIzb00ePBglzA1J5PmbAIAAIiKsPTBBx+43iKd7RZKs3Grp6lz585uMsvhw4e7IbQaNWq4iSi9oTnNp6Qz6NTzpGTZvn17t49HM3orKF133XVu+O3BBx9kjiUAABDZYUnDaJ6JEyf6PlY1SrfffrtbMqOApFm6tWRGUwWMHz/+BI8YAADEg4i4NhwAAECkIiwBAAD4ICwBAAD4ICwBAAD4ICwBAAD4ICwBAAD4ICwBAAD4ICwBAAD4ICwBAAD4ICwBAAD4ICwBAAD4ICwBAACEOyx9/fXXFggEcrIrAABAVMmbk53uvPNOy5cvn7Vs2dLatGljNWvWDP+RAQAARGtY+uKLL9zy/vvvW7du3SwlJcWuuOIKa926tVWtWjX8RwkAABBNYSlv3rzWpEkTtxw+fNi+/PJL+89//mMdOnSwkiVL2pVXXmnt2rWz0qVLh/+IAQAAoqXA++DBg/bpp5/aO++8Y++9954VKVLEmjdvbuvXr3e9TFOnTg3fkQIAAERLz9LHH3/shuA++eQTV7t0+eWX29ixY61OnTrBx0ybNs0ee+wxu+mmm8J5vAAAAJEflvr3728tWrRwYahhw4aWmJh41GPOP/98u+WWW8JxjAAAANEVllSjtHfvXvv999+DQendd9+1unXrWvHixd39GjVquAUAACDuapa+/fZbu/TSS23WrFnBdVOmTLFWrVrZokWLwnl8AAAA0ReWHnnkEbv99tutV69ewXWvvPKKde3a1R588MFwHh8AAED0hSWd7aYJKTPSXEtr1qwJx3EBAABEb1gqX768myogI8219Ne//jUcxwUAABC9Bd533XWX3XHHHW4W72rVqrl1q1atsm+++caefvrpcB8jAABAdPUs/e1vf7M33njDXdpk3bp19ssvv1jlypXd5JSa1RsAACCue5bkvPPOswEDBoT3aAAAAGIhLGl+pRdeeMGWLVvmrg0XCATSbdc0AgAAAHEblvr16+eCki6Ym5KSEv6jAgAAiPYZvHWR3AsuuCD8RwQAABDtBd4lS5a0PHlytCsAAEB8DMMNHTrUzeB91llnWb58+dJtL126dLiODwAAIPrCUs+ePd1tt27d3G1CQoK7VaG3fv7hhx/CeYwAAADRFZbmzJkT/iMBAACIQDkqPCpTpoxb9u3bZ99//70VKVLEjhw54obftB4AACCuw9KePXusc+fO9ve//93uvPNO27Fjh40YMcLatGljGzduzPbzHTx40O07f/784LoNGza416hZs6a1atXKPv/886POyNM+NWrUsI4dO7rHh3rxxRetcePGVqtWLRs0aJClpqYGtx04cMCtq1OnjjVq1MjNGQUAABC2sDR8+HBLSkqyr7/+2goUKODWPfjgg3bmmWe6bdmh4HL33Xfb6tWrg+tU+9S9e3crVqyYvf766y6U9ejRwzZt2uS261bb27VrZ6+99pqdccYZ7lp13uSYH3zwgY0ZM8aGDRtmkydPtiVLltijjz4afP6RI0fa8uXL3bYhQ4a4x77//vs5eSsAAECMy1FYmjdvngs4hQoVCq5TYBk4cKAtXLjwuJ9nzZo1dt1117lry4VSCFNPkcJOhQoV7LbbbnM9TApOMmPGDDv//PPt1ltvdZddeeihh1yP1oIFC4IziHfq1MmaNWvm5oK6//773b7qXdLQofYfPHiwuwjwpZdeal27drVp06bl5K0AAAAxLseTJalHKKOdO3da3rzHXzOucFO/fn2bPn16uvXqCdJFepOTk4PrateubYsXLw5u1xCaR71cCj7anpaW5mYXD92uoHXo0CFbuXKlW3SJFg3PhT63nlN1VwAAACd8NpxqhVSjpJ4fTRWg3hr1BmlIS/VFx6tDhw6Zrt+2bZuVKFEi3bqiRYva5s2bj7ld161TkAvdrgBXuHBht12TaaogPX/+/MHtGu7TPrt373Y9ZMdLwSzcFNgSExM1Fqk/OZIbxxVu3jFGw7GeCNoZW+KlnfHUVtoZX+1My2H7czwp5WOPPeZqhtRjo5oifcFfe+21btuJ0nBZaJgR3Vch+LG279+/P3g/s+2qa8psm3jPf7zUgxVu6iVTr9q+1FTbu3dvtvbdl/zf+a5WrVqVrqA9kuXGexiJaGdsiZd2xlNbaWdsWRbmduYoLClcDBgwwO666y5XW6SkVq5cOTvttNPCclAqGlcvTygFmYIFCwa3Zww2uq8aKq/gPLPtCiI61sy2iff8x6t69er/7QUKI28oMDkpyVJSste15A1bVqpUySKdN1yaG+9hJKGdsSVe2hlPbaWd8dXOtP9tPylhKbMibs235Klbt66dCF17TsXfobZv3x4cWtN23c+4vUqVKm64TYFJ91UcLqpRUvgqXry461natWuXW+fVV2lYT0EptGD9eOiDyLVfuoQE/cmRaPofIVffwwhCO2NLvLQzntpKO2NLYpjbmaOwdPPNN2fZ46RAcqIzfGvupGeffdYNqXm9PYsWLXKF2N523fdoyElhTdMLqCZJiVLbVTwuKvxWMKpcubK7r5+1zisC12O1DxcHBgAAYQlLOqMsY7eWTv9/4IEH7Morr7QTVa9ePStVqpSbikDzJ82dO9eWLl3qpgiQa665xiZOnOgClaYHGDt2rJUtWzYYjlQ4ft9991nFihVdb5Qu+qspCjQMJ23btnXrNDfU1q1b3aSU3nMDAACECktXirq6zjnnHFfH9OSTT4bl+Z555hk3PKYi8rffftsFIl1ORRSMnn76aTd3Uvv27d0Qm7Z7F/Rt3bq1m5tJgUlzMWmupb59+wafXyFMUw1oLibNwaQLA1922WUnfNwAACD25KhnKSu67IlO3c8JncEV6qyzzrKpU6dm+fgmTZq4JSvdunVzS2bUw/TII4+4BQAAIOxhST0zGf3555/uem0tW7bMyVMCAADEds+SzkLr37+/m3MJAAAgrsMSxdAAACBe5CgsjRkz5rgfq9P5AQAA4ios/fzzz/b++++7obfzzz/fza+k6QQ0fYAuWutN9uidnQYAABCtcny5E82npNPu8+XLF1yvs8v27Nnj5i8CAACI23mW3n33XevatWu6oCSa+FHbAAAA4jos6dps8+bNO2r9Bx984C6oCwAAENfDcL1797a77rrLPvnkk+D11nQVX12fbfz48eE+RgAAgOjqWbr00ktt5syZ7tpra9eutY0bN7rrualnSbcAAAAW75NSVqpUyc3krYLulJQUy5MnD2e/AQCAmJOjnqVAIGDjxo2z+vXr20UXXWSbNm1yF6rVhWsPHjwY/qMEAACIprA0duxYe/vtt+3hhx920wjI1VdfbV988YWNHDky3McIAAAQXWHpjTfesGHDhlmzZs2CQ28NGzZ08yy999574T5GAACA6ApLO3bssBIlShy1vlChQrZv375wHBcAAED0hqUGDRrYxIkT063bu3evPfbYY66OCQAAIK7D0tChQ92cShp6O3DggN1xxx3WpEkTN4XAPffcE/6jBAAAiKapAzTc9tprr9lXX31l69ats8OHD9s555xjjRo1clMIAAAAxHVYatOmjY0ZM8ZNG6AFAAAgVuWoG0i9R4cOHQr/0QAAAMRCz1LTpk3tlltucVMHlClTJjjXkqdHjx7hOj4AAIDoC0urVq2yatWq2datW90SikueAACAuAxLN954o7vEiYq7//3vf7t1+/fvt4IFC+bm8QEAAERHzdKiRYuOqlO6+OKLbcOGDblxXAAAABHhhM7z1wV1AQAAYhmTIgEAAPggLAEAAITrbLj33nvPUlJSgvePHDliH330kZ1xxhnpHte2bdvsPC0AAED0h6XSpUvbCy+8kG5d0aJFberUqUdNHUBYAgAAcReW/vOf/+TukQAAAEQgapYAAAB8EJYAAAB8EJYAAAB8EJYAAAB8EJYAAACiMSzNnDnTKlWqdNRSuXJlt/3//u//jto2d+7c4P4vvviiNW7c2GrVqmWDBg2y1NTU4LYDBw64dXXq1LFGjRodNSUCAABAjialPJlatWrlwo7n8OHD1qlTJ2vatKm7v3btWnv00UftoosuCj7m9NNPd7cffPCBjRkzxm3XXFADBw50P993331u+8iRI2358uU2efJk27Rpk/Xv39/NI9WyZcuT3k4AABDZIjYsFSxY0C2eCRMmuAv39unTxw4ePGi//vqrVa9e3YoXL37UvlOmTHHBqlmzZu7+/fffb126dLG+ffu655gxY4Y999xzVq1aNbesXr3apk2bRlgCAADRMwwXavfu3S7c9O7d2/Lnz2/r1q1zM4WXK1fuqMempaXZsmXL3BCbp2bNmnbo0CFbuXKlW9RLpeE5T+3atW3JkiXu8i0AAABR0bMU6uWXX7YSJUoEe34UlnSNun79+tmCBQvszDPPtJ49e1qTJk3s999/dzVJ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uSFDhtirr77qanSeffbZYM2OgtawYcPchJN79uyxhg0b2gMPPBB87i5dutiOHTvcpJXqpmvfvr117tz5FLYWAABEqogNS3LeeedlObP2BRdcYG+88UaW+7Zr184tmVFA0ozeobN6AwAARNUwHAAAQCQgLAEAAPggLAEAAPggLAEAAPggLAEAAPggLAEAAPggLAEAAPggLAEAAPggLAEAAPggLAEAAPggLAEAAPggLAEAAPggLAEAAPggLAEAAPggLAEAAPggLAEAAPggLAEAAPggLAEAAPggLAEAAPggLAEAAPggLAEAAPggLAEAAPggLAEAAPggLAEAAPggLAEAAPggLAEAAPggLAEAAPggLAEAAPggLAEAAPggLAEAAPggLAEAAPggLAEAAPggLAEAAPggLAEAAPggLAEAAERrWNqyZYv16tXL6tWrZ40bN7aHHnrIDhw44LYNHz7cKlWqlG6ZOnVqcN/Zs2dbixYtrEaNGta9e3fbuXNncFsgELBRo0ZZgwYN3HOPHDnSjhw5ckraCAAAIltei1AKNApKhQoVsmnTptmePXts0KBBlidPHuvfv7+tXbvWevfubVdffXVwn5SUFHe7dOlSGzx4sN1///1WuXJlGzFihA0cONAmTJjgtk+aNMmFqTFjxtjhw4etb9++VrRoUevSpcspay8AAIhMEduztG7dOlu8eLHrTTrvvPOsTp06Ljwp5IjCUtWqVa148eLBJSkpyW1TD9MVV1xhbdu2dWFJPUeffvqpbdiwwW2fMmWKey49p3qX+vTp4wIZAABA1IQlhZ/nn3/eihUrlm793r173aIhurPPPjvTfZcsWeKCkKdUqVJWunRpt177/fbbb1a3bt3g9tq1a9vGjRtt69atudgiAAAQjSJ2GE7Db6pT8qimSD1G6glSr1JCQoKNHz/ePvvsMytcuLDdcsstwSE5hZ4SJUqkez4Ns23evNm2bdvm7odu9wKZtmfcz09aWpqFm9qZmJiocUj9yZHcOK5w844xGo71RNDO2BIv7YynttLO+GpnWg7bH7FhKaNHH33Uvv/+e3vttddsxYoVLiyVL1/ebrrpJlu4cKHde++9rmbp0ksvtf3791v+/PnT7a/7Bw8edNu8+6HbRNuzY9myZRZuGkrU8OK+1FTXg5Yd+5IT3O2qVassNTXVokFuvIeRiHbGlnhpZzy1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APggLAFRbsCAAVapUqUsl5kzZ7pbXbokt+3YscPee++943qsLuaq44oVe/bssYcffthdJkWXUbjiiivsxRdfdBep9dx888329NNPH/O90OMyfo66lEXHjh3txx9/DD5Oz6XHevTaWf0e6DWyosuCXH311e4aleGkY1uzZk1YnxM4FfKeklcFEDaDBw+23r17u5/fffdde+GFF9zVuT26sGbjxo3d9dxy26hRo9x1mRQU4olCxj/+8Q93/aoRI0a461XpKvC60PKGDRvs3nvvzfZz3nrrrW4Rvad6Hj23rtX3/vvvZ3ndyEGDBlmrVq2OWh96gdWMnn32WWvWrJkVKVLEwql79+52//33u2vvAdGMsAREub/85S9u8X5OTEw86mraJ+sq4vF6QYDRo0db/vz5beLEie5K91KuXDl3hfQ77rjDbrrpJnfF++xITk5O97kpiCkYd+jQwfUuVa5cOdP99DuQnc/7zz//tClTptjs2bMt3Bo0aODC0jfffGN16tQJ+/MDJwvDcECM0/Bb6DCcftZQmXp/NFx09913u14LDfHovr6Mt2zZEtz/o48+cj0V2ta+fXtbsGBBpq+jIaE33njDLRoOEg3BdOnSxWrVqmXVq1d3z7127dpM93/ooYesadOmtmnTJndfX7Dt2rWzCy64wK688kr74IMP0g096vF33XWXO64mTZrYm2++meV7oDbPmDHDWrRo4Y5FPXEKCZ5jvZaWq666yi666CJbv359uufWVdDfeecdu/HGG4NByaPeGg3F6Ur34aBAJgrE4TJr1iwX5EqWLOnua9hWw2fjxo2zunXrWsOGDd17q94stUeh59FHHw3u/9VXX9nf//539/lecskl9sorr6R7fv0uvPzyy2E7XuBUICwBceipp55y9TUTJkywDz/80G644Qa36Itu27Zt9txzz7nHrVy50vr372//93//Z2+//bYLDP/85z/t559/Puo5NWSkAKZFw4Cq1bn99ttdUHjrrbfcc6elpaX7ovVMmjTJPUY9M6VLl3bHcNttt7kAoy/zrl27usCiUOOZNm2aVatWzfWIXHbZZTZkyBD7448/smzzk08+affcc4/rRVHPzH333efWH89r6dgUzPR+nX322eme95dffrF9+/a5sJBRQkKC613xQs6J2Lp1qz3xxBN23nnnWfny5S1c5s2bZxdffHG6dd99950L0PocW7dubUOHDnXvmwKU3pvnn3/evv/+e/d56n1p2bKlC+B33nmn60kKrVNS2Pr888/jttcRsYFhOCAOde7c2fXISJUqVVzPgldnpOChkCQKL9ddd53rbRH1Pi1cuND1FOhLM9Rpp53mhp1E9VEKENdff73rTdKQkqiIWF+0oVRnNWbMGNcDU6FChWAQ0he4hq/krLPOsh9++MEmT54cHM5Rb5GCm+hLWl/mq1evdoXQmdFj1XMlGs5SuFMIOJ7XUhDyessy+v33392tNxQaLgpmqj8ThRLRcWq9X8+SQqNqpUIpgKr3KzMKPQo7oRRsFCz1uakWS+9Fz5493dCflscee8zWrVvnnnf37t1WrFgxV6elRcOFocOA+kz1mI0bN7rtQDQiLAFxSPU0HgWc0GEi3dfQkmjITD0G06dPD24/dOiQNWrU6JivoS9a9VZpCGf58uXuy1VfzPpiDaXQpZ6XM888M7hOj507d64bMgt93dC6n9AenpSUFHd7+PDhLI8nNESdf/75LoD89NNPx/VafsNohQsXDp4Ndyx58+ZNd3acR+u0LZSCpobD9FkorHz55Zf2r3/965hDer169XKBN+PrZmXnzp1HFXYXLVo0GHC9ocXQoOP9jqjt+owVrJ555hk3THfNNdekKyb3nluvQ1hCtCIsAXEoY89EVmdWKVCoR6Zt27bp1ns9SH5UE6QaJ31ZqlemTZs2Lph4vSUeDcupt+mRRx5xZ9N5oUe9WRrGy+pLP1++fEe9pt9QT+jjvcCidh/Pa2WsRQr117/+1fUqrVixwtU8ZaQhTIUe9QrpcZkNFWpdxp4pBQ71col6ivQ5aLhQQ4V+vVgKOt5+x0NDhV7PlV+40uMyo9451Wt9/PHHblGwVnBSHVnoe53V/kA0oGYJQJbUu6LCcH35eou+DD/77LNMHx/6hahCcNXZaHhMdUAKCyrezhhoLr/8ctczoWEiDfF5r6u6qNDXnTNnjgsKOaWhNY96uhSe9Don+loKFiqA13Ce1yPn+c9//uMWDU15Q4eLFy8+6jmWLFliVatWzfI19L4OGzbM9V7pzLtwUrjSMFlOqN5LNUp6zxQKX3/9dVejpTZ7vLmbTtYZmUBuICwB8K1tUk2RAo8KmVVXpCVjkbMnKSnJ1abobDoN0ahuSb0NClw6Gy2zQCGqn9IZVQoE6ulRnZMCzeOPP+7OPlNwUZ2MamROpKhdAU7BZPjw4a5+SnVW4Xgt1fPs3bvXnfmn19B7pfZqiFF1Xueee657nIaoNLSp19etFr23L730knXq1Mn3NXQ86llSWA0Nfpn1UinEZFz0WWRGIW3VqlWWE+r90tmSDz74oGuzwq7q3UKDn55bQ6/e2XZANCIsAchSzZo1beTIke7LXL0nr776quvZ0CnlmVHgUR2QzprTvt6khLqvU9J1Bppm+Q6dmsCj0/kVtDSBoepyxo8f787U0vCdzgLzTt/PKQ0l6jkUaHT83kSR4Xgt9Zqo6F21YH369HHPozoj1Q+FFsKrLkvt03ukmiSFJ51pp/fYG7byo6J01f1kLOAOpeCimrKMi0JuZjRh6bfffms5oVozDbkpIOn90plxGnq99tprg49ZtGiRe32G4RDNEgKczwkgxmn4Sz049evXP9WHEnHUI6azBBXawjUflEdfL5rbSvVoTEqJaEbPEgDEMZ1JqAJt9RqG2xdffOHqtQhKiHaEJQCIczoTUNMnhPtCuprEUmfLAdGOYTgAAAAf9CwBAAD4ICwBAAD4ICwBAAD4ICwBAAD4ICwBAAD4ICwBAAD4ICwBAAD4ICwBAAD4ICwBAABY1v4fQxgKuOOo7SAAAAAASUVORK5CYII=" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "execution_count": 12 + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "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.13.5" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/log-analysis/logs/README.md b/log-analysis/logs/README.md new file mode 100644 index 0000000..04a0ea6 --- /dev/null +++ b/log-analysis/logs/README.md @@ -0,0 +1,15 @@ +# Logs + +To download logs from AWS, using the following Logs Insights query: + +``` +fields @timestamp, @message, @logStream, @log +| filter @message like "normalizer:get_normalized_nodes" +| sort @timestamp desc +| limit 10000 +``` + +(Why 10K? Because that's the maximum it'll let you download.) + +Download the logs in JSON. Some of them will still be truncated, but +at least the JSON will be well-formed.