{
"cells": [
{
"cell_type": "markdown",
"id": "aa9d9193-b135-4658-b03d-1ff38f779549",
"metadata": {},
"source": [
"# Custom Calibrators\n",
"\n",
"The following tutorial demonstrates how one may create a custom calibrator to perform your own calibration workflows."
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "cfd1dd54-8cd4-4ccc-bd85-2fc107f2c89f",
"metadata": {},
"outputs": [],
"source": [
"from matplotlib import pyplot as plt\n",
"import numpy as np\n",
"import pandas as pd\n",
"from scipy.optimize import differential_evolution\n",
"\n",
"from calisim.base import CalibrationWorkflowBase\n",
"from calisim.data_model import (\n",
"\tDistributionModel,\n",
"\tParameterDataType,\n",
"\tParameterSpecification,\n",
")\n",
"from calisim.data_model import ParameterDataType, ParameterEstimateModel\n",
"\n",
"from calisim.example_models import LotkaVolterraModel\n",
"from calisim.optimisation import OptimisationMethod, OptimisationMethodModel\n",
"from calisim.statistics import MeanSquaredError\n",
"\n",
"import warnings\n",
"warnings.filterwarnings(\"ignore\")"
]
},
{
"cell_type": "markdown",
"id": "8117e8e2-0e98-45dd-862a-9557996eccc1",
"metadata": {},
"source": [
"## Creating a Calibrator\n",
"\n",
"Let's create a custom calibrator called `SciPyDEOptimisation` that uses [SciPy's](https://scipy.org/) differential evolution algorithm for calibrating models via black-box optimisation. All custom calibrators must inherit from the `CalibrationWorkflowBase` abstract class.\n",
"\n",
"```python\n",
"class SciPyDEOptimisation(CalibrationWorkflowBase):\n",
" \"\"\"The SciPy differential evolution optimisation method class.\"\"\"\n",
"```\n",
"\n",
"The `CalibrationWorkflowBase` class defines three abstract methods which must be implemented by your calibrator:\n",
"\n",
"- `specify()`: Specify the parameters of the model calibration procedure.\n",
"- `execute()`: Execute the simulation calibration procedure.\n",
"- `analyze()`: Analyze the results of the simulation calibration procedure.\n",
"\n",
"### Specify\n",
"\n",
"Let's first define `specify()`:\n",
"\n",
"```python\n",
"def specify(self) -> None:\n",
" \"\"\"Specify the parameters of the model calibration procedure.\"\"\"\n",
" self.names = []\n",
" self.data_types = []\n",
" self.bounds = []\n",
" \n",
" parameter_spec = self.specification.parameter_spec.parameters\n",
" for spec in parameter_spec:\n",
" parameter_name = spec.name\n",
" data_type = spec.data_type\n",
" \n",
" if data_type == ParameterDataType.CONSTANT:\n",
" parameter_value = spec.parameter_value\n",
" self.constants[parameter_name] = parameter_value\n",
" continue\n",
" elif data_type == ParameterDataType.CATEGORICAL:\n",
" bounds = self.set_categorical_parameter(spec)\n",
" else:\n",
" bounds = self.get_parameter_bounds(spec) \n",
" \n",
" self.names.append(parameter_name)\n",
" self.data_types.append(data_type)\n",
" self.bounds.append(bounds)\n",
"```\n",
"\n",
"We can see that our calibrator loops through each parameter specification within a `ParameterSpecification` collection object. \n",
"\n",
"`CalibrationWorkflowBase` has a `constants` dictionary for storing **CONSTANT** parameter data types. `CalibrationWorkflowBase` defines a method called `set_categorical_parameter()` for dealing with **CATEGORICAL** data, which returns lower and upper parameter bounds. For **CONTINUOUS** and **DISCRETE** data, `CalibrationWorkflowBase` defines a method called `get_parameter_bounds()` which returns the lower and upper parameter bounds. \n",
"\n",
"Finally, we store the parameter names, data types, and bounds within three lists.\n",
"\n",
"### Execute\n",
"\n",
"Let's next define `execute()`:\n",
"\n",
"```python\n",
"def execute(self) -> None:\n",
" \"\"\"Execute the simulation calibration procedure.\"\"\"\n",
" optimisation_kwargs = self.get_calibration_func_kwargs()\n",
"\n",
" self.history = []\n",
" self.eval_count = 0\n",
" output_labels = self.specification.output_labels\n",
" if output_labels is None:\n",
" output_labels = [\"target\"]\n",
" \n",
" def target_function(X: np.ndarray) -> np.ndarray:\n",
" X_dict = {\n",
" name: X[i]\n",
" for i, name in enumerate(self.names)\n",
" }\n",
" X = [X]\n",
" \n",
" Y = self.calibration_func_wrapper(\n",
" X,\n",
" self,\n",
" self.specification.observed_data,\n",
" self.names,\n",
" self.data_types,\n",
" optimisation_kwargs,\n",
" )\n",
"\n",
" X_dict[\"eval_count\"] = self.eval_count\n",
" self.eval_count += 1\n",
" X_dict[output_labels[0]] = Y\n",
" self.history.append(X_dict)\n",
" \n",
" return Y\n",
" \n",
" n_iterations = self.specification.n_iterations\n",
" verbose = self.specification.verbose\n",
" n_jobs = self.specification.n_jobs\n",
" random_seed = self.specification.random_seed\n",
"\n",
" method_kwargs = self.specification.method_kwargs\n",
" if method_kwargs is None:\n",
" method_kwargs = {}\n",
" \n",
" self.study = differential_evolution(\n",
" target_function,\n",
" self.bounds,\n",
" maxiter=n_iterations,\n",
" disp=verbose,\n",
" workers=n_jobs,\n",
" seed=random_seed,\n",
" **method_kwargs\n",
" )\n",
"```\n",
"\n",
"The `CalibrationWorkflowBase` class defines a getter method called `get_calibration_func_kwargs()` that retrieves the `calibration_func_kwargs` values supplied to the `OptimisationMethodModel` object's constructor. This allows us to include custom arguments within our objective function. \n",
"\n",
"Our `SciPyDEOptimisation` class will store the trial history and number of objective function evaluations using two properties (`self.history` and `self.eval_count`). We specify the names of our objectives using the `output_labels` field within our `OptimisationMethodModel` specification.\n",
"\n",
"We define a function called `target_function()` which will be executed by the differential evolution algorithm. This function calls the `calibration_func_wrapper()` method, which is defined by our `CalibrationWorkflowBase` base class. `calibration_func_wrapper()` will perform some data preprocessing and call our objective function under the hood.\n",
"\n",
"We retrieve several `OptimisationMethodModel` specification values:\n",
"\n",
"- `n_iterations`: The number of trial iterations for optimisation.\n",
"- `verbose`: The verbosity of the calibration procedure. How much detail is provided in the outputs.\n",
"- `n_jobs`: The number of jobs to run for parallel processing.\n",
"- `random_seed`: The random seed for replicability due to stochasticity.\n",
"- `method_kwargs`: Named arguments to pass to the calibration procedure when the default values are insufficient.\n",
"\n",
"Finally, we execute the `differential_evolution()` algorithm to perform calibration.\n",
"\n",
"### Analyze\n",
"\n",
"We must next define `analyze()`:\n",
"\n",
"```python\n",
"def analyze(self) -> None:\n",
" \"\"\"Analyze the results of the simulation calibration procedure.\"\"\"\n",
" task, time_now, experiment_name, outdir = self.prepare_analyze()\n",
"\n",
" output_labels = self.specification.output_labels\n",
" if output_labels is None:\n",
" output_labels = [\"target\"]\n",
" \n",
" trials_df = pd.DataFrame(self.history)\n",
" trials_df_best = trials_df.sort_values(output_labels).head(1)\n",
" for col in trials_df_best.columns:\n",
" if col in output_labels or col == \"eval_count\":\n",
" continue\n",
" estimate = trials_df_best[col].item()\n",
" parameter_estimate = ParameterEstimateModel(name=col, estimate=estimate)\n",
" self.add_parameter_estimate(parameter_estimate)\n",
"\n",
" for output_label in output_labels:\n",
" ax = trials_df.plot.scatter(\"eval_count\", output_label, figsize=self.specification.figsize)\n",
" fig = ax.get_figure()\n",
" ax.set_title(f\"Optimisation history: {output_label}\")\n",
" \n",
" self.present_fig(\n",
" fig, outdir, time_now, task, experiment_name, f\"plot-optimization-history-{output_label}\"\n",
" )\n",
"\n",
" fig, axes = plt.subplots(nrows = len(self.names), figsize=self.specification.figsize)\n",
" for i, name in enumerate(self.names):\n",
" trials_df.plot.scatter(name, \"eval_count\", ax=axes[i])\n",
" axes[i].invert_yaxis()\n",
" axes[i].set_title(f\"Parameter: {name}\")\n",
" self.present_fig(\n",
" fig, outdir, time_now, task, experiment_name, \"plot-slice\"\n",
" )\n",
" \n",
" if outdir is None:\n",
" return\n",
" \n",
" self.to_csv(trials_df, \"trials\")\n",
"\n",
"```\n",
"\n",
"The `prepare_analyze()` method retrieves several values which are needed to store data to file.\n",
"\n",
"From our `self.history` property, we can construct a trial history [Pandas dataframe](https://pandas.pydata.org/). We retrieve the best trial from the dataframe, and thereafter save the optimised parameter estimates within `ParameterEstimateModel` objects, which are then added to a list of parameter estimates via the `add_parameter_estimate()` method.\n",
"\n",
"We loop through each named objective (`output_labels`) and construct a scatter plot visualising the relationship between the objective values and the trial evaluation number. The `CalibrationWorkflowBase` class defines the `present_fig()` method which will either save the scatter plot to file or directly render and open the plot to the user's screen. We also loop through each named parameter (`self.names`) and similarly create scatter plots to visualise the relationship between parameter values and the trial evaluation number. \n",
"\n",
"Finally, if the `outdir` directory is provided, we save the trial history dataframe as a `csv` file.\n",
"\n",
"Let's put all of this code together into one `SciPyDEOptimisation` class: "
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "12eb9d59-0524-4443-8a05-605325fdfb6b",
"metadata": {},
"outputs": [],
"source": [
"class SciPyDEOptimisation(CalibrationWorkflowBase):\n",
" \"\"\"The SciPy differential evolution optimisation method class.\"\"\"\n",
"\n",
" def specify(self) -> None:\n",
" \"\"\"Specify the parameters of the model calibration procedure.\"\"\"\n",
" self.names = []\n",
" self.data_types = []\n",
" self.bounds = []\n",
" \n",
" parameter_spec = self.specification.parameter_spec.parameters\n",
" for spec in parameter_spec:\n",
" parameter_name = spec.name\n",
" data_type = spec.data_type\n",
" \n",
" if data_type == ParameterDataType.CONSTANT:\n",
" parameter_value = spec.parameter_value\n",
" self.constants[parameter_name] = parameter_value\n",
" continue\n",
" elif data_type == ParameterDataType.CATEGORICAL:\n",
" bounds = self.set_categorical_parameter(spec)\n",
" else:\n",
" bounds = self.get_parameter_bounds(spec) \n",
" \n",
" self.names.append(parameter_name)\n",
" self.data_types.append(data_type)\n",
" self.bounds.append(bounds)\n",
"\n",
" def execute(self) -> None:\n",
" \"\"\"Execute the simulation calibration procedure.\"\"\"\n",
" optimisation_kwargs = self.get_calibration_func_kwargs()\n",
"\n",
" self.history = []\n",
" self.eval_count = 0\n",
" output_labels = self.specification.output_labels\n",
" if output_labels is None:\n",
" output_labels = [\"target\"]\n",
" \n",
" def target_function(X: np.ndarray) -> np.ndarray:\n",
" X_dict = {\n",
" name: X[i]\n",
" for i, name in enumerate(self.names)\n",
" }\n",
" X = [X]\n",
" \n",
" Y = self.calibration_func_wrapper(\n",
" X,\n",
" self,\n",
" self.specification.observed_data,\n",
" self.names,\n",
" self.data_types,\n",
" optimisation_kwargs,\n",
" )\n",
"\n",
" X_dict[\"eval_count\"] = self.eval_count\n",
" self.eval_count += 1\n",
" X_dict[output_labels[0]] = Y\n",
" self.history.append(X_dict)\n",
" \n",
" return Y\n",
" \n",
" n_iterations = self.specification.n_iterations\n",
" verbose = self.specification.verbose\n",
" n_jobs = self.specification.n_jobs\n",
" random_seed = self.specification.random_seed\n",
"\n",
" method_kwargs = self.specification.method_kwargs\n",
" if method_kwargs is None:\n",
" method_kwargs = {}\n",
" \n",
" self.study = differential_evolution(\n",
" target_function,\n",
" self.bounds,\n",
" maxiter=n_iterations,\n",
" disp=verbose,\n",
" workers=n_jobs,\n",
" seed=random_seed,\n",
" **method_kwargs\n",
" )\n",
"\n",
" def analyze(self) -> None:\n",
" \"\"\"Analyze the results of the simulation calibration procedure.\"\"\"\n",
" task, time_now, experiment_name, outdir = self.prepare_analyze()\n",
"\n",
" output_labels = self.specification.output_labels\n",
" if output_labels is None:\n",
" output_labels = [\"target\"]\n",
" \n",
" trials_df = pd.DataFrame(self.history)\n",
" trials_df_best = trials_df.sort_values(output_labels).head(1)\n",
" for col in trials_df_best.columns:\n",
" if col in output_labels or col == \"eval_count\":\n",
" continue\n",
" estimate = trials_df_best[col].item()\n",
" parameter_estimate = ParameterEstimateModel(name=col, estimate=estimate)\n",
" self.add_parameter_estimate(parameter_estimate)\n",
"\n",
" for output_label in output_labels:\n",
" ax = trials_df.plot.scatter(\"eval_count\", output_label, figsize=self.specification.figsize)\n",
" fig = ax.get_figure()\n",
" ax.set_title(f\"Optimisation history: {output_label}\")\n",
" \n",
" self.present_fig(\n",
" fig, outdir, time_now, task, experiment_name, f\"plot-optimization-history-{output_label}\"\n",
" )\n",
"\n",
" fig, axes = plt.subplots(nrows = len(self.names), figsize=self.specification.figsize)\n",
" for i, name in enumerate(self.names):\n",
" trials_df.plot.scatter(name, \"eval_count\", ax=axes[i])\n",
" axes[i].invert_yaxis()\n",
" axes[i].set_title(f\"Parameter: {name}\")\n",
" self.present_fig(\n",
" fig, outdir, time_now, task, experiment_name, \"plot-slice\"\n",
" )\n",
" \n",
" if outdir is None:\n",
" return\n",
" \n",
" self.to_csv(trials_df, \"trials\")"
]
},
{
"cell_type": "markdown",
"id": "66d1536d-48cc-42dc-8f28-0bc67aac1dad",
"metadata": {},
"source": [
"## Performing Calibration\n",
"\n",
"That covers the end-to-end process of creating a custom calibrator. Let's try calibrating an example model: `LotkaVolterraModel`."
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "311b2b8d-6ed1-435f-9142-4db763a4901f",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
year
\n",
"
lynx
\n",
"
hare
\n",
"
\n",
" \n",
" \n",
"
\n",
"
0
\n",
"
1900.0
\n",
"
4.0
\n",
"
30.0
\n",
"
\n",
"
\n",
"
1
\n",
"
1901.0
\n",
"
6.1
\n",
"
47.2
\n",
"
\n",
"
\n",
"
2
\n",
"
1902.0
\n",
"
9.8
\n",
"
70.2
\n",
"
\n",
"
\n",
"
3
\n",
"
1903.0
\n",
"
35.2
\n",
"
77.4
\n",
"
\n",
"
\n",
"
4
\n",
"
1904.0
\n",
"
59.4
\n",
"
36.3
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" year lynx hare\n",
"0 1900.0 4.0 30.0\n",
"1 1901.0 6.1 47.2\n",
"2 1902.0 9.8 70.2\n",
"3 1903.0 35.2 77.4\n",
"4 1904.0 59.4 36.3"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"model = LotkaVolterraModel()\n",
"observed_data = model.get_observed_data()\n",
"observed_data.head(5)"
]
},
{
"cell_type": "markdown",
"id": "7500f441-8605-4571-b09e-02291d1f79c5",
"metadata": {},
"source": [
"We'll define our parameter specification containing parameter names, data types, distribution types, and bounds."
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "55bed38a-3819-49ca-983d-cfc98a8c8e58",
"metadata": {},
"outputs": [],
"source": [
"parameter_spec = ParameterSpecification(\n",
"\tparameters=[\n",
"\t\tDistributionModel(\n",
"\t\t\tname=\"alpha\",\n",
"\t\t\tdistribution_name=\"uniform\",\n",
"\t\t\tdistribution_args=[0.45, 0.55],\n",
"\t\t\tdata_type=ParameterDataType.CONTINUOUS,\n",
"\t\t),\n",
"\t\tDistributionModel(\n",
"\t\t\tname=\"beta\",\n",
"\t\t\tdistribution_name=\"uniform\",\n",
"\t\t\tdistribution_args=[0.02, 0.03],\n",
"\t\t\tdata_type=ParameterDataType.CONTINUOUS,\n",
"\t\t),\n",
"\t]\n",
")"
]
},
{
"cell_type": "markdown",
"id": "1b724352-0b89-4224-b2fb-db68a74eb053",
"metadata": {},
"source": [
"We'll define our objective function. We aim to minimise the discrepancy between simulated and observed data using the `MeanSquaredError` metric as our loss."
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "93f3c7fe-f043-4f49-8fa2-4ca8e6f6ea36",
"metadata": {},
"outputs": [],
"source": [
"def objective(\n",
"\tparameters: dict, simulation_id: str, observed_data: np.ndarray | None, t: pd.Series\n",
") -> float | list[float]:\n",
"\tsimulation_parameters = dict(h0=34.0, l0=5.9, t=t, gamma=0.84, delta=0.026)\n",
"\n",
"\tfor k in [\"alpha\", \"beta\"]:\n",
"\t\tsimulation_parameters[k] = parameters[k]\n",
"\n",
"\tsimulated_data = model.simulate(simulation_parameters).lynx.values\n",
"\tmetric = MeanSquaredError()\n",
"\tdiscrepancy = metric.calculate(observed_data, simulated_data)\n",
"\treturn discrepancy"
]
},
{
"cell_type": "markdown",
"id": "4d62ba85-2849-457f-8454-1293436ea79f",
"metadata": {},
"source": [
"We'll define the specification for the differential evolution optimisation procedure. This will include the number of opimisation iterations (`n_iterations`), the name of the optimisation objectives (`output_labels`), and the named arguments to pass to SciPy's differential evolution function (`method_kwargs`)."
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "94a06096-fec2-4482-bbfe-232790afb5ae",
"metadata": {},
"outputs": [],
"source": [
"specification = OptimisationMethodModel(\n",
"\texperiment_name=\"scipy_optimisation\",\n",
"\tparameter_spec=parameter_spec,\n",
"\tobserved_data=observed_data.lynx.values,\n",
"\tn_iterations=100,\n",
"\toutput_labels=[\"Lynx\"],\n",
"\tmethod_kwargs=dict(\n",
"\t\tinit='latinhypercube',\n",
" popsize=15\n",
"\t),\n",
"\tcalibration_func_kwargs=dict(t=observed_data.year),\n",
")\n"
]
},
{
"cell_type": "markdown",
"id": "0bf51928-5267-4460-ad49-e160ffb78902",
"metadata": {},
"source": [
"Finally, let's run the calibration workflow by instantiating an `OptimisationMethod` calibrator, and subsequently calling the `specify()`, `execute()`, and `analyze()` methods."
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "134dbf48-c8eb-478e-ace8-3b9e09bad186",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAASmCAYAAAD/KRjlAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAChKUlEQVR4nOzdfXjddX0//tchjaVJycEmoYCDJjUZeAMz4oo1GAVxTME7cEiGFrDeYztBdLJrInjX4Q1uxnnDhkAVM28ub6b+JpcyJDMyQNc4v1NrYpLKBMpJaxOTSIvh/P5wjT29SdM0+XzOzeNxXbku+/6cnPM6ycm5PE/er9c7k8/n8wEAAAAACToi7QIAAAAAqDxCKQAAAAASJ5QCAAAAIHFCKQAAAAASJ5QCAAAAIHFCKQAAAAASJ5QCAAAAIHFCKQAAAAASJ5QCAAAAIHFCKQAgEbfccktkMpkYHh6et/u89tprI5PJzNv9FfvjDg8PRyaTiQ996EMHvW1aNQIAzJZQCgAq1P/8z//EK1/5ynjCE54QixcvjuOPPz4uvvji+J//+Z/Dut/3v//98dWvfnV+ikzR5ORkXHvttfHd73437VIS88ADD8S1114bfX19aZcyK5lMJt785jenXQYAMEdCKQCoQF/+8pfj6U9/etxxxx1x2WWXxcc//vFYu3Zt3HnnnfH0pz89vvKVr8z5vg8USr3qVa+K3/72t7FixYrDqLzQ3/7t38Zvf/vbebu/PU1OTsZ1112331BqIR93vsylxgceeCCuu+66kgmlAIDStijtAgCAZP3iF7+IV73qVbFy5cro6emJxsbG6Wt/9Vd/Fc9+9rPjVa96Vfz3f/93rFy5ct4et6qqKqqqqubt/iIiFi1aFIsWJf9/Z9J63ENRTDVOTExEbW1t2mUAAEXGTikAqDAf/OAHY3JyMm688caCQCoioqGhIT71qU/FxMREfOADH5he3z2f6Gc/+1lceOGFUVdXF/X19fFXf/VX8cgjj0zfLpPJxMTERNx6662RyWQik8nEpZdeGhH7nynV1NQU5513Xnz3u9+NZzzjGbFkyZI45ZRTpncnffnLX45TTjkljjzyyDjttNNi06ZNBfXub27St7/97TjjjDPi6KOPjqVLl8ZJJ50Uf/M3fzN9fdeuXXHNNdfEaaedFtlsNmpra+PZz3523HnnndO3GR4env7ZXHfdddPP5dprrz3g4/7ud7+L97znPfHEJz4xFi9eHE1NTfE3f/M3sXPnzoLb7X7O3/ve92LVqlVx5JFHxsqVK2Pjxo0H+pXt14033jj9WH/6p38a991332H9bL773e/Gn/7pn0ZExGWXXTb9nG+55Zbp7//iF78Yp512WixZsiQaGhrila98ZfzqV78qeIxLL700li5dGr/4xS/ihS98YRx11FFx8cUXx7ve9a6orq6OXC63z3N53eteF0cffXQ88sgj8eCDD8bPfvazePTRRw/p57GnwcHByGQy8ZGPfGSfa9///vcjk8lEd3d3wc9pYGAgLr300jj66KMjm83GZZddFpOTk9Pfd/PNN0cmk4lPf/rTBff3/ve/PzKZTPx//9//N+d6AaBSCaUAoMJ8/etfj6ampnj2s5+93+sdHR3R1NQU3/zmN/e5duGFF8YjjzwSGzZsiBe+8IXx0Y9+NF73utdNX//MZz4Tixcvjmc/+9nxmc98Jj7zmc/E61//+hnrGRgYiL/8y7+MF73oRbFhw4b49a9/HS960YvitttuiyuuuCJe+cpXxnXXXRe/+MUv4sILL4zHHnvsgPf1P//zP3HeeefFzp07493vfnd8+MMfjhe/+MXR29s7fZuxsbH453/+53juc58b119/fVx77bWRy+XinHPOmW5ba2xsjE984hMREfGyl71s+rmcf/75B3zs17zmNXHNNdfE05/+9PjIRz4Sz3nOc2LDhg1x0UUX7fc5v/zlL4/nP//58eEPfzge//jHx6WXXjrreV6f+9zn4oMf/GC8/vWvj/e+970xPDwc559//oxBzsF+Nk960pPi3e9+d0T8PiTa/Zw7Ojoi4veh4oUXXhhVVVWxYcOGeO1rXxtf/vKX44wzzogdO3YUPNbvfve7OOecc+KYY46JD33oQ3HBBRfEq171qvjd734Xn//85wtuu2vXrvjSl74UF1xwQRx55JFx9dVXx5Oe9KR9wq5DsXLlymhvb4/bbrttn2u33XZbHHXUUfGSl7ykYP3CCy+M3/zmN7Fhw4a48MIL45Zbbonrrrtu+vpll10W5513Xlx55ZVx//33R0TEj3/847juuuti7dq18cIXvnDO9QJAxcoDABVjx44d+YjIv+QlL5nxdi9+8YvzEZEfGxvL5/P5/Lve9a58RORf/OIXF9zuTW96Uz4i8j/60Y+m12pra/OXXHLJPvd588035yMiPzQ0NL22YsWKfETkv//970+v3X777fmIyC9ZsiS/ZcuW6fVPfepT+YjI33nnndNru+va7SMf+Ug+IvK5XO6Az+13v/tdfufOnQVrv/71r/PLly/Pv/rVr55ey+Vy+YjIv+td79rnPvZ+3L6+vnxE5F/zmtcU3O6qq67KR0T+3//93/d5zj09PdNrDz/8cH7x4sX5t771rQesO5/P54eGhvIRka+vr89v3759ev1rX/taPiLyX//61w9Y42x+Nvfdd18+IvI333xzwfquXbvyxxxzTP6pT31q/re//e30+je+8Y18ROSvueaa6bVLLrkkHxH5d7zjHfvc/+rVq/Onn356wdqXv/zlgt/r7u/f83VyIBGRv/zyy/d7bffr5ac//WnB82hoaCh4fe7+Oe35u8/n8/mXvexl+fr6+oK1Bx98ML9s2bL885///PzOnTvzbW1t+RNPPDE/Ojp60FoBgH3ZKQUAFeQ3v/lNREQcddRRM95u9/WxsbGC9csvv7zg3+vWrYuIOKzWpSc/+cmxevXq6X+ffvrpERFx1llnxYknnrjP+uDg4AHv6+ijj46IiK997WsH3FFVVVUVj3vc4yIi4rHHHovt27fH7373u3jGM54R//Vf/zWn57D7+V955ZUF629961sjIvbZdfbkJz+5YKdaY2NjnHTSSTM+tz294hWviMc//vHT/959X4f7szmQH/zgB/Hwww/Hm970pjjyyCOn188999w4+eST97ur7o1vfOM+a2vWrIl77rknfvGLX0yv3XbbbXHCCSfEc57znIj4/Y6sfD4fTU1Nh1Tj3i688MI48sgjC3ZL3X777TEyMhKvfOUr97n9G97whoJ/P/vZz45t27YV/A0ce+yx8Y//+I/x7W9/O5797GdHX19ffPrTn466urrDqhUAKpVQCgAqyO6waXc4dSAHCq9aW1sL/v3EJz4xjjjiiII5UYdqz+ApIiKbzUZExAknnLDf9V//+tcHvK9XvOIV0d7eHq95zWti+fLlcdFFF8UXvvCFfUKYW2+9NU499dQ48sgjo76+PhobG+Ob3/xmjI6Ozuk5bNmyJY444ohoaWkpWD/22GPj6KOPji1bthSs7/2cIyIe//jHz/jcZvr+3QHVfPxs9md3/SeddNI+104++eR9nt+iRYvij/7oj/Zbw+LFi6eDotHR0fjGN74RF1988T7zrw7X0UcfHS960Yvic5/73PTabbfdFk94whPirLPO2uf2s/2ZXnTRRXHuuefGvffeG6997Wvjec973rzWDQCVRCgFABUkm83GcccdF//93/894+3++7//O57whCccdAfIfAQJBzqR70Dr+Xz+gPe1ZMmS6Onpie985zvTJwi+4hWviOc///kxNTUVERGf/exn49JLL40nPvGJcdNNN8W3vvWt+Pa3vx1nnXXWIe8g2ttsfx5zeW6H+/2z+dnMl8WLF8cRR+z7fzMf//jHx3nnnTcdSn3pS1+KnTt37nfn0nxYs2ZNDA4Oxve///34zW9+E//6r/8anZ2d+61ttj/Tbdu2xQ9+8IOIiPjJT35y2K8ZAKhkQikAqDDnnXdeDA0Nxfe+9739Xv+P//iPGB4ejvPOO2+fa/39/QX/HhgYiMcee6yg1Wq+d7wcqiOOOCKe97znxQ033BA/+clP4n3ve1/8+7//+/Tpel/60pdi5cqV8eUvfzle9apXxTnnnBNnn312wSmCEYf2PFasWBGPPfbYPj+frVu3xo4dO2LFihWH/8TmwcF+Ngd6zrvr37x58z7XNm/efEjPb82aNfHzn/887rvvvrjtttuira0tnvKUp8zh2Rzcn//5n0djY2Pcdttt8ZWvfCUmJyfjVa961WHd5+WXXz49EP173/te/P3f//38FAsAFUgoBQAV5m1ve1ssWbIkXv/618e2bdsKrm3fvj3e8IY3RE1NTbztbW/b53v/8R//seDfXV1dERHxghe8YHqttrZ2n9PYkrJ9+/Z91p72tKdFRMTOnTsj4g87YvbcAXPPPffE3XffXfB9NTU1ERGzei67T17bO6C44YYbIuL3s5fSNpufTW1tbUTs+5yf8YxnxDHHHBOf/OQnp28bEfFv//Zv8dOf/vSQnt8LXvCCaGhoiOuvvz7uuuuufXZJPfjgg/Gzn/1sxpMEZ2vRokXR2dkZX/jCF+KWW26JU045JU499dQ539+XvvSl+PznPx9/93d/F+94xzvioosuir/927+Nn//854ddKwBUokVpFwAAJKu1tTVuvfXWuPjii+OUU06JtWvXRnNzcwwPD8dNN90UIyMj0d3dHU984hP3+d6hoaF48YtfHH/+538ed999d3z2s5+Nv/zLv4w/+ZM/mb7Naaed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XHfddS1u+tDvkKxYfU6SsWzZstBrrBxbP/vsM2PatGlG27ZtjeLiYuO2224zmpqaHF4a+IVZv9uzZ48xfvx4o3PnzkZ+fr4xYMAA42c/+5lRV1cX8Tn0OyTjxz/+sVFaWmq0adPG6Nq1qzF58uRQQMow2NfBXMAwDMO5vCwAAAAAAACAmlIAAAAAAABwAUEpAAAAAAAAOI6gFAAAAAAAABxHUAoAAAAAAACOIygFAAAAAAAAxxGUAgAAAAAAgOMISgEAAAAAAMBxBKUAAAAAAADgOIJSAAAADlq+fLk6derkdjMAAABcR1AKAAAACfXr10+PPPKI280AAABZhqAUAAAAAAAAHEdQCgAAIExzc7MqKipUVlamtm3basSIEXruuefU3Nys3r176/HHH494/ebNm5WXl6fdu3dLkh5++GENGzZM7du3V58+ffSTn/xEDQ0NKbfnlVde0ejRo3XmmWequLhYV1xxRei5L774QnPmzFFRUZHatWunadOmadu2baHnf/WrX+m8886L+LxHHnlE/fr1C/19zTXXaMaMGXrooYfUo0cPdenSRfPnz1dTU5MkacKECdq9e7duueUWBQIBBQKBlJcFAAAgHEEpAACAMBUVFVqxYoWeeOIJffzxx7rlllv0ox/9SP/zP/+jWbNm6emnn454/VNPPaVx48aptLRUkpSXl6dHH31UH3/8sZ588km98847uv3221Nqy2uvvaYrrrhC3/nOd7R582atWrVKY8aMCT1/zTXXaOPGjXr55Ze1bt06GYah73znO6GAklWVlZXasWOHKisr9eSTT2r58uVavny5JOn5559X7969dd9992nfvn3at29fSssCAAAQ7Qy3GwAAAOAVJ06c0G9/+1u9/fbbKi8vlyT1799f7777rn73u9/p9ttv16JFi7Rnzx717dtXzc3NeuaZZ/TLX/4y9Bk333xz6P/9+vXT/fffrxtuuEGPPfZY0u35zW9+o5kzZ+ree+8NPTZixAhJ0rZt2/Tyyy9r7dq1uuiiiyR9FSDr06ePXnzxRf3whz+0/D1FRUX6j//4D7Vq1UrnnHOOLrvsMq1atUrXXXedOnfurFatWqljx44qKSlJehkAAADiIVMKAADga9u3b1djY6O+/e1vq0OHDqF/K1as0I4dO3Teeedp8ODBoWypqqoqHThwICIA9Pbbb2vy5Mnq1auXOnbsqH/6p3/SoUOH1NjYmHR7tmzZosmTJ8d87tNPP9UZZ5yhsWPHhh7r0qWLBg0apE8//TSp7zn33HPVqlWr0N89evTQgQMHkm4vAABAMghKAQAAfC1Y++m1117Tli1bQv8++eQTPffcc5Kk2bNnh4JSTz/9tKZOnaouXbpIkj777DN997vf1fDhw/Xf//3f2rRpk5YsWSJJOnnyZNLtadu2bVrLk5eXJ8MwIh6LNbSvdevWEX8HAgE1Nzen9d0AAABmCEoBAAB8bciQIcrPz9eePXs0YMCAiH99+vSRJF199dXaunWrNm3apOeee06zZ88OvX/Tpk1qbm7WokWLdOGFF+rss8/W3r17U27P8OHDtWrVqpjPDR48WKdOndL69etDjx06dEjV1dUaMmSIJKlr166qqamJCExt2bIl6Xa0adNGp0+fTvp9AAAAiVBTCgAA4GsdO3bUwoULdcstt6i5uVkXX3yx6urqtHbtWhUUFGju3Lnq16+fLrroIs2bN0+nT5/W9773vdD7BwwYoKamJi1evFiXX3651q5dqyeeeCLl9txzzz2aPHmyzjrrLM2cOVOnTp3S66+/rp///OcaOHCgpk+fruuuu06/+93v1LFjR91xxx3q1auXpk+fLumrmfNqa2v14IMP6gc/+IHefPNNvfHGGyooKEiqHf369dOaNWs0c+ZM5efnq7i4OOVlAgAACCJTCgAAIMyvf/1r3XXXXaqoqNDgwYM1depUvfbaayorKwu9Zvbs2frzn/+sK664ImKI3YgRI/Twww/rX/7lXzR06FA99dRTqqioSLktEyZM0LPPPquXX35Z5513niZNmqQNGzaEnl+2bJlGjRql7373uyovL5dhGHr99ddDw/EGDx6sxx57TEuWLNGIESO0YcMGLVy4MOl23Hffffrss8901llnqWvXrikvDwAAQLiAEV1oAAAAAAAAAMgwMqUAAAAAAADgOIJSAAAALjn33HPVoUOHmP+eeuopt5sHAACQUQzfAwAAcMnu3bvV1NQU87nu3burY8eODrcIAADAOQSlAAAAAAAA4DiG7wEAAAAAAMBxBKUAAAAAAADgOIJSAAAAAAAAcBxBKQAAAAAAADiOoBQAAAAAAAAcR1AKAAAAAAAAjiMoBQAAAAAAAMcRlAIAAAAAAIDj/j+zasAk8MZI8wAAAABJRU5ErkJggg==",
"text/plain": [
"