{
"cells": [
{
"cell_type": "markdown",
"id": "5cbc8640",
"metadata": {},
"source": [
"### Adaptive time steps (variable time resolution) for reaction `A <-> B`,\n",
"with 1st-order kinetics in both directions, taken to equilibrium\n",
"\n",
"This is a repeat of the experiment _\"react_2_a\"_ , but with adaptive variable time steps\n",
"\n",
"LAST REVISED: Dec. 3, 2023"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "3792d78d-7429-4221-a263-57b07d77b5bc",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Added 'D:\\Docs\\- MY CODE\\BioSimulations\\life123-Win7' to sys.path\n"
]
}
],
"source": [
"import set_path # Importing this module will add the project's home directory to sys.path"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "a29db1c7",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"from experiments.get_notebook_info import get_notebook_basename\n",
"\n",
"from src.modules.reactions.reaction_dynamics import ReactionDynamics\n",
"from src.modules.visualization.graphic_log import GraphicLog"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "121fdfdd",
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"-> Output will be LOGGED into the file 'react_2_b.log.htm'\n"
]
}
],
"source": [
"# Initialize the HTML logging (for the graphics)\n",
"log_file = get_notebook_basename() + \".log.htm\" # Use the notebook base filename for the log file\n",
"\n",
"# Set up the use of some specified graphic (Vue) components\n",
"GraphicLog.config(filename=log_file,\n",
" components=[\"vue_cytoscape_1\"],\n",
" extra_js=\"https://cdnjs.cloudflare.com/ajax/libs/cytoscape/3.21.2/cytoscape.umd.js\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "ac9eea69-174c-43e5-9eed-443cbc5e2ba7",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "10c710ac",
"metadata": {},
"source": [
"# PART 1 - RUN THE SIMULATION"
]
},
{
"cell_type": "markdown",
"id": "e0529a0c",
"metadata": {},
"source": [
"### Initialize the System"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "78077d8c",
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Number of reactions: 1 (at temp. 25 C)\n",
"0: A <-> B (kF = 3 / kR = 2 / delta_G = -1,005.1 / K = 1.5) | 1st order in all reactants & products\n",
"Set of chemicals involved in the above reactions: {'B', 'A'}\n"
]
}
],
"source": [
"# Instantiate the simulator and specify the chemicals\n",
"dynamics = ReactionDynamics(names=[\"A\", \"B\"])\n",
"\n",
"# Reaction A <-> B , with 1st-order kinetics in both directions\n",
"dynamics.add_reaction(reactants=[\"A\"], products=[\"B\"], \n",
" forward_rate=3., reverse_rate=2.)\n",
"\n",
"dynamics.describe_reactions()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "373afeb1",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[GRAPHIC ELEMENT SENT TO LOG FILE `react_2_b.log.htm`]\n"
]
}
],
"source": [
"# Send a plot of the network of reactions to the HTML log file\n",
"graph_data = dynamics.prepare_graph_network()\n",
"GraphicLog.export_plot(graph_data, \"vue_cytoscape_1\")"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "9fc3948d",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"SYSTEM STATE at Time t = 0:\n",
"2 species:\n",
" Species 0 (A). Conc: 10.0\n",
" Species 1 (B). Conc: 50.0\n",
"Set of chemicals involved in reactions: {'B', 'A'}\n"
]
}
],
"source": [
"# Set the initial concentrations of all the chemicals, in their index order\n",
"dynamics.set_conc([10., 50.])\n",
"\n",
"dynamics.describe_state()"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "0cc938cc",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" SYSTEM TIME | \n",
" A | \n",
" B | \n",
" caption | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" 0.0 | \n",
" 10.0 | \n",
" 50.0 | \n",
" Initial state | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" SYSTEM TIME A B caption\n",
"0 0.0 10.0 50.0 Initial state"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dynamics.get_history()"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "c4595dd6-ddfa-4715-b2fc-07255a004681",
"metadata": {},
"outputs": [],
"source": [
"dynamics.set_diagnostics() # To save diagnostic information about the call to single_compartment_react()\n",
" # Useful for insight into the inner workings of the simulation"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "ab5f46e6-347d-49e9-b8b4-9f2a4310a10e",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Parameters used for the automated adaptive time step sizes -\n",
" THRESHOLDS: [{'norm': 'norm_A', 'low': 0.5, 'high': 0.8, 'abort': 1.44}, {'norm': 'norm_B', 'low': 0.08, 'high': 0.5, 'abort': 1.5}]\n",
" STEP FACTORS: {'upshift': 1.2, 'downshift': 0.5, 'abort': 0.4}\n",
" STEP FACTOR in case of 'ERROR ABORTS': 0.25\n"
]
}
],
"source": [
"# For experiment repeatability, we specify a particular group of preset parameters applicable to the adaptive time steps\n",
"dynamics.use_adaptive_preset(preset=\"mid\") # A \"middle-of-the road\" heuristic: somewhat \"conservative\" but not overly so\n",
"\n",
"dynamics.show_adaptive_parameters() # Details may vary across different versions of Life123"
]
},
{
"cell_type": "markdown",
"id": "987af2c5",
"metadata": {
"tags": []
},
"source": [
"### Run the reaction"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "43735178-313b-48cf-a583-5181238feac3",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"* INFO: the tentative time step (0.1) leads to a least one norm value > its ABORT threshold:\n",
" -> will backtrack, and re-do step with a SMALLER delta time, multiplied by 0.4 (set to 0.04) [Step started at t=0, and will rewind there]\n",
"* INFO: the tentative time step (0.04) leads to a least one norm value > its ABORT threshold:\n",
" -> will backtrack, and re-do step with a SMALLER delta time, multiplied by 0.4 (set to 0.016) [Step started at t=0, and will rewind there]\n",
"Some steps were backtracked and re-done, to prevent negative concentrations or excessively large concentration changes\n",
"19 total step(s) taken\n"
]
}
],
"source": [
"dynamics.single_compartment_react(initial_step=0.1, target_end_time=1.2,\n",
" variable_steps=True, explain_variable_steps=False,\n",
" snapshots={\"initial_caption\": \"1st reaction step\",\n",
" \"final_caption\": \"last reaction step\"}\n",
" )"
]
},
{
"cell_type": "markdown",
"id": "2169c3b3",
"metadata": {},
"source": [
"## The flag _variable_steps_ automatically adjusts up or down the time step"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "2d5df59c",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" SYSTEM TIME | \n",
" A | \n",
" B | \n",
" caption | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" 0.000000 | \n",
" 10.000000 | \n",
" 50.000000 | \n",
" Initial state | \n",
"
\n",
" \n",
" | 1 | \n",
" 0.016000 | \n",
" 11.120000 | \n",
" 48.880000 | \n",
" 1st reaction step | \n",
"
\n",
" \n",
" | 2 | \n",
" 0.032000 | \n",
" 12.150400 | \n",
" 47.849600 | \n",
" | \n",
"
\n",
" \n",
" | 3 | \n",
" 0.048000 | \n",
" 13.098368 | \n",
" 46.901632 | \n",
" | \n",
"
\n",
" \n",
" | 4 | \n",
" 0.067200 | \n",
" 14.144925 | \n",
" 45.855075 | \n",
" | \n",
"
\n",
" \n",
" | 5 | \n",
" 0.086400 | \n",
" 15.091012 | \n",
" 44.908988 | \n",
" | \n",
"
\n",
" \n",
" | 6 | \n",
" 0.109440 | \n",
" 16.117327 | \n",
" 43.882673 | \n",
" | \n",
"
\n",
" \n",
" | 7 | \n",
" 0.132480 | \n",
" 17.025411 | \n",
" 42.974589 | \n",
" | \n",
"
\n",
" \n",
" | 8 | \n",
" 0.160128 | \n",
" 17.989578 | \n",
" 42.010422 | \n",
" | \n",
"
\n",
" \n",
" | 9 | \n",
" 0.193306 | \n",
" 18.986635 | \n",
" 41.013365 | \n",
" | \n",
"
\n",
" \n",
" | 10 | \n",
" 0.233119 | \n",
" 19.984624 | \n",
" 40.015376 | \n",
" | \n",
"
\n",
" \n",
" | 11 | \n",
" 0.280894 | \n",
" 20.943812 | \n",
" 39.056188 | \n",
" | \n",
"
\n",
" \n",
" | 12 | \n",
" 0.338225 | \n",
" 21.819882 | \n",
" 38.180118 | \n",
" | \n",
"
\n",
" \n",
" | 13 | \n",
" 0.407022 | \n",
" 22.569810 | \n",
" 37.430190 | \n",
" | \n",
"
\n",
" \n",
" | 14 | \n",
" 0.489579 | \n",
" 23.160168 | \n",
" 36.839832 | \n",
" | \n",
"
\n",
" \n",
" | 15 | \n",
" 0.588647 | \n",
" 23.576169 | \n",
" 36.423831 | \n",
" | \n",
"
\n",
" \n",
" | 16 | \n",
" 0.707528 | \n",
" 23.828097 | \n",
" 36.171903 | \n",
" | \n",
"
\n",
" \n",
" | 17 | \n",
" 0.850186 | \n",
" 23.950713 | \n",
" 36.049287 | \n",
" | \n",
"
\n",
" \n",
" | 18 | \n",
" 1.021375 | \n",
" 23.992900 | \n",
" 36.007100 | \n",
" | \n",
"
\n",
" \n",
" | 19 | \n",
" 1.226802 | \n",
" 24.000193 | \n",
" 35.999807 | \n",
" last reaction step | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" SYSTEM TIME A B caption\n",
"0 0.000000 10.000000 50.000000 Initial state\n",
"1 0.016000 11.120000 48.880000 1st reaction step\n",
"2 0.032000 12.150400 47.849600 \n",
"3 0.048000 13.098368 46.901632 \n",
"4 0.067200 14.144925 45.855075 \n",
"5 0.086400 15.091012 44.908988 \n",
"6 0.109440 16.117327 43.882673 \n",
"7 0.132480 17.025411 42.974589 \n",
"8 0.160128 17.989578 42.010422 \n",
"9 0.193306 18.986635 41.013365 \n",
"10 0.233119 19.984624 40.015376 \n",
"11 0.280894 20.943812 39.056188 \n",
"12 0.338225 21.819882 38.180118 \n",
"13 0.407022 22.569810 37.430190 \n",
"14 0.489579 23.160168 36.839832 \n",
"15 0.588647 23.576169 36.423831 \n",
"16 0.707528 23.828097 36.171903 \n",
"17 0.850186 23.950713 36.049287 \n",
"18 1.021375 23.992900 36.007100 \n",
"19 1.226802 24.000193 35.999807 last reaction step"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"history = dynamics.get_history() # The system's history, saved during the run of single_compartment_react()\n",
"history"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "1092029f",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"From time 0 to 0.048, in 3 steps of 0.016\n",
"From time 0.048 to 0.0864, in 2 steps of 0.0192\n",
"From time 0.0864 to 0.1325, in 2 steps of 0.023\n",
"From time 0.1325 to 0.1601, in 1 step of 0.0276\n",
"From time 0.1601 to 0.1933, in 1 step of 0.0332\n",
"From time 0.1933 to 0.2331, in 1 step of 0.0398\n",
"From time 0.2331 to 0.2809, in 1 step of 0.0478\n",
"From time 0.2809 to 0.3382, in 1 step of 0.0573\n",
"From time 0.3382 to 0.407, in 1 step of 0.0688\n",
"From time 0.407 to 0.4896, in 1 step of 0.0826\n",
"From time 0.4896 to 0.5886, in 1 step of 0.0991\n",
"From time 0.5886 to 0.7075, in 1 step of 0.119\n",
"From time 0.7075 to 0.8502, in 1 step of 0.143\n",
"From time 0.8502 to 1.021, in 1 step of 0.171\n",
"From time 1.021 to 1.227, in 1 step of 0.205\n",
"(19 steps total)\n"
]
}
],
"source": [
"dynamics.explain_time_advance()"
]
},
{
"cell_type": "markdown",
"id": "edb7c015",
"metadata": {
"tags": []
},
"source": [
"## Notice how the reaction proceeds in smaller steps in the early times, when [A] and [B] are changing much more rapidly\n",
"### That resulted from passing the flag _variable_steps=True_ to single_compartment_react()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "bc58e5c8-bd08-41d7-9984-18d000869a69",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "766e8bba-3a15-461e-9bf6-9daf509197d5",
"metadata": {
"tags": []
},
"source": [
"# PART 2 - Scrutinizing some instances of step-size changes"
]
},
{
"cell_type": "markdown",
"id": "ec7ea562-26ed-46b6-8af2-25c28bb3cf46",
"metadata": {},
"source": [
"The Delta-concentration values for all the individual reaction time steps, as contribued by a single reaction, may all be inspected at once from the diagnostic data:"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "e8cb2d84-b012-424b-90be-54fd2dae1a27",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Reaction: A <-> B\n"
]
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" START_TIME | \n",
" Delta A | \n",
" Delta B | \n",
" time_step | \n",
" caption | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" 0.000000 | \n",
" 7.000000 | \n",
" -7.000000 | \n",
" 0.100000 | \n",
" aborted: excessive norm value(s) | \n",
"
\n",
" \n",
" | 1 | \n",
" 0.000000 | \n",
" 2.800000 | \n",
" -2.800000 | \n",
" 0.040000 | \n",
" aborted: excessive norm value(s) | \n",
"
\n",
" \n",
" | 2 | \n",
" 0.000000 | \n",
" 1.120000 | \n",
" -1.120000 | \n",
" 0.016000 | \n",
" | \n",
"
\n",
" \n",
" | 3 | \n",
" 0.016000 | \n",
" 1.030400 | \n",
" -1.030400 | \n",
" 0.016000 | \n",
" | \n",
"
\n",
" \n",
" | 4 | \n",
" 0.032000 | \n",
" 0.947968 | \n",
" -0.947968 | \n",
" 0.016000 | \n",
" | \n",
"
\n",
" \n",
" | 5 | \n",
" 0.048000 | \n",
" 1.046557 | \n",
" -1.046557 | \n",
" 0.019200 | \n",
" | \n",
"
\n",
" \n",
" | 6 | \n",
" 0.067200 | \n",
" 0.946087 | \n",
" -0.946087 | \n",
" 0.019200 | \n",
" | \n",
"
\n",
" \n",
" | 7 | \n",
" 0.086400 | \n",
" 1.026315 | \n",
" -1.026315 | \n",
" 0.023040 | \n",
" | \n",
"
\n",
" \n",
" | 8 | \n",
" 0.109440 | \n",
" 0.908084 | \n",
" -0.908084 | \n",
" 0.023040 | \n",
" | \n",
"
\n",
" \n",
" | 9 | \n",
" 0.132480 | \n",
" 0.964167 | \n",
" -0.964167 | \n",
" 0.027648 | \n",
" | \n",
"
\n",
" \n",
" | 10 | \n",
" 0.160128 | \n",
" 0.997057 | \n",
" -0.997057 | \n",
" 0.033178 | \n",
" | \n",
"
\n",
" \n",
" | 11 | \n",
" 0.193306 | \n",
" 0.997988 | \n",
" -0.997988 | \n",
" 0.039813 | \n",
" | \n",
"
\n",
" \n",
" | 12 | \n",
" 0.233119 | \n",
" 0.959188 | \n",
" -0.959188 | \n",
" 0.047776 | \n",
" | \n",
"
\n",
" \n",
" | 13 | \n",
" 0.280894 | \n",
" 0.876070 | \n",
" -0.876070 | \n",
" 0.057331 | \n",
" | \n",
"
\n",
" \n",
" | 14 | \n",
" 0.338225 | \n",
" 0.749929 | \n",
" -0.749929 | \n",
" 0.068797 | \n",
" | \n",
"
\n",
" \n",
" | 15 | \n",
" 0.407022 | \n",
" 0.590357 | \n",
" -0.590357 | \n",
" 0.082556 | \n",
" | \n",
"
\n",
" \n",
" | 16 | \n",
" 0.489579 | \n",
" 0.416002 | \n",
" -0.416002 | \n",
" 0.099068 | \n",
" | \n",
"
\n",
" \n",
" | 17 | \n",
" 0.588647 | \n",
" 0.251928 | \n",
" -0.251928 | \n",
" 0.118881 | \n",
" | \n",
"
\n",
" \n",
" | 18 | \n",
" 0.707528 | \n",
" 0.122616 | \n",
" -0.122616 | \n",
" 0.142658 | \n",
" | \n",
"
\n",
" \n",
" | 19 | \n",
" 0.850186 | \n",
" 0.042187 | \n",
" -0.042187 | \n",
" 0.171189 | \n",
" | \n",
"
\n",
" \n",
" | 20 | \n",
" 1.021375 | \n",
" 0.007293 | \n",
" -0.007293 | \n",
" 0.205427 | \n",
" | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" START_TIME Delta A Delta B time_step \\\n",
"0 0.000000 7.000000 -7.000000 0.100000 \n",
"1 0.000000 2.800000 -2.800000 0.040000 \n",
"2 0.000000 1.120000 -1.120000 0.016000 \n",
"3 0.016000 1.030400 -1.030400 0.016000 \n",
"4 0.032000 0.947968 -0.947968 0.016000 \n",
"5 0.048000 1.046557 -1.046557 0.019200 \n",
"6 0.067200 0.946087 -0.946087 0.019200 \n",
"7 0.086400 1.026315 -1.026315 0.023040 \n",
"8 0.109440 0.908084 -0.908084 0.023040 \n",
"9 0.132480 0.964167 -0.964167 0.027648 \n",
"10 0.160128 0.997057 -0.997057 0.033178 \n",
"11 0.193306 0.997988 -0.997988 0.039813 \n",
"12 0.233119 0.959188 -0.959188 0.047776 \n",
"13 0.280894 0.876070 -0.876070 0.057331 \n",
"14 0.338225 0.749929 -0.749929 0.068797 \n",
"15 0.407022 0.590357 -0.590357 0.082556 \n",
"16 0.489579 0.416002 -0.416002 0.099068 \n",
"17 0.588647 0.251928 -0.251928 0.118881 \n",
"18 0.707528 0.122616 -0.122616 0.142658 \n",
"19 0.850186 0.042187 -0.042187 0.171189 \n",
"20 1.021375 0.007293 -0.007293 0.205427 \n",
"\n",
" caption \n",
"0 aborted: excessive norm value(s) \n",
"1 aborted: excessive norm value(s) \n",
"2 \n",
"3 \n",
"4 \n",
"5 \n",
"6 \n",
"7 \n",
"8 \n",
"9 \n",
"10 \n",
"11 \n",
"12 \n",
"13 \n",
"14 \n",
"15 \n",
"16 \n",
"17 \n",
"18 \n",
"19 \n",
"20 "
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dynamics.get_diagnostic_rxn_data(rxn_index=0) # For the 0-th reaction (the only reaction in our case)"
]
},
{
"cell_type": "markdown",
"id": "4b4fbb1d-0b7e-43f9-b4bc-dbaef933d044",
"metadata": {},
"source": [
"### Note that diagnostic data with the DELTA Concentrations - above and below - also record the values that were considered (but not actually used) during ABORTED steps"
]
},
{
"cell_type": "markdown",
"id": "789c4faf-12ba-4d63-9af8-3cef487de113",
"metadata": {},
"source": [
"In the examples below, we'll re-compute Delta values for individual steps, directly from the system history."
]
},
{
"cell_type": "markdown",
"id": "6047485b",
"metadata": {
"tags": []
},
"source": [
"### Example 1: **very early in the run** "
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "b47eaf6a-c343-4c56-9854-7ba08c26b4b8",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" SYSTEM TIME | \n",
" A | \n",
" B | \n",
" caption | \n",
"
\n",
" \n",
" \n",
" \n",
" | 1 | \n",
" 0.016 | \n",
" 11.120000 | \n",
" 48.880000 | \n",
" 1st reaction step | \n",
"
\n",
" \n",
" | 2 | \n",
" 0.032 | \n",
" 12.150400 | \n",
" 47.849600 | \n",
" | \n",
"
\n",
" \n",
" | 3 | \n",
" 0.048 | \n",
" 13.098368 | \n",
" 46.901632 | \n",
" | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" SYSTEM TIME A B caption\n",
"1 0.016 11.120000 48.880000 1st reaction step\n",
"2 0.032 12.150400 47.849600 \n",
"3 0.048 13.098368 46.901632 "
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"history[1:4]"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "d7c7164a-0350-4549-874a-5084a04160a5",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([ 1.0304, -1.0304], dtype=float32)"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"delta_concentrations = dynamics.extract_delta_concentrations(history, 1, 2, ['A', 'B'])\n",
"delta_concentrations"
]
},
{
"cell_type": "markdown",
"id": "044a0b46-a7b2-43d3-9649-4a4ed3782a35",
"metadata": {},
"source": [
"As expected by the 1:1 stoichiometry, delta_A = - delta_B"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "199858ec-ee69-4581-a4b8-58a6948de536",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([11.12, 48.88], dtype=float32)"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Get all the concentrations at the start of the above steps\n",
"baseline_conc = dynamics.get_historical_concentrations(row=1)\n",
"#dynamics.get_historical_concentrations(t=0.016) # Alternate way\n",
"baseline_conc"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "aeb179e2-27a0-41b6-a6f0-3dfff52abeae",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"('stay', 1, {'norm_A': 0.5308620929718018, 'norm_B': 0.09266187})"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Computes some measures of how large delta_concentrations is, and propose a course of action\n",
"dynamics.adjust_speed(delta_conc=delta_concentrations, baseline_conc=baseline_conc) "
]
},
{
"cell_type": "markdown",
"id": "a980506c-5c06-46f2-b975-dbc9d66bed5c",
"metadata": {},
"source": [
"#### The above analysis indicates that the time step is just about right, and the simulations should STAY on that course : that's based on the shown computed norms (indicating the extent of the change taking place.) \n",
"Indeed, the simulator maintains the same time step :"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "e5f56eb8-36d8-441b-8598-dd94c1d1be58",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.016000000000000004"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"original_step = history[\"SYSTEM TIME\"][2] - history[\"SYSTEM TIME\"][1]\n",
"original_step"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "72d25589",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.016000000000000007"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"next_step = history[\"SYSTEM TIME\"][3] - history[\"SYSTEM TIME\"][2]\n",
"next_step"
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "aa7fee98",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1.0000000000000002"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"next_step / original_step"
]
},
{
"cell_type": "markdown",
"id": "c96e6b0c-b343-445c-8d76-a01f2bed7d30",
"metadata": {
"tags": []
},
"source": [
"### Example 2: **very late in the run** "
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "c3e65edc-7ce0-42c4-8573-fe5934962d16",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" SYSTEM TIME | \n",
" A | \n",
" B | \n",
" caption | \n",
"
\n",
" \n",
" \n",
" \n",
" | 17 | \n",
" 0.850186 | \n",
" 23.950713 | \n",
" 36.049287 | \n",
" | \n",
"
\n",
" \n",
" | 18 | \n",
" 1.021375 | \n",
" 23.992900 | \n",
" 36.007100 | \n",
" | \n",
"
\n",
" \n",
" | 19 | \n",
" 1.226802 | \n",
" 24.000193 | \n",
" 35.999807 | \n",
" last reaction step | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" SYSTEM TIME A B caption\n",
"17 0.850186 23.950713 36.049287 \n",
"18 1.021375 23.992900 36.007100 \n",
"19 1.226802 24.000193 35.999807 last reaction step"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"history[17:20]"
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "28f3a54f-f5a4-420f-be44-912b58a31cea",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([ 0.04218667, -0.04218667], dtype=float32)"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"delta_concentrations = dynamics.extract_delta_concentrations(history, 17, 18, ['A', 'B'])\n",
"delta_concentrations"
]
},
{
"cell_type": "markdown",
"id": "382261e6-50e2-4189-a268-b367bfa64284",
"metadata": {},
"source": [
"#### Notice the far less change now that the system is approaching equilibrium"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "95c676b7-ce6e-4228-99c2-bdd0f75a4ce2",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([23.950714, 36.049286], dtype=float32)"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Get all the concentrations at the start of the above steps\n",
"baseline_conc = dynamics.get_historical_concentrations(row=17)\n",
"#dynamics.get_historical_concentrations(t=0.850186) # Alternate way\n",
"baseline_conc"
]
},
{
"cell_type": "code",
"execution_count": 24,
"id": "281220ff-55c6-4b0a-ae62-037133174efd",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"('low', 1.2, {'norm_A': 0.0008898575906641781, 'norm_B': 0.0017613951})"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Computes a measure of how large delta_concentrations is, and propose a course of action\n",
"dynamics.adjust_speed(delta_conc=delta_concentrations, baseline_conc=baseline_conc) "
]
},
{
"cell_type": "markdown",
"id": "3370c89b-bece-44af-864b-ee2221ebaaff",
"metadata": {},
"source": [
"#### The above analysis indicates that the time step is on the \"LOW\" side, and the simulations should increase it by a factor 1.2 : again, that's based on the shown computed norms (indicating the extent of the change taking place.) \n",
"Indeed, the simulator increases the time step x1.2:"
]
},
{
"cell_type": "code",
"execution_count": 25,
"id": "0522109c-64e3-46f1-8f43-36360dc6a381",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.17118912860651525"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"original_step = history[\"SYSTEM TIME\"][18] - history[\"SYSTEM TIME\"][17]\n",
"original_step"
]
},
{
"cell_type": "code",
"execution_count": 26,
"id": "a177ec82-5600-4b21-ba15-79324f72d44c",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.2054269543278182"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"next_step = history[\"SYSTEM TIME\"][19] - history[\"SYSTEM TIME\"][18]\n",
"next_step"
]
},
{
"cell_type": "code",
"execution_count": 27,
"id": "09104a03-3335-403b-96f4-fa2cddad6f92",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1.1999999999999995"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"next_step / original_step"
]
},
{
"cell_type": "markdown",
"id": "58b2fdca-bff2-4b88-b6b8-68db4844ef86",
"metadata": {},
"source": [
"Where does that x1.2 factor come from? It's one of the parameters that we passed to the simulator; they can be seen as follows:"
]
},
{
"cell_type": "code",
"execution_count": 28,
"id": "89246ea8-47f7-4ffb-80e3-ed2ad321a447",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Parameters used for the automated adaptive time step sizes -\n",
" THRESHOLDS: [{'norm': 'norm_A', 'low': 0.5, 'high': 0.8, 'abort': 1.44}, {'norm': 'norm_B', 'low': 0.08, 'high': 0.5, 'abort': 1.5}]\n",
" STEP FACTORS: {'upshift': 1.2, 'downshift': 0.5, 'abort': 0.4}\n",
" STEP FACTOR in case of 'ERROR ABORTS': 0.25\n"
]
}
],
"source": [
"dynamics.show_adaptive_parameters()"
]
},
{
"cell_type": "markdown",
"id": "53e2d39f-cff2-4035-a40e-752a8418a3ec",
"metadata": {},
"source": [
"**1.2** is stored as the \"step factor\" (for the time steps to take) in case an 'upshift' (in step size) is the decided course of action"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "49fc2e1e-12f9-427c-8233-c998026caac4",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "66f7a05f-122e-496b-a101-9ac82a4599cf",
"metadata": {},
"source": [
"## Diagnostics of the run may be investigated as follows: \n",
"_(note - this is possible because we make a call to set_diagnostics() prior to running the simulation)_"
]
},
{
"cell_type": "code",
"execution_count": 29,
"id": "807a8624-64c5-4b34-9433-54279f6c05ab",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" TIME | \n",
" A | \n",
" B | \n",
" caption | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" 0.000000 | \n",
" 10.000000 | \n",
" 50.000000 | \n",
" | \n",
"
\n",
" \n",
" | 1 | \n",
" 0.016000 | \n",
" 11.120000 | \n",
" 48.880000 | \n",
" | \n",
"
\n",
" \n",
" | 2 | \n",
" 0.032000 | \n",
" 12.150400 | \n",
" 47.849600 | \n",
" | \n",
"
\n",
" \n",
" | 3 | \n",
" 0.048000 | \n",
" 13.098368 | \n",
" 46.901632 | \n",
" | \n",
"
\n",
" \n",
" | 4 | \n",
" 0.067200 | \n",
" 14.144925 | \n",
" 45.855075 | \n",
" | \n",
"
\n",
" \n",
" | 5 | \n",
" 0.086400 | \n",
" 15.091012 | \n",
" 44.908988 | \n",
" | \n",
"
\n",
" \n",
" | 6 | \n",
" 0.109440 | \n",
" 16.117327 | \n",
" 43.882673 | \n",
" | \n",
"
\n",
" \n",
" | 7 | \n",
" 0.132480 | \n",
" 17.025411 | \n",
" 42.974589 | \n",
" | \n",
"
\n",
" \n",
" | 8 | \n",
" 0.160128 | \n",
" 17.989578 | \n",
" 42.010422 | \n",
" | \n",
"
\n",
" \n",
" | 9 | \n",
" 0.193306 | \n",
" 18.986635 | \n",
" 41.013365 | \n",
" | \n",
"
\n",
" \n",
" | 10 | \n",
" 0.233119 | \n",
" 19.984624 | \n",
" 40.015376 | \n",
" | \n",
"
\n",
" \n",
" | 11 | \n",
" 0.280894 | \n",
" 20.943812 | \n",
" 39.056188 | \n",
" | \n",
"
\n",
" \n",
" | 12 | \n",
" 0.338225 | \n",
" 21.819882 | \n",
" 38.180118 | \n",
" | \n",
"
\n",
" \n",
" | 13 | \n",
" 0.407022 | \n",
" 22.569810 | \n",
" 37.430190 | \n",
" | \n",
"
\n",
" \n",
" | 14 | \n",
" 0.489579 | \n",
" 23.160168 | \n",
" 36.839832 | \n",
" | \n",
"
\n",
" \n",
" | 15 | \n",
" 0.588647 | \n",
" 23.576169 | \n",
" 36.423831 | \n",
" | \n",
"
\n",
" \n",
" | 16 | \n",
" 0.707528 | \n",
" 23.828097 | \n",
" 36.171903 | \n",
" | \n",
"
\n",
" \n",
" | 17 | \n",
" 0.850186 | \n",
" 23.950713 | \n",
" 36.049287 | \n",
" | \n",
"
\n",
" \n",
" | 18 | \n",
" 1.021375 | \n",
" 23.992900 | \n",
" 36.007100 | \n",
" | \n",
"
\n",
" \n",
" | 19 | \n",
" 1.226802 | \n",
" 24.000193 | \n",
" 35.999807 | \n",
" | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" TIME A B caption\n",
"0 0.000000 10.000000 50.000000 \n",
"1 0.016000 11.120000 48.880000 \n",
"2 0.032000 12.150400 47.849600 \n",
"3 0.048000 13.098368 46.901632 \n",
"4 0.067200 14.144925 45.855075 \n",
"5 0.086400 15.091012 44.908988 \n",
"6 0.109440 16.117327 43.882673 \n",
"7 0.132480 17.025411 42.974589 \n",
"8 0.160128 17.989578 42.010422 \n",
"9 0.193306 18.986635 41.013365 \n",
"10 0.233119 19.984624 40.015376 \n",
"11 0.280894 20.943812 39.056188 \n",
"12 0.338225 21.819882 38.180118 \n",
"13 0.407022 22.569810 37.430190 \n",
"14 0.489579 23.160168 36.839832 \n",
"15 0.588647 23.576169 36.423831 \n",
"16 0.707528 23.828097 36.171903 \n",
"17 0.850186 23.950713 36.049287 \n",
"18 1.021375 23.992900 36.007100 \n",
"19 1.226802 24.000193 35.999807 "
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dynamics.get_diagnostic_conc_data() # This will be complete, even if we only saved part of the history during the run"
]
},
{
"cell_type": "code",
"execution_count": 30,
"id": "f9ebf09e-caba-44e8-a675-3538cbee1cc0",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" START_TIME | \n",
" Delta A | \n",
" Delta B | \n",
" norm_A | \n",
" norm_B | \n",
" action | \n",
" step_factor | \n",
" time_step | \n",
" caption | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" 0.000000 | \n",
" 7.000000 | \n",
" -7.000000 | \n",
" 24.500000 | \n",
" NaN | \n",
" ABORT | \n",
" 0.4 | \n",
" 0.100000 | \n",
" excessive norm value(s) | \n",
"
\n",
" \n",
" | 1 | \n",
" 0.000000 | \n",
" 2.800000 | \n",
" -2.800000 | \n",
" 3.920000 | \n",
" NaN | \n",
" ABORT | \n",
" 0.4 | \n",
" 0.040000 | \n",
" excessive norm value(s) | \n",
"
\n",
" \n",
" | 2 | \n",
" 0.000000 | \n",
" 1.120000 | \n",
" -1.120000 | \n",
" 0.627200 | \n",
" 0.112000 | \n",
" OK (stay) | \n",
" 1.0 | \n",
" 0.016000 | \n",
" | \n",
"
\n",
" \n",
" | 3 | \n",
" 0.016000 | \n",
" 1.030400 | \n",
" -1.030400 | \n",
" 0.530862 | \n",
" 0.092662 | \n",
" OK (stay) | \n",
" 1.0 | \n",
" 0.016000 | \n",
" | \n",
"
\n",
" \n",
" | 4 | \n",
" 0.032000 | \n",
" 0.947968 | \n",
" -0.947968 | \n",
" 0.449322 | \n",
" 0.078019 | \n",
" OK (low) | \n",
" 1.2 | \n",
" 0.016000 | \n",
" | \n",
"
\n",
" \n",
" | 5 | \n",
" 0.048000 | \n",
" 1.046557 | \n",
" -1.046557 | \n",
" 0.547640 | \n",
" 0.079900 | \n",
" OK (stay) | \n",
" 1.0 | \n",
" 0.019200 | \n",
" | \n",
"
\n",
" \n",
" | 6 | \n",
" 0.067200 | \n",
" 0.946087 | \n",
" -0.946087 | \n",
" 0.447541 | \n",
" 0.066885 | \n",
" OK (low) | \n",
" 1.2 | \n",
" 0.019200 | \n",
" | \n",
"
\n",
" \n",
" | 7 | \n",
" 0.086400 | \n",
" 1.026315 | \n",
" -1.026315 | \n",
" 0.526662 | \n",
" 0.068008 | \n",
" OK (stay) | \n",
" 1.0 | \n",
" 0.023040 | \n",
" | \n",
"
\n",
" \n",
" | 8 | \n",
" 0.109440 | \n",
" 0.908084 | \n",
" -0.908084 | \n",
" 0.412308 | \n",
" 0.056342 | \n",
" OK (low) | \n",
" 1.2 | \n",
" 0.023040 | \n",
" | \n",
"
\n",
" \n",
" | 9 | \n",
" 0.132480 | \n",
" 0.964167 | \n",
" -0.964167 | \n",
" 0.464809 | \n",
" 0.056631 | \n",
" OK (low) | \n",
" 1.2 | \n",
" 0.027648 | \n",
" | \n",
"
\n",
" \n",
" | 10 | \n",
" 0.160128 | \n",
" 0.997057 | \n",
" -0.997057 | \n",
" 0.497061 | \n",
" 0.055424 | \n",
" OK (low) | \n",
" 1.2 | \n",
" 0.033178 | \n",
" | \n",
"
\n",
" \n",
" | 11 | \n",
" 0.193306 | \n",
" 0.997988 | \n",
" -0.997988 | \n",
" 0.497990 | \n",
" 0.052563 | \n",
" OK (low) | \n",
" 1.2 | \n",
" 0.039813 | \n",
" | \n",
"
\n",
" \n",
" | 12 | \n",
" 0.233119 | \n",
" 0.959188 | \n",
" -0.959188 | \n",
" 0.460021 | \n",
" 0.047996 | \n",
" OK (low) | \n",
" 1.2 | \n",
" 0.047776 | \n",
" | \n",
"
\n",
" \n",
" | 13 | \n",
" 0.280894 | \n",
" 0.876070 | \n",
" -0.876070 | \n",
" 0.383749 | \n",
" 0.041830 | \n",
" OK (low) | \n",
" 1.2 | \n",
" 0.057331 | \n",
" | \n",
"
\n",
" \n",
" | 14 | \n",
" 0.338225 | \n",
" 0.749929 | \n",
" -0.749929 | \n",
" 0.281197 | \n",
" 0.034369 | \n",
" OK (low) | \n",
" 1.2 | \n",
" 0.068797 | \n",
" | \n",
"
\n",
" \n",
" | 15 | \n",
" 0.407022 | \n",
" 0.590357 | \n",
" -0.590357 | \n",
" 0.174261 | \n",
" 0.026157 | \n",
" OK (low) | \n",
" 1.2 | \n",
" 0.082556 | \n",
" | \n",
"
\n",
" \n",
" | 16 | \n",
" 0.489579 | \n",
" 0.416002 | \n",
" -0.416002 | \n",
" 0.086529 | \n",
" 0.017962 | \n",
" OK (low) | \n",
" 1.2 | \n",
" 0.099068 | \n",
" | \n",
"
\n",
" \n",
" | 17 | \n",
" 0.588647 | \n",
" 0.251928 | \n",
" -0.251928 | \n",
" 0.031734 | \n",
" 0.010686 | \n",
" OK (low) | \n",
" 1.2 | \n",
" 0.118881 | \n",
" | \n",
"
\n",
" \n",
" | 18 | \n",
" 0.707528 | \n",
" 0.122616 | \n",
" -0.122616 | \n",
" 0.007517 | \n",
" 0.005146 | \n",
" OK (low) | \n",
" 1.2 | \n",
" 0.142658 | \n",
" | \n",
"
\n",
" \n",
" | 19 | \n",
" 0.850186 | \n",
" 0.042187 | \n",
" -0.042187 | \n",
" 0.000890 | \n",
" 0.001761 | \n",
" OK (low) | \n",
" 1.2 | \n",
" 0.171189 | \n",
" | \n",
"
\n",
" \n",
" | 20 | \n",
" 1.021375 | \n",
" 0.007293 | \n",
" -0.007293 | \n",
" 0.000027 | \n",
" 0.000304 | \n",
" OK (low) | \n",
" 1.2 | \n",
" 0.205427 | \n",
" | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" START_TIME Delta A Delta B norm_A norm_B action \\\n",
"0 0.000000 7.000000 -7.000000 24.500000 NaN ABORT \n",
"1 0.000000 2.800000 -2.800000 3.920000 NaN ABORT \n",
"2 0.000000 1.120000 -1.120000 0.627200 0.112000 OK (stay) \n",
"3 0.016000 1.030400 -1.030400 0.530862 0.092662 OK (stay) \n",
"4 0.032000 0.947968 -0.947968 0.449322 0.078019 OK (low) \n",
"5 0.048000 1.046557 -1.046557 0.547640 0.079900 OK (stay) \n",
"6 0.067200 0.946087 -0.946087 0.447541 0.066885 OK (low) \n",
"7 0.086400 1.026315 -1.026315 0.526662 0.068008 OK (stay) \n",
"8 0.109440 0.908084 -0.908084 0.412308 0.056342 OK (low) \n",
"9 0.132480 0.964167 -0.964167 0.464809 0.056631 OK (low) \n",
"10 0.160128 0.997057 -0.997057 0.497061 0.055424 OK (low) \n",
"11 0.193306 0.997988 -0.997988 0.497990 0.052563 OK (low) \n",
"12 0.233119 0.959188 -0.959188 0.460021 0.047996 OK (low) \n",
"13 0.280894 0.876070 -0.876070 0.383749 0.041830 OK (low) \n",
"14 0.338225 0.749929 -0.749929 0.281197 0.034369 OK (low) \n",
"15 0.407022 0.590357 -0.590357 0.174261 0.026157 OK (low) \n",
"16 0.489579 0.416002 -0.416002 0.086529 0.017962 OK (low) \n",
"17 0.588647 0.251928 -0.251928 0.031734 0.010686 OK (low) \n",
"18 0.707528 0.122616 -0.122616 0.007517 0.005146 OK (low) \n",
"19 0.850186 0.042187 -0.042187 0.000890 0.001761 OK (low) \n",
"20 1.021375 0.007293 -0.007293 0.000027 0.000304 OK (low) \n",
"\n",
" step_factor time_step caption \n",
"0 0.4 0.100000 excessive norm value(s) \n",
"1 0.4 0.040000 excessive norm value(s) \n",
"2 1.0 0.016000 \n",
"3 1.0 0.016000 \n",
"4 1.2 0.016000 \n",
"5 1.0 0.019200 \n",
"6 1.2 0.019200 \n",
"7 1.0 0.023040 \n",
"8 1.2 0.023040 \n",
"9 1.2 0.027648 \n",
"10 1.2 0.033178 \n",
"11 1.2 0.039813 \n",
"12 1.2 0.047776 \n",
"13 1.2 0.057331 \n",
"14 1.2 0.068797 \n",
"15 1.2 0.082556 \n",
"16 1.2 0.099068 \n",
"17 1.2 0.118881 \n",
"18 1.2 0.142658 \n",
"19 1.2 0.171189 \n",
"20 1.2 0.205427 "
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dynamics.get_diagnostic_decisions_data()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "94939e71-9ab1-437c-82c1-85285c904170",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "6deca814",
"metadata": {},
"source": [
"# PART 3 - Analyze the reaction Dynamics"
]
},
{
"cell_type": "code",
"execution_count": 31,
"id": "23c4b3ba",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0: A <-> B\n",
"Final concentrations: [A] = 24 ; [B] = 36\n",
"1. Ratio of reactant/product concentrations, adjusted for reaction orders: 1.49998\n",
" Formula used: [B] / [A]\n",
"2. Ratio of forward/reverse reaction rates: 1.5\n",
"Discrepancy between the two values: 0.001338 %\n",
"Reaction IS in equilibrium (within 1% tolerance)\n",
"\n"
]
},
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Verify that the reaction has reached equilibrium\n",
"dynamics.is_in_equilibrium()"
]
},
{
"cell_type": "markdown",
"id": "03866901",
"metadata": {
"tags": []
},
"source": [
"### Plots of changes of concentration with time"
]
},
{
"cell_type": "code",
"execution_count": 32,
"id": "6b033cc7-078f-4b94-a466-1aa91e2fca4d",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
" \n",
" "
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.plotly.v1+json": {
"config": {
"plotlyServerURL": "https://plot.ly"
},
"data": [
{
"hovertemplate": "Chemical=A
SYSTEM TIME=%{x}
concentration=%{y}",
"legendgroup": "A",
"line": {
"color": "blue",
"dash": "solid"
},
"marker": {
"symbol": "circle"
},
"mode": "lines",
"name": "A",
"orientation": "v",
"showlegend": true,
"type": "scatter",
"x": [
0,
0.016000000000000004,
0.03200000000000001,
0.048000000000000015,
0.06720000000000002,
0.08640000000000003,
0.10944000000000004,
0.13248000000000004,
0.16012800000000005,
0.19330560000000005,
0.23311872000000006,
0.28089446400000007,
0.3382253568000001,
0.4070224281600001,
0.48957891379200014,
0.5886466965504001,
0.7075280358604801,
0.850185643032576,
1.0213747716390913,
1.2268017259669095
],
"xaxis": "x",
"y": [
10,
11.120000000000001,
12.150400000000001,
13.098368,
14.144924672,
15.091011903488,
16.117327332206184,
17.025411223536032,
17.989578375994412,
18.98663519835745,
19.984623670615306,
20.94381162849702,
21.819881668013238,
22.569810450307923,
23.160167565358876,
23.576169251301298,
23.828097086531773,
23.950713378038216,
23.992900047366195,
24.000192655593363
],
"yaxis": "y"
},
{
"hovertemplate": "Chemical=B
SYSTEM TIME=%{x}
concentration=%{y}",
"legendgroup": "B",
"line": {
"color": "orange",
"dash": "solid"
},
"marker": {
"symbol": "circle"
},
"mode": "lines",
"name": "B",
"orientation": "v",
"showlegend": true,
"type": "scatter",
"x": [
0,
0.016000000000000004,
0.03200000000000001,
0.048000000000000015,
0.06720000000000002,
0.08640000000000003,
0.10944000000000004,
0.13248000000000004,
0.16012800000000005,
0.19330560000000005,
0.23311872000000006,
0.28089446400000007,
0.3382253568000001,
0.4070224281600001,
0.48957891379200014,
0.5886466965504001,
0.7075280358604801,
0.850185643032576,
1.0213747716390913,
1.2268017259669095
],
"xaxis": "x",
"y": [
50,
48.88,
47.8496,
46.901632,
45.855075328,
44.908988096512,
43.88267266779381,
42.97458877646397,
42.01042162400559,
41.013364801642545,
40.015376329384694,
39.05618837150298,
38.180118331986755,
37.43018954969207,
36.83983243464112,
36.42383074869869,
36.171902913468216,
36.04928662196178,
36.007099952633794,
35.999807344406626
],
"yaxis": "y"
}
],
"layout": {
"autosize": true,
"legend": {
"title": {
"text": "Chemical"
},
"tracegroupgap": 0
},
"shapes": [
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0,
"x1": 0,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.016000000000000004,
"x1": 0.016000000000000004,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.03200000000000001,
"x1": 0.03200000000000001,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.048000000000000015,
"x1": 0.048000000000000015,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.06720000000000002,
"x1": 0.06720000000000002,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.08640000000000003,
"x1": 0.08640000000000003,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.10944000000000004,
"x1": 0.10944000000000004,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.13248000000000004,
"x1": 0.13248000000000004,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.16012800000000005,
"x1": 0.16012800000000005,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.19330560000000005,
"x1": 0.19330560000000005,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.23311872000000006,
"x1": 0.23311872000000006,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.28089446400000007,
"x1": 0.28089446400000007,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.3382253568000001,
"x1": 0.3382253568000001,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.4070224281600001,
"x1": 0.4070224281600001,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.48957891379200014,
"x1": 0.48957891379200014,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.5886466965504001,
"x1": 0.5886466965504001,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.7075280358604801,
"x1": 0.7075280358604801,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.850185643032576,
"x1": 0.850185643032576,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 1.0213747716390913,
"x1": 1.0213747716390913,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 1.2268017259669095,
"x1": 1.2268017259669095,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
}
],
"template": {
"data": {
"bar": [
{
"error_x": {
"color": "#2a3f5f"
},
"error_y": {
"color": "#2a3f5f"
},
"marker": {
"line": {
"color": "#E5ECF6",
"width": 0.5
},
"pattern": {
"fillmode": "overlay",
"size": 10,
"solidity": 0.2
}
},
"type": "bar"
}
],
"barpolar": [
{
"marker": {
"line": {
"color": "#E5ECF6",
"width": 0.5
},
"pattern": {
"fillmode": "overlay",
"size": 10,
"solidity": 0.2
}
},
"type": "barpolar"
}
],
"carpet": [
{
"aaxis": {
"endlinecolor": "#2a3f5f",
"gridcolor": "white",
"linecolor": "white",
"minorgridcolor": "white",
"startlinecolor": "#2a3f5f"
},
"baxis": {
"endlinecolor": "#2a3f5f",
"gridcolor": "white",
"linecolor": "white",
"minorgridcolor": "white",
"startlinecolor": "#2a3f5f"
},
"type": "carpet"
}
],
"choropleth": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"type": "choropleth"
}
],
"contour": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "contour"
}
],
"contourcarpet": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"type": "contourcarpet"
}
],
"heatmap": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "heatmap"
}
],
"heatmapgl": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "heatmapgl"
}
],
"histogram": [
{
"marker": {
"pattern": {
"fillmode": "overlay",
"size": 10,
"solidity": 0.2
}
},
"type": "histogram"
}
],
"histogram2d": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "histogram2d"
}
],
"histogram2dcontour": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "histogram2dcontour"
}
],
"mesh3d": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"type": "mesh3d"
}
],
"parcoords": [
{
"line": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "parcoords"
}
],
"pie": [
{
"automargin": true,
"type": "pie"
}
],
"scatter": [
{
"fillpattern": {
"fillmode": "overlay",
"size": 10,
"solidity": 0.2
},
"type": "scatter"
}
],
"scatter3d": [
{
"line": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatter3d"
}
],
"scattercarpet": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattercarpet"
}
],
"scattergeo": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattergeo"
}
],
"scattergl": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattergl"
}
],
"scattermapbox": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattermapbox"
}
],
"scatterpolar": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatterpolar"
}
],
"scatterpolargl": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatterpolargl"
}
],
"scatterternary": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatterternary"
}
],
"surface": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "surface"
}
],
"table": [
{
"cells": {
"fill": {
"color": "#EBF0F8"
},
"line": {
"color": "white"
}
},
"header": {
"fill": {
"color": "#C8D4E3"
},
"line": {
"color": "white"
}
},
"type": "table"
}
]
},
"layout": {
"annotationdefaults": {
"arrowcolor": "#2a3f5f",
"arrowhead": 0,
"arrowwidth": 1
},
"autotypenumbers": "strict",
"coloraxis": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"colorscale": {
"diverging": [
[
0,
"#8e0152"
],
[
0.1,
"#c51b7d"
],
[
0.2,
"#de77ae"
],
[
0.3,
"#f1b6da"
],
[
0.4,
"#fde0ef"
],
[
0.5,
"#f7f7f7"
],
[
0.6,
"#e6f5d0"
],
[
0.7,
"#b8e186"
],
[
0.8,
"#7fbc41"
],
[
0.9,
"#4d9221"
],
[
1,
"#276419"
]
],
"sequential": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"sequentialminus": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
]
},
"colorway": [
"#636efa",
"#EF553B",
"#00cc96",
"#ab63fa",
"#FFA15A",
"#19d3f3",
"#FF6692",
"#B6E880",
"#FF97FF",
"#FECB52"
],
"font": {
"color": "#2a3f5f"
},
"geo": {
"bgcolor": "white",
"lakecolor": "white",
"landcolor": "#E5ECF6",
"showlakes": true,
"showland": true,
"subunitcolor": "white"
},
"hoverlabel": {
"align": "left"
},
"hovermode": "closest",
"mapbox": {
"style": "light"
},
"paper_bgcolor": "white",
"plot_bgcolor": "#E5ECF6",
"polar": {
"angularaxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
},
"bgcolor": "#E5ECF6",
"radialaxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
}
},
"scene": {
"xaxis": {
"backgroundcolor": "#E5ECF6",
"gridcolor": "white",
"gridwidth": 2,
"linecolor": "white",
"showbackground": true,
"ticks": "",
"zerolinecolor": "white"
},
"yaxis": {
"backgroundcolor": "#E5ECF6",
"gridcolor": "white",
"gridwidth": 2,
"linecolor": "white",
"showbackground": true,
"ticks": "",
"zerolinecolor": "white"
},
"zaxis": {
"backgroundcolor": "#E5ECF6",
"gridcolor": "white",
"gridwidth": 2,
"linecolor": "white",
"showbackground": true,
"ticks": "",
"zerolinecolor": "white"
}
},
"shapedefaults": {
"line": {
"color": "#2a3f5f"
}
},
"ternary": {
"aaxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
},
"baxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
},
"bgcolor": "#E5ECF6",
"caxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
}
},
"title": {
"x": 0.05
},
"xaxis": {
"automargin": true,
"gridcolor": "white",
"linecolor": "white",
"ticks": "",
"title": {
"standoff": 15
},
"zerolinecolor": "white",
"zerolinewidth": 2
},
"yaxis": {
"automargin": true,
"gridcolor": "white",
"linecolor": "white",
"ticks": "",
"title": {
"standoff": 15
},
"zerolinecolor": "white",
"zerolinewidth": 2
}
}
},
"title": {
"text": "Reaction `A <-> B` . Changes in concentrations with time (time steps shown in dashed lines)"
},
"xaxis": {
"anchor": "y",
"autorange": true,
"domain": [
0,
1
],
"range": [
-0.0005172014021782924,
1.2273189273690879
],
"title": {
"text": "SYSTEM TIME"
},
"type": "linear"
},
"yaxis": {
"anchor": "x",
"autorange": true,
"domain": [
0,
1
],
"range": [
7.777777777777778,
52.22222222222222
],
"title": {
"text": "concentration"
},
"type": "linear"
}
}
},
"image/png": "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IoAAAggggAACCCCAAAIIIIAAAggggIBmAcJWzcA0jwACCCCAAAIIIIAAAggggAACCCCAAAKVIUDYWhl1ZpYIIIAAAggggAACCCCAAAIIIIAAAgggoFmAsFUzMM0jgAACCCCAAAIIIIAAAggggAACCCCAQGUIELZWRp2ZJQIIIIAAAggggAACCCCAAAIIIIAAAghoFiBs1QxM8wgggAACCCCAAAIIIIAAAggggAACCCBQGQKErZVRZ2aJAAIIIIAAAggggAACCCCAAAIIIIAAApoFCFs1A9M8AggggAACCCCAAAIIIIAAAggggAACCFSGAGFrZdSZWSKAAAIIIIAAAggggAACCCCAAAIIIICAZgHCVs3ANI8AAggggAACCCCAAAIIIIAAAggggAAClSFA2FoZdWaWCCCAAAIIIIAAAggggAACCCCAAAIIIKBZgLBVMzDNI4AAAggggAACCCCAAAIIIIAAAggggEBlCBC2VkadmSUCCCCAAAIIIIAAAggggAACCCCAAAIIaBYgbNUMTPMIIIAAAggggAACCCCAAAIIIIAAAgggUBkChK2VUWdmiQACCCCAAAIIIIAAAggggAACCCCAAAKaBQhbNQPTPAIIIIAAAggggAACCCCAAAIIIIAAAghUhgBha2XUmVkigAACCCCAAAIIIIAAAggggAACCCCAgGYBwlbNwDSPAAIIIIAAAggggAACCCCAAAIIIIAAApUhQNhaGXVmlggggAACCCAQU4HNW3fIQ+ue7jW7K2ZMlicfuV+OHH9bvvHNR2TDE6ulsWF6r2MeX79J/t/BN7PHXXrxCCnVzof/2i7LVj0m7773wYCK317VLBPH12T76++RH0PbwTezx9y2sEkeXtksw4ZW9xxe6mvqoD981C73rP6eHDp8bMBx/Omdt0r9xLG9TNTY7rj1Jjl68p3sPEaNvLhn3vmG+vtafjyl5hPTy4ppIYAAAggggAACCHgUIGz1CMdpCCCAAAIIIIBA1ALFgWl+POrfb/zcldmAVYWom7a09goXVbD4rbVPyXfWLJUpdePFSTuFc1Vt7t73q37D0jVrn5L161Zk2+3vkQ8wx425rNdxnee6pOXRp+X5bbv7DWIHauux9Zv6BKfqWNVP8VjygaoKjYsDaGXwo2e3Sj6oVgF0f21EXXP6RwABBBBAAAEEEDBbgLDV7PowOgQQ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",
"text/html": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"dynamics.plot_history(colors=['blue', 'orange'], show_intervals=True)"
]
},
{
"cell_type": "markdown",
"id": "306e3db7",
"metadata": {},
"source": [
"## Note how the left-hand side of this plot is much smoother than it was in experiment `react_2_a`, where no adaptive time steps were used!"
]
},
{
"cell_type": "markdown",
"id": "6b96283e-20d8-4256-b857-2e328923e942",
"metadata": {},
"source": [
"#### Compare the above with the fixed step sizes of experiment `react_2_a` \n",
"To see the sizes of the steps taken:"
]
},
{
"cell_type": "code",
"execution_count": 33,
"id": "039e5eab-53bf-4bfb-b68b-e83f399490c5",
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.plotly.v1+json": {
"config": {
"plotlyServerURL": "https://plot.ly"
},
"data": [
{
"hovertemplate": "x=%{x}
y=%{y}",
"legendgroup": "",
"line": {
"color": "#636efa",
"dash": "solid"
},
"marker": {
"symbol": "circle"
},
"mode": "lines",
"name": "",
"orientation": "v",
"showlegend": false,
"type": "scatter",
"x": [
0,
0.048000000000000015,
0.048000000000000015,
0.08640000000000003,
0.08640000000000003,
0.13248000000000004,
0.13248000000000004,
0.16012800000000005,
0.16012800000000005,
0.19330560000000005,
0.19330560000000005,
0.23311872000000006,
0.23311872000000006,
0.28089446400000007,
0.28089446400000007,
0.3382253568000001,
0.3382253568000001,
0.4070224281600001,
0.4070224281600001,
0.48957891379200014,
0.48957891379200014,
0.5886466965504001,
0.5886466965504001,
0.7075280358604801,
0.7075280358604801,
0.850185643032576,
0.850185643032576,
1.0213747716390913,
1.0213747716390913,
1.2268017259669095
],
"xaxis": "x",
"y": [
0.016000000000000007,
0.016000000000000007,
0.01920000000000001,
0.01920000000000001,
0.023040000000000005,
0.023040000000000005,
0.027648000000000006,
0.027648000000000006,
0.0331776,
0.0331776,
0.03981312000000001,
0.03981312000000001,
0.04777574400000001,
0.04777574400000001,
0.05733089280000003,
0.05733089280000003,
0.06879707136000002,
0.06879707136000002,
0.08255648563200002,
0.08255648563200002,
0.0990677827584,
0.0990677827584,
0.11888133931007994,
0.11888133931007994,
0.14265760717209597,
0.14265760717209597,
0.17118912860651525,
0.17118912860651525,
0.2054269543278182,
0.2054269543278182
],
"yaxis": "y"
}
],
"layout": {
"autosize": true,
"legend": {
"tracegroupgap": 0
},
"margin": {
"t": 60
},
"shapes": [
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0,
"x1": 0,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.016000000000000004,
"x1": 0.016000000000000004,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.03200000000000001,
"x1": 0.03200000000000001,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.048000000000000015,
"x1": 0.048000000000000015,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.06720000000000002,
"x1": 0.06720000000000002,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.08640000000000003,
"x1": 0.08640000000000003,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.10944000000000004,
"x1": 0.10944000000000004,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.13248000000000004,
"x1": 0.13248000000000004,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.16012800000000005,
"x1": 0.16012800000000005,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.19330560000000005,
"x1": 0.19330560000000005,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.23311872000000006,
"x1": 0.23311872000000006,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.28089446400000007,
"x1": 0.28089446400000007,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.3382253568000001,
"x1": 0.3382253568000001,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.4070224281600001,
"x1": 0.4070224281600001,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.48957891379200014,
"x1": 0.48957891379200014,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.5886466965504001,
"x1": 0.5886466965504001,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.7075280358604801,
"x1": 0.7075280358604801,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 0.850185643032576,
"x1": 0.850185643032576,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 1.0213747716390913,
"x1": 1.0213747716390913,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
},
{
"line": {
"color": "gray",
"dash": "dot",
"width": 1
},
"type": "line",
"x0": 1.2268017259669095,
"x1": 1.2268017259669095,
"xref": "x",
"y0": 0,
"y1": 1,
"yref": "y domain"
}
],
"template": {
"data": {
"bar": [
{
"error_x": {
"color": "#2a3f5f"
},
"error_y": {
"color": "#2a3f5f"
},
"marker": {
"line": {
"color": "#E5ECF6",
"width": 0.5
},
"pattern": {
"fillmode": "overlay",
"size": 10,
"solidity": 0.2
}
},
"type": "bar"
}
],
"barpolar": [
{
"marker": {
"line": {
"color": "#E5ECF6",
"width": 0.5
},
"pattern": {
"fillmode": "overlay",
"size": 10,
"solidity": 0.2
}
},
"type": "barpolar"
}
],
"carpet": [
{
"aaxis": {
"endlinecolor": "#2a3f5f",
"gridcolor": "white",
"linecolor": "white",
"minorgridcolor": "white",
"startlinecolor": "#2a3f5f"
},
"baxis": {
"endlinecolor": "#2a3f5f",
"gridcolor": "white",
"linecolor": "white",
"minorgridcolor": "white",
"startlinecolor": "#2a3f5f"
},
"type": "carpet"
}
],
"choropleth": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"type": "choropleth"
}
],
"contour": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "contour"
}
],
"contourcarpet": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"type": "contourcarpet"
}
],
"heatmap": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "heatmap"
}
],
"heatmapgl": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "heatmapgl"
}
],
"histogram": [
{
"marker": {
"pattern": {
"fillmode": "overlay",
"size": 10,
"solidity": 0.2
}
},
"type": "histogram"
}
],
"histogram2d": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "histogram2d"
}
],
"histogram2dcontour": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "histogram2dcontour"
}
],
"mesh3d": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"type": "mesh3d"
}
],
"parcoords": [
{
"line": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "parcoords"
}
],
"pie": [
{
"automargin": true,
"type": "pie"
}
],
"scatter": [
{
"fillpattern": {
"fillmode": "overlay",
"size": 10,
"solidity": 0.2
},
"type": "scatter"
}
],
"scatter3d": [
{
"line": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatter3d"
}
],
"scattercarpet": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattercarpet"
}
],
"scattergeo": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattergeo"
}
],
"scattergl": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattergl"
}
],
"scattermapbox": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattermapbox"
}
],
"scatterpolar": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatterpolar"
}
],
"scatterpolargl": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatterpolargl"
}
],
"scatterternary": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatterternary"
}
],
"surface": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "surface"
}
],
"table": [
{
"cells": {
"fill": {
"color": "#EBF0F8"
},
"line": {
"color": "white"
}
},
"header": {
"fill": {
"color": "#C8D4E3"
},
"line": {
"color": "white"
}
},
"type": "table"
}
]
},
"layout": {
"annotationdefaults": {
"arrowcolor": "#2a3f5f",
"arrowhead": 0,
"arrowwidth": 1
},
"autotypenumbers": "strict",
"coloraxis": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"colorscale": {
"diverging": [
[
0,
"#8e0152"
],
[
0.1,
"#c51b7d"
],
[
0.2,
"#de77ae"
],
[
0.3,
"#f1b6da"
],
[
0.4,
"#fde0ef"
],
[
0.5,
"#f7f7f7"
],
[
0.6,
"#e6f5d0"
],
[
0.7,
"#b8e186"
],
[
0.8,
"#7fbc41"
],
[
0.9,
"#4d9221"
],
[
1,
"#276419"
]
],
"sequential": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"sequentialminus": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
]
},
"colorway": [
"#636efa",
"#EF553B",
"#00cc96",
"#ab63fa",
"#FFA15A",
"#19d3f3",
"#FF6692",
"#B6E880",
"#FF97FF",
"#FECB52"
],
"font": {
"color": "#2a3f5f"
},
"geo": {
"bgcolor": "white",
"lakecolor": "white",
"landcolor": "#E5ECF6",
"showlakes": true,
"showland": true,
"subunitcolor": "white"
},
"hoverlabel": {
"align": "left"
},
"hovermode": "closest",
"mapbox": {
"style": "light"
},
"paper_bgcolor": "white",
"plot_bgcolor": "#E5ECF6",
"polar": {
"angularaxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
},
"bgcolor": "#E5ECF6",
"radialaxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
}
},
"scene": {
"xaxis": {
"backgroundcolor": "#E5ECF6",
"gridcolor": "white",
"gridwidth": 2,
"linecolor": "white",
"showbackground": true,
"ticks": "",
"zerolinecolor": "white"
},
"yaxis": {
"backgroundcolor": "#E5ECF6",
"gridcolor": "white",
"gridwidth": 2,
"linecolor": "white",
"showbackground": true,
"ticks": "",
"zerolinecolor": "white"
},
"zaxis": {
"backgroundcolor": "#E5ECF6",
"gridcolor": "white",
"gridwidth": 2,
"linecolor": "white",
"showbackground": true,
"ticks": "",
"zerolinecolor": "white"
}
},
"shapedefaults": {
"line": {
"color": "#2a3f5f"
}
},
"ternary": {
"aaxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
},
"baxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
},
"bgcolor": "#E5ECF6",
"caxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
}
},
"title": {
"x": 0.05
},
"xaxis": {
"automargin": true,
"gridcolor": "white",
"linecolor": "white",
"ticks": "",
"title": {
"standoff": 15
},
"zerolinecolor": "white",
"zerolinewidth": 2
},
"yaxis": {
"automargin": true,
"gridcolor": "white",
"linecolor": "white",
"ticks": "",
"title": {
"standoff": 15
},
"zerolinecolor": "white",
"zerolinewidth": 2
}
}
},
"title": {
"text": "Simulation step sizes"
},
"xaxis": {
"anchor": "y",
"autorange": true,
"domain": [
0,
1
],
"range": [
-0.0005069428619697973,
1.2273086688288792
],
"title": {
"text": "SYSTEM TIME"
},
"type": "linear"
},
"yaxis": {
"anchor": "x",
"autorange": true,
"domain": [
0,
1
],
"range": [
0.005476280315121219,
0.215950674012697
],
"title": {
"text": "Step size"
},
"type": "linear"
}
}
},
"image/png": "iVBORw0KGgoAAAANSUhEUgAABVsAAAFoCAYAAABJ+CtsAAAAAXNSR0IArs4c6QAAIABJREFUeF7svX2clOV56H/tLiCoQIxWYGErvoSwSbbwI3HdUCIGTEnMCTm1LXmxAWN4qTa4qNED5vibY3IinOWgpiEKXWJIui2yoaYrx8W0XQs2JxWNRI6JEjiuTVtfYlBExJ1Zlt3zeWYzy+wwO/vM3C/P/dzznX/a4H1f93V9r2dm2C/PXk9FX19fn/CCAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABJQIVyFYlfmyGAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIJAmgGzlQoAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgoIEAslUDREJAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEEC2cg1AAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACENBAANmqASIhIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQggW7kGIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhoIIBs1QCREBCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEkK1cAxCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAENBBAtmqASAgIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAshWrgEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhoIIFs1QCQEBCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAFkK9cABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAENBJCtGiASAgIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAAspVrAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEICABgLIVg0QCQEBCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAANnKNQABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAQAMBZKsGiFGHeOFXL8uK2zbIDUs+LVdfdXnU6XA+BCAAAQhAAAIQgAAEIAABCEAAAhCAAATKkgCytUDbn3rmgFy7at1pK75+23WDpGZGdl417zK5ecUi6xeSimx9qP1xue97bbK56Ra5+ILqQbnfvblV2h/bm/e/WS8yz4EqddvM/8jRY3L96nvkd6vPlztvvU7GjB5l83jOggAEIAABCEAAAhCAAAQgAAEIQAACELBEANk6BOhANH5nW7tsvXe1XDpz+sCqQE7e0fSAfOlzVw2IVWSrpas15xhkazTcORUCEIAABCAAAQhAAAIQgAAEIAABCEAgPwFkax4uw0m84E7F9o4n5JqrP+bEdTVcvoWSLHRnqxPFFUhCpW7XayM/CEAAAhCAAAQgAAEIQAACEIAABCAAgfgRQLbm6VlmfEDuXa1DtTef9AvujH31tTdk8aIFsur/3yiv/Pr19PZPzm9I/yr5zw90DhpRkPnzzK+YZ2KuXbNs0J21mV9JX/SpKwZGGeQ7P3MHbnbOkyacO2gkQL41wfpM3UENTz5zQO5fd5OcM37sQKjMXb+ZP8i+yzfzZ5m9d61ZJrevbZZnn+8cVH+YX6XP1JVhFwTIjHDI99+C/56dS1eyWxLrH5BHOp4YyD13BERGNt/7tS/L91t/NLC2rvai0+oeqv/5zsnuZ6Zn9TOnp++Gzrc+O3Z2jmFqCPbmG3kR9vqN38cWGUMAAhCAAAQgAAEIQAACEIAABCAAATcJIFvz9CUj8s579/hQwm0o2RqMIciWbtmCMN+fZz/gSodsDUrLfmBWvrtYh5vZmi1bM+IviJuZPTrUPNKMkM2WlrnSsdBbIh/TXAle6M7WfKMd8p2fEc65Inoo0ZybcyEmGbkapu5MnH97+bWBay5sDfn+cSDOdyy7+VFJVhCAAAQgAAEIQAACEIAABCAAAQhAYHgCyNYhGA31cKx8dwsWurM194FImTteh/tzVdmar6x8d8UWI1uHWjtU/fnuig1itO7cPazELnRWVzIlH3jvhVJItg7FOTduMTXlYzpUDoE8ffyJZ2TBFfUSRrbmmxEctoahxPDPf/mijBl9xmkPPhv+Y4EVEIAABCAAAQhAAAIQgAAEIAABCEAAAqUQQLYOQy0jyjK/Bp9Zni1dXZWtQ/2qffavqRcjW4eSf/lk4lACMOwdlxnZXejX+YcSnfmkcqZvuRJ7qHzCCNIgZvb1MdSv7Q8XK3N3bXZfiq0heGhb7iiKUj4Q2AMBCEAAAhCAAAQgAAEIQAACEIAABCBQOgFka5HsMhIs2JaZZeqibM3cKTmcwAsrW0efcUZ6/mnwyr0rN9+v0qvK1uCcfHcXZ89kHUq2DiWZs1udEaND1Z+paeL5707PWS30yifkw45PyDcqIDirmBqC9fnm7+bOpy3yUmc5BCAAAQhAAAIQgAAEIAABCEAAAhCAQJEEkK1FAsuIrfu+1zbwsCnXZGsxd3yGla3BA7Js3tmary25ArmYOodqs+qdrfniZiRx5k7TZCol16++RzIzXDN78on73P+W/SC0sJdq9kO1eEhWWGqsgwAEIAABCEAAAhCAAAQgAAEIQAAC6gSQrXkYBrIseF06c3pewrl3bZqUrdkPzQqSyffr5bnn53tg0lB7g7Vr1jYPiOPsgnPrLGa+qeqdrY8/sV+Cu0MDyZsrIHMfPJUrJPPdaVusbB1qZm5unGBdZobsUOyCP8+VrZkc9/38UF72xdTwo91PyuUNM2XM6FEDKRSaZ6v+sUEECEAAAhCAAAQgAAEIQAACEIAABCAAgXwEkK15qBSaF5rvQUYmZGuhp9wH82Ozf0U89/x8M0Kzf9W90N5CsjWT07+9/NrACIVM3N+tPn/QeAFV2ZpP7OZK5EJCMsNk1gfeMyivYM/6+x+Ua66+Mv3gqHznDFVTvjdQvt7n8s/Xj8yv/Re68zRsDflYh52Ny8ciBCAAAQhAAAIQgAAEIAABCEAAAhCAgD4CyNYhWA41MzPfQ4hMyNYgrdxZoMGdnnetWSa3r22W7Ls5Cwm/zIO9htobnJM7GzUjAIcSphnhnEGXPUc182eqsjWIk3vOpAnnnnYXaC6j7Fyyf50+u83Za/LNOg3W5qtpqLddvtmy+Wbl5t6Rm/vQtXw8w9SQb02hB4vp+/ggEgQgAAEIQAACEIAABCAAAQhAAAIQgEA2AWQr10NZE+AO0LJuP8VDAAIQgAAEIAABCEAAAhCAAAQgAAGtBJCtWnESLG4EkK1x6xj5QgACEIAABCAAAQhAAAIQgAAEIAABdwkgW93tDZlZIIBstQCZIyAAAQhAAAIQgAAEIAABCEAAAhCAQJkQQLaWSaMpEwIQgAAEIAABCEAAAhCAAAQgAAEIQAACEDBLANlqli/RIQABCEAAAhCAAAQgAAEIQAACEIAABCAAgTIhgGwtk0ZTJgQgAAEIQAACEIAABCAAAQhAAAIQgAAEIGCWALLVLF+iQwACEIAABCAAAQhAAAIQgAAEIAABCEAAAmVCANlaJo2mTAhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQMAsAWSrWb5EhwAEIAABCEAAAhCAAAQgAAEIQAACEIAABMqEALK1TBpNmRCAAAQgAAEIQAACEIAABCAAAQhAAAIQgIBZAshWs3yJDgEIQAACEIAABCAAAQhAAAIQgAAEIAABCJQJAWRrmTSaMiEAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAGzBJCtZvkSHQIQgAAEIAABCEAAAhCAAAQgAAEIQAACECgTAsjWMmk0ZUIAAhCAAAQgAAEIQAACEIAABCAAAQhAAAJmCSBbzfIlOgQgAAEIQAACEIAABCAAAQhAAAIQgAAEIFAmBJCtZdJoyoQABCAAAQhAAAIQgAAEIAABCEAAAhCAAATMEkC2muVLdAhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQKBMCCBby6TRlAkBCEAAAhCAAAQgAAEIQAACEIAABCAAAQiYJYBsNcuX6BCAAAQgAAEIQAACEIAABCAAAQhAAAIQgECZEEC2lkmjKRMCEIAABCAAAQhAAAIQgAAEIAABCEAAAhAwSwDZapYv0SEAAQhAAAIQgAAEIAABCEAAAhCAAAQgAIEyIYBsLZNGUyYEIAABCEAAAhCAAAQgAAEIQAACEIAABCBglgCy1SxfokMAAhCAAAQgAAEIQAACEIAABCAAAQhAAAJlQgDZWiaNpkwIQAACEIAABCAAAQhAAAIQgAAEIAABCEDALAFkq1m+RIcABCAAAQhAAAIQgAAEIAABCEAAAhCAAATKhACytUwaTZkQgAAEIAABCEAAAhCAAAQgAAEIQAACEICAWQLIVrN8iQ4BCEAAAhCAAAQgAAEIQAACEIAABCAAAQiUCQFka5k0mjIhAAEIQAACEIAABCAAAQhAAAIQgAAEIAABswSQrWb5Eh0CEIAABCAAAQhAAAIQgAAEIAABCEAAAhAoEwLI1jJpNGVCAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACZgkgWzXwPdbVI8feOaEhEiEgEH8C5407Q97qOiHdJ3rjXwwVQEADgbPHjJCKigq+JzSwJIQfBEaNqJRxZ42Uw0dTfhREFRDQQKD63DHy8utdGiIRAgJ+EHj32FHyTrJHkvxM4UdDqUKZwFmjR8iIqgo5etyOewq+l3iVTgDZWjq79M4777xTbr71dgmEa7GvX7/ykuz9yW5Z+EfXFLs1vf7Znz0lx4+/LQ1zPlrS/o5H2+TCS6bLRZe8t6T92Zva21plxqx6mVwzVTlW244WaZgzTyZMrFaOlR2guzsl27ZukiXLG7XGDYJ1HjogL3YelPkLFmqPnRswleyS7S1bZPHSlcbPGuqAQvVGLVtd4KPSmK2b75VrvniDjBw1SiWMs3ufe/ZncuSNw/L7cz/mbI66EyskW5/48WNy1tnjpG7mh3QfWzbx3jr6pux6uFU+84XlZVOzi4UW895GtrrYwdNzCj6rOx59WP7489fFI+GYZ+mDbN2/b6+kkkmpnz035t0gfRcImJCtezp2yaTqKTKtts6FEskBAkURsClbmzc2SSKRKCo/Fg8mgGxVvCKQrf0Aka3I1sxbCdmq9qGCbFXj5+JuZKvZriBbzfINGx3ZGpZUfNYhW+32CtlqlzenuU8A2ep+j8jQLgFkq13eqqchWxUJIluRrQEB7mw99UZCtqp9qCBb1fi5uBvZarYryFazfMNGR7aGJRWfdchWu71CttrlzWnuE0C2ut8jMrRLANlql7fqachWVYIi6Tl8pYwR0HA0ISDgHIGoZatzQEio7Akws7XsLwEA5BBgjACXBAROJ+CDbKWvENBJwIRs1ZkfsSBgm4BN2RrUxsxWtQ4jW9X4pXcjWzVAJIQ3BJCt3rSSQjQRQLZqAkkYbwggW71pJYVoJIBs1QiTUF4QQLZ60UaK0EgA2aoRpoVQyFYNkJGtGiASwhsCyFZvWkkhmgggWzWBJIw3BJCt3rSSQjQSQLZqhEkoLwggW71oI0VoJIBs1QjTQihkqyJkZrb2A+QBWTwgK/NWilq2ppJdsr1liyxeulLx3R3Ndma2RsPd5KnMbDVJV4SZrWb5ho3OzNawpOKzjpmtdnvlg2zdv2+vpJJJqZ891y48TvOSgAnZuqdjl0yqniLTauu8ZEZRfhOwKVubNzZJIpHwG6jh6pCtioCRrcjWgAAPyDr1RkK2qn2oIFvV+Lm4G9lqtivIVrN8w0ZHtoYlFZ91yFa7vUK22uXNae4TQLa63yMytEsA2WqXt+ppyFZFgshWZCuydfCbCNmq9qGCbFXj5+JuZKvZriBbzfINGx3ZGpZUfNYhW+32CtlqlzenuU8A2ep+j8jQLgFkq13eqqchW1UJ8oAsDQQJ4ROBqGWrTyypxQ8CzGz1o49UoY8AM1v1sSSSPwR8kK3+dINKXCCgW7YePVohG75Z5UJp5AAB5wlcMbdX/vTqM5zP0+UEka0ausMDsjRAJIQ3BJCt3rSSQjQRQLZqAkkYbwggW71pJYVoJIBs1QiTUF4QQLZ60UaKiCkBZKt648pStj71zAG5dtW6NL262ovk/nU3yTnjx+almb02WPDJ+Q1y563XyZjRowbWI1vVL0Qi+EMA2epPL6lEDwFkqx6ORPGHALLVn15SiT4CyFZ9LInkBwFTsnXc2D75yk0n/YBEFWVFwOYYgQBs8L3Eq3QCZSdbX/jVy/LVtc3yjTXL5OILquWh9sfliaefO02gZpAG/72m+ny5dOZ06Up2S2L9AzLx/HfLzSsWpZcws7WfVHtbq8yYVS+Ta6aWfjX+dmfbjhZpmDNPJkysVo6VHaC7OyXbtm6SJcsbtcYNgvGArFNIo5atqWSXbG/ZIouXrtTeZxsBmdlqg7LdM5jZapY3M1vN8g0bnZmtYUnFZx0zW+32ygfZun/fXkklk1I/e65deJzmJQETsvW7W3ZJRVWNNK56v5fMKMpvAjZla/PGJkkkEn4DNVxd2cnWQJ7+67+/OiBLc+XrcLxz5SyyFdmKbB38rkG2DvcpUvi/I1vV+Lm4G9lqtivIVrN8w0ZHtoYlFZ91yFa7vUK22uXNae4TQLa63yMytEsA2WqXt+ppZSdb797cmmaWuTP1yNFjcv3qe+SWFYvSd68O98rdj2xFtiJbka3DfW4U89+RrcXQisdaZKvZPiFbzfINGx3ZGpZUfNYhW+32CtlqlzenuU8A2ep+j8jQLgFkq13eqqeVpWydWjNRrr7q8jS7YmRrML91w+bW02a89vb2SW9fn2ov2A8BLwhUVVam3w99vCec7WdPb5+MqKxwNj/fEqus6GfN94RvnaWeUglUVFRI8L442dtbVIiekyIjeJB0UcxYHB8CI6oqpedkce+J+FRX3pn2nOyTEVX8vavYq6CqskJ6+0TbzxRvHBG5/esn5ZzxImsTfJkU2w/WR08g/TNFhUjgn2y8gu8lXqUTKEvZGuAq9s7WQLSuWdssm5tuSc96zX4dT/bI8SRDtku/DNnpE4Fzzh4pbyd75ESPnS8Bn9jZqyXoDX/pt8X7zNFVEsil4109to7kHAg4TWDkiAoJ7vg+cuyE03mSHARsEjj/XWfIa2+mbB7JWdYI8PeuUlCPP2ukJFM9ktL0M8Wbb4o03VMp48eJ/Jdb+IeNUnrCnmgJnHlGlQT/CHHM0s8UwfcSr9IJlJ1sLWVmayHRGqA/9s4Jaxd86a1mJwTsEIh6ZqudKjkFAuEJFBojED4KKyHgD4FRIypl3Fkj5fBRxJI/XaUSVQI+jBFQZcB+CGQTMDFGYMM3q2Tc2D75yk3cKMXVFj8CNscIBHSC7yVepRMoO9ma+0Cs3AdeBf+7defugVEBQ40OyCBnZms/ifa2Vpkxq14m10wt/Wr87c62HS3SMGeeTJg4+A5i1cDd3SnZtnWTLFneqBrqtP2dhw7Ii50HZf6Chdpj5wZMJbtke8sWWbx0pfGzhjqgUL1Ry1YX+Kg0hpmtKvTc3MvMVrN9YWarWb5hozOzNSyp+KxjZqvdXvkgW/fv2yupZFLqZ8+1C4/TvCRgQrZ+d8suqaiqkcZV7/eSGUX5TcCmbG3e2CSJRMJvoIarKzvZGvAMBOq1q9al0dbVXjRoBmuubA0eiPWdbe2D2jBpwrkD4wSQrf1okK3I1sybBNmq9qmNbFXj5+JuZKvZriBbzfINGx3ZGpZUfNYhW+32CtlqlzenuU8A2ep+j8jQLgFkq13eqqeVpWxVhZa9H9mKbA0IcGfrqXcFslXtEwbZqsbPxd3IVrNdQbaa5Rs2OrI1LKn4rEO22u0VstUub05znwCy1f0ekaFdAshWu7xVT0O2qhJkZqsGgoTwiUDUstUnltTiBwFmtvrRR6rQR4CZrfpYEskfAj7IVn+6QSUuEDAhW5nZ6kJnyaFUAjZla5AjM1tL7VT/PmSrGr/0bh6QpQEiIbwhgGz1ppUUookAslUTSMJ4QwDZ6k0rKUQjAWSrRpiE8oIAstWLNlKERgLIVo0wLYRCtmqAjGzVAJEQ3hBAtnrTSgrRRADZqgkkYbwhgGz1ppUUopEAslUjTEJ5QQDZ6kUbKUIjAWSrRpgWQiFbFSEzs7UfIA/I4gFZmbdS1LI1leyS7S1bZPHSlYrv7mi2M7M1Gu4mT2Vmq0m6IsxsNcs3bHRmtoYlFZ91zGy12ysfZOv+fXsllUxK/ey5duFxmpcETMjW727ZJRVVNdK46v1eMqMovwnYlK3NG5skkUj4DdRwdchWRcDIVmRrQIAHZJ16IyFb1T5UkK1q/FzcjWw12xVkq1m+YaMjW8OSis86ZKvdXiFb7fLmNPcJIFvd7xEZ2iWAbLXLW/U0ZKsiQWQrshXZOvhNhGxV+1BBtqrxc3E3stVsV5CtZvmGjY5sDUsqPuuQrXZ7hWy1y5vT3CeAbHW/R2RolwCy1S5v1dOQraoEeUCWBoKE8IlA1LLVJ5bU4gcBZrb60Ueq0EeAma36WBLJHwI+yFZ/ukElLhAwIVs3fLNKxo3tk6/cdNKFEskBAkURsClbg8SC7yVepRNAtpbObmAnD8jSAJEQ3hBAtnrTSgrRRADZqgkkYbwhgGz1ppUUopEAslUjTEJ5QQDZ6kUbKUIjAWSrRpgWQiFbNUBGtmqASAhvCCBbvWklhWgigGzVBJIw3hBAtnrTSgrRSADZqhEmobwggGz1oo0UoZEAslUjTAuhkK2KkJnZ2g+wva1VZsyql8k1UxWJirTtaJGGOfNkwsRq5VjZAbq7U7Jt6yZZsrxRa9wgGA/IOoU0atmaSnbJ9pYtsnjpSu19thGQma02KNs9g5mtZnkzs9Us37DRmdkallR81jGz1W6vfJCt+/ftlVQyKfWz59qFx2leEjAhW7+7ZZdUVNVI46r3e8mMovwmYFO2Nm9skkQi4TdQw9UhWxUBI1uRrcjWwW8iZKvahwqyVY2fi7uRrWa7gmw1yzdsdGRrWFLxWYdstdsrZKtd3pzmPgFkq/s9IkO7BJCtdnmrnoZsVSSIbEW2IluRrYofI4O2I1t10nQjFrLVbB+QrWb5ho2ObA1LKj7rkK12e4Vstcub09wngGx1v0dkaJcAstUub9XTkK2qBEWEma0aIBLCGwJR39nqDUgK8YYAM1u9aSWFaCLAzFZNIAnjFQEfZKtXDaGYyAmYkK0bvlkl48b2yVduOhl5fSQAgWIJ2JStQW7B9xKv0gkgW0tnN7AT2aoBIiG8IYBs9aaVFKKJALJVE0jCeEMA2epNKylEIwFkq0aYhPKCALLVizZShEYCyFaNMC2EQrZqgIxs1QCREN4QQLZ600oK0UQA2aoJJGG8IYBs9aaVFKKRALJVI0xCeUEA2epFGylCIwFkq0aYFkIhWxUhM7O1H2B7W6vMmFUvk2umKhIVadvRIg1z5smEidXKsbIDdHenZNvWTbJkeaPWuEGwzkMH5MXOgzJ/wULtsXMDppJdsr1liyxeutL4WUMdUKjeqGWrC3xUGsPMVhV6bu5lZqvZvjCz1SzfsNGZ2RqWVHzWMbPVbq98kK379+2VVDIp9bPn2oXHaV4SMCFbv7tll1RU1Ujjqvd7yYyi/CZgU7Y2b2ySRCLhN1DD1SFbFQEjW5GtyNbBbyJkq9qHCrJVjZ+Lu5GtZruCbDXLN2x0ZGtYUvFZh2y12ytkq13enOY+AWSr+z0iQ7sEkK12eauehmxVJIhsRbYiW5Gtih8jg7YjW3XSdCMWstVsH5CtZvmGjY5sDUsqPuuQrXZ7hWy1y5vT3CeAbHW/R2RolwCy1S5v1dOQraoERYSZrRogEsIbAlHf2eoNSArxhgAzW71pJYVoIsDMVk0gCeMVAR9kq1cNoZjICZiQrRu+WSXjxvbJV246GXl9JACBYgnYlK1BbsH3Eq/SCSBbS2c3sBPZqgEiIbwhgGz1ppUUookAslUTSMJ4QwDZ6k0rKUQjAWSrRpiE8oIAstWLNlKERgLIVo0wLYRCtmqAjGzVAJEQ3hBAtnrTSgrRRADZqgkkYbwhgGz1ppUUopEAslUjTEJ5QQDZ6kUbKUIjAWSrRpgWQiFbFSEzs7UfYHtbq8yYVS+Ta6YqEhVp29EiDXPmyYSJ1cqxsgN0d6dk29ZNsmR5o9a4QbDOQwfkxc6DMn/BQu2xcwOmkl2yvWWLLF660vhZQx1QqN6oZasLfFQaw8xWFXpu7mVmq9m+MLPVLN+w0ZnZGpZUfNYxs9Vur3yQrfv37ZVUMin1s+fahcdpXhIwIVu/u2WXVFTVSOOq93vJjKL8JmBTtjZvbJJEIuE3UMPVIVsVASNbka3I1sFvImSr2ocKslWNn4u7ka1mu4JsNcs3bHRka1hS8VmHbLXbK2SrXd6c5j4BZKv7PSJDuwSQrXZ5q56GbFUkiGxFtiJbka2KHyODtiNbddJ0Ixay1WwfkK1m+YaNjmwNSyo+65Ctdnvlg2zd/diTciKVlPfUXmEXHqd5SWDsmSMk1X1Sunv6tNR3/J0++Yddu6RyZI3ceCN3tmqBShCrBJCtVnErH4ZsVUYowsxWDRAJ4Q2BqO9s9QYkhXhDgJmt3rSSQjQRYGarJpCE8YqAD7L163eNkBM9XrWFYjwkMH58n9zSeNLDyijJdwI2ZWvAMvhe4lU6AWRr6ewGdiJbNUAkhDcEkK3etJJCNBFAtmoCSRhvCCBbvWklhWgk4JNsvaCmT6RCIxxClSWBkVUVcrK3T3r13Ng6wPDss0U+88fI1rK8qGJeNLI1Xg1EtmroF7JVA0RCeEMA2epNKylEEwFkqyaQhPGGALLVm1ZSiEYCPsjWr60dIT0nRO5Y3SMjR2mEQ6iyJKB7ZmtZQqRorwggW+PVTmSrYr+Y2doPsL2tVWbMqpfJNVMViYq07WiRhjnzZMLEauVY2QG6u1OybesmWbK8UWvcIFjnoQPyYudBmb9gofbYuQFTyS7Z3rJFFi9dafysoQ4oVG/UstUFPiqNYWarCj039zKz1WxfmNlqlm/Y6MxsDUsqPuvMnw/SAAAgAElEQVSY2Wq3Vz7I1rs3PCV9vUm5sfEjyFa7l4+Xp5mQrXs6dsmk6ikyrbbOS2YU5TcBm7K1eWOTJBIJv4Earg7ZqggY2YpsRbYOfhMhW9U+VJCtavxc3I1sNdsVZKtZvmGjI1vDkorPOmSr3V4hW+3y5jT3CSBb3e8RGdolgGy1y1v1NGSrIkFkK7IV2YpsVfwYGbQd2aqTphuxkK1m+4BsNcs3bHRka1hS8VmHbLXbK2SrXd6c5j4BZKv7PSJDuwSQrXZ5q56GbFUlKCLMbNUAkRDeEIj6zlZvQFKINwSY2epNKylEEwFmtmoCSRivCPggW5nZ6tUlGXkxJmRr5EWRAAQUCNiUrUGawfcSr9IJIFtLZzewE9mqASIhvCGAbPWmlRSiiQCyVRNIwnhDANnqTSspRCMBZKtGmITyggCy1Ys2UoRGAshWjTAthEK2aoCMbNUAkRDeEEC2etNKCtFEANmqCSRhvCGAbPWmlRSikQCyVSNMQnlBANnqRRspQiMBZKtGmBZCIVsVITOztR9ge1urzJhVL5NrpioSFWnb0SINc+bJhInVyrGyA3R3p2Tb1k2yZHmj1rhBsM5DB+TFzoMyf8FC7bFzA6aSXbK9ZYssXrrS+FlDHVCo3qhlqwt8VBrDzFYVem7uZWar2b4ws9Us37DRmdkallR81jGz1W6vfJCtd294Svp6k3Jj40dk5Ci7/DjNPwImZOuejl0yqXqKTKut8w8YFXlPwKZsbd7YJIlEwnumJgtEtirSRbYiW5Gtg99EyFa1DxVkqxo/F3cjW812Bdlqlm/Y6MjWsKTisw7ZardXyFa7vDnNfQLIVvd7RIZ2CSBb7fJWPQ3ZqkgQ2YpsRbYiWxU/RgZtR7bqpOlGLGSr2T4gW83yDRsd2RqWVHzWIVvt9grZapc3p7lPANnqfo/I0C4BZKtd3qqnIVtVCYoIM1s1QCSENwSivrPVG5AU4g0BZrZ600oK0USAma2aQBLGKwI+yNavrR0hPSdE7ljdwxgBr67OaIoxIVujqYRTIaCHgE3ZGmQcfC/xKp0AsrV0dgM7ka0aIBLCGwLIVm9aSSGaCCBbNYEkjDcEkK3etJJCNBJAtmqESSgvCCBbvWgjRWgkgGzVCNNCKGSrBsjIVg0QCeENAWSrN62kEE0EkK2aQBLGGwLIVm9aSSEaCSBbNcIklBcEkK1etJEiNBJAtmqEaSEUslURMjNb+wG2t7XKjFn1MrlmqiJRkbYdLdIwZ55MmFitHCs7QHd3SrZt3SRLljdqjRsE6zx0QF7sPCjzFyzUHjs3YCrZJdtbtsjipSuNnzXUAYXqjVq2usBHpTHMbFWh5+ZeZraa7QszW83yDRudma1hScVnHTNb7fbKB9l694anpK83KTc2foQxAnYvHy9PMyFb93TskknVU2RabZ2XzCjKbwI2ZWvzxiZJJBJ+AzVcHbJVETCyFdmKbB38JkK2qn2oIFvV+Lm4G9lqtivIVrN8w0ZHtoYlFZ91yFa7vUK22uXNae4TQLa63yMytEsA2WqXt+ppyFZFgshWZCuyFdmq+DEyaDuyVSdNN2IhW832Adlqlm/Y6MjWsKTisw7ZardXyFa7vDnNfQLIVvd7RIZ2CSBb7fJWPc1L2Xrk6DG5fvU98uzznWk+W+9dLZfOnD4sq7s3t8rUmoly9VWXD6x94Vcvy4rbNsgrv3594M/qai+S+9fdJOeMH5v+M2a2DouWBWVEIOo7W8sINaXGhAAzW2PSKNK0RoCZrdZQc1CMCPggW7+2doT0nBC5Y3UPYwRidO25mqoJ2epqreQFgTAEbMrWIJ/ge4lX6QS8k61dyW5JrH9AGj74vrQ0DWTpV9c2yzfWLJOLL8g/A/Sh9sfljqYH0hS/ftt1p8nW4fYjW0u/ANnpHwFkq389pSI1AshWNX7s9o8AstW/nlKROgFkqzpDIvhFANnqVz+pRp0AslWdoc0I3snWQK6uv+9BWXv7svSdp7nytRDcoe5sRbbavCQ5K+4EkK1x7yD56yaAbNVNlHhxJ4BsjXsHyd8EAWSrCarEjDMBZGucu0fuJgggW01QNRfTO9n61DMHZMPm1kG/5h9I1OB184pFBUmGGSOQO0KAma39SNvbWmXGrHqZXDNV+Wpt29EiDXPmyYSJ+e9ELvWA7u6UbNu6SZYsbyw1xJD7Og8dkBc7D8r8BQu1x84NmEp2yfaWLbJ46UrjZw11QKF6o5atLvBRaQwzW1XoubmXma1m+8LMVrN8w0ZnZmtYUvFZx8xWu73yQbbeveEp6etNyo2NH2GMgN3Lx8vTTMjWPR27ZFL1FJlWW+clM4rym4BN2dq8sUkSiYTfQA1X56Vs/cHO3XLnrdfJmNGj0vhUZGsu/yDWq6+9MRA/kK1rbr9Dunt6i27VSy/9hzy+u0M+d82SovcGG3761F45/vYxmfvRK0vav7PtIXnv9FqZ9t7akvZnb9rR+jdyaf2H5YKpFyrH2tayVebO+5hUV09WjpUdIJVKSfOmb8mXG7+iNW4Q7JcHnpNDB38p/2nhH2qPnRuwq6tLHthyv/z5ypuNnzXUAYXqHTOqKv1+ONnbF0l+LvBRKfxb966XFTc0yqhR/Z9fJl5BZypMBA4R85mfPS2vH/6NzP/Yx0Os9mPJyBEVUlFRId0nTv+e2P3YP8jYcePlgx+q96PYCKp4880j8ret2+RLy2+I4HSOzBAo5r1dVVkho0ZWSlfqZFEAo/zsKipRTxYHn9U7H/6hXHvdck8qcruM4B/m3u7qcTvJYbL7b1//SVq2fnXNPDH415hYMyL58ARGj6qUnp4+6dH4M8WPdv0vmTylRj5QNyN8IqyEgCMEgp8pKisqJJXnZwrdKW5o+gayVRGql7JV552tuXxzxxQEsnX17f+1pAv+5Zf+Q/55z2Pymc8vLqmNTwey9fjbcvkV80va/8jDP5T3vHe6Ftn6tz/YJh+6tEGLbH3wr7+XFsiTDMjW72zeKDfceEtJvAptOnjgeTl06IB88lPmZWuyq0u++51Ncv2Xb9JeR9iAheoN/sUteaJXTp4s/h8gwp5faJ0LfFTq+PY3/6csu/5Gs7K1T6QiItu6P5Ctrx+WeVcuUMEUq71njKxK55s6cbpY2vNP/yhjx46TWcjWknt6NJCtP3hQrlt2fckx2KhOoJj3dlVlpQQ/RB9PFieW+iL87FInFL8Irx8+LI/sfEgWfxHZaqN7484cKW+9c8LGUcbO+Np//5e0bF2z+qPI1izKfHaVdsmdecaI9A0cPRp/pvj7QLbW/K68/wO/V1pS7IJAhARGjaiSykqRZHdx/1hdSsr3rL8L2VoKuKw93slW3TNbh5OtwX/nAVmKVyHbvSIQ9RgBr2BSjBcEmNnqRRspQiMBZrZqhEkobwj4MEbga2tHSM8JkTtW9zBGwJsrM7pCTIwRiK4aToaAOgGbYwSCbIPvJV6lE/BOtuY+ECuQr9kPuAr+94rbNsjaNcvk0pnTB5HLN7P1R7uflEsunCIXX9A/PzTfSAJka+kXIDv9I4Bs9a+nVKRGANmqxo/d/hFAtvrXUypSJ4BsVWdIBL8IIFv96ifVqBNAtqoztBnBO9kawDty9Jhcv/oeefb5zjTLrfeuHhCr+WTrQ+2Pyx1NDwxwnzThXNncdEtasAYP3Lp21bqB//bJ+Q2D5sEG/wHZavOS5SzXCSBbXe8Q+dkmgGy1TZzzXCeAbHW9Q+QXBQFkaxTUOdNlAshWl7tDblEQQLZGQb30M72UraXjKH5nMLP15ltvl2MlDLT/9Ssvyd6f7JaFf3RN8QeLyLM/eyo9s7VhzkdL2t/xaJtceMl0ueiS95a0P3tTe1urzJhVL5NrpirHatvRIg1z5smEif13E+t6dXenZNvWTbJkeaOukANxOg8dkBc7D8r8BQu1x84NmEp2yfaWLbJ46UrjZw11QKF6o5atLvBRaczWzffKNV+8QUZ6+mSJYp5YrsLRpb2FZOsTP35Mzjp7nNTN/JBLKccql7eOvim7Hm6Vz3yBuZJRNq6Y9zayNcpOhT/7yBuHpePRh+WPP39d+E2sLJmAD7L17g1PpWe23tj4EcYIlHwlsDFDwIRs3dOxSyZVT5FptXWAhkDsCNiUrc0bm5jZqniFIFsVASJb+wEiW5GtmbcSslXtQwXZqsbPxd3IVrNdQbaa5Rs2OrI1LKn4rEO22u0VstUub05znwCy1f0ekaFdAshWu7xVT0O2KhJEtiJbAwLc2XrqjYRsVftQQbaq8XNxN7LVbFeQrWb5ho2ObA1LKj7rnvrpG/Lcz/5Oat7zpfgkHeNMx545Mj2aLM6vp598UiorknLjqo/IyJFxroTcXSCAbHWhC+TgEgFkq0vdGD4XZOvwjIZdwczWYRGxoIwIRC1bywg1pcaEADNbY9Io0rRGgDEC1lArHdS6o0p+/lyFUgw2lyeBO9b0IFvLs/VaqzYhW7UmSDAIWCZgU7YGpQW/ccGrdALI1tLZDexEtmqASAhvCCBbvWklhWgigGzVBJIw3hBAtsajlRnZ+r7pvXL++X3xSDrGWfpwZ2sG/7wruF5ifCk6kzqy1ZlWkIgjBJCtjjQiZBrI1pCgCi1DtmqASAhvCCBbvWklhWgigGzVBJIw3hBAtsajldv/tkp+8YsKWXT1SfnAB5Bnprvmw8xW04yIX14EkK3l1W+qHZ4AsnV4Ri6tQLYqdoOZrf0AeUAWD8jKvJWilq2pZJdsb9kii5euVHx3R7Odma3RcDd5KjNbTdIVYWarWb5hozOzNSyp+Kzbtv2IHHnlh3L5lV9Ctlpomw+ydf++vZJKJqV+9lwLxDjCdwImZOuejl0yqXqKTKut8x0f9XlIwKZsbd7YJIlEwkOK9krSKlu7kt2SWP+APNLxhEyacK5sbrpFqiecl/6zhg++T66+6nJ7lVk6CdmKbA0I8ICsU284ZKvahw+yVY2fi7uRrWa7gmw1yzdsdGRrWFLxWYdstdsrZKtd3pzmPgFkq/s9IkO7BJCtdnmrnqZVtt69uVWm1kyUT8xrkPX3PyjXXH2lXHxBtTz1zAH5wc7dcuet18mY0aNUc3ZqP7IV2YpsHfyWRLaqfUQhW9X4ubgb2Wq2K8hWs3zDRke2hiUVn3XIVru9Qrba5c1p7hNAtrrfIzK0SwDZape36mnaZOuRo8dkzV3NcusNn03fzZotW1/41cuy/r4HZe3ty+Sc8WNVc3ZuPzNbnWsJCUVIIGrZGmHpHA2BvASY2cqFAYHBBJjZGo8rgpmtdvvkg2y1S4zTfCdgQrb6zoz6/CZgU7YGJIPvJV6lE7AiW32+szVAj2wt/QJkp38EkK3+9ZSK1AggW9X4sds/AsjWePQU2Wq3T8hWu7w5zX0CyFb3e0SGdgkgW+3yVj1Nm2wNEnmo/XF54unnZM2N18i3HvhheozAu981Vq5ffY8s+tQVXs5sRbaqXoLs940AstW3jlKPKgFkqypB9vtGANkaj44iW+32CdlqlzenuU8A2ep+j8jQLgFkq13eqqdpla1BMsFdrNeuWjcor633rpZLZ05XzdXJ/cxs7W9Le1urzJhVL5Nrpir3qW1HizTMmScTJlYrx8oO0N2dkm1bN8mS5Y1a4wbBeEDWKaRRy9ZUsku2t2yRxUtXau+zjYDMbLVB2e4ZzGw1y5uZrWb5ho3OzNawpOKzjpmtdnvlg2zdv2+vpJJJqZ891y48TvOSgAnZuqdjl0yqniLTauu8ZEZRfhOwKVubNzZJIpHwG6jh6rTLVsP5Ohce2YpsRbYOflsiW9U+ppCtavxc3I1sNdsVZKtZvmGjI1vDkorPOmSr3V4hW+3y5jT3CSBb3e8RGdolgGy1y1v1NGSrIkFkK7IV2YpsVfwYGbQd2aqTphuxkK1m+4BsNcs3bHRka1hS8VmHbLXbK2SrXd6c5j4BZKv7PSJDuwSQrXZ5q56mTbYeOXosPZv1d6vPlztvvU7GjB41kNsLv3pZ1t/3oKy9fZmcM36sas7O7ecBWc61hIQiJBD1na0Rls7REMhLgJmtXBgQGEyAma3xuCKY2Wq3Tz7IVrvEOM13AiZkq+/MqM9vAjZla0Ay+F7iVToBrbJ1zV3NUj3xPNne9phkz2lFtpbeIHZCIG4EkK1x6xj5miaAbDVNmPhxI4BsjUfHkK12+4Rstcub09wngGx1v0dkaJcAstUub9XTtMvWW2/4rLz7XWPTd7kGr/vX3SRvvHmMO1tVO8V+CMSEALI1Jo0iTWsEkK3WUHNQTAggW+PRKGSr3T4hW+3y5jT3CSBb3e8RGdolgGy1y1v1NCOy9eIL+p8i/9QzB+TaVevkM5+eJy+/etjLMQLMbO2/BNvbWmXGrHqZXDNV9ZqUth0t0jBnnkyY2H8d6Xp1d6dk29ZNsmR5o66QA3E6Dx2QFzsPyvwFC7XHzg2YSnbJ9pYtsnjpSuNnDXVAoXqjlq0u8FFpDDNbVei5uZeZrWb7wsxWs3zDRmdma1hS8VnHzFa7vfJBtu7ft1dSyaTUz55rFx6neUnAhGzd07FLJlVPkWm1dV4yoyi/CdiUrc0bmySRSPgN1HB1RmVrkHtXslsS6x+Qf3v5tfRdrr7NbEW29l+hyFZka+azCtmq9qmNbFXj5+JuZKvZriBbzfINGx3ZGpZUfNYhW+32CtlqlzenuU8A2ep+j8jQLgFkq13eqqdpk62qicR1P7IV2RoQ4M7WU+9gZKvapxmyVY2fi7uRrWa7gmw1yzdsdGRrWFLxWYdstdsrZKtd3pzmPgFkq/s9IkO7BJCtdnmrnoZsVSUoIsfeOSHHuno0RCIEBOJPIGrZGn+CVOAbAWa2+tZR6lElwMxWVYJ29jOz1Q7nzCk+yFa7xDjNdwImZKvvzKjPbwI2ZWtAMvhe4lU6AWRr6ewGdiJbNUAkhDcEkK3etJJCNBFAtmoCSRhvCCBb49FKZKvdPiFb7fLmNPcJIFvd7xEZ2iWAbLXLW/U0Zdl65OgxuX71PfLFz3xcvrv9UXn2+c68OdXVXuTlzNagWGSr6mXIfp8IIFt96ia16CCAbNVBkRg+EUC2xqObyFa7fUK22uXNae4TQLa63yMytEsA2WqXt+ppyrJVNYG472dma38HeUAWD8jKvJejlq2pZJdsb9kii5eujOXHCzNbY9m2gkkzs9VsT5nZapZv2OjMbA1LKj7rmNlqt1c+yNb9+/ZKKpmU+tlz7cLjNC8JmJCtezp2yaTqKTKtts5LZhTlNwGbsrV5Y5MkEgm/gRquDtmqCBjZimwNCPCArFNvJGSr2ocKslWNn4u7ka1mu4JsNcs3bHRka1hS8VmHbLXbK2SrXd6c5j4BZKv7PSJDuwSQrXZ5q56mVbbevblVXn3tDbnz1uvSeSXWPyCPdDwhkyacK5ubbpGLL6hWzde5/chWZCuydfDbEtmq9jGFbFXj5+JuZKvZriBbzfINGx3ZGpZUfNYhW+32CtlqlzenuU8A2ep+j8jQLgFkq13eqqdpk62Z2a23rFgkl86cLk89c0B+sHN3Wrz+/EDnwP8/ZvQo1Zyd28/MVudaQkIREohatkZYOkdDIC8BZrZyYZQDgR//pEq6u3tDlVpVWSFnjKqSd5I9odazKBoCv3i+Un7zmwpZ9Mcn5QPv64smiTI61QfZWkbtolQLBEzIVgtpcwQEjBGwKVuDIoLvJV6lE9AqW9fc1Sy33vDZ9B2swV2uwevmFYvkhV+9LOvve1DW3r5Mzhk/tvRsHd2JbHW0MaQVCQFkayTYOdRhAshWh5tDatoIrF1fJV1dFdriEcgdAshWO71AttrhzCnxIYBsjU+vyNQOAWSrHc66TtEmW7uS3emxAX/yqSvkkgsny/Wr75Hsu1w3bG6V+9fdhGzV1TniQMBRAshWRxtDWpERQLZGhp6DLRLIyNbf//BJGTmy8MHc2WqxMRqOqnufyO+cz52tGlAWDIFsNU2Y+HEjgGyNW8fI1zQBZKtpwnrja5OtQVrBHawrbtsgr/z6dfnS565K39WaGS9QP3N6+n/79mJma39H29taZcaseplcM1W5xW07WqRhzjyZMFHvjN/u7pRs27pJlixvVM4xNwAPyDpFJGrZmkp2yfaWLbJ46UrtfbYRkJmtNijbPYOZrWZ5M7PVLN+w0e+5Z7/0nTwsf3bDfDnzzMK7Ro2olHFnjZTDR1Nhw7MuAgJH3jgsHY8+LH/8+f5nMfAyS8AH2bp/315JJZNSP3uuWVhELwsCJmTrno5dMql6ikyrrSsLhhTpFwGbsrV5Y5MkEgm/AFquRqtstZy7E8chW/vbgGw9IC92HpT5CxYavy5dkImF5DKyVe0SQLaq8XNxN7LVbFeQrWb5ho2ObA1LKj7rkK12e4Vstcub09wngGx1v0dkaJcAstUub9XTkK2KBJGtyNaAAHe2nnojIVvVPlSQrWr8XNyNbDXbFWSrWb5hoyNbw5KKzzpkq91eIVvt8uY09wkgW93vERnaJYBstctb9TRkqypBEeEBWRogEsIbAlHLVm9AUog3BJjZ6k0rKaQAgbXrR0hXl8jqr/QwRoArBQIlEPBBtpZQNlsgMCQBE7IV3BCIMwGbsjXgFHwv8SqdALK1dHYDO5GtGiASwhsCyFZvWkkhmgggWzWBJIzTBJCtTreH5GJAANkagyaRolUCyFaruDksBgSQrTFoUlaKyFYN/UK2aoBICG8IIFu9aSWFaCKAbNUEkjBOE0C2Ot0ekosBAWRrDJpEilYJIFut4uawGBBAtsagSchWfU1iZms/Sx6QxQOyMu+qqGWrCw8QU/mEYWarCj039zKz1WxfmNlqlm/Y6MxsDUsqPuuY2Wq3Vz7I1v379koqmZT62XPtwuM0LwmYkK17OnbJpOopMq22zktmFOU3AZuytXljkyQSCb+BGq6OO1sVASNbka0BAR6QdeqNhGxV+1BBtqrxc3E3stVsV5CtZvmGjY5sDUsqPuuQrXZ7hWy1y5vT3CeAbHW/R2RolwCy1S5v1dO0y9aH2h+XO5oeGMhr0oRzZXPTLXLxBdWquTq5H9mKbEW2Dn5rIlvVPqqQrWr8XNyNbDXbFWSrWb5hoyNbw5KKzzpkq91eIVvt8uY09wkgW93vERnaJYBstctb9TStsjUQra07d8v9626Sc8aPTef2wq9elhW3bZC1a5bJpTOnq+br5H5mtjrZFpKKiEDUsjWisjkWAkMSYGYrF0c5EGBmazl0mRpNEvBBtprkQ+zyI2BCtpYfRSr2iYBN2RpwC76XeJVOQJtsPXL0mFy/+h65ZcWi06TqU88ckB/s3C133nqdjBk9qvRsHd2JbHW0MaQVCQFkayTYOdRhAshWh5tDatoIIFu1oSRQmRJAtpZp4yl7SALIVi4OCAwmgGyN1xWhVbauuatZbr3hs6eNDAjubl1/34Oy9vZlA3e8xgtT4WyRrT51k1pUCSBbVQmy3zcCyFbfOko9+QggW7kuIKBGANmqxo/d/hFAtvrXUypSI4BsVeNne7c22dqV7JbE+gfkTz51xWl3tvosW5nZ2n/Jtre1yoxZ9TK5ZqryNdy2o0Ua5syTCRP1zvnt7k7Jtq2bZMnyRuUccwPwgKxTRKKWralkl2xv2SKLl67U3mcbAZnZaoOy3TOY2WqWNzNbzfING52ZrWFJxWcdM1vt9soH2bp/315JJZNSP3uuXXic5iUBE7J1T8cumVQ9RabV1nnJjKL8JmBTtjZvbJJEIuE3UMPVaZOtQZ5DjQsIZrn+67+/KjevWGS4nHDhgzyvXbUuvbiu9qJBM2aHijCUMEa2IlsDAshWZGu4T5/hVyFbh2cUtxXIVrMdQ7aa5Rs2OrI1LKn4rEO22u0VstUub05znwCy1f0ekaFdAshWu7xVT9MmWzMzW599vnPYnMIKzmEDlbAgkKZfXdss31izLD3uIBDBTzz93JDzZLPrypc3shXZimwd/EbkztYSPpiytiBb1fi5uBvZarYryFazfMNGR7aGJRWfdchWu71CttrlzWnuE0C2ut8jMrRLANlql7fqadpkq2oitvbn3mWbK1+HyqPQKARmttrqHufEgUDUsjUOjMixvAgws7W8+l2u1TKztVw7T926CPggW3WxIA4EAgImZCtkIRBnAjZla8Ap+F7iVTqBspOtd29uTdPKjDTI3Ll6y4pFp82azcaKbC39ImNneRFAtpZXv6l2eALI1uEZsSL+BJCt8e8hFURLANkaLX9Od48AstW9npBRtASQrdHyL/Z0rbI185CsRzqekEkTzpXNTbdI9YTz0g/Oavjg++Tqqy4vNj/t6wPZOrVm4kAuOmRrV+qkdHWf1J4rASEQRwLjzhwp73T3SE9PXxzTJ2cIaCcwZlSVSEWFdKV6tMcmIARcIfDfvlEh73SJJG7vk7POLJzViKoKOXP0CHnr+AlX0icPCEROIBBLbxzrjjwPEjBAIPgrcYWBuJ6HHDtmhKROnJRufqbwvNOUF5bA6FFVUlVZIceTdn6mCL6XeJVOQKtszYjMT8xrkPX3PyjXXH1lei7qUA/OKj3t0nfqvrM1mNn61f96h/ScLF4svfQf/y7/9E+PyZ9+YUlJBT315BNy7NjbMm/+lSXtb/vh38p7a98n06fXlrQ/e9P2B/9aLrtstky98ELlWH/1/a3pmiZPnqIcKztAKpWS+7/9F7Lq5lu1xg2CHXj+OfnlLw/Ip//z1dpj5wbs6uqS5s33yY2rbjF+1lAHFKp31IjK9Puht6/494SOglzgo1LHPRua5M9XrpJRo8x9uZ3s7Ut/UUfx2vf0T+X11w/Lx/7g41EcH8mZVVUV6Z+x8n1PPPaP/yBjx4+TSy+9LJLcfDh0Z/sRee7Zv5Ezxl7vQzmxreHVV56WEZWHZc1/+cSwsrWyokIC4drd01tUvVF+dhWVqCeLDx/+jbT98CH50rIVnlTkdtvncVoAACAASURBVBnBD9HJmN+8sfeJn0hXV1Ku+Og8t2Fbzo7PrtKAjxxRKSc1/0zR/shOqan5Xan7vRmlJcUuCERIIPj5raIi/88UutP6H2v/uyQSCd1hyyqeNtka3CG65q5mufWGz6bvZs2WrYV+Bd82bd0zW3lAVn8H29taZcaseplcM1W5pW07WqRhzjyZMLFaOVZ2gO7ulGzbukmWLG/UGjcI1nnogLzYeVDmL1ioPXZuwFSyS7a3bJHFS1caP2uoAwrVG/UYARf4qDSGB2Sp0HNzLw/IMtuXH+x4S37z0nZ59Siy1SzpwtHPHt0vW//sz6+UM8cU/se24B/lxp01Ug4fTUWZMmcPQ4AHZNm9RHwYI7B/315JJZNSP3uuXXic5iUBE2ME9nTskknVU2RabZ2XzCjKbwI2xwg0b2xCtipeTlZkq0t3tuY+ECuQr088/Zzceet1Mmb0KAn+d+vO3XL/upvknPFjB/AOJYyRrchWZOvgTyFkq9qnMrJVjZ+Lu5GtZruSka3vqVsu77komju2zVYYj+j//q/75Pjbh+Xj/2n437ZBtsajp8hWu31CttrlzWnuE0C2ut8jMrRLANlql7fqadpka5BIRlyuufEa+dYDP0yPEXj3u8bK9avvkUWfusKJma1BnoH8vXbVujS7utqLBonVXNmamen67POdA6y/9LmrBh6wFfzhsXdOyLEuO3MzVBvOfgiYJhC1bDVdH/EhUCwBHpBVLLHi1j/0d1XyzP+pkD/89En5/2ZEM76kuIxZjWzlGoDA6QR8kK30FQI6CZiQrTrzIxYEbBOwKVuD2oLvJV6lE9AqW3NFZiatrfeulktnTi89S8d3IlsdbxDpWSWAbLWKm8NiQADZarZJyFazfE1ER7aaoErMuBNAtsa9g+SvmwCyVTdR4sWdALI1Xh3UJluzZ7YGD8XKfrk0RsBEe5CtJqgSM64EkK1x7Rx5myKAbDVFtj8ustUsXxPRka0mqBIz7gSQrXHvIPnrJoBs1U2UeHEngGyNVwetyFaXHpCluz3MbO0nygOyeEBW5r0VtWzlAVm6P+X0xnvu2Z9JMAfw9+d+TG9gh6Mxs9VsczIzWz98xXLGCJhFXTB6Me9tZGuEjSriaGa2FgFLw1IfZCsPyNJwIRBigIAJ2coDsrjA4kzApmzlAVnqV4oV2Zr7ECr1tN2JgGxFtgYEOg8hW5Gtej6XeECWHo4uRUG2mu0GstUs37DRka1hScVnHbLVbq+QrXZ5c5r7BJCt7veIDO0SQLba5a16mrJsDe5aXXHbBnnl168PmcukCefK5qZbJHe8gGryLuxHtiJbka2D34nc2ar2yYRsVePn4m5kq9muIFvN8g0bHdkallR81iFb7fYK2WqXN6e5TwDZ6n6PyNAuAWSrXd6qpynL1kwChWa2qibp+n5mtrreIfKzSSBq2WqzVs6CQBgCzGwNQ6n0NcxsLZ1dVDsZIxAVec51mYAPstVlvuQWPwImZGv8KJAxBE4RsClbg1OD7yVepRPQJltLTyH+O5Gt8e8hFegjgGzVx5JIfhBAtprtI7LVLF8T0ZGtJqgSM+4EkK1x7yD56yaAbNVNlHhxJ4BsjVcHka0a+oVs1QCREN4QQLZ600oK0UQA2aoJ5BBhkK1m+ZqIjmw1QZWYcSeAbI17B8lfNwFkq26ixIs7AWRrvDqoRbYGD8C673ttg+ayPvXMAbl21bo0ja/fdp1cfdXl8SITMltmtvaDam9rlRmz6mVyzdSQ5IZe1rajRRrmzJMJE6uVY2UH6O5Oybatm2TJ8katcYNgPCDrFNKoZWsq2SXbW7bI4qUrtffZRkBmttqgbPcMZraa5c3MVrN8w0ZnZmtYUvFZx8xWu73yQbbu37dXUsmk1M+eaxcep3lJwIRs3dOxSyZVT5FptXVeMqMovwnYlK3NG5skkUj4DdRwdVpk692bW9Np3rxiUfr/Zs9vrZ5wniTWPyB/8qkr5NKZ0w2XYz88srWfObL1gLzYeVDmL1ho/CJ0QSYWksvIVrVLANmqxs/F3chWs11BtprlGzY6sjUsqfisQ7ba7RWy1S5vTnOfALLV/R6RoV0CyFa7vFVPU5atgVi9fvU9csuKRQMyNbir9Qc7d8udt14nY0aPktz/rZq0S/uRrcjWgAB3tp56VyJb1T6hkK1q/FzcjWw12xVkq1m+YaMjW8OSis86ZKvdXiFb7fLmNPcJIFvd7xEZ2iWAbLXLW/U0LbJ1zV3NcusNn5WLL+j/te/cO11f+NXLsv6+B2Xt7cvknPFjVXN2bj8zW51rCQlFSCBq2Rph6RwNgbwEmNlq9sJgZqtZviaiM7PVBFVixp2AD7I17j0gf7cImJCtblVINhAojoBN2RpkFnwv8SqdgDHZOrVm4sCcVmRr6Q1iJwTiRgDZGreOka9pAshWs4SRrWb5moiObDVBlZhxJ4BsjXsHyV83AWSrbqLEizsBZGu8OqgsW7uS3YNmsub+7wBHMEZgw+ZWuX/dTdzZGq/rg2whUDQBZGvRyNjgOYFCsvWx3RWeV2++vOcPVMqvX6uQqz/dKzNn9Jo/kBOUCSBblRESwEMCyFYPm0pJSgSQrUr42OwhAWRrvJqqLFuDch9qf1yeePq59IzWnx/oPE2s5o4ViBeiwtkys7WfDw/I4gFZmXdK1LLVhQeIqXzGMbNVhZ6be4eSrd3dIhv/Yrf0nBwnb6fq3Uw+BlmNqDwi5419UGZfsQLZGmG/mNkaIXxDRzOz1RDYIcL6IFv379srqWRS6mfPtQuP07wkYEK27unYJZOqp8i02jovmVGU3wRsytbmjU2SSCT8Bmq4Oi2yNcgxEKrf2daeTnfrvasHPSzr2lXrBv2Z4Zqshke2IlsDAjwg69TbDtmq9hGEbFXj5+LuMLL1Q5d90MXUY5HTie435eV/3S6f+PQKmTihLxY5+5gkstW/riJb7fYU2WqXN6e5TwDZ6n6PyNAuAWSrXd6qp2mTraqJxHU/shXZimwd/O5Ftqp9miFb1fi5uHso2ZrqFvn2X+wWkXFy81dmuZh6LHJ66+ibsuvhVvnMF5bHIl9fk0S2+tdZZKvdniJb7fLmNPcJIFvd7xEZ2iWAbLXLW/U0ZKsqQRE59s4JOdbVoyESISAQfwJRy9b4E6QC3wgUkq3fWDdCRo0U+a9r+A7xre/UMzQBZrZydUDgdAI+yFb6CgGdBEzIVp35EQsCtgnYlK1BbcH3Eq/SCSBbS2c3sBPZqgEiIbwhgGz1ppUUookAslUTSMJ4QwDZ6k0rKUQjAWSrRpiE8oIAstWLNlKERgLIVo0wLYRCtmqAjGzVAJEQ3hBAtnrTSgrRRADZqgkkYbwhgGz1ppUUopEAslUjTEJ5QQDZ6kUbKUIjAWSrRpgWQiFbFSEzs7UfYHtbq8yYVS+Ta6YqEhVp29EiDXPmyYSJ1cqxsgN0d6dk29ZNsmR5o9a4QTAekHUKadSyNZXsku0tW2Tx0pXa+2wjIDNbbVC2ewYzW83yZmarWb5hozOzNSyp+KxjZqvdXvkgW/fv2yupZFLqZ8+1C4/TvCRgQrbu6dglk6qnyLTaOi+ZUZTfBGzK1uaNTZJIJPwGarg6ZKsiYGQrshXZOvhNhGxV+1BBtqrxc3E3stVsV5CtZvmGjY5sDUsqPuuQrXZ7hWy1y5vT3CeAbHW/R2RolwCy1S5v1dOQrYoEka3IVmQrslXxY2TQdmSrTppuxEK2mu0DstUs37DRka1hScVnHbLVbq+QrXZ5c5r7BJCt7veIDO0SQLba5a16GrJVlaCIMLNVA0RCeEMg6jtbvQFJId4QYGarN62kEE0EmNmqCSRhvCLgg2z1qiEUEzkBE7I18qJIAAIKBGzK1iDN4HuJV+kEkK2lsxvYiWzVAJEQ3hBAtnrTSgrRRADZqgkkYbwhgGz1ppUUopEAslUjTEJ5QQDZ6kUbKUIjAWSrRpgWQiFbNUBGtmqASAhvCCBbvWklhWgigGzVBJIw3hBAtnrTSgrRSADZqhEmobwggGz1oo0UoZEAslUjTAuhkK2KkJnZ2g+wva1VZsyql8k1UxWJirTtaJGGOfNkwsRq5VjZAbq7U7Jt6yZZsrxRa9wgWOehA/Ji50GZv2Ch9ti5AVPJLtneskUWL11p/KyhDihUb9Sy1QU+Ko1hZqsKPTf3MrPVbF+Y2WqWb9jozGwNSyo+65jZardXPsjW/fv2SiqZlPrZc+3C4zQvCZiQrXs6dsmk6ikyrbbOS2YU5TcBm7K1eWOTJBIJv4Earg7ZqggY2YpsRbYOfhMhW9U+VHyXrT/+55/J20dfl+kf+AM1UDHaPeaMKqmoEHkneXJQ1id6RHb+3WMiFePk5ltmxagit1JFtrrRD2SrG33QmQWyVSfN4WMhW4dnxIryIoBsLa9+U+3wBJCtwzNyaQWyVbEbyFZkK7IV2ar4MTJou++y9Zv3PiMne16XN99ZoBNbbGO968x/RLYqdg/ZqghQ03ZkqyaQDoVBttptBrLVLm9Oc58AstX9HpGhXQLIVru8VU9DtqoSFBFmtmqASAhvCER9Z6s3ID0tpGlDlbx9vEJqpvRJZaWnReaUVVVZkb6ztedkX96CR43qky98vrc8YFAlBESEma1cBhA4nYAPspW+QkAnAROyVWd+xIKAbQI2ZWtQW/C9xKt0AsjW0tkN7ES2aoBICG8IIFu9aaWRQv7HhhFy/LjIbTf3yNlnGznCuaBDzWx1LlESgoAlAshWS6A5JlYEkK2xahfJWiCAbLUAmSNiRQDZGqt2CbJVQ7+QrRogEsIbAshWb1pppBBkqxGsBIVArAggW2PVLpK1RADZagk0x8SGALI1Nq0iUUsEkK2WQGs6BtmqCJKZrf0A29taZcaseplcM1WRqEjbjhZpmDNPJkysVo6VHaC7OyXbtm6SJcsbtcYNgnUeOiAvdh6U+QsWao+dGzCV7JLtLVtk8dKVxs8a6oBC9UYtW13go9IY/2e27peTPYdl+Z/N585WEXnix4/JWWePk7qZH1K5bMp6LzNb3Wg/M1vd6IPOLJjZqpPm8LF8kK379+2VVDIp9bPnDl8wKyAwDAETsnVPxy6ZVD1FptXWwR8CsSNgU7Y2b2ySRCIRO0YuJYxsVewGshXZimwd/CZCtqp9qCBb1fi5uLvQGAFkq3rHkK3qDHVEQLbqoOhWDGSr3X4gW+3y5jT3CSBb3e8RGdolgGy1y1v1NGSrIkFkK7IV2YpsVfwYGbQd2aqTphuxkK1m+4BsNcs3bHRka1hS8VmHbLXbK2SrXd6c5j4BZKv7PSJDuwSQrXZ5q56GbFUlKCLMbNUAkRDeEIj6zlZvQHpaCDNbPW0sZUGgCALMbC0CFkvLhoAPsrVsmkWhVgiYkK1WEucQCBgiYFO2BiUE30u8SieAbC2d3cBOZKsGiITwhgCy1ZtWGikE2WoEK0EhECsCyNZYtYtkLRFAtloCzTGxIYBsjU2rSNQSAWSrJdCajkG2agCJbNUAkRDeEEC2etNKI4UgW41gJSgEYkUA2RqrdpGsJQLIVkugOSY2BJCtsWkViVoigGy1BFrTMchWRZDMbO0H2N7WKjNm1cvkmqmKREXadrRIw5x5MmFitXKs7ADd3SnZtnWTLFneqDVuEKzz0AF5sfOgzF+wUHvs3ICpZJdsb9kii5euNH7WUAcUqjdq2eoCH5XGMLNVhZ6be5nZarYvzGw1yzdsdGa2hiUVn3XMbLXbKx9k6/59eyWVTEr97Ll24XGalwRMyNY9HbtkUvUUmVZb5yUzivKbgE3Z2ryxSRKJhN9ADVeHbFUEjGxFtiJbB7+JkK2lf6gcPVohD227Rz5y5ZdlxIhRpQdyeOcPH9onfb2vy4obrpSzzuxzOFN9qSFb9bHMFwnZapZv2OjI1rCk4rMO2Wq3V8hWu7w5zX0CyFb3e0SGdgkgW+3yVj0N2apIENmKbEW2IlsVP0YGtv/vf6mSX/x0g7x05EbpEz9l69mjn5YRlYeRrb/t+hM/fkzOOnuc1M38kK7LqOziIFvdaDmy1Y0+6MwC2aqT5vCxkK3DM2JFeRFAtpZXv6l2eALI1uEZubQC2aqhG8xs1QCREN4QiPrO1jiDDGTrj/6hQsaN7ZNzzolzJcPnfs1ne2X0aO5sHZ4UKyDgHwFmtvrXUypSJ+CDbFWnQAQInCJgQrbCFwJxJmBTtgacgu8lXqUTQLaWzm5gJ7JVA0RCeEMA2Vp6K//3v1TKj/6hUmY39MrH/6C39EDsdIpAoTECTiVKMhCwRADZagk0x8SKALI1Vu0iWQsEkK0WIHNErAggW2PVLkG2augXslUDREJ4QwDZWnorka2ls3N5J7LV5e6QWxQEkK1RUOdM1wkgW13vEPnZJoBstU2c81wngGx1vUOD8/NSth45ekyuX32PPPt8Z7rarfeulktnTh+yM4XWv/Crl2XFbRvklV+/PrC/rvYiuX/dTXLO+LHCzNZ+LO1trTJjVr1Mrpmq/A5o29EiDXPmyYSJ1cqxsgN0d6dk29ZNsmR5o9a4QbDOQwfkxc6DMn/BQu2xcwOmkl2yvWWLLF660vhZQx1QqN6oZasLfEptTCBbf/HTu2XKe74sV318RKlhnN5XzFxHpwspIjkekFUErBKWMrO1BGgGthTz3ka2GmiAgZDMbDUAtUBIH2Tr/n17JZVMSv3suXbhcZqXBEzI1j0du2RS9RSZVlvnJTOK8puATdnavLFJEomE30ANV+edbO1Kdkti/QPS8MH3ydVXXS6BLP3q2mb5xpplcvEFp8u74dYPtx/Z2n+FIluRrZnPKmRr6Z/ayNbS2bm8E9lqtjvIVrN8w0ZHtoYlFZ91yFa7vUK22uXNae4TQLa63yMytEsA2WqXt+pp3snWQI6uv+9BWXv7svSdp7kyNRfYcOuRreEuMWQrshXZGu69UmgVslWdoYsRkK1mu4JsNcs3bHRka1hS8VmHbLXbK2SrXd6c5j4BZKv7PSJDuwSQrXZ5q57mnWx96pkDsmFz68Cv+QeA7t7cmuZ084pFp/Eabn3uGIHsEQKZYMHM1re7elR7wX4ImCVQYTZ8Jvq5Y8+QY10npLuHBzwVS/zHP+l/QNbvf9jwA7L6RCoqLF0QxULwcP1ZY6rSvN9+h+8JD9tLSSUQGDmiQsaeOVLeeKu7uN0VfSJ9fHYVB43VcSEw8d2j5dU3knFJlzyLINDXF/zFq4gNLE0TOOfsUdKV7JEkP1PYuyL67B3FScUTOHP0CBlRVSFvHT9R/OYSdkw6d0wJu9iSIeClbP3Bzt1y563XyZjRo9J1Didbi1kfxHr1tTcGxQ++QPlc4k3lPAFLF2ng8NJHWTrPee5FJPj3/9QrOx7ulY9dUSl/8unKInYWt7Snty/9Rc3LDoGK3/6ExTeFHd6c4j6B4D0RfFf0BgKiiFdPT5+MGMFnVxHIWBojApUVFUW/J2JUXlmn2tPTKyOqzP29zle4/EwRQWf5io0AevgjM+0p7m9P4ePnrgy+l3iVTsBL2arzztZctLljB4L/HtzZeow7W0u/CtnpFYGoZ7a+8UaFvPVWPL8Y/s8vRH76dKXMbjB8Z6tXV5z7xRQaI+B+9mQIAf0EeECWfqZEjD8BH8YIxL8LVOASARNjBFyqj1wgUCwBm2MEgtyC7yVepRPwTrYON4N1OHla7IxXHpDVT5SZrcxszby3opatO/9XSl7q/Et5+c2bSv9kjHDnlHP+p0x5z5flqo+PiDALc0cXM9fRXBZ2IzOz1SxvZraa5Rs2ejHvbWRrWKrRrmNmq13+PsjW/fv2SiqZlPrZc+3C4zQvCZiQrXs6dsmk6ikyrbbOS2YU5TcBm7K1eWOTJBIJv4Ears472ZorS3MfcJWZwbp2zTK5dOb00x6glbv+R7uflEsunCIXX1CdbkXuSAJkK7I1INB5CNnqmmxNVqySsWMNf4IaCN97fIN84ENflg9fhmw1gDeSkMhWs9iRrWb5ho2ObA1LKj7rkK12e4Vstcub09wngGx1v0dkaJcAstUub9XTvJOtAZAjR4/J9avvkWef70zz2Xrv6rRYDV65snW49cEDtK5dtW6A8yfnNwya14psRbYiWwd/DEV+Z+sjKXnphb+UGZc1yocvi99DurZuvleu+eINMnJU/8xp317FCBlfake2mu0kstUs37DRi3lvc2drWKrRrkO22uWPbLXLm9PcJ4Bsdb9HZGiXALLVLm/V07yUrapQit3PzNZiibHeZwJRy9ZHHq2UvU9WyicW9MZStvp8bZRrbcxsLdfOU/dQBJCtXBsQOJ2AD7KVvkJAJwETslVnfsSCgG0CNmVrUBszW9U6jGxV45fejWzVAJEQ3hBAtnrTSgrRRADZqgkkYbwhgGz1ppUUopEAslUjTEJ5QQDZ6kUbKUIjAWSrRpgWQiFbNUBGtmqASAhvCCBbvWklhWgigGzVBJIw3hBAtnrTSgrRSADZqhEmobwggGz1oo0UoZEAslUjTAuhkK2KkJnZ2g+wva1VZsyql8k1UxWJirTtaJGGOfNkwsT+h5LpenV3p2Tb1k2yZHmjrpADcXhA1imkUcvWncxs1X596wxYzFxHnedGGYuZrWbpM7PVLN+w0Yt5byNbw1KNdh0zW+3y90G27t+3V1LJpNTPnmsXHqd5ScCEbN3TsUsmVU+RabV1XjKjKL8J2JStzRubJJFI+A3UcHXIVkXAyFZka0AA2YpsVfwoGdjOA7J0kXQnDrLVbC+QrWb5ho2ObA1LKj7rkK12e4Vstcub09wngGx1v0dkaJcAstUub9XTkK2KBJGtyNZylK0bv31QTiZ/Ka8f/0PFd5D+7ZUVXTJx/CaZcVljLB+QhWzVf01EHRHZarYDyFazfMNGR7aGJRWfdchWu71CttrlzWnuE0C2ut8jMrRLANlql7fqachWVYI8IEsDQULEjcA3v10lr79e4XTan1jQG0vZ6jRUkiuJADNbS8LGJo8JMEbA4+ZSWskEfJCtJRfPRgjkIWBCtgIaAnEmYFO2BpyC7yVepRNAtpbObmAnD8jSAJEQsSKQka0rbzgpv3Ne36Dco57ZGiuQJFsWBJCtZdFmiiyCALK1CFgsLRsCyNayaTWFhiSAbA0JimVlQwDZGq9WI1s19AvZqgEiIWJFANkaq3aRbMQEkK0RN4DjnSOAbHWuJSTkAAFkqwNNIAWnCCBbnWoHyThAANnqQBOKSAHZWgSsfEuZ2dpPpb2tVWbMqpfJNVMViYq07WiRhjnzZMLEauVY2QG6u1OybesmWbK8UWvcIFi5PSArM7P180sWOndnayrZJdtbtsjipSu199lGQGa22qBs9wxmtprlzcxWs3zDRmdma1hS8VnHzFa7vfJBtu7ft1dSyaTUz55rFx6neUnAhGzd07FLJlVPkWm1dV4yoyi/CdiUrc0bmySRSPgN1HB1yFZFwMhWZCuy1a0xAshWxQ81w9uLETKGU7EWHtlqFjWy1SzfsNGLeW9zZ2tYqtGuQ7ba5Y9stcub09wngGx1v0dkaJcAstUub9XTkK2KBJGtyFZkK7JV8WNk0HbubNVJ041YyFazfUC2muUbNjqyNSyp+KxDttrtFbLVLm9Oc58AstX9HpGhXQLIVru8VU9DtqoSFBFmtmqASIjQBB55tFL2PlkZer3JhTwgyyRdYvtCgJmtvnSSOnQR4M5WXSSJ4xMBH2SrT/2glugJmJCt0VdFBhAonYBN2RpkGXwv8SqdALK1dHYDO5GtGiASIjQBZGtoVCyEgBMEkK1OtIEkHCKAbHWoGaTiDAFkqzOtIBFHCCBbHWkEaThDANnqTCtCJYJsDYWp8CJkqwaIhAhNICNbP7GgVz58WW/ofbYWnjfuDHmr64R0n3AvN1sMOAcC2QSQrVwPEBhMANnKFQGB0wkgW7kqIDCYALKVKwICgwkgW+N1RSBbFfvFzNZ+gO1trTJjVr1MrpmqSFSkbUeLNMyZJxMmVivHyg7Q3Z2SbVs3yZLljVrjBsE6Dx2QFzsPyvwFC7XHzg2485GUvPTCX8qMyxojk62F6o1atvKALOOXoNIBxcx1VDrIoc3MbDXbDGa2muUbNnox721ka1iq0a5jZqtd/j7I1v379koqmZT62XPtwuM0LwmYkK17OnbJpOopMq22zktmFOU3AZuytXljkyQSCb+BGq4O2aoIGNmKbEW2Dn4TIVvVPlR4QJYaPxd3I1vNdgXZapZv2OjI1rCk4rMO2Wq3V8hWu7w5zX0CyFb3e0SGdgkgW+3yVj0N2apIENmKbA0I/PTJX8rL/3FQfm/WpxWvqOG3/+SJLnnrtb+UmR9ulIZLo/lVfe5sHb5Ppa5AtpZKzt19yFazvUG2muUbNjqyNSyp+KxDttrtFbLVLm9Oc58AstX9HpGhXQLIVru8VU9DtqoSFBFmtmqAGPMQ37q/Sn7zmwqrVVz1id7IZGuhQqO+s9VqEzgMAiEIMLM1BCSWlBUBxgiUVbspNiQBH2RryFJZBoFQBEzI1lAHswgCjhKwKVsDBMH3Eq/SCSBbS2c3sBPZqgFizENkZGt1dZ+MHGGnmNmX9UltbTR3tiJb7fSYU/wggGz1o49UoY8AslUfSyL5QwDZ6k8vqUQPAWSrHo5E8YcAsjVevUS2augXslUDxJiH+NZ9VfKbwxXy5T/rkfPPj3kxiulzZ6siQLZ7RwDZ6l1LKUiRALJVESDbvSSAbPWyrRSlQADZqgCPrV4SQLbGq63IVsV+MbO1H2B7W6vMmFUvk2umKhIVadvRIg1z5smEidXKsbIDdHenZNvWTbJkeaPWuEGw+759UE4kfymf+8KnjMvWVLJLtrdskcVLV2qvI2xAZraGJVX8Oma2Fs/M9R3MbDXbIWa2muUbNjozW8OSis86Zrba7ZUPsnX/vr2SSialfvZcu/A4zUsCJmTrno5dMql6MTrzDQAAGBNJREFUikyrrfOSGUX5TcCmbG3e2CSJRMJvoIarQ7YqAka26pWtXV0VsvOhFpn2vnnyrnMmK3Zn8PaenpT88z/eJx/9+E1a4wbBHt55QPq6fymfX/Jp+Z3zzP5qP7K1cPtc4KNygSFbVei5uRfZarYvyFazfMNGR7aGJRWfdchWu71CttrlzWnuE0C2ut8jMrRLANlql7fqachWRYLIVr2y9f++UCk/2vlXcuT4ldJ9Uq9sraxIyaTxG+WlN29R7Prp288c9byMGXkA2SoiUY8RQLZqv7y1BixGyGg9OMJgyFaz8JGtZvmGjV7Me5sxAmGpRrsO2WqXP7LVLm9Oc58AstX9HpGhXQLIVru8VU9DtqoSFBFmtmqA+NsQgWz9/l9XyujRfTIhhrNP/+g/98q73tWnD0gMI0UtW2OIjJQ9J8DMVs8bTHlFE0C2Fo2MDWVAwAfZWgZtokSLBEzIVovpcxQEtBOwKVuD5IPvJV6lE0C2ls5uYCeyVQPE34Y49H8r5K/+pkouubhPFl9zUl9gIlkjgGy1hpqDYkIA2RqTRpGmNQLIVmuoOShGBJCtMWoWqVohgGy1gplDYkQA2RqjZokIslVDv+IoW0+cEHnppUoN1esN8R8vV8jf/2OFXHJRryz+U7OzT/VmTrQMAWQr1wIEBhNAtnJFQGAwAWQrVwQETieAbOWqgMBgAshWrggIDCaAbI3XFYFsVexXXGe2/uZwpfzN99vkndR06TpRq0hB5HfGbpO3uhok1XOhcqwJ474nZ71rnlx77STlWNkBurtTsm3rJlmyvFFr3CBY56ED8mLnQZm/YKH22LkBXZhJWqjeqGWrC3xULgIekKVCz829zGw12xdmtprlGzY6M1vDkorPOma22u2VD7J1/769kkompX72XLvwOM1LAiZk656OXTKpeopMq63zkhlF+U3Apmxt3tgkiUTCb6CGq0O2KgKOu2xN9UyXc8+frkhBpK/rQZGRl0nFCHXZ2tv1fZkw+aOycGG1cl7IVq0IB4IhW81wDaIiW82xjSoystUseWSrWb5hoyNbw5KKzzpkq91eIVvt8uY09wkgW93vERnaJYBstctb9TRkqyLB+MrWCvmb7z8sVaOmy5e//B5FCiLtba0yY1a9TK6ZqhyrbUeLNMyZJxMmIlvzwXThzk1kq/JlPmQAZKs5tlFFRraaJY9sNcs3bHRka1hS8VmHbLXbK2SrXd6c5j4BZKv7PSJDuwSQrXZ5q56GbFUk2LbrpOx8NL6zRc87t09u/HMeRKV4GbA9i0DUYwRoBgRcI8DMVtc6Qj5RE2Bma9Qd4HwXCfggW13kSk7xJWBCtsaXBplDQMSmbA14B99LvEongGwtnV16J7JVESDbvSOAbPWupRSkSADZqgiQ7d4RQLZ611IK0kAA2aoBIiG8IoBs9aqdFKOBALJVA0SLIZCtGmAfe+eEHOvq0RCJEBCIPwFka/x7SAV6CSBb9fIkWvwJIFvj30Mq0E8A2aqfKRHjTQDZGu/+kb1+AshW/UxNRkS2KtKN68zWoOyOR9vkwkumy0WXvFeRAjNbC80wVYabE4CZrYWJusBHpefMbFWh5+ZeZraa7QszW83yDRudma1hScVnHTNb7fbKB9m6f99eSSWTUj97rl14nOYlAROydU/HLplUPUWm1dZ5yYyi/CZgU7Y2b2ySRCLhN1DD1SFbFQEjW/sB8oCsA/Ji50GZv2Ch4hU1/HYXZCIPyBq+T6WuQLaWSs7dfchWs71BtprlGzY6sjUsqfisQ7ba7RWy1S5vTnOfALLV/R6RoV0CyFa7vFVPQ7YqEkS2IlsDAtzZeuqNFPUYARdktMrHCrJVhZ6be5GtZvuCbDXLN2x0ZGtYUvFZh2y12ytkq13enOY+AWSr+z0iQ7sEkK12eauehmxVJSgizGzVAJEQ3hCIWrZ6A5JCvCHAzFZvWkkhmggws1UTSMJ4RcAH2epVQygmcgImZGvkRZEABBQI2JStQZrB9xKv0gkgW0tnN7AT2aoBIiG8IYBs9aaVFKKJALJVE0jCeEMA2epNKylEIwFkq0aYhPKCALLVizZShEYCyFaNMC2EQrZqgIxs1QCREN4QQLZ600oK0UQA2aoJJGG8IYBs9aaVFKKRALJVI0xCeUEA2epFGylCIwFkq0aYFkIhWxUhM7O1HyAPyOIBWZm3UtSylZmtih9qhrcXM9fRcCrWwjOz1SxqZraa5Rs2ejHvbWRrWKrRrmNmq13+PsjW/fv2SiqZlPrZc+3C4zQvCZiQrXs6dsmk6ikyrbbOS2YU5TcBm7K1eWOTJBIJv4Earg7ZqggY2YpsDQjwgKxTbyRkq9qHCg/IUuPn4m5kq9muIFvN8g0bHdkallR81iFb7fYK2WqXN6e5TwDZ6n6PyNAuAWSrXd6qpyFbFQmmZettX00/JKvY169feUn2/mS3LPyja4rdml7/7M+ekuPH35aGOR8taX/Ho21y4SXT5aJL3lvS/uxN3NnKna2Z6wHZqvZ2Qraq8XNxN7LVbFeQrWb5ho2ObA1LKj7rkK12e4Vstcub09wngGx1v0dkaJcAstUub9XTkK2qBNkPAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQEBEkK1cBhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAENBBAtmqASAgIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAshWrgEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhoIIFtLhHjk6DG5fvU98uzznekIW+9dLZfOnF5iNLZBID4EupLdklj/gDzS8UQ66a/fdp1cfdXlQxZw9+ZW+c629oH/Ptz6+JAgUwicIvBQ++NyR9MD6T/45PwGufPW62TM6FHDInrqmQNy7ap1fIcMS4oFcSOQubaDvOtqL5L7190k54wfW7CM7O+LL33uKrl5xaK4lU2+EBiSQLE/O7zwq5dlxW0b5JVfvx7q71ugh4BvBIK/W/3rv7/Kd4FvjaWeYQkEn//r73tQ1t6+rODfnbL/rlXszyDDJsECZQLI1hIQZmRTwwffl5ZMwZvhq2ub5RtrlsnFF1SXEJEtEIgPgeCH4eAV/BCc+cHhlhWL8v5jQ/Beuf97fydf/Own0l8UmR8c1q5Zxj9OxKflZDoMgeAvOhs2tw7IpOz3SKGt2X9B4h/suMx8IpD796LgB+Ynnn6u4D9ChH3f+MSJWsqHQLE/O+T+/Wq4v2+VD0kqLQcC2X8/4h/eyqHj1JghkP2PcmH+oTr4+1VN9fnpn6sz3zMTz383/0DhyCWFbC2hEbn/0pD7F6gSQrIFArEgEHwBrLmrWW694bMD/7BQzA/IvFdi0WaSLJJA8B6YWjNx4A7vXPmaL1zme+S2P/+c3L62WYb6B4siU2E5BJwgkHs30nD/KB28Z36wc3foO8KdKJIkIFAEgWJ/dsh9z/D3pyJgs9QbAtzZ6k0rKaRIAmHvbM0NG+Yft4tMheUKBJCtJcDL94N0McKphCPZAgEnCOT7gbmYD3XuzHCijSShkUC+H4CHE0vZ//3d7xqbHkmDbNXYFEJFTiD370TDffZnj+HIJM/d3pG3kQQ0EijlZ4fgfdT+2F7Z3HRLOpMwv1KqMWVCQSByAsjWyFtAAhERKFW24qQiatgQxyJbS+hHvjswuLBLAMmW2BHI98FfjGzlfRK7lpPwMAQysvVPPnXFwGiMQrI19+7w4SQUDYBAHAnk3u093HWe7+7wNWub05KJ8UxxvALIOZdAKT87pAXtpu1y+Mhb6bmtzLznuio3AsjWcus49WYIlCJbw/xmHYTtEkC2lsC7lH+dLuEYtkDAOQIqd7YGP0y/+tob/Jqoc10lIRUCxd7ZmvvAk+yzuZNPpRPsdYlAsXe25spWfmXapW6Siw4Cxf7skPuDduYfLBZ96oqCDyXVkSsxIOAKAWSrK50gD9sEipWtwXcM/0htu0vDn4dsHZ7RaSuKnbtUwhFsgYCTBEqd2YpodbKdJKWJQCkzWzNHD3fHn6YUCQMBqwSKndmauz7fHeNWC+AwCGgmUOzPDqXcCas5ZcJBIHICyNbIW0ACEREoRrYiWiNqUohjka0hIOUuKfaJoiUcwRYIOEsg+46loZ6Wm33nBaMDnG0liWkikHvHUu41X+gfG5CtmppAGKcI5P4WRO64meB/t+7cLfevu0nOGT9WMnd8r12zLD2Og1+Fc6qdJKOBwHA/O+S+B3L/N3e2amgCIWJHANkau5aRsCYCQ8nW3L8/8fclTcANhUG2lgg285eeZ5/vTEfg1z9LBMm22BH4f+3dW4hVVRgH8PUUXRRLwxtYoUQaWFZkQxexRArtAkJT0osoNtWTFxQtJERiBkXrSRPR8kkzCEKcngwJgqGILEl98FJYZkJWaBk9xdqwhznbmTNndM2495zfeXLO2fPtb/3WOjjnzz5r5x8YDhzsynrvuYdY8cNA8X2SD3b+nBbbCVRu5jVcT6DnDX6K61vYau00o0D8ALBoWUc29OnTJncHq/Hn4oeF+FzP4yeMG2O/1mZcNMN8zPU+OxTD1eJ7ovj31jCnMrwmF+j5/0FO4bN2ky+KJhl+b5+dlyycF1a0tWYCxb+f4meMnXs6a3T8DVWexSJsLc9c6IQAAQIECBAgQIAAAQIECBAgQIAAgQoLCFsrPHlaJ0CAAAECBAgQIECAAAECBAgQIECgPALC1vLMhU4IECBAgAABAgQIECBAgAABAgQIEKiwgLC1wpOndQIECBAgQIAAAQIECBAgQIAAAQIEyiMgbC3PXOiEAAECBAgQIECAAAECBAgQIECAAIEKCwhbKzx5WidAgAABAgQIECBAgAABAgQIECBAoDwCwtbyzIVOCBAgQIAAAQIECBAgQIAAAQIECBCosICwtcKTp3UCBAgQIECAAAECBAgQIECAAAECBMojIGwtz1zohAABAgQIECBAgAABAgQIECBAgACBCgsIWys8eVonQIAAAQIECBAgQIAAAQIECBAgQKA8AsLW8syFTggQIECAAAECBAgQIECAAAECBAgQqLCAsLXCk6d1AgQIECBAgAABAgQIECBAgAABAgTKIyBsLc9c6IQAAQIECBAgQIAAAQIECBAgQIAAgQoLCFsrPHlaJ0CAAAECBAgQIECAAAECBAgQIECgPALC1vLMhU4IECBAgAABAgQIECBAgAABAgQIEKiwgLC1wpOndQIECBAgQIAAAQIECBAgQIAAAQIEyiMgbC3PXOiEAAECBAgQIECAAAECBAgQIECAAIEKCwhbKzx5WidAgAABAgQIECBAgAABAgQIECBAoDwCwtbyzIVOCBAgQIAAAQKDLvBJ5xdh3cZdNeeZPm1y2NaxPJw4/UtYtKwjfPjemvDwjKk1x2zZvi98dfh4dtxto0aGenUu/HkxtK3eHH797fc+x7Nh9eIwaeLY7Hy9PfIevj58PDtm/pyWsH7V4nDTjTd0H17vtXjQH39dDK+veTccOXaqzz6WLJwX7po0vsYk9rZg3qxw8qez2ThuHz2qe9x5od5ey/upN55Bn2AnIECAAAECBAgQuK4Cwtbryu/kBAgQIECAAIGhEygGpvmZ4/NPPHJfFrDGEHXf/kM14WIMFt9q3xHeWbs0TLlzYmikTs9RxZpd3xztNSxd274jbN+4Mqvb2yMPMCeMG1Nz3OV//wtvb9oVDhzs6jWI7avW5u37rghO47HxPMVe8kA1hsbFADoa7NzTGfKgOgbQvdUYutl1JgIECBAgQIAAgTIICFvLMAt6IECAAAECBAgMskB+lWfrc7Ozqzb7euQh5vixo8OKttaQ/9zy0L3Z7zVaJ2XYGgPSpx57IFz6+3LWUx6Ofrz/UBgx4uZw6dI/VwS5qcLWGDI/O/fR8P3Rk93niCHspq17w4PT7w6ff/ltd3grbB3kRaw8AQIECBAgQKACAsLWCkySFgkQIECAAAEC1ypQDFHr1cuv6GxfuzScOXu+5krXgdTJz3GtV7bGsHVlW2vY/P5HNVfXxq///3jmXDh3/sKghq0rX3sp5D3kV//G88bz97wKWNh6ravU7xMgQIAAAQIEqi8gbK3+HBoBAQIECBAgQKAhgeKeoj2/Al8skH9NPj5f/Ar9QOrE368XtjayZ2v+1f8P9n6WtfnCM49nV5a2v7k0xOcGO2yN2yd898OJbCuE5a++GNZv2R1WvfFy9lwxbO1vPA1NlIMIECBAgAABAgQqKyBsrezUaZwAAQIECBAgcHUCPfc7jRWK+6HG5/LtAmbOmNr91f3i2Rqp01/Y2sierXnYGm+8Fb/WHx+tzz+ZbWsQQ+GhCFtH3zoyu9nWqJG3hHumTMpMivvburL16taj3yJAgAABAgQIDCcBYetwmk1jIUCAAAECBAgMUKCvbQGKe7X2V7be9gIpthHY1rE8xJtQFW/ONVRha7yBVxzH1t2fdt+oS9ja36rwOgECBAgQIECg+QSErc0350ZMgAABAgQINKFAvFL1yLFTYVbL/VeMPgaW8ZHffCr+u6+wdaB1Yq2UYWvcT/bE6Z/D07NnZj0PZdgax955sCu8smBudm5haxO+kQyZAAECBAgQINCPgLDVEiFAgAABAgQINIFAvi3AHRPH1txMKt9/tbgva72wNX6dvtE6qcPW4lQNZdhaPLewtQneOIZIgAABAgQIEBiggLB1gGAOJ0CAAAECBAhUVSAPXOMVrvmjt/1a42v1thEYSJ3+wtb+bigVw+B8z9a4jcBghK0xNF23cVd36Q2rF2f7wcaraOMesfEGWXEbgUbC1v7GU9W1o28CBAgQIECAAIHGBIStjTk5igABAgQIECBAgAABAgQIECBAgAABAnUFhK0WCAECBAgQIECAAAECBAgQIECAAAECBBIICFsTICpBgAABAgQIECBAgAABAgQIECBAgAABYas1QIAAAQIECBAgQIAAAQIECBAgQIAAgQQCwtYEiEoQIECAAAECBAgQIECAAAECBAgQIEBA2GoNECBAgAABAgQIECBAgAABAgQIECBAIIGAsDUBohIECBAgQIAAAQIECBAgQIAAAQIECBAQtloDBAgQIECAAAECBAgQIECAAAECBAgQSCAgbE2AqAQBAgQIECBAgAABAgQIECBAgAABAgSErdYAAQIECBAgQIAAAQIECBAgQIAAAQIEEggIWxMgKkGAAAECBAgQIECAAAECBAgQIECAAAFhqzVAgAABAgQIECBAgAABAgQIECBAgACBBALC1gSIShAgQIAAAQIECBAgQIAAAQIECBAgQEDYag0QIECAAAECBAgQIECAAAECBAgQIEAggYCwNQGiEgQIECBAgAABAgQIECBAgAABAgQIEBC2WgMECBAgQIAAAQIECBAgQIAAAQIECBBIICBsTYCoBAECBAgQIECAAAECBAgQIECAAAECBISt1gABAgQIECBAgAABAgQIECBAgAABAgQSCAhbEyAqQYAAAQIECBAgQIAAAQIECBAgQIAAAWGrNUCAAAECBAgQIECAAAECBAgQIECAAIEEAsLWBIhKECBAgAABAgQIECBAgAABAgQIECBAQNhqDRAgQIAAAQIECBAgQIAAAQIECBAgQCCBgLA1AaISBAgQIECAAAECBAgQIECAAAECBAgQELZaAwQIECBAgAABAgQIECBAgAABAgQIEEggIGxNgKgEAQIECBAgQIAAAQIECBAgQIAAAQIEhK3WAAECBAgQIECAAAECBAgQIECAAAECBBIICFsTICpBgAABAgQIECBAgAABAgQIECBAgAABYas1QIAAAQIECBAgQIAAAQIECBAgQIAAgQQCwtYEiEoQIECAAAECBAgQIECAAAECBAgQIEBA2GoNECBAgAABAgQIECBAgAABAgQIECBAIIGAsDUBohIECBAgQIAAAQIECBAgQIAAAQIECBAQtloDBAgQIECAAAECBAgQIECAAAECBAgQSCAgbE2AqAQBAgQIECBAgAABAgQIECBAgAABAgSErdYAAQIECBAgQIAAAQIECBAgQIAAAQIEEggIWxMgKkGAAAECBAgQIECAAAECBAgQIECAAAFhqzVAgAABAgQIECBAgAABAgQIECBAgACBBALC1gSIShAgQIAAAQIECBAgQIAAAQIECBAgQEDYag0QIECAAAECBAgQIECAAAECBAgQIEAggYCwNQGiEgQIECBAgAABAgQIECBAgAABAgQIEPgfwbtHPH3kKJoAAAAASUVORK5CYII=",
"text/html": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"dynamics.plot_step_sizes(show_intervals=True)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "7f59733f",
"metadata": {},
"outputs": [],
"source": []
}
],
"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.8.10"
}
},
"nbformat": 4,
"nbformat_minor": 5
}