diff --git a/.gitignore b/.gitignore
index e4f6013f01e775afbcf629850e199559e7031474..fa4bbfb148d9d808e91144d4fe2cbab4df1fc73c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,5 @@
__pycache__/
.ipynb_checkpoints
.ip*
+.vscode
diff --git a/Blueglue_readme.md b/BlueGlue.md
similarity index 93%
rename from Blueglue_readme.md
rename to BlueGlue.md
index 94d391db4dc40858bfff35a3e29d3981d1e262fc..9d2dc4a5947598adf793dc29241dde8fef8a3cc6 100644
--- a/Blueglue_readme.md
+++ b/BlueGlue.md
@@ -22,11 +22,11 @@ JupyterLab is a powerful tool that can interpret many file formats such as pytho
-
+
To get started with Blueglue, in the field "upload a configuration file", choose the path for a configuration file, in the json or yaml format. Then select an input path in the following field, it is possible to add multiple input paths by pressing the plus button. Choose a model for the workflow, one or multiple options are possible. To generate the workflow graph, press the button "generate graph". To visualize a preview of the configuration file, press the button "WConfig preview" . The button "edit WConfig" opens the configuration file for edition. It is possible to alter the workflow graph by editing the configuration file.
-
+
### 4. References:
diff --git a/intro_examples/foreach_sample/inputs/data.yaml b/intro_examples/foreach_sample/inputs/data.yaml
index a1b301eba659b4c55476c8012ae923b60e3f2127..b45df23fafcb98cf7f06a7feeccadb732452d3cb 100644
--- a/intro_examples/foreach_sample/inputs/data.yaml
+++ b/intro_examples/foreach_sample/inputs/data.yaml
@@ -1 +1,20 @@
-[1, 2, 3, 4, 5, 6, 7, 8, 9, 10,11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 3, 40]
+- 1
+- 2
+- 3
+- 4
+- 5
+- 6
+- 7
+- 8
+- 9
+- 10
+- 11
+- 12
+- 13
+- 14
+- 15
+- 16
+- 17
+- 18
+- 19
+- 20
diff --git a/intro_examples/foreach_sample/wconfig.yaml b/intro_examples/foreach_sample/wconfig.yaml
index c165db43534c1a24cc7eda1446f07fe669ab3385..c4050332119b0f502383044ea2021ab035cf34eb 100644
--- a/intro_examples/foreach_sample/wconfig.yaml
+++ b/intro_examples/foreach_sample/wconfig.yaml
@@ -45,7 +45,6 @@ nodes:
outputs:
- midpoint
kwargs: {}
-
- name: data_generator
id: 4
tasks:
diff --git a/intro_examples/model_interface.ipynb b/intro_examples/model_interface.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..11d99a4774834ca5786c8506954c222e3b600817
--- /dev/null
+++ b/intro_examples/model_interface.ipynb
@@ -0,0 +1,203 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "minute-company",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import os\n",
+ "import sys\n",
+ "import os\n",
+ "import ipywidgets as widgets\n",
+ "from ipywidgets import Button, HBox, VBox\n",
+ "from IPython.display import HTML, display, clear_output, Markdown as md, JSON, FileLink\n",
+ "from ipyfilechooser import FileChooser\n",
+ "\n",
+ "style = {'description_width': 'initial'}\n",
+ "\n",
+ "model_path = FileChooser('')\n",
+ "model_path.default_path= '../'\n",
+ "model_path.use_dir_icons = True\n",
+ "model_path.filter_pattern = ['*.py']\n",
+ "model_path.title = 'Path to python executable:'\n",
+ "display(model_path)\n",
+ "cmd = 'source setenv.sh' \n",
+ "os.system(cmd)\n",
+ "\n",
+ "pool_type = widgets.Dropdown(\n",
+ " options=['local_threads', 'slurm'],\n",
+ " value= 'local_threads',\n",
+ " description='Pool type:',\n",
+ " disabled=False,\n",
+ " style=style\n",
+ ")\n",
+ "display(pool_type)\n",
+ "\n",
+ "sleep_duration = widgets.BoundedIntText(\n",
+ " value=1,\n",
+ " min=0,\n",
+ " max=100,\n",
+ " step=1,\n",
+ " description='Sleep duration (s):',\n",
+ " disabled=False,\n",
+ " style=style\n",
+ ")\n",
+ "display(sleep_duration)\n",
+ "\n",
+ "scale_nodes = widgets.BoundedIntText(\n",
+ " value=3,\n",
+ " min=1,\n",
+ " max=100,\n",
+ " step=1,\n",
+ " description='Number of nodes:',\n",
+ " disabled=False,\n",
+ " style=style\n",
+ ")\n",
+ "\n",
+ "workers_nodes = widgets.BoundedIntText(\n",
+ " value=1,\n",
+ " min=1,\n",
+ " max=100,\n",
+ " step=1,\n",
+ " description='Workers per nodes:',\n",
+ " disabled=False,\n",
+ " style=style\n",
+ ")\n",
+ "\n",
+ "cpu_per_node = widgets.BoundedIntText(\n",
+ " value=1,\n",
+ " min=1,\n",
+ " max=100,\n",
+ " step=1,\n",
+ " description='CPU cores per worker:',\n",
+ " disabled=False,\n",
+ " style=style\n",
+ ")\n",
+ "\n",
+ "display(HBox([scale_nodes, workers_nodes, cpu_per_node]))\n",
+ "\n",
+ "maximum_threads = widgets.BoundedIntText(\n",
+ " value=1,\n",
+ " min=1,\n",
+ " max=100,\n",
+ " step=1,\n",
+ " description='Maximum local thread:',\n",
+ " disabled=False,\n",
+ " style=style\n",
+ ")\n",
+ "display(maximum_threads)\n",
+ "\n",
+ "run_model = widgets.Button(tooltip='Run model', icon='play', description='Run model', style=style)\n",
+ "output1 = widgets.Output()\n",
+ "display(run_model, output1)\n",
+ "\n",
+ "def run_model_clicked(b):\n",
+ " with output1:\n",
+ " #Clear cell output\n",
+ " for i in range(10):\n",
+ " clear_output(wait=True)\n",
+ " %run {model_path.selected} --pool {pool_type.value} --sleep {sleep_duration.value} --scale {scale_nodes.value}\\\n",
+ " --worker_per_node {workers_nodes.value} --cpu_per_node cpu_per_node.value --maximum_threads maximum_threads.value\n",
+ " print('Done')\n",
+ " \n",
+ "run_model.on_click(run_model_clicked)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "id": "matched-algeria",
+ "metadata": {},
+ "outputs": [
+ {
+ "ename": "ModuleNotFoundError",
+ "evalue": "No module named 'auxiliary'",
+ "output_type": "error",
+ "traceback": [
+ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
+ "\u001b[0;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)",
+ "\u001b[0;32m/hkfs/home/project/hk-project-test-sdlmat/th7356/work/gitlab/wfgenes/intro_examples/rgg/wfGenes_output/node_1001_1105/Dask/node_1001_1105_dask.py\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0myaml\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mnumpy\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 3\u001b[0;31m \u001b[0;32mfrom\u001b[0m \u001b[0mauxiliary\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mflat_tuple\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 4\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mauxiliary\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mflat_list\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mauxiliary\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mMERGE\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;31mModuleNotFoundError\u001b[0m: No module named 'auxiliary'"
+ ]
+ }
+ ],
+ "source": [
+ "#Trying to run manualy the Python executable - works\n",
+ "%run 'rgg/wfGenes_output/node_1001_1105/Dask/node_1001_1105_dask.py' --pool 'local_threads' --maximum_threads 2 --cpu_per_node 5 --sleep 1 --scale 3 --worker_per_node 3"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "id": "cross-ottawa",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "#Trying to execute run_model manualy\n",
+ "%run 'rgg/run_model.py' --pool 'local_threads' --sleep 1 --scale 3\\\n",
+ " --worker_per_node 1 --cpu_per_node 1 --model_path '/home/vagner/work/wfgenes/intro_examples/rgg/wfGenes_output/node_1001_1105/Dask/node_1001_1105_dask.py' --maximum_threads 1"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "id": "subjective-nowhere",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "#Trying to execute run_model manualy with different paths\n",
+ "%run 'rgg/run_model.py' --pool 'local_threads' --sleep 1 --scale 3\\\n",
+ " --worker_per_node 1 --cpu_per_node 1 --model_path 'wfGenes_output/node_1001_1105/Dask/node_1001_1105_dask.py' --maximum_threads 1"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "dated-wildlife",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def prepare_args(pool_type, sleep_duration, scale_nodes, workers_nodes, cpu_per_node, model_path, maximum_threads):\n",
+ " args = {'pool': pool_type, 'sleep': sleep_duration, 'scale': scale_nodes, 'worker_per_node': workers_nodes,\n",
+ " 'cpu_per_node': cpu_per_node, 'model_path': model_path, 'maximum_threads': maximum_threads}\n",
+ " return args\n",
+ "\n",
+ "args = prepare_args(pool_type.value, sleep_duration.value, scale_nodes.value, workers_nodes.value, cpu_per_node.value, model_path.selected, maximum_threads.value)\n",
+ "print(args)\n",
+ "\n",
+ "#%run 'rgg/run_model.py' {args}"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "valued-competition",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "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.7.5"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/intro_examples/rgg/wfGenes_output/node_10001_8144_unbalanced/Dask/node_10001_8144_unbalanced_dask.py b/intro_examples/rgg/wfGenes_output/node_10001_8144_unbalanced/Dask/node_10001_8144_unbalanced_dask.py
index 28adc6e430de8d26dd1c3dda5b5e435c067e3467..ec33a16f2c5ddec3108e459bf7bb222eb244b49b 100644
--- a/intro_examples/rgg/wfGenes_output/node_10001_8144_unbalanced/Dask/node_10001_8144_unbalanced_dask.py
+++ b/intro_examples/rgg/wfGenes_output/node_10001_8144_unbalanced/Dask/node_10001_8144_unbalanced_dask.py
@@ -29,7 +29,7 @@ if __name__ == '__main__':
start_time = time.time()
if args.pool == 'slurm':
- cluster = SLURMCluster(cores=int(args.cpu_per_node), memory='150GB', walltime='23:50:00', queue='cpuonly', processes = int(args.worker_per_node))
+ cluster = SLURMCluster(cores=int(args.cpu_per_node), memory='150GB', walltime='00:50:00', queue='cpuonly', processes = int(args.worker_per_node))
client = Client(cluster)
cluster.scale(int(args.scale))
print(cluster.job_script())
diff --git a/intro_examples/simple_workflow/inputs/message.yaml b/intro_examples/simple_workflow/inputs/message.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..3337f333afe2bd7b76d5311224f54b1e5d76dcad
--- /dev/null
+++ b/intro_examples/simple_workflow/inputs/message.yaml
@@ -0,0 +1 @@
+'Python function is running'
\ No newline at end of file
diff --git a/intro_examples/simple_workflow/lib/my_functions.py b/intro_examples/simple_workflow/lib/my_functions.py
new file mode 100644
index 0000000000000000000000000000000000000000..ed1aea8fb904b993d1a5b43dce5af0ebeaacb208
--- /dev/null
+++ b/intro_examples/simple_workflow/lib/my_functions.py
@@ -0,0 +1,12 @@
+import os
+import time
+
+def callscript(*args, **kwargs):
+ cmd = kwargs['command']
+ if 'argument' in kwargs.keys():
+ cmd = cmd + " " + kwargs['argument']
+ os.system(cmd)
+ return 'Done!!! '
+
+def callpython(message):
+ print(message)
\ No newline at end of file
diff --git a/intro_examples/simple_workflow/testscript b/intro_examples/simple_workflow/testscript
new file mode 100755
index 0000000000000000000000000000000000000000..b6bad1aafec319644c131132b94aeca6ec54c8d0
--- /dev/null
+++ b/intro_examples/simple_workflow/testscript
@@ -0,0 +1,3 @@
+#!/bin/bash
+
+echo The script is finished with the argument of $1
diff --git a/intro_examples/simple_workflow/wconfig_simple.yaml b/intro_examples/simple_workflow/wconfig_simple.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..7e4eef6ebfa02c6bd5b54658485074fa4ef56756
--- /dev/null
+++ b/intro_examples/simple_workflow/wconfig_simple.yaml
@@ -0,0 +1,42 @@
+workflow_name: simple_workflow
+nodes:
+- name: callpython
+ id: 1
+ tasks:
+ - func:
+ - my_functions
+ - callpython
+ inputs:
+ - message
+ outputs:
+ - received_id1
+ kwargs: {}
+- name: callscript
+ id: 2
+ tasks:
+ - func:
+ - my_functions
+ - callscript
+ kwargs:
+ command: "./testscript"
+ argument: 2
+ inputs: []
+ outputs:
+ - received_id2
+- name: argumentscript
+ id: 3
+ tasks:
+ - func:
+ - my_functions
+ - callscript
+ inputs:
+ - received_id1
+ - received_id2
+ kwargs:
+ command: "echo workflow is finished sucessfully"
+#metadata:
+# name: test
+# category: introduction example
+# feature: python and bash script
+
+
diff --git a/intro_examples/simple_workflow/wfGenes_output/simple_workflow/DOT/simple_workflow.dot b/intro_examples/simple_workflow/wfGenes_output/simple_workflow/DOT/simple_workflow.dot
new file mode 100644
index 0000000000000000000000000000000000000000..afdc75b422c81c4644ef32ac30f894b55af94b97
--- /dev/null
+++ b/intro_examples/simple_workflow/wfGenes_output/simple_workflow/DOT/simple_workflow.dot
@@ -0,0 +1,35 @@
+digraph {
+ graph[
+ name=simple_workflow
+ ];
+0 [
+state=NONE
+name="callpython"
+label="callpython"
+ style=filled
+color=""
+fillcolor="none"
+ ];
+1 [
+state=NONE
+name="callscript"
+label="callscript"
+ style=filled
+color=""
+fillcolor="none"
+ ];
+2 [
+state=NONE
+name="argumentscript"
+label="argumentscript"
+ style=filled
+color=""
+fillcolor="none"
+ ];
+0->2[
+label="received"
+ ];
+1->2[
+label="received"
+ ];
+ }
diff --git a/intro_examples/simple_workflow/wfGenes_output/simple_workflow/DOT/simple_workflow.pdf b/intro_examples/simple_workflow/wfGenes_output/simple_workflow/DOT/simple_workflow.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..e3b03a17b7d2f42ff369fc00482acb8cf313a131
Binary files /dev/null and b/intro_examples/simple_workflow/wfGenes_output/simple_workflow/DOT/simple_workflow.pdf differ
diff --git a/intro_examples/simple_workflow/wfGenes_output/simple_workflow/DOT/simple_workflow.png b/intro_examples/simple_workflow/wfGenes_output/simple_workflow/DOT/simple_workflow.png
new file mode 100644
index 0000000000000000000000000000000000000000..c5b383386014a258db59063b8af5c98e7d3f4542
Binary files /dev/null and b/intro_examples/simple_workflow/wfGenes_output/simple_workflow/DOT/simple_workflow.png differ
diff --git a/wfGenes_exe/auxiliary.py b/wfGenes_exe/auxiliary.py
deleted file mode 100644
index 0d80f8b3a7831a52e1ea9bfa925462316a8bafcd..0000000000000000000000000000000000000000
--- a/wfGenes_exe/auxiliary.py
+++ /dev/null
@@ -1,46 +0,0 @@
-
-import numpy as np
-import time
-
-def printrun(*args):
- result = []
- for arg in args:
- if isinstance(arg, list) and len(arg) == 1:
- result.append(arg[0])
- else:
- result.append(arg)
- if len(result) == 1:
- result = result[0]
- print(result)
- return result
-
-
-def MERGE(**kwargs):
- dic_merged = {}
- for key, value in kwargs.items():
- if isinstance(value, np.number):
- value = float(value)
- else:
- value = value
- return (kwargs)
-
-
-def flat_tuple(lazy_tuple, return_number):
- flat_list = []
- for i in range(return_number):
- flat_list.append([])
- for i in range(return_number):
- for j in range(len(lazy_tuple)):
- for item in lazy_tuple[j][i]:
- flat_list[return_number- (i + 1)].append(item)
- return flat_list
-
-
-def flat_list(lazy_list):
- flat_list = []
- for list in lazy_list:
- for item in list:
- flat_list.append(item)
- return flat_list
-
-
diff --git a/wfGenes_exe/blueglue.ipynb b/wfGenes_exe/blueglue.ipynb
index ab06cb7cbd813b3ba23228a429adc767d699b6f8..9d51b5503c3adac1c54fa79821db2cb8a482e388 100644
--- a/wfGenes_exe/blueglue.ipynb
+++ b/wfGenes_exe/blueglue.ipynb
@@ -2,7 +2,7 @@
"cells": [
{
"cell_type": "markdown",
- "id": "behavioral-collection",
+ "id": "apparent-oliver",
"metadata": {},
"source": [
"# Jupyter Lab Test for WGenes"
@@ -10,7 +10,7 @@
},
{
"cell_type": "markdown",
- "id": "necessary-shipping",
+ "id": "seeing-revolution",
"metadata": {
"tags": []
},
@@ -21,7 +21,7 @@
{
"cell_type": "code",
"execution_count": 1,
- "id": "conceptual-pension",
+ "id": "integral-seminar",
"metadata": {
"tags": []
},
@@ -42,22 +42,109 @@
},
{
"cell_type": "code",
- "execution_count": 7,
- "id": "boxed-alarm",
+ "execution_count": 1,
+ "id": "sporting-jordan",
"metadata": {
"tags": []
},
"outputs": [
{
- "ename": "ModuleNotFoundError",
- "evalue": "No module named 'ipyfilechooser'",
- "output_type": "error",
- "traceback": [
- "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
- "\u001b[0;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)",
- "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mipywidgets\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mButton\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mHBox\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mVBox\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mIPython\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdisplay\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mHTML\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdisplay\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mclear_output\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mMarkdown\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mmd\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mJSON\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mFileLink\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 7\u001b[0;31m \u001b[0;32mfrom\u001b[0m \u001b[0mipyfilechooser\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mFileChooser\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 8\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 9\u001b[0m \u001b[0;31m# Getting the arguments with FileChooser and SelectMultiple\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
- "\u001b[0;31mModuleNotFoundError\u001b[0m: No module named 'ipyfilechooser'"
- ]
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "19e35e9999464966a39b9d12e39dd81c",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ "FileChooser(path='..', filename='', title='HTML(value='Upload a configuration file')', show_hidden='Fal…"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "6a5e475de016440a9b656acabd22a399",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ "FileChooser(path='..', filename='', title='HTML(value='Select the input path')', show_hidden='False', u…"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "b982b18d4a0b4b588ce529aee31fd38b",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ "Button(icon='plus', style=ButtonStyle(), tooltip='Press for adding additional input paths')"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "92c7cdc3c77745798c70e7cbdc990240",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ "Output()"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "f142d9817bbb44d18fa6e02d74da7241",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ "SelectMultiple(description='Choose a model:', index=(0,), options=('FireWorks', 'SimStack', 'Dask', 'Par…"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "4694144ba9bb4cb4a418ecf97019c687",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ "Button(description='Generate Graph', style=ButtonStyle())"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "b60a8ec4bf7749ff99a1f87bdbcb812d",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ "Output()"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
}
],
"source": [
@@ -68,6 +155,7 @@
"from ipywidgets import Button, HBox, VBox\n",
"from IPython.display import HTML, display, clear_output, Markdown as md, JSON, FileLink\n",
"from ipyfilechooser import FileChooser\n",
+ "import time\n",
"\n",
"# Getting the arguments with FileChooser and SelectMultiple\n",
"config = FileChooser('')\n",
@@ -123,12 +211,12 @@
"\n",
"#Prepare args to wgenerator\n",
"def prepare_args(config, input):\n",
- " args = {'workflowconfig' : config.selected, 'inputpath': inputp.selected_path , 'wms':'all'}\n",
+ " args = {'workflowconfig' : config.selected, 'inputpath': inputp.selected_path , 'wms':model.value[0]}\n",
" return args\n",
"\n",
"#Run wgenerator\n",
"def run_wgenerator(args):\n",
- " png=wgenerator.run_wfgenes(args)\n",
+ " png = wgenerator.run_wfgenes(args)\n",
" return png\n",
" \n",
"#Display graph\n",
@@ -152,15 +240,9 @@
" clear_output(wait=True) \n",
" args = prepare_args(config, inputp)\n",
" png = run_wgenerator(args)\n",
- " path_split = config.selected.split('wfgenes')\n",
- " suffix_path = len(path_split) - 1\n",
- " config_path = '..' + path_split[suffix_path]\n",
- " path = FileLink(config_path)\n",
+ " time.sleep(1)\n",
" display_graph(png)\n",
- " #display(dis_wconfig, output2)\n",
- " #print('Change the graph by editing the WConfig file:')\n",
- " #display(path)\n",
- " display(HBox([dis_wconfig, edit_wconfig]), output2, output4, path)\n",
+ " display(HBox([dis_wconfig, edit_wconfig]), output2, output4)\n",
"\n",
"#Define event when WConfig preview button is clicked\n",
"def on_button_clicked_2(b_2):\n",
@@ -177,8 +259,8 @@
" elif config_split[suffix_dot] == 'yaml':\n",
" config_dic = yaml.load(config_content, Loader=yaml.Loader)\n",
" display(JSON(config_dic))\n",
- " \n",
- "#Define even when plus input button in clicked\n",
+ " \n",
+ "#Define event when plus input button in clicked\n",
"inputpath = []\n",
"def on_button_clicked_3(b3):\n",
" inputpath.append(FileChooser(''))\n",
@@ -186,63 +268,72 @@
" inputpath[len(inputpath)-1].use_dir_icons = True\n",
" with output3:\n",
" display(inputpath[len(inputpath)-1])\n",
+ " \n",
+ "#Define event when Wconfig edit button is clicked\n",
+ "def on_button_clicked_4(b4):\n",
+ " with output4:\n",
+ " #Clear cell output\n",
+ " for i in range(10):\n",
+ " clear_output(wait=True)\n",
+ " path_split = config.selected.split('wfgenes')\n",
+ " suffix_path = len(path_split) - 1\n",
+ " config_path = '..' + path_split[suffix_path]\n",
+ " path = FileLink(config_path)\n",
+ " display(path)\n",
"\n",
"button.on_click(on_button_clicked)\n",
"dis_wconfig.on_click(on_button_clicked_2)\n",
- "plus_input.on_click(on_button_clicked_3)"
+ "plus_input.on_click(on_button_clicked_3)\n",
+ "edit_wconfig.on_click(on_button_clicked_4)"
]
},
{
"cell_type": "code",
- "execution_count": 8,
- "id": "positive-rider",
+ "execution_count": 2,
+ "id": "noble-taylor",
"metadata": {},
"outputs": [
{
- "ename": "NameError",
- "evalue": "name 'style' is not defined",
- "output_type": "error",
- "traceback": [
- "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
- "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)",
- "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0moutput1\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mwidgets\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mOutput\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 4\u001b[0;31m \u001b[0mbutton2\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mwidgets\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mButton\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdescription\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'Test2'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbutton_style\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'info'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstyle\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mstyle\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m# 'success', 'info', 'warning', 'danger' or ''\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 5\u001b[0m \u001b[0moutput2\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mwidgets\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mOutput\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
- "\u001b[0;31mNameError\u001b[0m: name 'style' is not defined"
- ]
+ "data": {
+ "text/plain": [
+ "('FireWorks',)"
+ ]
+ },
+ "execution_count": 2,
+ "metadata": {},
+ "output_type": "execute_result"
}
],
"source": [
- "button1 = widgets.Button(tooltip='Click me', icon='plus')\n",
- "output1 = widgets.Output()\n",
- "\n",
- "button2 = widgets.Button(description='Test2', button_style='info', style=style) # 'success', 'info', 'warning', 'danger' or ''\n",
- "output2 = widgets.Output()\n",
- "\n",
- "HBox([button1, output1, button2, output2])"
+ "intro_examples/foreach_sample/wfGenes_output/parallel_data_jupyter"
]
},
{
"cell_type": "code",
- "execution_count": 42,
- "id": "controlling-tract",
+ "execution_count": 3,
+ "id": "45399c03-c96e-4a97-8ccb-8beacd4ce2f1",
"metadata": {},
"outputs": [
{
- "ename": "SyntaxError",
- "evalue": "invalid syntax (, line 1)",
+ "ename": "NameError",
+ "evalue": "name 'png' is not defined",
"output_type": "error",
"traceback": [
- "\u001b[0;36m File \u001b[0;32m\"\"\u001b[0;36m, line \u001b[0;32m1\u001b[0m\n\u001b[0;31m import ../work/wfgenes/intro_examples/multihith/workflow_version_1.json\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid syntax\n"
+ "\u001b[0;31m--------------------------------\u001b[0m",
+ "\u001b[0;31mNameError\u001b[0mTraceback (most recent call last)",
+ "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpng\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
+ "\u001b[0;31mNameError\u001b[0m: name 'png' is not defined"
]
}
],
"source": [
- "import ../work/wfgenes/intro_examples/multihith/workflow_version_1.json"
+ "print(png)"
]
},
{
"cell_type": "code",
"execution_count": null,
- "id": "standard-joseph",
+ "id": "8a74a530-2049-463f-a412-7b7d58e3fd98",
"metadata": {},
"outputs": [],
"source": []
@@ -265,7 +356,8 @@
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.5"
- }
+ },
+ "toc-showtags": false
},
"nbformat": 4,
"nbformat_minor": 5
diff --git a/wfGenes_exe/blueglue.yml b/wfGenes_exe/blueglue.yml
new file mode 100644
index 0000000000000000000000000000000000000000..1a3776d82c80c2d8543029d8257573a0e3fa2e0d
--- /dev/null
+++ b/wfGenes_exe/blueglue.yml
@@ -0,0 +1,70 @@
+name: blueglue
+channels:
+ - defaults
+ - conda-forge
+dependencies:
+ - pip
+ - s3fs=0.4.0
+ - notebook
+ - scikit-learn[version='>=0.21.1']
+ - jupyterlab[version='>=1.0']
+ - toolz
+ - pytables
+ - bokeh[version='>=1.2.0']
+ - scipy[version='>=1.3.0']
+ - dask-ml=1.1.1
+ - python=3.7.5
+ - dask=2.8.1
+ - distributed=2.8.1
+ - nodejs
+ - ipywidgets[version='>=7.5']
+ - pandas-datareader
+ - matplotlib
+ - pandas[version='>=0.24.2']
+ - scikit-image[version='>=0.15.0']
+ - pyaml
+ - cachey
+ - python-graphviz
+ - dask-jobqueue
+ - dask-labextension[version='>=1.0.3']
+ - fastparquet=0.3.2
+ - pylint
+ - snakeviz
+ - h5py
+ - ase
+ - zarr
+ - pillow
+ - fireworks
+ - python-igraph
+ - ujson
+ - numpy[version='>=1.16.4']
+ - pip:
+ - art==5.1
+ - autopep8==1.5.7
+ - dask==2021.4.1
+ - db-query==1.3.0
+ - dbquery==0.4.1
+ - dill==0.3.3
+ - distributed==2021.4.1
+ - docutils==0.17.1
+ - elementpath==2.2.1
+ - fireworks-schema==1.0.0
+ - flask-sqlalchemy==2.5.1
+ - globus-sdk==2.0.1
+ - ipyfilechooser==0.4.3
+ - lockfile==0.12.2
+ - mpi4py==3.0.3
+ - parsl==1.1.0
+ - plotly==4.14.3
+ - pycodestyle==2.7.0
+ - pydot==1.4.2
+ - pyjwt==1.7.1
+ - pyrgg==1.0
+ - python-daemon==2.3.0
+ - retrying==1.3.3
+ - sqlalchemy==1.3.24
+ - sqlalchemy-utils==0.37.1
+ - typeguard==2.12.0
+ - xmlschema==1.6.1
+
+
diff --git a/wfGenes_exe/dask_executor.cfg b/wfGenes_exe/dask_executor.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..a8a2e4350e4b0b3b0614d5c14908dab1b317916b
--- /dev/null
+++ b/wfGenes_exe/dask_executor.cfg
@@ -0,0 +1,9 @@
+
+ if args.pool == 'slurm':
+ cluster = SLURMCluster(cores=int(args.cpu_per_node), memory='150GB', walltime='00:50:00', queue='cpuonly', processes = int(args.worker_per_node))
+ client = Client(cluster)
+ cluster.scale(int(args.scale))
+ print(cluster.job_script())
+ elif args.pool == 'local_threads':
+ dask.config.set(scheduler='threads')
+ dask.config.set(pool=ThreadPoolExecutor(int(args.maximum_threads)))
\ No newline at end of file
diff --git a/wfGenes_exe/dask_import.cfg b/wfGenes_exe/dask_import.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..d364dd45749fd5b8721f127d0f4ea3f7426bdfbd
--- /dev/null
+++ b/wfGenes_exe/dask_import.cfg
@@ -0,0 +1,12 @@
+from parsl.executors import threads
+import yaml
+import numpy as np
+from blueglue import flat_tuple
+from blueglue import flat_list
+from blueglue import MERGE
+import dask
+from dask.distributed import Client
+from distributed.client import *
+from dask_jobqueue import SLURMCluster
+import time
+import argparse
diff --git a/wfGenes_exe/dask_wfgenes.py b/wfGenes_exe/dask_wfgenes.py
index 669ef1e2ea2dd7eab0099c52749f01aa2b500bac..ae549476f143ec76eb35ce60cff14e8a7ebce0aa 100644
--- a/wfGenes_exe/dask_wfgenes.py
+++ b/wfGenes_exe/dask_wfgenes.py
@@ -15,13 +15,12 @@ import json
import yaml
from builtin_wfgenes import merge_dic
from initial_wfgenes import BasewfGenes
-import shutil
+
+
+ROOT_DIR = os.path.dirname(os.path.abspath(__file__))
class DaskwfGenes():
"""Generate Python wrapper for wConfig nodes orignized to run parallel with DASK delayed decorators"""
-
-
-
def __init__(self, wfgenes_init):
# BasewfGenes.__init__(self, blueargs)
self.dask_generation(wfgenes_init)
@@ -31,23 +30,14 @@ class DaskwfGenes():
self.indent=" "
lazy_str = 'lazy_'
dask_path = os.path.join(wfgenes_init.workflow_path, 'Dask')
- if os.path.exists(dask_path):
- shutil.rmtree(dask_path)
- os.makedirs(dask_path)
- else:
+ if not os.path.exists(dask_path):
os.makedirs(dask_path)
wrapper_path = os.path.join(dask_path,
wfgenes_init.interface_dict['workflow_name'] + '_dask.py')
- self.wfg_dask += "import yaml\n"
- self.wfg_dask += "import numpy as np\n"
- self.wfg_dask += "from auxiliary import flat_tuple\n"
- self.wfg_dask += "from auxiliary import flat_list\n"
- self.wfg_dask += "from auxiliary import MERGE\n"
- self.wfg_dask += "import dask \n"
- self.wfg_dask += "from dask.distributed import Client\n"
- self.wfg_dask += "from distributed.client import *\n"
- self.wfg_dask += "from dask_jobqueue import SLURMCluster\n"
- self.wfg_dask += "import time\n"
+ dask_import_path = os.path.join(ROOT_DIR, 'dask_import.cfg')
+ dask_import = open(dask_import_path, 'r')
+ self.wfg_dask += dask_import.read()
+ self.wfg_dask += '\n'
for i in range(wfgenes_init.routine_number):
for j in range(wfgenes_init.subroutine_number[i]):
@@ -60,14 +50,16 @@ class DaskwfGenes():
if wfgenes_init.func_file != 'BUILTIN' and func_nodup_0 != 'duplicate' and func_global_nodup_0 != 'global_duplicate':
self.wfg_dask += 'from ' + str(wfgenes_init.func_file) + ' import ' + str(func_module) + '\n'
-
+ executor_arg_parser_path = os.path.join(ROOT_DIR, 'executor_arg_parser.cfg')
+ executor_arg_parser = open(executor_arg_parser_path, 'r')
+ self.wfg_dask += self.indent
+ self.wfg_dask += executor_arg_parser.read()
self.wfg_dask += "\nif __name__ == '__main__':\n\n"
self.wfg_dask += "\n"+ self.indent+"start_time = time.time()"
- self.wfg_dask += "\n"+self.indent+"#cluster = SLURMCluster(cores=40, memory='150GB', walltime='01:50:00', queue='single', processes=4)"
- self.wfg_dask += "\n"+self.indent+"#client = Client(cluster)"
- self.wfg_dask += "\n"+self.indent+"#cluster.scale(1)"
- self.wfg_dask += "\n"+self.indent+"#print(cluster.job_script())"
- self.wfg_dask += "\n"+self.indent+"dask.config.set(scheduler='threads')"
+ dask_config_path = os.path.join(ROOT_DIR, 'dask_executor.cfg')
+ dask_executor = open(dask_config_path, 'r')
+ self.wfg_dask += self.indent
+ self.wfg_dask += dask_executor.read()
for i in range(wfgenes_init.routine_number):
for j in range(wfgenes_init.subroutine_number[i]):
@@ -280,7 +272,9 @@ class DaskwfGenes():
for step in steps_width:
self.wfg_dask += str(step) + ", "
with open(wrapper_path, 'w') as file:
- file.write(self.wfg_dask)
+ file.write(self.wfg_dask)
+ cmd = 'autopep8 --in-place --aggressive '+ wrapper_path
+ os.system(cmd)
diff --git a/wfGenes_exe/fireworks_wfgenes.py b/wfGenes_exe/fireworks_wfgenes.py
index 5b8d58d59b35c8ccdecc202908c506fd7a93d42c..780fde3941bf7b336653e9641de20e4caacd6171 100644
--- a/wfGenes_exe/fireworks_wfgenes.py
+++ b/wfGenes_exe/fireworks_wfgenes.py
@@ -133,7 +133,7 @@ class FireworkwfGenes():
workflow = {'fws': self.fws, 'links': links, 'metadata': metadata,
'name': wfgenes_init.interface_dict['workflow_name'] + '_wfGenes'}
- #fireworks_schema.validate(workflow, 'Workflow'
+ fireworks_schema.validate(workflow, 'Workflow')
pad_path = os.path.join(firework_path,
wfgenes_init.interface_dict['workflow_name'] + '.yaml')
with open(pad_path, 'w') as output_stream:
diff --git a/wfGenes_exe/parsl_config.cfg b/wfGenes_exe/parsl_config.cfg
index 9643ca2881fb1dbfed1aa5b82650121960ad9d57..7666423596782bf2b64676ca21cb45bc57bc665f 100644
--- a/wfGenes_exe/parsl_config.cfg
+++ b/wfGenes_exe/parsl_config.cfg
@@ -1,52 +1,36 @@
-
-
- config_slurm = Config(
- executors=[
- HighThroughputExecutor(
- label="frontera_htex",
- address=address_by_hostname(),
- max_workers=56,
- provider=SlurmProvider(
- channel=LocalChannel(),
- nodes_per_block=1,
- init_blocks=1,
- partition='single',
- walltime = '00:30:00',
- launcher=SrunLauncher(),
- ),
- )
- ],
-
- monitoring=MonitoringHub(
- hub_address=address_by_hostname(),
- monitoring_debug=False,
- workflow_name = 'slab_1_slurm',
- resource_monitoring_interval=1,
- ),
- strategy = None
- )
-
- config_local = Config(
- executors=[
+
+ if args.pool == 'slurm':
+ config = Config(
+ executors=[
HighThroughputExecutor(
- label = "frontera_htex",
- cores_per_worker = 2,
- max_workers = 40,
- storage_access=[NoOpFileStaging()],
- provider = LocalProvider(
- parallelism = 1,
- ),
-
+ label="frontera_htex",
+ address=address_by_hostname(),
+ max_workers = int(args.worker_per_node)* int(args.scale),
+ cores_per_worker = int(args.cpu_per_node) / int(args.worker_per_node),
+ provider=SlurmProvider(
+ channel=LocalChannel(),
+ cores_per_node = int(args.cpu_per_node),
+ nodes_per_block=int(args.scale),
+ init_blocks=1,
+ partition='cpuonly',
+ walltime = '00:30:00',
+ launcher=SrunLauncher(),
+ ),
+ )
+ ],
+ strategy = None
+ )
+
+ elif args.pool == "local_threads":
+ config = Config(
+ executors=[
+ ThreadPoolExecutor(
+ label = "frontera_htex",
+ max_threads=int(args.maximum_threads),
+ )
+ ],
+ strategy = None
)
- ],
- monitoring=MonitoringHub(
- hub_address=address_by_hostname(),
- workflow_name = 'slab_1_local',
- monitoring_debug=False,
- resource_monitoring_interval=1,
- ),
- strategy = None
- )
-
- parsl.load(config_local)
\ No newline at end of file
+ parsl.clear()
+ parsl.load(config)
\ No newline at end of file
diff --git a/wfGenes_exe/parsl_import.cfg b/wfGenes_exe/parsl_import.cfg
index 20855490246e82ee7a772a709be7d47f12316280..1be40cd509444d2e795d8a922768cce486635e17 100644
--- a/wfGenes_exe/parsl_import.cfg
+++ b/wfGenes_exe/parsl_import.cfg
@@ -1,13 +1,14 @@
+import parsl
from parsl.addresses import address_by_hostname
from parsl.providers import LocalProvider
from parsl.channels import LocalChannel
from parsl.config import Config
from parsl.executors import HighThroughputExecutor
+from parsl.executors import ThreadPoolExecutor
from parsl.monitoring.monitoring import MonitoringHub
-import parsl
-
from parsl.providers import SlurmProvider
from parsl.launchers import SrunLauncher
-
from parsl.data_provider.files import File
from parsl.data_provider.file_noop import NoOpFileStaging
+import argparse
+
diff --git a/wfGenes_exe/parsl_wfgenes.py b/wfGenes_exe/parsl_wfgenes.py
index 503f82286c0e7328860585bfce685aa666e3afe9..4e28e6b74dee6e50061bfa0417bf9b849059c7e0 100644
--- a/wfGenes_exe/parsl_wfgenes.py
+++ b/wfGenes_exe/parsl_wfgenes.py
@@ -34,13 +34,14 @@ class ParslwfGenes():
wfgenes_init.interface_dict['workflow_name'] + '_parsl.py')
self.wfg_parsl += "import yaml\n"
self.wfg_parsl += "import numpy as np\n"
- self.wfg_parsl += "from auxiliary import MERGE\n"
- self.wfg_parsl += "from auxiliary import flat_tuple\n"
- self.wfg_parsl += "from auxiliary import flat_list\n"
+ self.wfg_parsl += "from blueglue import MERGE\n"
+ self.wfg_parsl += "from blueglue import flat_tuple\n"
+ self.wfg_parsl += "from blueglue import flat_list\n"
self.wfg_parsl += "import time\n"
parsl_import_path = os.path.join(ROOT_DIR, 'parsl_import.cfg')
parsl_import = open(parsl_import_path, 'r')
self.wfg_parsl += parsl_import.read()
+ self.wfg_parsl +='\n'
for i in range(wfgenes_init.routine_number):
for j in range(wfgenes_init.subroutine_number[i]):
@@ -51,7 +52,12 @@ class ParslwfGenes():
func_global_nodup= wfgenes_init.func_global_nodup[i][j][0]
if func_file != 'BUILTIN' and func_nodup != 'duplicate' and func_global_nodup != 'global_duplicate':
self.wfg_parsl += 'from ' + str(func_file) + ' import ' + str(func_module) + '\n'
-
+
+ parsl_arg_parser_path = os.path.join(ROOT_DIR, 'executor_arg_parser.cfg')
+ parsl_arg_parser = open(parsl_arg_parser_path, 'r')
+ self.wfg_parsl += self.indent
+ self.wfg_parsl += parsl_arg_parser.read()
+
self.wfg_parsl += "\nif __name__ == '__main__':\n\n"
self.wfg_parsl += "\n"+ self.indent+"start_time = time.time()"
@@ -241,7 +247,9 @@ class ParslwfGenes():
for step in steps_width:
self.wfg_parsl += str(step) + ", "
with open(self.wrapper_path, 'w') as file:
- file.write(self.wfg_parsl)
+ file.write(self.wfg_parsl)
+ cmd = 'autopep8 --in-place --aggressive '+ self.wrapper_path
+ os.system(cmd)
@@ -332,7 +340,7 @@ class ParslwfGenes():
if not bool(wfgenes_init.kwargs[i][j]) or wfgenes_init.kwargs[i][j] == 'null' :
if len_inputs !=0:
- self.wfg_dask = self.wfg_dask[:-2]
+ self.wfg_parsl = self.wfg_parsl[:-2]
self.wfg_parsl += ')'
elif bool(wfgenes_init.kwargs[i][j]) and wfgenes_init.kwargs[i][j] != 'null' :
self.wfg_parsl += kwargs_string
diff --git a/wfGenes_exe/performance_test.ipynb b/wfGenes_exe/performance_test.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..a3647c6c62949ee25aad59bc6bdc874366623a6b
--- /dev/null
+++ b/wfGenes_exe/performance_test.ipynb
@@ -0,0 +1,341 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "id": "spare-duration",
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "ename": "ModuleNotFoundError",
+ "evalue": "No module named 'myfunctions'",
+ "output_type": "error",
+ "traceback": [
+ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
+ "\u001b[0;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)",
+ "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0;31m#sys.path.insert(1, '../intro_examples/foreach_sample/lib')\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0msys\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpath\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0minsert\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'/home/vagner/work/wfgenes/intro_examples/foreach_sample/lib'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 5\u001b[0;31m \u001b[0;32mimport\u001b[0m \u001b[0mmyfunctions\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 6\u001b[0m \u001b[0;31m#sys.path.insert(1, '../intro_examples/foreach_sample/wfGenes_output/foreach_sample/Dask/')\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 7\u001b[0m \u001b[0;31m#import foreach_sample_dask\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;31mModuleNotFoundError\u001b[0m: No module named 'myfunctions'"
+ ]
+ }
+ ],
+ "source": [
+ "import os\n",
+ "import sys\n",
+ "#sys.path.insert(1, '../intro_examples/foreach_sample/lib')\n",
+ "sys.path.insert(1, '/home/vagner/work/wfgenes/intro_examples/foreach_sample/lib')\n",
+ "import myfunctions\n",
+ "#sys.path.insert(1, '../intro_examples/foreach_sample/wfGenes_output/foreach_sample/Dask/')\n",
+ "#import foreach_sample_dask"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "involved-uzbekistan",
+ "metadata": {},
+ "source": [
+ "See [list_length](../intro_examples/foreach_sample/inputs/list_length.yaml)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "id": "charitable-sympathy",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "/home/vagner/work/wfgenes/intro_examples/foreach_sample/inputs\n"
+ ]
+ },
+ {
+ "ename": "ModuleNotFoundError",
+ "evalue": "No module named 'myfunctions'",
+ "output_type": "error",
+ "traceback": [
+ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
+ "\u001b[0;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)",
+ "\u001b[0;32m~/work/wfgenes/intro_examples/foreach_sample/wfGenes_output/foreach_sample/Parsl/foreach_sample_parsl.py\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 110\u001b[0m \u001b[0mparsl_plus_minus_future\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mparsl_plus_minus_foreach\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 111\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mparsl_plus_minus_future\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 112\u001b[0;31m \u001b[0mparsl_plus_minus\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mparsl_plus_minus_future\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mresult\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 113\u001b[0m \u001b[0mparsl_plus_minus\u001b[0m\u001b[0;34m=\u001b[0m \u001b[0mflat_tuple\u001b[0m\u001b[0;34m(\u001b[0m \u001b[0mparsl_plus_minus\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m2\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 114\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;32m/home/miniconda3/lib/python3.8/concurrent/futures/_base.py\u001b[0m in \u001b[0;36mresult\u001b[0;34m(self, timeout)\u001b[0m\n\u001b[1;32m 437\u001b[0m \u001b[0;32mraise\u001b[0m \u001b[0mCancelledError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 438\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_state\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0mFINISHED\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 439\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__get_result\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 440\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 441\u001b[0m \u001b[0;32mraise\u001b[0m \u001b[0mTimeoutError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;32m/home/miniconda3/lib/python3.8/concurrent/futures/_base.py\u001b[0m in \u001b[0;36m__get_result\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 386\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__get_result\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 387\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_exception\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 388\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_exception\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 389\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 390\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_result\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;32m~/.local/lib/python3.8/site-packages/parsl/dataflow/dflow.py\u001b[0m in \u001b[0;36mhandle_exec_update\u001b[0;34m(self, task_id, future)\u001b[0m\n\u001b[1;32m 284\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 285\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 286\u001b[0;31m \u001b[0mres\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_unwrap_remote_exception_wrapper\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfuture\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 287\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 288\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mException\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;32m~/.local/lib/python3.8/site-packages/parsl/dataflow/dflow.py\u001b[0m in \u001b[0;36m_unwrap_remote_exception_wrapper\u001b[0;34m(future)\u001b[0m\n\u001b[1;32m 437\u001b[0m \u001b[0;34m@\u001b[0m\u001b[0mstaticmethod\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 438\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_unwrap_remote_exception_wrapper\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfuture\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mFuture\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m->\u001b[0m \u001b[0mAny\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 439\u001b[0;31m \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfuture\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mresult\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 440\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mresult\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mRemoteExceptionWrapper\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 441\u001b[0m \u001b[0mresult\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreraise\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;32m/home/miniconda3/lib/python3.8/concurrent/futures/_base.py\u001b[0m in \u001b[0;36mresult\u001b[0;34m(self, timeout)\u001b[0m\n\u001b[1;32m 430\u001b[0m \u001b[0;32mraise\u001b[0m \u001b[0mCancelledError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 431\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_state\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0mFINISHED\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 432\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__get_result\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 433\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 434\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_condition\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mwait\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtimeout\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;32m/home/miniconda3/lib/python3.8/concurrent/futures/_base.py\u001b[0m in \u001b[0;36m__get_result\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 386\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__get_result\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 387\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_exception\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 388\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_exception\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 389\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 390\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_result\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;32m~/.local/lib/python3.8/site-packages/parsl/executors/high_throughput/executor.py\u001b[0m in \u001b[0;36m_queue_management_worker\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 409\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ms\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mRemoteExceptionWrapper\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 410\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 411\u001b[0;31m \u001b[0ms\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreraise\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 412\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mException\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 413\u001b[0m \u001b[0mtask_fut\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mset_exception\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0me\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;32m~/.local/lib/python3.8/site-packages/parsl/app/errors.py\u001b[0m in \u001b[0;36mreraise\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 129\u001b[0m \u001b[0mtb\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0me_traceback\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mas_traceback\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 130\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 131\u001b[0;31m \u001b[0mreraise\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mt\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mv\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtb\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 132\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 133\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;32m/home/miniconda3/lib/python3.8/site-packages/six.py\u001b[0m in \u001b[0;36mreraise\u001b[0;34m(tp, value, tb)\u001b[0m\n\u001b[1;32m 700\u001b[0m \u001b[0mvalue\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtp\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 701\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mvalue\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__traceback__\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mtb\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 702\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mvalue\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mwith_traceback\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtb\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 703\u001b[0m \u001b[0;32mraise\u001b[0m \u001b[0mvalue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 704\u001b[0m \u001b[0;32mfinally\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;32m~/.local/bin/process_worker_pool.py\u001b[0m in \u001b[0;36mworker\u001b[0;34m()\u001b[0m\n\u001b[1;32m 540\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 541\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 542\u001b[0;31m \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mexecute_task\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mreq\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'buffer'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 543\u001b[0m \u001b[0mserialized_result\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mserialize\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mresult\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbuffer_threshold\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m1e6\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 544\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mException\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;32m~/.local/bin/process_worker_pool.py\u001b[0m in \u001b[0;36mexecute_task\u001b[0;34m()\u001b[0m\n\u001b[1;32m 450\u001b[0m \u001b[0muser_ns\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mupdate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m{\u001b[0m\u001b[0;34m'__builtins__'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0m__builtins__\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 451\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 452\u001b[0;31m \u001b[0mf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkwargs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0munpack_apply_message\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbufs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0muser_ns\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 453\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 454\u001b[0m \u001b[0;31m# We might need to look into callability of the function from itself\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;32m~/.local/lib/python3.8/site-packages/parsl/serialize/facade.py\u001b[0m in \u001b[0;36munpack_apply_message\u001b[0;34m()\u001b[0m\n\u001b[1;32m 67\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 68\u001b[0m \"\"\"\n\u001b[0;32m---> 69\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdeserialize\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbuf\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mbuf\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0munpack_buffers\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpacked_buffer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 70\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 71\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mserialize\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mobj\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbuffer_threshold\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m1e6\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;32m~/.local/lib/python3.8/site-packages/parsl/serialize/facade.py\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 67\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 68\u001b[0m \"\"\"\n\u001b[0;32m---> 69\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdeserialize\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbuf\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mbuf\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0munpack_buffers\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpacked_buffer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 70\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 71\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mserialize\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mobj\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbuffer_threshold\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m1e6\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;32m~/.local/lib/python3.8/site-packages/parsl/serialize/facade.py\u001b[0m in \u001b[0;36mdeserialize\u001b[0;34m()\u001b[0m\n\u001b[1;32m 119\u001b[0m \u001b[0mheader\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpayload\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mheader_size\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 120\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mheader\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmethods_for_code\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 121\u001b[0;31m \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmethods_for_code\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mheader\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdeserialize\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpayload\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 122\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0mheader\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmethods_for_data\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 123\u001b[0m \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmethods_for_data\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mheader\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdeserialize\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpayload\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;32m~/.local/lib/python3.8/site-packages/parsl/serialize/concretes.py\u001b[0m in \u001b[0;36mdeserialize\u001b[0;34m()\u001b[0m\n\u001b[1;32m 52\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mdeserialize\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpayload\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 53\u001b[0m \u001b[0mchomped\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mchomp\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpayload\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 54\u001b[0;31m \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdill\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mloads\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mchomped\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 55\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;32m~/.local/lib/python3.8/site-packages/dill/_dill.py\u001b[0m in \u001b[0;36mloads\u001b[0;34m()\u001b[0m\n\u001b[1;32m 281\u001b[0m \u001b[0;34m\"\"\"unpickle an object from a string\"\"\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 282\u001b[0m \u001b[0mfile\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mStringIO\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstr\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 283\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mload\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfile\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mignore\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwds\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 284\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 285\u001b[0m \u001b[0;31m# def dumpzs(obj, protocol=None):\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;32m~/.local/lib/python3.8/site-packages/dill/_dill.py\u001b[0m in \u001b[0;36mload\u001b[0;34m()\u001b[0m\n\u001b[1;32m 276\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mload\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfile\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mignore\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwds\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 277\u001b[0m \u001b[0;34m\"\"\"unpickle an object from a file\"\"\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 278\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mUnpickler\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfile\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mignore\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mignore\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwds\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mload\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 279\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 280\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mloads\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mignore\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwds\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;32m~/.local/lib/python3.8/site-packages/dill/_dill.py\u001b[0m in \u001b[0;36mload\u001b[0;34m()\u001b[0m\n\u001b[1;32m 479\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 480\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mload\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;31m#NOTE: if settings change, need to update attributes\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 481\u001b[0;31m \u001b[0mobj\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mStockUnpickler\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mload\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 482\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mtype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobj\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__module__\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0mgetattr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0m_main_module\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'__name__'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'__main__'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 483\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_ignore\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;32m~/.local/lib/python3.8/site-packages/dill/_dill.py\u001b[0m in \u001b[0;36mfind_class\u001b[0;34m()\u001b[0m\n\u001b[1;32m 469\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mtype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m#XXX: special case: NoneType missing\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 470\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mmodule\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m'dill.dill'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mmodule\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m'dill._dill'\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 471\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mStockUnpickler\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfind_class\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmodule\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 472\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 473\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__init__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwds\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;31mModuleNotFoundError\u001b[0m: No module named 'myfunctions'"
+ ]
+ }
+ ],
+ "source": [
+ "#%%capture cap --no-stderr\n",
+ "#Manual test\n",
+ "#test_name = 'wconfig_time_parsl_test.txt'\n",
+ "%cd /home/vagner/work/wfgenes/intro_examples/foreach_sample/inputs\n",
+ "%run '/home/vagner/work/wfgenes/intro_examples/foreach_sample/wfGenes_output/foreach_sample/Parsl/foreach_sample_parsl.py'\n",
+ "#%run '/home/vagner/work/wfgenes/intro_examples/foreach_sample/wfGenes_output/foreach_sample/Dask/foreach_sample_dask.py'\n",
+ "#with open(test_name, 'w') as f:\n",
+ "# f.write(cap.stdout)\n",
+ "# f.close()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "subtle-checklist",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "#%%capture cap --no-stderr\n",
+ "#Automated test\n",
+ "#test_name = 'wconfig_time_dask_4.txt'\n",
+ "\n",
+ "%cd /home/vagner/work/wfgenes/intro_examples/foreach_sample/inputs\n",
+ "\n",
+ "length = [1024, 2048, 4096, 8192] #dask and parsl\n",
+ "n = [ 1, 2, 4, 8, 16, 32]\n",
+ "\n",
+ "for i in length:\n",
+ " list_length = open(\"/home/vagner/work/wfgenes/intro_examples/foreach_sample/inputs/list_length.yaml\", \"w\")\n",
+ " list_length.write(str(i))\n",
+ " list_length.close()\n",
+ " #%run '/home/vagner/work/wfgenes/intro_examples/foreach_sample/wfGenes_output/foreach_sample/Dask/foreach_sample_dask.py'\n",
+ " #%run '/home/vagner/work/wfgenes/intro_examples/foreach_sample/wfGenes_output/foreach_sample/Parsl/foreach_sample_parsl.py'\n",
+ " \n",
+ "#for i in range(200, 1001, 200):\n",
+ "# list_length = open(\"/home/vagner/work/wfgenes/intro_examples/foreach_sample/inputs/list_length.yaml\", \"w\")\n",
+ "# list_length.write(str(i))\n",
+ "# list_length.close()\n",
+ "# %run '/home/vagner/work/wfgenes/intro_examples/foreach_sample/wfGenes_output/foreach_sample/Dask/foreach_sample_dask.py'\n",
+ "\n",
+ "#with open(test_name, 'w') as f:\n",
+ "# f.write(cap.stdout)\n",
+ "# f.close()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "id": "willing-mercury",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "#Results for DASK\n",
+ "\n",
+ "wconfig_time_dask_1 =[2079.35, 4215.38, 8664.66, 18503.27]\n",
+ "#wconfig_time_dask_2 =[16.06, 32.15, 64.34, 96.64, 128.74, 161.0, 193.71, 226.27, 258.7, 290.92, 323.53, 356.86, 421.53, ]\n",
+ "wconfig_time_dask_2 = [1057.58, 2180.33, 4629.55, 10352.52]\n",
+ "wconfig_time_dask_4 = [544.14, 1154.29, 2569.87, 6211.34]\n",
+ "wconfig_time_dask_8 = [286.49, 635.39, 1514.49, 3981.29]\n",
+ "wconfig_time_dask_16 = [157.06, 383.96, 983.08, 2923.67]\n",
+ "wconfig_time_dask_32 = [159.48, 369.82, 1017.61, 2997.92]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "id": "traditional-michigan",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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sAB/f3969erF9OnTmTdvXoPHveeee4iIiLAfc+PGjQ7XXbNmTbMfX32OHz9Ohw4daiwLCQmhsPDUXN977z1++eUXVq1aZV+2ePFiSktLmTJlCsnJyU6psYoWDcOqbxuaIjIy0gmVCHckWetBctaHZK0PyVofbTXrnuH+TVq/eo8hgJ+XR5N6DFvTE088wXPPPcfEiRNRSnHttdfywAMP4OHR9CvRkpOTeeqpp3j22Wfty8rLyzly5Ij9986dO+Pt7Q1AYGCgveGUnp6On59fjR7jmJjG9YxWf90EBATU2RhztsDAwFNOYc3PzycoKKjGso8//pinn36aTz/9lC5dugCQm5vLE088wZIlS1xSqxYNw+ZITk6mT58+VpchXECy1oPkrA/JWh+StT7aatZNPbXzSH4pT65M5FBOMXFh/sy+KJ6uwdb0lkZERPDCCy8A5sibV111Ff379+eKK65ocuMwOjqaGTNmcNNNN9W73okTJ/Dz86uxrEuXLpSUlNQ4nbj2KZ/NaazWNmLEiHpPJT18+HCz9jtgwAC2b99u/z0zM5OMjAz69+9vX/bxxx/z8MMPs3jx4hqnke7YsYP09HT7SLGVleaXBsOGDeOll15iwoQJzarJEWkYCiGEEEII4Qa6hvjy5sTTnH6c8vJySkpK7L8rpU45XXfJkiWcddZZREdHExISgqenp33U0IiICBITExt9vFtvvZWHH36YoUOHMnjwYIqLi/nll1/o3bs30dHR9W4bExPD8OHDmTNnDs888wxpaWksWLCgxjpNracu69ata9Z2hmFQWlpqn1KltLSUkpISfH19UUoxdepUbrzxRiZPnky/fv2YM2cOI0eOtF9fuHjxYh566CE++eQTTj/99Br7Puuss9i8ebP997S0NMaNG8fy5cuJjY1t3gOth4xK6kB8fLzVJQgXkaz1IDnrQ7LWh2StD8m6dT322GNERUXZb2efffYp62zdupVx48bRrVs3xo0bx3XXXcell14KwKxZs3j77beJi4vj/vvvb/B448ePZ/bs2cycOZP4+HiGDh3KW2+9dcq8hT4+PnVuP3fuXJKSkujbty+33norV199dY2GbFPraU2HDx8mKirKfg3maaedRlRUlL2H8fzzz2f27NnccMMN9OnTh/T0dN566y379nPmzKGgoIArrriCbt260a1bN0aMGAGY19ZG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T/Dcc88xceJElFJce+21PPDAA3h4NP1KtOTkZJ566imeffZZ+7Ly8nKOHDli/71z5872fQcGBtobTunp6fj5+REeHm5fNyYmplHHrX4KckBAgH2fzrB69Wr+9Kc/sWDBAvr3729fHhgYeMoprPn5+QQFBXHixAn+/Oc/8+KLL+Lj41PnfqdPn063bt04ePAgAQEBvPPOO1x22WX8/PPPBAS0bntBGoYOhISEuPR4Fw2exJaDayk+cZy1u75m7OCrXHp8nbk6a2ENyVkfkrU+JGt9tNWsm3pqZ1FSKptveZjC3QcJOq0HQ+c9Q0D3KOcU14CIiAheeOEFAHbu3MlVV11F//79ueKKK5rcOIyOjmbGjBncdNNN9a7n6el5yrIuXbpQUlJCdna2vXFY+5TP5jRWaxsxYkS9p5IePux4zvHVq1czffp05s6dywUXXFDjvgEDBrB9+3b775mZmWRkZNC/f3/S09PZu3cv06ZNq7HNFVdcwf33389dd93Ftm3bmD17NqGhoQDcfvvtzJ49mz179jB06NBmPFLHZPAZB9LS0lx6vGE9RxEebH6rsWLzJxiG4dLj68zVWQtrSM76kKz1IVnrQ5esA7pHM/K79xiX8hMjv3vPaY3C8vJySkpK7Le6polYsmQJKSkpGIZBSEgInp6eeHmZfUoRERFNmjLh1ltv5V//+hdbtmzBMAyKiopYtWoVqak1B9cpKys7ZduYmBiGDx/OnDlzKC4u5sCBAyxYsKDGOk2tpy7r1q3j8OHDDm+OrFmzhhtvvJF///vfjB079pT7p06dyqJFi/jtt98oKipizpw5jBw5kri4OKKjo9m6dSs//vij/QYwb948brjhBgDOPPNMFixYQEFBAeXl5cybNw8/Pz969OjRosdbF2kYugkPD08uHDwRgENH93AgfYfFFQkhhBBCiPboscceIyoqyn47++yzT1ln69atjBs3jm7dujFu3Diuu+46Lr30UgBmzZrF22+/TVxcXI2pGRwZP348s2fPZubMmcTHxzN06FDeeuutRneEzJ07l6SkJPr27cutt97K1Vdfja+vr/3+ptbTmp5//nkKCgq45ZZb6Natm/1W5fzzz2f27NnccMMN9OnTh/T0dN566y3A7CGNjo6ucQOzoRscHAzAa6+9xvHjxxk2bBi9evXif//7H++//75TBmNS7b1nauXK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XRvXs9hYTzzxBF27dmXixIkMHjyYZ599lsrKymbtKzk5maeeeoq4uDj7bfv27Rw5cnL8jM6dO9v3HxgYaG84paen4+fnR3h4uH3dxvYgR0ZG2n8OCAiw77M1/fnPf+Zvf/sbHTt2rPP+wMDAU05hzc/PJygoCICnn36a6Ohozj//fMaMGcOll5rji1TtLzAwkKlTp9K/f398fX3561//ysGDB9m/f3+rPxbpMXQgNDTU6hLsfLz9uGBgAl9u/IAdyb+Sln2IqPA4q8tqN9wpa+E8krM+JGt9SNb6aKtZN/XUzrycIj7/YDNZGYV0igziiuuGEhpmTU9pREQEL7zwAgA7d+7kqquuon///lxxxRVNnj4kOjqaGTNmcNNNN9W7nqen5ynLunTpQklJCdnZ2fbGYe1TPltjOpMRI0bUeyrp4cOH61z+448/sm3bNvuAMXl5edxxxx1cf/31PP300wwYMIDt27fb18/MzCQjI4P+/fsD5mv7tddes9+/YsUKIiMj7aeKVvUkVlFKNe8BNoI0DB2ofeGo1S4afBVfbvwAgO+2fsoNFzbuQl/RMHfLWjiH5KwPyVofkrU+dMk6NCyAG+459Tq11lZeXk5JSYn9d6XUKVNFLFmyhLPOOovo6GhCQkLw9PS0n7oYERFBYmJio49366238vDDDzN06FAGDx5McXExv/zyC7179yY6OrpGHbXFxMQwfPhw5syZwzPPPENaWhoLFiyosU5T66nLunXrmrVd7bkSx40bx4MPPkhCQgIAU6dO5cYbb7SfKjtnzhxGjhxJXFwcYA7y4+/vT0REBNu2beORRx7hwQcftDd2b7zxRp544gkmT55MXFwczz//PD169KBXr17Nf7AOyKmkDmRmZlpdQg1R4XEMiD0LgB+3L+NEWUkDW4jGcreshXNIzvqQrPUhWetDsm5djz32GFFRUfbb2Weffco6W7duZdy4cXTr1o1x48Zx3XXX2U9znDVrFm+//TZxcXHcf//9DR5v/PjxzJ49m5kzZxIfH8/QoUN56623agy6AmaDtS5z584lKSmJvn37cuutt3L11VfXaMg2tZ7WFB0dXePm6elJWFiYvZf7/PPPZ/bs2dxwww306dOH9PR03nrrLfv227dvZ8yYMcTExHDLLbdw1113MX36dPv9V199NbfddhsTJkygT58+bN68mYULF7b69YUAqnYg7c3KlSuNYcOGNXm7xMREt5tMdf3uFbzyuTmS0h1/eJwLBiZYXFH74I5Zi9YnOetDstaHZK2PtpJ1Tk6OfZRN0XSlpaWNmuT+5ZdfZvXq1SxZIlO51eboNbhp0ybGjh1b73mo0mPogDsOi3xm79GEBprnVn8ng9C0GnfMWrQ+yVkfkrU+JGt9SNZ6cHTK8NatW9m7dy+GYbBlyxbmzp3rtEnedSYNQwdaep6yM3h5ejPm9CsB2Je2jUMZe6wtqJ1wx6xF65Oc9SFZ60Oy1odkrYcTJ07UuTwrK4vJkycTExPDjTfeyLRp05g2bZqLq2v/ZPCZNmbs4IksXf8uhlHJd1sWc+u4h60uSQghhBBCCKcZO3YsW7ZssbqMdk96DB2IjY21uoQ6dQrpytAe5mhVP+38kqLS1p+PRTfumrVoXZKzPiRrfUjW+pCs9eDj42N1CVqThqEDGRkZVpfg0EVDJgFQWlbMmp1fWVxN2+fOWYvWIznrQ7LWh2StD8laD2VlZVaXoDVpGDpQWlpqdQkODYk/l04hXQH4bssnpwz1K5rGnbMWrUdy1odkrQ/JWh+StR7kM621pGHoQHh4uNUlOOTh4cnYwVcBkJy5n71pv1tcUdvmzlmL1iM560Oy1odkrQ/JWg/OmJtPNJ40DNuoMadPwNPDE5CpK4QQQgghhBAtIw1DB7Kzs60uoV6hgeGc1ftCwJz4vqA4z9qC2jB3z1q0DslZH5K1PiRrfUjWrjFixAi++eabVtlXWFgY27Zta9I25eXlrXLs5h5fd9IwdMDX19fqEhp0sW0QmrKKE/y4bZnF1bRdbSFr0XKSsz4ka31I1vqQrFtPQkICb775Zp33rVu3jnHjxjW4j8GDB7N8+fLWLg2lVLO2c1Y9jfXiiy9y+umnExsbywUXXMD3339vv2/nzp1MmjSJXr16ERYWxrFjx2psW1hYyKxZs+jXrx9xcXHcddddFBUV2e+fPXs2Z599NrGxsQwZMoSXX37ZaY9DGoYOREZGWl1Cg/rHnklUWHfAPJ200qi0uKK2qS1kLVpOctaHZK0PyVofkrUevL29rS6hyZYvX85rr73G//73P5KSkrjzzju54YYbyM3NBczHdOWVV/L666/Xuf2jjz7KoUOHWLduHVu3biU9PZ2HHz45T7mvry/vvfceiYmJLFq0iPnz5zN//nynPBZpGDqQnJxsdQkNUkpx0ZA/ApCed5gdSb9aXFHb1BayFi0nOetDstaHZK0Pydo1qve8JSUlMXHiRLp3706PHj0YP348RUVFTJ8+nZSUFG677Ta6devGrFmzGrXvxYsXM2rUKOLi4hg7diwbNmyw35eQkMCTTz7JpEmTiI2NZfTo0ezcudN+f2pqKhMnTiQ2NpYxY8bw0ksvMXjwYIB669m4cSPnnnsusbGxTJ06lfz8/NZ4mmo4dOgQQ4cOpX///iilmDJlCmVlZRw6dAiA3r17M23aNPr161fn9suXL2fmzJmEhobSoUMHZs2axaJFiyguLgbgb3/7G/369cPT05M+ffpw+eWX13juWpM0DNu48wdejreXeXrFii2fWFyNEEIIIYRoroy8FB6aP5Wp/zibh+ZPJSMvxbJannrqKeLj49m/fz979uzhiSeewMvLi/nz5xMTE8PcuXM5fPgwL730UoP7WrFiBbNnz+b111/n4MGDzJw5k6lTp5KTk2Nf56OPPuKRRx7h4MGDDBkyhAcffNB+34wZM+jWrRt79uxh7ty5/Pe//7XfV189S5cu5bPPPmPbtm2kpaXxxhtvOKyxqtHq6ObIxIkTOXr0KL///jsVFRV88MEHREVFOWwI1lZZWVljmo7KykpKSko4ePDgKesahsG6devo379/o/bdVDImrAPx8fFWl9AoQX4hnHvaJfy4fRkb9/1ITkEmYcERVpfVprSVrEXLSM76kKz1IVnro61m/d7KFzh0dG+j1z+YvpPSMrOn6NDRPTzw7jX06NK4RkBc5z7cOPb+ZtVZF29vbzIyMkhOTqZnz54MHz682ft6++23ueeee+y9fAkJCbz++uusWLGCKVOmADB58mSGDh2Kh4cH11xzDZMnTwYgJSWFdevWsWDBAvz9/enVqxfTp09n3rx5DR73nnvuISIiwn7MjRs3Olx3zZo1zXpsERERXHLJJVx44YUopQgICGDBggX4+fk1avtLLrmEV155hYEDBwLYG7YFBQWnrPv3v/+doqIibr755mbV2hBpGDqQkpLSZv4IXTRkEj9uX0alUcEP25Yy6dzbrC6pTWlLWYvmk5z1IVnrQ7LWR1vN+tDRvew6/Fuzty8tK27R9i3xxBNP8NxzzzFx4kSUUlx77bU88MADeHg0/YTD5ORknnrqKZ599ln7svLyco4cOWL/vXPnzpSVleHr60tgYCCFhYUApKen4+fnV2Muy5iYmEYdt/q1qQEBAfZ9tqbnn3+eFStW8Ouvv9K9e3d+/vlnpk+fzpIlSxg0aFCD2z/99NM88sgjnH/++Xh6enL33Xfz448/0rFjxxrrvfLKK3z66acsW7aMwMDAVn8cIA1Dh8rKyqwuodF6dR1IXOe+HDq6h5Vbl3DlOTfh6SHRNlZbylo0n+SsD8laH5K1Ptpq1nGd+zRp/eo9hgC+3v5N6jFsTREREbzwwguAObLmVVddRf/+/bniiiua3DiMjo5mxowZ3HTTTfWuV/2UyipdunShpKSE7Oxse+MwJaXmKbbNaazWNmLEiFP2W93hw4frXL5t2zYmTJhg/+Ji1KhRDBw4kFWrVjWqYRgaGsprr71m/33FihVERkbSu3dv+7JXXnmFd999ly+++ILo6OjGPqQmk9aDA1Xdzm1B1SA0b3/7d3IKMth8YC1n9r7A6rLajLaUtWg+yVkfkrU+JGt9tNWsm3pqZ0ZeCi8vfYDkrP3EdurFrCv/QefQ1m8IlJeXU1JSYv9dKXXKlCBLlizhrLPOIjo6mpCQEDw9PfHyMpsOERERJCYmNvp4t956Kw8//DBDhw5l8ODBFBcX88svv9C7d+8aDZ2q/VcXExPD8OHDmTNnDs888wxpaWksWLCgxjpNracu69ata9Z2Z511Fp999hlTpkwhJiaGDRs2sGnTJmbOnAmYjd3S0lJKS0sBKC0tpaSkBF9fX5RSJCUl4e/vT0REBNu2beORRx7hwQcftDd2X331VebNm8cXX3xBt27dWvQYGyKDzzjQ1r6ZGtV/PP4+ZreyDELTNG0ta9E8krM+JGt9SNb60CXryNAYnp2+kIX3/8Kz0xc6pVEI8NhjjxEVFWW/nX322aess3XrVsaNG0e3bt0YN24c1113HZdeeikAs2bN4u233yYuLo7772+48Tt+/Hhmz57NzJkziY+PZ+jQobz11lun9BDW1WMIMHfuXJKSkujbty+33norV199dY2GbFPraU333nsv559/Ppdeeindu3fnnnvu4ZFHHmH06NGA2dMYFRVlv0bztNNOIyoqyt4DuX37dsaMGUNMTAy33HILd911F9OnT7fv//HHH+fo0aOMGjWKbt260a1bN66++mqnPBblKID2YuXKlcawYcOavN3evXvp06d1u+Sd7Z0Vz/Lt5o9RKF6ZsZTI0Madf627tpi1aDrJWR+StT4ka320laxzcnIICwuzuow2q6SkpFGDtrz88susXr2aJUuWuKCqtsXRa3DTpk2MHTtW1bet9Bg64O/vb3UJTXbRkEkAGBis3PqpxdW0HW0xa9F0krM+JGt9SNb6kKz14Ohawa1bt7J3714Mw2DLli3MnTuXCRMmuLi69k8ahg5UH/morYiN6E3faHMY4FXbPqes/ITFFbUNbTFr0XSSsz4ka31I1vqQrPXg6elZ5/KsrCwmT55MTEwMN954I9OmTWPatGkurq79a/MNQ6XUKKWUoZTq1Jr7rW9UInd20ZA/ApBflMuv+36wuJq2oa1mLZpGctaHZK0PyVofkrUeHF1LOnbsWLZs2UJqaipbt27lr3/9q8NGpGi+Nt8wBP4MOJ6tUjPD+44l0DcYgFeXPcxD86eSkSd/TIUQQgghhBCOtemGoVLqcmANcLy1992zZ8/W3qVL+Hj54ul5cqjfpMx9vLz0AQsrcn9tNWvRNJKzPiRrfUjW+pCs9VB7ygzhWpY2DJVSdyulNiqlSpVSS2vd562Uek0plauUylFK/Usp5VXtfg/gTuBNZ9TW0rlQrFRYfMz+s2FUkpy5z8Jq3F9bzlo0nuSsD8laH5K1PiRrPVTN9SesYXWPYRrwFDC3jvseAUYB/YEBwHnAw9Xunwp8bhhGSR3btlhlZaUzdusSsRG9MdvNJsMw2H9ku4UVube2nLVoPMlZH5K1PiRrfbSVrL29vSkoKHA4H58QzlRaWupwZNfG8Gp4FecxDONTAKXUEKD2pHs3A382DOOIbZ2/Ay8AT9ruHwScoZS6EjgdWAhc0lq1RUZGttauXO7PVz7Py0sfIClzH4ZRiYHBsx/fy+NT3yamUw+ry3M7bTlr0XiSsz4ka31I1vpoK1kHBwdTXFxMbm6u1aW0SWVlZRQVFVldRpvl4eFBhw4dmr29pQ1DR5RSHTEbiluqLd4CxCqlOhiGccwwjAerrb8KswexTtUnebzlllu47bbbiI+PJyUlhbKyMiIiIigrKyMvLw9/f3/Cw8M5dOgQ/v7+9OzZk8TERCorK4mMjKS4uJj8/HyCgoIICQkhLS0NgD59+rB3714AoqKiyM/Pp7CwkJCQEPz9/cnIyMDDw4P4+HgOHDgAQExMDNnZ2RQXFxMaGoq3tzeZmZl4e3sTExNjP20iNjaWjIwMSktL7cM1Z2dn4+vrS2RkJMnJyQA1HtODE16nrKyM77Ys5vMtb1NYcownF97OLec9zpmnn9MmH1NdOVWNUtaSnDIzM4mMjGxXj6k95tTSx1T1nm5Pj6k95tQaj+nIkSOEhYW1q8fUHnNqjcdUXFxMz54929Vjao85tcZjOnHiBAEBAe3qMbXHnFr6mPLz84mNjW1Xj8nVOQUHB9f5mBpDuUNXt1LqcWCIYRhX2n7vBiQDEYZhZNmWRQBHgW6GYTR6mM2VK1caw4YNa3JNe/fupU+fPk3ezh19tv5dPlz9GgBdQrvx+HXzCA2U+YCqtKeshWOSsz4ka31I1vqQrPUgOTvPpk2bGDt2rKpvHauvMXSk0PZv9b7Qqp8LXFFAUFCQKw7jElcMn87lZ5mTgKbnHebZj+/heIlLnsY2oT1lLRyTnPUhWetDstaHZK0HydlabtkwNAwjF0gBhlRbPAQ4bBjGsbq2aW0hISGuOIxLKKW4bvR9jB40AYBDR/fw/KczKS1rXLdye9eeshaOSc76kKz1IVnrQ7LWg+RsLaunq/BSSvlhXuvooZTyU0r52O5+F/ibUqqLUqoL5oikb7uqtqrzedsLpRS3jXuYs/tcCMCelC288tlDlFeUWVyZ9dpb1qJukrM+JGt9SNb6kKz1IDlby+oew0eAYuBvQILt529t980B1gG7bLe1wNMW1NhueHp4cc/lf2dg97MB2HxwDW9++TiVRtsYAloIIYQQQgjhHG4x+IwzNXfwmfasuPQ4Ty26gwNHdgBwydDJ3HTRAyhV7/WoQgghhBBCiDaoLQ8+Y7mq4WDbI3/fQB7646vEhJtzGn67eRGfrH3L4qqs056zFidJzvqQrPUhWetDstaD5GwtaRhqKtg/lIcnv06nkK4ALP55Ll9uXGhxVUIIIYQQQggrSMPQgaioKKtLcLqw4M78bfIbdAgIA2DB9y+yevsXFlflejpkLSRnnUjW+pCs9SFZ60FytpY0DB3Iz8+3ugSX6BoWy1+vfg1/n0AA/v3Vk2zc96PFVbmWLlnrTnLWh2StD8laH5K1HiRna2nRMExISCAhIYGFCxt/qmRhYaETK3IvcZF9eWDSP/H28qXSqOCfnz/EjuSNVpflMjplrTPJWR+StT4ka31I1nqQnK2lRcNw2bJlLFu2jKlTpzZ6G90m2OzXbSh/nvAcnh6elFWc4IVPZ3EwfZfVZbmEblnrSnLWh2StD8laH5K1HiRna2nRMGwOf39/p+w3L6eIBf9ay4t/+4b3Xl1LXk6RU47THMN6nscdf3gChaL4xHGe+fhuUrMTrS7L6ZyVtXAvkrM+JGt9SNb6kKz1IDlbSxqGDmRkZDhlv5/9dzNHjxRgGAaZGQV8/sFmpxynuUb1v5TpFz0AQEFxHk8vuous/CMWV+VczspauBfJWR+StT4ka31I1nqQnK0lDUMHPDyc89RkHa127rQBWRnudy71uGGTuXrUnwDILsjg6UV3kV+Ua3FVzuOsrIV7kZz1IVnrQ7LWh2StB8nZWvLsOxAfH++U/UZEBoE6+XuHMPfsMr9qxK1cesa1AKTlJPHMx3dTVOp+jdjW4KyshXuRnPUhWetDstaHZK0Hydla0jB04MCBA07Z7xXXDSU8Isj+e5eYUKccp6WUUky7cBbnD7gMgMSM3fzj01mcKCuxuLLW56yshXuRnPUhWetDstaHZK0Hydla0jB0sdCwAG6aOYq43p0ASNyTSXlZhcVV1c1DeXD7pbM5o9cFAOw6/Bv/XPYwFZXlFlcmhBBCCCGEaE3SMHQgJibGqfsfeEY0ACXFZezfddSpx2oJTw8v7rviGfp3OwOA3/b/yFtfPUmlUWlxZa3H2VkL9yA560Oy1odkrQ/JWg+Ss7WkYehAdna2U/ffq19nfP28ANi+KdWpx2opHy9f7r/qJXpE9gNg9Y7lvP/9SxiGYXFlrcPZWQv3IDnrQ7LWh2StD8laD5KztaRh6EBxcbFT9+/l7clpg7sCkLQvi4Jj7n3tXoBvEA9d/S+iwroD8NVvH/Lpurctrqp1ODtr4R4kZ31I1vqQrPUhWetBcraWNAwdCA0NdfoxBp5hdpcbBuzckub047VUSEBHHp78OuHBkQB8vObffLNpkcVVtZwrshbWk5z1IVnrQ7LWh2StB8nZWtIwdMDb29vpx+gSHUJ4Z3OE0u2/pbSJUzM7hXTlb5PfINg/FIB3v3uONTu/sraoFnJF1sJ6krM+JGt9SNb6kKz1IDlbS4uGYUJCAgkJCSxcuLDR22RmZjqxIpNSyj4ITW5WEWnJeU4/ZmuICo/jr1e/hr9PIABvfvkYmw+ssbiq5nNF1sJ6krM+JGt9SNb6kKz1IDlbS4uG4bJly1i2bBlTp05t9Dau+sai/5AolIc54/0ONx+EproeXfrxl6textvTh4rKCl767AF2Hd5sdVnNIt9O6UFy1odkrQ/JWh+StR4kZ2tp0TBsDlcNlxsY7EuPPuachrt/P0LZCfec07Au/WPP4L4rnsVDeVJWXsrzi+/jUMYeq8tqMhkaWQ+Ssz4ka31I1vqQrPUgOVtLGoYOJCYmuuxYVYPQnCitYN+ODJcdtzWc2fsC/nTpbACKTxznmY/v5khOssVVNY0rsxbWkZz1IVnrQ7LWh2StB8nZWtIwdAM9+kbgH2B2nW//LcXiapru/IGXc8OF/wfAsaIc/r7oTrIL2lYDVwghhBBCCJ1Jw9CB2NhYlx3L08uDfkOiAEg+mMOx3CKXHbu1/OHMqUw69zYAsvKP8MyiuykozrO2qEZyZdbCOpKzPiRrfUjW+pCs9SA5W0sahg5kZLi2x6tqdFKAHZvcf07Duvxx5O2MGzYFgJTsgzz7yb0Ulx63uKqGuTprYQ3JWR+StT4ka31I1nqQnK0lDUMHSktLXXq8zl1D6BwVApijkxqV7j+nYW1KKW4cez8j+40H4MCRHby49H7Kyk9YXFn9XJ21sIbkrA/JWh+StT4kaz1IztaShqED4eHhLj/mwGFmr+Gx3GIOH8px+fFbg4fy4I4/PM7QHqMA2J70C//64m9UVJZbXJljVmQtXE9y1odkrQ/JWh+StR4kZ2tJw9CNnDa4Kx6e5pyG239rO3Ma1ubl6c3MCc/SN2YIAL/s/Z653zyNYbS9XlAhhBBCCCF0IA1DB7Kzs11+zIBAH3qe1hmAvdszOFHqvr1sDfH19ueBq14hrnNfAFZt+4wPVv3TLRuHVmQtXE9y1odkrQ/JWh+StR4kZ2tJw9ABX19fS45bNQhNeVkFe7alW1JDawn0C+ahq/9Fl9BuAHzx6/t8vmG+tUXVwaqshWtJzvqQrPUhWetDstaD5GwtaRg6EBkZaclx43t3IjDYfFO05dNJq4QGhvPwlDcICzJ7Qj9c/RrfbVlscVU1WZW1cC3JWR+StT4ka31I1nqQnK2lRcMwISGBhIQEFi5c2OhtkpOTnViRYx6eHvS3zWmYmpRLbpb7T/fQkM4donh48usE+XUAYN63z/Dzrm8truokq7IWriU560Oy1odkrQ/JWg+Ss7W0aBguW7aMZcuWMXXqVKtLaZSacxq2/V5DgJhOPXjo6lfx9fbHwOD15Y+yNfFnq8sSQgghhBBCoEnDsDni4+MtO3Z45yC6djN713ZsTqOyDc5pWJdeXQdy/1Uv4eXpTUVlOS8t/Qt7UrdaXZalWQvXkZz1IVnrQ7LWh2StB8nZWtIwdCAlJcXS41fNaVhwrITkA+1nhKZB3c/m3oSnUcqD0rISnv/kPpKO7rO0JquzFq4hOetDstaHZK0PyVoPkrO1pGHoQFlZmaXH73t6V7y8zHi2/9a+3iRn97mQGeMeAeB4aQHPfHwX6bmHLavH6qyFa0jO+pCs9SFZ60Oy1oPkbC1pGDoQERFh6fH9/L3p1d8cmWnfzqOUFLevN8qY0ydw/eiZAOQdz+bpRXeRU5BpSS1WZy1cQ3LWh2StD8laH5K1HiRna0nD0AF3+MaiahCaivJKdv9+xOJqWt/lZ09jwjk3AXD0WCrPfHwXhcXHXF6HO2QtnE9y1odkrQ/JWh+StR4kZ2tJw9CBvLw8q0sgtmc4wR38gPYxp2FdrjnvLi4aPAmAw1kHeG7xTEpOFLu0BnfIWjif5KwPyVofkrU+JGs9SM7WkoahA/7+/laXgIeHYsBQc07D9JRjZGUUWlxR61NKcfPFD3JO34sB2Jf2Oy8tvZ+y8hMuq8EdshbOJznrQ7LWh2StD8laD5KztaRh6EB4eLjVJQAwoB3OaVibh4cnd18+h8HxIwD4/dB6Xl/+KJWVFS45vrtkLZxLctaHZK0PyVofkrUeJGdrScPQAXcZLrdjeCAxcR0B2LkljcqKSosrcg4vT2/+POEf9I46HYD1e75j3opnMQznz+HoLlkL55Kc9SFZ60Oy1odkrQfJ2VrSMGwDqnoNjxeUkrgvy+JqnMfPx58H//hPYiN6AbBy66dM/cdZPDj/WjLy5A+FEEIIIYQQziINQwd69uxpdQl2fQd2wcvbE2i/g9BUCfIL4a9Xv4aXpzcABgZJR/fy5IcznHbdoTtlLZxHctaHZK0PyVofkrUeJGdrScPQgcTERKtLsPPx9aLvIHNOwwO7j1J03HUDs1ihY1DEKdcXZhdkcO9bCSzbsICi0tYdhMedshbOIznrQ7LWh2StD8laD5KztaRh6EBlpXtdyzdwWAwAlRUGu7emWVyN88VG9MZDedZYlns8iw9+/Cd3//sy/rf6dY4dz2mVY7lb1sI5JGd9SNb6kKz1IVnrQXK2ljQMHYiMjLS6hBpi4jrSIcwcwre9n04K8Ocrnyc2ohceHp5079yH60fPJCa8BwBFpYUsXf8Od791Oe+seJajeS17Ptwta+EckrM+JGt9SNb6kKz1IDlby8vqAlwhISEBgGuvvZapU6c2apvi4mI6dOjgzLKaRHkoBgyN5ueV+zl6pICjafl0jgqxuiyniQyN4dnpC2ss+8NZ17Fp/098tuFd9qVto6y8lG83f8x3Wz7l3H6XcMXwG4mN6N3kY7lb1sI5JGd9SNb6kKz1IVnrQXK2lhY9hsuWLWPZsmWNbhQC5OfnO7Gi5hkwLBqU+fP2djqnYX08lAdn9r6AJ697l8euncuQHiMBqDQqWLPzKx549xqe++Q+dqdsbtJ+3TFr0fokZ31I1vqQrPUhWetBcraWFj2GzREUFGR1Cafo0NGf2B7hJB/IZteWNC4Y3xdPLy3a9jUopejXbRj9ug3jUMYePt/wHuv2rMAwKtl8cA2bD66hb/RgJpxzE0N7jEIpVe/+3DFr0fokZ31I1vqQrPUhWetBcraWfq2KRgoJcc/TNAfa5jQsLirjwO6jFldjvbjIvtx7xdO8fOunXDRkEt6ePgDsSd3K84tn8uD8a1iz40sqKssd7sNdsxatS3LWh2StD8laH5K1HiRna0nD0IG0NPcc+bN3/0h8fM2OXh1PJ3WkS8du3HrJw/zr9mVMGD4df59AAJIz9/Pa8keZOXci32xaxImyklO2ddesReuSnPUhWetDstaHZK0Hydla0jBsY7x9PDnt9C4AJO7N4nhBqcUVuZfQoE5ce8E9vH7Hcq49/246BIQBkHksjXe/e46737qcJeve4XhJgcWVCiGEEEII4T6UYRhW1+BUK1euNIYNG2Z1Ga0qLTmXhf/eAMAFl/blrPPiLa7IfZ0oK+HH7V+w7JcFHD12sofV3yeQi4ZM4tIzphIWHGFhhUIIIYQQQjjXpk2bGDt2bL0Db0iPoQN79+61ugSHunYLJayTeark9t9Sae+N+5bw8fbj4qF/5OXbPuWey/9un86i+MRxlv2ygHv/k8A/PvoLR3KSLa5UOJs7v6dF65Ks9SFZ60Oy1oPkbC1pGLZBSikG2AahyT5aSHrKMYsrcn+eHl6M7D+e56Z/yIN/fJV+MWYvcnlFGb8lfc+seZN45bOHSEzfZXGlQgghhBBCuJ5MV+FAVFSU1SXUa8DQKNZ8uxfDMAeh6dot1OqS2gSlFEN7jGRoj5HsSd3K5+vn89uB1RhGJev3rGD9nhWcHncOE4ZPp3/smQ1OdSHaDnd/T4vWI1nrQ7LWh2StB8nZWtJj6IC7T7AZFOJHXO9OAOzeeoTysgqLK2p7+kYP5i+TXuYvl7/GeQMuw0N5AvD7ofXM+ehPPPLfG/l13w9UGpUWVypag7u/p0Xrkaz1IVnrQ7LWg+RsLWkYOlBYWGh1CQ0aeEYMAKUl5ezfKXMaNlewVzh3XfYk/5zxGeOHTcHHyxeAA0d28OKS+7l/3tWs2vY55RVlFlcqWqItvKdF65Cs9SFZ60Oy1oPkbC1pGDrQFibY7HlaBH7+3gBs35RicTVtV1XWER26Mv2iB3jtT8uZOOIWAn2DAUjLOcS/v3qCe/8zgS83LqTkRJGV5YpmagvvadE6JGt9SNb6kKz1IDlbSxqGDvj7+1tdQoO8vD05bXBXAA7tz6bg2KmTt4uG1c46JKAjU867k9f+tJzrR8+kY5A5nUVOQQYLvn+Ru/99OZ+s/Q8FxXkWVCuaqy28p0XrkKz1IVnrQ7LWg+RsLWkYOpCRkWF1CY0y0DY6KQbs2Jxa/8qiTo6y9vcN5PKzp/HqjM+ZMf5RunSMBaCw5BifrH2Lu/99Ge+tfJGs/HRXliuaqa28p0XLSdb6kKz1IVnrQXK2ljQMHfDwaBtPTWRUCJ26BAEyp2FzNZS1t5cPF55+JS/d8gkzJzxHj8h+AJSWlfDVbwu57z9X8OaXj5OaneiKckUztZX3tGg5yVofkrU+JGs9SM7WUu29IbFy5Upj2LBhTd6uoqICT09PJ1TU+jauSWTVl3sAuGbGcGLiOlpcUdvS1KwNw2B70i98tmE+25N+sS9XKM7sPZoJ50ynV9eBzihVtEBbek+LlpGs9SFZ60Oy1oPk7DybNm1i7Nix9c7DJs1yBw4cOGB1CY3Wb0gUHh5mzjs2yemkTdXUrJVSDIobziNT3uTv0xZwdp8LUSgMDH7d9wOPvH8jc/53O1sT10kPrhtpS+9p0TKStT4ka31I1nqQnK0lDcN2IDDIlx59zQFSdv9+hBMnyi2uSB89uw5g1pX/4IVbPmb0oAl4engBsCN5I898fDd/fe861u3+lspKmWdSCCGEEEK4Ly0ahgkJCSQkJLBw4cJGbxMTE+PEilpf1SA0ZScq2LddLtxtitbIOjo8nj9dOptXb/+cy868Dl9vc1StQ0f38M/P/8qstyexcuunlJWfaPGxRPO0tfe0aD7JWh+StT4kaz1IztbSomG4bNkyli1bxtSpUxu9TXZ2thMran3xfSPwD/QBzEFoROO1ZtbhwZFMu3AWr/3pC64eeTvB/h0ASM87zNxv/s69byWwbMMCikplAldXa2vvadF8krU+JGt9SNZ6kJytpUXDsDmKi4utLqFJPD096D/EnNPwcGIOeTkyCXtjOSPrYP9QJo2cwb9uX86NY+8nPDgSgNzjWXzw4z+5+9+X8b/Vr3PseE6rH1vUra29p0XzSdb6kKz1IVnrQXK2ljQMHQgNDbW6hCYbeMbJ7ncZhKbxnJm1n48/l55xLf+c8Rl3/OFxosPjASgqLWTp+ne4+63LeWfFcxzNk7ycrS2+p0XzSNb6kKz1IVnrQXK2ljQMHfD29ra6hCaL6BJMZHQIYDYMjUoZEbMxXJG1l6c3FwxM4B83L+L+iS/ap7MoKy/l282LmDl3Iq998QjJmfucXouu2uJ7WjSPZK0PyVofkrUeJGdrScPQgczMTKtLaJYBw8xBaPLzSjicKKcpNoYrs/ZQHpzZezRzrp/P7Gv+w+D4cwGoNCpYs/MrHnj3Gp775D72pGxxWU26aKvvadF0krU+JGt9SNZ6kJyt5WV1Ae6qrX5j0W9wV1Yt30VlJSya9yuduwZzxXVDCQ0LsLo0t2VF1kop+seeQf/YM0jM2M3nG95j/Z7vMIxKNh9cw+aDa+gbM4QJw6cztMcolKp3PlLRCG31PS2aTrLWh2StD8laD5KztVR7n4B75cqVxrBhw5q8XVlZWZt9cf7rye8oLTHnMlQeEBEZzA33jLS4KvflLlmn5x7mi1/eZ9X2zymvKLMvj43oxRVn38iIfpfY50kUTecuOQvnk6z1IVnrQ7LWg+TsPJs2bWLs2LH19jTIqaQOJCYmWl1Cs50oPTnBvVEJWRkyNUJ93CXrLh27ceu4h/nX7cu4YviN+PsEApCcuZ/Xlj/KzLkT+XbzIk6UlVhcadvkLjkL55Os9SFZ60Oy1oPkbC1pGLZDEV2Ca/zu6y/fvLQlHYMimHrBvbz2p+Vcc/5ddAgIAyDzWBrvrHiOu9+6nCXr3uF4SYHFlQohhBBCiPZCTiV1oKSkBD8/PydU5Hx5OUV89t/NZKafbDj8YfLp9B8SZWFV7svdsz5RVsKq7cv44pf3OXrs5LQW/j6BXDRkEn84cyodgyIsrLBtcPecReuRrPUhWetDstaD5Ow8cippC2RkZFhdQrOFhgVw470jufX+8/Gz9RZ+++l2MlKPWVyZe3L3rH28/bhk6NW8fNun3HP534mN6A1A8YnjLPtlAfe8lcDcb/5Oeu5hiyt1b+6es2g9krU+JGt9SNZ6kJytJQ1DB0pLS60uocVCwwJIuHYwSkF5eSVL/7uZ44Vt/3G1traStaeHFyP7j+e56R/y4KR/clrMUADKK8pYufVT/vz2Vbzy2UMkpu+yuFL31FZyFi0nWetDstaHZK0Hydla0jB0IDw83OoSWkX3Xp244NK+ABQcK2HZh1uoqKi0uCr30tayVkoxtOcoHp/6Nk9MnccZPc8HwDAqWb9nBX9dcD1PL7qLHUm/0t5PFW+KtpazaD7JWh+StT4kaz1IztaSse81cMbIODLS8tm15Qgpibms+nI3YxP6W12WaAV9Y4bwl5ghHM7cz2cb3uPnXd9QaVTw+6H1/H5oPb26DmTCOdM5o9cFeCj5HkgIIYQQQtRNPik6kJ2dbXUJrUYpxSUTBxIZFQLA5nXJbPstxeKq3Ed7yLpbRC/uvnwOr8xYyrhhU/D28gVg/5HtvLjkfu6fdzWrttWcH1E37SFn0TiStT4ka31I1nqQnK0lDUMHfH19nbLfoqRU1l54A19HjeSnUddSlJTa8EatwNvbkwnXD8U/0AeA75bu4MjhPJcc2905K2srdO4QxU0XPcBrt3/BxBG3EOhrTl2SlnOIf3/1BPf9ZwJfblxIyYliiyt1vfaUs6ifZK0PyVofkrUeJGdryXQVDjhruNy1F95Awc795i9KETygFyO/e6/Vj+PI4YM5LHrnV4xKg6AQX66/cwRBIXoPC9yeh0YuLj3Od1sX8+WvH5B7PMu+PMivA+PPuIZxwyYT7B9qXYEu1J5zFjVJ1vqQrPUhWetBcnYema6iBZKTk52y38I9iSd/MQwKdx90ynEc6dYjjDGXnWbWkl/K5wu3UF6u92A0zsraHfj7BpJw9g28evsyZox7hC4dYwEoLDnGJ2vf4u5/X8Z7K18kKz/d4kqdrz3nLGqSrPUhWetDstaD5GwtaRi6WFC/HuBx8mn3i450eQ1Dz4ll4BnRAKQl5/H9sp0ur0G4lreXDxcOnshLt3zCzAnPER9pfjlQWlbCV78t5L7/XMGbXz5OanZiA3sSQgghhBDtkZxK6kBZWRne3t6tXk9RUiqbb3qIgp0HAOh08UjOfP8frX6chpSXVfC/ub+QnmJOen/xhP4MHh7r8jrcgbOydmeGYbAtaQOfrZ/PjuRf7csVijN7j2bCOdPp1XWghRW2Ph1z1pVkrQ/JWh+StR4kZ+eRU0lbICXFOaN2BnSPZuT379N10iUA5Pz0K+UFx51yrPp4eXsy4bqhBASZg9Gs/GIXKYdyXV6HO3BW1u5MKcXpcefw6DX/5qlp73F2nwtRKAwMft33A4+8fyNz/nc7WxPXtZu5EHXMWVeStT4ka31I1nqQnK0lDUMHysqcO6x/1KTxAFSWnCDjyx+deixHgjv4MeG6oXh4KiorDD5fuJmCYyWW1GIlZ2ft7np1HcisK//BC7d8zOhBV+DpYU5vuiN5I898fDc3vjySa/9xFv8372qO5Lbdc/91z1knkrU+JGt9SNZ6kJytpcWppI899hgA1157LVOnTm3Udrm5uXTs2NFpdVWWl7NqyAROZOUSfv5ZnLXon047VkO2/nKYFUt3ANAlpgPX3HY2Xt6eltXjas7Ouq3Jyk/ny40LWbn1U0rLak5roVB079yH6PB4Yjr1IDo8nujweCJDY/DydO9TPyRnfUjW+pCs9SFZ60Fydp7GnErq5apirLRs2bImb+Psbyw8vLzoOvFikuYuIvunjZSkZ+LXJcKpx3Rk8NndOJqWz9ZfDpOecowVn+1g/KRBKFXva6fdkG+nauoU0oUbLpzFxBE3M+NfF2Fw8ssjA4NDR/dw6OieGtt4enjRNaw70eFxxIT3IDq8BzGd4unasTveXj6ufgh1kpz1IVnrQ7LWh2StB8nZWlo0DJsjLy+Pzp07O/UYUVddQtLcRWAYHFmygvg7Gteb6QwXXt6PrIwCUpPy2LEpjcioDgw7t7tl9biSK7Jui4L9Q+neuQ/JmfupNCpQyoMgvxDiOvclNTuRnMKj9nUrKstJyTpAStYBNrDSvlwpDyJDY4ix9SxGd+pBTHgPosLi8PPxd+njkZz1IVnrQ7LWh2StB8nZWtIwdMDf3/kfWkOG9COgZyxFB5JJW/yNpQ1DTy8Prpg6lPdf/5nC/FJ++HI3nboEEdsj3LKaXMUVWbdVf77yeV5e+gDJWfuJ7dSLWVf+g86h5lQnRaUFpGYfIjU7kZSsg6RmHyQlO5HMY2n27Q2jkvTcZNJzk9m4v+a1tJ1CutY4HdXsaYwn0C/YKY9FctaHZK0PyVofkrUeJGdraXGNYXOmqygqKiIgIMAJFdW0/6V32f/8XABG/vA+wf16Ov2Y9TmScoz//WcDFeWV+Ad4c/1d59KhY/t+k7oqa12UnCjmSM4hUrITSc1ONBuMWYmk5x3GMCob3L5jYCdbz2I80bbGYkynHoQEtOyaA8lZH5K1PiRrfUjWepCcnUeuMWyBlJQU+vTp4/TjRE26xN4wTPv0W/r+7Q6nH7M+XWM6cPGE/ny9eDvFRWV89sFmrp0xHG+f9jsYjauy1oWfjz/xXfoR36VfjeVl5SdIz00mxdZQrGo0puUkUVFZbl8v93gWucez2J70S43tg/1DT/YsdjrZw9gxKKJR18NKzvqQrPUhWetDstaD5GwtaRhaLKB7NKFnDSLv120c+fRb+vz1dpSHtbOIDDwjhqNpBWxal8TRtHy+XbKdP0w+XZvBaIRzeHv50C2iF90ietVYXlFZTkZeqr1nMTX7oK3RmMiJ8lL7egXFeexO2czulM01tvf3CTz1lNROPegU0gUPJTPyCCGEEEI0hpxK6kBFRQWenq7pJUue/yk7H3oBgLM/fZ2wc4e65Lj1qaio5JN3NnI4MQeACy7ty1nnxVtclXO4MmvReJVGJVnHjpjXMNoai+a1jIkUnzje4Pa+3n5EhcXZT0eN6tidbp17ERkabZ+rUbRP8p7Wh2StD8laD5Kz88ippC2QmJhIr169Gl6xFXS5Yiy7HnkZo7yCtMVfu0XD0NPTg4Rrh/D+Gz9TkFfC6q/3ENElmLjenawurdW5MmvReB7Kg86h0XQOjWZoz1H25YZhkFuYaW8spmZVNRwPUlB8zL5eaVkJiRm7SczYXWO/Xp7edO0Ya5tSo4d9io0uHWPdZmoN0TLyntaHZK0PyVoPkrO1pGHoQGVlw4NktBafsA5EjB3B0W/WkL7sB/r9fRaefr4uO74jAUE+XHn9MD58az3lZZV88b+tXH/XCELD2tdFwa7MWrScUoqw4M6EBXfm9LhzatyXX5RLStZBUrIPkpadaA6Ak3WQ3ONZ9nXKK8o4nHWAw1kHoNp0jB7K05xao5M56E3VFBtR4XH4erfvAZjaG3lP60Oy1odkrQfJ2VrSMHQgMjLSpceLmjSeo9+soTy/kMzvfqbL5WNcenxHIqNCGDdxIMsX/U5JcRlL/7uJqbefg49v+3npuDpr4TwhAR3pH3sG/WPPqLH8eEkBe5K2kVd6lNSsg6TmHCIl6yBZ+Ufs61QaFRzJTeJIbhK/7ltlX65QRHSIIjo8rlovo9loDPANctVDE00g72l9SNb6kKz1IDlbq/18um9lxcXFdOjQwWXHi7h4JF7BgZQXHCdt8Tdu0zAE6Dckiowj+Wz86RBZ6YV8vXgbCdcOaTeD0bg6a+F6gX7BRHXowbAu59ZYXnKiiLScJPNU1KyD9ik2MvJS7FNrGBgcPZbK0WOpbD64tsb2YUGdie5UfR7GHsR0iifYP9RVD03UQd7T+pCs9SFZ60FytpY0DB3Iz8+nS5cuLjuep78vkZePIfXDL8j87mdO5Obj0zHEZcdvyPmX9CHzSAFJ+7PZuz2DX348yPDR1s652FpcnbWwRl05+/kE0KNLP3rUmlrjRHkpR3KST87DmH2Q1KxEjuQm15haI6fwKDmFR9l2aEON7UMCOtY4HbVqXsbQwE7t5gsVdybvaX1I1vqQrPUgOVtLGoYOBAW5/hSxqEnjSP3wC4yyctKXfU/sDVe6vAZHPDw9uPyawfz3jXUcyynmpxX7iOgaQo++EVaX1mJWZC1cryk5+3j50r1zb7p37l1jeXlFGRl5KfbpNKpGSU3NOURZtak18otyyS/6jV2Hf6uxfaBvMFHh8cSExxPTqYft5x6Eh0TK1BqtSN7T+pCs9SFZ60FytpY0DB0ICXF9b13YuUPxi+pMSdpRjiz+xq0ahgD+AeZgNB+8uZ7ysgqWf7SV6+4cQVinQKtLaxErshau1xo5e3l6268vrK6ysoLM/CMnG4pVU2xkJVJSVmRf73hpAfvSfmdf2u81tvf19ic6LM7es1g1xUZkaDQeHjJsd1PJe1ofkrU+JGs9SM7WkoahA2lpafTp08elx1QeHnSdeDGJr39A7oatFCWlEdA9yqU1NCSiSzCX/nEQyz7cQmlJOUvf38R1d4zA16/tvpSsyFq4njNz9vAwRzSNDI3hjF7n25cbhkFO4VF7gzEl6yCpOea/x0vy7euVlhVzMGMXBzN21divt6cPXcO6265hrDoltQddOnbDy9PbKY+lPZD3tD4ka31I1nqQnK3Vdj/Nt1NRfxxP4usfAHBkybf0nDnd2oLq0HdQF44e6cGGVQfJyTzOVx//zoTrhqI85NopIapTShEeHEl4cCSD40fYlxuGwbGinJPXMGYl2n/OO55tX6+s4gTJmftIztxXY7+eHp5EhnarMUJqTHgPosK64+Pt57LHJ4QQQoj2QxmGYXUNTrVy5Upj2LBhVpfRJGsvvIGCnfsJ7N2dUasXuuVgFZWVBkve30TinkwAzh3bi3PHyoSkQrRUYfGxaqejmo3F1OxEsvLTG9xWoYgIjaoxQmp0eDzRYfH4+7btU76FEEII0XybNm1i7Nix9TYqpMfQgb1791rWlR01aRx7du7n+L4k8n/fQ4fBp1lSR308PBSXTT6dD95YR252ET+v3E/nrsH06t/25p+xMmvhOm0l5yD/DvSNGULfmCE1lheXHict55B57WJ2IqlZ5nWMR/NSMTC/4DMwOJqXytG8VDYd+KnG9uHBkbbexZMNxpjwHgT5t79hwdtK1qLlJGt9SNZ6kJytJQ1DN9R14sXseeoNMAzSFn/jlg1DAD9/b66cNowP3lzHidIKli/6nevuGEGnSBlRSojW5u8bSM+uA+jZdUCN5SfKSjiSm3zyOkZbL2N6bjIVlRX29bILMsguyOD3Q+trbN8hMPzktBrVptjoEBjulmcrCCGEEMI55FRSBwoLCy0dMveXP95Dzprf8IkIY/TmpXh4uW8bfv/ODJb+dzMAoeEBXH/nCPz8287AGFZnLVxDt5yrptZIyTo5D2NqTiJp2YcoqzjR4PaBfiE1Rkg1exl7EB4c6fYNRt2y1plkrQ/JWg+Ss/PIqaQtkJ+fb+kLM2rSOHLW/MaJzByyf9pIxJhzLKulIb36R3Lu2F78vHI/edlFLP9oKxNvOAOPNjIYjdVZC9fQLefqU2sMZ6x9eWVlBUePpVWbUuOgrZcxkdKyYvt6x0vy2ZO6lT2pW2vs1887wNxvp3jbtYzmMTp3iHKbqTV0y1pnkrU+JGs9SM7WkoahA4WFhZYeP/Ky0ez86wtUlpzgyOJv3LphCDBiTE+OpuWzf9dREvdmsXbFPs4b1zbOEbc6a+EakrPJw8OTLh270aVjtxpTa1QaleQUZNQYITUlO5HUrIMcLy2wr1dSVsSB9B0cSN9RY7/eXr5E2afW6GEfMTUyNMblU2tI1vqQrPUhWetBcraWNAwdsHqCTe+QIDpfch7pn68kY/mPlD9XhFdggKU11Ud5KC69+nQ+eHMdOZnH2fDjQSK6BnPa6V2tLq1BVmctXENyrp+H8qBTSFc6hXRlSI9z7csNw+DY8WxSbA3FtKr5GLMTOVaUY1+vrLyUpKN7STq6t8Z+PT086dqxO1G2uRjNBmMPuobF4uPl65THIlnrQ7LWh2StB8nZWtIwdMDf39/qEoj64zjSP19JRXEJR7/+iahJ46wuqV6+fl7mYDRvrKO0pJyvF28nPCKIiK7BVpdWL3fIWjif5Nw8SilCgzoRGtSJgd3PrnFfQXGeeUpq1slpNVKyE8kpyLCvU1FZYWtUHuSXGvv1ILJDNNGdehAdHmefYiM6PA4/n5Z9CSZZ60Oy1odkrQfJ2VrSMHQgIyODDh2sHca90+jheId1oCznGGmffOP2DUOAsE6BXDZlMJ8u+I3ysgqW/ncT1981Av8AH6tLc8gdshbOJzm3vmD/UE6LGcppMUNrLC8qLTSn1rD1LFZdz5iZl3Zyag2jkvS8w6TnHea3/T/W2L5TSJcaI6RG205LDfJr3DfJkrU+JGt9SNZ6kJytJQ1DBzw8PKwuAQ8fb7peMZbk+Z+S9eMvlGbm4BsRZnVZDerRN4LzLunDT9/s5VhuMV/8byuTbjwDD0/rn9O6uEPWwvkkZ9cJ8A2iV9eB9Oo6sMby0rJi0nKSTjYWbQ3H9NzDVBonp9bIyk8nKz+drYk/19g+NDDcNg/jyUFvYsJ7EBLQscZIqZK1PiRrfUjWepCcrSXTVThQUVGBp6f1I+zlbtzGhstvB+C0OfcRd9sUiytqHMMwWPbhVvZuTwfgzFFxjP6De87H6C5ZC+eSnN1XeUUZR3KTSa01F2NaThLlFWUNbh/s38F2DaPZYIzqGEe3zj0JC+rs9lNriJaR97U+JGs9SM7OI9NVtMCBAwfo08f6UTVDzxiIf/coipPSSPvkmzbTMFRKMf6PA8nJKiQrvZCNaw7ROSqE/kOirC7tFO6StXAuydl9eXl6061TT7p16lljeUVlOUfz0mwjpB4kNfuQ2XjMSaS0rMS+XkHxMfakbGFPypYa2/v7BNboWayaYqNTh654KPlWuj2Q97U+JGs9tOWcM/JSeHnpAyRn7ic2ohd/vvJ5IkNjrC6rSaRh6OaUUkRNGs+Bl94hf+tuCvcdIqh3nNVlNYqPjxdXXj+M/76+jpLiMr79dDvhEYFERsu540KIhnl6eNE1LJauYbGc2Xu0fXmlUUl2foZ9HsbqvYxFpSeHOi8+cZz9R7az/8j2Gvv18fIlKizulFNSIzvG4Okh/y0KIU5lGAaGUUmlUWn+jPm7udzAoJJKwwDDqHOdSqMSMKg0am1nVNrWq/lzZa19V1+/0jBs+6q0bYNtn6fWcHK9Omo2KqmsY1n1GhzWXG1/lbWPU20/lUalrR7Hj7X6vnPzcgk5EFzjMVX9bO7L/D/AfE6qrdOYemqtU2cNtZ6POp+D6sep9jwWFOXZL4tIOrqXl5c+wLPTF1ryem0uLU4lfeyxxwC49tprmTp1aqO2KyoqIiDAPaaHOH4gmZ9GXgNAzz9Pp/eDMyyuqGmS9mfxybsbMQwI7uDH9XeNIDDIOcPUN4c7ZS2cR3Ju/wzDILcwi4Npu8gqTDvZy5h9kPyi3Aa3Nxui3W2D3piNxphO8XTt2B1vL/cdQEtn1d/XVR/YWvLBvL4P0NU/QJ76wbPWh+lTPgg7+FDq4IP/Kfuq6wN9Iz70G4ZBJfV8MLdtZ29gGKd+GHf4wbzB56SOx1VXDnU0Dk6p2TCoqKxAqZM519UIqi9vR89jzexrPe6q54P2/VlZOIeHhycL7/+l4RVdRE4ltVm2bFmTt8nOznabD5GBPWPpMLQ/xzbvJO2Tb+j1wG1t6rqZ7r06ccGlfVn15R4KjpWw7MMtXH3zWXi6yWA07pS1cB7Juf1TShEWHMHxgBLO7Ht+jfvyi3JrjJCammX+nFN41L5ORWU5KVkHSMk6UGu/HkSGxhATHk9oUARbDq4hu+AonYIj+cOZ1xEcEFr3h9ImfEteieMP5uYHXOr88F71Yby1v7WvrOebdPuH8To+9De6t6G+D+Oc+sH81OfA1qCprLQ3BuXDuxDuQ6FAKTyUQikPFApl+7nqVH4P5WHep7D960FlRSVeXl62bbCvr5Sy7cP2s31fClAn16l1rKp1PfCop57a+6i2bbVjmnVX20et+3/Zu5LC4nwMDJTyILZTLwsTaB4tGobNUVxcbHUJNURNGsexzTspPnyEvF+30fHs060uqUnOGBlHRlo+u7YcISUxl1Vf7mZsQn+rywLcL2vhHJKzPurKOiSgIyEBHenXreZgZEWlBaRmV59a4yAp2YlkHkuzr2MYlaTnJpOem1xj28z8I7z3/QvOeRBCuEBzP7xXfWB35Yf3oqIiggKDWvzhve51aj0mdfIx1XwOTu7LQ9meO5pRT63H53AdGvs8VqunrsdcbR1Hz0ntehqdZe3Hal/WvA6MvXv3ttlrDK8YfqN5jWHWfmI79WLWlf+wuqQmk4ahA6GhoVaXUEOXCWPZ/dirGBUVpH3yTZtrGCqluGTiQHKOHicjLZ/N65LpHBXCoDOsvyjX3bIWziE566MpWQf4BtM7ahC9owbVWF5yopgjOYds1y7aGoxZiRzJTWrlahtW34f3mh/kWvnDe411Wveb98Z8UG3Mh/fiohKCgoKAah/eq60jH96d8+HdCkePHqVz585WlyGcrC3/Xx0ZGtPmrimsTRqGDnh7e1tdQg2+EWGEX3A2Wd+vI/3z7+j31Ew8fNyrxoZ4e3sy4fqhvP/6OoqPn+C7pTvo1DmIrt1CLa6rbT2PonkkZ320RtZ+Pv7Ed+lHfJd+NZY/+O61HM7aT6VRiYfyoGvHWP5v4otNb0y00w/vrpabm0vHjh2tLkO4gPwN14PkbC33uMjLDWVmZlpdwimi/jgOgLK8AjK/X2dxNc0TEurPFdcOQXkoKioMPvtgM8cLSi2tyR2zFq1PctaHM7OeNfEfxEb0xsPDk9iI3jz4x1eJCo+ja1gsXTp2IzI0hs4doojo0JVOIV0IC+5MWHAEoUGd6BAYRkhAR4L9QwnyCyHAN5gA3yD8fALw9fbHx9sPby8fvDy98fDwtDcYhWPyvtaHZK0Hydla0mPogDt+Y9F53Hl4BvhTUVRM2iffEDn+/IY3ckPdeoQx5rLT+H7ZLgrzS/nsg81MufVsPL2s+Z7CHbMWrU9y1oczs24Ppwq1J/K+1odkrQfJ2VrSY+hATIz1177V5hXoT+QfLgAgc8Vayo4VWFxR8w09J5aBZ0QDkJacx/df7LKsFnfMWrQ+yVkfkrU+JGt9SNZ6kJytJQ1DBxITE60uoU5Vp5NWlp4gY/kqa4tpAaUUF13Rny4x5mT3W385zNYNyQ1s5RzumrVoXZKzPiRrfUjW+pCs9SA5W0sahm1M2Kgz8O0cDkDaJ99YXE3LeHl7MuG6oQQEmRNHr/xiF6lJDU9CLYQQQgghhGhd0jB0IDY21uoS6uTh5UWXiRcBkPPzJopT0i2uqGWCO/gx4bqheHgqKm2D0RQcK3FpDe6atWhdkrM+JGt9SNb6kKz1IDlbq0UNQ6WUZ2sV4m4yMjKsLsGhqEnj7T8fWbLCwkpaR3T3jvbJ7osKT/DZB5spL6tw2fHdOWvReiRnfUjW+pCs9SFZ60FytlajG4ZKqY5KqTuUUouVUoeVUqXACaXUMaXUr0qpV5RSo5xYq0uVllo7hUJ9Qgb1IbB3HABpn3yNYRjWFtQKBp/djcFndwMgPeUYKz7b6bLH5c5Zi9YjOetDstaHZK0PyVoPkrO1GmwYKqXilFLvAmnAo4AC3gZmAbcDc4ANwDnAD0qpPUqpaaqNT74UHh5udQkOKaXsg9AU7kmkYOd+iytqHRde3o/o7qEA7NiUyub1rhmMxp2zFq1HctaHZK0PyVofkrUeJGdrNWYew23A/4CLDMNYW9+KSqlOwCTgISAGeKbFFYo6dZ14CfueeQswB6EJGdDb4opaztPLgyumDuX913+mML+U75ft4ocvdhHRJZgrrhtKaFiA1SUKIYQQQgjRLjXmVNK+hmHc1lCjEMAwjCzDMN4yDGMA8G7Ly7NOdna21SXUKyC2Kx3PGQzAkSXfYlS47po8ZwoM9mXCdUPtvxsGZKYX8PkHm512THfPWrQOyVkfkrU+JGt9SNZ6kJyt1WDD0DCMtObs2DCMNj1cpq+vr9UlNChqknk6aWl6Fjk/O6/h5Gpdu4VS/URkw4CjRwqcNpVFW8hatJzkrA/JWh+StT4kaz1IztZq0qikSql+Sqlzqv3ur5R6Wim1VCl1T+uXZ53IyEirS2hQl4QLUT7egDkITXsS0SWY2lepfvjWBj5fuJm87KJWPVZbyFq0nOSsD8laH5K1PiRrPUjO1mrqdBVvAAnVfv8HcB/gBzynlPpLaxVmteRk1wx80hLeoSF0vuhcANKXr6KiyLXz/znTFdcNNRuHHoqAQB88PM1W4t7tGbzzyk/88OVuSorLWuVYbSFr0XKSsz4ka31I1vqQrPUgOVurMYPPVDcQeBFAKeUNTANmGoYxVyk1E3OU0n+0aoWiXl0njSPjyx+pKCzi6Ldr6HrlRVaX1CpCwwK44Z6R9t+P5RazZsVedm05QmWFwW9rDrHjt1RGXNiTIcNj8fRq0ZScQgghhBBCaK2pn6YDgXzbz+fYfv/U9vsmoHsr1WW5+Ph4q0tolIixI/DqEAxA2uJvLK7GeTp09OeyyYO57s4RxMR1BKCkuIwflu/m3X+uYe/29GbPe9hWshYtIznrQ7LWh2StD8laD5KztZraMEzEbBACTAQ2G4ZRNXxQJ6CgtQqzWkpKitUlNIqnny9dEsYAkPXDek5k51lbkJN1jenAlNvOZsJ1QwkNN6evyMsu4vOFW/ho7i8cSTnW5H22laxFy0jO+pCs9SFZ60Oy1oPkbK2mNgxfAp5SSv0K3Au8Wu2+0cDvrVSX5crKWuf6NVeoGp3UKK8g/fOVFlfjfEopeg+I5Kb7RjHmstPw8zcH4Ek5lMsHb6xj+UdbOZZb3Oj9taWsRfNJzvqQrPUhWetDstaD5GytJjUMDcOYB1yEOeH9OMMw3q92dw7wSuuVZq2IiAirS2i0jsMH4xdtjuLUnk8nrc3Ty4MzRsZx6/3nc+aoOPsANbu2HuGdl39i9Td7KC1p+A9MW8paNJ/krA/JWh+StT4kaz1IztZq8ogdhmGsNgzjRcMwVtZa/rhhGMtbrzRrtaVvLJSHh73XMG/jdooO6dUN7+fvzeg/nMbNfz6PPgO7AFBRXskvPyby9os/sWV9MpUVlQ63b0tZi+aTnPUhWetDstaHZK0HydlaDTYMlVLnNXWnSqkOSqlBzSvJPeTl5VldQpNUNQwB0hZ/a2El1gkNC+CKqUO49vbhdO3WAYDi4yf47vOdzH91LQd2H61zgJq2lrVoHslZH5K1PiRrfUjWepCcrdWYHsOPlFJrlVI3K6U61reiUmqkUupfQBIwolUqtIi/v7/VJTRJUN94Qgb1AczTSZs7Qmd7EN29I1P/dA6XXzOYkI5mjjmZx1myYBMfz/uVo2n5NdZva1mL5pGc9SFZ60Oy1odkrQfJ2VqNmcewJ+ZAM48Bbyml9gLbgSygFAgF4oGhgD/wJXCRYRgbnVGwq4SHh1tdQpN1nTSO/G17KTp4mGObdxE6rL/VJVlGKcVpp3elV7/ObF6fzPofDlBaUk7ywRwWvP4zA4ZGM+ri3gR38GuTWYumk5z1IVnrQ7LWh2StB8nZWg32GBqGUWwYxnNAHHAp8BlmY3AUcBnQD7OH8C9ArGEYE9t6oxDa5nC5Xa+8CDzMSNMWf21xNe7By9uTs86L55b/O5+hI2Lx8FBgwI5Nqcx76SfWfrePQ4nJVpcpXKAtvqdF80jW+pCs9SFZ60FytlZjegwBMMxzE7+z3YQb8usSQfh5Z5D946+kL/2O0x6/Fw/vRkfcrgUE+jA2oT9Dz4ll9dd72b/rKOVlFaz7/gC+/p5UFAcxYFi02XAUQgghhBBCM00elVQXPXv2tLqEZomaNB6AE9l5ZP/4i8XVuJ+wiCCunDaMybeeRWRUCAClxRV88+l23n/tZw7ty7K4QuEsbfU9LZpOstaHZK0PyVoPkrO1pGHoQGJiotUlNEvkH85H+foA8Nu0v7D2ohspSkq1uCr3E9sjnOvvHMGlVw/CP9DsVc1ML+CTdzfyyfyNZGUUWFyhaG1t9T0tmk6y1odkrQ/JWg+Ss7WkYehAZaXjee/cmVdQIJ5+vuYvhkHBroNsvuVha4tyU8pDMWBoNGMmxjDq4t54+3gCcGhvFu+9upZvl2zneEGpxVWK1tJW39Oi6SRrfUjW+pCs9SA5W0suQHMgMjLS6hKarbzg+MlfKioo3H3QumLagOjorvTv34FBZ8bw88r9/P7rYQwDfv81hV1bjzD8gh6cMTLO3nAUbVNbfk+LppGs9SFZ60Oy1oPkbC3pMXSguLjY6hKaLbh/T6g2hopvZxn6tz5VWQcG+3LxlQO48d6RxPfpBEDZiQrWrNjHOy//xI7NqRiV+s4P2da15fe0aBrJWh+StT4kaz1IztZqVsNQKdVRKXWeUmpq1aT3Sik/pVS7aWjm5+c3vJKbGjrvaYL69rD/XpqVS/72vRZW5N5qZ90pMphJ08/kjzedSacuQQAUHCvhq4+38d831pF8MNuKMkULteX3tGgayVofkrU+JGs9SM7WalJDTinlqZR6HkgBfgTex5zcHmAx8FjrlmedoKAgp+z3SH4pdyzZzfh5m5mxeBdH8lv/GraA7tGMWvVfhn/2JsrTE+NEGVtmPEp54fGGN9aQo6zjenfihrtHMu6qgQQGm9dtZqTls+jtX1ny/iZyMgtdWaZoIWe9p4X7kaz1IVnrQ7LWg+Rsrab28D0N3AbcDfSgxgmLfAYktFJdlgsJCXHKfp/47iAHsoupNCApt4QnVzpv9KWOwwfT64FbASg6eJgdf3keczpKUV19WXt4KAadGcMts85jxIU98fI23zIHdh1l/j/XsvLznRQdP+GqUkULOOs9LdyPZK0PyVofkrUeJGdrNbVheAPwkGEY7wKHa913ALOx2C6kpaU5Zb+HckvsPxvAoRznnkvd455phI8+G4AjS1aQsnCZU4/XFjUmax9fL0Ze1JtbZp3PwDOiQUFlpcHm9cnMe3E1v6xOpLyswgXViuZy1ntauB/JWh+StT4kaz1IztZqasMwFLMBWBcfQIZtbEB8mH+NbtauIb5OPZ7y8OD0f822D0Cz628vUbDLUYSiIcEd/Bg/aRA33HUusT3N57S0pJzVX+/hnVfWsPv3I9IrK4QQQggh2pymNgy3AxMc3HcpsKll5biPPn36OGW/s8fGE9vRz/77oC7OP5faNyKM0994HDw8qCw5wZYZj1B+XEZ9qtKcrDtHhXD1zWcy8YZhhEUEApCfW8wX/9vKwn+vJzUpt7XLFC3krPe0cD+StT4ka31I1nqQnK3V1IbhU8AdSqm3gYswz4YcopSaA9yOeQ1iu7B3r3NG8ewa4svcSf043dYg/PVwPpUu6GEKH3UGvWbdBMDxfUns/OuLTj9mW9HcrJVS9DytM9PvHclFV/THP9AHgCOHj/HhWxv4fOFm8rKLWrNU0QLOek8L9yNZ60Oy1odkrQfJ2VpNahgahvEZMBWzUfgV5uAzbwPTgWmGYXzT2gW2hoSEBBISEli4cKHVpdiN7tkRgKyiMranu2Z0y55/nk7YqDMASFv0JakffemS47Z3Hp4eDDknllv/73yGX9ADTy/zbbV3ewbvvPITP3y5m5LiMourFEIIIYQQwjHV3OuhlFJ9gE5ADrDHcNMLq1auXGkMGzasydsVFhY6dcjc/JJypnywjQoD/nBaODNHxTrtWNWVZGTx89gbOZGVi6e/HyO+nkdQ3/iGN2zHWjvr/Lxifvp2L7u2HLEv8/P3ZsSFPRkyPNbecBSu5ez3tHAfkrU+JGt9SNZ6kJydZ9OmTYwdO1bVt06zP6EahrHXMIyfDcPY7a6NwpZw9gSbIX5enBljDsn7U2IeZRWVTj1eFb/ITpz++mOgFBXFJWy5/VEqikoa3rAda+2sQ0L9uWzyYK67cwQxcWbPcElxGT8s3827/1zDvh0ZMkCNBWTSXH1I1vqQrPUhWetBcrZWkxuGSqkopdTtSqknlVLP17o954wirVBY6PzTO8fYTictKK1gY0qB049XpdMFZ9PjvhsAKNx9kF2PvuyyY7sjZ2XdNaYDU247mwnXDSU0PACAvOwiPvtgMx/N/YUjKcecclxRN1e8p4V7kKz1IVnrQ7LWg+RsLa+mrKyUugZ4D/Pawkyg9szeBvBg65RmLVdMsDmiewd8vTwoLa9k1cFcRnTv4PRjVul1/y3krt9C7vqtpHywjLCRZxB11SUuO747cWbWSil6D4ikR98ItmxIZt33BygpLiPlUC4fvLGOfoO7MuqSPnTo6O+0GoRJJs3Vh2StD8laH5K1HiRnazW1x/DvwGKgk2EY0YZhxNe6tZsJ7v39nf9B3d/bk3NtjcGfk45R7MIJ0j28vBj8xhN4h5nH3/GX5zl+INllx3cnrsja08uDM0bGcev953PmqDg8PM1TvHdtPcI7L//E6m/2UFpS7vQ6dOaKnIV7kKz1IVnrQ7LWg+RsraY2DMOBeYZhtPsTgDMyMlxynNE9zNNJS8srWZfk2lML/aI6c/q/ZgNQcbyILTMepaKk1KU1uANXZQ3mIDSj/3AaN//5PPoM7AJARXklv/yYyNsvrmbL+mQqXXS9qW5cmbOwlmStD8laH5K1HiRnazW1YfgpMNoJdbgdDw/XjBx5Zkwwwb6eAPxwwPWTokeMHUH8XdcBULBjH7sfe9XlNVjNVVlXFxoWwBVTh3Dt7cPp2s3stS0+foLvPt/J/FfXcmD3URmgppVZkbOwhmStD8laH5K1HiRnazVpugqlVAAwDzgOfA/k1V7HMAy3mhyvudNVVFRU4Onp6YSKTvXKmmS+3J2Np4KPrhtEiF+TLv1sscqycn6ZeCd5G7cDMOQ/T9HligtdWoOVXJl1XQzDYM+2dFZ/s5f83GL78tgeYYz+w2l0jpLz7VuD1TkL15Gs9SFZ60Oy1oPk7DzOmK6iD3A2cDPwX+CLWrdlzajTLR04cMBlx7rQNjpphQGrE/NcdtwqHt5eDP73k3iHBgOw/f+eoehQisvrsIors66LUorTTu/KzTNHccGlffG1fTGQfDCHBa//zFefbKPgmN5TirQGq3MWriNZ60Oy1odkrQfJ2VpNbRi+C+QDlwF9gfhat3Yz+IwrDewSRKcAbwBWWXA6KYB/TBcG/fMRAMoLjrNlxmwqS2sPOiucycvbk7POi+eW/zufoSNi8fBQYMCOTanMe+kn1n63jxOlMkCNEEIIIYRofc3pMXzIMIyvDMPYZxhGUu2bM4q0QkxMjMuO5aEUo229htvSCzlaaE2DrPO48+g+YwoA+b/vZs9Tb1hSh6u5MuvGCAj0YWxCf6bfN5Je/ToDUF5WwbrvDzDvpZ/YtjGFykq5/rCp3C1n4TyStT4ka31I1nqQnK3V1IbhL0CsMwpxN9nZ2S49XtVk9wbw40Freg0B+j5yJx2G9AMgae4iMr760bJaXMXVWTdWWEQQV04bxuRbzyLSdp3h8YJSvvl0O++/9jOH9mVZXGHb4q45i9YnWetDstaHZK0HydlaTW0YzgLuVkpdr5SKUkoF1L45o0grFBcXN7xSK+oV7k9MB1/AmtFJq3j4eDP4rTl4hQQBsG3m0xQlH7GsHldwddZNFdsjnOvvHMGlVw8iuIMfAJnpBXzy7kY+mb+RrIwCiytsG9w9Z9F6JGt9SNb6kKz1IDlbq6kNw9+AQcB7wGGgoI5buxAaGurS4yml7L2G+7OLSc6zbrCRgO5RDHzprwCUHytg659mU3mizLJ6nM3VWTeH8lAMGBrNzX8+j1EX98bbxxyx69DeLN57dS3fLtnO8QL95qBsiraQs2gdkrU+JGt9SNZ6kJyt1dSG4c3ATbZ/Hd3aBW9vb5cfs6phCNYNQlOly+VjiL1pEgDHNu1g7zNvWVqPM1mRdXN5+3hyzpie3Pp/5zP47G4oBYYBv/+awtsvrmb9DwcoO1FhdZluqS3lLFpGstaHZK0PyVoPkrO1mtQwNAxjvmEY79V3c1ahrpaZmenyY8Z08KN3J38Avj+Qa/kE530fu5uQQX0AOPTmQo6uWGtpPc5iRdYtFRjsy8VXDuDGe0cS36cTAGUnKlizYh/vvPwTOzanYsgANTW0xZxF80jW+pCs9SFZ60FytlZTewy1YdU3FmN6hgGQll/Kvixrz7P29PNl8H+ewjPIvHR0271zKE7NsLQmZ2jL3051igxm0vQz+eNNZ9Kpi3ldaMGxEr76eBv/fWMdyQflIu4qbTln0TSStT4ka31I1nqQnK3VYMNQKfWLUqq/7edfbb87vDm/ZNewarjc0T1CUbafvz+QY0kN1QXGxzDwhQcBKMvNZ+sdj1FZ3r7m0msPQyPH9e7EDXePZNxVAwkMNgcxykjLZ9Hbv7Lk/U3kZBZaXKH12kPOonEka31I1vqQrPUgOVurMT2GO4Diaj83dGsXEhMTLTlup0AfTu9q9vysOphLhRucDtj1youJmTYBgLxffmf/829bXFHrsirr1ubhoRh0Zgy3zDqPERf2xMvbHKDmwK6jzP/nWlZ+vpOi49bMkekO2kvOomGStT4ka31I1nqQnK3l1dAKhmHcVO3n6U6tRgDmIDRbjxSSU1TOtvRChkQFW10S/Z6cSd7G7RTuOsDBVxfQccQQIsacY3VZog4+vl6MvKg3p5/VjbXf7WP7plQqKw02r09m55Y0ho/uybARsfaGoxBCCCGEEE26xlAp9Y5SKt7Bfd2VUu+0TlnWi42NtezYo+JC8fIwTyi1ck7D6jz9fRnynzl4BpiD42y7+0lK0tvHBcJWZu1MwR38GD9pEDfcdS6xPcMBKC0pZ/XXe3jnlTXs/v2I5QMcuVJ7zVmcSrLWh2StD8laD5KztZo6+Mx0IMLBfZ2AG1tUjRvJyLBukJUQPy/OigkB4KfEPE5UVFpWS3VBvePo/9z9AJzIzuP3O5/AqGj7UyNYmbUrdI4K4eqbz2TiDcMIiwgEID+3mC/+t5WF/15PapJ7fPngbO09Z3GSZK0PyVofkrUeJGdrNWdUUkddDAOB9tGFBJSWWjtZ+GjbnIaFJyr4LaXA0lqqi776UqKvuQyAnJ83sf/Fdy2uqOWsztoVlFL0PK0z0+8dyUUT+uMf6APAkcPH+PCtDXy+cDN52UUWV+lcOuQsTJK1PiRrfUjWepCcrdWYUUnvU0odVEodxGwULq36vdotDXgHWO7sgl0lPDzc0uOfExuCn5cZjzuMTlpdv7/PIqiPeUbxgZffJXvNRosrahmrs3YlD08PhgyP5db/O5/hF/TA0/Ya27s9g3de+YkfvtxNSXGZxVU6h045606y1odkrQ/JWg+Ss7Ua02O4E1gMfAoo4Afb79Vv72KeZnqnU6rUkL+3J+d27wDA+qRjFJe5zymbXoH+DP7PHDz8fcEw+P3OJyjNdK/Gq6ifr58X543rwy2zzqPfkK4AVFYY/LbmEG+/sJrf1h6iotw9TmEWQgghhBDO12DD0DCMFYZh/MUwjPuBJ4AHbL9Xv/3NMIz3DcNoN/2/2dnWTww+xnY6aWmFwc9Jxyyupqbg03rQ/+//B0Dp0Wx+v6vtXm/oDllbJSTUn8smD+a6O0cQE2e+3kqKy/hh+W7e/eca9u3IaDcD1Oics24ka31I1vqQrPUgOVurwekqqjMM4wlnFeJufH19rS6BM2JCCPH1JL+0gh8O5DK2V5jVJdUQfe1l5Pz8G2mffEP26l85+OoCev75poY3dDPukLXVusZ0YMptZ7N/51F+/HoPedlF5GUX8dkHm/H28aS8rIKILsFccd1QQsMCrC63WSRnfUjW+pCs9SFZ60FytlZzBp/RQmRkpNUl4OWhOD/e7MXZmJJPnptd+6WUov+z9xPQ0xxaeN8/5pGzbrPFVTWdO2TtDpRS9B4QyU33jeLCy0/Dz98bgLITFRgGHD1SwILXfubXnxJJS86lvI2daio560Oy1odkrQ/JWg+Ss7WkYehAcnKy1SUAMKaX2TCsNMypK9yNV1AgQ/4zBw9fH6isZOsdj3Eiq21Nf+AuWbsLTy8Php0bx633n3/KfSdKyvnxqz0s/PcG/vXkd3z41np+/GoP+3ZmcLzQvc8kl5z1IVnrQ7LWh2StB8nZWk06lVS43oDIQDoFepN1vIwfDuaS0N/RNJLWCRnQm9PmzGTnA89Tmp7F7/fM4YwPXkB5yPcObZmfvzeduwaTmV5A1WWGHh6Kykrzl4rySlKT8khNyoOfzPtDwwOI7h5KVGxHomJD6dQ5COWhrHkAQgghhBCi0VR7GVjCkZUrVxrDhg1r8nZlZWV4e3s7oaKmm7shlY+3HQXgv9cMoHOQj8UVncowDLbePpv0z1cC0OeRO+lx9/UWV9U47pS1u8nLKeLzDzaTlVFIp8ggrrhuKB4eirSkPFKTc0lLyuNoegFGZd1/R3z9vOgaG0p0bEeiu4fSJaYDPr7WfB8lOetDstaHZK0PyVoPkrPzbNq0ibFjx9b7bb00DB1ITEwkPj7eCRU13YHsIu5YsgeAW8+KYvJg9zz/urzgOD9fPJ2iQ6koT0/OXvoGHc8aZHVZDXKnrNuiE6XlpKccIzUpj7TkXNKS8ygtKa9zXeWh6NwlmKjYUKK6hxLdvSPBHfxQyvm9ipKzPiRrfUjW+pCs9SA5O09jGoYNfnWvlMrEnNi+UQzD6NzYdd1ZWZn7DPTSI8yfbh18OXyslB8O5rptw9ArOJDB/3mK9ZfPwDhRxtY/zebcFfPxCetgdWn1cqes2yIfXy9ie4YT29OclNaoNMjOLCQtOY/UJLNXMTe7yH5fRlo+GWn5bF5vXkcQFOJLlK1HMap7Rzp3DcbTs/VPQ5ac9SFZ60Oy1odkrQfJ2VqNOafrdZrQMGwvIiLc51o+pRRjeoWx4LcjHMguJim3mO4d/a0uq04dTu/LabPvZtcjL1OSmsG2mX9n2HvPuaRHqLncKev2QHkoOkUG0ykymNPP6gZAUeEJ0pJzSU3OIy0pl/TUfCpso5oW5peyd3s6e7enA+Dl7UGXmA5Ex3YkqnsoUbGh+Ae0/PRpyVkfkrU+JGt9SNZ6kJyt1WDD0DCMx11Qh9txt28sxvToyILfjgDww4Fcpp/png1DgNhb/kjOus1kLF9F5rdrSPrPR8Tdfo3VZTnkblm3RwFBPvTqH0mv/mZvd3l5JUfT8s0eRVvPYlHhCfO+skpSEnNJSTw5um1YRCDR3c0BbaK7h9KxU2CTv2yQnPUhWetDstaHZK0HydlaMiqpA3l5eXTu7D5nxUZ38KVvRAB7MotYdTCXG8/o6ra9cEopBr70V/J/30Px4SPseeoNQs86ndBh/a0urU7ulrUOvLw8zOsMY0MBc/CiY7nF5qA2tsZiZkaB/VyFnMzj5GQeZ9vGFAD8A7zNQW1sjcX/b+++49uq7/2Pv76S994zsZ29IQkJkDgJ0FBKaVOgdBH6o4NC6S3tbemgk1LooIX2thdaCqWU9tJ0Ucal4xZIKdmQRSB7eTt2HC95yLYsfX9/HMVxHCuxHUtH0vfzfDz8SCQdHX2kt46tj845329BcTqxcc6zPqbkbA7J2hyStTkkazNIzvYadWOolFoC3AJMBxKG3q61vngc6rJdYmL47ZG7YkomB5q6qXf1caCpm5l5yXaXFFBseioXPnovr73ndrSnn12f/CZLX36S2PRUu0s7QzhmbRqlFBlZSWRkJTF7QREAvT39HKs51Sgeq2mjr9cLgLvbw9H9TRzd3wRY02jkFaUNTJVRXJpBStrpv54kZ3NI1uaQrM0hWZtBcrbXqBpDpdTbgb8Da4FlwD+ARKAcqAVeHe8C7ZKdnW13CWe4bHImj26pQ2MdThrOjSFAxsI5TP/Gf3Dgnodw1xxj953fZ/7j3w27PZ3hmLWwproom5ZD2bQcAHw+zYnGjlOjn1a10d7qHritobadhtp2tm+sAiAtI2Fgj2JRaSaZmVm2PRcRWrJNm0OyNodkbQbJ2V6j3WN4L/BT4C7AA3xTa71DKVUK/BP49/iWZ5/a2lqmT59udxmnyU6KZX5RCjvrO3n1aCu3XVKMM8wnDy/75Ido2bSTphc30Pi3f1P9xF8oveV9dpd1mnDMWpzJ4VDkFaaRV5jGgktLAOh09VjnKPoHtWmsd+HzWsefutp6cLUdY98u69xcZ4yiuDRr4DzFopIM4hNkrqRoJNu0OSRrc0jWZpCc7TXaxnA28A3Ah3X2TzKA1rpKKXUP8G3gt+NZoDjd5VOy2FnfSYu7nzePdbKgOPwOzRxMKcW8n36DTVd+hJ66RvZ/+yEyFs8j/YIZdpcmokBKWgLT5xYwfW4BAB6Pl8badqtR9DeL7m7rRHZvv6b6SDPVR5qtOyvIyUsZNKhNJulZiWG3R1sIIYQQIhRGNcG9UqoR+LDW+iWlVC3wDa31k/7brgH+rLUOq+MbxzrBvdfrxek8+2AWdujo7edDv9uNx6d5x/QsvrCi1O6SRqR161u8ft1/oL1eksqKWfrSk8SkhsdbJVyzFudPa01rczf1Va3UVrZyrKad5uOdAZdPSo6jqPTUoDb5xenExIz/nIoiuGSbNodkbQ7J2gySc/CMywT3Q+wCZgAvYZ1n+FWlVB3Qh3WY6VtjKTQcVVRUMHXqVLvLOENqfAyLJ6axqaqdDZXtfKbcR1wQJgMfb5mL5zHtK7dx8LuP0F1Zx+4v3s+Fv7g3LPbOhGvW4vwppcjKSSYrJ5mE9B6uvmEePW7PwN7Euqo2jtW20++xBrXp7urj8N7jHN57HACnU5FfnH6qWZyYQXJqvJ1PSYyAbNPmkKzNIVmbQXK212gbw58Ak/z//xrwAta5hWANPnP9+JRlP5/PZ3cJAV0xJZNNVe109XnZWuOivCzD7pJGZNKnb6Jl005OvLKFhufXklV+ESU3X2d3WWGdtRg/J3NOSIxl8oxcJs+wJtH1en00NXQMNIr11W10tPf4b9NWE1ndxrb1lQBkZCVZjaJ/UJucvBRUmJ/raxrZps0hWZtDsjaD5GyvUTWGWuu/D/p/nVLqImAq1sik+7XWfeNcn23y8/PtLiGgS0rSSYx14Pb4eOVIa8Q0hsrh4IKHvsnGKz9Cb8MJ9n/zJ2QumkvqbHu/GQrnrMX4CZSz0+mgoDidguJ0Fi61rnO1ua1BbfxTZRw/1oH2WYfdt7V009bSzd6d9YA1emrhxIyB8xQLJ6YTFy9TxNpJtmlzSNbmkKzNIDnba7TTVdwNPK61rgfQ1gmKh/y3FSqlbtVa3zv+ZYae2+0mPT3d7jKGlRDjoLw0nZcPt7Kl2tpzmHyOyb3DRVxOJhc+8m1ev+Ez+Hr7eOO2b7Dkn08Qk5xkW03hnLUYP6PJOS0jkbSMRGZeUAhAX18/DTXtp42A2tvTD1jzLVYeOkHloRMAKAW5hWlWo+jfq5iWkRAWh02bQrZpc0jW5pCszSA522u0X2t/C/g/oH6Y24r8t0dFY+hyuSgoKLC7jIAun5LJy4db6fNqNle1c+W0yJmjLWvJAqZ96RYO/eCXdB2uZu9dDzDvobtt++Ac7lmL8XE+OcfFxVAyJZuSKdb8StqnaW7qor66dWBexdYT3dZtGo7Xuzhe7+KNLdUApKTFD+xRLCrJIK8oDWcEnBscqWSbNodkbQ7J2gySs71G2xgqrGkqhjMBaD2/csJHSkqK3SWc1cLiNNITYmjv6edfR1oiqjEEmPzZm2nZtJPm9duof/qfZJVfxIQb321LLeGetRgf45mzcihy8lPIyU/hgsUTAeju7KO+5tSgNg117Xj7rXMlOl29HNzdyMHdjQDExFqHrw4eATUxKW7c6jOdbNPmkKzNIVmbQXK21zkbQ6XUR4CP+C9q4BGllGvIYgnAPODF8S3PPmlpaXaXcFYxDsWKSRm8sO8EO+o6aHN7yEiMnMm6ldPJBT+/h41vu5m+phb2fu1HpC+YTerMySGvJdyzFuMj2DknpcQxdVYeU2flAeDt99FY7xq0V7GNro5eAPo9PmorrSk0oAKArJzk0xrFrJxkGdRmjGSbNodkbQ7J2gySs71GssewG/DPCI0C2oGWIcv0Af8Afj5+pdmrvr6e6dOn213GWb1tSiYv7DuBT8O6ijbeMzvX7pJGJT43iwt/fg9bP/Cf+Ny97Lrtm1z6j8eJSU4MaR2RkLU4f6HO2RnjoKjEGpRm0TJrTsX21tMHtWlq6Bg4BqPlRBctJ7rYvb0OsEZPtQ4/zaCoJJOCCenERsi5xHaTbdockrU5JGszSM72OmdjqLX+M/BnAKXUr4H7tNZHg12YOLdZ+cnkpcRyvNPDK0daI64xBMhevogpn/soR/7r13QerGDfN/6Lef/1NbvLEmLcKaXIyEoiIyuJ2fOLAGvgmmM1bQPN4rGaNvp6rTkVe9wejh5o4uiBJgAcDkVeUdpp5yqmpifY9nyEEEIIEV2UNbDoGO6oVDaQBbRorZvPtbxd1q5dqxcuXGh3GUHzq9fr+OOb1mTc//PBOeSnRt55Strr5fX3fZbWzTsBuODhuyl639U2VyVE6Pl8mubGzoE9inXVrbS3uAMun5qRQHFJ5sC8irkFqThkUBshhBBCDLFjxw5Wrlx51nNURt0YKqU+CNwDDN7PexC42793MayMtTE8ePBgROzKPtrs5vZn9wNwy+IiPnhhZM7/0tPQxKaVH6GvuQ1nUiJL/vkrUqaVheSxIyVrcX4iNedOV89p02Q01rvweYf/vR0b56RwQjpFpZkUl2ZQODGDhAg693i8RGrWYvQka3NI1maQnINnJI3haOcxvBH4Hdb5hN8HGoF84IPAH5RSTq31H8ZYrxiDSVkJlGYkUNXWwytHWiK2MUwoyGXew3ez/cY78Xa7eeO2b7Lk74/jTIy3uzQhbJWSlsD0uQVMn2sN393v8dJQN2hQm6pW3N0eADx9XqqPtlB91H8auILs3BTrPEV/s5iRlSRzKgohhBDiDKPaY6iU2g1s0FrfPsxtvwCWaa3njmN9522seww7OzsjZsjcNTsbeHL7MQAeu2EmZZmhHbxlPB347iNUPPQ/AEy8+Trm/PDLQX/MSMpajF205qy1pq25+9Thp1VtNB/vDLh8YnIcxSWnGsX8ojRiYqNrUJtozVqcSbI2h2RtBsk5eMZ9jyEwFfh8gNv+Anx0lOsLWy6XK2LemFdMyRxoDF850srHFkVuYzjtrltpfW0Xba+/Sc1vn6PmqedJnT2VBb/6HkmlxUF5zEjKWoxdtOaslCIzJ5nMnGTmXjQBsAauqa8ePKhNO/0ea1Abd1cfh/cd5/A+69xkp1ORX5x+2qA2yamRvac+WrMWZ5KszSFZm0FyttdoG8NGYBHw0jC3LfLfHhU6OwN/4x5uCtPimZmbxP6mbl450spHLyqM2EPFHDExXPjIt3n14hvA6wOfpmPvEXbe8jXKX/5NUB4zkrIWY2dSzgmJsUyekcvkGdZIxT6vj+MNHdRXtQ0cgtrR3gOA16sHmshtGyoBSM9KHGgSi0syyc5PwRFBcyqalLXpJGtzSNZmkJztNZIJ7lcAO7TWncCvgXuUUk7gaaxGMA94P/ANrPMOo0KkTbB5xZRM9jd109DRx/6mbmblJdtd0pglFucPzO0GgM9Hx55DdFfVk1RaNO6PF2lZi7ExOWeH00FBcToFxeksXFoKgKvNmlOxvsoa/fT4sQ60z9rw2lvctLe42buzHoC4+BiKStIpKjk1qE1c/Gi/Vwwdk7M2jWRtDsnaDJKzvUbyl/0VYAnwOnAvEAt8Bfj2oGXcwIP+26NCYmJkHY552eRMHn2tDp+Gfx1ujejGECB19hQ69h4Bn8+6QsOGy29i2hc/QeltH8QRO34fSiMtazE2kvPp0jISSctIZOYFhQD09fXTUNs+cJ7iseo2etzWoDZ9vf1UHmqm8pA1M5FSkFuQStHJqTJKM0jLSAybIxUka3NI1uaQrM0gOdtrJJ+uB/7Sa619wNeVUg8Cc4FC4BiwW2vdGpwS7dHY2Eh6errdZYxYVlIs84tS2VHXwbqKVm6/tBhnBB36NdSCX32Pnbd8jc59R4lJS8bT6sLn7uXAfT+j/pkXmfvgXaQvmD0ujxVpWYuxkZzPLi4uhpLJ2ZRMzgZA+zQtJ7oGBrWpr2qj5USXdZuG48c6OH6sgzdeqwYgOTV+4DzF4tIM8grTcMbYM6eiZG0OydockrUZJGd7jWm3i78JXD/OtYQVhyPyJom+YkomO+o6aHX380Z9BxdNiNzd8UmlxaedU9iyaSd7vvwDug5X07HnEJuvuZXSW97HtK/cRkzK+e0djcSsxehJzqOjHIrsvBSy81K4YPFEALq7+jjmH9CmvrqNhtp2+vutvfpdHb0c2tPIoT3WqeYxMQ4KJpwa1KawJIOk5LiQ1C5Zm0OyNodkbQbJ2V7nnK5CKeXDOkT06EhWqLX+7TjUNW7GOl2F1+vF6YysIdy7+rx84Hdv4fFqrpqWxRcvK7W7pHHl6+3jyH//lqP//Vu0px+AhKI8Zn3vTvKvXjHm9UZi1mL0JOfx5+33cfyYi7qqU81iV0dvwOUzc5JODWpTmklWTjIqCEc2SNbmkKzNIVmbQXIOnpFMVzHSxnCktNY6rNIca2N48OBBpk+fHoSKguvel4+yobKdpFgHf7ppHnE2HcoVTJ0HK9nz5R/QumXXwHX511zGrO/eSUJh7qjXF6lZi9GRnINPa42rzU1dVdvACKhNDR0E+jOTkBhLYYl1jmJRSQYFE9KJizv/84cla3NI1uaQrM0gOQfPeM5jeAWw7fxLEsF2+ZRMNlS20+3x8XqNi2WTMuwuadylTC/j4md+Ru3v/8qBe39Gf3sHjX9/lRPrtjL9a5+i5CPXoeTbJiFCTilFemYS6ZlJzJ5vjSDc29NPQ601oE19dSv11e309Vp7/HvcHioONFFxoMm6v0ORV5hK8cCgNpmkpifY9nyEEEIIk4x0j+GlWuvXQ1PS+BrrHsPu7m6SkpKCUFFw9fb7eP9Tb9LTb+U6JTuRu1dOojAtsiesDqT3eDP77v4pDc+9PHBd+sI5zH3wLlJnTx3ROiI1azE6knN48Pk0zcc7Bw49ratqpb3FHXD51PQE/x5Fq1nMK0jF4Tz7kRCStTkka3NI1maQnINnPPcYGqe5uTki35jxMQ5iHQ568AJQ0eLm3rUVPHL9TJsrC474vGzm/+Jemt7/TvZ+5UHcNcdo37GHTVd9jLJPrWbqnR/HmXj2pjhSsxajIzmHB4dDkVuQSm5BKvMvKQGsgWvqBw1q01jXjtdrfbnV0d7D/jcb2P9mAwAxsU4KJ6ZTXJJBkf98xYTE2NMeQ7I2h2RtDsnaDJKzvSK2MVRK5QPPAh7ACdyutd49Xut3uwN/gx3uujzegf/7NFSe5dv4aJG7cgnl/36Kww/+iqrH/oju91Lx0P/Q8L9rmfPDL5Nz2cUB7xvJWYuRk5zDV3JqPNPm5DNtTj4A/R4vjfUu/7mKrdRVt+Hu6hu4reZoCzVHWwbun52XMnCeYnFpJt3d3bY8DxF6sl2bQ7I2g+Rsr3M2hlrrcB295ASwTGvtU0pdDnwF+PB4rTwjI2O8VhVykzITOTKoGcxOij3L0tEjJjmRmd+6g6IbrmL3F+7HtWs/7qp6tn3wcxS97x3MvOezxOVknnG/SM5ajJzkHDliYp3++RAzgUlorWlr6R5oFOur2zhxvBP8Z0I0H++k+Xgnb26tBSA+MYa9ZV0Dh6AWFKcREyvnHUcj2a7NIVmbQXK2V8TuMdRaewddzAB2BVh0TGJjI7eZuvvKSXzrpaNUtvYA0N7bT72rl6IoPc9wqLS501ny919S9cTTHLr/l3i7uql/+p80rd3MjLvvoPhD70KpU4dYR3LWYuQk58illCIzO5nM7GTmLiwGrIFrjtW0DTSLx2rb8fRZfxZ63f0c2XecI/uOA+BwKvKL0igqzaTYv1cxOdWM34fRTrZrc0jWZojknNtauvnf3+2kqbGT3PwU3nPTAjKyIuuw2HMOPhPUB1fqDuCjwDzgH1rr6wbdFgv8F3AT1vfCvwM+r7XuH7TMbOBxYCJww3AD5Jg2XcVgW2tcfP2fRwCYmZvEj1dNJyYIc4aFM3ddI/u+9iOO/3PDwHVZ5QuZ88MvkzzFOr8pGrIW5yY5Rzef10dTQwd11W0c2F2Nq9VLR1tPwOXTMxMH5lQsKs0gJz8Vh2G/H6OBbNfmkKytKYHQ4NMara3L2jfo/1qjfYP+77/e57Pud/L/py0/3HoCLDN+6zn5XE79/+Ttzc3NZGZmnv48Bv5/+rJWDf7XxKeHXUYPvX6Ymk5bT6DX8Yz1n3ldX2//adMz5RWmcvNnyu17wwwRCYPP1APfAa4EJgy57RvAMmC2//I/gK8B955cQGu9F1iqlLoQeAy4ZLwKi+RvLE5aPDGN6+fk8uyeJvY3dfO7nQ185KJCu8sKqcTifBY8+QMa//4q+772Y3obT9CycQcb33YzUz73ESZ9+sNRkbU4N8k5ujmcDvKL08kvTiezwMekSZPoaO8ZGNCmvrqN4/Uu64MN0N7qpr3Vzd436gGIi3dSODFjoFksnJhBfILdfyLFuch2PTYnPwRrrfEFaiqGaTCGXn/qA/6gD9RDPzCP4AP7sB/MhyzT1NRJV3PVsB/qGbKeszYHgRoaG5/biNbjX4cZ2uwuYFycaOy0u4RRs3WP4UARSt0DzB+yx7AGaw/h0/7L7wce1FqX+i/Ha617/f8vBZ7UWl8xdN1j3WPo8Xii4g9OX7+Pzzx/gIrWHhwKHnjXNOYVpNhdli08rk4Ofe8XVP/mWU5+pZMyfRIzvn8nueUX2VydCLZo2abFuQXK2tPnpaG2nfrqVv+8im30uD3DrkMpyClItQa08U+VkZ6ZeNph6MIy9MPrsN/gj/AD9KlmxboOPWTPxJAP9R5PP06n87TrB69nfGo6fT1jbQ6GPreR7l0J9NzOZz1h8NFPiDMp69QBh/9flMLhsP5v/fj/7xj0f4X/8uDrFMoBDv//UdaI2GcsM/S+AZY5ed9zrWffrnrcXdbfFKUgtyDy9hiGZWOolMoEWoBpWuvD/uumAQeBDK11u1JqCXA/4AMUcKfWesfQda9du1ZfeeWVA5dvueUWbr31ViZNmkRtbS0ej4fc3Fw8Hg9tbW0kJiaSnZ3N3r17SUtLY8qUKVRUVODz+cjPz8ftduNyuUhJSSEtLY36euvb5unTp3Pw4EEAioqKcLlcdHZ2kpaWRmJiIo2NjTgcDiZNmsSRI9bhnRMmTKC5uRm3201GRgaxsbE0NTURGxvLhAkTqKioAKCkpITGxkZ6e3vJzs4GrF3t8fHx5OfnU11dDRDwOTX3x/KdLe14fJrMeMVjN8ymqb46op/TyZxqa63BJkaT05vP/J2mB57EU1E78L7IvuHtTP7KbTS7uyLyOUVjTuP9nHbt2kVaWlpUPadozGk8nlN1dTX5+fnnfE7t7e34+mPpbPVRcaiRlsYeOl3DN4oAicmxpKQ76Wjz0Ov2Ep/opHR6Knn52XR2dtHX10dCQiIO5aCz0/pdkpqaRmtrK1pr0lLT6Ozsor+/n4SERLTWuN1uHA4niYmJdLg60VqTkpJKV2cXXq+X+PgEvD4vfb19OBxO4uLi6OrqBg1JSUl0dXWjtSY2Ng6v10u/px+Hw4nD4aS3rxc0xMcnWCP9aYiJiaG/34fP50UpB6Do7+8HDU5nDB6PB63B4XDg8/rwaY1C+Zsbn7XHQil8Xp+188L+jxBCDEsp/B/kHZx8ozoH5kDVKIfC6XT6twVr73N/fz9KQUxsjL+B9uF0OnE6nfR7PSgUCYkJ9Pb2oBTEx8fj9Xnx+bzExMQQE+Okr68P5VAkJyfT3d2FUta22ufpw+f1Eh8fj8PpoLe3B6fTSUpKMh0dHSiHIjU1Fbe7G5/PR2JiAkopenp7iIlxkpKSgsvVjlKKrKxMXB0ufD4fKSnJaO3D7e4hLi6WlNQU2traUAry8nJpbm5Ga016Rjr9nj7cPT0kJiaQlJREa1srCpgwodj6va4gJycbt7sbd08PKcnJxCfE09raitPpoLi4iLq6OpSC/IJ82tvb6evrJS0tjdjYGFpbW4mNjaGwqJDa2lqUguIJxTSfOEFfXx9Z2VkopWhtbSE+Pp6CgnxqamtQwKTJk6irq6O5uZkpU6ZE5N8nT69i6yuNNDd2kpoZx3tvXkRHV3PY/M3t7OyM2MZwIlAN5GqtT/ivywWOAxO11rUBVnUGk88xHOy5PU38fLP1sl0xJZOvXF5q9DffPk8/FY+s4ciPn8DXYw2DH5+Xzcz7PkfBe95m9GsTraJtmxaBnU/W3V19/kFtWqmvaqOhtp3+ft84Vygiybn2JDDcXoUR75Hw7yFxqFN7S/x7Q1DKv57h9pJYe0SG7kk5bT3+Zca2HvzPy7/3JsAemYB7XgK9JkMfe7j7DbOMw6E4evQoU6ZOGdmeH/kbHrHkb3XwRMMew6la6yP+66YCh/DvMRzpusfaGPb09JCQkDDq+4UrrTXffPEor9e4APjyZaVcOS3L5qrs11VRy+4v/YDWDdsHrstduYTZ93+RxIlmnY8Z7aJtmxaBjWfW3n4fx4+5qK+2msWDuxvHvK5zHvp0liYi4CFR572ewB/Gz7h+0P9PNhoMamRGup4zmpdzPFagZsThgL4+D/EJ8QOHnp2+zMhen3M1dCI8yO9wM0jOwRMJg88MS2vdqpSqBeYDR/xXzwdqRtMUno/GxkZKS0tD8VAhoZTiC8tL+OQz+2nr6efhTTXMyU+m0JApLAJJnjSB/Ae/wMRt+9l393/jaWmjae1mNqy4ial33UrpJ96PIyYsNxMxStG2TYvAxjNrZ4yDwonWYDQXlZfx24c20tTQgdZWo5edl8IHbrn49L0ng5uXgXNlZC9GMFRVVVE4Ic/uMkQIyO9wM0jO9rJ18nqlVIxSKgGrQXUopRKUUnH+m38NfF0pVaCUKsAakfTxUNXW29sbqocKmcykWL54mTVFQ7fHxw/+XYXXZ/8eY7v19fVR9L6rWb5+DcUfvAYAr7uHA/c8xJZrbqV9136bKxTjIRq3aTG8YGb9npsWkFtgTW2RW5DKdf9vIUkpcSQmxZGQGEt8QgxxcTHExjqJiXHgcDpkz1MQyXZtDsnaDJKzvWxtDLGmpHADXwdW+f//ov+2+4DNwD7/z0bge6Eq7OTJpNHm4onpXDs7B4C9x7v43c4Gmyuy38ms47IzmPfTb7D46f8mafJEAFxvHmDzOz/Bvm/9lP6ubjvLFOcpWrdpcaZgZp2RlcTNnynnzu+8g5s/Ux5xkxdHG9muzSFZm0FytpetjaHW+h6ttRryc7n/No/W+tNa60z/z2f0oMntxdh94uJiSjOt47fXvNHAngicZyWYspctovxfv2XK5z+Kio0Bn4+qR//IhhU3cfzFjXaXJ4QQQgghxLize49h2Gpubra7hKCJj3Hw1cvLiHUqfBruf6WKrj6v3WXZZrisnQnxTLvrNpa+9CQZi+cB0FPXyI6bv8Qbt36DnsYToS5TnKdo3qbF6SRrc0jW5pCszSA520sawwDi46N7UJbJ2Yl8YnERAI2dfTy8qcbmiuxztqxTZ07mkucfYfYPv0xMWgoADS/8iw3LV1P9m2fRPhnGPlJE+zYtTpGszSFZm0OyNoPkbC9pDAPIz8+3u4Sgu3ZOLosmpAKw9nAr/zrcYnNF9jhX1srhoOTm61i2fg0F71kJQL+rk713PcBr136Kjv1HQ1GmOE8mbNPCIlmbQ7I2h2RtBsnZXtIYBlBdXW13CUHnUIovriglPcGajuG/N9bQ0GHeaFAjzTohP4f5j93Hwv95gIRi6xdX29a32PT2j3Lw/kfx9pj32kUSE7ZpYZGszSFZm0OyNoPkbC8jGsNVq1axatUq1qxZY3cpYScrKZYvrJApLEYj7+3lLFv3O0o/+UFwONCefo7+5DdsvOL/0bxhm93lCSGEEEIIMWpK6+huAtauXasXLlw46vt5PB5iY2ODUFF4emhjDS/sswZUufmiQj68oMDmikLnfLJu37WfPV/6Aa43DwxcV/SBa5j5rTuIy84YpwrFeDBtmzaZZG0OydockrUZJOfg2bFjBytXrjzrpLpG7DEci9raWrtLCKlbLymmJMOawuKpHcfY29hlc0Whcz5Zp184k0v//ktmfvuzOBOt16/+T39n/fIbqfvzP4j2L14iiWnbtMkka3NI1uaQrM0gOdtLGsMAPB6P3SWEVEKMg69eUUqswz+Fxb8rjZnC4nyzdsTEUPbJD7Fs3e/IvXKptc6Wdt76zH1s+8B/0lUhv+TCgWnbtMkka3NI1uaQrM0gOdtLGsMAcnNz7S4h5KZkJ/Ex/xQWDR19/GyzGQ3NeGWdOLGQhf/zABc+eh/xedkANK/fxsYrPsyR//4tPk//uDyOGBsTt2lTSdbmkKzNIVmbQXK2lzSGAZj6jcV75+aysNiawuLlQy28cqTV5oqCbzyzVkpReO1Klq1fw8SbrwPA19PHoe/9gk1v/yit294at8cSo2PqNm0iydockrU5JGszSM72ksYwgLa2NrtLsIVDKb60opS0eCdgTWHR2NFnc1XBFYysY9NTmfPDL3PJ84+QMn0SAJ37j/LaqtvZc9cDeFyd4/6Y4uxM3aZNJFmbQ7I2h2RtBsnZXtIYBpCYmGh3CbbJTo7lTv8UFl19Xn7wamVUT2ERzKwzL7mQpS8/ybS7bsURHwdaU/ObZ9mwfDUNf31FBqcJIZO3adNI1uaQrM0hWZtBcraXNIYBZGdn212CrZaWZvCumdZrsLuhiz/uarS5ouAJdtaOuFimfP5jlP/rt2SVW1On9Dae4I1PfJ0dH7kLd130vrbhxPRt2iSStTkka3NI1maQnO0ljWEAMlwufPLSCUxIjwfgtzuOsf94dE5hEaqsk6eUsPjph5j7k68Tm5kGQNOLG9iwfDWVv/wj2mvGKLB2kW3aHJK1OSRrc0jWZpCc7SWNoQgoIcbB164oI2bQFBbdhkxhESxKKSZ86F0sX/97it53NQDebjf7v/lTNl9zK663DthcoRBCCCGEMJE0hgFMmTLF7hLCwtScJD62qBCAelcfj2yJvm9y7Mg6LieTCx6+m0V/+ilJZcUAuHbtZ/PVn2D/tx+mv8sd8pqinWzT5pCszSFZm0OyNoPkbC8jGsNVq1axatUq1qxZM+L7VFRUBLGiyHLDvDwWFKUA8M+DLaw7Gl1TWNiZdc6KxZS/8hSTP3szKsaJ9nqpfGQNGy67iaa1m22rKxrJNm0OydockrU5JGszSM72MqIxfOGFF3jhhRdYvXr1iO/j8/mCWFFkcSjFly4rJdU/hcVPNtRwvDN6prCwO2tnYjzTv3Y7S196kvSL5gDQU9vA9pu+wBu3301vU4ut9UULu3MWoSNZm0OyNodkbQbJ2V5GNIZjkZ+fb3cJYSUnOY7PL7emsOjs8/LDf1dFzRQW4ZJ16qwpXPrCo8z+/heISU0GoOG5l1m/7EZqfve/aPlleV7CJWcRfJK1OSRrc0jWZpCc7SWNYQBut5zjNdSysgzeOcMaRvjNhk7+/FZ0TLMQTlkrh4OSj93AsnVryH/X5QD0t3ew5wv38/p7P03nwUpb64tk4ZSzCC7J2hyStTkkazNIzvaSxjAAl8tldwlh6fZLiwemsPjNtmMcaIr8KSzCMeuEwlwW/Op7LPzND0goygOgdcsuNq68mUM/fBxvT6/NFUaecMxZBIdkbQ7J2hyStRkkZ3tJYxhASkqK3SWEpcRYJ1+5ogynAq+G+1+pwu2J7CkswjnrvHcsZ9m631F66wdAKbSnnyM/foJNV36Elk077S4vooRzzmJ8SdbmkKzNIVmbQXK2lzSGAaSlpdldQtianpPERxcVAVDn6uWRzXU2V3R+wj3rmJRkZt33OZb8/ZekzpkGQNfhal5/76d56/Pfo69Vvl0biXDPWYwfydockrU5JGszSM72ksYwgPr6ertLCGvvvyCPCwutb3X+72Az6yva7C3oPERK1ukLZrPkn79ixt134ExMAKDu939lw7IPUf/Mi2gdHYMBBUuk5CzOn2RtDsnaHJK1GSRne0ljKMbEoRRfvnzwFBbVNHVFzxQW4coRE8Ok/1hN+b+fIueKSwHoa27jzf+4h203fp7uqsjeeyuEEEIIIeyhon0vw9q1a/XChQvtLiNqra9o47611mSkFxam8INrpuJQyuaqzKC1puH5l9n3jZ/Qd6IVAEdiPFPv/Dhlt9+IIzbG5gqFEEIIIUQ42LFjBytXrjzrh3TZYxjAwYMH7S4hIiyflME7pmcBsOtYJ0+/edzmikYvUrNWSlF43dtZtv73TLhpFQA+dy8Hv/sIm9/xcdp27LW5wvASqTmL0ZOszSFZm0OyNoPkbC9pDMV5+48lEyhKs6aweHL7MQ6e6La5IrPEZaYx90df5eLnfk7ytFIAOvYeZsu7bmXv139Mf0fkTykihBBCCCGCSxrDAIqKiuwuIWIkxjr56hWlOBX0+zT3v1IZUVNYREvWWZfOp/zl3zD1i7eg4mJBa6p/9TTrV6ym8R+v2l2e7aIlZ3FukrU5JGtzSNZmkJztJY1hADLB5ujMyE3m5osKAaht7+XR1yJnEJRoytoRH8fUL95C+drfkLlkAQC9x5rY+bGvsuNjX6GnPvIO9R0v0ZSzODvJ2hyStTkkazNIzvYyojFctWoVq1atYs2aNSO+T2dnZxArik4fuCCfCwqsKSz+vr+ZDZVt9hY0QtGYdcq0Mi5+5mHm/vhrxGakAnD8H+tYv2I1Vb96Gu2NnD264yUacxbDk6zNIVmbQ7I2g+RsLyMawxdeeIEXXniB1atXj/g+MsHm6Dkd1hQWKXHWFBb/tb6a5i6PzVWdW7RmrZRiwup3s2z97yl871UAeDu72ff1H7Nl1e107D1sc4WhFa05izNJ1uaQrM0hWZtBcraXEY3hWCQmJtpdQkTKS4njP5dNBKCj18sPX63EF+ZTokR71vG5WVz483u46Pc/JrHEOna/fcceNl31MQ585+d4u3tsrjA0oj1ncYpkbQ7J2hyStRkkZ3tJYxhAY2Oj3SVErMsmZ3LVNGsKi531nTzzVnif12ZK1rlXXMqyfz/FpE/fhHI60f1eKh5+ig2Xf5gT/37N7vKCzpSchWRtEsnaHJK1GSRne0ljGIDDIS/N+bCmsIgD4IltxzgcxlNYmJS1MymBGd/8NEtefIL0BbMBcFfXs+1Dn2fXp++ht6nF5gqDx6ScTSdZm0OyNodkbQbJ2V7y6gcwadIku0uIaElxTu66vAyHfwqL779SSU+/z+6yhmVi1mlzpnHpXx9l1nc+jzM5CYBjf3mRDStWU7vmr+gwP/x3LEzM2VSStTkka3NI1maQnO0ljWEAR44csbuEiDcrL5n/t9CawqKmvZfHtoTnFBamZq2cTko/8X6Wr19D3jtXAOBpdbH7zu+x9YbP0Hm4yuYKx5epOZtIsjaHZG0OydoMkrO9pDEUQfWhC/OZm58MwF/3n2BzVbvNFYmhEoryWPjr+1nwxPeJL8gBoGXTDja+7WYO/+gJfL19NlcohBBCCCGCTRrDACZMmGB3CVHB6VDcdXkZyf4pLH68vprm7vCawkKytuRfcxnL1/+eko+/D5RC93k4/MDjvDTtKv6vaBkbr/wI3VXhudd3JCRnc0jW5pCszSFZm0Fytpc0hgE0NzfbXULUyE+N47Pl1hQW7T39PPhqVVhNYSFZnxKTmszs793JpX97jJRZUwDQfX3g89Gx+xCbr76FY8+9TN+JVpsrHT3J2RyStTkka3NI1maQnO0ljWEAbrfb7hKiyhVTMrlyaiYA2+s6eHZ3k80VnSJZnylj4RyWvvhrUOq06z2tLnbdfjf/mvsuNl75EfZ/+2GaXtkSEXMhSs7mkKzNIVmbQ7I2g+Rsrxi7CwhXGRkZdpcQdT69dCK7G7to6Ojjia31zC9KYUp2kt1lSdYBOGJjSJ0zlY59R8DrH1FWKfDv7e3YfYiO3YeofGQNKi6WzEXzyF6xiOwVF5N+4QyU02lj9WeSnM0hWZtDsjaHZG0GydlesscwgNjYWLtLiDrJcU6+4p/CwuPT3P9KFb1hMIWFZB3Ygl99j9RZU1AxTlLnTmPZujUs/svDTP7cR0hfOAf88w3pPg8tm3Zw6P7H2HLNJ1g7653s/PhXqf71X+g6Uh0W019IzuaQrM0hWZtDsjaD5Gwv2WMYQFNTE5mZmXaXEXVm5yfz4QUF/HZHA1VtPfzy9TruWDrR1pok68CSSospf/k3p12XMq2U7PKF8JVP4mnvoGXTDprXbaN5/Va6DlcD0O/qpPHvr9L491cBSCjOJ3v5IrJXLCZ7+SLic7NC/lwkZ3NI1uaQrM0hWZtBcraXNIYByDcWwXPj/AK213Wwp7GL/917gkUT0ri0JN22eiTrsYtNTyX/nZeR/87LAHDXNdK83moSm9dto6+pBYCeukbq/vA36v7wNwBSZk0he8UicpYvJnPJfGKSg39IseRsDsnaHJK1OSRrM0jO9lLhcIhXMK1du1YvXLhw1PfzeDzy5gyiho5ebn9mP90eH+kJMTz63plkJdnzekvWwaG1pnP/UatRXLeVlk078XafeVK5inGSsWgu2csXk71iMenzZ+GIHf/vrCRnc0jW5pCszSFZm0FyDp4dO3awcuVKdbZljDjHcNWqVaxatYo1a9aM+D4VFRVBrEgUpMbzmcFTWKyzbwoLyTo4lFKkzppC2W0f5KKnHmTl/v/jkucfYcoXPk7G4nkDg9Pofi+tW3Zx+IHHeW3VJ1k762q23/xlKh//E50HK8ft/ETJ2RyStTkka3NI1maQnO1lxKGkL7zwgt0liGGsnJrF1hoX/zrSyrbaDp7f08T1c/PsLksEiSMulsxLLiTzkguZ9qVP0N/RRcvmnTSvsw477Txo/THwdnbT9OIGml7cAEB8QY5/b+IispcvIqEg186nIYQQQggRleRQ0gB6enpISEgIQkVisK4+L7c/s5/Gzj5inYqHr53BpKzEkNYgWYeHnoYm/2Gn1jmKvQ0nhl0uZfok/7QYi8lasoCY1OSRrV9yNoZkbQ7J2hyStRkk5+AZyaGk0hgGUFVVRWlpaRAqEkPtaejkC387hE9DWWYCD107g/iY0B3lLFmHH601XYeqrL2J67fSvHEH3s7uM5ZTTifpC2cP7FHMWDgHR9zw5yZIzuaQrM0hWZtDsjaD5Bw8I2kMjTiUdCx6e3vtLsEYcwpSWD2/gKd2NlDZ2sPjr9fz6aUTQvb4knX4UUqRMr2MlOlllH7i/fj6+2l/Y5+1N3HdVtq270Z7+tFeL21b36Jt61sc+fETOJMSyVoy35oWY8ViUmZORinrd6DkbA7J2hyStTkkazNIzvaSxjCA7Oxsu0swyk0LCthe52Lf8W6e39vE4ompXDwxNFNYSNbhzxETQ+aieWQumsfUOz9Gf1c3rVt2+fcobqNj72EAvN1umtZupmntZgDicrOs+ROXLyJl3lQ7n4IIIdmmzSFZm0OyNoPkbC9pDEVYcDoUX7m8jE89a01h8eCr1Tz63plk2jSFhQhvMclJ5K5cQu7KJQD0NrXQvGHbwB7FnrpGAPqaWjj2zIsce+ZFAA5PKSFnuf/8xPKFxKan2vYchBBCCCHCiTSGATQ3N8u3FiFWmBbPHUsn8sNXq2jr6edH66u576pThwIGi2Qd+eJzsyi6/iqKrr8KrTXdR2sG9iY2b9hOv6sTgO4j1VQfqab6yWfA4SB9/iz/aKeLyVw0F0d8nM3PRIwH2abNIVmbQ7I2g+RsL2kMA4iPj7e7BCOtnJrJ6zXt/PtoG6/XuLj6V28wOTuRu1dOojAtOJlI1tFFKUXylBKSp5RQ8rEb0F4v7bsOcOSFl/C+eYjWrW+h+zzg89G+Yw/tO/Zw9Ce/wZEYT9al8wcGskmdPRXlMGKq16gj27Q5JGtzSNZmkJztJaOSBiDD5dqns7efD/zuLfp91mUFTM5K5JH3zgzK40nWZjiZs7e7h9bXdw1Mi+F66+Cwy8dmZZC9/CJrIJvli0kqKQxxxWKsZJs2h2RtDsnaDJJz8MiopOehurqa6dOn212GkVLiY/AN+r5CA0da3DR3echOHv9zDiVrM5zM2ZmUQM7ll5Bz+SUA9J1opXnjDmtajFe34q45BoCnpY2G59fS8PxaAJLKiv1N4iKyyi8iLis0gyOJ0ZNt2hyStTkkazNIzvaSxlCEpUlZiVS0uE9rEG97Zh+fXjKBK6ZkBv28Q2GOuJxMCq9dSeG1KwHorqqzzk9ct43mDdvwtLqs6yvr6K6so+a3z4FSpM2bYZ2fuGIxmRdfgDNBDn8RQgghROSSQ0kD8Hg8xMbKiJh2Oebq5d61FVS2uEmMddLZ5x24bVlZOp8pn0hm4vjkI1mbYSw5a58P1+5D/oFsttL62i58PX1nLOdIiCPz4gutqTFWLCZt7jSU0zlepYtRkm3aHJK1OSRrM0jOwTOSQ0mlMQygoqKCSZMmBaEiMRYbKtv46YYa2nv6AUhPiOGz5RNZPinjvNctWZthPHL29vTStvUtTqzbSvO6rbjePADD/A6NzUwjq9w6PzFnxSISS4tlL3cIyTZtDsnaHJK1GSTn4JFzDM+Dx+OxuwQxyLKyDObmJ/PQplrWV7TR3tPPfWsruGJKJp9eMoG0hLG/lSVrM4xHzs6EeGuv4PJF8PVP0dfqomXj9oGBbLoraq3HanXR+NdXaPzrKwAkTiwcmBYje9lFxOVknnctIjDZps0hWZtDsjaD5Gwv2WMYQGtrK5mZ8uEt3Git+ffRNh7eVENHr3V4aVZSDJ9fVsIlJWMbDESyNkMocu6uPkbLhm2cWLeVlvXb6GtuG3a51LnTBqbFyLpkPs4kGYFtPMk2bQ7J2hyStRkk5+CRPYbnQb6xCE9KKa6YkskFhSn8ZH01r9W4aOnu55svHuUd07O4/dIJJMeN7twuydoMocg5qaSQpNWrmLB6Fdrno2PfkYGBbFq27MTn7gWgY/chOnYfovKRNai4WDIXzRsYyCbtghk4YuRX8/mQbdockrU5JGszSM72kk8fAbS1tZGXl2d3GSKA7KRY7r1qMi8dauHnm2vp9vj458EWdtR18IUVJSwsThvxuiRrM4Q6Z+VwkDZnGmlzpjHpU6vx9fbRtn0Pzeu3cmLdVtp37gOfD93noWXTDlo27eDQ/Y8Rk5ZCVvnCgT2KyVNK5PzEUZJt2hyStTkkazNIzvaSxjCAxMREu0sQ56CU4qrp2cwvSuXH66vZUddBU5eHr/zjCKtm5fCJi4tIjD333kPJ2gx25+yIjyNr6QKyli5g2l234WnvoGXTjoHzE7sOVwPQ7+rk+D/Wcfwf6wBIKM4fGO00e/ki4nOz7HwaEcHurEXoSNbmkKzNIDnby4hzDL/1rW8BcOONN7J69eoR3a+7u5ukpKRglibGkdaav+1v5rHX6ujp9wFQmBrHFy8rZV5BylnvK1mbIdxzdtc10rzeahKb122jr6ll2OVSZk0he8UicpYvJnPJfGKSw/c52SXcsxbjR7I2h2RtBsk5eGS6CsY++MzBgweZPn16ECoSwXTM1cuD66p5q6ETAAW8d24uH11URHyMY9j7SNZmiKSctdZ07j9qNYrrttKyaSfebvcZy6kYJxmL5voPO11M+vxZOGLlQJBIylqcH8naHJK1GSTn4JHBZ4RxCtPieeBdU3luTxNPbK2nz6v5y+4mXq9x8aXLSpmZl2x3iUKck1KK1FlTSJ01hbLbPoivz0P7zr3W/Inrt9G+fQ/a60X3e2ndsovWLbs4/MDjOFOSyFq6cGCPYvL0Mjk/UQghhBAjInsMA/B6vTidoxvdUoSXmrYeHni1iv1N3QA4FHzwgnxuWlhAnPPU3kPJ2gzRlHN/Rxctm9/wH3a6lc4DFcMuF5+fc9r5iQmFuSGu1B7RlLU4O8naHJK1GSTn4JFDSRl7Y3j48GGmTp0ahIpEKHl9mj+/1chvtzfQ77Pe65MyE/jy5aVMybaOYZeszRDNOfc0NNGyYTsn1m2jed3r9DacGHa55Gll1t7EFYvJWrqQmNTo3IMezVmL00nW5pCszSA5B48cSnoefD6f3SWIceB0KD50YQGXTEzngVerONzspqK1hzueO8BNCwv50IX5krUhojnnhIJcit53NUXvuxqtNV2Hq2h+dau1R3HjDryd1l7zrkOVdB2qpPpXT6OcTtIXzCJ7xcVkr1hExsI5OOJibX4m4yOasxank6zNIVmbQXK2l+wxDKC9vZ309PQgVCTs0u/TrNnZwO/faMDrf9tPy0nkUwuzmVtixiF2JjN1m/b199P+xj5rWox1W2nbvhvt6T9jOWdSIllL5luHna5YTMrMyRF7fqKpWZtIsjaHZG0GyTl45FBSxt4YNjQ0UFBQEISKhN0OnujmgVerqGrtASDGAR9dVMQNc/NwOiLzg7A4N9mmLf1d3bRu2UWzfyCbjr2Hh10uLjfLOj/Rf45iYnF+iCsdO8naHJK1OSRrM0jOwSOHkp4Hl8slb8woNT0niZ9dN4P/2X6MP791nH4fPP56PZsq2/nSZSUUpyfYXaIIAtmmLTHJSeSuXELuyiUA9Da10Lxh28AexZ66RgD6mlo49syLHHvmRQCSppSQ428Ss8oXEpueattzOBfJ2hyStTkkazNIzvaSxjCAlJSzT4ouIluc08EtFxezpDSD7689QmO3l73Hu7j9mf3ccnEx75mdgyNCD6MTw5NtenjxuVkUXX8VRddfhdaa7oragb2JzRu209/eAUD3kWqqj1RT/eQz4HCQfuFMslcsInv5YjIXz8MRH2fzMzlFsjaHZG0OydoMkrO95FDSADo7O+XNaYjmNhd/2ufi2T1NA9ddWJjCF1aUUJAab2NlYjzJNj162uvF9eYBa/7EdVtp3foWus9zxnKOxHiyLp1P9vLFZK9YROrsqSiHY5g1hoZkbQ7J2hyStRkk5+CRcwwZe2N48OBBpk+fHoSKRLg5mfWu+g4eXFdNY2cfAImxDj55STHvnJEdsYNwiFNkmz5/3u4eWl/fZR12un4rrrcODrtcbFYG2csv8s+fuJikksKQ1ilZm0OyNodkbQbJOXjkHEMhRuHColQefe9Mfvl6HX/b34zb4+MnG2rYUNnGnctLyEkOn0PlhLCDMymBnMsvIefySwDoO9FK88Yd1rQYr27FXXMMAE9LGw3Pr6Xh+bUAJJUV+5vERWSVX0Rclow4J4QQQoQb2WMoxDC21br48bpqTnRbh82lxDn5jyUTWDk1U/YeChFAd1WddX7ium00b9iGp9V15kJKkTZvhnV+4orFZC6+AGeiHLIthBBCBJMcSoocSirOLVDWnb39PLKljpcOtQxct6Q0nc+VTyQzKTomAjeJbNOhpX0+XLsP+Qey2Urra7vw9fSdsZwjPo7Miy8YGMgmbd50lNN5Xo8tWZtDsjaHZG0GyTl45FBSIc5DSnwMX7qslGVlGfxkQzWt7n42V7Wzp6GTz5ZPZMXkTLtLFCJsKYeD9AtmkH7BDCbf8WG8Pb20bXtrYFqM9l37QWt8vX3WCKjrtwG/IDYjlaxy//mJKxaTVFYse+mFEEKIEJA9hgHIqEjmGEnWrp5+HtpUw6tH2wauu2xyBp9ZOpG0BPl+JRLINh1e+lpdtGzaQfOr1h7F7oraYZdLmFBAjr9JzF52EXE55/5CRrI2h2RtDsnaDJJz8Mgew/PgcrnkjWmIkWSdlhDD1982iWVlrTy0sQZXr5dXj7bx5rFOPreshCWlMphGuJNtOrzEZaZR8K7LKXjX5QB0Vx+jZcM2TqzbSsv6bfQ1twHQU9tA7ZoXqF3zAgCpc6cNTIuRdcl8nEkJZ6xbsjaHZG0OydoMkrO9pDEMoLOz0+4SRIiMJuvLJmdyQUEKP9lYw+aqdlrd/XzrpaO8fVoWn7q0mJR42aTClWzT4S2ppJCk1auYsHoV2uejY9+RgYFsWre8gdfdA0DH7kN07D5E5SNrUHGxZC6aNzCQTdoFM3DExEjWBpGszSFZm0Fytpd8ig0gLS3N7hJEiIw268ykWO65chJrD7fys821dPV5eelQCzvrO7hzeQmLJsh7JxzJNh05lMNB2pxppM2ZxqRPrcbX20fb9j00r9/KiXVbad+5D3w+dJ+Hlk07aNm0g0P3P0ZMWgpZ5QuJvXAGnY54kqeUyPmJUU62a3NI1maQnO0l5xgG0N7eTnq6HB5ogvPJuqmrj/9aX8222o6B6941M5tbLy4mKe78RlYU40u26ejhae+gZfNOayCb9VvpOlQ17HIJRXlkL180MIdifF52iCsVwSbbtTkkazNIzsEj5xieh8bGRnljGuJ8ss5NjuO775jCPw408+hrdbg9Pv62v5ntdR18cUUJFxSmjnO1Yqxkm44esemp5F+9gvyrVwDQU3+c5vXbOLHudZrXbaOvqWXg+ro//p26P/4dgJSZk8m+bDE5yxeTuWQ+MclJtj0HMT5kuzaHZG0Gydle0hgG4HA47C5BhMj5Zq2U4pqZOSwsTuVH66rZdayTho4+vvi3w1w/J5ePLS4iIUbeT3aTbTp6JRTlUfzBayj+4DVordn70qskVzbSvG4rLZt24u12A9C5/yid+49S9egfUTFOMhbN9Q9ks5j0+bNwxMqfxEgj27U5JGszSM72MuJQ0m9961sA3HjjjaxevXpE9/N6vTjPc5JlERnGM2uf1jy/p4knttbT67W2rQnp8XxxRSmz85PH5THE2Mg2bY7BWfv6PLTv3MuJdVtpXr+N9u170F7vGfdxpiSRtXQh2SsWkbN8McnTy+T8xAgg27U5JGszSM7BM5JDSY1oDMdyjuHBgweZPn16ECoS4SYYWde29/Dgq9XsPd4FgEPB++fl8f8uKiTOKd+G2UG2aXOcLev+ji5aNr9B8/qtNK/bSueBimGXi8/POe38xITC3GCWLMZItmtzSNZmkJyDR84xFMImE9IT+NG7p/GX3cf5zbZjeHyaP755nC01Lr50WSnTc+TcJiHsEJOaTN5V5eRdVQ5AT0MTLRu2c2LdNprXvU5vwwkAehtPUP/0/1H/9P8BkDytjOwVi0idOZmqJ/5C18FKUmZNZsGvvkdSabFtz0cIIYQYL7LHMIDu7m6SkuTDuwmCnXVlq5sHXq3i0AnrPCeHgtXzC1i9oIAYhxyqFiqyTZtjrFlrrek6XDUw2mnLxh30d3Sd/U4OB7HpKaAcKKcD5bD+RSmU04lyKPD/a93mBIdCOU7eNvg+Q9dx8rLy32/QbYPWEXCdDod1H+ep9Z6+jlPLDV3nqZqdp24bdJ11+SzrPHnbcLUMXB70Gg16LkNfv7M9P9muzSFZm0FyDh7ZY3gempub5Y1piGBnXZaZyE/fM4M/7GrkdzuO4dXw1M4GtlS386XLSpmUlRi0xxanyDZtjrFmrZQiZVoZKdPKKL3lffj6+3Ht2k/zuq2ceHUrbdt3oz39p9/J58PT6hqnysWoDTSXQxrRYRvt4Zv1Uw3rGJp1NaiZDfdm/eTlMTTrDPpi45zPL0jkd7gZJGd7SWMYgNvttrsEESKhyDrGofjwggIunZjGA69WUdHaw+FmN3c8d4D/d1EB75+Xj1P2HgaVbNPmGK+sHTExZFw0l4yL5jLl8x+jv6ubjW/7CO7qetAalCI2K53Ca68Enw998sfrsy57fWh98rJGe71o36DbfBrt8w66TZ9az8l1DCzrg9PWd+p6a52D12H9a91+5vqjik+jff1E97FPEeaMZvNUIzz6Zv1Uw9/T20t9SnJwm/Vh9nyPtFkfaMzH0qwP3ss+2mZ94PUNfbMeDPK32l7SGAaQkZFhdwkiREKZ9dScJB66bga/29HAH99sxOPTPLH1GJsqrb2HEzMSQlaLaWSbNkewso5JTmLxn37Czlu+Ruf+o6TMnMyCX32fpNKioDxeMGitQesAzeuQZtM7qEnVg27z+vzr8DebXi/av07t9TeiA83pycZ0uHX4L59sfEfSWGv/4/nX2dXRQVJi4kAtpxphX+BmfejzG0Wzrr3egddv5M36udcfVU6+XkFYdW8Q1mmEQM36yWZzjM36aPesn2qUAzfr7p4e9qeknNmsn1znWJr1QUcFjLpZV/51jqBZd9c3sucL99N1qJKUGZNZ8OvvR9w56HKOYQCtra1kZmYGoSIRbuzKet/xLh54tYradutPXZxT8fHFRVw3JxeHDJM/7mSbNodkbY5oyPpszfrQBndEzfpp9xnUnI+gWR/cWI+4WT9H43u2Zj3g8xtmnZ7ePmIcjjO+mBhVsz6KLwOEOC9KkTpnKuUv/8buSgbIOYbnoampKeL/2IiRsSvrWXnJPHL9TJ7cVs8zu5vo82p+saWOjZXtfHFFCYVp8SGvKZrJNm0Oydoc0ZC1UsraoxJhh/yFWiinMRjcrJ/ZWI+iWR/u0PBzNOtna6zP2ayPsPE9bZ0DjfU5nt9w6wxwFMHZmvVTz3349fd7+nGgIr9Z15rO/UftrmLUpDEMIDY21u4SRIjYmXV8jINPXjqBpWUZPPhqFcc6+niroZNPPrOf2y4p5l0zs2WS7XEi27Q5JGtzSNbmCGXWpzXrsfJROZQqKiqYNGnSGddrffKw7uEa68DN+ukN7Sib9ZE01oPWeeTHv6anoQl8GhwOUmZOtuEVPD9yKGkAHo9H/uAYIlyydnu8PP56PS/sOzFw3cLiVO5cXkJeSpyNlUWHcMlZBJ9kbQ7J2hyStRkiOefuqrqwPgd9JIeSynELAVRUVNhdggiRcMk6MdbJZ8oncv87p5CbbP1S3FHXwW1/2ceLB5uJ9i9xgi1cchbBJ1mbQ7I2h2RthkjOOam0mPKXf8M7atdT/vJvwqopHClpDIUIMwuL03jshlm8Y3oWAN0eHw+uq+buF4/S3O2xuTohhBBCCBGNpDEMoKSkxO4SRIiEY9bJcU6+sKKU+66aTFaidX7DazUubvvLPl450ip7D8cgHHMWwSFZm0OyNodkbQbJ2V7SGAbQ2NhodwkiRMI560tK0nnshllcMcUada+j18v3X6nkO/+qpM0tew9HI5xzFuNLsjaHZG0OydoMkrO9pDEMoLdXplE1RbhnnZYQw1evKOObKyeRnmDtPVxf0cZtf9nPxso2e4uLIOGesxg/krU5JGtzSNZmkJztJY1hANnZ2XaXIEIkUrJePimDx26YybKydADaevr59ssV/ODflXT09ttcXfiLlJzF+ZOszSFZm0OyNoPkbC9pDIWIIJmJsXxz5STuuryUlDgnAGsPt3LbX/aztcZlc3VCCCGEECJSSWMYQHNzs90liBCJtKyVUqycmsUvb5jFxRPTAGju9vD1fx7hv9ZX09XntbnC8BRpOYuxk6zNIVmbQ7I2g+RsL2kMA4iPj7e7BBEikZp1dnIs9101mc8vLyEp1tqU/3Ggmduf2c/O+g6bqws/kZqzGD3J2hyStTkkazNIzvaSxjCA/Px8u0sQIRLJWSuleOeMbB597yzmF6UA0NjZx11/P8zPNtXg9sjew5MiOWcxOpK1OSRrc0jWZpCc7SWNYQDV1dV2lyBCJBqyzk+N4/53TuWOpROIj7E26+f3nuBTzx5gT0OnzdWFh2jIWYyMZG0OydockrUZJGd7SWMoRJRwKMV7Zufyi+tnMjc/GYB6Vy93/vUQj71WR1+/z+YKhRBCCCFEuFJaa7trCKq1a9fqhQsXjvp+Ho+H2NjYIFQkwk00Zu31aZ7d08Svt9Xj8VrbeElGAl+6rIQZuck2V2ePaMxZDE+yNodkbQ7J2gySc/Ds2LGDlStXqrMtI3sMA6itrbW7BBEi0Zi106F437w8HrluJjNykwCobuvhP//3IE9uq8fjNW/vYTTmLIYnWZtDsjaHZG0Gydle0hgG4PF47C5BhEg0Z12SmcBPVk3nY4sKiXEofBrWvNHIZ54/yNFmt93lhVQ05yxOJ1mbQ7I2h2RtBsnZXtIYBpCbm2t3CSJEoj1rp0Nx4/wCHrp2OpOzEgE42uLmjucPsGZnA15fdB9OflK05yxOkazNIVmbQ7I2g+RsL2kMA5BvLMxhStZTspN46NrprJ6fj0NBv0/z5PZjfO6Fg1S39thdXtCZkrOQrE0iWZtDsjaD5GwvaQwDaGtrs7sEESImZR3rdPDRRUX89D3TKclIAOBAUzefem4/T7/ZGNV7D03K2XSStTkka3NI1maQnO0ljWEAiYmJdpcgQsTErGfkJvPz62bwvnl5KMDj1Tz2ej1f/Nsh6tp77S4vKEzM2VSStTkka3NI1maQnO1lRGO4atUqVq1axZo1a0Z8n+zs7CBWJMKJqVnHxTi47ZJifvzuaRSlxQOwp7GL25/dz//ubcIXZVPZmJqziSRrc0jW5pCszSA528uIxvCFF17ghRdeYPXq1SO+jwyXaw7Ts55TkMIj18/g2tnWCd+9/T4e3lTLV/5xmMaOPpurGz+m52wSydockrU5JGszSM72MqIxFEKcXWKsk08vncAPrplKfkocAG/Ud/LJZ/bxjwPN6CjbeyiEEEIIIU6nov0D39q1a/XChQtHfT+v14vT6QxCRSLcSNan6+rz8thrdfzjQPNp1xemxnHfOyZTkhGZx/9LzuaQrM0hWZtDsjaD5Bw8O3bsYOXKlepsy8gewwAqKirsLkGEiGR9uuQ4J59fXsJ33jEZ56BfH8c6+rj16f18/5VK1h1txe3x2lfkGEjO5pCszSFZm0OyNoPkbK8YuwsIVz6fz+4SRIhI1sO7eGI6Q48n0MArR1p55UgrsU7FwqJUyssyWFKaTnpCeP86kZzNIVmbQ7I2h2RtBsnZXuH9Sc5G+fn5dpcgQkSyDmxSViKVLW682jq8IDHOiU9r3B4fHq/mtRoXr9W4cGyAeQUpLC1Np7wsgzz/eYrhRHI2h2RtDsnaHJK1GSRne8mhpAG43W67SxAhIlkHdvfKSZRlJeJUMCk7kZ9fP4M/f3ge33nHZK6enj2wl9CnYdexTh7ZUseH/7CHTz+3nzU7G6hu7bH5GZwiOZtDsjaHZG0OydoMkrO9ZI9hAC6Xi4KCArvLECEgWQdWmBbPI9fPPOP6iyemc/HEdLw+zZ7GLjZWtbGpsp3GTmt6i0Mn3Bw64ebJ7ceYkB5PeVkG5aXpzMhNQqmznvccNJKzOSRrc0jW5pCszSA520sawwBSUlLsLkGEiGQ9dk6H4oLCFC4oTOH2S4o53OxmY2UbG6vaqfLvLaxt7+WPuxr5465GcpJiKS9LZ2lZBhcUpOB0hK5JlJzNIVmbQ7I2h2RtBsnZXtIYBpCWlmZ3CSJEJOvxoZRiWk4S03KS+OiiImrbe9hY2c7Gyjb2N3UDcKLbw/N7T/D83hOkxju5tCSd8rJ0LipOIz4muEe2S87mkKzNIVmbQ7I2g+RsLznHMID6+nq7SxAhIlkHx4T0BD54YT7/fe0M1tw4hzuWTmBBUSondxJ29Hp56VAL97xUwfueeot7X65g7eEWOnv7g1KP5GwOydockrU5JGszSM72kj2GQoigy0mO4z2zc3nP7FxcPf28VtPOxsp2tte66PVqevt9bKhsY0NlGzEOxYWFKZSXZbC0NJ2spFi7yxdCCCGEiHpK66EzlUWXtWvX6oULF9pdhhBiGG6Pl+11HWysbOO1ahedfd7TblfArLxkysusaTCK0uLtKVQIIYQQIoLt2LGDlStXnnVwBzmUNICDBw/aXYIIEcnaPomxTpaVZXDX5WX86cPz+P7VU3j3rByykqyDGTSw93gXv3y9no/+aS+3P7OP324/xpHmbkb7pZbkbA7J2hyStTkkazNIzvaSQ0mFEGEhxqG4aEIaF01I446lEzjQ1M2GCmuE03pXLwBHW3o42tLAUzsbKEiNo7zU2pM4Ky85pCOcCiGEEEJEGzmUNIDOzk4ZMtcQknV401pT2drDxqp2NlW2cbj5zMlvMxNjWFKaTnlpBvOLUoh1nnkwhORsDsnaHJK1OSRrM0jOwTOSQ0llj2EALpdL3piGkKzDm1KKSVmJTMpK5MMLCjjW0cumynY2VrWxp6ELDbS6+/n7/mb+vr+ZpFgHl/inwVg8IY3EWCcgOZtEsjaHZG0OydoMkrO9pDEMoLOz0+4SRIhI1pGlMDWeG+blccO8PFrdHrZUtbOhsp036jvw+DTdHh+vHGnllSOtxDoVFxWnUl6WQa6ng6Iiu6sXoSDbtDkka3NI1maQnO0ljWEAMsGmOSTryJWZGMs7Z+bwzpk5dPV5eb3GxabKNl6vdeH2+PB4NVuqXWypduFQMK/y0MA0GHkpcXaXL4JEtmlzSNbmkKzNIDnbSxrDABITE+0uQYSIZB0dkuOcXDElkyumZNLX72NHvTUNxpZqF+09/fg07DrWya5jnfx8cy3Tc5IGpsEoyUiwu3wxjmSbNodkbQ7J2gySs72kMQygsbGR9PR0u8sQISBZR5+4GAeXlqRzaUk6Xp9mT2Mnf91ZyZ52RVOXB4CDJ7o5eKKbX287xsT0eMrLMigvS2d6ThJKyQinkUy2aXNI1uaQrM0gOdtLGsMAHA6Z4tEUknV0czoUFxSmktSVyJQpUzjU7GZjZRubKtupausBoKa9lz/sauQPuxrJTY5laanVJM4rSJFpMCKQbNPmkKzNIVmbQXK2l0xXEYDX68XpdAahIhFuJGszDJdzbXsPGyvb2VDZxoGm7jPukxbv5NIS63DThcWpxMfIH6xIINu0OSRrc0jWZpCcg2ck01XIp5wAjhw5YncJIkQkazMMl/OE9AQ+eGE+D107g9/dOIc7lk5gQVEKJ3cSunq9vHiohW+9dJT3P/UW962t4F+HW+jq84a4ejEask2bQ7I2h2RtBsnZXnIoqRBCALnJcbxndi7vmZ2Lq6efLdXtbKxqZ3utiz6vpqffx/qKNtZXtBHjUMwvSrFGOC1JJzMp1u7yhRBCCCHOixxKGkB3dzdJSUlBqEiEG8naDGPN2e3xsr22gw2VbbxW4zpjb6ECZucnU15qHXJamBY/ThWLsZJt2hyStTkkazNIzsEzkkNJZY9hAM3NzfLGNIRkbYax5pwY62TZpAyWTcrA4/Wx61gnmyrb2VTVRou7Hw3saexiT2MXj71ez+SsRGsajNIMJmUlyAinNpBt2hyStTkkazNIzvaSxjAAt9ttdwkiRCRrM4xHzrFOB4smpLFoQhp3lE9g3/EuNvqbxHpXHwBHW9wcbXHzPzsaKEyNG5gGY1ZeMg5pEkNCtmlzSNbmkKzNIDnbSxrDADIyMuwuQYSIZG2G8c7ZoRRz8lOYk5/CrRcXUdnaw8bKNjZUtnO0xfrDdqyjj6ffOs7Tbx0nKzGGJf7DTS8sTCHWKWN/BYts0+aQrM0hWZtBcraXNIYBxMbKYBKmkKzNEMyclVJMykpkUlYiH15YyDFXLxur2tlU2caexi400OLu52/7m/nb/maS45xcMjGN8rIMFk1IJTFWhuYeT7JNm0OyNodkbQbJ2V7SGAbQ1NREZmam3WWIEJCszRDKnAvT4nnfvDzeNy+P1m4Pm6utuRLfqO+k36fp6vPyryOt/OtIK3FOxUXFaZSXpXNpSTppCfJr+XzJNm0OydockrUZJGd7ySeQAOQbC3NI1mawK+fMpFiumZnDNTNz6Orz8npNOxsr23m9xkVPv48+r2ZzdTubq9txKLigMIXy0gyWlqWTmxxnS82RTrZpc0jW5pCszSA520umqwjA4/HIm9MQkrUZwi3n3n4fO+o62FTVxuaqdly93jOWmZGbNDDC6cSMBBuqjEzhlrUIHsnaHJK1GSTn4BnJdBUy+kEAFRUVdpcgQkSyNkO45Rwf42BJaTpfWFHKH2+axwPXTOXa2bnkJp/6g3igqZsnth7jlqf38Ymn9/HrrfUcbOom2r/QO1/hlrUIHsnaHJK1GSRne8mhpEIIYTOnQ3FhUSoXFqXyH0uKOXTCzcbKNjZWtVPd1gNAdVsP1W09/H5XI3kpsSwtzaC8NJ25BSk4HTINhhBCCCHOjxxKGkBPTw8JCXLolgkkazNEas7VbdY0GJuq2jnQ1H3G7WnxzoFpMBYWpRIXIweCRGrWYvQka3NI1maQnINHDiU9D42NjXaXIEJEsjZDpOZckpHAjfMLeOjaGTz1oTl8eskE5helcHInoavXyz8PtnD3i0d5/+/e4jtrK3jlSAtdfWees2iKSM1ajJ5kbQ7J2gySs73kUNIAent77S5BhIhkbYZoyDkvJY5r5+Ry7ZxcXD39bKm2RjjdXueiz6txe3ysq2hjXUUbMQ7FgqJUysvSWVKSTmaSOSfzR0PWYmQka3NI1maQnO0ljWEA2dnZdpcgQkSyNkO05ZyWEMNV07O5ano2bo+XbbUdbKhs47Xqdro9Pvp9mq21LrbWuvgpNczJT2ZpWQblZekUpsbbXX5QRVvWIjDJ2hyStRkkZ3tJYyiEEBEuMdbJ8kkZLJ+UgcfrY9exzoHzElvd/Whgd2MXuxu7eOy1OqZkJ1LuPy+xLDMBpWTwGiGEEMJ00hgG0NzcLN9aGEKyNoMpOcc6HSyakMaiCWncsVSz/3gXG6va2VjZxrGOPgCONLs50uzmtzsaKEqLY2lpBsvKMpiZl4QjCppEU7IWkrVJJGszSM72MqIxXLVqFQA33ngjq1evHtF94uOj+1ArcYpkbQYTc3Y6FHMKUphTkMKtFxdR0dLDxqo2Nla2cbTFmgaj3tXH028d5+m3jpOVFMPSkgyWlqVzYWEKsc7IHJ/MxKxNJVmbQ7I2g+RsL5muIgAZLtcckrUZJOfTHXP1DsyVuLexi6F/CZLjnFxakkZ5aQYXTUglMdZpS51jIVmbQ7I2h2RtBsk5eGS6ivNQXV1tdwkiRCRrM0jOpytMi+d9F+TzX6um8/vVc/ls+UQWTUglxj8PRlefl7WHW7l3bQUfeOotvvXSUV461Iyrp9/mys9NsjaHZG0OydoMkrO9jDiUVAghRGBZSbG8e1YO756VQ2dvP6/XuNhY1c7WGhc9/T56vZrNVe1srmrHoeDCwhTKyzJYWppOTnKc3eULIYQQYhzIoaQBeDweYmPNmffLZJK1GSTn0evt97GjroONlW1srm6no9d7xjIzc5Mo90+DMSE9PA7/kazNIVmbQ7I2g+QcPHIo6Xmora21uwQRIpK1GSTn0YuPcbCkNJ0vXlbKn26axw+vmcq1s3PJST71R3t/Uze/2lrPx/+8j1uf3sevt9Vz6EQ3dn7pKFmbQ7I2h2RtBsnZXnIoaQAej8fuEkSISNZmkJzPj9OhmF+UyvyiVP5jSTEHT3SzsdKaBqOmvReAqrYeqt7o4fdvNJKfEsfS0nTKy9KZk5+C0xG6aTAka3NI1uaQrM0gOdtLGsMAcnNz7S5BhIhkbQbJefwopZiRm8yM3GQ+vriI6taT02C0c/BENwCNnX08u6eJZ/c0kZ4Qw6UlaSwry2BBUSpxMcE9WEWyNodkbQ7J2gySs72kMQxAvrEwh2RtBsk5eEoyEyjJLODG+QUc7+xjU5W1J/Gthk58Gtp7+vnnwRb+ebCFxFgHF09IY2lZBhdPTCM5bvynwZCszSFZm0OyNoPkbC9pDANoa2sjLy/P7jJECEjWZpCcQyMvJY7r5uRy3Zxc2nv62VJtNYnb6zrweDVuj49XK9p4taKNWIdiQXEq5aXpXFqaTmbi+Aw4IFmbQ7I2h2RtBsnZXtIYBpCYmGh3CSJEJGszSM6hl54QwzumZ/OO6dm4PV62+qfBeK26nW6PD49P83qNi9drXDg21jA7P5nyUmuE04LU+DE/rmRtDsnaHJK1GSRne0ljGEB2drbdJYgQkazNIDnbKzHWyYrJmayYnEmf18eu+k42VrWxuaqdVnc/Pg27G7rY3dDFo6/VMTU7kaVlGZSXplOWmYBSIx+8RrI2h2RtDsnaDJKzvWS6igBkuFxzSNZmkJzDR5zTweKJaXxuWQlrbpzLj989jRvm5lKQGjewzOFmN7/dfoxPPrOfj/15H4+/Xse+4134RjANhmRtDsnaHJK1GSRne8keQyGEELZxOhRzC1KYW5DCbZcUc7TFPTANRkVrDwD1rl7+9OZx/vTmcbKTYllSms6ysnQuKEwlJoTTYAghhBDRTNk5CXEorF27Vi9cuHDU9/N6vTid4z9angg/krUZJOfIU+/qZWOlNQ3GvuNdDP1rlRrv5JKJ1giniyakkeCfBkOyNodkbQ7J2gySc/Ds2LGDlStXnvXbVNljGEBFRQVTp061uwwRApK1GSTnyFOUFs/7L8jn/Rfk09ztYbN/Gow36jvwaujo9fLy4VZePtxKvFNx0YQ0ysvSye9v4YJZ0+wuX4SAbNfmkKzNIDnbSxrDAHw+n90liBCRrM0gOUe27KRY3j0rh3fPyqGzt5/XalxsrGxna62L3n4fvV7Npqp2NlW141BwYcVhysvSKS/NIDt5fKbBEOFHtmtzSNZmkJztJY1hAPn5+XaXIEJEsjaD5Bw9UuJjWDk1i5VTs+jt97G9zmoSt1S309HrxadhZ30HO+s7eHhTLbPykgamwShOT7C7fDGOZLs2h2RtBsnZXtIYBuB2u0lPT7e7DBECkrUZJOfoFB/jYGlpBktLM+j3ad461slLe+t5o8nDiW4PAPuOd7PveDePb62nNDOB8tJ0lpVlMCU7cVTTYIjwI9u1OSRrM0jO9pLGMACXy0VBQYHdZYgQkKzNIDlHvxiHYkFxKsldii9eOYeDTd1s9J+XWNveC0BVaw9VrT2seaOR/JQ4lvoPN52Tn4xTRjiNOLJdm0OyNoPkbC9pDANISUmxuwQRIpK1GSRnc6SkpOBQipl5yczMS+aWxUVUt/awobKNjVVtHDrhBqCxs49ndzfx7O4m0hNiWFqaTnlZOvOLUolzyjS/kUC2a3NI1maQnO0ljWEAaWlpdpcgQkSyNoPkbI7hsi7JTGB1ZgGrFxRwvLOPjZVtbKpq562GTnwa2nv6+ceBZv5xoJmkWAeLJ6ZRXprBxRPTSIqTodPDlWzX5pCszRDJOR9z9XLv2goqWtxMykrk7pWTKEyLt7usUZHGMID6+nqmT59udxkiBCRrM0jO5jhX1nkpcVw/N4/r5+bR5vawpdrFxso2dtR34PFquj0+Xj3axqtH24h1KhYWpbK0LIMlJWlkJMoIp+FEtuuz01qjgZNTVutB16H9l/3X4V9Oj/K+1v+HLDvouoFl/Rf04Mc5y30H16OBqqoaSkpKhtToX/a05+J/nOFqHO6+gx9n4LnqITUOeZyB9eiA9z31mp1cjx5S46DX87Qa9FnvO7ie01+zIcueM7chWQzOfBxzO9vjDJdbR0cnySkpZ+R2+msyXG7D1XNmbmfkO2idQx9n+PfR8LmB5ninh36fdelos5t711bwyPUziSTSGAohhDBWRmIsV8/I5uoZ2XT3edlaazWJr9e46Pb48Hg1r9W4eK3GxU8VTMtO4kS3h5ZuD3kpsVw/J5f0xFj5UDhOHwoDfZg//TU59Thd3T0kHTkcNh8Mx95gnOf7Ydh6otDOg3ZXIEKhud3uCs6bBipb3HaXMWrq5C+daLV27Vq9cOFCu8sQQggRQfq8Pt6o72BjpTU3YntPv90lCSHEmCjg5ADM1v8Vyn9B+a/Df53yX8eg5Ybed/A6T61nyDr91zFoOeVfYCT1DCx7Wj3+xzntvmc+zuB6BpYdWI8aUs+pdQ59nLPVc/pzte65tcZFZ593oLbJ2Ylhtcdwx44drFy58qyjrMkewwAOHjwoh6cYQrI2g+RsjvHIOs7p4OKJ6Vw8MZ3Plmv2Hu9iY2Ubz+xuGqcqQyeaPxT29PSQlJh42uPY9aHw9NdEDbnvkNoH1jPocYapkcGPM4LHGlzT6c8nQE3DZTd42ZG+H85533O/H871Xqqvr6O4uDjwazrq7EZ63zFmN2i5s973HLkNzfy0LEZ430gSyX+rT55jWNnipiwrkbuvnGR3SaMmjaEQQghxFk6HYl5BCvMKUthV30lFqxufBoeCCenx3PP2yfKh0CaR/CFSjM7B3kaml6TbXYYQARWmxYfVHsKxkMYwgKKiIrtLECEiWZtBcjZHMLO++8pJZ3wjXJgaWaPORRPZrs0hWZtBcraXNIYBuFwumUvFEJK1GSRncwQz62j4RjiayHZtDsnaDJKzvWQG3wA6OzvtLkGEiGRtBsnZHJK1OSRrc0jWZpCc7SWNYQCRPMGmGB3J2gySszkka3NI1uaQrM0gOdtLGsMAEv2jnInoJ1mbQXI2h2RtDsnaHJK1GSRne0ljGEBjY6PdJYgQkazNIDmbQ7I2h2RtDsnaDJKzvaQxDMDhkJfGFJK1GSRnc0jW5pCszSFZm0Fytpe8+gFMmhR5k1KKsZGszSA5m0OyNodkbQ7J2gySs72kMQzgyJEjdpcgQkSyNoPkbA7J2hyStTkkazNIzvaSxlAIIYQQQgghDCeNYQATJkywuwQRIpK1GSRnc0jW5pCszSFZm0Fytpc0hgE0NzfbXYIIEcnaDJKzOSRrc0jW5pCszSA520sawwDcbrfdJYgQkazNIDmbQ7I2h2RtDsnaDJKzvaQxDCAjI8PuEkSISNZmkJzNIVmbQ7I2h2RtBsnZXtIYBhAbG2t3CSJEJGszSM7mkKzNIVmbQ7I2g+RsL2kMA2hqarK7BBEikrUZJGdzSNbmkKzNIVmbQXK2lzSGAcg3FuaQrM0gOZtDsjaHZG0OydoMkrO9pDEMQIbLNYdkbQbJ2RyStTkka3NI1maQnO0ljWEAFRUVdpcgQkSyNoPkbA7J2hyStTkkazNIzvaSxjCAX/7yl3aXIEJEsjaD5GwOydockrU5JGszSM72Ulpru2sIqrVr1+qFCxeO+n5ZWVm0tLQEoSIRbiRrM0jO5pCszSFZm0OyNoPkHDw7duxg5cqV6mzLyB5DIYQQQgghhDCcNIZCCCGEEEIIYTgjDiW1uwYhhBBCCCGEsNO5DiWN+sZQCCGEEEIIIcTZyaGkQgghhBBCCGE4aQyFEEIIIYQQwnDSGAohhBBCCCGE4aQxHEIpFauUelgp1aqUalFKPaSUirG7LjG+lFJPKqX6lFKdg36W2F2XOH9KqTuUUtuUUr1KqeeG3JamlFqjlHIppRqVUt+0qUxxns6R87/91w/evotsKlWcJ6VUvFLql0qpCqVUh1Jqv1Lq44Nul+06CowgZ9muo4j/83WNf7utU0r9RCkV579NtmmbSGN4pm8Ay4DZwBxgOfA1WysSwfJzrXXKoJ/NdhckxkU98B3gl8Pc9hCQBZRgbdu3KqVuDmFtYvycLWeAu4Zs3/UhrE2MrxjgGHAlkAZ8FPiRUuoq/+2yXUeHc+UMsl1Hk58DM7XWacCF/p8v+2+Tbdom0hie6ePAd7TWx7TWx4DvArfYXJMQYoS01s9orZ8DTgy+XimVBHwI+IbWuk1rfRDrj49s3xEoUM4i+mitu7TWd2utj2jLFuAVYJls19HjbDnbXZsYf1rrfVrrLv9FBfiAabJN20saw0GUUpnABOCNQVe/AZQopdLtqEkE1c3+w4X3KKW+oJSS7SG6zQDiOHP7vsCOYkTQfcO/fe+Ub5qji1IqAbgYeBPZrqPWkJxPku06iiilvqKU6gSOY+0xfAjZpm0lH4RPl+L/t23QdSf/nxrSSkSw/TfWL59crG+h/tP/I6JXCtClte4fdF0bsm1Ho68CU4B84CvAQ0qp6+0tSYwHpZQCHgcOAc8g23VUGiZnkO066mit79dap2CdvvULoAHZpm0ljeHpOv3/Dt47ePL/HSGuRQSR1nqH1rpJa+31H65yP/BBu+sSQdUJJA0ZTCod2bajjtZ6s9a6XWvt0Vr/E3gU2b4jnr9Z+DnWl3rXaa19yHYddQLkLNt1FNNa7wN2AU8i27StpDEcRGvdCtQC8wddPR+o0Vq321GTCBmf3QWIoDsAeLAOVzlpPvCWLdWIUJLtO8L5m4WfAZcAVw36myzbdRQ5S87Dke06usQC05Bt2lbSGJ7p18DXlVIFSqkCrBFJH7e5JjHOlFIf8A+HrJRSi7AOS/mL3XWJ86eUivGfmxIDOJRSCUqpOK11N/BH4D6lVLpSahrwGWT7jkiBclZKZSilrlFKJSmlnEqplcDtyPYd6R4GyoG3+7/EBUC266gzbM6yXUcXpVSKUupj/lyVUmoe1qwA/5Rt2l5Ka213DWFFKRUL/ARY7b/qKeDzQ451FhFOKbUO60TmGKAO+BXw4MlDVkTkUkrdA3xryNWvaq0vV0qlYR1+9G7ADTystb43xCWKcRAoZ+D9wF+BWf7rKoGfaK2fCFlxYlwppUqxcuwFBv8tfkprfbts19HhbDkD30S266ihlEoGngMWAvFYg8/8BfiW1rpbtmn7SGMohBBCCCGEEIaTQ0mFEEIIIYQQwnDSGAohhBBCCCGE4aQxFEIIIYQQQgjDSWMohBBCCCGEEIaTxlAIIYQQQgghDCeNoRBCCCGEEEIYThpDIYQQQgghhDCcNIZCCBHBlFL3KKW0Uuqfw9z2tFLq3yGs5XJ/LXND9ZijoZSapZRar5Tq8tdZZmMtX1ZKXT7M9Vopdcegy7cppa4bZrlKpdSDQS1ylJRS71VKHVZKOe2uZSSU5S2l1P+zuxYhhAgH0hgKIUR0uEoptdjuIsLcA0AG8B5gCXDMxlq+DFw+zPVLgD8PunwbcN0wy10P/Pe4VzVGSikHcC/wgNbaa3c9I6G11sAPgW8ppWLsrkcIIewmjaEQQkS+FuAt4Ot2FxJMSqmE81zFTOAlrfVarfUWrXXveNQ1GkqpxLPd7q+r8Vzr0Vrv1FpXj19l520lMAVYE+wHOtdrOEp/BvKBd47jOoUQIiJJYyiEEJFPA98F3qOUmhdoIf9hpyeGuX7o4YuVSqkHlVJfUUodU0q1K6V+5D/07hql1B6lVIdS6jmlVOYwD1WklPqr/5DNaqXU7cM85nKl1KtKqW6lVLNS6pdKqdRBt3/UX9fFSql/K6XcwJfO8tzmK6XW+tfXqpT6nVIq339bmVJKYzUun/ev999nWZdWSt2plPqpUqpFKdWmlHpIKRU3aJlCpdQTSqmjSim3UuqgUuo7Q5Yp86/rJqXUb5VSbcALSqlKIBtrT5X2/1w+NAt/jRcBHxm03EcHZzSk7g/4D43sVUrVKKW+O3hP2KDXdJ5S6iV/PvuVUu8dsp5l/kNuXf6fN5RS7w/0evl9BHhRa90xZF2lSqnfK6VO+LN5Uym1etDtOUqp3/jfA93+rBcNWUel//33TaVULeDyX+/wv0cP+5/zQaXUR0bzXLTWPcDfgZvP8fyEECLqyaETQggRHf6MdSjf14EPjcP6PgS8DnwMqzn5DtaXiSuAbwKJwMPA94Ghjd+vgP8BHsI65PERpVSt1vqvAEqpcuBl4DngfVhN0v1Apv/yYL8Hfg58G2gbrlClVC7wb2AfsBpI8a/vJX+TcQzrEM1ngX/563Kd4/l/AdgC3ATMwWq8ezjVnOZg7am9E2gFpgP3ALnAJ4es60HgGeD9gNe//CvA08Dj/mX2DlPDfwB/AY4C9/mvOzJcsUqpq4A/Ar/113iB/z7ZnJnPGuAxrENrPwP8QSk1WWtdq5RKA/4KPI/1flLAPKxDcM/mbcBPh9SUB2wGuoEvAjXAXGDioMWeA6b6bz/hr/0VpdQCrfXhQcutBvZgvSYnP7s8hNWQ3gvsAN4OPKGUatZa/3UUz2UTVpOu/IeXCiGEmbTW8iM/8iM/8hOhP1jNyAn//z+K1XhM919+Gvj3cMsOWYcG7hh0uRI4DDgHXfc60A9MGnTdD4HGQZcv96/rsSHrfwnYMujyeuCVIcu8zX/fuYOeiwb+cwSvwf1YTWPaoOsu8d//xiHP68ERrE8D+wHHoOu+jtXgZAW4TwxW89IDxPmvK/Ov69lhlj8B3DOCLLYBTw6z3GnPBauJHfqaftn/fpgw5DX9+KBlsv253u6/vMi/TOoo3oNF/vu8a8j13we6gMIA97vaf7/LBl2XDDQBjw55rseAhEHXTQV8wEeGrPO3wNbRPJdB79tpo9n25Ed+5Ed+ou1HDiUVQojo8RRQDXx1HNb1b336ICKHgUqtdcWQ63IHHz7p9+yQy88AFymlnEqpJKy9d39SSsWc/AE2AB6svZOD/W0EtV6MdRjjwF5ArfVrWA3FshHcfzjPa619Q55DItYer5MjWn5OKbXXf5irB/gdEA+UjOE5jJmyRgFdyOmD1oC1B9GB9XoP9uLJ/2itm4HjwAT/VUeATmCNUupapVTGCEoo8P879DDltwH/p7UONMjPxcBxrfWrg+rpwtrLNzS3tdo67POklViN4bND3kdrgfn+12Skz+Vk3QUBbhdCCCNIYyiEEFFCa92PtRfvw0qp0vNcXduQy30BrlPA0Mbw+DCXY7AOv8wEnFiHh3oG/fQCsZx+mCHAOQdiAQoDLNcIZI3g/sMZ7jmcfCyAz2EdIvoscC1Wk/Np/21DB8kZyXM4HzlYr93Qxzl5eehr0Dbkch/+mrXWrViHZMYCfwKalFJ/U0pNPsvjn3y+QwfzyebsI78WcubrfLLuoTUPfW45WO+jdk5/Hz2J9V4rHMVzOVn3+Q5uJIQQEU3OMRRCiOjyBPAN4K5hbuthSBOnhh885nzlDXO5H2vPTALWYXv3YA36MVT9kMsjOefr2DCPCdZok9tHcP/hDPccTj4WWOcLPq21HhgJVik1O8C6gn3e2gmspmhozfn+f1tGszKt9RbgamWN/nkl8GOs8xIvDXCXk+vPGHJ9M6ca6eGcLbehNQ99DVuw3lPlWHsOhzoOI34uJ+se1eskhBDRRvYYCiFEFNHWFAwPAh/nzA/ltUCqUqp40HVXBaGM64e5vF1r7fUfKrgFmKG13jbMz9DGcCReA96hTh/VdDHWOX4bxvgcrlXW3HwnvRdwA7v9lxM5cw/ZTaNY/8BeuvNdzn/I73asZnWwD2A1TZtHUdfg9bq11i9gfdkQqOkF65DdPmDSkOvXYuWSf8Y9LK8BeUqpFSev8B9q/C7Ondu/sPYYpgd4H/WN4rmUYb1OhxFCCIPJHkMhhIg+jwJfA5YCrw66/v+wmpsnlFI/wvogf8ZUEuPgnUqp7/of+71Yh/NdO+j2LwNrlVI+rAFyOrDOy3sX8HWt9cFRPt6PgU8B/1RK/YBTo5K+hTWq51ikAn9WSv0Sa1TSbwI/01qf3Kv0EvBZpdRrWOey3YQ1IMpI7QfepZT6P6zz4A7oIVM9DFruHUqpd2Dtgavwnxc41Lewnv+vgT9gjb55H/BLrXXtSItSSr0L+Vk77QAAAi5JREFU60uF57DOVy3GGmX1X4Huo7XuUUptxzo/9NeDbvovrGkg1vvfDzXALCBZa/1DrfU/lVKbgD8qpb7if35fxGq6HzhbnVrrA0qpX2CNqPpDrEF6ErCymq61/sQonssiYI/Wuv1sjymEENFO9hgKIUSU0Vp3Y30oH3r9CeAGrIFGngM+jDWS5nj7BNZgKM8B7wY+rbX+30F1bMCa9iIXa1qLF7CaxRrGcD6e1roJuALrUNnfAz/DGvn07UP3HI3Cj7AOdfw9cDfWFBxfG3T7vf7bvuP/tw/47CjW/yWsETv/BmzlzEF3TvoO1jQcf/Ivt2q4hbTWL2JNMbII6/X8nP853DHc8mdxGOuwze9hDVLzQ6wvFD5+jvs9gzXK6OCamrAO9dwJ/ARrUJnbsJq0k67DarJ/gjV4jgLepk+fqiKQT2M1vzdjHZb8JNaXC+tG+VyuZuxfIAghRNRQWsuUPUIIIcRJSikNfEZr/bDdtUQK/+Gi1cAyrfVWu+sZKaXUDKz5EadqrSttLkcIIWwlewyFEEIIcV601o3A48B/2l3LKH0eeEqaQiGEkMZQCCGEEOPjPmCffw7BsKeUUkAF1qHCQghhPDmUVAghhBBCCCEMJ3sMhRBCCCGEEMJw0hgKIYQQQgghhOGkMRRCCCGEEEIIw0ljKIQQQgghhBCGk8ZQCCGEEEIIIQwnjaEQQgghhBBCGE4aQyGEEEIIIYQwnDSGQgghhBBCCGG4/w/y/c+d0BgYCgAAAABJRU5ErkJggg==\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "#Test Results Plot for DASK\n",
+ "\n",
+ "import numpy as np\n",
+ "import matplotlib.pyplot as plt\n",
+ "from scipy.interpolate import interp1d\n",
+ "\n",
+ "list_length = np.array([1024, 2048, 4096, 8192]) #dask and parsl\n",
+ "n = np.array([ 1, 2, 4, 8, 16, 32])\n",
+ "\n",
+ "wconfig_time_dask_1 = np.array([2079.35, 4215.38, 8664.66, 18503.27])\n",
+ "wconfig_time_dask_2 = np.array([1057.58, 2180.33, 4629.55, 10352.52])\n",
+ "wconfig_time_dask_4 = np.array([544.14, 1154.29, 2569.87, 6211.34])\n",
+ "wconfig_time_dask_8 = np.array([286.49, 635.39, 1514.49, 3981.29])\n",
+ "wconfig_time_dask_16 = np.array([157.06, 383.96, 983.08, 2923.67])\n",
+ "wconfig_time_dask_32 = np.array([159.48, 369.82, 1017.61, 2997.92])\n",
+ "\n",
+ "wconfig_time_dask_1024 = np.array([2079.35, 1057.58, 544.14, 286.49, 157.06, 159.4])\n",
+ "wconfig_time_dask_2048 = np.array([4215.38, 2180.33, 1154.29, 635.39, 383.96, 369.82])\n",
+ "wconfig_time_dask_4096 = np.array([8664.66, 4629.55, 2569.87, 1514.4, 983.08, 1017.61])\n",
+ "wconfig_time_dask_8192 = np.array([18503.27, 10352.52, 6211.34, 3981.29, 2923.67, 2997.92])\n",
+ "\n",
+ "#Interpolating for a smooth plot\n",
+ "x = np.linspace(list_length.min(), list_length.max(),500)\n",
+ "\n",
+ "f1 = interp1d(list_length, wconfig_time_dask_1, kind='quadratic')\n",
+ "y_1=f1(x)\n",
+ "f2 = interp1d(list_length, wconfig_time_dask_2, kind='quadratic')\n",
+ "y_2=f2(x)\n",
+ "f4 = interp1d(list_length, wconfig_time_dask_4, kind='quadratic')\n",
+ "y_4=f4(x)\n",
+ "f8 = interp1d(list_length, wconfig_time_dask_8, kind='quadratic')\n",
+ "y_8=f8(x)\n",
+ "f16 = interp1d(list_length, wconfig_time_dask_16, kind='quadratic')\n",
+ "y_16=f16(x)\n",
+ "f32 = interp1d(list_length, wconfig_time_dask_32, kind='quadratic')\n",
+ "y_32=f32(x)\n",
+ "\n",
+ "img1 = plt.imshow\n",
+ "plt.style.use('bmh')\n",
+ "plt.plot(n, wconfig_time_dask_1024, '.-')\n",
+ "plt.plot(n, wconfig_time_dask_2048, '.-')\n",
+ "plt.plot(n, wconfig_time_dask_4096, '.-')\n",
+ "plt.plot(n, wconfig_time_dask_8192, '.-')\n",
+ "plt.legend([\"List length = 1024\", \"List length = 2048\", \"List length = 4096\", 'List length = 8192'])\n",
+ "plt.title('Wconfig total time test on Jupyter for DASK')\n",
+ "plt.xlabel(\"Number of partitions (cores)\")\n",
+ "plt.ylabel(\"Total time (s)\")\n",
+ "plt.yscale(\"log\")\n",
+ "plt.rcParams['figure.figsize'] = [12, 8]\n",
+ "plt.rcParams['figure.dpi'] = 90\n",
+ "plt.show()\n",
+ "\n",
+ "img2 = plt.imshow\n",
+ "plt.style.use('bmh')\n",
+ "plt.plot (x,y_1)\n",
+ "plt.scatter (list_length, wconfig_time_dask_1)\n",
+ "plt.plot (x,y_2)\n",
+ "plt.scatter (list_length, wconfig_time_dask_2)\n",
+ "plt.plot (x,y_4)\n",
+ "plt.scatter (list_length, wconfig_time_dask_4)\n",
+ "plt.plot (x,y_8)\n",
+ "plt.scatter (list_length, wconfig_time_dask_8)\n",
+ "plt.plot (x,y_16)\n",
+ "plt.scatter (list_length, wconfig_time_dask_16)\n",
+ "plt.plot (x,y_32)\n",
+ "plt.scatter (list_length, wconfig_time_dask_32)\n",
+ "plt.legend([\"n = 1\", \"n = 2\", \"n = 4\", \"n = 8\", \"n = 16\", 'n = 32'])\n",
+ "plt.title('Wconfig total time test on Jupyter for DASK')\n",
+ "plt.xlabel(\"List length\")\n",
+ "plt.ylabel(\"Total time (s)\")\n",
+ "plt.yscale(\"log\")\n",
+ "plt.rcParams['figure.figsize'] = [12, 8]\n",
+ "plt.rcParams['figure.dpi'] = 90\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "id": "joint-demographic",
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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fKiU57/9Z2pKXgKgtekYf39yTZCjFRERERGRkc5Ya4Mdw5AxxthQer/f/5/rcbdVdnnG4bu1n3alwTjTue33Tw9dcCIiIiIiMuIYY7DWmp7aNYMYRO62qtOe8WCc4UTEZp72vMW6y4cqLBERERERGaWUIAaRkwSgI3k3OEnktt//iVuf/iWpObmc/OdxkJqjcxBFRERERCSwRkWCaIy5wRizOthxnC6nqhAniXQkhzlVhZ1tV95xHxm5uTicTjJyc/nQnfcFL1ARERERERkVtAcxiD73zAe58leHGHfCUphueOHTU/nFJ18KdlgiIiIiIjJC9bYHUQliEBXWFXLb6ts4VHWIqclT+d6q75ETnxPssEREREREZIRSgthFqCWIIiIiIiIiQ0lVTEVERERERKRPlCCKiIiIiIgIoARRREREREREfJQgioiIiIiICKAEUURERERERHyUIIqIiIiIiAigBFFERERERER8lCCKiIiIiIgIoARRREREREREfJQgioiIiIiICKAEUURERERERHyUIIqIiIiIiAigBFFERERERER8lCCKiIiIiIgIoARRREREREREfJQgioiIiIiICKAEUURERERERHyUIIqIiIiIiAigBFFERERERER8RkWCaIy5wRizOthxiIiIiIiIhDJjrQ12DEPGGDN63qyIiIiIiEg3rLWmp7ZRlSAGizHGnu0fQcQf9DmTQNNnTIaCPmcyFPQ5k6EwXD9no2KJqYiIiIiIiPROCaKIiIiIiIgAShCHyv8LdgAyKuhzJoGmz5gMBX3OZCjocyZDYVh+zrQHUURERERERADNIIqIiIiIiIiPEkQREREREREBlCCKiIiIiIiIjxJEERERERERAZQgioiIiIiIiI8SxAAyxoQbY35ojKkyxlQaY540xoQFOy4ZPowxkcaYXxhjjhlj6owx7xhjPt2lPcEY83tjTK0xpswY87XTXn/WdpGujDHRxpjDxpjqLs/pMyZ+Y4y5whizwxjTYIwpNsbc7HtenzPxC2PMWGPMi8aYCmNMuTHmeWNMuq/trN/L9L1NumOM+V9jzBZjTIsx5sXT2gb1uytUf7cpQQys+4DlwCxgNrACuCeoEclwEwaUAO8BEoAbgMeNMZf42p8EUoDxeD9fNxpjru/y+t7aRbr6FpB/2nP6jIlfGGMuBX4MfBnv77PZwGpfsz5n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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "#Test Results Plot: Old method, wrong list length values (keep this one for reference)\n",
+ "\n",
+ "import numpy as np\n",
+ "import matplotlib.pyplot as plt\n",
+ "import scipy.stats as stats\n",
+ "\n",
+ "list_length = [10.0, 20.0, 30.0, 40.0, 50.0, 60.0, 70.0, 80.0, 90.0, 100.0, 200.0, 400.0, 600.0, 800.0, 1000.0]\n",
+ "list_length_14 = [10.0, 20.0, 30.0, 40.0, 50.0, 60.0, 70.0, 80.0, 90.0, 100.0, 200.0, 400.0, 600.0, 800.0]\n",
+ "wconfig_simple_time_dask = [20.04, 40.09, 60.14, 80.2, 100.22, 120.33, 140.41, 160.58, 180.53, 200.69, 401.63, 806.12, 1212.43, 1620.79, 2030.84]\n",
+ "wconfig_time_dask_1 = [20.05, 40.1, 60.18, 80.23, 100.33, 120.37, 140.45, 160.55, 180.73, 200.75, 402.51, 807.11, 1213.25, 1623.9, 2035.23]\n",
+ "wconfig_time_dask_2 = [10.04, 20.08, 30.13, 40.18, 50.24, 60.33, 70.36, 80.45, 90.59, 100.72, 201.98, 405.94, 612.34, 822.1, 1033.48]\n",
+ "wconfig_time_dask_4 = [4.02, 10.07, 14.1, 20.15, 24.16, 30.25, 34.36, 40.36, 44.43, 50.56, 101.7, 206.35, 313.88, 422.7, 534.29]\n",
+ "wconfig_time_dask_8 = [4.04, 10.07, 14.1, 20.15, 24.22, 30.25, 34.32, 40.44, 44.43, 50.56, 50.51, 153.17, 258.51, 365.84, 475.74]\n",
+ "wconfig_time_dask_16 = [4.08, 4.13, 8.14, 10.21, 12.25, 16.39, 10.32, 20.46, 20.65, 41.56, 55.55, 101.94, 119.98, 171.2]\n",
+ "wconfig_time_dask_32 = [4.08, 4.12, 8.23, 10.22, 12.3, 16.36, 10.41, 20.46, 20.5, 41.46, 55.51, 101.71, 119.58, 171.69]\n",
+ "\n",
+ "img1 = plt.imshow\n",
+ "plt.scatter(list_length, wconfig_simple_time_dask)\n",
+ "plt.title('Wconfig_simple total time test on Jupyter')\n",
+ "plt.xlabel(\"List length\")\n",
+ "plt.ylabel(\"Total time (s)\")\n",
+ "#plt.show()\n",
+ "\n",
+ "img2 = plt.imshow\n",
+ "plt.plot(list_length, wconfig_time_dask_1, '.-')\n",
+ "plt.plot(list_length, wconfig_time_dask_2, '.-')\n",
+ "plt.plot(list_length, wconfig_time_dask_4, '.-')\n",
+ "plt.plot(list_length, wconfig_time_dask_8, '.-')\n",
+ "plt.plot(list_length_14, wconfig_time_dask_16, '.-')\n",
+ "plt.plot(list_length_14, wconfig_time_dask_32, '.-')\n",
+ "plt.legend([\"n = 1\", \"n = 2\", \"n = 4\", \"n = 8\", \"n = 16\", \"n = 32\"])\n",
+ "plt.title('Wconfig total time test on Jupyter')\n",
+ "plt.xlabel(\"List length\")\n",
+ "plt.ylabel(\"Total time (s)\")\n",
+ "plt.yscale(\"log\")\n",
+ "plt.rcParams['figure.figsize'] = [12, 8]\n",
+ "plt.rcParams['figure.dpi'] = 90\n",
+ "plt.show()"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "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.7.5"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/wfGenes_exe/pywrapper_wfgenes.py b/wfGenes_exe/pywrapper_wfgenes.py
index 3daa9b618c4acc77c3294e3d10241005c7d045c6..18d15ed6c737655cdbd2d8b67a97721db2d5187d 100644
--- a/wfGenes_exe/pywrapper_wfgenes.py
+++ b/wfGenes_exe/pywrapper_wfgenes.py
@@ -24,99 +24,101 @@ from initial_wfgenes import BasewfGenes
class PywrapperwfGens(BasewfGenes):
"""Generate Python wrapper for wconfig nodes"""
- def __init__(self, blueargs):
- #BasewfGenes.__init__(self, blueargs)
- self.pywrapper_simstack()
+ def __init__(self, wfgenes_init , blueargs):
+ #BasewfGenes.__init__(wfgenes_init, blueargs)
+ self.pywrapper_simstack(wfgenes_init)
- def pywrapper_simstack(self):
- wfg_task_wrapper = ""
- for i in range(self.routine_number):
- simstack_path = os.path.join(self.workflow_path, 'simstack')
- wano_path = os.path.join(simstack_path, 'wanos', self.routine_dir[i])
- if not os.path.exists(wano_path):
- os.makedirs(wano_path)
- self.wrapper_path = os.path.join(
- wano_path, self.routine_dir[i] + '_wrapper.py')
+ def pywrapper_simstack(self, wfgenes_init):
+
+ first_i = 0
+ for i in range(wfgenes_init.routine_number):
+ wfg_task_wrapper = ""
wfg_task_wrapper += "import yaml\n"
wfg_task_wrapper += "import numpy as np\n"
- for j in range(self.subroutine_number[i]):
- if self.func[i][j][0] != 'BUILTIN' and self.func_nodup[i][j] != 'duplicate':
- wfg_task_wrapper += 'from ' + str(self.func[i][j][0]) + ' import ' + str(self.func[i][j][1]) + '\n'
+ simstack_path = os.path.join(wfgenes_init.workflow_path, 'SimStack')
+ wano_path = os.path.join(simstack_path, 'wanos', wfgenes_init.routine_name[i])
+ if not os.path.exists(wano_path):
+ os.makedirs(wano_path)
+ wfgenes_init.wrapper_path = os.path.join(
+ wano_path, wfgenes_init.routine_name[i] + '_wrapper.py')
+ for j in range(wfgenes_init.subroutine_number[i]):
+ if wfgenes_init.func[i][j][0] != 'BUILTIN' and wfgenes_init.func_nodup[i][j] != 'duplicate' and wfgenes_init.func_nodup[i][j] != 'duplicate':
+ wfg_task_wrapper += 'from ' + str(wfgenes_init.func[i][j][0]) + ' import ' + str(wfgenes_init.func[i][j][1]) + '\n'
+ first_i +=1
wfg_task_wrapper += "\nif __name__ == '__main__':\n\n"
-
- for j in range(self.subroutine_number[i]):
- for k in range(len(self.inputs_nodup[i][j])):
- if self.inputs_nodup[i][j][k] != 'duplicate' and self.inputs_no_locdep[i][
- j][k] != 'inner_dependent' and self.inputs_links[i][j][k][0].isnumeric() == False:
+ for j in range(wfgenes_init.subroutine_number[i]):
+ for k in range(len(wfgenes_init.inputs_nodup[i][j])):
+ if wfgenes_init.inputs_nodup[i][j][k] != 'duplicate' and wfgenes_init.inputs_no_locdep[i][
+ j][k] != 'inner_dependent' and wfgenes_init.inputs_links[i][j][k][0].isnumeric() == False:
wfg_task_wrapper += '\n \t#Read Input #' + str(k + 1) + ' from subroutine #' + str(j + 1) + ' in routine #' + str(i) + '\n'
- wfg_task_wrapper += "\tyaml_stream = open('" + self.inputs[i][j][k] + ".yaml', 'r')\n"
- wfg_task_wrapper += "\t" + self.inputs[i][j][k] + " = yaml.load(yaml_stream, Loader=yaml.Loader)\n\n"
- if self.inputs_nodup[i][j][k] != 'duplicate' and self.inputs_no_locdep[i][j][k] != 'inner_dependent' and self.inputs_links[i][j][k][0].isnumeric():
+ wfg_task_wrapper += "\tyaml_stream = open('" + wfgenes_init.inputs[i][j][k] + ".yaml', 'r')\n"
+ wfg_task_wrapper += "\t" + wfgenes_init.inputs[i][j][k] + " = yaml.load(yaml_stream, Loader=yaml.Loader)\n\n"
+ if wfgenes_init.inputs_nodup[i][j][k] != 'duplicate' and wfgenes_init.inputs_no_locdep[i][j][k] != 'inner_dependent' and wfgenes_init.inputs_links[i][j][k][0].isnumeric():
wfg_task_wrapper += '\n \t#Read Input #' + str(k +1) + ' from subroutine #' + str(j +1) + ' in routine #' + str(i) + '\n'
- wfg_task_wrapper += "\tyaml_stream = open('" + self.inputs_locname[i][j][k] + ".yaml', 'r')\n"
- wfg_task_wrapper += "\t" + self.inputs_locname[i][j][k] + " = yaml.load(yaml_stream, Loader=yaml.Loader)\n\n"
+ wfg_task_wrapper += "\tyaml_stream = open('" + wfgenes_init.inputs_locname[i][j][k] + ".yaml', 'r')\n"
+ wfg_task_wrapper += "\t" + wfgenes_init.inputs_locname[i][j][k] + " = yaml.load(yaml_stream, Loader=yaml.Loader)\n\n"
- if self.func[i][j][0] != 'BUILTIN':
+ if wfgenes_init.func[i][j][0] != 'BUILTIN':
wfg_task_wrapper += '\n\t# Call subroutine #' + str(j + 1) + '\n'
wfg_task_wrapper += '\t'
- for k in range(len(self.outputs[i][j])):
- if k != len(self.outputs[i][j]) - 1:
- wfg_task_wrapper += self.outputs_locname[i][j][k] + ", "
+ for k in range(len(wfgenes_init.outputs[i][j])):
+ if k != len(wfgenes_init.outputs[i][j]) - 1:
+ wfg_task_wrapper += wfgenes_init.outputs_locname[i][j][k] + ", "
else:
- wfg_task_wrapper += self.outputs_locname[i][j][k] + " = "
- wfg_task_wrapper += self.func[i][j][1] + "("
- for k in range(len(self.inputs[i][j])):
+ wfg_task_wrapper += wfgenes_init.outputs_locname[i][j][k] + " = "
+ wfg_task_wrapper += wfgenes_init.func[i][j][1] + "("
+ for k in range(len(wfgenes_init.inputs[i][j])):
if k != len(
- self.inputs[i][j]) - 1 and self.inputs_no_locdep[i][j][k] != 'inner_dependent' and self.inputs_links[i][j][k][0].isnumeric() == False:
- wfg_task_wrapper += str(self.inputs[i][j][k]) + ', '
- elif k != len(self.inputs[i][j]) - 1 and (self.inputs_no_locdep[i][j][k] == 'inner_dependent' or self.inputs_links[i][j][k][0].isnumeric()):
- wfg_task_wrapper += str(self.inputs_locname[i][j][k]) + ', '
- elif k == len(self.inputs[i][j]) - 1 and self.inputs_no_locdep[i][j][k] != 'inner_dependent' and self.inputs_links[i][j][k][0].isnumeric() == False:
- wfg_task_wrapper += str(self.inputs[i][j][k]) + ")\n\n"
- elif k == len(self.inputs[i][j]) - 1 and (self.inputs_no_locdep[i][j][k] == 'inner_dependent' or self.inputs_links[i][j][k][0].isnumeric()):
- wfg_task_wrapper += str(self.inputs_locname[i][j][k]) + ")\n\n"
+ wfgenes_init.inputs[i][j]) - 1 and wfgenes_init.inputs_no_locdep[i][j][k] != 'inner_dependent' and wfgenes_init.inputs_links[i][j][k][0].isnumeric() == False:
+ wfg_task_wrapper += str(wfgenes_init.inputs[i][j][k]) + ', '
+ elif k != len(wfgenes_init.inputs[i][j]) - 1 and (wfgenes_init.inputs_no_locdep[i][j][k] == 'inner_dependent' or wfgenes_init.inputs_links[i][j][k][0].isnumeric()):
+ wfg_task_wrapper += str(wfgenes_init.inputs_locname[i][j][k]) + ', '
+ elif k == len(wfgenes_init.inputs[i][j]) - 1 and wfgenes_init.inputs_no_locdep[i][j][k] != 'inner_dependent' and wfgenes_init.inputs_links[i][j][k][0].isnumeric() == False:
+ wfg_task_wrapper += str(wfgenes_init.inputs[i][j][k]) + ")\n\n"
+ elif k == len(wfgenes_init.inputs[i][j]) - 1 and (wfgenes_init.inputs_no_locdep[i][j][k] == 'inner_dependent' or wfgenes_init.inputs_links[i][j][k][0].isnumeric()):
+ wfg_task_wrapper += str(wfgenes_init.inputs_locname[i][j][k]) + ")\n\n"
wfg_task_wrapper += "\n\t# Dump outputs into yaml files from subroutine #" + str(j + 1) + '\n'
- for k in range(len(self.outputs[i][j])):
+ for k in range(len(wfgenes_init.outputs[i][j])):
wfg_task_wrapper += '\n\t#Dump Output #' + str(k + 1) + ' from subroutine #' + str(j + 1) + ' in routine # ' + str(i) +'\n'
- wfg_task_wrapper += "\tfile=open('" + self.outputs_locname[i][j][k] + ".yaml', 'w')\n"
- wfg_task_wrapper += "\tyaml.dump(" + self.outputs_locname[i][j][k] + ", file, default_flow_style=False)\n"
+ wfg_task_wrapper += "\tfile=open('" + wfgenes_init.outputs_locname[i][j][k] + ".yaml', 'w')\n"
+ wfg_task_wrapper += "\tyaml.dump(" + wfgenes_init.outputs_locname[i][j][k] + ", file, default_flow_style=False)\n"
wfg_task_wrapper += "\tfile.close\n"
wfg_task_wrapper += "\t#End of subroutine #" + str(j + 1) + ' in routine # ' + str(i) + '\n'
- elif self.func[i][j][0] == 'BUILTIN' and self.func[i][j][1] == 'MERGE':
+ elif wfgenes_init.func[i][j][0] == 'BUILTIN' and wfgenes_init.func[i][j][1] == 'MERGE':
wfg_task_wrapper += "\t# Merge Multiple Dictionaries \n"
- for k in range(len(self.inputs[i][j])):
- if self.inputs_nodup[i][j][k] != 'duplicate' and self.inputs_no_locdep[i][
- j][k] != 'inner_dependent' and self.inputs_links[i][j][k][0].isnumeric() == False:
- wfg_task_wrapper += "if isinstance(" + self.inputs[i][j][k] + ", np.number):\n"
- wfg_task_wrapper += '\t' + self.inputs_locname[i][j][k] + ' = dict(' + self.inputs_locname[i][j][k] + '= float(' + self.inputs[i][j][k] + ')) \n'
- elif self.inputs_nodup[i][j][k] != 'duplicate' and (self.inputs_no_locdep[i][j][k] == 'inner_dependent' or self.inputs_links[i][j][k][0].isnumeric()):
- wfg_task_wrapper += "if isinstance(" + self.inputs_locname[i][j][k] + ", np.number):\n"
- wfg_task_wrapper += '\t' + self.inputs_locname[i][j][k] + ' = dict(' + self.inputs_locname[i][j][k] + '= float(' + self.inputs_locname[i][j][k] + ')) \n'
- if self.inputs_nodup[i][j][k] != 'duplicate' and self.inputs_no_locdep[i][
- j][k] != 'inner_dependent' and self.inputs_links[i][j][k][0].isnumeric() == False:
+ for k in range(len(wfgenes_init.inputs[i][j])):
+ if wfgenes_init.inputs_nodup[i][j][k] != 'duplicate' and wfgenes_init.inputs_no_locdep[i][
+ j][k] != 'inner_dependent' and wfgenes_init.inputs_links[i][j][k][0].isnumeric() == False:
+ wfg_task_wrapper += "if isinstance(" + wfgenes_init.inputs[i][j][k] + ", np.number):\n"
+ wfg_task_wrapper += '\t' + wfgenes_init.inputs_locname[i][j][k] + ' = dict(' + wfgenes_init.inputs_locname[i][j][k] + '= float(' + wfgenes_init.inputs[i][j][k] + ')) \n'
+ elif wfgenes_init.inputs_nodup[i][j][k] != 'duplicate' and (wfgenes_init.inputs_no_locdep[i][j][k] == 'inner_dependent' or wfgenes_init.inputs_links[i][j][k][0].isnumeric()):
+ wfg_task_wrapper += "if isinstance(" + wfgenes_init.inputs_locname[i][j][k] + ", np.number):\n"
+ wfg_task_wrapper += '\t' + wfgenes_init.inputs_locname[i][j][k] + ' = dict(' + wfgenes_init.inputs_locname[i][j][k] + '= float(' + wfgenes_init.inputs_locname[i][j][k] + ')) \n'
+ if wfgenes_init.inputs_nodup[i][j][k] != 'duplicate' and wfgenes_init.inputs_no_locdep[i][
+ j][k] != 'inner_dependent' and wfgenes_init.inputs_links[i][j][k][0].isnumeric() == False:
wfg_task_wrapper += "else:\n"
- wfg_task_wrapper += '\t' + self.inputs_locname[i][j][k] + ' = dict(' + self.inputs_locname[i][j][k] + '= ' + self.inputs[i][j][k] + ') \n\n'
- elif self.inputs_nodup[i][j][k] != 'duplicate' and (self.inputs_no_locdep[i][j][k] == 'inner_dependent' or self.inputs_links[i][j][k][0].isnumeric()):
+ wfg_task_wrapper += '\t' + wfgenes_init.inputs_locname[i][j][k] + ' = dict(' + wfgenes_init.inputs_locname[i][j][k] + '= ' + wfgenes_init.inputs[i][j][k] + ') \n\n'
+ elif wfgenes_init.inputs_nodup[i][j][k] != 'duplicate' and (wfgenes_init.inputs_no_locdep[i][j][k] == 'inner_dependent' or wfgenes_init.inputs_links[i][j][k][0].isnumeric()):
wfg_task_wrapper += "else:\n"
- wfg_task_wrapper += '\t' + self.inputs_locname[i][j][k] + ' = dict(' + self.inputs_locname[i][j][k] + '= ' + self.inputs_locname[i][j][k] + ') \n\n'
-
- wfg_task_wrapper += '\t' + self.outputs_locname[i][j][0] + '={'
- for k in range(len(self.inputs[i][j])):
- if self.inputs_nodup[i][j][k] != 'duplicate':
- if k != len(self.inputs[i][j]) - 1:
- wfg_task_wrapper += '**' + self.inputs_locname[i][j][k] + ','
- elif k == len(self.inputs[i][j]) - 1:
- wfg_task_wrapper += '**' + self.inputs_locname[i][j][k] + '}'
+ wfg_task_wrapper += '\t' + wfgenes_init.inputs_locname[i][j][k] + ' = dict(' + wfgenes_init.inputs_locname[i][j][k] + '= ' + wfgenes_init.inputs_locname[i][j][k] + ') \n\n'
+
+ wfg_task_wrapper += '\t' + wfgenes_init.outputs_locname[i][j][0] + '={'
+ for k in range(len(wfgenes_init.inputs[i][j])):
+ if wfgenes_init.inputs_nodup[i][j][k] != 'duplicate':
+ if k != len(wfgenes_init.inputs[i][j]) - 1:
+ wfg_task_wrapper += '**' + wfgenes_init.inputs_locname[i][j][k] + ','
+ elif k == len(wfgenes_init.inputs[i][j]) - 1:
+ wfg_task_wrapper += '**' + wfgenes_init.inputs_locname[i][j][k] + '}'
wfg_task_wrapper += '\n\n\t#Dump Output from Merged Dictionaries #\n'
- wfg_task_wrapper += "\tfile=open('" + self.outputs_locname[i][j][0] + ".yaml', 'w')\n"
- wfg_task_wrapper += "\tyaml.dump(" + self.outputs_locname[i][j][0] + ", file, default_flow_style=False)\n"
+ wfg_task_wrapper += "\tfile=open('" + wfgenes_init.outputs_locname[i][j][0] + ".yaml', 'w')\n"
+ wfg_task_wrapper += "\tyaml.dump(" + wfgenes_init.outputs_locname[i][j][0] + ", file, default_flow_style=False)\n"
wfg_task_wrapper += "\tfile.close()\n"
wfg_task_wrapper += "\t#End of subroutine #" + str(j + 1) + ' in routine # ' + str(i) + '\n'
- with open(self.wrapper_path, 'w') as file:
- file.write(wfg_task_wrapper)
+ with open(wfgenes_init.wrapper_path, 'w') as file:
+ file.write(wfg_task_wrapper)
diff --git a/wfGenes_exe/setenv cluster.sh b/wfGenes_exe/setenv cluster.sh
new file mode 100644
index 0000000000000000000000000000000000000000..623fbe4194aa4376d313a2e62c1a8b22ddc1c556
--- /dev/null
+++ b/wfGenes_exe/setenv cluster.sh
@@ -0,0 +1,14 @@
+#!/bin/bash/ -ex
+#module purge
+conda activate myenv
+#module load chem/turbomole
+#module load chem/vasp/
+#export VASP_COMMAND="$DO_PARALLEL $VASPMPI"
+#export ASE_VASP_VDW=$VASP_HOME/bin
+export PYTHONPATH=/home/mehdi/work/gitscc/workflow_generator/intro_examples/multihith/lib:$PYTHONPATH
+export PYTHONPATH=/pfs/data5/home/kit/scc/th7356/work/GITLAB/workflow_generator/wfGenes_exe/:$PYTHONPATH
+export PYTHONPATH=/pfs/data5/home/kit/scc/th7356/work/GITLAB/workflow_generator/intro_examples/foreach_sample/lib/:$PYTHONPATH
+
+#unset I_MPI_HYDRA_BOOTSTRAP I_MPI_HYDRA_RMK I_MPI_HYDRA_BRANCH_COUNT
+#export I_MPI_HYDRA_BOOTSTRAP=ssh
+
diff --git a/wfGenes_exe/setenv.sh b/wfGenes_exe/setenv.sh
index 1921326c24cf77b1c51c4ff686ea6c2b306aae37..96bf058688da942404583019b8023469929fde1e 100644
--- a/wfGenes_exe/setenv.sh
+++ b/wfGenes_exe/setenv.sh
@@ -1,6 +1,6 @@
#!/bin/bash/ -ex
#module purge
-conda activate myenv
+conda activate blueglue
#module load chem/turbomole
#module load chem/vasp/
#export VASP_COMMAND="$DO_PARALLEL $VASPMPI"
diff --git a/wfGenes_exe/setenv_cluster.sh b/wfGenes_exe/setenv_cluster.sh
index e9da57fd52275e24842ed7ab0b0d03f2d1e5efd7..6c148e314553d6f789600cc372076427aa7b4343 100644
--- a/wfGenes_exe/setenv_cluster.sh
+++ b/wfGenes_exe/setenv_cluster.sh
@@ -9,6 +9,7 @@ export PYTHONPATH=/home/hk-project-test-sdlmat/th7356/work/gitlab/wfgenes/intro_
export PYTHONPATH=/home/hk-project-test-sdlmat/th7356/work/gitlab/wfgenes/wfGenes_exe/:$PYTHONPATH
export PYTHONPATH=/home/hk-project-test-sdlmat/th7356/work/gitlab/wfgenes/intro_examples/foreach_sample/lib/:$PYTHONPATH
export PYTHONPATH=/home/hk-project-test-sdlmat/th7356/work/gitlab/wfgenes/intro_examples/rgg/lib:$PYTHONPATH
+export PYTHONPATH=/home/hk-project-test-sdlmat/th7356/work/gitlab/wfgenes/intro_examples/simple_workflow/lib:$PYTHONPATH
export PYTHONPATH=/home/hk-project-test-sdlmat/th7356/work/gitlab/wfgenes/intro_examples/rgg/wfGenes_output/node_1001_1105/Dask/:$PYTHONPATH
export PYTHONPATH=/home/hk-project-test-sdlmat/th7356/work/gitlab/wfgenes/intro_examples/rgg/wfGenes_output/node_1001_1105/Parsl/:$PYTHONPATH
export PYTHONPATH=/home/hk-project-test-sdlmat/th7356/work/gitlab/wfgenes/intro_examples/rgg/wfGenes_output/node_501_592/Dask/:$PYTHONPATH
@@ -16,6 +17,7 @@ export PYTHONPATH=/home/hk-project-test-sdlmat/th7356/work/gitlab/wfgenes/intro_
+
#unset I_MPI_HYDRA_BOOTSTRAP I_MPI_HYDRA_RMK I_MPI_HYDRA_BRANCH_COUNT
#export I_MPI_HYDRA_BOOTSTRAP=ssh
diff --git a/wfGenes_exe/simstack_wfgenes.py b/wfGenes_exe/simstack_wfgenes.py
index c4b0a486d2fc04a6788a37b23091bbc62e2c51bc..02a967e78a9bc9d4006445f6bfdd5b737e67d036 100644
--- a/wfGenes_exe/simstack_wfgenes.py
+++ b/wfGenes_exe/simstack_wfgenes.py
@@ -3,7 +3,6 @@ import os
import os.path
from copy import deepcopy
from collections import OrderedDict
-import shutil
import argparse
import json
import xmlschema
@@ -29,13 +28,13 @@ class SimstackwfGenes(BasewfGenes):
xml_path = os.path.join(
self.simstack_path,
'wanos',
- self.routine_dir[i],
- self.routine_dir[i] +
+ self.routine_name[i],
+ self.routine_name[i] +
'.xml')
# Strat xml file generation
file = open(xml_path, 'w')
file.write('\n')
- file.write(" \n")
+ file.write(" \n")
for j in range(self.subroutine_number[i]):
for k in range(len(self.inputs_nodup[i][j])):
@@ -54,7 +53,7 @@ class SimstackwfGenes(BasewfGenes):
elif self.inputs_nodup[i][j][k] != \
'duplicate' and self.inputs_no_locdep[i][j][k] != 'inner_dependent'\
and self.inputs_links[i][j][k][0].isnumeric():
- path_dependent_output = os.path.join(self.routine_dir[int(self.inputs_links[i][j][k][0])], self.outputs_locname[int(
+ path_dependent_output = os.path.join(self.routine_name[int(self.inputs_links[i][j][k][0])], self.outputs_locname[int(
self.inputs_links[i][j][k][0])][int(self.inputs_links[i][j][k][1])][int(self.inputs_links[i][j][k][2])] + '.yaml')
file.write(
"\t" +
- self.routine_dir[i] +
+ self.routine_name[i] +
"_wrapper.py\n")
file.write(
"\tsetenv.sh\n")
@@ -111,19 +110,19 @@ class SimstackwfGenes(BasewfGenes):
for i in range(self.routine_number):
file.write(
"\t \n")
file.write(' \n')
for i in range(self.routine_number):
run_python_path = os.path.join(
- self.simstack_path, 'wanos', self.routine_dir[i], 'run_python.sh')
+ self.simstack_path, 'wanos', self.routine_name[i], 'run_python.sh')
file = open(run_python_path, 'w')
file.write("#!/bin/bash/ -ex \n")
file.write("source setenv.sh \n")
diff --git a/wfGenes_exe/wgenerator.py b/wfGenes_exe/wgenerator.py
index ec272ac0241e162c87f8f4c7a2a2dc1b8dea674d..d12a0c995aee63991b7fdc1af8e366dc39f70e89 100644
--- a/wfGenes_exe/wgenerator.py
+++ b/wfGenes_exe/wgenerator.py
@@ -12,7 +12,6 @@ import os.path
import sys
from copy import deepcopy
from collections import OrderedDict
-import shutil
import argparse
import json
import xmlschema
@@ -138,14 +137,15 @@ def run_wfgenes(args):
print('unexpected error:'+error.args[0])
else:
- #wfgenes_init.wconfig_checker('clean')
- #try:
- # graphics = DotwfGenes(wfgenes_init)
- # png = graphics.png_file
- #except Exception as error:
- # print('unexpected error:'+error.args[0])
+ try:
+ graphics = DotwfGenes(wfgenes_init)
+ png = graphics.png_file
+ except Exception as error:
+ print('unexpected error:'+error.args[0])
try :
- if args['wms'] == 'FireWorks' or args['wms'] == 'all':
+ if args['wms'] == 'FireWorks' or args['wms'] == 'all':
+ graphics = DotwfGenes(wfgenes_init)
+ png = graphics.png_file
fireworks_dict=FireworkwfGenes(wfgenes_init)
print('wfGenes succeeded with model generation using FireWorks')
except FileNotFoundError as error:
@@ -157,15 +157,19 @@ def run_wfgenes(args):
print('unexpected error:'+ error.args[0])
try:
if args['wms'] == 'SimStack' or args['wms'] == 'all':
+ graphics = DotwfGenes(wfgenes_init)
+ png = graphics.png_file
simstack_wrapper = PywrapperwfGens(wfgenes_init, args)
test2=SimstackwfGenes(args)
print('wfGenes succeeded with model generation using SimStack')
-
+
except Exception as error:
print('wfGenes failed with model generation using SimStack')
print('unexpected error:'+error.args[0])
try:
if args['wms'] == 'Dask' or args['wms'] == 'all':
+ graphics = DotwfGenes(wfgenes_init)
+ png = graphics.png_file
dask_wf = DaskwfGenes(wfgenes_init)
print('wfGenes succeeded with model generation using Dask')
except Exception as error:
@@ -173,6 +177,8 @@ def run_wfgenes(args):
print('unexpected error:'+ error.args[0])
try:
if args['wms'] == 'Parsl' or args['wms'] == 'all':
+ graphics = DotwfGenes(wfgenes_init)
+ png = graphics.png_file
parsl_wf= ParslwfGenes(wfgenes_init)
print('wfGenes succeeded with model generation using Parsl')
except Exception as error: