From abdbe0d0806fa722526ae7c2c1efb7ca2e54ab06 Mon Sep 17 00:00:00 2001 From: Yuriel Date: Thu, 7 Dec 2023 23:12:47 +0100 Subject: [PATCH 1/7] example: add pid example --- examples/notebook/pid.py | 57 ++++++++++++++++ examples/notebook/rtbot_pid.ipynb | 107 ++++++++++++++++++++++++++++++ 2 files changed, 164 insertions(+) create mode 100644 examples/notebook/pid.py create mode 100644 examples/notebook/rtbot_pid.ipynb diff --git a/examples/notebook/pid.py b/examples/notebook/pid.py new file mode 100644 index 00000000..179f5171 --- /dev/null +++ b/examples/notebook/pid.py @@ -0,0 +1,57 @@ +# This Python file uses the following encoding: utf-8 + +import numpy as np +import matplotlib.pyplot as plt + +class MySystem: + def __init__(self, x, y, angle, dt=0.1): + self.x, self.y, self.angle, self.dt = x, y, angle, dt + + def evolve(self): + self.x += np.cos(self.angle) * self.dt + self.y += np.sin(self.angle) * self.dt + + def update(self, d_angle): + self.angle += d_angle * np.pi / 180 + if self.angle>np.pi/4: + self.angle=np.pi/4 + if self.angle<-np.pi/4: + self.angle=-np.pi/4 + + def error(self): + return self.y + +class Pid: + error0=0 + integral=0 + + def __init__(self, ke, kd, ki, dt=0.1): + self.ke, self.kd, self.ki, self.dt = ke, kd, ki, dt + + def correction(self, error): + d_error = (error - self.error0) / self.dt + self.error0 = error + self.integral += error * self.dt + return - (self.ke * error + self.kd * d_error + self.ki * self.integral) + + +def test_pid(ke, kd, ki): + sys = MySystem(x=0, y=1, angle=0) + pid = Pid(ke, kd, ki) + out = [] + for i in range(2000): + sys.evolve() + correction = pid.correction(sys.error()) + sys.update(correction) + out += [[sys.x, sys.y, sys.angle]] + out=np.array(out) + plt.plot(out[:,0], out[:,1]) + plt.axhline(y=0, color='gray', linestyle='--') + plt.show() + + +if __name__ == "__main__": + #test_pid(1,0,0) + #test_pid(1,1,0) + test_pid(1,1,1/10) + diff --git a/examples/notebook/rtbot_pid.ipynb b/examples/notebook/rtbot_pid.ipynb new file mode 100644 index 00000000..f183eb33 --- /dev/null +++ b/examples/notebook/rtbot_pid.ipynb @@ -0,0 +1,107 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 13, + "id": "eb81d339-af6b-4eaa-b84a-8c5af530533a", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "class MySystem:\n", + " def __init__(self, x, y, angle, dt=0.1):\n", + " self.x, self.y, self.angle, self.dt = x, y, angle, dt\n", + "\n", + " def evolve(self):\n", + " self.x += np.cos(self.angle) * self.dt\n", + " self.y += np.sin(self.angle) * self.dt\n", + "\n", + " def update(self, d_angle):\n", + " self.angle += d_angle * np.pi / 180\n", + "\n", + " def error(self):\n", + " return self.y\n", + "\n", + "class Pid:\n", + " error0=0\n", + " integral=0\n", + "\n", + " def __init__(self, ke, kd, ki, dt=0.1):\n", + " self.ke, self.kd, self.ki, self.dt = ke, kd, ki, dt\n", + "\n", + " def correction(self, error):\n", + " d_error = (error - self.error0) / self.dt\n", + " self.error0 = error\n", + " self.integral += error * self.dt\n", + " return - (self.ke * error + self.kd * d_error + self.ki * self.integral)\n", + "\n", + "\n", + "def test_pid(ke, kd, ki):\n", + " sys = MySystem(x=0, y=1, angle=0)\n", + " pid = Pid(ke, kd, ki)\n", + " out = []\n", + " for i in range(2000):\n", + " sys.evolve()\n", + " correction = pid.correction(sys.error())\n", + " sys.update(correction)\n", + " out += [[sys.x, sys.y, sys.angle]]\n", + " out=np.array(out)\n", + " plt.plot(out[:,0], out[:,1])\n", + " plt.axhline(y=0, color='gray', linestyle='--')\n", + " plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "ce8189e4-d4ee-4c73-a9cb-0344bc030546", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "test_pid(ke=1, kd=1, ki=1/10)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3a9f6ec7-529c-4fa4-b547-fd0ef6d6d517", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.5" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From 51db77d44747200f4763a2492f60f5dc927e8129 Mon Sep 17 00:00:00 2001 From: Yuriel Date: Sat, 9 Dec 2023 19:20:54 +0100 Subject: [PATCH 2/7] add jsonschema --- libs/api/include/rtbot/jsonschema.hpp | 788 ++++++++++++++++++++++++++ 1 file changed, 788 insertions(+) create mode 100755 libs/api/include/rtbot/jsonschema.hpp diff --git a/libs/api/include/rtbot/jsonschema.hpp b/libs/api/include/rtbot/jsonschema.hpp new file mode 100755 index 00000000..5198c4b2 --- /dev/null +++ b/libs/api/include/rtbot/jsonschema.hpp @@ -0,0 +1,788 @@ +#ifndef RTBOT_JSONSCHEMA_H_ +#define RTBOT_JSONSCHEMA_H_ + +#include + +using nlohmann::json; + +static json rtbot_schema = "" +"{" +" \"$id\": \"root\"," +" \"$schema\": \"http://json-schema.org/draft-07/schema#\"," +" \"type\": \"object\"," +" \"properties\": {" +" \"title\": {" +" \"type\": \"string\"," +" \"examples\": [" +"\"Peak detector\"" +" ]" +" }," +" \"description\": {" +" \"type\": \"string\"," +" \"examples\": [" +"\"This is a program to detect peaks in ECG...\"" +" ]" +" }," +" \"date\": {" +" \"type\": \"string\"," +" \"format\": \"date\"" +" }," +" \"apiVersion\": {" +" \"enum\": [" +"\"v1\"" +" ]," +" \"default\": \"v1\"" +" }," +" \"author\": {" +" \"type\": \"string\"," +" \"examples\": [" +"\"Someone \"" +" ]" +" }," +" \"license\": {" +" \"type\": \"string\"," +" \"examples\": [" +"\"MIT\"," +"\"private\"" +" ]" +" }," +" \"entryOperator\": {" +" \"type\": \"string\"," +" \"examples\": [" +"\"in1\"," +"\"join1\"" +" ]" +" }," +" \"output\": {" +" \"type\": \"object\"," +" \"patternProperties\": {" +"\"^[A-Z0-9a-t_-]+$\": {" +"\"type\": \"array\"," +"\"items\": {" +"\"type\": \"string\"," +"\"examples\": [" +"\"o1\"," +"\"o2\"" +"]" +"}" +"}" +" }," +" \"examples\": [" +"\"join1\"," +"\"join2\"" +" ]" +" }," +" \"operators\": {" +" \"type\": \"array\"," +" \"items\": {" +"\"oneOf\": [" +"{" +"\"type\": \"object\"," +"\"properties\": {" +"\"id\": {" +"\"type\": \"string\"," +"\"description\": \"The id of the operator\"" +"}," +"\"value\": {" +"\"type\": \"number\"," +"\"description\": \"The constant to add to the incoming messages.\"" +"}," +"\"type\": {" +"\"enum\": [" +"\"Add\"" +"]" +"}" +"}," +"\"required\": [" +"\"type\"," +"\"id\"," +"\"value\"" +"]" +"}," +"{" +"\"type\": \"object\"," +"\"properties\": {" +"\"id\": {" +"\"type\": \"string\"," +"\"description\": \"The id of the operator\"" +"}," +"\"type\": {" +"\"enum\": [" +"\"And\"" +"]" +"}" +"}," +"\"required\": [" +"\"type\"," +"\"id\"" +"]" +"}," +"{" +"\"type\": \"object\"," +"\"properties\": {" +"\"id\": {" +"\"type\": \"string\"," +"\"description\": \"The id of the operator\"" +"}," +"\"coeff\": {" +"\"type\": \"array\"," +"\"description\": \"The list of auto-regression coefficients.\"," +"\"examples\": [" +"[" +"1," +"2" +"]" +"]," +"\"minItems\": 1," +"\"items\": {" +"\"type\": \"number\"" +"}" +"}," +"\"type\": {" +"\"enum\": [" +"\"AutoRegressive\"" +"]" +"}" +"}," +"\"required\": [" +"\"type\"," +"\"id\"," +"\"coeff\"" +"]" +"}," +"{" +"\"type\": \"object\"," +"\"properties\": {" +"\"id\": {" +"\"type\": \"string\"," +"\"description\": \"The id of the operator\"" +"}," +"\"value\": {" +"\"type\": \"number\"," +"\"examples\": [" +"3.14," +"2.718" +"]," +"\"description\": \"The constant to emit when required.\"" +"}," +"\"type\": {" +"\"enum\": [" +"\"Constant\"" +"]" +"}" +"}," +"\"required\": [" +"\"type\"," +"\"id\"," +"\"value\"" +"]" +"}," +"{" +"\"type\": \"object\"," +"\"properties\": {" +"\"id\": {" +"\"type\": \"string\"," +"\"description\": \"The id of the operator\"" +"}," +"\"type\": {" +"\"enum\": [" +"\"Count\"" +"]" +"}" +"}," +"\"required\": [" +"\"type\"," +"\"id\"" +"]" +"}," +"{" +"\"type\": \"object\"," +"\"properties\": {" +"\"id\": {" +"\"type\": \"string\"," +"\"description\": \"The id of the operator\"" +"}," +"\"type\": {" +"\"enum\": [" +"\"CumulativeSum\"" +"]" +"}" +"}," +"\"required\": [" +"\"type\"," +"\"id\"" +"]" +"}," +"{" +"\"type\": \"object\"," +"\"properties\": {" +"\"id\": {" +"\"type\": \"string\"," +"\"description\": \"The id of the operator\"" +"}," +"\"type\": {" +"\"enum\": [" +"\"Difference\"" +"]" +"}" +"}," +"\"required\": [" +"\"type\"," +"\"id\"" +"]" +"}," +"{" +"\"type\": \"object\"," +"\"properties\": {" +"\"id\": {" +"\"type\": \"string\"," +"\"description\": \"The id of the operator\"" +"}," +"\"type\": {" +"\"enum\": [" +"\"Division\"" +"]" +"}" +"}," +"\"required\": [" +"\"type\"," +"\"id\"" +"]" +"}," +"{" +"\"type\": \"object\"," +"\"properties\": {" +"\"id\": {" +"\"type\": \"string\"," +"\"description\": \"The id of the operator\"" +"}," +"\"value\": {" +"\"type\": \"integer\"," +"\"description\": \"The reference value\"" +"}," +"\"type\": {" +"\"enum\": [" +"\"EqualTo\"" +"]" +"}" +"}," +"\"required\": [" +"\"type\"," +"\"id\"," +"\"value\"" +"]" +"}," +"{" +"\"type\": \"object\"," +"\"properties\": {" +"\"id\": {" +"\"type\": \"string\"," +"\"description\": \"The id of the operator\"" +"}," +"\"coeff\": {" +"\"type\": \"array\"," +"\"examples\": [" +"[" +"1," +"0," +"-1" +"]" +"]," +"\"description\": \"The vector of coefficients to be combined with the buffered message values.\"," +"\"items\": {" +"\"type\": \"number\"" +"}" +"}," +"\"type\": {" +"\"enum\": [" +"\"FiniteImpulseResponse\"" +"]" +"}" +"}," +"\"required\": [" +"\"type\"," +"\"id\"," +"\"coeff\"" +"]" +"}," +"{" +"\"type\": \"object\"," +"\"properties\": {" +"\"id\": {" +"\"type\": \"string\"," +"\"description\": \"The id of the operator\"" +"}," +"\"value\": {" +"\"type\": \"integer\"," +"\"description\": \"The reference value\"" +"}," +"\"type\": {" +"\"enum\": [" +"\"GreaterThan\"" +"]" +"}" +"}," +"\"required\": [" +"\"type\"," +"\"id\"," +"\"value\"" +"]" +"}," +"{" +"\"type\": \"object\"," +"\"properties\": {" +"\"id\": {" +"\"type\": \"string\"," +"\"description\": \"The id of the operator\"" +"}," +"\"type\": {" +"\"enum\": [" +"\"Identity\"" +"]" +"}" +"}," +"\"required\": [" +"\"type\"," +"\"id\"" +"]" +"}," +"{" +"\"type\": \"object\"," +"\"properties\": {" +"\"id\": {" +"\"type\": \"string\"," +"\"description\": \"The id of the operator\"" +"}," +"\"value\": {" +"\"type\": \"integer\"," +"\"description\": \"The reference value\"" +"}," +"\"type\": {" +"\"enum\": [" +"\"LessThan\"" +"]" +"}" +"}," +"\"required\": [" +"\"type\"," +"\"id\"," +"\"value\"" +"]" +"}," +"{" +"\"type\": \"object\"," +"\"properties\": {" +"\"id\": {" +"\"type\": \"string\"," +"\"description\": \"The id of the operator\"" +"}," +"\"coeff\": {" +"\"type\": \"array\"," +"\"description\": \"The list of coefficients.\"," +"\"minItems\": 2," +"\"items\": {" +"\"type\": \"number\"" +"}" +"}," +"\"type\": {" +"\"enum\": [" +"\"Linear\"" +"]" +"}" +"}," +"\"required\": [" +"\"type\"," +"\"id\"" +"]" +"}," +"{" +"\"type\": \"object\"," +"\"properties\": {" +"\"id\": {" +"\"type\": \"string\"," +"\"description\": \"The id of the operator\"" +"}," +"\"type\": {" +"\"enum\": [" +"\"Minus\"" +"]" +"}" +"}," +"\"required\": [" +"\"type\"," +"\"id\"" +"]" +"}," +"{" +"\"type\": \"object\"," +"\"properties\": {" +"\"id\": {" +"\"type\": \"string\"," +"\"description\": \"The id of the operator\"" +"}," +"\"n\": {" +"\"type\": \"integer\"," +"\"description\": \"The window size, in grid steps, to be used in the computation.\"" +"}," +"\"type\": {" +"\"enum\": [" +"\"MovingAverage\"" +"]" +"}" +"}," +"\"required\": [" +"\"type\"," +"\"id\"," +"\"n\"" +"]" +"}," +"{" +"\"type\": \"object\"," +"\"properties\": {" +"\"id\": {" +"\"type\": \"string\"," +"\"description\": \"The id of the operator\"" +"}," +"\"type\": {" +"\"enum\": [" +"\"Multiplication\"" +"]" +"}" +"}," +"\"required\": [" +"\"type\"," +"\"id\"" +"]" +"}," +"{" +"\"type\": \"object\"," +"\"properties\": {" +"\"id\": {" +"\"type\": \"string\"," +"\"description\": \"The id of the operator\"" +"}," +"\"type\": {" +"\"enum\": [" +"\"Or\"" +"]" +"}" +"}," +"\"required\": [" +"\"type\"," +"\"id\"" +"]" +"}," +"{" +"\"type\": \"object\"," +"\"properties\": {" +"\"id\": {" +"\"type\": \"string\"," +"\"description\": \"The id of the operator\"" +"}," +"\"n\": {" +"\"type\": \"integer\"," +"\"description\": \"The window size, in grid steps, to be used in the computation.\"" +"}," +"\"type\": {" +"\"enum\": [" +"\"PeakDetector\"" +"]" +"}" +"}," +"\"required\": [" +"\"type\"," +"\"id\"," +"\"n\"" +"]" +"}," +"{" +"\"type\": \"object\"," +"\"properties\": {" +"\"id\": {" +"\"type\": \"string\"," +"\"description\": \"The id of the operator\"" +"}," +"\"type\": {" +"\"enum\": [" +"\"Plus\"" +"]" +"}" +"}," +"\"required\": [" +"\"type\"," +"\"id\"" +"]" +"}," +"{" +"\"type\": \"object\"," +"\"properties\": {" +"\"id\": {" +"\"type\": \"string\"," +"\"description\": \"The id of the operator\"" +"}," +"\"value\": {" +"\"type\": \"number\"," +"\"description\": \"The exponent.\"" +"}," +"\"type\": {" +"\"enum\": [" +"\"Power\"" +"]" +"}" +"}," +"\"required\": [" +"\"type\"," +"\"id\"," +"\"value\"" +"]" +"}," +"{" +"\"type\": \"object\"," +"\"properties\": {" +"\"id\": {" +"\"type\": \"string\"," +"\"description\": \"The id of the operator\"" +"}," +"\"value\": {" +"\"type\": \"number\"," +"\"description\": \"The factor to use to scale the messages.\"" +"}," +"\"type\": {" +"\"enum\": [" +"\"Scale\"" +"]" +"}" +"}," +"\"required\": [" +"\"type\"," +"\"id\"," +"\"value\"" +"]" +"}," +"{" +"\"type\": \"object\"," +"\"properties\": {" +"\"id\": {" +"\"type\": \"string\"," +"\"description\": \"The id of the operator\"" +"}," +"\"n\": {" +"\"type\": \"number\"," +"\"description\": \"The number of grid steps to use to compute the standard deviation.\"" +"}," +"\"type\": {" +"\"enum\": [" +"\"StandardDeviation\"" +"]" +"}" +"}," +"\"required\": [" +"\"type\"," +"\"id\"," +"\"n\"" +"]" +"}," +"{" +"\"type\": \"object\"," +"\"properties\": {" +"\"id\": {" +"\"type\": \"string\"," +"\"description\": \"The id of the operator\"" +"}," +"\"dt\": {" +"\"type\": \"integer\"," +"\"default\": 1," +"\"minimum\": 1," +"\"description\": \"The constant that defines the time grid.\"" +"}," +"\"times\": {" +"\"type\": \"integer\"," +"\"default\": 1," +"\"description\": \"The multiplier to apppy.\"" +"}," +"\"type\": {" +"\"enum\": [" +"\"TimeShift\"" +"]" +"}" +"}," +"\"required\": [" +"\"type\"," +"\"id\"" +"]" +"}," +"{" +"\"type\": \"object\"," +"\"properties\": {" +"\"id\": {" +"\"type\": \"string\"," +"\"description\": \"The id of the operator\"" +"}," +"\"value\": {" +"\"type\": \"number\"," +"\"description\": \"The default value of the variable\"," +"\"default\": 0" +"}," +"\"type\": {" +"\"enum\": [" +"\"Variable\"" +"]" +"}" +"}," +"\"required\": [" +"\"type\"," +"\"id\"" +"]" +"}," +"{" +"\"type\": \"object\"," +"\"properties\": {" +"\"id\": {" +"\"type\": \"string\"," +"\"description\": \"The id of the operator.\"," +"\"examples\": [" +"\"demul1\"" +"]" +"}," +"\"numOutputPorts\": {" +"\"type\": \"integer\"," +"\"description\": \"The number of output ports through which data will be routed.\"," +"\"default\": 1," +"\"minimum\": 1," +"\"examples\": [" +"2" +"]" +"}," +"\"type\": {" +"\"enum\": [" +"\"Demultiplexer\"" +"]" +"}" +"}," +"\"required\": [" +"\"type\"," +"\"id\"" +"]" +"}," +"{" +"\"type\": \"object\"," +"\"properties\": {" +"\"id\": {" +"\"type\": \"string\"," +"\"description\": \"The id of the operator\"" +"}," +"\"numPorts\": {" +"\"type\": \"integer\"," +"\"description\": \"The number of possible input ports. Useful if more than one input is taken.\"," +"\"default\": 1," +"\"minimum\": 1" +"}," +"\"type\": {" +"\"enum\": [" +"\"Input\"" +"]" +"}" +"}," +"\"required\": [" +"\"type\"," +"\"id\"" +"]" +"}," +"{" +"\"type\": \"object\"," +"\"properties\": {" +"\"id\": {" +"\"type\": \"string\"," +"\"description\": \"The id of the operator\"" +"}," +"\"numPorts\": {" +"\"type\": \"integer\"," +"\"description\": \"The number of input ports.\"," +"\"default\": 2," +"\"minimum\": 2" +"}," +"\"type\": {" +"\"enum\": [" +"\"Join\"" +"]" +"}" +"}," +"\"required\": [" +"\"type\"," +"\"id\"" +"]" +"}," +"{" +"\"type\": \"object\"," +"\"properties\": {" +"\"id\": {" +"\"type\": \"string\"," +"\"description\": \"The id of the operator\"" +"}," +"\"numPorts\": {" +"\"type\": \"integer\"," +"\"description\": \"The number of ports.\"," +"\"default\": 1," +"\"minimum\": 1" +"}," +"\"type\": {" +"\"enum\": [" +"\"Output\"" +"]" +"}" +"}," +"\"required\": [" +"\"type\"," +"\"id\"" +"]" +"}" +"]" +" }" +" }," +" \"connections\": {" +" \"type\": \"array\"," +" \"items\": {" +"\"type\": \"object\"," +"\"properties\": {" +"\"from\": {" +"\"type\": \"string\"," +"\"examples\": [" +"\"ma1\"" +"]" +"}," +"\"to\": {" +"\"type\": \"string\"," +"\"examples\": [" +"\"std\"" +"]" +"}," +"\"fromPort\": {" +"\"type\": \"string\"," +"\"examples\": [" +"\"o1\"" +"]" +"}," +"\"toPort\": {" +"\"type\": \"string\"," +"\"examples\": [" +"\"i1\"" +"]" +"}" +"}," +"\"required\": [" +"\"from\"," +"\"to\"" +"]," +"\"additionalProperties\": false" +" }" +" }" +" }," +" \"required\": [" +" \"operators\"," +" \"connections\"," +" \"entryOperator\"" +" ]," +" \"additionalProperties\": true" +"}" +""_json; +#endif \ No newline at end of file From 81c0c6516f6456fdbb6f8a0fa290e0b8897778ec Mon Sep 17 00:00:00 2001 From: Yuriel Date: Sat, 9 Dec 2023 19:21:08 +0100 Subject: [PATCH 3/7] fix cmake --- libs/CMakeLists.txt | 29 +++++++++++++++++++++++++++++ libs/wrappers/python/CMakeLists.txt | 8 ++++++-- 2 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 libs/CMakeLists.txt diff --git a/libs/CMakeLists.txt b/libs/CMakeLists.txt new file mode 100644 index 00000000..3f6c0793 --- /dev/null +++ b/libs/CMakeLists.txt @@ -0,0 +1,29 @@ +cmake_minimum_required(VERSION 3.15) +project(rtbot LANGUAGES CXX) + +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +add_subdirectory(core) +add_subdirectory(std) +add_subdirectory(finance) +add_subdirectory(api) + +#---------- external dependencies --------- + +include(../tools/external/external.cmake) + +#----------- tests ----------------- + +add_subdirectory(core/test) +add_subdirectory(std/test) +add_subdirectory(finance/test) +add_subdirectory(api/test) + +#---------- pybinding --------------- + +#add_subdirectory(wrappers/python) + +#----------- example ----------------- + +#add_subdirectory(example/c++) diff --git a/libs/wrappers/python/CMakeLists.txt b/libs/wrappers/python/CMakeLists.txt index 88c6d9a2..5199d2bd 100644 --- a/libs/wrappers/python/CMakeLists.txt +++ b/libs/wrappers/python/CMakeLists.txt @@ -1,4 +1,8 @@ -pybind11_add_module(${PROJECT_NAME}py +pybind11_add_module(${PROJECT_NAME}api rtbot.cpp ) -target_link_libraries(${PROJECT_NAME}py PUBLIC ${PROJECT_NAME}) + +target_link_libraries(${PROJECT_NAME}api PUBLIC ${PROJECT_NAME}-api) +target_link_libraries(${PROJECT_NAME}api PRIVATE nlohmann_json::nlohmann_json) +target_link_libraries(${PROJECT_NAME}api PRIVATE nlohmann_json_schema_validator::validator) + From ca8c3284ae75a4904c9e3fd6c8574767652f4983 Mon Sep 17 00:00:00 2001 From: Yuriel Date: Sat, 9 Dec 2023 19:29:15 +0100 Subject: [PATCH 4/7] remove unused file --- examples/notebook/pid.py | 57 ---------------------------------------- 1 file changed, 57 deletions(-) delete mode 100644 examples/notebook/pid.py diff --git a/examples/notebook/pid.py b/examples/notebook/pid.py deleted file mode 100644 index 179f5171..00000000 --- a/examples/notebook/pid.py +++ /dev/null @@ -1,57 +0,0 @@ -# This Python file uses the following encoding: utf-8 - -import numpy as np -import matplotlib.pyplot as plt - -class MySystem: - def __init__(self, x, y, angle, dt=0.1): - self.x, self.y, self.angle, self.dt = x, y, angle, dt - - def evolve(self): - self.x += np.cos(self.angle) * self.dt - self.y += np.sin(self.angle) * self.dt - - def update(self, d_angle): - self.angle += d_angle * np.pi / 180 - if self.angle>np.pi/4: - self.angle=np.pi/4 - if self.angle<-np.pi/4: - self.angle=-np.pi/4 - - def error(self): - return self.y - -class Pid: - error0=0 - integral=0 - - def __init__(self, ke, kd, ki, dt=0.1): - self.ke, self.kd, self.ki, self.dt = ke, kd, ki, dt - - def correction(self, error): - d_error = (error - self.error0) / self.dt - self.error0 = error - self.integral += error * self.dt - return - (self.ke * error + self.kd * d_error + self.ki * self.integral) - - -def test_pid(ke, kd, ki): - sys = MySystem(x=0, y=1, angle=0) - pid = Pid(ke, kd, ki) - out = [] - for i in range(2000): - sys.evolve() - correction = pid.correction(sys.error()) - sys.update(correction) - out += [[sys.x, sys.y, sys.angle]] - out=np.array(out) - plt.plot(out[:,0], out[:,1]) - plt.axhline(y=0, color='gray', linestyle='--') - plt.show() - - -if __name__ == "__main__": - #test_pid(1,0,0) - #test_pid(1,1,0) - test_pid(1,1,1/10) - From a58617a34b3eedfff37b76bd12dd7f354f9b0070 Mon Sep 17 00:00:00 2001 From: Yuriel Date: Sat, 9 Dec 2023 19:30:13 +0100 Subject: [PATCH 5/7] add interactive python interface --- libs/wrappers/python/rtbot.py | 56 ++++++++++++++++++++++++++++------- 1 file changed, 46 insertions(+), 10 deletions(-) diff --git a/libs/wrappers/python/rtbot.py b/libs/wrappers/python/rtbot.py index 1f24091e..eee690d9 100644 --- a/libs/wrappers/python/rtbot.py +++ b/libs/wrappers/python/rtbot.py @@ -6,17 +6,27 @@ from json import JSONEncoder class Run(object): - def __init__(self, program, data): + def __init__(self, program): program.validate() self.program = program + + api.deleteProgram(self.program.id) + result = api.createProgram(self.program.id, self.program.toJson()) + if result != "": + raise Exception(json.loads(result)["error"]) + + + def __del__(self): + api.deleteProgram(self.program.id) + + + def exec(self, data): # data is a list of rows - # the first elemet of a row is the time - # the other elements are assumend to correspond to - # the input of the port i according to the `ports` + # the first elemet of a row is the time + # the other elements are assumend to correspond to + # the input of the port i according to the `ports` # list passed - self.data = data - - def exec(self): + api.deleteProgram(self.program.id) result = api.createProgram(self.program.id, self.program.toJson()) # TODO: here we assume that the data is a list of rows, which are a list # of numbers, where the first element of the row is the time and the remaining @@ -30,7 +40,7 @@ def exec(self): result = {} - for row in self.data: + for row in data: # print(f"Sending {row[0]}, {row[1]}") for i in range(1, len(row)): api.addToMessageBuffer(self.program.id, ports[i - 1], row[0], row[i]) @@ -46,7 +56,29 @@ def exec(self): result[key]['time'].append(int(msg.get("time"))) result[key]['value'].append(float(msg.get("value"))) - api.deleteProgram(self.program.id) + return result + + + def receive(self, message): + ports = json.loads(api.getProgramEntryPorts(self.program.id)) + result = {} + + row=message + # print(f"Sending {row[0]}, {row[1]}") + for i in range(1, len(row)): + api.addToMessageBuffer(self.program.id, ports[i - 1], row[0], row[i]) + + response = json.loads(api.processMessageBufferDebug(self.program.id)) + # print(f"response {response}") + for opId, op in response.items(): + for portId, msgs in op.items(): + key = f"{opId}:{portId}" + if not key in result: + result[key] = { 'time': [], 'value': []} + for msg in msgs: + result[key]['time'].append(int(msg.get("time"))) + result[key]['value'].append(float(msg.get("value"))) + return result @@ -101,8 +133,12 @@ def toJson(self): if self.date: obj["date"] = self.date - if self.date: + if self.entryOperator: obj["entryOperator"] = self.entryOperator + else: + for op in obj["operators"]: + if op["type"]=="Input": + obj["entryOperator"]=op["id"] return json.dumps(obj) From 805b32bf5dc6967b53ff941f15e6270f3baca1f5 Mon Sep 17 00:00:00 2001 From: Yuriel Date: Sat, 9 Dec 2023 19:30:43 +0100 Subject: [PATCH 6/7] update peak detector example --- examples/notebook/rtbot_peak_detection.ipynb | 152 +++++++++++++------ 1 file changed, 105 insertions(+), 47 deletions(-) diff --git a/examples/notebook/rtbot_peak_detection.ipynb b/examples/notebook/rtbot_peak_detection.ipynb index b2ee423a..03cf200b 100644 --- a/examples/notebook/rtbot_peak_detection.ipynb +++ b/examples/notebook/rtbot_peak_detection.ipynb @@ -2,11 +2,13 @@ "cells": [ { "cell_type": "code", - "execution_count": 15, + "execution_count": 1, "id": "5ed9f8a6-b136-4bd2-943d-c1042831c72f", "metadata": {}, "outputs": [], "source": [ + "import sys\n", + "sys.path.append(\"../../dist/bin/libs/wrappers/python\") # set to correct path for module\"\n", "import rtbot as rb\n", "from rtbot import operators as op\n", "\n", @@ -33,7 +35,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 4, "id": "35da7310-6226-418e-9768-893c0583fc27", "metadata": {}, "outputs": [ @@ -135,7 +137,7 @@ "" ] }, - "execution_count": 16, + "execution_count": 4, "metadata": { "application/json": { "expanded": false, @@ -155,7 +157,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 2, "id": "3018d693-76df-44d8-9276-09be2ff80387", "metadata": {}, "outputs": [], @@ -164,15 +166,97 @@ "\n", "ppg = np.loadtxt(\"ppg.csv\", skiprows=1, delimiter=',')\n", "data = list(map(lambda r: [int(1e3 * r[0]), 1e-6 * r[1]], ppg))\n", - "result = rb.Run(program, data).exec()" + "result = rb.Run(program).exec(data)" ] }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 3, "id": "c7ffe380-1b88-48fd-90bc-95e73a2f8576", "metadata": {}, "outputs": [ + { + "data": { + "text/html": [ + " \n", + " " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, { "data": { "application/vnd.plotly.v1+json": { @@ -7552,7 +7636,8 @@ 59956, 59964, 59973, - 59981 + 59981, + 59989 ], "y": [ -66.99016, @@ -14748,12 +14833,12 @@ -59.727168, -59.81744, -59.822495999999994, - -59.6843 + -59.6843, + -59.609019999999994 ] } ], "layout": { - "autosize": true, "template": { "data": { "bar": [ @@ -14768,11 +14853,6 @@ "line": { "color": "#E5ECF6", "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 } }, "type": "bar" @@ -14784,11 +14864,6 @@ "line": { "color": "#E5ECF6", "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 } }, "type": "barpolar" @@ -14987,10 +15062,9 @@ "histogram": [ { "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 + "colorbar": { + "outlinewidth": 0, + "ticks": "" } }, "type": "histogram" @@ -15126,10 +15200,11 @@ ], "scatter": [ { - "fillpattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } }, "type": "scatter" } @@ -15569,30 +15644,13 @@ "zerolinewidth": 2 } } - }, - "xaxis": { - "autorange": true, - "range": [ - -1685.3236107271223, - 63042.32361072712 - ], - "type": "linear" - }, - "yaxis": { - "autorange": true, - "range": [ - -75.87259018009478, - -52.75294657819905 - ], - "type": "linear" } } }, - "image/png": "iVBORw0KGgoAAAANSUhEUgAABYAAAAFoCAYAAADuCV/SAAAgAElEQVR4XuydB5gV1dmAv+2FBekgWNAVS4yARqOgojERsKGggoUiRqUpSleKIsUOWKKImoiiJpoo9oJRf3uMFTQxAUFjQXqTZfvdf87Auc7OnbZ775Y7953/8Y/unXPmnPd8c1ne+eY7aVXGIRwQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAQOgJpCODQrSkTggAEIAABCEAAAhCAAAQgAAEIQAACEIAABCBgEkAAEwgQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABEJKAAEc0oVlWhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEEMDEAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIACBkBJAAId0YZkWBCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEEMDEAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQCCkBBDAIV1YpgUBCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAFMDEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQCCkBBHBIF5ZpQQACEIAABCAAAQhAAAIQgAAEIAABCEAAAhBAABMDEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAARCSgABHNKFZVoQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABBDAxAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAgZASQACHdGGZFgQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABBDAxAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAgpAQQwCFdWKYFAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAABTAxAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEAgpAQRwSBeWaUEAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQQAATAxCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEQkoAARzShWVaEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQQwMQABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAIGQEkAAh3RhmRYEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQQwMQABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAIKQEEMAhXVimBQEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAUwMQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhAIKQEEcEgXlmlBAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEEAAEwMQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABEJKAAEc0oVlWhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEEMDEAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIACBkBJAAId0YZkWBCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEEMDEAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQCCkBBDAIV1YpgUBCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAFMDEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQCCkBBHBIF5ZpQQACEIAABCAAAQhAAAIQgAAEIAABCEAAAhBAABMDEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAARCSgABHNKFZVoQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABBDAxAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAgZASQACHdGGZFgQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABBDAxAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAgpAQQwCFdWKYFAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAABTAxAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEAgpAQRwSBeWaUEAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQQAATAxCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEQkoAARzShWVaEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQQwMQABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAIGQEkAAh3RhmRYEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQQwMQABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAIKQEEMAhXVimBQEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAUwMQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhAIKQEEcEgXlmlBAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEEAAEwMQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABEJKAAEc0oVlWhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEEMDEAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIACBkBJAAId0YZkWBCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEEMDEAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQCCkBBDAIV1YpgUBCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAFMDEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQCCkBBHBIF5ZpQQACEIAABCAAAQhAAAIQgAAEIAABCEAAAhBAABMDEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAARCSgABHNKFZVoQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABBDAxAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAgZASQACHdGGZFgQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABBDAxAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAgpAQQwCFdWKYFAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAABTAxAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEAgpAQRwSBeWaUEAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQQAATAxCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEQkoAARzShWVaEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQQwMQABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAIGQEkAAh3RhmRYEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQQwMQABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAIKQEEMAhXVimBQEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAUwMQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhAIKQEEcEgXlmlBAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEEAAEwMQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABEJKAAEc0oVlWhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEEMDEAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIACBkBJAAId0YZkWBCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEEMDEAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQCCkBBDAIV1YpgUBCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAFMDEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQCCkBBHBIF5ZpQQACEIAABCAAAQhAAAIQgAAEIAABCEAAAhBAABMDEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAARCSgABHNKFZVoQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABBDAxAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAgZASQACHdGGZFgQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABBDAxAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAgpAQQwCFdWKYFAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAABTAxAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEAgpAQRwSBeWaUEAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQQAATAxCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEQkoAARzShWVaEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQQwMQABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAIGQEkAAh3RhmRYEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQQwMQABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAIKQEEMAhXVimBQEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAUwMQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhAIKQEEcEgXlmlBAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEEAAEwMQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABEJKAAEc0oVlWhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEEMBxxsCaTcVx9lC75vm5mdK8SZYUlVTItqLy2nVCKwgkCYG87AzJzcmQLT+VJcmIGSYEak+g9R455vd6eUWk9p3QEgJJQCA7M12aGb/LbNxWmgSjZYgQiI9Ay6bZsrO0UkrKKuPriNYQaOQEMtLTRP0us25LSSMfKcODQPwE9jB+j6morDK9TJiPDq3ywjy9lJkbAjjOpW4wAWzIsOYFu36R3LoDKRbnMtK8kRNAADfyBWJ4CSWAAE4oTjprxAQQwI14cRhawgkggBOOlA4bKQEEcCNdGIZVJwQQwHWClU7riAACOE6wCOA4AdIcAgEIIIADQOKU0BBAAIdmKZmIDwEEMCGSSgQQwKm02qk9VwRwaq9/qs0eAZxqK57c80UAx7l+COA4AdIcAgEIIIADQOKU0BBAAIdmKZkIApgYgECUAAKYYEgVAgjgVFlp5qkIIICJg2QigACOc7UQwHECpDkEAhBAAAeAxCmhIYAADs1SMhEEMDEAAQQwMZByBBDAKbfkKT1hBHBKL3/STR4BHOeSIYDjBEhzCAQggAAOAIlTQkMAARyapWQiCGBiAAIIYGIg5QgggFNuyVN6wgjglF7+pJs8AjjOJUMAxwmQ5hAIQAABHAASp4SGAAI4NEvJRBDAxAAEEMDEQMoRQACn3JKn9IQRwCm9/Ek3eQRwnEuGAI4TIM0hEIAAAjgAJE4JDQEEcGiWkokggIkBCCCAiYGUI4AATrklT+kJI4BTevmTbvII4DiXDAEcJ0CaQyAAAQRwAEicEhoCCODQLCUTQQATAxBAABMDKUcAAZxyS57SE0YAp/TyJ93kEcBxLhkCOE6ANIdAAAII4ACQOCU0BBDAoVlKJoIAJgYggAAmBlKOAAL45yUvLhFZuzZN9utUVaM4+HGtyJ7ta9SEkxuIAAK4gcBz2VoRQADXCtvPjRDAcQKkOQQCEEAAB4DEKaEhgAAOzVIyEQQwMQABBDAxkHIEwiqA132zQ3LvnSGPNb1amh/QVvr0rpIWzd3F7qd/Xy9Fr7wqX+QeK5ubHiCn9KqUw7t5i+Av/5MuS55NlxJDHKujT6+I9Dgm4htDK5btlC3PvyovVJ4thxwUkRNPiCCQfakl5gQEcGI4pmIvR582Up5ZNEfat2lZb9NHAMeJGgEcJ0CaQyAAAQRwAEicEhoCCODQLCUTQQATAxBAABMDKUcgmQTw19+kyTf/SzNFbreu7nJ2x5erJeuea6VFxTr5IudYWdRytjQ32oy8rFLycmOXuOiVpVLwzALJq9ohxWkFsqDVfFmTdYCMHVPpKo13frJMWt8/wexsTVahLGg5X4rTm8qwIZWeGcSljy+W3DefMq/1YV5veby5Iag9xpZyAVnHE0YA1zHgWnT/6edV8t0Pxj19WJrs0zGtFj3UTxMEcP1wTuhVEMAJxUlnEHAkgAAmMFKJAAI4lVY7teeanZkuzZpkycZtpakNgtmnBIGWTbNlZ2mllJRVpsR8mWTqEkgWAfzRM19LyTvvSYvKH01p2t4ouTBsSIWj0M0a00+yyndEF/XZZpfLW03OlvMHROSQg2MzdPNHnmyeuyW9rbSIrI9K4C6n7e+a0Vt8563S6sul0Wsocayyh9edOUlOMjJ6nY60TWslb9rgah9pCewnjlWjzH8slW92tJdXfzjc7OPgg6uk+9H+GcepG92xM0cAN55o2FkscutdFab81cfAfhly8onpCRnkUacMl+GD+8q7H34u6zdulQF9fyNDz+1t9v3m+8tk/n1/lfKKCtm7QxuZNen30qZVc9m6bYdcfcN98vW3P0qkqso8f9DZu74frAL49vv/JitWfyd/mHOVPPTEy/LEc29IJFIlrVvuITdNvczos21C5kAG8G6Mb3/wuYy8ep5kZmZEwU4ceZ5c2P93ct7ImfKflf8TSdv19KBZQb68teRO898RwAmJQzqBgCcBBDABkkoEEMCptNqpPVcEcGqvf6rNHgGcaiueuvNNBgGsMnrb3jk8ukiLWswyZOtxjiUXMlYsk5z5E2RNZqEsbXqRXLRlutlOtTlsSI8YAWw9f16bB+S8rTfJkcWvyOaMdvLtpffJgV3zHYMj56qzJKO0yMwWPnPbH6RDxSrzvGVHT5LOF+0SRvYj47N3JWfhDFmV3dUc28hNY81TlATOHzPRM3M4becOyb5msGSU7TDad5PH95gsmzPbm+Uj3IRz6ka1+8wRwI0nKl79v4g8viT2IeudN2VJfl7841TCVvnBMb8/WzZs2iqnXDhJnnvoRsnKypTTh1wji++aIp3320sWPf6yfPLFCrlz1hi55e4/y/YdO2X25N/LD2s3mue98tit0rZ186gA/vTzlfLAYy+Y7UvLyuXUCyfL35+YJ03yc2XJS29LSWmZnH/Wb+OfgNEDAng3xhdf+0BefetDmX/95TFgTxt8tdwx8wo5YL+OMZ8hgBMSh3QCAU8CCGACJJUIIIBTabVTe64I4NRe/1SbPQI41VY8deebFAJ48cPS9r3F1TJ0b2j7mBx0eIH0P7O6QFJZstkP3Sr/yukhD7acIz2LnpS+2/8gJUaGbun42ySrsLDaYuvzlzfrJQ83ucb8bNyGS0yhW/6bflI+YFRMcKR/v0py54yQ7VltZWbrx83PtTiOtGwnJXMecQyorOcekqwXH5GlBUMMATxMjip+WQZuvdk8t+iCiZJ2fC/XQMx6/SnJ+uuC6Oe67ERVflOZMqkidQO4hjNHANcQWB2efsudFbJiVWwpl4mXZ8pBneMvBaEE8KLbr5ZDOu9rzmLwFXOMbN5epqB98bV/yMJbxps/32ns/njM6aPk06UPSJXxfxUVlZKbk21+duqgyTLn6kvk8F92NgXwjVMuk1vv+bPR7zXSrk0Ls68Tz75Kxl56jvQ+8dfSfI+ChBJDAO/G+cSzb8jn//naSNW+OAbwCf2vlMcXXudYnBkBnNB4pDMIOBJAABMYqUQAAZxKq53ac0UAp/b6p9rsEcCptuKpO9+GFsA/rhVZ9flO6di5iWsGbIYhanK+Xm5m8R5f9DcpLFtm1vZde97MmBINWrKu+fVg+dP2YcYr3WlySfmNcvDGpRLZa38pHTtXqvJ/ljRZT9wjWW8skZ29BslL+cPkx7VpclSbr+To5y4zg6J0+Ayp7HZstQDR1yju2U9e63C5fGPUJm7eXGTgZ5dI1trVUn7qICk/Y2hMUOUsuFYylr8va06bKI/+cKqsWyfSd4+XpOd/bpGqvCZSMvVeqWpl1LZwOHLnDJf071eb8vh4Q2rnVRWZtYefMcpbDJ39y0ABrMR1ZK/qAjxQwxCdhABuPItZHxnAT/1xlnRs39qc9IjJ8+S3xx8hO3YUy92LlhiytmkUxo6iYnn+4Rtl3YYtctefnpItW3+StPQ0Q1B/Jw/MnShHHHagKYCVGFaZvqpfLYm/NKoP3P/o8/LeR/+SQw/qJNdPGCZ77dkmIaARwLsxqpTrV9/8SIoN4751209y3K8Pk6lXDjYX4/Bel0rPo7vIJ5+vkJYtmsm4ywbICd27mi0RwAmJQzqBgCcBBHDdBMjuqjZ10zm91ppAq2Y5sr2oXMorqcFWa4g0TAoC2Rnp0tSoAbxpOzWAk2LBGGRcBFoUZBt/zzBqAJdTAzgukEnc2Cj/mBJHQwrgjx5dLgd8cI9ZEuGZZlfIIQdF5PyB1X+fUqUP8sb3M9diertnJS9SJGM3XmIKUCc5mzNvvGSsXF7tM9WH+nn6D6ul4piTpWzopOjaRs8fe5tUHrjLGahDZ9w6iVktY+3X1+UkzDazH6kmmlWf0Xa2a2kxbB+bHouuHVyW1USmtH5eOpR/ZZSPuMpksKVpoeTccq9vrOpM54+PmCTf7NPb2EQvIns6u2bfvpL5BARw41k9VQNYZQF/v6ZuagArYfuneZNNKauOC0bNkmHnnSIlJWWy9M0P5a45V8bAUBm/vz//NDn7tJ7mZ30umCQ3XHNJVADfNftKefKFN2WPZgUyZcyF1dqXG5nD9yx62qwNfPcNVyUEdEoJ4E1btsuP6zfFgFMG/6Nl/5Vl/14lwwaeIpkZGTJh5gLptHc7ueaKQTL9lj/K73r+ypDCXeSdfy6XSbPulWeNWh97tm0pVQ34J3nabnvTkGNISBTSCQQgUO8EyiqqRGXfcTQ+Auqr3fy1JUX+otj4VoAR1RsBI9bVC3kN+KtUvU2VC0GA73ZioMz4yzy/e9VdHKx9+kXJ+/ON0Qs83nyyUQu3j1x0froce/TPv/NWfPi2FN02RTJ/0U02XXKn/HdllRy0/mXZ48kbJc3I5G36hyckrcnPmXw/XX6uRDaslYKb/yQZnTpH+4+s/1F+umJATJvtw06RKkMQN/vTi9X6UQ2LbrlaKj5+V7JPOUfyLtoli3Q/6t/3ePztGEBF118hFf/+TLJ69pH80VOrfb5t4PHmf9vbWfu0j1udX/LEH6X0yUWSfmwfo0zF1fLZ51WmBB695SrJqSyKmat9UJqh/vkNbf5s1g+eMDojIa/a112U0HNtCWj3VNv29dnu0+VV8u0PETm8S7rs0zH+0g967EoAn9XnOMMRXijfrVkvZw2bJi8/douxVVia+e+P3j1N9t2rnVlZ4Lml7xpCd5D06Dta7r91oimNn1v6nsy6/WGZe91oOf7ow6I1gPNycuTMYVPllmkjJCcnS/745xfk1ukjJSc7S5555V15+Y1/yoKbdtX3jvdIKQH89gfL5emX34lhpnbvO/rwQ6r9/OPlK2TazQ/IS4/eEnP+xWNvlv6n9pTTT+5OBnC8EUh7CAQgQAZwAEicEhoClIAIzVIyER8ClIAgRFKJACUgUmm1U3uuDZUBXDVtuDTZtNqs1Xto6XvmIsxrfb8c+Lv9q21qpks02Msq6KzZys5dpXTcbdFFzB+5awO2nQtejVlYne1bfu5IKT+pv+jM2khevpTMeybmfF3r15rRqzNpK7t0l1Jj83n7ofu0ZwHrviId95eSaQtj2ul5OmUB500bZIx1XbWsZqNsqTR7dlf5CrfMYX2RvHFnSVpxkRSnNTGzhtUmcmrzuk77VsnFQ1PrLQcygFPn+04J4OGDzzClrCr7cMmFp0U3Z3vz/WUy/76/mjV8VRWBqVcOMrN8//z0a2Y5h4Im+WYW8NZtOwwn+bY8dvd0OeviafLMojlmqdnX3/1UbrzrUXnqgVlyz0NPG9UJPpT09HRp06q5zJw4TAo7xe5HVhvyKSWAvQCt+t8a4zXEfHM3PnV88OmXMueOR+QvRl0dlXLd7dADos2HjLnB2P3vZKMo81EI4NpEHW0gUEMCCOAaAuP0pCaAAE7q5WPwNSCAAK4BLE5NegII4KRfQiYQkEBDCWAtaifs+Yacuf0uo67tU4agLJC13YdIu8G7Sj6ow61Eg1nWYdqFkl68U7TQ1SUY3CRrxmfvSs7CGUad3XZSbJRo0OdXdu5iSOS5jsT09cuGTjREay/R9X/d6vxax6zHpX4WVByrc4vnLqlWPsJNalsFdfG8px3Hr89Zk1loSt8p6883JbCqp/x9u2Nl3JUI4IC3SlKd1qFVXlKNty4GqwTws4tuMDdrS9YDAbx75W6//2/y7xXfyO0zLzdfRRw34245qHBvw+qfLr89d6zMv/5ysy7wO//8XCYa5SGeX3yTtDLqAVMDOFlDn3EnEwEEcDKtFmONlwACOF6CtE8WAgjgZFkpxpkIAgjgRFCkj2Qg0BACWItXVb92TsEDJqZhm6dGM4GLZy+Oboams1+tP9Nco0LXqLmrBKiWrF4ZsXlTL5S0zevNbNr0776SrBcfcd20zSpu1QZyJVMXis481kLYaY3tolmdUxNxbO3bT1LnzjY2hzNqG7uNR4/lh2ZdZH6TO+So4pdl4NabTdn+3EmPyunn5PuGqepDHfbN8HwbNsITyABuhItSR0NSAlhn7NbRJeq8WwTwbsQqVXvW/Ifl/97/zKwBfNJxR8ikUcbTrNxsefuDz+XWBX8xdvDbbO6+N2n0+dGSEQjgOo9RLgABQQATBKlEAAGcSqud2nNFAKf2+qfa7BHAqbbiqTvfRAvgjf9ZK/n3z5DXss+RlXv2lt/0NGp7dqu+UUJUhv6mn3zbc5R8+d902bOdSNcPbjIk7qtSbvy8fMAoc1G8Sjqoz7UADSp09eZuqnSEGKUfMpa/7ypPdVTkjjvTzDQumXqvqFIN5iZzto3c7BFkFc1KnDptTmdvowW2ls3qcy1w3bKUo/NxKUmhWW/uOUjuWX+x8Up7mrmBXGHZMinu2U+qzt/F2etQEl6MjOst0x+R3BYFfqc36s8RwI16eRI6OARwQnEmZ2cI4ORcN0adXAQQwMm1Xow2PgII4Pj40Tp5CCCAk2etGGn8BBDA8TOkh+QgkEgBXL5qlSE6J0huZIeZYXpD28ekOL2pDBtSKft1+lkCu8lQe0kDVeYhb/yuchBONX3Vz7UAVVm/qk6un8ZzDRQAACAASURBVJy1lo5QpSBUGyV2I3sVui6YtT6vEtRe49GdWEWzqlGsM5n9rmWVzWpMfpnDVkZOWdLZD91iSnWdIfz1N2mSu36VFD443Byq33j0PNS5SwuGyNKmw+SQgyJy1pkRI/kuOWLcOkoEcPKtWSqPmAzgOFcfARwnQJpDIAABBHAASJwSGgII4NAsJRPxIYAAJkRSiQACOJVWO7XnmkgBXDH3Wmn21fvVNht7ptlo2fe4/eWU3pEoaK+yDtaSBlUt20nO/AniVaPXuuma5BeYQtdJhFpXWUtR/TM3uaw/19fQ/+22aZz1GlbRrMaTN22w+bHftfTYdBa02yZ41mvpshTWmsP6c7cayl6bzln71mulf6ZqB3+Re5x0PzpSbU2T5S5CACfLSjFORQABHGccIIDjBEhzCAQggAAOAIlTQkMAARyapWQiPgQQwIRIKhFAAKfSaqf2XBMpgNOvG25kl66WZ5tdLn23/8EEqzKBV/x6lHS+6OQoaK+yDtYyCOXnjvIVwKpTLY31Bfwkq1Xoum0YZ48KLVnVz72EtLWdlrk60zhIO3sWtJvAtV7Hqeaw/lyztm8sZ2XglQWs2+s1VeupNpPb2aZQxo1Jvg3kEMCp/X2XbLNHAMe5YgjgOAHSHAIBCCCAA0DilNAQQACHZimZCAKYGIBAlAACmGBIFQKJFMBaFk7Y8w3pUP6VWWs2r6rIRKlLEOiSBW5ZtNaSBioLNuuNJdVqAjuti7VMQRDJqvrQYtVrwzgnyap+FrSNPXM4aDtrFnTma09K+verfUs12EtHqHHq67uxjmYbnzpIys8YGoNWy+i1WYVyW+sH5LytN8mRxa+YUn/xwffLoDGtk+42QQAn3ZKl9IARwHEuPwI4ToA0h0AAAgjgAJA4JTQEEMChWUomggAmBiCAACYGUo5AogRwVDbm5stjJz4v33wjckD2V3LOf6+SzNKdUWmasWKZb1avzratymsiacVFUu4iKPViWUWrdQM5r8VUbdKNchERow5wVav2gdY9urGbzwZw1s6smcN+89DtrBu7qU3q1OGX1exU0sGPtc4ctm46Zx27/nxT2y5yY8Yd5kfjNlwiHSpWyZrCXtJ8wsRA3BrTSQjgxrQajMWPAALYj5DP5wjgOAHSHAIBCCCAA0DilNAQQACHZimZiA8BSkAQIqlEgAzgVFrt1J5rogSwm2y01ugtnve0+ElJtRr6HL0yOnvYa6VURq861LlBhW5NV15tyCZNmkr5Sf0DN7XOpTSgOLZmQasLBao5bAhtVWdYSXPFWR1aJHtJcZ057FQ32boB3T/3vkg+XZYuzUrWypDPLjD796u1rM5RWcTqn4pjegVmVpcnIoDrki59J5oAAjhOogjgOAHSHAIBCCCAA0DilNAQQACHZimZiA8BBDAhkkoEEMCptNqpPdcgAlhlgla1bi+RvQpdYWnZ6FTmwFrSIG3Dj5L14iO+ZR20mFQXDCpO63ollZitMjaaq+mhRGrkoG5SeWDXwE2tG9UFLWth5ayEa5AN5KJlIM4dGSO2dfayXcB7tbFOMOfe6yRj2XtS2rSdPNH1PkkraGpsHlcpewZLuA7MqiYnIoBrQotzG5oAAjjOFUAAxwmQ5hAIQAABHAASp4SGAAI4NEvJRBDAxAAEogQQwARDqhDwE8BKemZdM0h+ihTIg81nm5t/nT8gVuJZs0Xt9WT1xm6VnbtKpPNhuwSwT1kHqwD12qQsrOtkzRwOWjs4yrlLdykdOTNa59hLoHuVgXDbgM6vdIRaE3v94y9yjpXHm0+W4vSmMvKyigaTwAjgsN4xsfM6ss9l8vzim6R9m5YJn/SSl96Wfqccn/B+7R0igONEjACOEyDNIRCAAAI4ACROCQ0BBHBolpKJIICJAQgggImBlCPgJ4CLH7hHWn28xOSyxtgMbJ6xGVhursjYMRWSZ/yvPqKycPgMqex2bDWOSiLnTLtQ0ot3ispmzVi5PLopnBtwVTZAZbCKUdJAycxUPHTN4XKH7FwnHtbSEao8Q+6cEWYNZb9SDXrzPvt5+udO9Ye9SkeosWkZvSazUFpUGuUpjM0AVfwsaDlfDjq8QPqfWdkgS4oAbhDsDXLRTVu2S4s9mkp6elpCr19VVSUn9L9S3lpyZ0L7dbynjYtV1flVQnwBBHCIF5epNRoCCOBGsxQMpB4IIIDrATKXaBQEKAHRKJaBQdQTATKA6wk0l2lwAn4CWEvALeltpUVkvZnFuSqrm/S/IE/2ObhJdPy5c4YbtV5Xu5ZrsGb0qkaNpaxDgy+AxwCU0FUiXJXeCFp6wlqeIeuvC8ze/TaQ0/LempUd3dQvL19K5j0TM0q/MhD682ebXS5fZXeVkZuuikrgvx86S84Z3qZB0COAGwR7g1xUZwBv3bZDptx4v5zQvZt8vPy/smHTNpl65SA57teHyahr5kvhvh3l3yu+kY1btsmhB3aS6ydeLFmZGdLt5Evk74/PldYt9zDHr//7+nkPyevvfCKFnTrKwlvGy55tE59hrIGRARxn6CCA4wRIcwgEIIAADgCJU0JDAAEcmqVkIj4EEMCESCoRQACn0mqn9lyDCmAlfgduvTkKa32PwVIweEj0v72yRdVJ9o3dUrGsQ31Ems68VZvBqezfIPWDdfkO67l+m/X5lYHImzbIKAOxTu7f7z75b0lnyYv8ZEjgsdKhYpV8e0h/aT1mpCsOde3M5xdLpFuPGm24F4QvAjgIpdqdU/bWKxJZ+33tGsfRKrtnb0lvv1dMD1oA/7Rjp/T//XS558ZxcvzRh8mLr30gjz71qjx69zS5Yuodsu2nIll0+zUSqYrIBaNmyZBzesvpJ3d3FcAZGenym3PGymevPhDHqIM1RQAH4+R6FgI4ToA0h0AAAgjgAJA4JTQEEMChWUomggAmBiAQJYAAJhhShYCXANYS8OvcrnJ3i9tl6rqBZhawPnTJAL9sUX2+dWM3v6zUVOGf6Hnaa+9W7q4H7HUda5viuUvMbGO9qV/5b/pJ+YBRjs3dykBY4+HrSc/Inx/PkK3b0qRD+VcybuOlUtWqnVGW4hHXIemHCeqEx7vcJ+UdDpBTeldWKzlSW24I4NqS82+344bxUvHZB/4nJviMgim3SWa3Y2J6tQrgC0fPln++eK95zn9XfSejjczfvz8xzxTAR3Y7WIae29v87M4/Pinbf9op064ajABO8Do1SHcI4AbBzkVTjAACOMUWPMWniwBO8QBIoemTAZxCi81UBQFMEISZgCotkPnGEmNDti4iB3cT9bvMui0lMVPWWZ7F+3aRR/ebLx1XL5VjtvxNmuzTVrL/9b7o2rR+2aK645wF10rG8velqmVbKZ7zaJgRN+jccmcb5Th+WG2OwW+zPfvalA2dKBXH9DLrL2cZMeLV3q0MhH0zOnWNH9eKUTvakMC3XiBpm9eLWwa4KnmhahfrQ9cN3qNDUxllbB7ndqgsZnPOO4ukbMQM15IZCOC6C83GnAF82cTb5I2/3W5OfuXX34v+byWATzruiOiGbn/6y4vyn5Xfyi3TRyCA6y5U6q9nBHD9seZKqUsAAZy6a5+KM0cAp+Kqp+acEcCpue6pOmsEcKqufGrMW2d3qkzMshsedRXAujRAtdqwqi6t8Yp+zsIZRm3a/Q2RtzBa3sGv3IASxen//Uwiex8Qs1FcapCvn1nq9VVXK3XYlM9pFFra6jWNbuo39japPLCr48Cjotd4kFA6bm70HKe40R9GpfGpg6T8jKEx/eo+/5XTw9g8bp1ZMuLtJv3lmWZXyLAhlbJfJ+ctsXQNatXhPzsOkRWHXSS/OSEiLZpXPx8BXD8x2BiuYs0A9hLAv+pykFw0sI855Nvv/5vsLC6RKWMGya96XyYvP3aLtGnVXMrLK0wh/OZTdwglIBrD6gYcAwI4IChOg0AcBBDAccCjadIRQAAn3ZIx4FoSQADXEhzNkpIAAjgpl41BBySg5Z46ffHhj8nhJ3WU/Q8oi2nttdGX9fX/zGXvidpwzKtcQMChcVoCCKgsWpXBK0Yd4LKhkwJtIKeywvPG9zOvrkp75Nx7nbmpn1et5mptdpeOUO29sof9agdreby0YIh8kXt8dPO4L3KOldIRM+WQgyOOhKxlI4rTCmR+6/tlZ0F7GTumolrpCARwAgIsSboIKoA3btkuD86fLGlpaTLAeGAyauhZ0vvEo+SUCyfLtWOHSPcjD5Xnlr4n1xgbyf3fk7dLTnaW9Og7Wj544V7Jz8upUxrUAI4TLwI4ToA0h0AAAgjgAJA4JTQEEMChWUom4kMAAUyIpBIBBHAqrXbqzbXKqNXZ5Lvl5sSVaFvadJicaGRLnmT8Yz28skCtmZym9HvxkcDlBlKPeHLM2Cr8ldBXh1+tZl3WQ5eOUG38sofdagdb2y5qMcsQwMdJz6Inpe/2P5hj2Tp9sWR3aB8DU5cgWZNZKFsy2smhpe+JEsYf5feRvfr2kB7H/BzXCODkiMVEjDKoAO60957y4WdfyoZN2+TYX/9Srh03VDIzMuTlN/5pZgTv2a6l9Dy6qyx64mV5wnjzoV2bFnLJhFvl3yu+kYU3j5fDDtk/EcN17AMBHCdaBHCcAGkOgQAEEMABIHFKaAgggEOzlEzEhwACmBBJJQII4PpdbbVplDqqWsXKnfodSWpczZ4teUPbx+TI4qXS67rfVssWzZs2SNI2rTMzQu1rozM5VRmJii49dtWLPXeklJ/UPzUghnCW1uxclf0bycuXknnPeM7Uqd6vLsfglj3sJI31RXTMfXbOQvnbRwdKSanIpT9NlYN2vOf6gEGXvPgor7fxQOMiGbvxEsmrKpLNhgz+4uRZcuSZ+0XngAAOYeDGMSVVA7j3ib+W00/uHkcvddcUARwnWwRwnABpDoEABBDAASBxSmgIIIBDs5RMBAFMDEAgSgABXH/BoF4jz71hhCkaKSFQP9y1AN6S3lZaRNZHL2rN4lQ/1Oe5ZYHqTM4qo9RAWnGRlHrUi62fmXGVeAnoNVX9+NV0Vueohzd50wabl9Vx4hc3TtLY7MtShkL3ZZRjlYJvjZrT8ycYDyHaGQ8jHomZoi458WLLy+X1nLOl108PSq8dD5vnFR/SXarGzIy2QQDHGyHhaq8EcK8TjpIzevVolBNDAMe5LAjgOAHSHAIBCCCAA0DilNAQQACHZimZiA8BMoAJkVQigACOb7WVtFFHXq53P0r4KBmkXzcvSS+QF/o+Y5Yj8Gsb3wjD17rsnltlwwaRf7S/SFoe3M7cAMvpUPVhc+eMEPW6/F+aXy3DNk+NSmC9AZhqp8+ratlWiuc86tiXLhmgP0QAJ39cWde0skt3KR35szx1m13u7OGS/sNqc8O5iLFhnKol7JU97FY7WJdycBLPeVMvlLTN6x0fMuiSEyvOnisPf3yEmTV8UumTcurmXaUjii31iRHAyR+jiZwBAjiRNBthXwjgRrgoDCl0BBDAoVtSJuRBAAFMeKQKAQRwqqw081QEEMC1iwMlfv/+4Ndy/Jc3y4KW86XTIU3krDPdZa4WPtar3dDmz9Lu0LZy/kBngWkfmRKVkb0KazfgkLQqW7RAmn/wlDkbVft0UcvZcshBEUeGmvmPzbvI3Lw7zDYXVv5Bumx7STJKd0Y3/fKScRqbLhmg/9uvXmxIcId6GtY1LT91kJSfMdR3vroEQ8UxJ0tl995mtq5f9rBTGQhrP2rzOusR3VjuN/2kfMCoap/ZM47V95B6gOR0DQSw73JyQiMiQAZwnIuBAI4TIM0hEIAAAjgAJE4JDQEEcGiWkon4EEAAEyKpRAABXLvV/uSmp+W4/91tNtabOHU/OiKn9HaWuVoyqlIExelNpUPFqmi7ayZVBMoCVjVDVQmCkqkLazfoELTSAqw4rYlZ+1SzHzumUlo0r6ou0l5/ysy4VuU2tvcdJeVl6dJ532zZvHDerjq+uwWblnF+ZTl0Zqa6CAI4BMFkTEGXgbCXBHGbnS4Doe5DJWezH7pV/LKHdXxZz4tKXgfxHM1It5WB8MpUdxLKCOBwxGiqzAIBHOdKI4DjBEhzCAQggAAOAIlTQkMAARyapWQiCGBiAAJRAgjgmgeDli26pdqA6Ya2f5HmhoAcZ4hIp0PXAv1XTg/5IesAs27n0oIhsrTpMHGSl/Y+dHv187UDZ0izE4+t+cCTvIWWb0qiv10wQPpu/4MUpxXI/Nb3y8BRrWVP2756Wc89JFkvPhLdUCsjPU3U7zIbPv+XWRpCSbzieU+L/Tw3TFra+WV8JjnmlBq+KgOhDnsWrhcE/SBAxUHGyuWuG7bpPqy1g3WJBl3Kwa2UiL6GdXM5r0x1q5hWMa0OBHBKhXLSTxYBHOcSIoDjBEhzCAQggAAOAIlTQkMAARyapWQiPgTIAE6uEMlYuUwiLdsZm+bY7E9yTaPBRosArjl6LQzfbtJfji/aVY5AlXNoVthOLh7qLIB1GyV912R1lou2TBclg188ZI6MHl7hO4jcqYMkffM687yP8nrL/x18tfTrWxEjPX07amQnqBqp77+xU1q9/ZB82+RwKft1L9e6yFqArcruKgta3W7W9D209D1zRuWnD5Hy03Zt0KUP+2vxWgCv21Ii1lquGcveNeozvyrl546U8pP6uxJSGZiZrz1pXovvm0YWSLUcjoq/qvyCGrXWDwJ0I7+4UedZ462y27HiJ4B1fWJr324byulx2K+BAK7RsnJyAxNAAMe5AAjgOAHSHAIBCCCAA0DilNAQQACHZimZiA8BBHDyhEj0L8kOtRKTZxYNO1IEcM35awH0bLPLpbD0E1NCqn/vOKyfHHKwcwkILYBXHDpYXt3SU0avuVS257ST8pse8S3/oMWPLnugsl6nt39O9tu3Soa5COeaz6r+W1g3yFJXV2JbbdbmVkpDC+BNbbvIjRl3SF7kJ7li21hpW7LKHLw1W1L9t12yWQWw9bV8KS4yMznZ2K3+YyAZr6hLMeixB4kbe4kGVc4lbdM6KZ692PFhgq5PbN2s0C9T3V47GAGcjNGVumNGAMe59gjgOAHSHAIBCCCAA0DilNAQQACHZimZCAK4UcaA3symJoPLG3eWpBnyhleya0Kt+rkI4F08lIzMWPa+rG7RQ9p0MurLGhsruR1aLH5xxm2y7t8b5LerbpafOhqvg0+b69rGLm907dHS4TNEZQR6HfpBh5LMx+94QlpE1ss8o+zBGqOUxMxr/bOHax8dddvSbWO8nQXtZYpRF9l+RBnufuCzZWuatMz+SbLvvW7Xq/i2DF67ZLMKYOtr+UqypX+/OkYg1+3s6T2ZCVjrQdsfPDjNy16iwb6Zm72N9eGILhvhJ4DttYMRwMkcYak3dgRwnGuOAI4TIM0hEIAAAjgAJE4JDQEEcGiWkon4ECADuH5DZMVrqyX7xYfl8+zjZOWeveX8AZWBXmu37uCua3nW78jDcTUEsCF/N62V9JsnSM5P60TX8+3TKyI9jnHO5rVmlkb2KpS88f3MYNCixikyom12C1+drVdxzMm+9Ud12wWt5ssvS942y06o8hOvtLlCpkz2F8BKDKl/Ko7p1aiC1lrSYUtGezmy+BVDahfK2pwD5OBbJ7gLYNvGWfq7wP4gyC7ZrAJYda5LROgLsbFbowqPRj0Y/VBGDTJo3OgSDepBhdqcMJKXLyXznnGdp72Eib6m14Z1WkyrzOJm++wtFZVVUlTi/x3RqGH7DK5Dq7xkHj5j300AARxnKCCA4wRIcwgEIIAADgCJU0JDAAEcmqVkIj4EEMBxhMi1I2RbWYF88svR0um4/WW/TlWenX39TZrkzp8ghWWfmfVQH2w5R3KNzMuxYyp8X4u312F84/RHpctv2/q2i2N2oWyKADbqx76wRPZ4/p7o+j7efLJ8mNdHhg2pdIzh3DnDq2WMalFT0d2QuUMmOcaJvRxBNFtv90ZkXsFlFcCq/MO4jZeaovqTQY+5SmprfznzJhgZssskSLZxvEGuMhdLt+6QH8r2lPbtqzzvR13aQpV+eKbZaJmy/nzJqyoyh+AkuaKvuNsyfZ2yJXXGpVWy2QWwdWO9moi8eBnRPvkJqPtXxWNVq3a+D3D0bHUZCNVGlX/we3PFXjbCr26wuo61dnD+GQMRwMkfaikzAwRwnEuNAI4TIM0hEIAAAjgAJE4JDQEEcGiWkokggBMeA0q2VMybIU0376rFqbITn2l2hZHNG3GtiarO++a+p+UXn94dHc/0ds9KcXpT33aqQfT17jTjdX1DGi1qMUs2djrOkHb+8jjhAJK4QwSwyMb7H5Z9PlkcXUUdvyeeEJGTjH/shz2z1CoS3Wp6Oskbna3nJ2a1cF41bKG8/2NnOeuN86SgdH2gkgXWMgvqIctLv5hTZ5vHKRGbdc0gySwrErXZ3dKmw8Qrk9paF/mJymGy/6Z35djct2Xf75aayO0Z1V4CzJ5hredtlWx2AWwtA+En45L4FmfojYSANd7UkCq7dJfSkTNdR2cvGxFEAEc3iuvcRXKn34kAbiRrzzD8CSCA/Rl5noEAjhMgzSEQgAACOAAkTgkNAQRwaJaSifgQIAO45iFir+WpX6PvZGxSdbHHJlXF142XVuuXi97cyi/zUo9MX29Lelv5ML+P9NrxcFQ49etbKYd38848Vv2ov1xnP3SbVLVu65q1WXMSydcizAJYCcmq/ALfRdmx+GFp+95iMwtdbeimN1lzk5d2Aayuo+vQuslce9awGpQ9w89toPbr2Td78pqgbqvPUQ9ZqvKbysjLKqVFc//7xBee5YSM64dLztrV0Z9M2PMN899HXlbhWNbFraap/dV33aGXALNu6qakWrQshEWy2QWw6le/lo8ArslKc25tCeh4U+3LbaVMnPrU56uN5tR3jKp57/aQyfxzzfgu0iVpsu59TipyCigBUdvFol29EkAAx4kbARwnQJpDIAABBHAASJwSGgII4NAsJRPxIYAArnmIWGt5dij/yszIvaHNnyVivOo67spK1w4zbhkvOV8vF/UKuKr/qQTci4fMkdHDvWsWWq/3dpNz5KIt02VVdldZ0Op2ccvatA9CCyP1c6+/UNecRnK1CKMAVnI/64WHpXTTDvmm3yyjrEiVZ11pLRxVFvnArTeZ8bt4n3ly6tjDYkoYaMFir99p36DMHgVOmz7ZM/zcIsfe1r7Zk1fE6bbq/igsWyb6IUuQByUqm1C9ql5hbLoWRKTra63JLJQOFavMhzItKtdJ8Qlny5Fn7hczTDehG81itGVI6k0fnWotW8WXqsnqJJedBLD6Hsh4/iEpHzFTKg/smlw3L6NNOgLWP3fsmxY6Tcb6sCfrjSXmKX41h/X3WealV0tlj94I4KSLktQcMALYsu4ffPqlXD93kWzYtE2OOKyz3DJthOzRrIl8+8N6mXLj/fLlyv9Jx/atZeaki6XboQeYLRHAqXnjMOv6JYAArl/eXK1hCSCAG5Y/V68/AgjgmrPWf6lVr863rFhrZlEq0VR+TG/pf6a7ANZlHF7oNldO+2y8eeHNNyyR3BbeWZvW672df65M2XB+NGvTrW6rfVbWDaD8XsGvOZHkaRFGAaylicpEX9RitrGx2AHS/eiInNLbe1O3j3vPlcovlsmvf3hYygu7SvmE22IW0qm0gDpJ/zyy1/5GaYaFMe2cBLA6KZrht3tzOKfIcWqry0eUTL1X1EZ0TodViqr7ceDWm40HJd2MByXzjTIQ3pny1qx+v1fV1bW1zFZZ+X9pcY2M3DQ2OqQ1h/WT5qNGxQzRTQA71fRVjd0Y6o6tLNNXLBMlzKxZlk4CWI1bHVWt2ifPTctIk5qAilP1QEXVufaLO+v3Svr3u7Lr/QSwfoCSdngPkTFzEMBJHS2pM3gE8O613vZTkfQdOkVunT5Suh5aKHPuWCyHdN5Xzj/rtzL4ijly7FGHye8vOE3efP8zueHOR+SVP98mWZkZCODUuVeYaQMSQAA3IHwuXe8EEMD1jpwLNhABBHDNwetsu/faDZGNxc2k7/Y/yH9a95I2Uyd6bgJlFTpa3njtcK5Hpq/37RGD5b7NF8vU/51uZm1+cMZ9ctipsZmG9hlZBZP6rNzIcCwfECuoak4i+VqEUQCn3TRe8v63PLoY81rfb0pgt4cDVhGpZGrOtAslvXinqNeu7VmhbgLYKiidMlTd5KVfGQi36wUpA6Hbfp3bVf60x6zoJmt/bD9fzpr8S8970/qAxE1qW6NdX+u7gq5yR9PbDQF8lZlxvEuutjOy7B+JuTn0AyAniW0vA2HP8HW606wsVeZyxsrl1dbQSQAn3x3LiFONQO64M83vI3VEOhoPmKbFPmCyMrHWGk578A0EcKoFTJLOFwG8e+GeevEtef/jf5kC2Hps2rJd+lwwUd43dqzNzMgwPzrn0utk8ujz5ahuByOAkzTwGXZyEUAAJ9d6Mdr4CCCA4+NH6+QhgAD+ea1+/OdqKf1sufzYtb906xpxFUbW163X7X2c7LVwhKv0sUaCVYq5vfbtKHqee0iyXnzEzO7bfvJQkUfukVYfLzEyIZ2zL+19ROuF5uRLRulO+bF5F/n6vHnGHBNbEzUZoj6MArh0xnhpse5nAVzTTd10PFd27iql46pnATvVltXrbN+ITP9cl2xwkjd+ZSBcM44/e1dyFs7wvM902+J9u8ij+82X/T99SE7a9rD81PVkyRgxyTU81Zhy54ww643q464uz8pJp+TLfp2c7xF9rfLCLvLmcfNl46erpEuzr+Tgfy2S9C3rxSnL3iuj1/594CXe9RitLJV0VhmTVomPAE6GbyTGaCeQ/dAtkvmPV80fB61VHa013HeI7DxlcKihdmiVF+r5pcrkEMC7V/rGux6ViopK+eb7tfK/79fJr7ocKNOvGiIrVn8vM+c9JE8/ODsaExNmLpCjjzhEzj39RFm7paRBYkUJsT2aZElxaaVs21neIGPgaCxC7AAAIABJREFUohCoLwJ5WRmSk5MuW3cQ64ljrv5ikZa47ugpYQRaNc2W7TsrpLzS+RXahF2IjmIIfPPWalkdOUDat6+SXxyceoKqvkMiOyNdmuZnyqafyur70o3qem8tLZLjn7rQHNN8I4My0rqdjB7hLIGz546T9BXLpWz8bRI5sJvkXNXXkEc7pXzk9VLZ7VjHeamMvpyxZ0lVXr6U3v6suXmN+m91lM55xNiczf2V7MxnH5LMFxZLxWmDpaKvIYCNQ1/Tr606V4/32WaXm9nK6lAbVvU4pkpO7ZNa33EtCtTv7REpKXcv1dGoAjPAYLLGnGWI/R1mGRJV9kBvStj/zIgccXjsd2ju8N+ZvZYs/Lv5v+amblMuMGNYx7S+rFPs+X2WvuIzI+YmGPdGF6O/eTEzyJ51mSkrne4Xr7Y65suMjMDI3rFlIJSszlpwnagSDuWjZ3ncY9V/99LXXJtdKEVSEK0d/HmLPuZ3gNPmcZmvPSWZT9wjFSf1k4qBo6NzzHz8bsl8fYlUHtNLyodVl8527lYw1u8DtS5+DHXbnGuMddu8PtqVXlP1AyWA1QOPDdtKA0QRp0CgcRDIeP8VyVp0qzkYfS/7jSxt41opKNoglS32lJ3NWvudntSft2+Rm9TjZ/C7CKSUAFbZvD+u3xSz9qqu7633/EU+/WKl/Gn+1dKqeVO5+ob7pXXLPeTEHsbrNfc/KY8vvC7abupND8iBhXvL0HN7SyTSMH9BTDO8TZrx/6qMy1ep/8cBgTATUPFu/B+xnrhFLq+skqwMBHDiiCaupzTjL05mrPPVnjioAXp64oE10ufvA+WLnGNlUcvZcvhhaTLy4l1v/nDUEQH9u0wD/S5VR7OqUbdF/10pG2ZeIy2NDZzUoUTpW03Olt/2TJeB/dJj+iq6/gqp/PIzaXLtnZLxi8Nl561XS8XH70r6vgdIwc0POl678t+fStHMMZJxSDdpct1d5jnF98yR8rdeltwhYyT71HNdx2y/nrVt9innSO7QKz3nq9urWqjnbblRWkTWiy4TcN/8zBqxSvaTzd/b1Rd7I/5uryr6ycSc1qRpINzbzzvePE9J/anrBprr++gvHpCR1x7k2F6f3+wvb0c/L/3rH6X0yUWS+atjJX/iTTE/zzn7Isk59/fV+qv48G3ZOXdKtZhWJzjFurVh2Yt/lZKH75Ssnn0kb9TUan3qcTjFtd/9ottax6rbWK9l/91Lj1dtHPdRfh9ToqsNGh9sOUcGnJUuvzsh9jvA6VpqIpH1P8qOMQMkzah52vRPL0XnFvnfStkx+WJJ38f4jrjF+Ttix6RhEvn2K/N7JbJhrRQvuMGRkRWYvrf1z6xrqn6Wbvwu01B/Tw4UvJwEARsB9f330+9PNX/q92ejtan6bldf7GFXMuqe5kh+AiklgN/+YLk8/fI7Mas2oO9v5PV3PjH+oEo3Szuo45PPV8iMuQ/J9RMukmk3/1FeWPzzLyRjpt8pxx/dxcwAZhO45L8JmEHjJ0AJiMa/RowwcQQoAZE4lkF7+tHYm2bLLbfJkcWvmE20oDp/QEQOOTi1shSDMkvEeZSAENmx+GFp+95iY2O1JmZtXS1/Ou1bJRcPjc0UzZ0z3Mxg1LU8VYmFjOcfMusWum1S5fRKt3693q+Ug9PmUX6bcFljQ7dXArjnjr9GN637MK+PjB1T6ZjhmIjYaox9JEMJCLW22fdeJxWqVvMZuzK+3Q5dBiBiZJa/PuA5OejNm2Xvb5a61nl2Ky2gyzbY69dGa++eO1LKT+pfbRhudWq9ykaoDrzKQFjLq9jn7lc2xamt9VolRl1etRmV/bBusri04CKZta6vecqarELZeNxQOWBA99g2lrIs9nE6bXQXpKRDlLVR6kUduuyLVwzosavz7a/LUwKiMX4DMaYgBNT3kfqnwsikD3qot7IrjMSaopKKoE2S8jxKQCTlssUMOqUEsNeSPfLkq/Kv/34jN0651Dzt4+UrzM3eHpg7UX43YLy8++wfJDcn2/zstMFXy6xJF8sRhx2IAA7HfcAsGjkBBHAjXyCGl1ACCOCE4gzU2UfPfC09X74seu7SgiGytOkwOfGEiJxk/MNRNwQQwIZo2S1zPsrrbT6AKE4rkOntn5M+vSJGmYTY2HOq5anrFpY7iDK1cm4CSG94Uzx7sesO6U4CWPWpx+G0CZc1WvLGnWXWN53e7lk5qnipWQZCzfXlfSfLuCuDlUIwywTcO0PKRhh1WB0kWt1EZ+J7TQYBrONRzX7rYb3kh1Mn+dai1fJPy1clckum3BuzVjXd1M0t9vTKOMlOL4mr27luEuchVt0kte5T34P2jRWjY3TY5E611eN9fY8h8mL+MDlz+11yfNFTZrel+3WRyklzYwLRrf6x2Z/xQCjrrwsMeXWylA3dVQbCT4pXO6dzF4kY/wQRwNYNsNTr8qUjZ0bHigBO/PcHPTZeAgjgxrs2jCyWAAJ4N5ONm7dJ36FTjBIQk6Vw3w4yafa90qFda5k46jz5/fhbjJrAB8mlF54ur/zfP+WOB56Ulx692dwUjgxgbisI1D0BBHDdM+YKjYcAArj+16Ly3luk6bJXZU1moXSoWGVmX81r/YCQAVy3a4EANmrk7t505sWWl0u37S+Z8bfkF/Ok56WHOW4E5ySv/LJ53aSYnzhWq68zjq0bPKmf+8k5HTl6vA+c+Jqs/9d6mbJh15t2X09eIu06xWZEOkWcHoOb4K7bKE1c78kmgNXMVeZ2xNig7byBlTHxGBWLhjAsHbdLVOqHCk6Z5YE2dbOIUr8Yi8a1ylYeMMq8fhABnDf1QrN2rT1jPmfBtZKx/H1DnE50zP7zemDiNlZrZq1TNq0e7+aeg+Sp9GHyn/+mS5fC7TLknTPN+Tg9nPHiYpWy+uFMECbWjGol9DNWLnfcTM5+N2iW9nsTAZy47w16avwEEMCNf40Y4c8EEMCWaHj5jX/KbQv+YmzQUCbdf3WozBh/kRQ0yZMf122SyXMWmhnCe3doK3OuvkQOPaiT2RIBzO0EgbongACue8ZcofEQQADX/1pYX1MfuWmsOYBH+rwu/c8MlqFY/yMOxxURwD+L1I2XGpu6vblU2q5YKkqelY6dG5NBGX2lvGVbKZ7zaLUgcMtq9JJiTgLNHlm1yZa09mFtv2VrmjR/cLo0WfG+lBuvmvuVGFD96HtT/bs9yzDZ7oJkFMBeb0M4iUWVKatEqhKsdpHqJSKdRKm93Il9vZ1KkQSRnW4PPvyEs1fmrVtbJ0lunYdbn14PZ9weyuh+7VnHQZiotrqd7sf+0Kcm9xsCuCa0ODfZCSCAk30FU2v8COA41xsBHCdAmkMgAAEEcABInBIaAgjg+l/KvGmDjNqQ6+TbKxfLnveMkKzyIvF7tb3+Rxm+KyKAq2fSRvYqNIVn+g+rHSWw1yv0XvLKTQAFqQ3qJoB1TVTrq+b2CNWvzUc67i8l0xaaH+trVuU1Ebe6qE6CTP/szQuekaOOz0/KmyEZBLB+G0LVoj609D1Rm5MtaHW7ONWkdosrtwcLXiLSKTvY66FGVHaOO9Osf60zZXUWb+nwGVLZ7VjHOHGr5+sngL3Gr0ud2DN23WoV64HVRhz7cbHLdL/MZj0Wa/kP9TO3muJBbj4EcBBKnBMWAgjgsKxkaswDARznOiOA4wRIcwgEIIAADgCJU0JDAAFc/0tp/Qu1nwSo/9GF94oIYJGoOJq7xMz4VcIoZ9qFptSyZ+B5CVuvjEE3KabllJKxxfOedgw0N9kUZCM4t/Hqe8ztVXsnAaw3yXu8+WT5br8+Muqy5Ntsp6EEcMbKZSbSSMdC3xrKem0U54Fbb47WpO7WtSrmjQi3uHKLDc9N3Tatlbxpg8Uai36iU83JLjeDfH+7bQSnHwS61cQOUsN454JXY+4jrzrAbtm8VnFsfxjpx8WedRyEiRq0np+egNNcgv5phAAOSorzwkAAARyGVUydOSCA41xrBHCcAGkOgQAEEMABIHFKaAgggOt3Ke2v1XtJivodWfivhgD+eTM1q2xxqxuqN3gqt9Q81VHitPmT/sxLAHnVNdX3RiQvX0rmPRMTkL4iasUyyZk/QfQmYbqDaAampXasW7Tra2ghqTJTH2w5JynrczeUANYMK7v2kNIR13t+sVjL4Vy0eZrkVRXJH9vPlzMG5EvBIftXa+sVV06x4Sci7bHoF19qMPa497uGnoBT3Ptdzyub17MEyxP3SNYbSxzLnni1cyoP4XdPqvnZxxmUiWqrx6P+HQEc/j+DmWFiCCCAE8ORXuqHAAI4Ts4I4DgB0hwCAQgggANA4pTQEEAA1+9S2rO6gtRFrd8RhvdqYRbAKgtPHW6voTuJGr3Sbpu6eb5C7yJbVZ9eAsirrqlfiQivzEZ1XbcyEW4ZmE6RroXU9HbPyqx1fc1T1L8f/ZsmctIJEc+bQ10/7dtVUrVPoeOmXvV9ZzW0AFbz3T76Nsn8ZVfXqet4+Ob826Tq4/dkvxVPSVVuE4kcaGz0NnJmtXZeceW00ZqfiLTGYmTvwl0ZwQ71rq2DsMeS3zV0W6eyCH4CWLXVMW8tj+BU6sQ6Rq86wJ7i+PWnJOuvC4zYPdmopzzJ7NLvntTXtd6b6iGMOoIIXc3Pj7vfvUMGsB8hPg8TAQRwmFYz/HNBAMe5xgjgOAHSHAIBCCCAA0DilNAQQADX71LaM8iC/gW7fkcZzquFVQBn3n2dZH+h6qd2kwc7zpfuR0fkNw6y0i3W3F7/9tvMyU0meb3aXluprCLSq+yE+tyrb6/MY2u06zlN2PMNGbZ5qlmXVmUDH3nl72TP9t73RVRmGSUuSsfNNeoqFzbojZRIAazkdsUxvXznY3+t/6O83vJB18ly3sBKycuNbW6NIS1X9Vn20gheceX0YMGvxIL14VvEqN/rlD3uNGGrbM6dMyKQ7LR/7+t7zi3bXV/XKeb9/sxwyxz2u6YWy1Wt2hk1jh8xh+B3LT1O61sEWS/uahtEAKu4ynjvFYkY2flBNml0C0AEsO+tyQkhIoAADtFipsBUEMBxLjICOE6ANIdAAAII4ACQOCU0BBDAiVlKXVvVbydzu6SqSXZiYkaaur2EUQDbhduiFrPki9zjpE+viPQ4pnrGaqBN3SybWfllNzplXaro8soy9MpO9JNNbptpRSXUcw+Jkk/lpw6KkUlBNqbS92JxfluZvsfjclTxy2Zd2p357UTm7pJaXofmpc5xKpvh1z7RnydKAGe9sFiynn9YvDY602PXa6hrKBenFcj09s/JfvtWybChlTFTtMdKNYbnjpTyk/pH23hmrzqsvV+GrbV2cPm5owILYKuUVRmz6vCTnXa56hfr0ZiuZVauU7Z8kGvqe1r/ORZk80U1Vn1fq5rKacVFRv3nnzdiTHRcO/WHAK4PylyjsRBAADeWlWAcQQgggINQ8jgHARwnQJpDIAABBHAASJwSGgII4PiXUv/lV/W0vsdgKRg8xLVTLQ+sG1JpUWHffMfaiRII2154VT4v7ypr9z7OyPKs9M1IjH9m4eohjAK44otl0uzuXa9cq0NlAS9oNV86GcLtYptw85I5TtmzfgLYTap6ibfoAw9LlqEeu59scspQtEao072lP/eqWazPsQqyby6YK+Vbi+TgO84yP7a+gu92V+gNttTn5Xu0k/Kb/KVxXd5hiRLAej2tpQHcxq0ZrsruKoVluzaDUyU0itObysxrYzfSs8eK+i5N/+4rU+Tbazl7xZXTwwE/AawyYtWapW1eL+WGbFYy135Np3laH2JkrFxunuIngNU51iz09E3rAglnp5j3y8xX13Kq6x1EAOt2mkOQa6nrWbOO1X8H4ZjI2EcAJ5ImfTV2Agjgxr5CjM9KAAEcZzwggOMESHMIBCCAAA4AiVNCQwABnIClvP9Wyf9kqdmREh9LDr3d2DSqUlo0r4rp3Emq+Yk2q2BWHapX0j/M6yPDhlTKfp1ir2G/qJYj1ld7EzDrpOsijAJYi021Wdn+hnBTm2jd0ObP0qywXYwArmn5Bb+4dOrP7zVzFTRuDzyCyCavhyVe49XyS90DJVPular8gpj4dRJkfmUnrJ3osW3NaCvNK9fL3R3vl26n7yeHd/O/R+viZkq0AFbZnSVGaQAndnr8+rtGlX7oUP6VdKhYJSor/as9jpMpk6sLYLcNxtxKGHgJ3agoNcZYPO9psW+26cZXr6/KWE3/YbVUdukeU3vY3tYuO/3KOOj21gcmqs5xzsIZgUSpPeaD3CdOmfZ+D1jUOO3sg1xLz09nHav/ru8MeARwXXyD0GdjJYAAbqwrw7icCCCA44wLBHCcAGkOgQAEEMABIHFKaAgggONfyszL+0l25Y5oR6p+6MEHReSCgbGbRjlJKj/JpP8Sri+gJPOCVrc7Znk6zUbXwlSfBclUi59I4+whlAJ496vvSwuGSMvKdXJk8SuyJsuoPXt4D2k+rHomupfMcZJufgLYSZgGyTJ06zeIbAq0wdzY26TywNiNx3QGplspA6ex+5WdsEa6FnVvN+kvxxc9Jep/n2l2hYy8rCJQtn7GymVSlVeQsNrBTgJYrXP6D6tEinZ4bhio52Wvy2t9c8HpLtdrqOKxJL2Z9N3+B1EPJ77uNytmEz2vWHEqYeCX0WstSaLmGaSmr36AoufiVD7EaZ5W2Rk021VfS8lRMUS1W7kS+/Xs9Y2dsnvtbZzu5yD3l+rHyj7j/VeMzRVfNTOkreU4HNf+iXsk640l5kdBOSbqTwoEcKJI0k8yEEAAJ8MqMcbo7xFVxgGO2hNAANeeHS0hEJQAAjgoKc4LAwEEcPyrqMXElvS20iKyXua1vt+QcAc4vvLsJLCsYqB8wKiYAem/uKusOiX41KEks9Nr/k6z0eNTn30//F5p2a1hN6eKn3jtegizAP73QYPl3bLj5dKvLzPhOGVrOm2UZSVpl266pIFb+QOn+tVBBLCbwAoiqLzkl37Q4TZev/4dM5o3rZW8aYNNniqz1OvQ95m6/8dtvFQ2Z7STG9r+RU40NuQ7yWFTPt2Xyl5VD4HSv19t/si++ZnXNZXoyzSkm9pwrrJrj2qnOglgq/AMch17jekv83rIxyfMllN6O2/qphmu+fVg+XvZKTLkswvMMTlJd69YsT8UCxJX1TJsW7YLJIB15rAGF1RcWh/KBRXA1prDlV16BBbA1s3q1J8Pfg9m9Fyi9/Puut5+8a/bWe+xdKPEhSpz4VfbXrWNzi8vX0qnLpSqVj67Jtbua9yxFQI4gTDpqtETQAA3+iVigBYCZADHGQ4I4DgB0hwCAQgggANA4pTQEEAAx7eUWoIp+auk76Gl75klGr7t1EdGD4+teen0l3c/uWHNqjtq58tRybzvcfsbIiY2y9g6I53BqH/2bLPLZcMR/eR8h+zk+Eg0/tZhFMD2OrzVNtGybYbmJ47sctUv41KtuLWuqRI+frGs2ri9iq7n4rXZmNcmcn7j9WqrxuUmyOwbYzlFuhaJazILZV6bB2TquoHR+/Tos73LQMRkoQbItlRjUN89Ofde97M4nrukWnkGRwG8O2Ncta/MaSIrRzwqbTo1kbxc5/tXr6d+uKU3dTvEeMPB6TskGkO756DZqd7tYt4rVuyZ10HiylrnuWrvA8yavkFKEegYVmMMKoCtYjxoG9W/jlE1LpUtG6Stfe5+97FeyehaGNcyxfGCayVj+fu+m/lZ75P0zeuMOFsXqAZ2Q/4JgABuSPpcu74JIIDrmzjXi4cAAjgeekZbBHCcAGkOgQAEEMABIHFKaAgggONbSuumR6o0Q68dD5uvfudfMloOOThWzjplVerXdd2yDPVf3J/uNEv2WveOmQX8jwNGS+fRZ7mKGz0rnRWpN2VSr2M/2HKO9OkVkR7HeMvj+Mg0vtbJIoCV2FPiJdKx0LPeqiJsl0FKRKZtNMSgUV/UHk9+Gb12QeonVKtdvwZZhtZMyBIjU1AfQcSWU9axbu83Xq8N6FQfbgI4yCv3ek7fFXSVO5reLmduv8ssA7G8WS/peP1Ez/tUX7e4daHkbVwl63IL5Z0+95mZw25i1jpePf9/9b1N9jvl59IXfgJYtVMPq1bu2duoJx5xrFmux6a+047c+Uq0xvTmzPZyzaSKmPHZ11BJ2XRjYzeVRWovI2DPbLV+Y9jXOYgAtm6YVnH0yYEzbKs9NAko39VYtTgOInHtMa7/O0hmrb2cg999rPu232dB7i/V1l7jWP2ssZcOQgA3vj9vGVHdEUAA1x1bek48AQRwnEwRwHECpDkEAhBAAAeAxCmhIYAAjm8p9V+yi/buIh/vO1R6vjNeStruL5HrfxZb1iu4SSp7JqW1jfUv7tu/Xidtnr410GZFqg99PbUx2JQN54vO4AtaPiI+Oo2rdbII4KCvaiu6blLHWg9VlQewxoKbzLGLJj+hqvq0jzXo2J36Diqo9L1izygNMl6vTeR02QF7nVu/zGHFQX8PlBd2kWcPmy/lq1fJect3leMotmXm2u8KfV2VnX/yTw9GJesexkZ+w4ZWut5EmpfKOlabran2KwrPNmTuLjHrJIB1G/1ASJWV+Uvzq11rllvfPuhobOqm3nBQ9X2XNh0WSACrwbvVUfaLldrU9NWxUXHMybtq19qy4J1gWss5BBGyug/1YCDdeFhT8duzHWtO+11LfR70elYWuXNGmF0HkbLWeM82ssWDlnOoTY3jhvy2RwA3JH2uXd8EEMD1TZzrxUMAARwPPaMtAjhOgDSHQAACCOAAkDglNAQQwPEtpT0zLfqKr0smmZukCrq5VaRVu8A1SdXM9PVUzWD9WrrK+ss8sZdv+Yjsh426pN+tktIR19drPcf4VsS9dbIIYB0Lkb32N169dn6QoGeZN+4sSSsuipGMThsLBhGkWvwoCZr90K1S1bKtFM951BWqXe75ST3dkdMmX0EFsM6It8u9IPMLep9ZN5Fz2lDLDiQqibt0l9KRM82PtbTz2zhNj2lBq/miSryoDH8lc99qcraMHVPpmJmr+s+4ZbzkfL1ctMzVm87p7H4vAaz6Vxu06TrFqr+Z18aWrNHZz+r8H4zNBUduGms+RPrj0c/KxQ5y2omvW9a2X6xYY7gqv8CMRyV2y4ZOco1HHRsq+13dF17lRHQn1nIOQYVsbb+jdJzo9kGvZy31ojioI4gAttb9Vm8FqMPvgYQ6R6+7+vcgZTRqyyNR7RDAiSJJP8lAAAGcDKvEGDUBBHCcsYAAjhMgzSEQgAACOAAkTgkNAQRwfEvplgFpbsI19d4YceomqWqyuZVXtrB1NlpsbGjdRW7OukPO23qTKZdKDIGzbeK90nS/dq6T19JGnbAjt528vc9oiRxxrBxztPdr6fHRrNvWySaATVkze7GnfHeNJ+PVe1UD1SrMgghSHYdqYyuVLei3wZX1tfvi2Y8ErjPqJKjdZLY9KvQ9Zx2bHkekoyHNp7lLc6/7zEsOOwlr67icZKZb5qt9PlYBnBfZIRdtmW7UEzdqCbd+QEZeViF7uuyllXX1IMnats6UxVaZ261rlfQ/s9IxA1iXD1Ab1Y3cdFU02zirY3vPmuUf954rL/3vcDl/9VgpLFsmRRdMlLTje8XcsG4Z1k4Z6U4xYO3Qyk9lsWe9+IhvRq+9nnJQwarGHVGbl81+1LfsSjzfUvbyCkFkrLrezzHf1bgvl/k+mNFjtJbZUDWH1RFEHFtFdRCJHg+TRLRFACeCIn0kCwEEcLKsFONUBBDAccYBAjhOgDSHQAACCOAAkDglNAQQwPEtpZP4cctQVFdyk3BuG2M5tbFv/OU2A2t28menzpcdb70rJ3x6rXm6XyadXaR8kXOsLGo5W9w2f4qPYv20TkYB/FyHyVL2616u9WDd4sle/zOahemT0WvPUPQTwGrlrA8kVHZikNfMdXxZswuDCGp1vah0Nh6yFM972gyeIDVi1XnWjcLsmaRajjpJQ786wE7fA1bZ5yX6rFn6aoyz1p5uitmX9pksJ1zzO9ebwym7X2URdz69i1nf2ykD2Npm2OapZkkHJZu3j5or+xzcJOZadimuv6eqjDcRSqYYD7iMzFzr4baGTrLXL+PbmjlcoTZNCyCAdWzoMQUVwGpelV161Kn81WPSDxOUcC6Z90ygLz9rlrJqEOS+tN4X6m2C9O9Xm9cKIoBV7Ga+9uSuPyuMEhf2dQ406Ho8CQFcj7C5VIMTQAA3+BIwgBoQQADXAJbTqQjgOAHSHAIBCCCAA0DilNAQQADHt5RO4serZqifsHP6i729jZZYlZbXzZ1m4STFvDbRsvah56VqhB5a8o4ppJRcWpXdzfO19Pho1m3rZBHAer0VDb1pn5N498t6tcZNUEFqz1AMIpqsr5lnGpnHQQSw03iCCmDFxZ5pGnR+bhvQWft0EmReD2hUW7dyBkEe1ui5PH/ea/KPf6TLWet2Zeqrw17n2HqHWGVuL6N2sNqA8qtmPaT9acdJes+TPQXwquteldJnn5ZffHq32aUpdMfeFpNtrjeRtGai62zeyq49zPIwTmOyM3TKhvYTwKrf6LWM77qM5e/7ZgCrNvqBhPr3ILKzbr91YntXMajuXVVmRNfn9huDui+VRFcM1BHkvtR9Wr9PatLOb0yN6XMEcGNaDcZS1wQQwHVNmP4TSQABHCdNBHCcAGkOgQAEEMABIHFKaAgggONbSqeNo+yvxesr+EkqNwFm/7mWdKrMhM6AdJqFm5SKZmx6bE5l3fxJ9a3kkpK/SgJ7vZYeH826bZ2MAljVW72h7WNSnN40pkarXzzVZhMttQLWDaCC1P+0vmaeufw9Sdu0zlNcqms41dWtiQC2y0M/FtbICnqfWdt4iWN1nha99tfl/R7WuEn8aCkOl4c81vl+c8FcWfvFejn2yQujQ1bCtkWnfWRnaaWUlO3aSM6eBW4t86I+d9owzYmVesCVpeqDF++sts5eWeZOD57itaZmAAAgAElEQVSCCGD9/apr+gbZ1E2vhZpTYxTAtf2Ws94zfm9wWK+hOaufIYBrS592EGg8BBDAjWctGIk/AQSwPyPPMxDAcQKkOQQCEEAAB4DEKaEhgACObyndJIZTLUw/SeVUJ9OtjdO59pm4ZiXOG78rS3P4DKnsdqwjAC1RFrWYZW4yNWX9+WYW8F87zpTTpnWPD1oDtU42Aayyf9Ur+kq8L2oxU66ZkVeNnF88WbNPq1q2k5z5EwIJoGobQJ06SMrPGOq5YtZxqLgKKt50DJcPGGlsNNXftTyK08WjJRl2b7box8Lahxbc9uxaPwHt9bnb90BUfBoZtqpGsv1wG7dfpr5TO6voKze4ND3zvGoC2K1N+qa1krZ5vWNs1KRmud8a2L+zgtR81pnDmluQkg5autekxEIDfSXV+LI6doOIcN25/nNA/bffWyM1HlAjaUAGcCNZCIZRLwQQwPWCmYskiAACOE6QCOA4AdIcAgEIIIADQOKU0BBAAMe3lG7ix+nnfoLE+iq9FrNubZwyj+0zcRPA1ozN8gGjHAHosbx/0lx58ssjpGfRk+ZGUxXN20nZjbEiKz6K9dM6GQSwXm8l3R/f42qZsuF8E87Kdr2k44yJ1UA51dG1nmCtd6sEcJAaqqq9tQ5wENFkLxuh+giSeWnN1FRiL6igVv3ba/n6lWiwcnGq0e1XTkO199oIziub1Usce20U5/WQx2m+ag4qftTmf6qkQ94dT/gKYLV26sgb38/8X+u6eTFxGrff95u9DrCfcFfjsWcpBxHAak5q7KpubdASC/XzDRT/VRRjMeYX2bvQc3NI65UUw1zjoZ+S/EHu5/hHWf89IIDrnzlXbDgCCOCGY8+Va04AAVxzZtVaIIDjBEhzCAQggAAOAIlTQkMAARzfUrqJH6dNj/wEiWM9YeMv/E5izGszKz0jt9fS/V5nV+3t89qyNU063HqBKRHKhk40NpHr5QpOyaGM95YahVqbyMbeoyRzT0NG5cbHORGtk0kAb2rbRebn3yEdf/pMRm4aa07fLr/cBL9mZV1ntcFVUAFsFbpBhZG1bIS6fhABrMRUzoLrJP2H1aaYUuML+oq6/V7yY2GNHy241cZYJVMXmh/53ZvmPbHgWrMGq9Pr93oDOaeavV7i2GvcXvWDvdppsZq78HnZmWlsNLa7BITXHJ3G6HW+U5mbaO1zl7IVdmkcRAAr7lqEO90DifheSIU+1Nqkf/eVVPToHVgcJxMXBHAyrRZjjZcAAjhegrSvTwII4DhpI4DjBEhzCAQggAAOAIlTQkMAARzfUrq+Im1shqUy8aw1VP0kk5NAcRO9tZG41pk6lajw+1wLHJVd6PQ6u25v3XRI1w122sQsPvI1b51MAtgqQrXsswpLNfsg0lOvhYrDrDeWBM4AVEJQNq+VsnHzAmVRWl/VDypx1Rz0gxIlVTP/8WpgAWyvIRyEhVN8a1Htd2+qtvocp9rbXjIzWq7CoZyG17i9HvJ4iuPdJV6yp94uJft3+VkAGxIwZ6FR9qVzFykdN7faDRQdoxEn+q0APyb27xC/NbCWtSgzNo9TD7aClGnQMYIArvl3Xqq0QACnykozT0UAAUwcJBMBBHCcq4UAjhMgzSEQgAACOAAkTgkNAQRwfEvpJn6c5ImfIIm+cm3JTAyS6Vfsspmb12vpTuUmvASZ/iy6gZyxyVRVq/aO8KwCWJ2gNo5TIvjEEyJykvFPQx3JIICd1lvJTpVhas++dsvwtvLV66w30fKq+xzPuliFbE0EsFVup3+/OrAAVmPVmaGVXXtIpOP+gTOcVVt7xqtf9mo0/g0xrjKW7dnYtS3z4HV/u20mqcbidW9rmZs16AopNYSuzgD2upbTAyU/AWwfg9/3m3XNdDwGiRXrwwW1uZ3b90488Uvb5CaAAE7u9WP0NSOAAK4ZL85uWAII4Dj5I4DjBEhzCAQggAAOAIlTQkMAAey8lEpoZSx/zxRSXsLBTfxUF2JdpWzEDMl87UlfSWXvL0imn1tdTK9Nlvxkjdu8/MSxoqnb6k3Mvsg5Vha1nC2d9q2Si4dWNti90xACOEimthWI27o41Vz1koC6T+uGbupnQWqo1naBtFStyUZTmo++pjVj3m8c1TY9211CImjJCvsmcn73g52n/TpeAthrQze/67pl6nsK4N1vH2Qc10fKh00KJICt961+oBSV4g4Zw+p8e2az31xUGy21Nc8gAthaBzhIaRG/uOHz8BFAAIdvTZmROwEEMNGRTAQQwHGuVmMSwFlPLDB/kavs0cuzFqB1ynqzCbUxAwcEGisBBHBjXRnGVRcEEMDOVLVw2/rLXpI9uvrmW7pFVOy0bCvFcx6N6Uhny6oPVN3ctA0/+gpge2aiXVRZL+L1arlV6DhJEy+545X557eBnG67JrPQzPydsv58yasqkqUFF8m3Rw6WCwb6ZwCrsUUO7Gpu4pTIoyEEsH6NX8/j/cMmS/ZJveSQg505uK2pk0QMIoCt2ZNqDHUpgNV40o26vmVDJ0mlsX5BDvsGckEFrupbx6L1OkEznO1CPYi8NK+5W65a6wAH2kBu3JmSXrzTKJ1SPYPVbzNHtwcuedMGGRukrYvpT41R34PpB3eVionzAwvgmmb02r8LgsSjGp+1XnQQARwkjjgntQkggFN7/VNt9gjgVFvx5J4vAjjO9WssAtj+C3vQv1DUZJfmOFHRHAK1JoAArjU6GiYhAQSw86IV3XCdtPnuPSlOK5A5nZ6TU3pVyuHdqqqdHPQVadVICaOqlu18BbB94ycvqeKXoeeZlWhkOOeN72fOxy6Ivebll9GqP9/QuovcnHWHnLn9Ljm+6CnzOmtOmyjNT3ffPE7DVXJLvSJeOnZuQiVwgwjg5x4y11wfa7IKZV7rB6RPr4j0OCZWAnutty55oDca88rw1tezZ1zW5Sv06loqxmsq7q2bfNVEAKs5WuvDqv8O+vuovbxCUAHsdG/4fQ+ocblt6OYnTd0euPhtoKY/j/zx9cAC2M7Aj4m1JrKqG5zx3iuSsXK57xpoFopLTTK+k/CPV4ZcTwQQwPUEmss0CgII4EaxDAwiIAEEcEBQbqc1FgFsf2XPaUdkpznoXyadNtCIEw3NIZAwAgjghKFMiY6y3jDk1oa10Y1z/p+98wCTokjf+LezmV2QJKCYEOOhgBEBEypBRRQUPFSCEREMgAJHUkkqUUyAmAATeoqi5wkG7m+AM5wi6hnBfAQlh40z+6+vd2us7e1QPT1x5+17fI6dqfhWdU/3r796K9U6DQBcc8R++DGDDp12kYhc3W18+XK9ofSlsDEYMHxfalD/TwjsBn44apOBSM7C6cJGoimVt+vsCoDN0MUJEDktLQ8DLpvoZO6XOdpYKuHmh+q0gZyqyb/PmkW/rF5PZ/z8AO23fa0BdYsnP+kICGXd3JZfCtvSwwUTqVmLQurWNUj7WVsOa59yiQTAKwr7CxD+ghENPavxAtpa9zAaM7K8RtudxlvCTglJ3SCgLFyNRE/GJfRmK4eyCwZoj6k5ClgXAHMF6jxmbTPXriadCGKz7m7XAa7LDuS6AWC7st3GXkL1ijsepqKmLQw93aKNvUZFm32fuQ4dAKyOmVfgrz0xkDCtFAAATqvhTvvOAgCn/RRIKQEAgH0OV7IB4ArxYMmbkugCXfWmT+cm26dcyA4FIlIAADgi2dIuk3o9070GJqNIAMA1R+W/T62mE9+bUOOLHzrcQE37VUbNGrDj28+MnezdljFLGMM73vMycCdIZV4p4waIzFGhXtpmZzfgFvnn6D9aFfFqjuyTedyAT+682ynzs1VhjTlidm7D2QIa16VhN5VTfl7kZ1EiALCEbkvqj6L9y74zoqE5qvyLvI7UatatNTrDm73xZmhWc8Qc8e0GAWXhKmBNRgDs597QHJDgBQCr8zjr1UVa8JI1NZ9zbi9M1GtFSNngkT93O785jdU4u419ePO/IROp6Jj2xlRwq8v8QsnNYkbtF/8G8pFRtMfSlkKd6OpLHrfrQeRnO3KmkwIAwOk02ugrADDmQCopAADsc7SSDQDzQy9HABg7Ig+6g4JtOzr2UH0I4V2bS66/01URfhjmjXPKz75Y22vYtVAkgAIOCgAAp8/0YD/HwJpV9PtBHSm7e09PcMkcefZmq4nU4pL2vqMU460+AHBNxbfPmE77r1tBH+d3pROLlocTFDc5lEJ3zg//7QZKZUIvy9TNUNkp2taAOnMnGJGL7DFcfsqf9go6cNrOQsKtX07f233nZh0htZL9faLBJLp0+91GxOzWzKY0tcmz1LNHTRsOL+dLIgCwvO9hP+RtgWY05ve+4SZbwUpd2w7Oyy8fQs0PpeJxf85JKz3kmOik9aJntNKqNhVeAK4BHEWUff64fn+eo2PnUeiAllpNUwFnQETq60SvGuec8Do20lbd97qdL+a5rUJ4NyjLea0i9d0AcHjF3QX9qei8Sn106lLhNuujo4lq4cH1uL1kUMe7rPdgKjurl9Z4IREUsFMAABhzI50UAABOp9FO/b4CAPscw2QBwOrNLhXUpezn5xr+hrzxh9OhAmBOJ3cadsqjPjivbTeSMs/sQi0Oqe7D6FNWZIcC1RQAAE6fCZFz80WUVbrH6PD4psuobfsCOrer+yZVxsN0FXgryigwINW7Bb2EVcCNNPi68pSCwADANed7/rCLKKN4D03d9xkBgP9pWEFIH1v1d0sX/HjZiEtdVs0gxRX0WGxKxT3S8dw31yWVCFsN2MAZJ+9hJ03cYLaEeWU5BfS3Rq9SfmgXDf/9GmoQ2kwMhA/v076GD7NsM+cNbN0kgGhLW4sJMwBmKJ0l9OOX1yo8d7oCch6GhSHxAlxnozN537P0L7Po/W3H0eAtt1DL0s+MKoKHt6GS4TOqVec23hIGcoR19sqlrtHnXLihjdgwLCRsSCoa+fTRiNHPA88bvp+MBAZGanGhRu5miLnDkdfSX9mpm169cmVZViBXx8fZHIkrz1teUVA862XLpsq+VRzZmopumWmk0QHAkUBx1dOX63EDwJxGznOvwD9G0w/FprgCAMApPoBovicFAIA9yYXECVYAAFgZgA8+/YrunPkE/b5lBx1/7OE0bdz1tE+9Avrr4In09Xc/iTv2DCN1vcI69M7S+4x/JyMALu/Q1Yi+0FkCLXctltYR5oglq/lphsa37reS2rapoF4XBm2nMz/sJOtDToLPQVSvoQAAsIZItSBJ5rRbKfeHShDDBwOmL/JOpb59QnT0Ue4QOHPaCJF/LS0T/rA9dj4QjlJs3y6kDZGTQUYA4OqjICNVy/c/lF4/fQH9KPyAjzqygs54bxhlr/sz6o9z6QJgrxunqqDUbqM22Wq7yFrdtllBKTdQZAeOuU3m6EhVXfmd3W+/7EtJi9Y0qWIOFZcQnS58c/n8+iG3LdW7e7ptlL68v+D67KCSGQBL2GVelu90Xso8nGb1yRNp7186inuSkGu7GCz+liUiU39eTwfU30XZ8yYYdiBqBKQO2AtH8worAQaWbvYjyXCNiXUbIrW4UC0P2LqADx14abZ80D3XrCwV3IA/t8n8wkUnuj8cZSug/17hu13t3BTR43YvL9S6jLo1NnUzr4bR0TDWcwLlp5cCAMDpNd7p3lsA4HSfAanVfwDgqvHasWsP9RgwhqaPH0xtWrWkKXMW09GHH0x9Lzqbzu83muZMvJEOa9G8xugmIwDmzTrkA6RbFLC80eWHP94UJ9i6PZUI4O10lE0cQftsWBtOwsso1+W0tY2y4weoPLGDOO9I7CWiRyeSJ7VON7Q2UgUAgCNVLnXyqcuGZQQvL/d/tv5oOvOMEJ0l/nM7KqaOoIJf1hJfkwZuHRfe3KnJiS0dX1C5lRvv7wGAqytuB1esNnFy21RJLVn+TvJnblFvYf9O4aupA6asImv9QCk3AMx9sNtAztEf2CZaWeqkwqeve82ilf8XoE0/7KZxW/pSbvkex+hMqQGX9VvdNrTm/Fl0ingZo3oGmwGw9NvlPEWTF2u9OFZhI/sTz2r8CDUTQbU3iMh/q8MO8MnxUe+bdMCe2fPW7LUc7+tHMtSnQnmv8FGNHua+6OSvZmEgIrEDvNmjxgZy5k3WuD4dAGz25tWZJ1Zla9Ul7qHlSyd+uaADgM1zUkfDZJg3aEPtUQAAuPaMJXrirgAAsLtGSJE8CgAAV43Fi6+9Q6v/86UBgM3HGb1upiXzb6dm+zas8V2yAGDzAx77aLINhFsUcPghVTxoSc82txvF7JvEMsey3WIH9g7UqmRVeJm1nRegutR2ywm9qPiSG6rt2m4WVd7Il7cXFhb9nS0skudUQktiqQAAcCzVTY6y5QPrupw2tGSf0YYvJ2/MNLXJ09SuU4EWAJbwiAHwSXtfN7xiORq4+ZU9tSKIk0MJIgDg6iNht6GTVaStDiiVpauQys3+yLykmlfNFE15ynbKWLVDFwBb2TnIaFonKGq3QZSTJvL3tkJEJRZVRSWqnbJrs6zL7iWzBGTFgQKqEA5RbMnC5+Weg9pWA7MqADZ7x/ILoA/ajKJuXYOOFi6B2wdR3ub14WbLl9J29yR20M1qPumCPRVaYhMtEYlfdQ+qC3DVOWdeZeZ2TyrzyhcgDEn50AGlZpBrBWntTnLVm5cDHXQ2nyycIzyiv/4s/MJJBwBz/erLKh1N1RUBiEhPll/29GoHAHB6jXe69xYAON1nQGr1HwC4arzuuv8pKi8P0o+/bqSfft1EJ7Q+gsbf0p8KC/LpuC7X0untWtMnn39LDRvUo+HX9aEz2rcxcm7eLtZDJuDIy8mkenWyqKg0SLv2llPWjGEU+HYtlY+YSaEj2xotyp54HWX8uq7aZ2pTM35ZR9mTrqMKsTlH2YSH/0wvIoBDx9lvHpdz3dlGMfyQNXjLMJIRN0MHh2h/Cyu7zGVPUOari8NVz2q8gA45rSV1P9faNzjwzRrKmjnCSB88uxcFLx2SAIVRZTIpkJcdoFwx53fsKUumZqV2W/j0q3S1ifrxv41ExcVEhx6iX7Q873+r14ZmF9xr+IzuX76O3t6nP50waYDWZnDy2jTlqJXUfNN7NHDb+MrrSPd+FOwxUL8xCU7ZoG62cV0vD8JbnYdC/oZYjaMc89KH3zJGzeq30G441d8amd8uLf9eBt78O2WuXmEkCR3RmspvnW07UzKXPEiZbwkvW2XuhT8bOJKCwqrJ9hAwKeeWC42vZbvM/bTKm7lqOWU+Ma3GnA/nvVd4k9YprJE1++YeRlRz2dSnqKJx9R9xO+0z/thI2WMur9ZGtWCpLb/Q4f+67F5k3CvMbTibLr6skP5ydOXczs7MoEJxL7NtVxnJPHIFAH/Pns97C5vRbcPsLR1k/1YU9jfq4Q3qtmXuJ+6F2tDBN/av3t8qbfnleNmcZTW0MGsV+PR9yhLe4iGxSW75kEn2463c5wT7DKHgOem9iZYcSzfdLOexoqW8P9W6JCvnDZ+f5ntiuzLM81/nXDOuS4/fY1wPeLwrDjzUuG91uy7kLxYr7d593cjDc0S7LtN9tNv1yji3RveljK2bXdukpS0SRU+BGN57Ra+R/kvKDBA1KMyhP3aW+i8MJUCBJFegbn4WlYcqqKjE3g4zybug1bwm9XO10iFRciuQVgB4y7adtGHzlhoj0rxZY5r+0LP06Rff0WOzR1Oj+nVp9NQF1LjhPjR66GU0ftqjdM7pJ9CpJ7em9z5cSyMnzaNlC++i/Zo0FA/o7suSYzEFMoQfMb9drRChNUG+4AiLiuBXn1H++DmU+ZfjjCpLFt5HZa//nbK7XUK5A26q0Yzgfz+lokk3U+bRbSh/wv1U+vxjVPriE5R1ejfKGzzGttm7+55ufMfevzM2dDL+vezcV+iy/vtY5tm+6DHK+ucT4e+W1B9FH+V3o+uvDFDbY2sSKNkuzpAhHlYLHn0tFhKizBRSgOc7W3CHxFzHER0FxPsuysqMTlmylL1FRIueCdGaLyrHKT+faNgNATqouTtpDn70LhXNGkuZJ3SkVSdNpc3vf0IXfD5MFCKuAfcvoQyxGZHbIa9Nhc+8Q1t+3UX5999EoZ/Xha9xbvmT5fvMQIBC4trO13ccAoJW/Tbl9BpIOb2vqibJ3lFXGmMsf/usfgudNOSyMw85nDJPOs1VajlHOaH83bTLFJ7PVb+vnM5L28z9Uue2XZ0Vv2+gPTddanytts8tb9GMv1HwP++L3/2/id//c6sVH27z8Ck1NDK3Uc1Y/s4/qXjuXcZKIbZxGbO5rxEFzHZRe4bMoQ4nV14T+NoeEP8FQyGSmnGeBsFNxgsg3sjx+5zj6ay+h1Or0/az7LrsH28aOWlTj2pp8k3tNt/3mAs0a+E099S86n2Leh/mOqlqcQKeA+b5pNNdL+eZubw9N/amij82Uca+zaji943V7ont6lbHPEO8AOH74sBBLanOPY87NlfOcb5nzmp1nDHf3e6fg+KevEjcm8v7crdzUzZAnV/8Gf/GuR2yX3bPAG758X1sFIjFvVdsWuq3VPGcKl7wBRP0nOy39cgPBbwoEBBMhsQtO9+71+Yji9/s4Eh5BdIKAL/7wVp66fX3agxanx6d6O33PqGAeOgeNaSv8T1H+94xcyEte2JKjfRXDbuHep13OnXv3D5pNoGz2rVYLl20W9ppXlarLgUtHjPPctdumSbU/FD66oqHqdnjw6nR5uqb8JgFK585gep9v5r+JzZb4Qc6N19P8+YVD7R8mtp3bxrVJdy87C/r32+IaCgRBdQpvSN1UuEqBguIVBglAbgm3EqNfv9MvODpKqL9Dhfw5mKqX7+Cht/k/kbcaqm5XAqsu6TavJzWaWOsZFYUFhDVR8fJOsFse6C7pDqS8VctCtz88q2WlkdiTxE8vA2Vn9WTcuffQW62E9wnuVRctX9y00Qu17eyc3D0D37uIcpeuZSszk85ZhyVu6LulXRM8Xt06fa7DQi886x+lNW7MjJXtYBQ83yRdxoN/+Pa8DBtbtuLCgfVtOiS9zm7GrSkO/MeMdK3LF1D59X5Jx38ywqx74Cwkhrwp5WUm6WDWQtd2w6ul7Xio/T6Oy3vnyKZc+mYx499gdmqRcc+QvUSD7XtqGXlwOOi3jOXt+tM2a89aXkuqGNY/9cvqXTKLcLbuimVde9v7L2hc15zGaqntm6/Mle+SKXDZ1FIrPTDAQXiqQAsIOKpNupKtAKwgEj0CKB+LwqkFQB2EubJF96gL7/5ke4aU/nA8Z+139LU+56kxfePpW/X/0JtWx0Wzt7/pql0ea/O1PXMk5IGANs94ElfOivfQKsHG/nwaLeJifnhyenBUQomN2aSyzOlZYTdxk5mACwjhq/sH6QWh0TnzZoffzp1Hhkgee0qset3G9xge7nyeEwLAOxRsAQlVx9QuQkckVcUqGu7QaTaTKvrUfgllliuXSz8SSsslq/LMsLAzeTNqvo0uj0EM0wM/LpebFg5OKHnMwBw9QnstLGb2S/XDXb6PTXkfNJ5KWGee14AsOwXt5dhM29opePlaWy6OmWQsfS7eOw8kt6k/NK2eNx8y+47+QCHXy5bbMhm5VUsK5Bg/ocON9CDP/Q2Pj6+/D267Pfx4twSbRlb2RYrAMy2L6/VuTJsAyPLtLqPUe9JNl41i7ZvFxA8r4Kai5fNeVOuN0Cb6m3s1Gaux6xF+AVD78FUdhZeFvs9f3Tzh88zsaEbbyCse5jvH3VAqRosIaGszrnGbZL32PyigYMK3K4LDQMlVDyou9EdBr98nurWJeG2bnr+TeQVNE6/m7q6Ih0U8KoAALBXxZA+lRUAAE7l0Uu/tgMAV435H1t3UI8BY4QFxChqefD+NHLyPNq/aWMa1L8Hnd17GM2+c6iwgDhWWEB8TrdNnEuvLr6bGgk/4GTZBM7uoVc+OJdZPLxYARd1J2WrG2czAHbbQIbllQ+90jOYP5t80DIaPCzf0tez6JGHqNF/ltK2QBNqENoc3mSuvdg9/NyuNS031Kgs3V3D1YcEnQcEu0uDfDi0i7KO9yUl+x/Ca1lENZe36xLxTT+PqRsoi3e/AIDjrbj3+tRrh8z9RINJ9EXeqTRxQrlrgXaRdrpRwHaRfU7XQHOjJOwKCr/PEhHFl6gDALi68k7g1BzlHWsAzC8PA2veF1G5wp9eRAs6HRLYlA64TUSidgn/FpYMm0HBIyr3EXA6wpu5CoiZsWWTNihS5zxfy3U2pwpvCDtzabXfDic9nSLszWP2w48Zxgtc80vpagC4KqJ449k30N/3XEL7f7+cGjeuoBPrrKE6n6wgx/sYC1Ao62IQLn/TdCJ61TZyhKbOZmJuY4nvvSnA91ZZn4nz7OyLPYF3+Tsga9O9v5PA2cvLFuP+VvhD88sZCXNdAXDdHCoeLWxsxH2WPHSBrrwe6Kb3pjhSQ4HoKgAAHF09UVpyKwAAnNzjg9ZVVwAAWNHj9ZUf0oy5zwoD71Jqf0IrumPEQGMTuHc/+Jymi883/b6VDthvXxopbCLaHXe0kTMZAPDOr78yIl2sInyy/r3CWGJmdcMob1xLBt1R7UFWRgFbPaSqS+VkVIZ8WDKXI6WVUOVffV+mI/85nvbbvpZ2XXWH8BO0fni2ixi2A8DqDb/bzbdskwqAebn68iZD6NyLCjzbTMi+cbm6DxpWFyF+kM6Zd4dYOiqW+TpEOTpdwORYcxpdwGAuT8L0SPPH6gILABwrZe3L5TnpZS7K83Cj2OjpO7Hp02l7XjRe3uy4YAiddYa7V7od5FOjgItmvWTbYDsALM8Lq+Xt5sLUCGaGUHtO7Un7WWxsGevRAACurrBb5Kz8zWLQ6mVJdazHUQIbuaImf9wVBsjVfVFpfqlitzLH3I/w776IHGaApgOAwxor9wN2UfVqfXb3CxyFzNH0KnzlfOYXMioAtr0GCODOFhhq5LD5t9zqt9/q5Y8OAFbBve93PFIAACAASURBVLGx3nfC5koT2sd6TqF8dwXkdVzXWoFLlOcMW6fwhoi6kNUccex2D9pQAOC920SY+si+FCjaa3RGty73niMFFEgeBQCAk2cs0JLYKwAAHHuNUUP0FAAA9qllMgDgXZ98ZPuAp0boFJkie+wetsyeiqpEVg9PbjYQagSR1sOX8NHjBy41Ypg3nBt8XbkljFEB8N46TWllj6epbZsKaiC8R22PBdONiCJ5cF28Oc0w4VXqmE8pUAWu/LH5QdfL1JKaWz3g6pYj4QKnj+RhtXKp8AjjoT2UW0A7R86jnP0TQL8sOgwArDsLopdOXh/4gbhk+EzXqHB5Hpa0EJtlHjKUzl55HZXWa0rl9zyp1SgnyGcXnagWbAeAdVYpyHLMFhZ83eFrSa8L3T2MtTqpmQgAuLpQbgBYXj8ZpPBvR7IAFTkn5XU9kuhkdU66wSWpmuo/XC4iY3W8SZ0sWJz0DN8vmCJw7fqqwumSwROrWUDYjbPjfUxVBKbVC2gruwedexD1nobnE0N7P7/vmqc9kkVJAflSwst1QF1Jxs3QPdfMEccy2t+uKwYAFrvEV8wRG56KyGE+vLQzShKhGCgQcwUAgGMuMSpIIgUAgJNoMNAUVwUAgF0lck6Q7ACYWy8fqsw3pjJCxwwLHX39XllY42HSarMbVTX1QVCWzVDJztNTgswl7Z6iMz6ZQM3K1tG3F8+kA85pbTkYqp8vJ2CY+1u9tnRlf2tgbNzcTxxB+2xYG96YTm5UY+dLbFWxfPCV361q2p+2dRpAnTSiHdXyzA8Q/+j4MB11TgvPkYcqKNh+TBfKGXKbp9lt1pGX7/NS+L6XukdvqhXxw3rG1k2uwNBL4wCAvagVnbTqCwWdB1TzdUMuqdV9GeEE+dwAIPfYCezoAGQJmYoCBcJ+ppmxYaW0sOjZI0jHtY2O/7jO6AAAV1fJapPTatfQqghR+ZnOfNUZh2ikkXOPfaWzn5trFOlltYic+8bv1nlXUNkFA7SaZV7S7pbX6gWKeaNYq4rNkJvTOFlDmGFudr16VK8gm/7YUULymmMFW812GrItuvYg8gW4zrVEfWnE8NfrmGkNEBLFTIHwCyERAc8vGXQPCY69nmvqvZfb750EwMHXn6fs5yuvB7qR/br9QDookAwKAAAnwyigDfFSAAA4XkqjnmgoAADsU8VkAMC733zVWPZqt8TZLkLXLkLHi6+flE9dgsteh/IwP1SqZdu1t1rEsMMu47IOCX6KMgqMHcY/FpYOz9YfTUcdGaLLbOBlcPIIqvvbWvoytwO1KlkVztOtS4g6nKIHPOWDpNzcbmtmU5ra5Fmys6qwm2pm8Lqs3lD6sNHFIuJZPxqZy1YfQooyCmnmUcuob5+gNkg2L2Xk5fsv17uRvEDxnEXTKHPNKmPjHbnJj89TzMgOABwNFb2Voc4nHaBmBrBy+bVuBLET5HNalWC+DliBLh3oI69V64R9Bf/XZfci4/rweMMpcY8CBgCuPlfdImfV3xXOqTNfvZ0NkadWAa4sxQsAVl80ukFctZVhb9Iq/2C3vKqGEkjpRMuqvz0SstpF48v2qS+lA6d2CwNgp3EO+5+aoJ7TJnVcn9naQudawPmktVUkYxb5bEHOaCjAQQkBAe5DYu5XNNJfxRTxuVa1ao3brguAy774xFi5x4fbuRkNTVAGFIi3AgDA8VYc9SVSAQDgRKqPur0qAADsVTFT+mQAwHueWeC4xDMcoWvaDdvpYcvO18/WNsIiMpilsnoQ5IfKzJViIx3hf2YV6aO2608P4za2/rjyIZXB74lFy4nh5/hmr1DTpkRDBllvPpUzeRBl/baeGLb22PmAAXwe3/9eGnZzueXGdFbTRN3c7q/b7jI2rPOy6ZUsM7T4ISpctTQcjRwJSJZjzBvn8SHb8schp9INwjpD58i4bwLlf7XagOGs4/+El+usxo/QIQdX0FUD3JfAm0H2Ay2fpqNPa2oAcZ2Dxzrj53XCs7JnjYc2AGAdBaObRgXAu3Kb0opznzZeBuTnWddjhkUyepBTe/HftYJj5mXjVi1wglU6IEsFwCvqDqTBW4aFzwEvL0GiMQrpAoD5uqUDaNwAMGseafReNMbLqQyeV/wyJGPr5nAyLwA4Um938/XYDUyZNeQ26pw3nM8MWd0AsPpSmq4erQWA7VYauc0N8wtwXQAsATr3L5Rfh4pnvRzrqYLyE6yA+pvlBcqqL8/dzjMZAVxcGgy/tLfa3DDBUqB6KOBbAQBg3xKigBRSAAA4hQYLTSUAYJ+TIBUAMHfR/JDktrmLna+fV9sIOzsJq81ZuJ1y6aXc0E71ZbO7IZcPagxfL91+txEFPHXfZ+igE5raendKPRad+jL1f+9CYxasu/0N7WhZ9aGXLSeaC5sKBskyYnDiBD3oyuXITe+4HBUklwv7BbsIZvO0tYpelJHQum1RgTbDLz7GN11GBx9doNUOcwQxw/V3Ci4WUcgh1831eJx5I0PefMUKFgIA+7xQRZA9bJtQFVnP51TTVk1sLUGsYJEa/Wj2IDc3yQnk6Pj42l1TuB4nWxvZDnkObWrYmqbnzqEZGzoZX00+aBkNHpav/WIoAqlrZEkXAJw761bh2fsZbWzekb7sPFFEWlu/YHCDfCxgpNF70RgvtzLUtllt1uqUX90ITnfzOPW3VJbtBqZkOmkdwS9nud06G6CZN4d1A8cqzA3et8wAwFvW/yQsIPqR08Zd4RfTykZ1bnPDfO3QsYMx5tPbL4aX6CdTRLnbXMP3/hQIW7b0HkxlZ/XSKkwFx27nmQqA+eUOH8HWHTxtuKrVKCSCAglWAAA4wQOA6uOqAABwXOVGZT4VAAD2KWBSAODH7qXslUvJKYrA/ODkFqFj5evHUnm1jbB7ELSL6LNqlxqJYwWRJGR6tNlsOmXb84alwz8PGkUnDzvHFtqo/ZBLPb08XKta8EZR+aFdNGlTD2M2vXHyLOp45bHaM0suYWXYelLRijBI3j5worbvqAqAl+wzmsb83teIhJ5y8Cs0ZpQejFYB8Om7K3X8IrcjZdxyJ7U4xN3/tPz5RVTv7cXCP7WJEYEsYbhOBLEa5cb2EUWTq28cBgCsPZ2iklBCk/9ltaRtwtqE58KS+qPoo/xu9LeR1lHyEsCavcbtvDvVhrq9kFLPNzuQrOMFynYURbNestRIAh9e/v7hEUPoiBeG075/rKWdQ2ZQ1jFtoqKrbiHpAIDNm2jOaryA9u7b0rC+UaPM3X6rpKYqhHHbiEl3HKKVTm1bJDCRNTBA0RHe5qFqY+AGpmRfVbuVgNgATQcAm+8X3AAw1yXbFrzrKap78IG07aMPbTezrdG2qg3ndOeGCrX5RSMfblHYKniPZMyiNXdQTnwVMFYi/b6Byjt01VqdwK2T9ik6keIqAI5vz1AbFIivAgDA8dUbtSVWAQDgxOqP2r0pAADsTa8aqZMBABdNvNH1Ic0coaPz4GQVKaNlG6FE59g9CNot57Rrl84GUQxq9n69npq99ZDjknOzx7EEV+XtO1PZ+f21b/qlFi9c9Bat/iBAfxXRx2ydUNqqPZUP1dt4ROoQzK1Dd7V4lUq27Q6DZC9AWsIUGfU7/PdrjE2s1naaSIf1aa81y+UGPGsumU9rv69Lf/3iWsop30O6MCXrgQmU8+Vqkp7I0orDyYs5/GBfZSEi/zY/nAMAaw1h1BKpLxS+zDvNeCkh59awm6y9qV3tYaqgjVUjda5Hbku33b5XIVDogJY1mmG+VulArKgJbiooHQAwLZhOdT5ZIV5UVXq323mO68wNFcLwv62shWI1Vjrlqr858YSJbi9PLc/Fqg31uJ0MQXlVhlv0Ppej3i/kzLvd9Z5E/u6GLh1ChRdeqgWAzdG8unNDXR0gN95yA8DcJwmpdSxsdOYB0kABAGDMgXRRAAA4XUYa/WQFAIAxD1JJAQBgn6OVKgDY/OCkAzfMvn5uUQ5myMzShqOJLJbTSSCjgk67djm1V908KmPrJsNKgCP9ikUUaUWdwhojbH5orOb75mHZXw1bjb27KX9ET6M+nQdmTmduy4aNRAe8No1yP3rD087QUp+tp19BKxteSYd8/SKd8PWDWt6rUiBzf2REpFPUpCquGkF84Y4HDAD9kfATDlw30tUCwmwfYdYPANjnhcpjdruI8gfavGLrq20HYHUgjU4at43g3ACwWySynYdxPIGdHKZ0AMDS+obB72l7XjT8luc2FKs49vuOOg1qHZ6xOnNDJuaVLqEDW4qXViM9zvjYJ5e/d/GcT6qNgQ7wZBXMG+rxZzp51fuFLGGf4BY5LF9aVgiro4JRd9P25a84bmZr9TulOzfkbzz/ljHQ1rXhkNcML36wsZ9JqCGVFQAATuXRQ9u9KAAA7EUtpE11BQCAU30E06v9AMA+xzsZAHDJLX0oQ+x47Bb1pFodZK1a7rhxHMviNWrYyjbCMXJ37gTKXLu6WoSpHeh18vA0g0v5oG1lJWAFXfmz8HJUEfVUMnym66wI97X5oVQ8bn44vbq7efkpXVzLsYLmYVjvsFzdXLBZNzXCmudFpBstuUVNqu2QfWcLjF3rN1GvP+4xvtZ5eFYj1TiPebkyALDrVIpqAnm+bWnSmu7KnENjN11q2Hr8OmgeNWxbM3qWK7c7180R91YNDZ/frdtTyWDr6Hm3jeDcvD3Nm0HVOIeE36lqpaPT7qiKrhSWDgA4e8YIyl63ltj7fODWcUYUMEPgBrm7ie4U16yql3c6c0NKx9dOq+juWI2Tl3L5Gs2WCkGxtFznt8FL2XZp5e8Uf68DcWU56oZ6Tp68ar3qbxmfR3w4vQgN+/vnF1KdR1+jHU8+7HpPYvxWC8gfEBu48soUPkc5opdtW8r63GArmRlqxxPCR2McUUbtUQAAuPaMJXrirAAAMGZIOikAAJxOo536fQUA9jmGyQCAS/udYfTC7QEvHM0iolwzfvmesv4tokwdIl7lwyNHzfADa6htR1ePPjOEcQLAVkDGLmLYzjKC+20GwAwMcp5/yNh1vUSxo5BDbRU1JJeIuj20OpXB37lBJvN0s/NNVR9ydWCBlW5eopfsYFd46ex5V1DZBQMczxY1EpvhjdQidICA5GP/hORWhaibhfH35nEDAPZ5oeK5+Y/FFBDnfWn/21w3nDG/UHDaYE22zDz+aovlfLZ7SaWzIiF8DbDwiLa6DpgVs/M1l+msrlVh7/RhM7T8VzM/W0WBb4Rfa34d1/PFaUTTAQBLyxneXLDL7icM+xx5qOe/ztzwf3bU3hL45WbZ9RO15q9UQV2RoQtL1fMr8Ot6rXsSeX7ljZtDuz75SAsAq17dJO5Nsl97Uuslowq1dftUe2cFepYoBQCAE6U86o23AgDA8VYc9SVSAQDgRKqPur0qAADsVTFT+kQC4Hp7t9De77+h8nvHkc7mE+EllwKgkIic4aWQbhvDSLjK3WZYzNE2QYcoPbNthHzItwI/ZlsKrsMJGFtt1mYXiWsVWWt+uFUjUxku5fCO56aIZLvpYbf01AlUW5WVN0VEM4mHZfM4uEU7msuy0s0patoOjpkfjGUZOhDXyh9ad4M9qQPPLR4Dc9QwALDPC5XIHt7dXAPmR2KH4OQP7gaQdSFfeD7NXFoDYjvVL9VzihK2OofcbCfUUVGjLflzXRsYq5FNBwAsx+K3u96k4vdXUctXJ4SlUD1XdeeG/zOkdpbAL/esrJCceqvOZS+wVL1f0LFZkOdXVrdLqHj7DuOltJvnvAqag607aANgWRf3G56+tXOup0KvAIBTYZTQxmgoAAAcDRVRRqooAACcKiOFdrICAMA+50HCAPCmH4juuC7cep2HtPCSS6XPbgCYQSQ/gHM0LT/Q8dJLpyX9ZvDqBmXMgFDHMkKNDrMDseHoZYtoQTug4AW6qlFI5qWn4ahBi+hj83Sz08fr8nMr3byU4eSl6La03gzX1Eh0N99Vc971rfvRoWsX07et+lGja/pTfl5lCgBgfxcqM5x8oOXT1OKkptTpjJBlwTUsRRR/a7trhtO57hYZrwv53Gwm3F6E6WwmqfbPy0sUs4+1G8hyGtF0AsDq9cLK/kZ3bvg7Q5Db7rdJx8JH5lWtfHTuSeT5FTi4JZXlFLj6Bst65H2DvCfROdfk7zuX4aVPmBlQIJoKAABHU02UlcwKAAAn8+igbdFWAAA42oqivFgqAADsU92EAeDcTAqM7EuhPzYZPdB52OJ0NaLUJi929YdVN5Jxe3gyL7N2A8BmQBheRm7RLquoXidwaRd9agcUVEDuZqfhBCXCUYMuvoSspZM+XkCyXSSx7hJ2Jx11IK4EN+aoLzfwJ08/qcMTDSbRwG3jaV1OG3q8+b007KZyAwIDANe8UPGYBY9oo3UFM5/3H4vN+Z6tP5q6dQlRh1NqQmAraxL5mVX0nNsGkVbR/mrDdSGfrUe40CJ39q2u10GniF4rCwsvL1Fk20INmlBg22bafmgHCt54Z/glhtZAVSWq7QDYab5I33EJ4u1scrzoibTeFZAvS5xsosylVoOsGr9/6m8grzKxWg1j1XI3z3irPOrvu5U1lHeFkAMKeFcAANi7ZsiRmgoAAKfmuKHVkSkAAByZbsiVGAUAgH3qnkgAnPfaYir+++NGD7xEtKh+t26gk8uW8EZK5RZtI8ErP8AzlHHaRMYcSesERK0gpRM4sgOX8nOrh0Bd6OpUrxvsUqecY9SkiLw2/A01HqTtytGF0Y6WGWJHd7b+cFo268cSQz6Ybws0oWcb/I0GbxlmAOC5je6lM0WE6lniPwDgmhcqtldhf+7SASNdN74yA2DebGtW40fokIMr6KoBwRqFW0XKOm1O6PQCQRbuFEnuZhEhy7DbEEynfi7Dy2aSsk7dlyjyHFpVrxd12PmikX3ywcuo78B82q+Ztx+a2g6AncbLPBecora9qYrUsVZAfWGie0+SP+92yhDe2fIoiuCltNtKJlm2+eVCrPVA+VDArAAAMOZEuigAAJwuI41+sgIAwJgHqaQAALDP0UokAGYP4J1Dexs9cIOyajf54TvrrRcoeNyp2ruRywcnLsftYUsCVgaG7OnnFJ3sJWLYKhrPMRK3ClyaPYu9bkxnNUXcomKlXnabXnGZbtAqGiDZbeMr2TcnHXV8jZ364qaFzMvQlyOAJ23qQUUZhTS+2SvUvl2Izu0KAGw1B714+srIvC9zO1CrkkrYwptv1WvZVBsAc54wQDHZm7jNZc7r1X7Bqs92G8Hp1M/ledlMMnxuCG/w7JVLXV+yyWsCz+GT9v7T0HlJ/VG0q20XuuxSa6sNu5+fdAbA5lUDAMA+b1LinJ2vNZmrllP5Wb0oKDaOdTvy/vUSBZY8GE6m81LabGfl9DvrVj++hwLxVAAAOJ5qo65EKgAAnEj1UXe8FQAAjrfiqM+PAgDAftQTeRMJgOsX5tDuZUuoaOs2Ku/Q1dXKwU9X1ahhNwAsH+ArhP9uxpZNrsuyJcjiiNzc+XcYXsPF4+ZbNtcMEyMBl05AwSnKUW2QG5TQibzVgVa6m6g5RRLrePi6LcF3g7hOnshu0Z1Shx/y2tCDDe6lGRs6GVLfut9K6tkjSMe1rUAEsMXZIMfVaVPGMMSsiiZfUdifmpd9b8DJZfWGUqO+Fxn6mg+7+W03r3XmsmO0/qwRnv0/1UhBp/ln7pvVXHayJND1AZaazW00mxoGN9Kl2+8hBu6PN5xCEyeUe7r8pjMANr/4crvWehIWiZNOgdwNP1DmxD/3M9ABwNwJ9aW0bp6k6zwalHYKAACn3ZCnbYcBgNN26NOy4wDAaTnsKdtpAGCfQ5doALy3JEjbd5f67IV7dgY82fMmUEZ+IRVNecoxg9kyws3CIOw1KKwOONLOKWLYHHnrBgesYA8vnWcwbbfU1A12cufd6pXQiH0Ni8daw2wdaOYGT7ktbuWE2+qwKZ2TLQbX4eSdanwv7SrOu4LKLhhQbX64ATSZ9+fj+9HDW6+iET9fSg1Cm+n1zk/R6b2aGGXBAqLmKScBML9oKZr8pOM5KTX+75H96Ost+1OvP+6hXQ1bUuaUeZb57F4o2EWlywhjR5uQNe8bL3iszm+380ltpExb3r4zlZ3f33jx5fYCo1r+uRMoc+3qaqsmnM4hnQh49ZrAAPh/WS2NSHY+7jt2GV1zQ777RVZJUdsBsNt4qS++8qZcTxlFe6ho5lKqqFPoSUckTn4FcrIClD36MqoQv8lOdlHmnsjfJKcXxsnfe7Qw3RQAAE63EU/f/gIAp+/Yp2PPAYDTcdRTt88AwD7HLl0AsFeZ5AM853PzAgxvnlS1CYwTAJaRfjLq0Q0cWQFUt43pdKJ35aZrTktP3aJ33cAtayfBmlOUp1s5Tv6+clzddHQD2o6R2Ht3U/6InkZVVpFaat6dnQdQnogGLfhlbTWrEQDg6meg2dN3Zfen6IiOTalB/ZrRvJwzPKd7DzZsX+R42L0E8RpR7gb0uA1OINVt/qm9l3UZ1xbRnzKx1FynflmG1caEbueQzkshuYnc5IOW0fayunTl1rFGpPX/zr+N6nfv4ukSmu4AWH0hxS8N7K4dnkRF4qRUgAFw7qLpFHz3ddJZzSA7YVhZvbqIgmL1E1/TcECBVFAAADgVRgltjIYCAMDRUBFlpIoCAMCpMlJop/FMXiEOSBG5AgDA1tqpu3S7AeAaEcMWUaSyFjNEcgNHVtGnbgBYx3vXrQxur1v0rk7UpJXvsVlxN3il4wPspiPX6WQl4RZB7LS5ngonGeZZlQUAXH3UzQCYfWe/r38q9e0TpBaHuFs6SI2DbTpQyfV31jiJnea3VUS5LoC1A6kSnupsAMXnZ84T0yjw23qx+V1lhL1bhLraQavzwe0ccjuX1fPjt7vepK++zqD91y2nv7w3TUQoN6XiMfNco1dzFom0BxxmAO1UBcAM1yvy61LmZ+9Zzis5Dm7zRX1pxatC+MAy/8jvU5I5JwPgwp++oB2/b6PQgS1jamWVzDqgbemhAABweowzeilWJwYyjHuZTduKIQcUqPUKAADX+iGuVR0EAPY5nADA1gKqgMrNM5hLUP383ICxChPdosPMADUMkBs2cbSykNG7dhG+OgDYLXrXDYJIZZ3gKafR8T91i0Z2s8Xgepw2vnMDyF78X63SAgA7A+CP87vSs/VH0yEHV2ht6sZzM+u5BylQtLfGpo7yHAnl16HiWS/XOMGtxkd3LtvNIZ3zydwQNY/b/LPLK20F3ACw27msAmAJKvnawysFMrZuDkcq2/3chIF86/ZUMnhiUgFg7oeu9YIcB+6nk2WD2wsjFdIHfl0PAOzzPiWZszMArleQTX/sKEnmZqJtUCAqCgAAR0VGFJICCgAAp8AgoYlRUwAAOGpSoqA4KAAA7FNkAGB7ARlM0p5dVH72xa4AwWpZt13J6hLurH+/4QoHVIBKwkMyd/atrhvTuUX86QArN+9QXWjmZuGgU44TvLWCV1bam+031DRuAM4JoJnzWvUXALj6iEg92Wt2//J1xpe8aV5eLtGYUTU3HLMaH6mzedm1Gwy1+t4N6MnWW9kv6M4/85xUo4k5Ajjzu+q2IU6Xdts5Z7P6wO1clqsGzH6kbv7Xso1mcNpov0a0Y08ZlZWHfP5C+cuus3rA6jrAn/GmnsG2HS0b4Ha9UOcE/9vJFshfD5E70QoAACd6BFB/PBUAAI6n2qgrkQoAACdSfdQdbwUAgOOtOOrzowAAsB/1RF4AYJ8CVmWXgMUAB8NmUPCINrYFhy0a8guMzYH4cFoerALFkAASOgDYzfNWBwBzu5y8Q3XALZeh9rdo1ks1dNEpxy2CUac/ThAsvITfZqMmL3mtACMAcPVhl2O+orA/nbT3dWPTvFmNF1C9Yw6lyy6tCQ2txtfOXsQNAFvl0wF63AM7oKgz/8wTX76kKR1wG2WuWu4JAJstI3TOIadz2U4zN3As+6QCYAanDc44SwsAc/kkNubUjdD1erVWX8zp2HPI6wDX89OBXWj3ZSO1LEms2qVqAgDsdeRSJz0AcOqMFVrqXwEAYP8aooTUUAAAODXGCa2MjgIAwNHREaXERwEAYJ86AwD7FFDJztGBoQNaGv+5AQ3VMsINDqjQqez8/sS2ETqbzUgoFTy8DZWf1TMczRYGsi42Etw1CZrK23em0BFtq21WowOdpDxONhA60ZcqYOf+lPUZbOjMhwR6dkv+1RGWupshvQ7A082brgCYxyEgoljZM1aOjd3ZJefO2/v0p4OLPqOWpZ/R880nUoehHSw3grMbHyuo6QaAuU3h+Vj1skYXAHNeq7bozB+zFmo0ceZnq4yXQTqQkssJR+ZWWS7onItOqwKcNJMaO7VNBaclJ3WmBsPGawHgaisnOvUU5/UN0bsg8/XrlYWU/dqTRplywz2nCuQ4cpp1OW1obqN7qWePIB3XtrovtY7ljLx2cllu1/iodhqFxVUBAOC4yo3KEqwAAHCCBwDVx00BAOC4SY2KkkABAOAkGAQ0QVsBAGBtqawTAgD7FDDC7F7hgPTALT+lM7FthJvPMDdL3ciOoWnJ8BlGa3UAmeyWBE3yb9UX0ws0kyCG2186YGQ11XTLkdCOM5cpsMhLf8KRkybYpAPwdPNaRZimQwSwHIcKEdlePPlJx5cgcj7s7XIFbd8uNhz7cDHxv6nnAMszym58rKCmjqe0OYKWvW7Zq9XOM1ttlBke29knuF0a1M0aM7ZsMpLrbhRmjszVAcBOVix21hbqdYQjlctP6eI4PvxlUUYhTW3xCp3frYJaHxt0lEG9DvKLgyIxb6J5VLsGVsFyp/JVAMzpDFuSPGFLMrK6LYnO9UK9dlpd96LZT5SVOAUAgBOnPWqOvwIAwPHXHDUmRgEA4MTojloTowAAcGJ0R62RKQAAHJlu4VwAwD4FjDC7hD+cXSeaV4IMhiQMi3QAsLRNkE2UEXxegKkKM7kcAiL1oQAAIABJREFUFQLpglvO52QDoVuOGs2nwiIv/bGyxghHWDc/lIrHzbcdUae85gg/MyBKBwAsISILuLF5R/qy80Rq2yZE+QKgmY/wmAu7gIziPZSzcLqAizVfDqhzx+xPy99ZWYPowFBzPh2gJ/tghsde5p9ZB/liR36uC4A5vRqZm8MewmtXO/rWOrXTSTMdoC712xZoYth5zG00W0TQtqVhNwUtI7plf1WbBP5sQYuH6dAzWlL7dtbewQy+cxZWvsiSL7ScLsHm8icf/baI6A1Z2jpIqM59KArUNbypZT8mTvAOgNVrp871OsKfEmRLsAIAwAkeAFQfVwUAgOMqNypLoAIAwAkUH1XHXQEA4LhLjgp9KAAA7EM8zgoA7FNAH9kl/NGBAypc4yqdovHMTTJHSXoFVsYGVd9+RoHf1leD1brgVrbHzoNUZzk1l2FYDPy6jrLnTaBA0d5wtKbX/kjdIwHiEnS55ZVRojKiNC0AsLLcnseLPX337tuSBl8XrAGB1bnDadnXmqF+sbBkqGjUrNoUdhpfK49aHQBszucJAAurl+zn54pl/cJapXs/o606vtxWlwozoPQCgNWNEXU8hO08k7ldTpq5baQmX+4wOP0i/1Q6bc+LxN7OK+peSWeeEaKzxH92h+y/BMfL6g2ldwoupr59QnT0UTXzybboXgPzxl5Bga2bSAXTv9Vra8zJBvWr2zrIstn6YVtmMzqxaDn9L7slfdGwG5124ynV5qXufJHXPC/Xax8/KciaAAUAgBMgOqpMmAIAwAmTHhXHWQEA4DgLjuoSqgAAcELlR+UeFQAA9iiYOTkAsE8BfWTnKMSMn78X3rptbHebl8WrEcP8mc5SdZlXRjuGDhARrmPn1/AP1emCCo+kDYRXABz2EzZFeurCFNlOM9DWAX5qH1VwxkvavQBk3bxmbdIBAJc/v4jqvb04LLWEeVYQ0KyPhPJsH2HeKNBtfMwvFswRunbzW82XN+V6I5kOgFUhJEd+l3cXvtwCYEfi86pGtXvNr0bm8vUhU/gvu21AafcSRt2QzsrmwekcVcHpuwWX0MBt48P+ud26hKjDKfYAOHviIMresN4Axl12LzKA66zGj9BRR4YsNwNUVzXo6CXb/W5BLwNMO81J2Y9fCtvQqqxudOn2e8JTR7XQ8eI5rnNtRZrUVgAAOLXHD633pgAAsDe9kDp1FQAATt2xQ8u9KwAA7F0z5EicAgDAPrUHAPYpYByzS3hTobF5m9qsavB28mLKWrXc2BhJJ/LYCZzqRu7KMtSoS9Uj1isANlsxeAXA5uX/Tt6o5uGV0E3adtjBSTNQSwcAXPrgdKr/xQr6MrcDtSpZ5QjzzJ67PEf5s4ytm2u83LCyeVDHxfxCQPfFRDhfp16UvfJF8nJeybzcDoaukQJgM0wuGT5T+4qiRuZW5BdqAWDzCwxZmZtmTt/LdvxUpzU9UncyTdrUwyh2XIuVwgKi3NICRNYrz3322p2xoVO47+8cNZJOvLlzDS1UYM5fqp7k5sTyelOUUUBL6o82wPTWzKY0tcmzZAWm5TxjK5Kfjr6EWj4+qFqRblH/2gOHhLVKAQDgWjWc6IyLAgDAmCLpogAAcLqMNPrJCgAAYx6kkgIAwD5HCwDYp4BxzP4nsOpJZX1u8FSzCn4yft8QEQD245sqGyutEeSSaAlpQvl1qHjWy9p9Um0cvALtSDbQkg1TN+7iDavs4LP581QFwAxms1YuNbpfdn6l3YHdkT1jBGWvW2v4pg7cOo7yK/bQ1H2foZPPa1IjCtQK+tttsucG+FVwxxsMusFM2X6zrYpORKnadzmX2ZuY7VG8vlCRZUkt1I0NdU8EmVd6g0tIaTtGVTYd5rrcNHOKqpb6l7ZqT88dOIW6vXMtNd67jnaf058CFzvPGRUAX7l1rPHigI9dzVtT5riaMFzdNI7TPd1kEh3csz0d17a6nQN/p4Lp+/eZQ5M2djfm5IP7L6CLbmxRwwLCPM+4X1lvvmBYk7C/srxmuUWk644d0tUOBQCAa8c4ohd6CgAA6+mEVKmvAABw6o8heqCvAACwvlZImXgFAICrxmDcPY/Sq2+u/nNEKiro4AOb0cuPT6Gff9tMY+5aQF999xM1b9aYJo68itq2OsxICwCc+Ems2wIGl3yYPVJ18qvwNnRAy4gAsDmSOH9cJdzRWTYv2xhuh/BP5U2cIoUpatRn4Js1rhtgmTWS8I6jNzm/l4hodRl95qfvWeaVcFFubJaKAJjnW56wNuBNB/lwirbk7yVEZAB80t7XDQ/V9w4eQsePvqjGFLUCwFab7HFGNwBshvJuMFM2xmyr4hUAm6NRIwXAci5Gkl/mlX1yOxftzje3aH6nKGzz+KiQ1jFCV7xcyB/Rk0J5dejpM1+lkjWfUaO83XTRj+NtryvyJYOMMv84vys9K6J7r+wfrLGxm5xPRQe3pqdazKa/fPIgddj5Im1v15NyBtZ8gWY1z4wXIAIEs+ezPJcjvWbpXKeRJvUUAABOvTFDiyNXAAA4cu2QM7UUAABOrfFCa/0pAADsTz/kjq8CAMA2et//2IuUmZlJNwy4kPrdOIU6nnQsXX3Z+fR/q9fQ1PuepOXPzKDsrEwA4PjO14TVVm1H+k49xZL3pRFFLMpI4rLegw0owocbdFI7ze3IHXe5sYkbRysGBFyMZPm8Cgt1l7+r7VCjTcP+qYPucPViNoCk2BTP0E/oSMKz1goemyFRKgJg1Z6A+7223Ugq6NaZ9qu+R1tYVgkRN980n7Z+vZGOWnE7se90ybCZVFGnsNrct7P9MG/QZ+gto1bPu4LKLhhgeQ6p+SS0douG5YK4jzyeHMErAZ/uSWoGyJEAXKMNa96nwC/CC/zIthQUfuBeDnNErNu5KK8DZq9lNxsWq832ZDutImdzFk43vubrRNlZvSy7ZAujx15uaQXChVRMHUEFv6wVlg6jDI/eooxCGt/sFWrfLkTndq3uNWxul/lFgblR4fPa1OZwvip/agBgLzO09qcFAK79Y4we/qkAADBmQ7ooAACcLiONfrICAMCYB6mkAACwxWht2LyVrhkxjV54ZCLt2VtM3S67jVa/+hBlCSDMxyXX3k6jhvSlk9oeBQCcSrPdZ1tl1CzDn4yiPVSiCTzVatUN5QK/rje+coNO5marVha8AV7ufAFeW7enksETPfUwvHGYWKLNUapuG2CphUfinyrzq/CZN4eygulq+bzxXkoCYAEmeWzYQ5WXzjtFW7I2Zogox8cMViVQY+uE4nHzq425lUetTkSvmk/CR915yWPFUeDB404VwLplRHOQM0UKgD1VaEqsboqmey6GvcTFdUB6cbsBYC7bCs7z52ZwyrC4/q//pZJ5dxn2CWyVYnXYgVQ7n2J1jrFn8NhNl1KD0GbDcuTAzq3prDOcATDnl323uvY5zTM16t94iRXhpn9+xhp5k1MBAODkHBe0KjYKAADHRleUmnwKAAAn35igRbFTAAA4dtqi5OgrAABsoenYux+htsccRr27n0mffP4dTZy1kF56fHI45a0T51K74482vocFRPQnZbKWaI7o9AJM1T5JEMSfeV02z3mqAdTWHTzZL6jtUDfi4s91Ij6t+iH9U73oEYbPYkM+3rjMKq8K1VIRAMsISga/bOfA0ZbL9hlCv7ToRjdcV15jmpshohFdO2+CEe2t6uMUQWllNaADgFXLjax/v2G0TRcA+zlfJazkMhIBgGVkLtev66Ottln62uoAYC8byDXeJ5f2DL3E9tzg9trZSsixtPJEVj2DL9x5P52250VaVa8XNR02uEZkunkjRq5TwmqraG+neaZaztCeXRFfs/zMNeRNTgUAgJNzXNCq2CgAABwbXVFq8ikAAJx8Y4IWxU4BAODYaYuSo69AWgHgLdt20obNW2qoyL6+Dfapa3z+x9YdRoTvG0tmGhYPqz7+guYseIGWzL89nI8B8REtD6QBvbvSHztKoj8qGiXm5WRSYX4WFZcGaXdRTZikUQSSRKBA5p3XUcav64ycwVvF0nyx7NzrEXjsHgqsXmFkqziiNQVvm+21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a+QNfQ3fX94M8Q4R9cs+wbyiY9h1venCrh0J13YdZZEmGRXgvQzGiD2XPhSR7g3r16PbBl9qzHk+/v3Jf0WU+0IR/buNTmQIPOY6434e9+3JOJJoEysAAIx5AAWgABSAAlAACkABKAAFoAAUgAJQAApAASgABaAAFKilCgAA19KBRbegABSAAlAACkABKAAFoAAUgAJQAApAASgABaAAFIACAMCYA1AACkABKAAFoAAUgAJQAApAASgABaAAFIACUAAKQIFaqgAAcC0dWHQLCkABKAAFoAAUgAJQAApAASgABaAAFIACUAAKQAEoAACMOQAFoAAUgAJQAApAASgABaAAFIACUAAKQAEoAAWgABSopQoAANfSgUW3oAAUgAJQAApAASgABaAAFIACUAAKQAEoAAWgABSAAgDAmANQAApAASgABaAAFIACUAAKQAEoAAWgABSAAlAACkCBWqoAAHAtHVh0CwpAASgABaAAFIACUAAKQAEoAAWgABSAAlAACkABKAAAjDkABaAAFIACUAAKQAEoAAWgABSAAlAACkABKAAFoAAUqKUKAADX0oFFt6AAFIACUAAKQAEoAAWgABSAAlAACkABKAAFoAAUgAIAwJgDUAAKQAEoAAWgABSAAlAACkABKAAFoAAUgAJQAApAgVqqAABwLR1YdAsKQAEoAAWgABSAAlAACkABKAAFoAAUgAJQAApAASgAAIw5AAWgABSAAlAACkABKAAFoAAUgAJQAApAASgABaAAFKilCgAA19KBRbegABSAAlAACvx/O3ZQBAAAwyDMv2t8cJGwrC8IECBAgAABAgQIECBAgAABAdgGCBAgQIAAAQIECBAgQIAAAQIECBAgMBUQgKePdRYBAgQIECBAgAABAgQIECBAgAABAgQEYBsgQIAAAQIECBAgQIAAAQIECBAgQIDAVEAAnj7WWQQIECBAgAABAgQIECBAgAABAgQIEBCAbYAAAQIECBAgQIAAAQIECBAgQIAAAQJTAQF4+lhnESBAgAABAgQIECBAgAABAgQIECBAQAC2AQIECBAgQIAAAQIECBAgQIAAAQIECEwFBODpY51FgAABAgQIECBAgAABAgQIECBAgAABAdgGCBAgQIAAAQIECBAgQIAAAQIECBAgMBUQgKePdRYBAgQIECBAgAABAgQIECBAgAABAgQEYBsgQIAAAQIECBAgQIAAAQIECBAgQIDAVEAAnj7WWQQIECBAgAABAgQIECBAgAABAgQIEBCAbYAAAQIECBAgQIAAAQIECBAgQIAAAQJTAQF4+lhnESBAgAABAgQIECBAgAABAgQIECBAQAC2AQIECBAgQIAAAQIECBAgQIAAAQIECEwFBODpY51FgAABAgQIECBAgAABAgQIECBAgAABAdgGCBAgQIAAAQIECBAgQIAAAQIECBAgMBUQgKePdRYBAgQIECBAgAABAgQIECBAgAABAgQEYBsgQIAAAQIECBAgQIAAAQIECBAgQIDAVEAAnj7WWQQIECBAgAABAgQIECBAgAABAgQIEBCAbYAAAQIECBAgQIAAAQIECBAgQIAAAQJTAQF4+lhnESBAgAABAgQIECBAgAABAgQIECBAQAC2AQIECBAgQIAAAQIECBAgQIAAAQIECEwFBODpY51FgAABAgQIECBAgAABAgQIECBAgAABAdgGCBAgQIAAAQIECBAgQIAAAQIECBAgMBUQgKePdRYBAgQIECBAgAABAgQIECBAgAABAgQEYBsgQIAAAQIECBAgQIAAAQIECBAgQIDAVEAAnj7WWQQIECBAgAABAgQIECBAgAABAgQIEBCAbYAAAQIECBAgQIAAAQIECBAgQIAAAQJTAQF4+lhnESBAgAABAgQIECBAgAABAgQIECBAQAC2AQIECBAgQIAAAQIECBAgQIAAAQIECEwFBODpY51FgAABAgQIECBAgAABAgQIECBAgAABAdgGCBAgQIAAAQIECBAgQIAAAQIECBAgMBUQgKePdRYBAgQIECBAgAABAgQIECBAgAABAgQEYBsgQIAAAQIECBAgQIAAAQIECBAgQIDAVEAAnj7WWQQIECBAgAABAgQIECBAgAABAgQIEBCAbYAAAQIECBAgQIAAAQIECBAgQIAAAQJTAQF4+lhnESBAgAABAgQIECBAgAABAgQIECBAQAC2AQIECBAgQIAAAQIECBAgQIAAAQIECEwFBODpY51FgAABAgQIECBAgAABAgQIECBAgAABAdgGCBAgQIAAAQIECBAgQIAAAQIECBAgMBUQgKePdRYBAgQIECBAgAABAgQIECBAgAABAgQEYBsgQIAAAQIECBAgQIAAAQIECBAgQIDAVEAAnj7WWQQIECBAgAABAgQIECBAgAABAgQIEBCAbYAAAQIECBAgQIAAAQIECBAgQIAAAQJTAQF4+lhnESBAgAABAgQIECBAgAABAgQIECBAQAC2AQIECBAgQIAAAQIECBAgQIAAAQIECEwFBODpY51FgAABAgQIECBAgAABAgQIECBAgAABAdgGCBAgQIAAAQIECBAgQIAAAQIECBAgMBUQgKePdRYBAgQIECBAgAABAgQIECBAgAABAgQEYBsgQIAAAQIECBAgQIAAAQIECBAgQIDAVEAAnj7WWQQIECBAgAABAgQIECBAgAABAgQIEBCAbYAAAQIECBAgQIAAAQIECBAgQIAAAQJTgQAczdbuxxWxFQAAAABJRU5ErkJggg==", "text/html": [ - "