diff --git a/main.ipynb b/main.ipynb index b964311..1f31134 100644 --- a/main.ipynb +++ b/main.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": 14, "metadata": {}, "outputs": [], "source": [ @@ -23,7 +23,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 15, "metadata": {}, "outputs": [], "source": [ @@ -37,12 +37,14 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "import json\n", "\n", + "print(\"Version 0.0.2\")\n", + "\n", "with open('config.json', 'r') as f:\n", " js_data = json.load(f)\n", "\n", @@ -89,7 +91,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 17, "metadata": {}, "outputs": [], "source": [ @@ -108,7 +110,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 18, "metadata": {}, "outputs": [], "source": [ @@ -119,33 +121,33 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 24, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ + "ess_capacity:5000.0\n", + "pv_capacity:5000.0\n", + "pv_capacity:5000.0\n", "pv_capacity:5000.0\n", - "ess_capacity:5000.0\n", "ess_capacity:27500.0\n", - "ess_capacity:50000.0\n", "pv_capacity:27500.0\n", - "ess_capacity:5000.0\n", - "ess_capacity:27500.0\n", + "pv_capacity:27500.0\n", + "pv_capacity:27500.0\n", "ess_capacity:50000.0\n", "pv_capacity:50000.0\n", - "ess_capacity:5000.0\n", - "ess_capacity:27500.0\n", - "ess_capacity:50000.0\n" + "pv_capacity:50000.0\n", + "pv_capacity:50000.0\n" ] } ], "source": [ - "for pv_capacity in pv_capacities:\n", - " print(f\"pv_capacity:{pv_capacity}\")\n", - " for ess_capacity in ess_capacities:\n", - " print(f\"ess_capacity:{ess_capacity}\")\n", + "for ess_capacity in ess_capacities:\n", + " print(f\"ess_capacity:{ess_capacity}\")\n", + " for pv_capacity in pv_capacities:\n", + " print(f\"pv_capacity:{ess_capacity}\")\n", " pv = pv_config(capacity=pv_capacity, \n", " cost_per_kW=pv_cost_per_kW,\n", " lifetime=pv_lifetime, \n", @@ -170,23 +172,23 @@ " pv_generated = energySystem.day_generated\n", " ess_generated = energySystem.hour_stored\n", " ess_generated_2 = energySystem.hour_stored_2\n", - " plt.figure(figsize=(10,8));\n", - " plt.plot(ess_generated)\n", - " plt.xlabel('day #')\n", - " plt.ylabel('SoC %')\n", - " plt.title(f'14:00 ESS SoC \\n PV cap:{pv_capacity}, ESS cap:{ess_capacity}')\n", - " plt.savefig(f'plots/ess/1400-{pv_capacity}-{ess_capacity}.png')\n", - " plt.close()\n", - " plt.figure(figsize=(10,8));\n", - " plt.plot(ess_generated_2)\n", - " plt.xlabel('day #')\n", - " plt.ylabel('SoC%')\n", - " plt.title(f'08:00 ESS SoC \\n PV cap:{pv_capacity}, ESS cap:{ess_capacity}')\n", - " plt.savefig(f'plots/ess/0800-{pv_capacity}-{ess_capacity}.png')\n", - " plt.close()\n", + " plt.figure(figsize=(10,8));\n", + " plt.plot(ess_generated)\n", + " plt.xlabel('day #')\n", + " plt.ylabel('SoC %')\n", + " plt.title(f'14:00 ESS SoC \\n PV cap:{pv_capacity}, ESS cap:{ess_capacity}')\n", + " plt.savefig(f'plots/ess/1400-{pv_capacity}-{ess_capacity}.png')\n", + " plt.close()\n", + " plt.figure(figsize=(10,8));\n", + " plt.plot(ess_generated_2)\n", + " plt.xlabel('day #')\n", + " plt.ylabel('SoC%')\n", + " plt.title(f'08:00 ESS SoC \\n PV cap:{pv_capacity}, ESS cap:{ess_capacity}')\n", + " plt.savefig(f'plots/ess/0800-{pv_capacity}-{ess_capacity}.png')\n", + " plt.close()\n", " # print(energySystem.unmet)\n", - " spring_week_start = energySystem.season_start\n", - " spring_week_end = spring_week_start + energySystem.week_length\n", + " # spring_week_start = energySystem.season_start\n", + " # spring_week_end = spring_week_start + energySystem.week_length\n", " # summer_week_start = energySystem.season_start + 1 * energySystem.season_step\n", " # summer_week_end = summer_week_start + energySystem.week_length\n", " # autumn_week_start = energySystem.season_start + 2 * energySystem.season_step\n", @@ -194,13 +196,13 @@ " # winter_week_start = energySystem.season_start + 3 * energySystem.season_step\n", " # winter_week_end = winter_week_start+ energySystem.week_length\n", "\n", - " spring_consume_data = []\n", + " # spring_consume_data = []\n", " # summer_consume_data = []\n", " # autumn_consume_data = []\n", " # winter_consume_data = []\n", - " for index, row in data.iterrows():\n", - " if index in range(spring_week_start, spring_week_end):\n", - " spring_consume_data.append(row['demand'])\n", + " # for index, row in data.iterrows():\n", + " # if index in range(spring_week_start, spring_week_end):\n", + " # spring_consume_data.append(row['demand'])\n", " # elif index in range(summer_week_start, summer_week_end):\n", " # summer_consume_data.append(row['demand'])\n", " # elif index in range(autumn_week_start, autumn_week_end):\n", @@ -208,12 +210,12 @@ " # elif index in range(winter_week_start, winter_week_end):\n", " # winter_consume_data.append(row['demand'])\n", "\n", - " spring_week_time = list(range(spring_week_start, spring_week_end))\n", + " # spring_week_time = list(range(spring_week_start, spring_week_end))\n", " # summer_week_time = list(range(summer_week_start, summer_week_end))\n", " # autumn_week_time = list(range(autumn_week_start, autumn_week_end))\n", " # winter_week_time = list(range(winter_week_start, winter_week_end))\n", "\n", - " spring_pv_generated = energySystem.spring_week_gen\n", + " # spring_pv_generated = energySystem.spring_week_gen\n", " # summer_pv_generated = energySystem.summer_week_gen\n", " # autumn_pv_generated = energySystem.autumn_week_gen\n", " # winter_pv_generated = energySystem.winter_week_gen\n", @@ -226,14 +228,14 @@ "\n", " # fig, ax1 = plt.subplots()\n", "\n", - " plt.plot(spring_week_time, spring_pv_generated, label = 'pv generation')\n", - " plt.plot(spring_week_time, spring_consume_data, label = 'factory consume')\n", - " plt.ylabel('Power / kW')\n", - " plt.xlabel('15 min #')\n", - " plt.title(f'ess: {energySystem.ess.capacity/1000 } MWh pv: {energySystem.pv.capacity/1000 } MW spring week generate condition')\n", - " plt.legend()\n", - " plt.savefig(f'plots/{energySystem.ess.capacity}-{energySystem.pv.capacity}-spring.png')\n", - " plt.close()\n", + " # plt.plot(spring_week_time, spring_pv_generated, label = 'pv generation')\n", + " # plt.plot(spring_week_time, spring_consume_data, label = 'factory consume')\n", + " # plt.ylabel('Power / kW')\n", + " # plt.xlabel('15 min #')\n", + " # plt.title(f'ess: {energySystem.ess.capacity/1000 } MWh pv: {energySystem.pv.capacity/1000 } MW spring week generate condition')\n", + " # plt.legend()\n", + " # plt.savefig(f'plots/{energySystem.ess.capacity}-{energySystem.pv.capacity}-spring.png')\n", + " # plt.close()\n", "\n", " # plt.plot(summer_week_time, summer_pv_generated, label = 'pv generation')\n", " # plt.plot(summer_week_time, summer_consume_data, label = 'factory consume')\n", @@ -262,13 +264,13 @@ " # plt.savefig(f'plots/{energySystem.ess.capacity}-{energySystem.pv.capacity}-winter.png')\n", " # plt.close()\n", "\n", - " plt.figure();\n", - " plt.plot(pv_generated)\n", - " plt.xlabel('day #')\n", - " plt.ylabel('Electricity kWh')\n", - " plt.title(f'PV generated pv cap:{pv_capacity}, ess cap:{ess_capacity}')\n", - " plt.savefig(f'plots/pv/{pv_capacity}-{ess_capacity}.png')\n", - " plt.close()\n", + " # plt.figure();\n", + " # plt.plot(pv_generated)\n", + " # plt.xlabel('day #')\n", + " # plt.ylabel('Electricity kWh')\n", + " # plt.title(f'PV generated pv cap:{pv_capacity}, ess cap:{ess_capacity}')\n", + " # plt.savefig(f'plots/pv/{pv_capacity}-{ess_capacity}.png')\n", + " # plt.close()\n", "\n", "\n", " # plt.show()\n", @@ -290,22 +292,23 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 20, "metadata": {}, "outputs": [], "source": [ "def save_data(data, filename):\n", - " data.to_csv(filename)" + " data.to_csv(filename+'.csv')\n", + " data.to_json(filename + '.json')" ] }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 21, "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABesAAAW/CAYAAAA8eqjRAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAACraUlEQVR4nOzdd5hU1f0/8M8sZWkBLCwLFqpKUzGoiEbBBirWqIlYAHtBE7ETE7EGe02UFAUbsUZjJ2iwI5aosaGAoEkUMCogKv3+/vC382VYhN114bDwej3PPA9777l3PvfOmVl9z9lzclmWZQEAAAAAACRTlLoAAAAAAABY2wnrAQAAAAAgMWE9AAAAAAAkJqwHAAAAAIDEhPUAAAAAAJCYsB4AAAAAABIT1gMAAAAAQGLCegAAAAAASExYDwAAAAAAiQnrAVhtzJkzJ4455pgoLS2NXC4Xp556akydOjVyuVyMHDkydXnUUK1bt46BAwemLmON5h6vHnK5XJx//vkVapvqNfv3v/8d9erVixdeeGGFbZ9++unI5XJx3333rYLKVm+9evWKXr16pS5jjbNgwYLYaKON4sYbb0xdCgBARAjrAdZ4I0eOjFwuV/AoKSmJnXfeOR5//PHU5RX47W9/GyNHjowTTzwxbr/99jjiiCOW2e6xxx6rcCAV8V3I0aVLl2XuK/sy4Morr6xKyRX229/+Nh588MGV+hwrU1lotuRj3XXXje222y7uvPPO1OXVGGX9rexRq1at2HjjjeOAAw6IN954IyIi/vrXv0Yul4s///nP33ueMWPGRC6Xi+uvv34VVV49lu5DSz5OOOGEgrYPP/xw9OzZM0pKSqJBgwbRtm3b+NnPfhZPPPFEQbvPPvssfvnLX0aHDh2ifv36UVJSEttuu22cffbZMWfOnArVNXny5Dj++OOjbdu2Ua9evWjcuHHssMMOcd1118W3335bbde/qr344otx/vnnx8yZM1OXknfhhRdG9+7dY4cddshvGzVqVFx77bXpilqDtG7d+nvfY3vssUe+3cCBA6NRo0bfe55GjRoVfJmz9O+AWrVqRUlJSRx00EHx3nvvfe953nrrrcjlcvHyyy9Xy/VVtzp16sRpp50Wl1xyScydOzd1OQAAUTt1AQCsGhdeeGG0adMmsiyL6dOnx8iRI2OvvfaKhx9+OPbee+/U5UVExD/+8Y/YbrvtYujQofltWZbFt99+G3Xq1Mlve+yxx+L3v/99pQL71H7729/GQQcdFPvvv3/qUn6QX/ziF7HNNttERMTnn38ed999dxx++OExc+bMGDRoUOLqao5+/frFXnvtFYsWLYr33nsvbrrppnj88cfjpZdeir59+0aTJk1i1KhRccwxxyzz+FGjRkWtWrXikEMOWcWV/3C777579O/fv9z2TTfdNP/vK6+8Ms4888zo2bNnDBkyJBo0aBCTJk2KJ598Mu6666586PjFF1/E1ltvHbNnz46jjjoqOnToEJ9//nn861//iptuuilOPPHE5QaSERGPPvpoHHzwwVFcXBz9+/ePLl26xPz58+P555+PM888M95555344x//WL03YSX59ttvo3bt//vP+xdffDEuuOCCGDhwYDRt2rSg7fvvvx9FRat23M5nn30Wt956a9x6660F20eNGhVvv/12nHrqqau0njVV165d4/TTTy+3vWXLlj/43GW/AxYsWBD/+te/Yvjw4fH000/H22+/HaWlpeXaP/roo1FSUpL/vbE6OvLII+Occ86JUaNGxVFHHZW6HABgLSesB1hL7LnnnrH11lvnfz766KOjefPm8Ze//GW1CetnzJgRnTp1KtiWy+WiXr16iSpiaTvuuGMcdNBB+Z9PPPHEaNu2bYwaNUpYXwk//vGP4/DDD8//vMMOO8S+++4bN910U/zhD3+Igw46KEaMGBGffPJJuYBt7ty58cADD8Tuu+8eJSUlq7r0H2zTTTctuPalLVy4MC666KLYfffd4+9//3u5/TNmzMj/++abb46PP/44Xnjhhdh+++0L2s2ePTvq1q273FqmTJkShxxySLRq1Sr+8Y9/RIsWLfL7Bg0aFJMmTYpHH320opeWXGU+K4uLi1diJct2xx13RO3atWOfffZZ5c+9Ntlggw2W+x77IZb+HbDZZpvFiSeeGLfddlucddZZ5do/9thjseeee0Yul1sp9VRVlmUxd+7cqF+/fjRt2jR69+4dI0eOFNYDAMmZBgdgLdW0adOoX79+wSjMiIjFixfHtddeG507d4569epF8+bN4/jjj48vv/yyoF3r1q1j7733jueffz623XbbqFevXrRt2zZuu+22cs81c+bMOPXUU2OjjTaK4uLiaN++fVx22WWxePHiiPi/P6+fMmVKPProo/k/s586dWq5OesHDhwYv//97yOicEqN6raimstceeWVsf3228d6660X9evXj27dupWbXzmXy8XXX38dt956a77esukFzj///MjlcvHBBx/E4YcfHk2aNIlmzZrFb37zm8iyLP7973/HfvvtF40bN47S0tK46qqrCs49f/78OO+886Jbt27RpEmTaNiwYey4444xduzYgnZLTvdzzTXXRKtWraJ+/frRs2fPePvtt6t8n+rWrRvrrLNOuX40YsSI2GWXXaKkpCSKi4ujU6dOcdNNN5U7/tVXX40+ffrE+uuvH/Xr1482bdqUC0sq2iezLIuLL744Ntxww2jQoEHsvPPO8c4771T4Wr7++us4/fTT86/5ZpttFldeeWVkWVbQLpfLxcknnxwPPvhgdOnSJYqLi6Nz587lpmepjF122SUivguPIyIOP/zwWLx4cdx1113l2j766KMxa9asOOyww5Z7zo8++ihOOumk2GyzzaJ+/fqx3nrrxcEHHxxTp04taFc2VdYLL7wQp512WjRr1iwaNmwYBxxwQHz22WcFbX/oPa6I//3vfzF79uyCaVKWtOQXFJMnT45atWrFdtttV65d48aNVxheX3755TFnzpy4+eabC4L6Mu3bt49f/vKX+Z8r2q/LPh///ve/R9euXaNevXrRqVOn+Otf/1rQ7osvvogzzjgjNt9882jUqFE0btw49txzz3jzzTfLnXPu3Llx/vnnx6abbhr16tWLFi1axE9/+tOYPHlyvs2Sc9aff/75ceaZZ0ZERJs2bQo+V8tqXHrO+op+7t11113RrVu3+NGPfhSNGzeOzTffPK677rrvv9H/34MPPhjdu3cv+GuHXr16xaOPPhofffRRvsbWrVsXHLd48eK45JJLYsMNN4x69erFrrvuGpMmTSp3/nvvvTe6desW9evXj/XXXz8OP/zw+O9//1vQ5vvmfh84cGC5513RdVb09Sv7HXfPPfdU6Dr++Mc/Rrt27aJ+/fqx7bbbxnPPPfd9tzS5HXfcMSKioB+WmTlzZrz44ovRt2/fyLIsWrduHfvtt1+5dnPnzo0mTZrE8ccfn982b968GDp0aLRv3z6Ki4tjo402irPOOivmzZtXcGxl35OjR4+OrbfeOurXrx9/+MMf8vt33333eP755+OLL76o8r0AAKgORtYDrCVmzZoV//vf/yLLspgxY0bccMMNMWfOnHKj744//vgYOXJkHHnkkfGLX/wipkyZEr/73e/i9ddfjxdeeKFgOppJkybFQQcdFEcffXQMGDAgbrnllhg4cGB069YtOnfuHBER33zzTfTs2TP++9//xvHHHx8bb7xxvPjiizFkyJD49NNP49prr42OHTvG7bffHoMHD44NN9ww/+f7zZo1KxcWHn/88fHJJ5/EmDFj4vbbb6/w9S9atCj+97//ldu+dOBb0ZrLXHfddbHvvvvGYYcdFvPnz4+77rorDj744HjkkUeib9++ERFx++23xzHHHBPbbrttHHfccRER0a5du4Ln/PnPfx4dO3aMSy+9NB599NG4+OKLY911140//OEPscsuu8Rll10Wd955Z5xxxhmxzTbbxE477RQR340e/vOf/xz9+vWLY489Nr766qu4+eabo0+fPvHyyy9H165dC57ntttui6+++ioGDRoUc+fOjeuuuy522WWXeOutt6J58+YrvI9fffVV/j5+8cUX+ekrbr755oJ2N910U3Tu3Dn23XffqF27djz88MNx0kknxeLFi/Mj8GfMmBG9e/eOZs2axTnnnBNNmzaNqVOnlgs0K9onzzvvvLj44otjr732ir322iv++c9/Ru/evWP+/PkrvK4sy2LfffeNsWPHxtFHHx1du3aN0aNHx5lnnhn//e9/45prrilo//zzz8df//rXOOmkk+JHP/pRXH/99XHggQfGxx9/HOutt94Kn29pZUFX2bE77bRTbLjhhjFq1Kg47bTTCtqOGjUqGjRosMIplV555ZV48cUX45BDDokNN9wwpk6dGjfddFP06tUr3n333WjQoEFB+1NOOSXWWWedGDp0aEydOjWuvfbaOPnkk+Puu+/Ot/kh97jM3Llzl/lebNy4cdStWzdKSkqifv368fDDD8cpp5wS66677veeq1WrVrFo0aK4/fbbY8CAARWuoczDDz8cbdu2LTcq//tUpF+XmThxYvz85z+PE044IQYMGBAjRoyIgw8+OJ544onYfffdIyLiww8/jAcffDAOPvjgaNOmTUyfPj3+8Ic/RM+ePePdd9/N/1XFokWLYu+9946nnnoqDjnkkPjlL38ZX331VYwZMybefvvtcp8nERE//elP44MPPoi//OUvcc0118T6668fEd99ri5LRT/3xowZE/369Ytdd901LrvssoiIeO+99+KFF14o+GJjaQsWLIhXXnklTjzxxILt5557bsyaNSv+85//5N9nS09ddOmll0ZRUVGcccYZMWvWrLj88svjsMMOi/Hjx+fblH1GbLPNNjFs2LCYPn16XHfddfHCCy/E66+/Xm4aoBWpyHVW9PWrzHXcfPPNcfzxx8f2228fp556anz44Yex7777xrrrrhsbbbRRhWpfsGDBMt9jDRs2jPr161fqPqxI2Zc/66yzTrl9o0ePjlwuF717945cLheHH354XH755fHFF18UvK8ffvjhmD17dv6/RxYvXhz77rtvPP/883HcccdFx44d46233oprrrkmPvjgg4L1Xyrznnz//fejX79+cfzxx8exxx4bm222WX5ft27dIsuyePHFF1ebvzYEANZSGQBrtBEjRmQRUe5RXFycjRw5sqDtc889l0VEdueddxZsf+KJJ8ptb9WqVRYR2bPPPpvfNmPGjKy4uDg7/fTT89suuuiirGHDhtkHH3xQcM5zzjknq1WrVvbxxx8XnLNv374F7aZMmZJFRDZixIj8tkGDBmWV+RXWs2fPZd6DJR9XXHFFlWr+5ptvCtrMnz8/69KlS7bLLrsUbG/YsGE2YMCAcrUNHTo0i4jsuOOOy29buHBhtuGGG2a5XC679NJL89u//PLLrH79+gXnWbhwYTZv3ryCc3755ZdZ8+bNs6OOOiq/rew+1q9fP/vPf/6T3z5+/PgsIrLBgwcv69bljR07dpn3raioKLvkkkvKtV/6vmRZlvXp0ydr27Zt/ucHHnggi4jslVde+d7nrWifnDFjRla3bt2sb9++2eLFi/PtfvWrX2URscx7v6QHH3wwi4js4osvLth+0EEHZblcLps0aVJ+W0RkdevWLdj25ptvZhGR3XDDDct9nrLX4YILLsg+++yzbNq0adnTTz+dbbXVVllEZPfff3++7ZlnnplFRPb+++/nt82aNSurV69e1q9fv+U+T5Yt+zUYN25cFhHZbbfdlt9W9hmx2267Fdy7wYMHZ7Vq1cpmzpyZZdkPv8dZli33PfiXv/wl3+68887LIiJr2LBhtueee2aXXHJJ9tprr5U737Rp07JmzZplEZF16NAhO+GEE7JRo0bla16eWbNmZRGR7bfffitsW6Yi/TrL/u/zccnXc9asWVmLFi2yrbbaKr9t7ty52aJFiwqOnTJlSlZcXJxdeOGF+W233HJLFhHZ1VdfXe75l3wtIiIbOnRo/ucrrrgii4hsypQp5Y5r1apVwWtW0c+9X/7yl1njxo2zhQsXljvn8kyaNOl73yN9+/bNWrVqVW572edOx44dCz7nrrvuuiwisrfeeivLsu8+d0tKSrIuXbpk3377bb7dI488kkVEdt555+W39ezZM+vZs2e55xowYEBBDRW5zoq+fpW9jq5duxa0++Mf/5hFxDLrXlpZ31vWY9iwYQXX27Bhw+89z9K/s8qu4ZZbbsk+++yz7JNPPsmeeOKJrH379lkul8tefvnlcuc44ogjCmp+//33s4jIbrrppoJ2++67b9a6det8X7799tuzoqKi7LnnnitoN3z48CwishdeeCG/rbLvySeeeGKZ1/vJJ59kEZFddtlly74hAACriGlwANYSv//972PMmDExZsyYuOOOO2LnnXeOY445pmAU87333htNmjSJ3XffPf73v//lH926dYtGjRqVm1qlU6dO+T+Bj/huxOZmm20WH374YcE5d9xxx1hnnXUKzrnbbrvFokWL4tlnn135Fx/f/Ql82fUv+bjjjjvKta1MzUuOUvzyyy9j1qxZseOOO8Y///nPStW35EKitWrViq233jqyLIujjz46v71p06bl7m+tWrXy83IvXrw4vvjii1i4cGFsvfXWy6xh//33jw022CD/87bbbhvdu3ePxx57rEJ1nnfeefl7d/fdd0e/fv3i3HPPLTcFxpL3peyvOnr27BkffvhhzJo1K389ERGPPPJILFiwYJnPV9E++eSTT8b8+fPjlFNOKZgWqaILVj722GNRq1at+MUvflGw/fTTT48sy+Lxxx8v2L7bbrsVjGbeYostonHjxgWvzfIMHTo0mjVrFqWlpdGrV6+YPHlyXHbZZfHTn/4036ZslOmoUaPy2+6///6YO3fuCqfAiSh8DRYsWBCff/55tG/fPpo2bbrMvnHccccV3Lsdd9wxFi1aFB999FFE/PB7XGa//fZb5ntx5513zre54IILYtSoUbHVVlvF6NGj49xzz41u3brFj3/843jvvffy7Zo3bx5vvvlmnHDCCfHll1/G8OHD49BDD42SkpK46KKLyk1htKTZs2dHRMSPfvSjCtdekX5dpmXLlnHAAQfkf27cuHH0798/Xn/99Zg2bVpEfDdvfNkir4sWLYrPP/88GjVqFJtttlnBa3T//ffH+uuvH6ecckq5mqprGrCKfu41bdo0vv766xgzZkylzv/5559HxLJHYK/IkUceWbD+QNnvnbL326uvvhozZsyIk046qWDqo759+0aHDh2qtO5ARa6zoq9fZa/jhBNOKGg3cODAaNKkSYVr7969+zLfY/369avwOb7PUUcdFc2aNYuWLVvGHnvsEbNmzYrbb7+93AKyixcvjieeeCL/F2YR361X0b1797jzzjvz27744ot4/PHH47DDDsv35XvvvTc6duwYHTp0KOiLZdOFLfnfIpV5T7Zp0yb69OmzzOsq65fL+osEAIBVyTQ4AGuJbbfdtmCB2X79+sVWW20VJ598cuy9995Rt27dmDhxYsyaNet7F61ccmHHiIiNN964XJt11lmnYGqZiRMnxr/+9a/vnXph6XOuLA0bNozddtut3Pal5++OqFzNjzzySFx88cXxxhtvFMylW9kAbel72aRJk6hXr15+6oolt5eFXmVuvfXWuOqqq2LChAkFoXebNm3KPc8mm2xSbtumm24a99xzT4Xq3HzzzQvu489+9rOYNWtWnHPOOXHooYfm79kLL7wQQ4cOjXHjxsU333xTcI5Zs2ZFkyZNomfPnnHggQfGBRdcENdcc0306tUr9t9//zj00EPzi19WtE+WBcpLX1+zZs0qFA5+9NFH0bJly3LBbceOHQvOX6YifX95jjvuuDj44IOjqKgomjZtGp07dy634OcWW2wRXbp0ib/85S/5echHjRoV66+//vcGTkv69ttvY9iwYTFixIj473//WxBcLx1iLeuayu5b2TX90HtcZsMNN1zme3Fp/fr1i379+sXs2bNj/PjxMXLkyBg1alTss88+8fbbb+dD2RYtWsRNN90UN954Y0ycODFGjx4dl112WZx33nnRokWLgi/CltS4ceOI+G5qp4qqSL8u0759+3KfA5tuumlEfPe5U1paGosXL47rrrsubrzxxpgyZUosWrQo33bJ6ZQmT54cm222Wbm1IapTRT/3TjrppLjnnntizz33jA022CB69+4dP/vZz2KPPfao0PMs7wuU71PRvrnktCZlOnToEM8//3yln7Mi11nR16+y17H0e6xOnTrRtm3bCte+/vrrV+g9tiLL+j123nnnxY477hhz5syJBx54IO666678FxZLeuWVV+Kzzz4rCOsjIvr37x8nn3xyfPTRR9GqVau49957Y8GCBXHEEUfk20ycODHee++9Cv0Orsx7clm/E8uU9cvVbSFcAGDtI6wHWEsVFRXFzjvvHNddd11MnDgxOnfuHIsXL46SkpKCUW9LWvp/nGvVqrXMdkuGMYsXL47dd989zjrrrGW2LQuvVicVrfm5556LfffdN3baaae48cYbo0WLFlGnTp0YMWJEwWjoiljWvazI/b3jjjti4MCBsf/++8eZZ54ZJSUlUatWrRg2bNgyF/xbGXbdddd45JFH4uWXX46+ffvG5MmTY9ddd40OHTrE1VdfHRtttFHUrVs3Hnvssbjmmmvyi1Xmcrm477774qWXXoqHH344Ro8eHUcddVRcddVV8dJLL0WjRo0q3SdXlYq8NsuzySabVChMO/zww+Occ86JV199NTbccMMYO3ZsHH/88RUKbU855ZQYMWJEnHrqqdGjR49o0qRJ5HK5OOSQQ8otGBrxw69pZWncuHHsvvvusfvuu0edOnXi1ltvjfHjx0fPnj0L2uVyudh0001j0003jb59+8Ymm2wSd95553LD+pYtW1Z4geWK9uvK+O1vfxu/+c1v4qijjoqLLroo1l133SgqKopTTz21Suf7ISr6uVdSUhJvvPFGjB49Oh5//PF4/PHHY8SIEdG/f/+49dZbv/f8ZeF1Rb/QWlJ19s1cLrfM45YM2iMqdp2Vff1Wp/dYvXr1Yt68eZFlWbmAOsuymDt37jIXaF7yC9v9998/vvnmmzj22GPjJz/5ScGc+o899li0bt06OnXqVHD8IYccEoMHD44777wzfvWrX8Udd9wRW2+9dcEXLYsXL47NN988rr766mXWXvY8lX1PLm++/rJ+ufQX5AAAq5qwHmAttnDhwoiImDNnTkR8t+jpk08+GTvssEO1LULXrl27mDNnTrWM8iuzske+VbTm+++/P+rVqxejR48uGBU9YsSIcm1XVs333XdftG3bNv76178WPMfQoUOX2X7ixInltn3wwQfRunXrKtewdD96+OGHY968efHQQw8VjCRdehqlMtttt11st912cckll8SoUaPisMMOi7vuuiuOOeaYCvfJVq1aRcR317fkCNTPPvusQuFgq1at4sknn4yvvvqqYHT9hAkTCs6/qvXr1y+GDBkSo0aNyi+mWpEpcCK+6xsDBgyIq666Kr9t7ty5MXPmzCrV8kPvcXXYeuut49Zbb41PP/10ue3atm0b66yzzgrb7b333vHHP/4xxo0bFz169Fhu28r260mTJpULQj/44IOIiPz77b777oudd9653ALNM2fOLAgN27VrF+PHj48FCxYULPK9IpX53KnMZ3XdunVjn332iX322ScWL14cJ510UvzhD3+I3/zmN9G+fftlHrPxxhtH/fr1Y8qUKT+ozmUp65vvv/9+fqqUMu+//37B+3edddZZ5nRVS//1TMSKr7Oir19lr2PixIkF17FgwYKYMmVKbLnllpU+5/Kea+HChTF58uRyr9mkSZNi0aJFFfrcu/TSS+OBBx6ISy65JIYPH57f/uijj8Zee+1Vrv26664bffv2jTvvvDMOO+yweOGFFwoWbY/4ri+++eabseuuuy63b1T2Pbk8Zf2y7K+pAABSMWc9wFpqwYIF8fe//z3q1q2b/5/Tn/3sZ7Fo0aK46KKLyrVfuHBhlUK+n/3sZzFu3LgYPXp0uX0zZ87MB72V0bBhw/zxK0NFa65Vq1bkcrmCEZlTp06NBx98cJk1r4x6y0ZqLjkyc/z48TFu3Lhltn/wwQfjv//9b/7nl19+OcaPHx977rlnlWt45JFHIiLyQdKyapo1a1a5LzG+/PLLciNKu3btGhGRn1Koon1yt912izp16sQNN9xQcM6lQ6Dvs9dee8WiRYvid7/7XcH2a665JnK53A+6Pz/ExhtvHDvuuGPcfffdcccdd0SbNm1i++23r9CxtWrVKnd/b7jhhnIjiCvqh97jivrmm2++t/+WrR1QNgp3/Pjx8fXXX5dr9/LLL8fnn3++zGlRlnTWWWdFw4YN45hjjonp06eX2z958uT8egwV7ddlPvnkk3jggQfyP8+ePTtuu+226Nq1a5SWlubPufRrdO+99xa8RyMiDjzwwPjf//5Xrn8uXc/SKvNZWdHPvaWn4SoqKootttgiIqJgKrCl1alTJ7beeut49dVXl1nnsqZmqqitt946SkpKYvjw4QU1PP744/Hee+8VTMXSrl27mDBhQnz22Wf5bW+++Wa88MILBeesyHVW9PWrzHU0a9Yshg8fHvPnz89vHzlyZLX//ij7TFtWn/r9739f0GZ52rVrFwceeGCMHDkyvxbD9OnT45///Ge5KXDKHHHEEfHuu+/GmWeeGbVq1YpDDjmkYP/Pfvaz+O9//xt/+tOfyh377bff5t/zlX1PLs9rr70WuVxuhV/aAQCsbEbWA6wlHn/88fwo4RkzZsSoUaNi4sSJcc455+Tnbu7Zs2ccf/zxMWzYsHjjjTeid+/eUadOnZg4cWLce++9cd1118VBBx1Uqec988wz46GHHoq99947Bg4cGN26dYuvv/463nrrrbjvvvti6tSplR6B2K1bt4iI+MUvfhF9+vRZ5v/s/xAVrblv375x9dVXxx577BGHHnpozJgxI37/+99H+/bt41//+le5mp988sm4+uqro2XLltGmTZvo3r37D6517733jr/+9a9xwAEHRN++fWPKlCkxfPjw6NSpU36k+5Lat28fP/nJT+LEE0+MefPmxbXXXhvrrbfe9059sbTnnnsu5s6dGxHfLQz40EMPxTPPPBOHHHJIdOjQISIievfunR+Revzxx8ecOXPiT3/6U5SUlBSMdL711lvjxhtvjAMOOCDatWsXX331VfzpT3+Kxo0b50dkVrRPNmvWLM4444wYNmxY7L333rHXXnvF66+/Ho8//niF+tc+++wTO++8c5x77rkxderU2HLLLePvf/97/O1vf4tTTz21YDHZVe3www+P4447Lj755JM499xzK3zc3nvvHbfffns0adIkOnXqFOPGjYsnn3xymXNpV8QPvcdlPvjgg2Uu7Ny8efPYfffd45tvvontt98+tttuu9hjjz1io402ipkzZ8aDDz4Yzz33XOy///6x1VZbRUTE7bffHnfeeWcccMAB0a1bt6hbt2689957ccstt0S9evXiV7/61XJradeuXYwaNSp+/vOfR8eOHaN///7RpUuXmD9/frz44otx7733xsCBAyOi4v26zKabbhpHH310vPLKK9G8efO45ZZbYvr06QVB4t577x0XXnhhHHnkkbH99tvHW2+9FXfeeWe5+cn79+8ft912W5x22mnx8ssvx4477hhff/11PPnkk3HSSSfFfvvtt8zrK/usPPfcc+OQQw6JOnXqxD777JMP8ZdU0c+9Y445Jr744ovYZZddYsMNN4yPPvoobrjhhujatesKRyXvt99+ce6558bs2bPzv3fK6rz77rvjtNNOi2222SYaNWoU++yzz3LPtaQ6derEZZddFkceeWT07Nkz+vXrF9OnT4/rrrsuWrduHYMHD863Peqoo+Lqq6+OPn36xNFHHx0zZsyI4cOHR+fOnfOLDkdEha6zoq9fZa7j4osvjuOPPz522WWX+PnPfx5TpkyJESNGVOqc//3vf5f5HmvUqFHsv//+EfHdF6PHHHNMfiq83XffPSIixowZE4899lgcc8wxFR7Jf+aZZ8Y999wT1157bVx66aXx2GOPRb169QoWjV5S3759Y7311ot777039txzz3JrkhxxxBFxzz33xAknnBBjx46NHXbYIRYtWhQTJkyIe+65J0aPHh1bb711pd+TyzNmzJjYYYcdqvz5CABQbTIA1mgjRozIIqLgUa9evaxr167ZTTfdlC1evLjcMX/84x+zbt26ZfXr189+9KMfZZtvvnl21llnZZ988km+TatWrbK+ffuWO7Znz55Zz549C7Z99dVX2ZAhQ7L27dtndevWzdZff/1s++23z6688sps/vz5yz3nlClTsojIRowYkd+2cOHC7JRTTsmaNWuW5XK5bEW/znr27Jl17tx5mfvKzn/FFVdUqeabb74522STTbLi4uKsQ4cO2YgRI7KhQ4eWq2nChAnZTjvtlNWvXz+LiGzAgAFZlmX5tp999llB+wEDBmQNGzZc4bUsXrw4++1vf5u1atUqKy4uzrbaaqvskUceyQYMGJC1atVqmdd51VVXZRtttFFWXFyc7bjjjtmbb7653PuXZVk2duzYcv2obt26WYcOHbJLLrmk4J5kWZY99NBD2RZbbJHVq1cva926dXbZZZdlt9xySxYR2ZQpU7Isy7J//vOfWb9+/bKNN944Ky4uzkpKSrK99947e/XVV8s9f0X65KJFi7ILLrgga9GiRVa/fv2sV69e2dtvv521atUqf7+X56uvvsoGDx6ctWzZMqtTp062ySabZFdccUW590hEZIMGDSp3fEWe5/v62/J88cUXWXFxcRYR2bvvvlvh47788svsyCOPzNZff/2sUaNGWZ8+fbIJEyaUq7PsM+KVV14pOL7sNR87dmx+2w+9x0v3oSUfZZ8bCxYsyP70pz9l+++/f75fN2jQINtqq62yK664Ips3b17+fP/617+yM888M/vxj3+crbvuulnt2rWzFi1aZAcffHD2z3/+s8L36oMPPsiOPfbYrHXr1lndunWzH/3oR9kOO+yQ3XDDDdncuXPz7SrSr7Ps/z7LRo8enW2xxRb5z4d777234Hnnzp2bnX766fn7ucMOO2Tjxo1b5ufoN998k5177rlZmzZtsjp16mSlpaXZQQcdlE2ePLng/g4dOrTguIsuuijbYIMNsqKiooI6l/WaVeRz77777st69+6dlZSUZHXr1s023njj7Pjjj88+/fTTFd7n6dOnZ7Vr185uv/32gu1z5szJDj300Kxp06ZZROQ/u8r64NL3bVm/F7Isy+6+++5sq622yoqLi7N11103O+yww7L//Oc/5eq44447srZt22Z169bNunbtmo0ePbrcZ2ZFrrOir19lr+PGG2/M2rRpkxUXF2dbb7119uyzzy6zTyxLq1atvvc9tuT1Zdl37+frrrsu23LLLbN69epl9erVy7bccsvs+uuvzxYtWlTQ9vuuoUyvXr2yxo0bZzNnzswOOuigbK+99lpunSeddFIWEdmoUaOWuX/+/PnZZZddlnXu3DkrLi7O1llnnaxbt27ZBRdckM2aNSvfrrLvyWWZOXNmVrdu3ezPf/7zcmsGAFgVclmWeNUwAGClmzp1arRp0yauuOKKOOOMM1KXA2u01q1bR5cuXfJTRPF/jj766Pjggw/iueeeS10KK8HChQtjvfXWi2HDhsVJJ530ve0GDx4cN998c0ybNi0aNGiwCiss79prr43LL788Jk+eXG3r9QAAVJU56wEAgFVi6NCh8corr5SbI541wxdffBGDBw+OAw444HvbzJ07N+6444448MADkwf1CxYsiKuvvjp+/etfC+oBgNWCOesBAIBVYuONN86ve8Gap6SkJM4///xl7psxY0Y8+eSTcd9998Xnn38ev/zlL1dtcctQp06d+Pjjj1OXAQCQJ6wHAABgpXr33XfjsMMOi5KSkrj++uuja9euqUsCAFjtmLMeAAAAAAASM2c9AAAAAAAkJqwHAAAAAIDEhPUAAAAAAJDYGrnA7OcXHpe6BADWIg07d0xdAgBriWy90tQlALCWqN+rX+oSaqRH62yWuoTVTt8F76cuocYwsh4AAAAAABIT1gMAAAAAQGLCegAAAAAASExYDwAAAAAAia2RC8wCAAAAAKxquTq51CVQgxlZDwAAAAAAiQnrAQAAAAAgMWE9AAAAAAAkJqwHAAAAAIDEhPUAAAAAAJBY7dQFAAAAAACsCYpq51KXQA1mZD0AAAAAACQmrAcAAAAAgMSE9QAAAAAAkJiwHgAAAAAAErPALAAAAABANcjVMTaaqtN7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Skpin332iUGDBsVdd90VpaWlK7M2AAAAAIAaI8tVeSITqHhYv+WWW8brr78ezz77bH4KnF69esV66623MusDAAAAAIA1XoW/6nnppZfi888/j8svvzzq168fl19+ebRo0SK6dOkSJ598ctx7770xY8aMlVkrAAAAAACskXJZlmVVPfirr76K5557LsaMGRMjRoyIOXPmxMKFC6uzvir5cPLk1CUAsBb5OmuUugQA1hJFsTh1CQCsJTq3b5G6hBrpk/f/lbqE1U7LzbZIXUKNUeFpcJa0ePHieOWVV+Lpp5+OsWPHxgsvvBBff/11tGrVqrrrAwAAAACANV6Fw/qXX345nn766Xj66afj+eefjzlz5sSGG24YvXr1iuuvvz523nnnaN269UosFQAAAABg9ZXlcqlLoAarcFi/3XbbRWlpaey8885x9dVXx8477xzt2rVbmbUBAAAAAMBaocJh/XvvvRebbbbZyqwFAAAAAADWSkUVbSioBwAAAACAlaPCI+vbtm1boXYffvhhlYsBAAAAAIC1UYXD+qlTp0arVq3i0EMPjZKSkpVZEwAAAAAArFUqHNbffffdccstt8TVV18de+65Zxx11FGx1157RVFRhWfSAQAAAABYY2WRS10CNViFk/aDDz44Hn/88Zg0aVJ069YtBg8eHBtttFGcc845MXHixJVZIwAAAAAArNEqPSx+gw02iHPPPTcmTpwYo0aNivHjx0eHDh3iyy+/XBn1AQAAAADAGq/C0+Asae7cuXHffffFLbfcEuPHj4+DDz44GjRoUN21AQAAAADAWqFSYf348ePj5ptvjnvuuSfatm0bRx11VNx///2xzjrrrKz6AAAAAABgjVfhsL5z584xY8aMOPTQQ+OZZ56JLbfccmXWBQAAAABQo2S5Ss86Dnm5LMuyijQsKiqKhg0bRu3atSOX+/5Vjb/44otqK66qPpw8OXUJAKxFvs4apS4BgLVEUSxOXQIAa4nO7VukLqFG+vfEd1OXsNrZaJNOqUuoMSo8sn7EiBErsw4AAAAAAFhrVTisHzBgwMqsAwAAAAAA1loVmkSpgjPlAAAAAAAAVVChsL5z585x1113xfz585fbbuLEiXHiiSfGpZdeWi3FAQAAAADA2qBC0+DccMMNcfbZZ8dJJ50Uu+++e2y99dbRsmXLqFevXnz55Zfx7rvvxvPPPx/vvPNOnHzyyXHiiSeu7LoBAAAAAFYrWeRSl0ANlssqMcfN888/H3fffXc899xz8dFHH8W3334b66+/fmy11VbRp0+fOOyww2KdddZZmfVWyIeTJ6cuAYC1yNdZo9QlALCWKIrFqUsAYC3RuX2L1CXUSB9PfC91CaudjTfpmLqEGqPCC8xGRPzkJz+Jn/zkJyurFgAAAAAAWCtVaM56AAAAAABg5RHWAwAAAABAYpWaBgcAAAAAgGXLcsZGU3V6DwAAAAAAJCasBwAAAACAxCod1vfs2TNuu+22+Pbbb1dGPQAAAAAAsNapdFi/1VZbxRlnnBGlpaVx7LHHxksvvbQy6gIAAAAAgLVGpcP6a6+9Nj755JMYMWJEzJgxI3baaafo1KlTXHnllTF9+vSVUSMAAAAAwGovi5zHUg8qrkpz1teuXTt++tOfxt/+9rf4z3/+E4ceemj85je/iY022ij233//+Mc//lHddQIAAAAAwBrrBy0w+/LLL8fQoUPjqquuipKSkhgyZEisv/76sffee8cZZ5xRXTUCAAAAAMAarXZlD5gxY0bcfvvtMWLEiJg4cWLss88+8Ze//CX69OkTudx3f9YwcODA2GOPPeLKK6+s9oIBAAAAAGBNU+mwfsMNN4x27drFUUcdFQMHDoxmzZqVa7PFFlvENttsUy0FAgAAAADAmq7SYf1TTz0VO+6443LbNG7cOMaOHVvpYrIsi6effjomTZoULVq0iD59+kSdOnUqfR4AAAAAAKhJKj1n/dChQ2PmzJnlts+ePTt22WWXSp1rr732ilmzZkVExBdffBE9evSIXXfdNc4999zYb7/9YosttojPPvussiUCAAAAAKxyWa7IY6kHFVfpu/XMM8/E/Pnzy22fO3duPPfcc5U61xNPPBHz5s2LiIhf//rX8dVXX8XkyZNjxowZ8dFHH0XDhg3jvPPOq2yJAAAAAABQo1R4Gpx//etfEfHdVDXvvvtuTJs2Lb9v0aJF8cQTT8QGG2xQ5UL+8Y9/xOWXXx5t2rSJiO/mxr/sssvi2GOPrfI5AQAAAACgJqhwWN+1a9fI5XKRy+WWOd1N/fr144Ybbqh0AblcLiIivvzyy2jXrl3Bvvbt28cnn3xS6XMCAAAAAEBNUuGwfsqUKZFlWbRt2zZefvnlaNasWX5f3bp1o6SkJGrVqlXpAgYOHBjFxcWxYMGCmDJlSnTu3Dm/b9q0adG0adNKnxMAAAAAAGqSCof1rVq1ioiIxYsXV9uTDxgwIP/v/fbbL7755puC/ffff3907dq12p4PAAAAAGBlySKXugRqsFyWZdmKGj300EOx5557Rp06deKhhx5abtt999232or7+uuvo1atWlGvXr1KHffh5MnVVgMArMjXWaPUJQCwliiK6hs8BQDL07l9i9Ql1EhyyfLaLjX1Od+vQmF9UVFRTJs2LUpKSqKoqOj7T5bLxaJFi6q1wKrwpgBgVRLWA7CqCOsBWFWE9VUjlyyvKmH973//+7jiiiti2rRpseWWW8YNN9wQ22677UqobvXy/cn7EhYvXhwlJSX5f3/fo7qD+r/97W9x2223Ves5AQAAAABYPd19991x2mmnxdChQ+Of//xnbLnlltGnT5+YMWNG6tJWugqNrE+lQ4cOMXHixEp/CeAbLABWJSPrAVhVjKwHYFUxsr5q5JLlVXZkfffu3WObbbaJ3/3udxHx3eDxjTbaKE455ZQ455xzVkaJq40Kjaxf0i9+8Yu4/vrry23/3e9+F6eeemp11JQ3YcKEFQb18+bNi9mzZxc85s2bV611AAAAAABQeZXJb+fPnx+vvfZa7LbbbvltRUVFsdtuu8W4ceNWVcnJVDqsv//++2OHHXYot3377beP++67r1qKqoxhw4ZFkyZNCh7Dhw9f5XUAAAAAAGu3LJfzWOqxrPx22LBhy7x///vf/2LRokXRvHnzgu3NmzePadOmrYqXMKnalT3g888/jyZNmpTb3rhx4/jf//5XqXPdf//9seeee0aDBg0qW0bekCFD4rTTTivY9t///KfK5wMAAAAAoHosK78tLi5OVM3qrdIj69u3bx9PPPFEue2PP/54tG3btlLnOvjgg6NFixZx3HHHxfjx4ytbSkR898I2bty44OHFBgAAAABIrzL57frrrx+1atWK6dOnF2yfPn16lJaWropyk6p0WH/aaafFWWedFUOHDo1nnnkmnnnmmTjvvPPinHPOicGDB1e6gDPOOCNeffXV6NGjR3Tp0iWuvfba+Pzzzyt9HgAAAAAAaq66detGt27d4qmnnspvW7x4cTz11FPRo0ePhJWtGrksy7LKHnTTTTfFJZdcEp988klERLRu3TrOP//86N+/f6XOU1RUFNOmTYuSkpJ47bXX4uabb46//OUv8e2338a+++4bxx57bOy+++6VLc+qywCsUl9njVKXAMBaoigWpy4BgLVE5/YtUpdQI03+8MPUJax22lVyNpa77747BgwYEH/4wx9i2223jWuvvTbuueeemDBhQrm57Nc0VQrry3z22WdRv379aNSoaiHFkmF9mblz58a9994bt9xySzz77LOx8cYbx5QpUyp1XmE9AKuSsB6AVUVYD8CqIqyvmkmTK5djrg3at2tT6WN+97vfxRVXXBHTpk2Lrl27xvXXXx/du3dfCdWtXn5QWP9D1apVKz799NOCsH5JkyZNihEjRsQll1xSqfMK6wFYlYT1wP9r796jrazqvYF/N2w3qCglKBtMBQNFvISichEvnCgsS+mUw8tJRTGr4w3FTD1mHq0ozRQvSb4GaG/m5ZSWWRqhaB5RTyp5N1GUvGz0lECigrLX+4fD9bYFbIMbpmvz+YzxDF3PnGuu3wN/rLG//PacsKYI6wFYU4T1q0ZYv6xVCevXVvWr8qb/+q//yrXXXpu5c+dmyZIlLcbuv//+Vq/zz/6doG/fvisd1AMAAAAAQK1Z6QNmL7zwwhx++OHp0aNHHnjggey6667p1q1bnn766XzqU59aqbXmzJmTjTfeeGVLAAAAAACAdmWlw/of/vCHueyyy3LRRReloaEhJ598cqZNm5bjjjsuCxYsWKm1tthii9TV1a1sCQAAAAAA0K6sdFg/d+7cDBs2LEmy7rrr5u9//3uS5JBDDsnPfvazlS7g9ddfz5133plHH310mbE33ngjV1555UqvCQAAAAAAtWSlw/rGxsb87W9/S5Jsvvnmufvuu5O8vaXNyp5V++c//znbbLNN9thjj2y//fbZc8898+KLL1bHFyxYkMMPP3xlSwQAAAAAWOMq6eB610XrrfSf1r/8y7/kV7/6VZLk8MMPzwknnJBPfOITOeCAA/K5z31updb6+te/nu222y4vvfRSnnjiiWywwQbZbbfdMnfu3JUtCwAAAAAAalZdZSXb4Zubm9Pc3Jz6+vokydVXX5277ror/fr1y5e//OU0NDS0eq0ePXrk97//fbbffvskSaVSyb//+7/nN7/5TW677basv/766dWrV5YuXboyJebpp55aqfkA8H4sqnQpXQIAa4kOaS5dAgBriW379ixdQk168qlnS5fwgdPvo1uULqFm1K/sGzp06JAOHf5/Q/6BBx6YAw88cJU+/PXXX6+G/klSV1eXSy+9NMccc0z23HPPXHXVVau0LgAAAAAA1JKVDuuT5JVXXsmPf/zjPPbYY0mSAQMG5PDDD89GG220Uuv0798/f/zjH7PNNtu0uH/xxRcnSfbdd99VKQ8AAAAAAGrKSu9Zf8cdd6RPnz658MIL88orr+SVV17JhRdemD59+uSOO+5YqbU+97nP5Wc/+9lyxy6++OIcdNBBK31oLQAAAABACZXUud510XorvWf99ttvn6FDh+bSSy9Nx44dkyRLly7Nv//7v+euu+7KQw89tFoKXRn2rAdgTbJnPQBrij3rAVhT7Fm/av781NzSJXzgbPXRzUuXUDNWurN+9uzZGT9+fDWoT5KOHTvmxBNPzOzZs9u0OAAAAAAAWBusdFi/0047Vfeq/0ePPfZYPvaxj7VJUQAAAAAAsDZZ6QNmjzvuuBx//PGZPXt2hgwZkiS5++67c8kll+S73/1uHnzwwercHXbYoe0qBQAAAACAdmql96zv0OG9m/Hr6upSqVRSV1eXpUuXvq/iVpU96wFYk+xZD8CaYs96ANYUe9avmiee+kvpEj5wtv7oZqVLqBkr3Vk/Z86c1VEHAAAAAACstVY6rN9iiy1WRx0AAAAAALDWWumw/h2PPvpo5s6dmyVLlrS4v++++77vogAAAAAAYG2y0mH9008/nc997nN56KGHqvvTJ2/vVZ+k2D71AAAAAABQq977tNjlOP7449OnT5+89NJLWW+99fLII4/kjjvuyM4775wZM2ashhIBAAAAAKB9W+nO+pkzZ+bWW29N9+7d06FDh3To0CHDhw/PhAkTctxxx+WBBx5YHXUCAAAAAHygVVJXugRq2Ep31i9dujQbbLBBkqR79+554YUXkrx98OwTTzzRttUBAAAAAMBaYKU767fbbrv86U9/Sp8+fTJ48OCcc845aWhoyGWXXZYtt9xyddQIAAAAAADt2kqH9aeffnoWLVqUJDnrrLPymc98Jrvvvnu6deuWa665ps0LBAAAAACA9m6lw/pRo0ZV/79v3755/PHH87e//S0f/vCHU1dnTyYAAAAAAFhZrd6zfunSpXnwwQfz+uuvLzO27rrr5qGHHkpzc3ObFgcAAAAAUCsqqXO966L1Wh3W/+QnP8kRRxyRhoaGZcbWWWedHHHEEbnqqqvatDgAAAAAAFgbtDqs//GPf5yTTjopHTt2XGasvr4+J598ci677LI2LQ4AAAAAANYGrQ7rn3jiiQwZMmSF47vssksee+yxNikKAAAAAADWJq0O6xctWpSFCxeucPzvf/97XnvttTYpCgAAAAAA1iatDuv79euXu+66a4Xjd955Z/r169cmRQEAAAAAwNqk1WH9wQcfnNNPPz0PPvjgMmN/+tOfcsYZZ+Tggw9u0+IAAAAAAGpFpVLnetdF69W3duIJJ5yQ3/72txk0aFBGjhyZ/v37J0kef/zx/P73v89uu+2WE044YbUVCgAAAAAA7VWrw/p11lknv/vd73L++efnqquuyh133JFKpZKtttoq3/72tzNu3Liss846q7NWAAAAAABol+oqlUqldBFt7emnnipdAgBrkUWVLqVLAGAt0SHNpUsAYC2xbd+epUuoSY/OfqF0CR84A/r2Kl1CzWj1nvUAAAAAAMDq0eptcAAAAAAAWLFKHKjKqtNZDwAAAAAAhQnrAQAAAACgsFaH9SeddFIef/zx1VkLAAAAAACslVod1v/yl7/Mtttum2HDhmXy5MlZtGjR6qwLAAAAAADWGq0O65988sncdttt2WqrrXL88censbExRxxxRO66667VWR8AAAAAQE2opM71rovWW6k96/fYY49MnTo1TU1NmThxYp588skMHz4822yzTb7//e9n3rx5q6tOAAAAAABot+oqlUrl/Swwe/bsTJkyJZMmTcqrr76axYsXt1Vtq+zpp54qXQIAa5FFlS6lSwBgLdEhzaVLAGAtsW3fnqVLqEkPz24qXcIHznZ9G0uXUDNWqrP+3RYtWpQ//OEPuf322/PKK69kyy23bKu6AAAAAABgrbFKYf2dd96ZI444Ij179sxxxx2XrbbaKn/4wx/y2GOPtXV9AAAAAADQ7tW3duKLL76YK664IlOnTs2f//znDBkyJD/4wQ9y4IEHpksXv/4PAAAAAACrqtVh/WabbZZu3brlkEMOydixY7PNNtuszroAAAAAAGpKJXWlS6CGtTqsv/baa7Pvvvumvr7VbwEAAAAAAFqh1XvW77fffjnvvPOy2267ZZdddskpp5yS119/fXXWBgAAAAAAa4VWh/Xf+c53ctppp6VLly7ZdNNNM3HixBx99NGrszYAAAAAAFgrtDqsv/LKK/PDH/4wt9xyS264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dfydez179mwxZ0X74L8fwnoAAAAAgDZQqZSuoLZtvPHG2XjjjVs19/nnn8+IESMyaNCgTJkyJR06/PMd32fNmtUidB86dGimT5+ecePGVe9NmzYtQ4cOTZL06dMnjY2NmT59ejWcX7hwYe6555589atfbf2DtZKwHgAAAACAmvH8889nr732yhZbbJHvf//7efnll6tj73TDX3HFFWloaMiOO+6YJPnFL36RyZMn5/LLL6/OPf7447PnnnvmvPPOyz777JOrr746f/zjH6td+nV1dRk3bly+9a1vpV+/funTp0++8Y1vpFevXhk9enSbP5ewHgAAAACAmjFt2rTMnj07s2fPzkc+8pEWY5V/+PWGs88+O88++2zq6+vTv3//XHPNNfnCF75QHR82bFiuuuqqnH766TnttNPSr1+/3HDDDdluu+2qc04++eQsWrQoRx11VObPn5/hw4fn5ptvTufOndv8ueoqlfb3yxlPP/VU6RIAWIssqnQpXQIAa4kOaS5dAgBriW379vznk1jGtD8tLl3CB84nPta6/epJ/vlGPgAAAAAAwGolrAcAAAAAgMLsWQ8AAAAA0AYqqStdAjVMZz0AAAAAABQmrAcAAAAAgMKE9QAAAAAAUJiwHgAAAAAACnPALAAAAABAG2iulK6AWqazHgAAAAAAChPWAwAAAABAYcJ6AAAAAAAoTFgPAAAAAACFOWAWAAAAAKANVCp1pUughumsBwAAAACAwoT1AAAAAABQmLAeAAAAAAAKE9YDAAAAAEBhwnoAAAAAACisvnQBAAAAAADtQaVSugJqmc56AAAAAAAoTFgPAAAAAACFCesBAAAAAKAwYT0AAAAAABTmgFkAAAAAgDbQnLrSJVDDdNYDAAAAAEBhwnoAAAAAAChMWA8AAAAAAIUJ6wEAAAAAoDBhPQAAAAAAFFZfugAAAAAAgPagUildAbVMZz0AAAAAABQmrAcAAAAAgMKE9QAAAAAAUJiwHgAAAAAACnPALAAAAABAG6hU6kqXQA3TWQ8AAAAAAIUJ6wEAAAAAoDBhPQAAAAAAFCasBwAAAACAwhwwCwAAAADQBporpSuglumsBwAAAACAwoT1AAAAAABQmLAeAAAAAAAKE9YDAAAAAEBhwnoAAAAAACisvnQBAAAAAADtQaVSugJqmc56AAAAAAAoTFgPAAAAAACFCesBAAAAAKAwYT0AAAAAABTmgFkAAAAAgDZQSV3pEqhhOusBAAAAAKAwYT0AAAAAABQmrAcAAAAAgMKE9QAAAAAAUJiwHgAAAAAACqsvXQAAAAAAQHvQXCldAbVMZz0AAAAAABQmrAcAAAAAgMKE9QAAAAAAUJiwHgAAAAAACnPALAAAAABAG6g4YJb3QWc9AAAAAAAUJqwHAAAAAIDChPUAAAAAAFBYu9yz/qSJNocCYM159ZUXSpcAwFritfkLS5cAwFrizht7li4B1jo66wEAAAAAoLB22VkPAAAAALCmVWz4wfugsx4AAAAAAAoT1gMAAAAAQGHCegAAAAAAKExYDwAAAAAAhTlgFgAAAACgDTRX6kqXQA3TWQ8AAAAAAIUJ6wEAAAAAoDBhPQAAAAAAFCasBwAAAACAwhwwCwAAAADQBiqV0hVQy3TWAwAAAABAYcJ6AAAAAAAoTFgPAAAAAACFCesBAAAAAKAwYT0AAAAAABRWX7oAAAAAAID2oFIpXQG1TGc9AAAAAAAUJqwHAAAAAIDChPUAAAAAAFCYsB4AAAAAAApzwCwAAAAAQBtodsAs74POegAAAAAAKExYDwAAAAAAhQnrAQAAAACgMGE9AAAAAAAUJqwHAAAAAIDC6ksXAAAAAADQHlQqdaVLoIbprAcAAAAAgMKE9QAAAAAAUJiwHgAAAAAAChPWAwAAAABAYQ6YBQAAAABoA5VK6QqoZTrrAQAAAACgMGE9AAAAAAAUJqwHAAAAAIDChPUAAAAAAFCYA2YBAAAAANpAswNmeR901gMAAAAAQGHCegAAAAAAKExYDwAAAAAAhQnrAQAAAACgMGE9AAAAAAAUVl+6AAAAAACA9qBSKV0BtUxnPQAAAAAAFCasBwAAAACAwoT1AAAAAABQmLAeAAAAAAAKc8AsAAAAAEAbcMAs74fOegAAAAAAKExYDwAAAAAAhQnrAQAAAACgMGE9AAAAAAAUJqwHAAAAAIDC6ksXAAAAAADQHjRXSldALdNZDwAAAAAAhQnrAQAAAACgMGE9AAAAAAAUJqwHAAAAAIDCHDALAAAAANAGKg6Y5X3QWQ8AAAAAAIUJ6wEAAAAAoDBhPQAAAAAAFCasBwAAAACAwhwwCwAAAADQBpqbS1dALdNZDwAAAAAAhQnrAQAAAACgMGE9AAAAAAAUJqwHAAAAAIDChPUAAAAAAFBYfekCAAAAAADag0qldAXUMp31AAAAAABQmLAeAAAAAAAKE9YDAAAAAEBhwnoAAAAAACjMAbMAAAAAAG3AAbO8HzrrAQAAAACgMGE9AAAAAAAUJqwHAAAAAIDChPUAAAAAAFCYsB4AAAAAAAqrL10AAAAAAEB70FwpXQG1TGc9AAAAAAA1pXfv3qmrq2txffe7320x58EHH8zuu++ezp07Z7PNNss555yzzDrXXXdd+vfvn86dO2f77bfPb37zmxbjlUolZ5xxRnr27Jl11103I0eOzJNPPrlanklYDwAAAABAzTnrrLPy4osvVq9jjz22OrZw4cJ88pOfzBZbbJH77rsv5557bs4888xcdtll1Tl33XVXDjrooIwdOzYPPPBARo8endGjR+fhhx+uzjnnnHNy4YUXZtKkSbnnnnuy/vrrZ9SoUXnjjTfa/HmE9QAAAAAA1JwNNtggjY2N1Wv99devjv30pz/NkiVLMnny5Gy77bY58MADc9xxx+UHP/hBdc7EiROz995752tf+1q22WabnH322dlpp51y8cUXJ3m7q/6CCy7I6aefnv322y877LBDrrzyyrzwwgu54YYb2vx5hPUAAAAAAKwWixcvzsKFC1tcixcvbpO1v/vd76Zbt27Zcccdc+655+att96qjs2cOTN77LFHGhoaqvdGjRqVJ554Iq+88kp1zsiRI1usOWrUqMycOTNJMmfOnDQ1NbWY07Vr1wwePLg6py0J6wEAAAAA2kClUnG965owYUK6du3a4powYcL7/rM+7rjjcvXVV+e2227Ll7/85XznO9/JySefXB1vampKjx49WrznnddNTU3vOecfx//xfcub05bq23xFAAAAAABIcuqpp+bEE09sca9Tp07LnXvKKafke9/73nuu99hjj6V///4t1txhhx3S0NCQL3/5y5kwYcIK1/+gE9YDAAAAALBadOrUqdXh+fjx4zNmzJj3nLPlllsu9/7gwYPz1ltv5ZlnnsnWW2+dxsbGzJs3r8Wcd143NjZW/7u8Of84/s69nj17tpgzcODAVj3TyhDWAwAAAABQ3MYbb5yNN954ld47a9asdOjQIZtsskmSZOjQofmP//iPvPnmm1lnnXWSJNOmTcvWW2+dD3/4w9U506dPz7hx46rrTJs2LUOHDk2S9OnTJ42NjZk+fXo1nF+4cGHu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ftNNN2WLLbZYgxUBAAAAAMCaV3QbnLPOOisHH3xwZsyYkZEjR7bYs3769Om5+eabc9VVV5UsEQAAAACgVSrOl+V9KBrW77///tl0001z4YUX5rzzzktTU1OSpLGxMUOHDs2MGTMydOjQ91xj8eLFWbx4cYt7S5cuTseOnVZb3QAAAAAA0JaKhvVJMmzYsAwbNmyV3z9hwoT853/+Z4t7/Xc9NtsMPu79lgYAAAAAAGtE0T3r28Kpp56aBQsWtLi22vnLpcsCAAAAAIBWK95Z/15OO+20NDU1ZfLkySuc06lTp3Tq1HLLG1vgAAAAAABQSz7QYf1zzz2X5557rnQZAAAAAAD/VKXZCbOsug90WH/llVeWLgEAAAAAAFa7D1RYv2jRolx77bWZPXt2evbsmYMOOijdunUrXRYAAAAAAKxWRcP6AQMG5M4778xGG22Uv/zlL9ljjz3yyiuvZKuttspTTz2Vs88+O3fffXf69OlTskwAAAAAAFitOpT88McffzxvvfVWkuTUU09Nr1698uyzz+bee+/Ns88+mx122CH/8R//UbJEAAAAAABY7YqG9f9o5syZOfPMM9O1a9ckSZcuXfKf//mfufPOOwtXBgAAAAAAq1fxPevr6uqSJG+88UZ69uzZYmzTTTfNyy+/XKIsAAAAAICV0lyplC6BGlY8rP/4xz+e+vr6LFy4ME888US222676tizzz7rgFkAAAAAANq9omH9N7/5zRavu3Tp0uL1jTfemN13331NlgQAAAAAAGvcByqsf7dzzz13DVUCAAAAAADlfGAOmAUAAAAAgH9mxowZqaurW+71P//zP0mSZ555Zrnjd999d4u1rrvuuvTv3z+dO3fO9ttvn9/85jctxiuVSs4444z07Nkz6667bkaOHJknn3xytTyXsB4AAAAAoA1Umiuud12rw7Bhw/Liiy+2uI488sj06dMnO++8c4u5v//971vMGzRoUHXsrrvuykEHHZSxY8fmgQceyOjRozN69Og8/PDD1TnnnHNOLrzwwkyaNCn33HNP1l9//YwaNSpvvPFGmz+XsB4AAAAAgJrR0NCQxsbG6tWtW7f88pe/zOGHH566uroWc7t169Zi7jrrrFMdmzhxYvbee+987WtfyzbbbJOzzz47O+20Uy6++OIkb3fVX3DBBTn99NOz3377ZYcddsiVV16ZF154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AAAAwGqxePHiLFy4sMW1ePHi1f65M2fOzPbbb18N6pNk1KhRWbhwYR555JHqnJEjR7Z436hRozJz5swkb3fv33fffS3mdOjQISNHjqzOue+++/Lmm2+2mNO/f/9svvnm1TmtJawHAAAAAGC1mDBhQrp27drimjBhwmr/3KamphZBfZLq66ampvecs3Dhwrz++uv53//93yxdunS5c/5xjYaGhmX2zf/HOa0lrAcAAAAAaAOV5orrXdepp56aBQsWtLhOPfXU5f75nXLKKamrq3vP6/HHH1/Df6trTn3pAgAAAAAAaJ86deqUTp06tWru+PHjM2bMmPecs+WWW7ZqrcbGxtx7770t7s2bN6869s5/37n3j3M23HDDrLvuuunYsWM6duy43Dn/uMaSJUsyf/78Ft31/zintXTWAwAAAABQ3MYbb5z+/fu/59XQ0NCqtYYOHZqHHnooL730UvXetGnTsuGGG2bAgAHVOdOnT2/xvmnTpmXo0KFJkoaGhgwaNKjFnObm5kyfPr06Z9CgQVlnnXVazHniiScyd+7c6pzW0lkPAAAAAEBNmTt3bv72t79l7ty5Wbp0aWbNmpUk6du3b7p06ZJPfvKTGTBgQA455JCcc845aWpqyumnn56jjz662un/la98JRdffHFOPvnkHHHEEbn11ltz7bXX5qabbqp+zoknnpjDDjssO++8c3bddddccMEFWbRoUQ4//PAkSdeuXTN27NiceOKJ2WijjbLhhhvm2GOPzdChQzNkyJCVeiZhPQAAAAAANeWMM87IFVdcUX294447Jkluu+227LXXXunYsWN+/etf56tf/WqGDh2a9ddfP4cddljOOuus6nv69OmTm266KSeccEImTpyYj3zkI7n88sszatSo6pwDDjggL7/8cs4444w0NTVl4MCBufnmm1scOnv++eenQ4cO+fznP5/Fixdn1KhR+eEPf7jSz1RXqVQqq/KH8UH2r8fNLl0CAGuRV1/5e+kSAFhLvDZ/YekSAFhL3HnjnqVLqEmf+Lf7SpfwgTPtp4NKl1Az7FkPAAAAAACFCesBAAAAAKAwYT0AAAAAABQmrAcAAAAAgMLqSxcAAAAAANAeVJorpUughumsBwAAAACAwoT1AAAAAABQmLAeAAAAAAAKE9YDAAAAAEBhwnoAAAAAACisvnQBAAAAAADtQaXSXLoEapjOegAAAAAAKExYDwAAAAAAhQnrAQAAAACgMGE9AAAAAAAU5oBZAAAAAIA20NxcKV0CNUxnPQAAAAAAFCasBwAAAACAwoT1AAAAAABQmLAeAAAAAAAKE9YDAAAAAEBh9aULAAAAAABoDyrNzaVLoIbprAcAAAAAgMKE9QAAAAAAUJiwHgAAAAAAChPWAwAAAABAYQ6YBQAAAABoA5XmSukSqGE66wEAAAAAoDBhPQAAAAAAFCasBwAAAACAwoT1AAAAAABQmANmAQAAAADaQKXSXLoEapjOegAAAAAAKExYDwAAAAAAhQnrAQAAAACgMGE9AAAAAAAUJqwHAAAAAIDC6ksXAAAAAADQHlSaK6VLoIbprAcAAAAAgMKE9QAAAAAAUJiwHgAAAAAAChPWAwAAAABAYQ6YBQAAAABoA5Xm5tIlUMN01gMAAAAAQGHCegAAAAAAKExYDwAAAAAAhQnrAQAAAACgMGE9AAAAAAAUVlepVCqliwDKW7x4cSZMmJBTTz01nTp1Kl0OAO2Y7xwA1iTfOwDUCmE9kCRZuHBhunbtmgULFmTDDTcsXQ4A7ZjvHADWJN87ANQK2+AAAAAAAEBhwnoAAAAAAChMWA8AAAAAAIUJ64EkSadOnfLNb37TgUsArHa+cwBYk3zvAFArHDALAAAAAACF6awHAAAAAIDChPUAAAAAAFCYsB4AAAAAAAoT1gMAAAAAQGHCemjHLrnkkvTu3TudO3fO4MGDc++9965w7tSpU1NXV9fi6ty5c4s5lUolZ5xxRnr27Jl11103I0eOzJNPPrm6HwOAD7A77rgjn/3sZ9OrV6/U1dXlhhtueM/5M2bMWOb7pq6uLk1NTS3mrcx3GABrhwkTJmSXXXbJBhtskE022SSjR4/OE0888Z7v8XMOALVEWA/t1DXXXJMTTzwx3/zmN3P//ffnYx/7WEaNGpWXXnpphe/ZcMMN8+KLL1avZ599tsX4OeeckwsvvDCTJk3KPffck/XXXz+jRo3KG2+8sbofB4APqEWLFuVjH/tYLrnkkpV63xNPPNHiO2eTTTapjq3KdxgA7d/tt9+eo48+OnfffXemTZuWN998M5/85CezaNGi93yfn3MAqBV1lUqlUroIoO0NHjw4u+yySy6++OIkSXNzczbbbLMce+yxOeWUU5aZP3Xq1IwbNy7z589f7nqVSiW9evXK+PHjc9JJJyVJFixYkB49emTq1Kk58MADV9uzAFAb6urqcv3112f06NErnDNjxoyMGDEir7zySj70oQ8td87KfocBsHZ6+eWXs8kmm+T222/PHnvssdw5fs4BoJborId2aMmSJbnvvvsycuTI6r0OHTpk5MiRmTlz5grf9+qrr2aLLbbIZpttlv322y+PPPJIdWzOnDlpampqsWbXrl0zePDg91wTAJZn4MCB6dmzZz7xiU/kv//7v6v3V/U7DIC1z4IFC5IkG2200XvO83MOALVCWA/t0P/+7/9m6dKl6dGjR4v7PXr0WGZP4HdsvfXWmTx5cn75y1/m//7f/5vm5uYMGzYszz33XJJU37cyawLAu/Xs2TOTJk3Kz3/+8/z85z/PZpttlr322iv3339/klX7DgNg7dPc3Jxx48Zlt912y3bbbbfCeX7OAaCW1JcuAPhgGDp0aIYOHVp9PWzYsGyzzTb50Y9+lLPPPrtgZQC0J1tvvXW23nrr6uthw4blqaeeyvnnn5+f/OQnBSsDoJYcffTRefjhh3PnnXe+5zw/5wBQS3TWQzvUvXv3dOzYMfPmzWtxf968eWlsbGzVGuuss0523HHHzJ49O0mq73s/awLA8uy6667V75u2+A4DoH075phj8utf/zq33XZbPvKRj6zUe/2cA8AHmbAe2qGGhoYMGjQo06dPr95rbm7O9OnTW3SVvJelS5fmoYceSs+ePZMkffr0SWNjY4s1Fy5cmHvuuafVawLA8syaNav6fdMW32EAtE+VSiXHHHNMrr/++tx6663p06fPSq/h5xwAPshsgwPt1IknnpjDDjssO++8c3bddddccMEFWbRoUQ4//PAkyaGHHppNN900EyZMSJKcddZZGTJkSPr27Zv58+fn3HPPzbPPPpsjjzwySVJXV5dx48blW9/6Vvr165c+ffrkG9/4Rnr16pXRo0eXekwACnv11Ver3YnJ2wf1zZo1KxtttFE233zznHrqqXn++edz5ZVXJkkuuOCC9OnTJ9tuu23eeOONXH755bn11lvzu9/9rrrGP/sOA2DtdPTRR+eqq67KL3/5y2ywwQbVPeW7du2addddN4mfcwCobcJ6aKcOOOCAvPzyyznjjDPS1NSUgQMH5uabb64enDR37tx06PD/f7nmlVdeyZe+9KU0NTXlwx/+cAYNGpS77rorAwYMqM45+eSTs2jRohx11FGZP39+hg8fnptvvjmdO3de488HwAfDH//4x4wYMaL6+sQTT0ySHHbYYZk6dWpefPHFzJ07tzq+ZMmSjB8/Ps8//3zWW2+97LDDDvn973/fYo1/9h0GwNrp0ksvTZLstddeLe5PmTIlY8aMSeLnHABqW12lUqmULgIAAAAAANZm9qwHAAAAAIDChPUAAAAAAFCYsB4AAAAAAAoT1gMAAAAAQGHCegAAAAAAKExYDwAAAAAAhQnrAQAAAACgMGE9AAAAAAAUJqwHAOADYcyYMRk9evRqWXvJkiXp27dv7rrrrtWy/opMnTo1H/rQh95zzimnnJJjjz12zRQEAAB8YAnrAQBWszFjxqSurm6Za++9967O+dOf/pR99903m2yySTp37pzevXvngAMOyEsvvVSdc/3112fIkCHp2rVrNthgg2y77bYZN27cP/382267LZ/+9KfTrVu3rLfeehkwYEDGjx+f559/fnU87iqbOHFipk6dWn291157ter5WmPSpEnp06dPhg0bVr33zt/D3Xff3WLu4sWL061bt9TV1WXGjBlJkiFDhuQrX/nKMmvW1dW1qDl5++979913b3VtJ510Uq644oo8/fTTK/dQAABAuyKsBwBYA/bee++8+OKLLa6f/exnSZKXX345H//4x7PRRhvllltuyWOPPZYpU6akV69eWbRoUZJk+vTpOeCAA/L5z38+9957b+677758+9vfzptvvvmen/ujH/0oI0eOTGNjY37+85/n0UcfzaRJk7JgwYKcd955q/25V0bXrl3/aRf6qqhUKrn44oszduzYZcY222yzTJkypcW966+/Pl26dGlxb8SIEdXg/h233XZbNttss2Xuz5gxI//yL//S6vq6d++eUaNG5dJLL231ewAAgPZHWA8AsAZ06tQpjY2NLa4Pf/jDSZL//u//zoIFC3L55Zdnxx13TJ8+fTJixIicf/756dOnT5LkxhtvzG677Zavfe1r2XrrrbPVVltl9OjRueSSS1b4mc8991yOO+64HHfccZk8eXL22muv9O7dO3vssUcuv/zynHHGGUmSv/71rznooIOy6aabZr311sv2229f/YeEd+y111455phjcswxx6Rr167p3r17vvGNb6RSqVTn/OQnP8nOO++cDTbYII2NjTn44INb/GZAkjzyyCP5zGc+kw033DAbbLBBdt999zz11FNJWm6DM2bMmNx+++2ZOHFitQN+zpw56du3b77//e+3WHPWrFmpq6vL7Nmzl/vncN999+Wpp57KPvvss8zYYYcdlquvvjqvv/569d7kyZNz2GGHtZg3YsSIPPHEE2lqaqreu/3223PKKae0COvnzJmTZ599NiNGjGjx/ltuuSXbbLNNunTpUv2Hm3/02c9+NldfffVy6wcAANYOwnoAgMIaGxvz1ltv5frrr28Rfr97ziOPPJKHH3641eted911WbJkSU4++eTljr/Txf7GG29k0KBBuemmm/Lwww/nqKOOyiGHHJJ77723xfwrrrgi9fX1uffeezNx4sT84Ac/yOWXX14df/PNN3P22WfnT3/6U2644YY888wzGTNmTHX8+eefzx577JFOnTrl1ltvzX333Zcjjjgib7311jK1TZw4MUOHDs2XvvSl6m8ibL755jniiCOW6YSfMmVK9thjj/Tt23e5z/mHP/whW221VTbYYINlxgYNGpTevXvn5z//eZJk7ty5ueOOO3LIIYe0mLfbbrtlnXXWyW233ZYkefTRR/P6669n7Nix+etf/5o5c+YkebvbvnPnzhk6dGj1va+99lq+//3v5yc/+UnuuOOOzJ07NyeddFKL9Xfdddc899xzeeaZZ5b7DAAAQPsnrAcAWAN+/etfp0uXLi2u73znO0ne3g/9tNNOy8EHH5zu3bvnU5/6VM4999zMmzev+v5jjz02u+yyS7bffvv07t07Bx54YCZPnpzFixev8DOffPLJbLjhhunZs+d71rbpppvmpJNOysCBA7Plllvm2GOPzd57751rr722xbzNNtss559/frbeeuv827/9W4499ticf/751fEjjjgin/rUp7LllltmyJAhufDCC/Pb3/42r776apLkkksuSdeuXXP11Vdn5513zlZbbZXDDz88W2+99TI1de3aNQ0NDVlvvfWqv4nQsWPHjBkzJk888UT1HxLefPPNXHXVVTniiCNW+HzPPvtsevXqtcLxI444IpMnT07y9oGwn/70p7Pxxhu3mLP++utn1113rXbRz5gxI8OHD0+nTp0ybNiwFveHDh2aTp06Vd/75ptvZtKkSdl5552z00475Zhjjsn06dNbrP9Ofc8+++wK6wQAANo3YT0AwBowYsSIzJo1q8X1jweWfvvb305TU1MmTZqUbbfdNpMmTUr//v3z0EMPJXk7LL7pppsye/bsnH766enSpUvGjx+fXXfdNa+99tpyP7NSqaSuru6f1rZ06dKcffbZ2X777bPRRhulS5cuueWWWzJ37twW84YMGdJivaFDh+bJJ5/M0qVLk7y93cxnP/vZbL755tlggw2y5557Jkl1nVmzZmX33XfPOuussxJ/ci316tUr++yzTzVcv/HGG7N48eLsv//+K3zP66+/ns6dO69w/Itf/GJmzpyZp59+OlOnTl1h8L/XXnu1COX32muvJMmee+7Z4v67t8BZb7318tGPfrT6umfPnstsD7TuuusmyQr/LgEAgPZPWA8AsAasv/766du3b4tro402ajGnW7du2X///fP9738/jz32WHr16rXM/uwf/ehHc+SRR+byyy/P/fffn0cffTTXXHPNcj9zq622yoIFC5bZH/3dzj333EycODFf//rXc9ttt2XWrFkZNWpUlixZ0urnW7RoUUaNGpUNN9wwP/3pT/M///M/uf7665Okus47gfT7deSRR1b3mZ8yZUoOOOCArLfeeiuc371797zyyisrHO/WrVs+85nPZOzYsXnjjTfyqU99arnzRowYkT//+c95/vnnM2PGjOo/RrwT1j/11FP5y1/+sszhsu/+x4m6urpltjv629/+liTLdPQDAABrD2E9AMAHUENDQz760Y9m0aJFK5zTu3fvrLfeeiuc84UvfCENDQ0555xzljs+f/78JG8fcLvffvvli1/8Yj72sY9lyy23zJ///Odl5t9zzz0tXt99993p169fOnbsmMcffzx//etf893vfje77757+vfvv0z3+A477JA//OEPefPNN9/r0asaGhqqXfv/6NOf/nTWX3/9XHrppbn55pvfcwucJNlxxx3z+OOPr/A8gOTtrXBmzJiRQw89NB07dlzunGHDhqWhoSE//OEPq/v8J8kuu+ySl19+OZMnT65ul7OyHn744ayzzjrZdtttV/q9AABA+1BfugAAgLXB4sWL09TU1OJefX19unfvnl//+te5+uqrc+CBB2arrbZKpVLJjTfemN/85jfVw1TPPPPMvPbaa/n0pz+dLbbYIvPnz8+FF16YN998M5/4xCeW+5nv7DF/zDHHZOHChTn00EPTu3fvPPfcc7nyyivTpUuXnHfeeenXr1/+67/+K3fddVc+/OEP5wc/+EHmzZuXAQMGtFhv7ty5OfHEE/PlL385999/fy666KKcd955SZLNN988DQ0Nueiii/KVr3wlDz/8cM4+++wW7z/mmGNy0UUX5cADD8ypp56arl275u67786uu+663H3re/funXvuuSfPPPNMunTpko022igdOnSo7l1/6qmnpl+/fi0Oc12eESNG5NVXX80jjzyS7bbbbrlz9t5777z88svZcMMNV7jOuuuumyFDhuSiiy7KbrvtVg31GxoaWtxflW1+/vCHP2T33Xdvs98+AAAAao/OegCANeDmm29Oz549W1zDhw9PkgwYMCDrrbdexo8fn4EDB2bIkCG59tprc/nll+eQQw5J8vZWK08//XQOPfTQ9O/fP5/61KfS1NSU3/3ud8sNut/x7//+7/nd736X559/Pp/73OfSv3//HHnkkdlwww1z0kknJUlOP/307LTTThk1alT22muvNDY2ZvTo0cusdeihh+b111/PrrvumqOPPjrHH398jjrqqCRvb98yderUXHfddRkwYEC++93vLrOFT7du3XLrrbfm1VdfzZ577plBgwbl//yf/7PCcPukk05Kx44dM2DAgGy88cYt9tAfO3ZslixZksMPP/yf/tl369Ytn/vc5/LTn/50hXPq6urSvXv3NDQ0vOdaI0aMyN///vfqfvXv2HPPPfP3v/99mf3qW+vqq6/Ol770pVV6LwAA0D7UVd7r94EBACBvH646cODAXHDBBaVLSfJ2J/rHP/7x/OUvf0mPHj3+6fwHH3wwn/jEJ/LUU0+lS5cua6DC1vvtb3+b8ePH58EHH0x9vV98BQCAtZXOegAAasbixYvz3HPP5cwzz8z+++/fqqA+eXu//O9973uZM2fOaq5w5S1atChTpkwR1AMAwFrOTwQAANSMn/3sZxk7dmwGDhyYK6+8cqXeO2bMmNVT1Pv0hS98oXQJAADAB4BtcAAAAAAAoDDb4AAAAAAAQGHCegAAAAAAKExYDwAAAAAAhQnrAQAAAACgMGE9AAAAAAAUJqwHAAAAAIDChPUAAAAAAFCYsB4AAAAAAAr7f2tJxS81d7HKAAAAAElFTkSuQmCC", + "image/png": "iVBORw0KGgoAAAANSUhEUgAABesAAAW/CAYAAAA8eqjRAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAACsaElEQVR4nOzdd5hU1f0/8M8sZWkBLCwLFqpKUzGoiEbBBirWqIlYAHtBE7ETE7EGe02UFAUbsUZjJ2iwI5aosaGAoEkUMCogKv3+/vC382VYhN114bDwej3PPA9777l3PvfOmVl9z9lzclmWZQEAAAAAACRTlLoAAAAAAABY2wnrAQAAAAAgMWE9AAAAAAAkJqwHAAAAAIDEhPUAAAAAAJCYsB4AAAAAABIT1gMAAAAAQGLCegAAAAAASExYDwAAAAAAiQnrAVhtzJkzJ4455pgoLS2NXC4Xp556akydOjVyuVyMHDkydXnUUK1bt46BAwemLmON5h6vHnK5XJx//vkVapvqNfv3v/8d9erVixdeeGGFbZ9++unI5XJx3333rYLKVm+9evWKXr16pS5jjbNgwYLYaKON4sYbb0xdCgBARAjrAdZ4I0eOjFwuV/AoKSmJnXfeOR5//PHU5RX47W9/GyNHjowTTzwxbr/99jjiiCOW2e6xxx6rcCAV8V3I0aVLl2XuK/sy4Morr6xKyRX229/+Nh588MGV+hwrU1lotuRj3XXXje222y7uvPPO1OXVGGX9rexRq1at2HjjjeOAAw6IN954IyIi/vrXv0Yul4s///nP33ueMWPGRC6Xi+uvv34VVV49lu5DSz5OOOGEgrYPP/xw9OzZM0pKSqJBgwbRtm3b+NnPfhZPPPFEQbvPPvssfvnLX0aHDh2ifv36UVJSEttuu22cffbZMWfOnArVNXny5Dj++OOjbdu2Ua9evWjcuHHssMMOcd1118W3335bbde/qr344otx/vnnx8yZM1OXknfhhRdG9+7dY4cddshvGzVqVFx77bXpilqDtG7d+nvfY3vssUe+3cCBA6NRo0bfe55GjRoVfJmz9O+AWrVqRUlJSRx00EHx3nvvfe953nrrrcjlcvHyyy9Xy/VVtzp16sRpp50Wl1xyScydOzd1OQAAUTt1AQCsGhdeeGG0adMmsiyL6dOnx8iRI2OvvfaKhx9+OPbee+/U5UVExD/+8Y/YbrvtYujQofltWZbFt99+G3Xq1Mlve+yxx+L3v/99pQL71H7729/GQQcdFPvvv3/qUn6QX/ziF7HNNttERMTnn38ed999dxx++OExc+bMGDRoUOLqao5+/frFXnvtFYsWLYr33nsvbrrppnj88cfjpZdeir59+0aTJk1i1KhRccwxxyzz+FGjRkWtWrXikEMOWcWV/3C777579O/fv9z2TTfdNP/vK6+8Ms4888zo2bNnDBkyJBo0aBCTJk2KJ598Mu6666586PjFF1/E1ltvHbNnz46jjjoqOnToEJ9//nn861//iptuuilOPPHE5QaSERGPPvpoHHzwwVFcXBz9+/ePLl26xPz58+P555+PM888M95555344x//WL03YSX59ttvo3bt//vP+xdffDEuuOCCGDhwYDRt2rSg7fvvvx9FRat23M5nn30Wt956a9x6660F20eNGhVvv/12nHrqqau0njVV165d4/TTTy+3vWXLlj/43GW/AxYsWBD/+te/Yvjw4fH000/H22+/HaWlpeXaP/roo1FSUpL/vbE6OvLII+Occ86JUaNGxVFHHZW6HABgLSesB1hL7LnnnrH11lvnfz766KOjefPm8Ze//GW1CetnzJgRnTp1KtiWy+WiXr16iSpiaTvuuGMcdNBB+Z9PPPHEaNu2bYwaNUpYXwk//vGP4/DDD8//vMMOO8S+++4bN910U/zhD3+Igw46KEaMGBGffPJJuYBt7ty58cADD8Tuu+8eJSUlq7r0H2zTTTctuPalLVy4MC666KLYfffd4+9//3u5/TNmzMj/++abb46PP/44Xnjhhdh+++0L2s2ePTvq1q273FqmTJkShxxySLRq1Sr+8Y9/RIsWLfL7Bg0aFJMmTYpHH320opeWXGU+K4uLi1diJct2xx13RO3atWOfffZZ5c+9Ntlggw2W+x77IZb+HbDZZpvFiSeeGLfddlucddZZ5do/9thjseeee0Yul1sp9VRVlmUxd+7cqF+/fjRt2jR69+4dI0eOFNYDAMmZBgdgLdW0adOoX79+wSjMiIjFixfHtddeG507d4569epF8+bN4/jjj48vv/yyoF3r1q1j7733jueffz623XbbqFevXrRt2zZuu+22cs81c+bMOPXUU2OjjTaK4uLiaN++fVx22WWxePHiiPi/P6+fMmVKPProo/k/s586dWq5OesHDhwYv//97yOicEqN6raimstceeWVsf3228d6660X9evXj27dupWbXzmXy8XXX38dt956a77esukFzj///MjlcvHBBx/E4YcfHk2aNIlmzZrFb37zm8iyLP7973/HfvvtF40bN47S0tK46qqrCs49f/78OO+886Jbt27RpEmTaNiwYey4444xduzYgnZLTvdzzTXXRKtWraJ+/frRs2fPePvtt6t8n+rWrRvrrLNOuX40YsSI2GWXXaKkpCSKi4ujU6dOcdNNN5U7/tVXX40+ffrE+uuvH/Xr1482bdqUC0sq2iezLIuLL744Ntxww2jQoEHsvPPO8c4771T4Wr7++us4/fTT86/5ZpttFldeeWVkWVbQLpfLxcknnxwPPvhgdOnSJYqLi6Nz587lpmepjF122SUivguPIyIOP/zwWLx4cdx1113l2j766KMxa9asOOyww5Z7zo8++ihOOumk2GyzzaJ+/fqx3nrrxcEHHxxTp04taFc2VdYLL7wQp512WjRr1iwaNmwYBxxwQHz22WcFbX/oPa6I//3vfzF79uyCaVKWtOQXFJMnT45atWrFdtttV65d48aNVxheX3755TFnzpy4+eabC4L6Mu3bt49f/vKX+Z8r2q/LPh///ve/R9euXaNevXrRqVOn+Otf/1rQ7osvvogzzjgjNt9882jUqFE0btw49txzz3jzzTfLnXPu3Llx/vnnx6abbhr16tWLFi1axE9/+tOYPHlyvs2Sc9aff/75ceaZZ0ZERJs2bQo+V8tqXHrO+op+7t11113RrVu3+NGPfhSNGzeOzTffPK677rrvv9H/34MPPhjdu3cv+GuHXr16xaOPPhofffRRvsbWrVsXHLd48eK45JJLYsMNN4x69erFrrvuGpMmTSp3/nvvvTe6desW9evXj/XXXz8OP/zw+O9//1vQ5vvmfh84cGC5513RdVb09Sv7HXfPPfdU6Dr++Mc/Rrt27aJ+/fqx7bbbxnPPPfd9tzS5HXfcMSKioB+WmTlzZrz44ovRt2/fyLIsWrduHfvtt1+5dnPnzo0mTZrE8ccfn982b968GDp0aLRv3z6Ki4tjo402irPOOivmzZtXcGxl35OjR4+OrbfeOurXrx9/+MMf8vt33333eP755+OLL76o8r0AAKgORtYDrCVmzZoV//vf/yLLspgxY0bccMMNMWfOnHKj744//vgYOXJkHHnkkfGLX/wipkyZEr/73e/i9ddfjxdeeKFgOppJkybFQQcdFEcffXQMGDAgbrnllhg4cGB069YtOnfuHBER33zzTfTs2TP++9//xvHHHx8bb7xxvPjiizFkyJD49NNP49prr42OHTvG7bffHoMHD44NN9ww/+f7zZo1KxcWHn/88fHJJ5/EmDFj4vbbb6/w9S9atCj+97//ldu+dOBb0ZrLXHfddbHvvvvGYYcdFvPnz4+77rorDj744HjkkUeib9++ERFx++23xzHHHBPbbrttHHfccRER0a5du4Ln/PnPfx4dO3aMSy+9NB599NG4+OKLY911140//OEPscsuu8Rll10Wd955Z5xxxhmxzTbbxE477RQR340e/vOf/xz9+vWLY489Nr766qu4+eabo0+fPvHyyy9H165dC57ntttui6+++ioGDRoUc+fOjeuuuy522WWXeOutt6J58+YrvI9fffVV/j5+8cUX+ekrbr755oJ2N910U3Tu3Dn23XffqF27djz88MNx0kknxeLFi/Mj8GfMmBG9e/eOZs2axTnnnBNNmzaNqVOnlgs0K9onzzvvvLj44otjr732ir322iv++c9/Ru/evWP+/PkrvK4sy2LfffeNsWPHxtFHHx1du3aN0aNHx5lnnhn//e9/45prrilo//zzz8df//rXOOmkk+JHP/pRXH/99XHggQfGxx9/HOutt94Kn29pZUFX2bE77bRTbLjhhjFq1Kg47bTTCtqOGjUqGjRosMIplV555ZV48cUX45BDDokNN9wwpk6dGjfddFP06tUr3n333WjQoEFB+1NOOSXWWWedGDp0aEydOjWuvfbaOPnkk+Puu+/Ot/kh97jM3Llzl/lebNy4cdStWzdKSkqifv368fDDD8cpp5wS66677veeq1WrVrFo0aK4/fbbY8CAARWuoczDDz8cbdu2LTcq//tUpF+XmThxYvz85z+PE044IQYMGBAjRoyIgw8+OJ544onYfffdIyLiww8/jAcffDAOPvjgaNOmTUyfPj3+8Ic/RM+ePePdd9/N/1XFokWLYu+9946nnnoqDjnkkPjlL38ZX331VYwZMybefvvtcp8nERE//elP44MPPoi//OUvcc0118T6668fEd99ri5LRT/3xowZE/369Ytdd901LrvssoiIeO+99+KFF14o+GJjaQsWLIhXXnklTjzxxILt5557bsyaNSv+85//5N9nS09ddOmll0ZRUVGcccYZMWvWrLj88svjsMMOi/Hjx+fblH1GbLPNNjFs2LCYPn16XHfddfHCCy/E66+/Xm4aoBWpyHVW9PWrzHXcfPPNcfzxx8f2228fp556anz44Yex7777xrrrrhsbbbRRhWpfsGDBMt9jDRs2jPr161fqPqxI2Zc/66yzTrl9o0ePjlwuF717945cLheHH354XH755fHFF18UvK8ffvjhmD17dv6/RxYvXhz77rtvPP/883HcccdFx44d46233oprrrkmPvjgg4L1Xyrznnz//fejX79+cfzxx8exxx4bm222WX5ft27dIsuyePHFF1ebvzYEANZSGQBrtBEjRmQRUe5RXFycjRw5sqDtc889l0VEdueddxZsf+KJJ8ptb9WqVRYR2bPPPpvfNmPGjKy4uDg7/fTT89suuuiirGHDhtkHH3xQcM5zzjknq1WrVvbxxx8XnLNv374F7aZMmZJFRDZixIj8tkGDBmWV+RXWs2fPZd6DJR9XXHFFlWr+5ptvCtrMnz8/69KlS7bLLrsUbG/YsGE2YMCAcrUNHTo0i4jsuOOOy29buHBhtuGGG2a5XC679NJL89u//PLLrH79+gXnWbhwYTZv3ryCc3755ZdZ8+bNs6OOOiq/rew+1q9fP/vPf/6T3z5+/PgsIrLBgwcv69bljR07dpn3raioKLvkkkvKtV/6vmRZlvXp0ydr27Zt/ucHHnggi4jslVde+d7nrWifnDFjRla3bt2sb9++2eLFi/PtfvWrX2URscx7v6QHH3wwi4js4osvLth+0EEHZblcLps0aVJ+W0RkdevWLdj25ptvZhGR3XDDDct9nrLX4YILLsg+++yzbNq0adnTTz+dbbXVVllEZPfff3++7ZlnnplFRPb+++/nt82aNSurV69e1q9fv+U+T5Yt+zUYN25cFhHZbbfdlt9W9hmx2267Fdy7wYMHZ7Vq1cpmzpyZZdkPv8dZli33PfiXv/wl3+68887LIiJr2LBhtueee2aXXHJJ9tprr5U737Rp07JmzZplEZF16NAhO+GEE7JRo0bla16eWbNmZRGR7bfffitsW6Yi/TrL/u/zccnXc9asWVmLFi2yrbbaKr9t7ty52aJFiwqOnTJlSlZcXJxdeOGF+W233HJLFhHZ1VdfXe75l3wtIiIbOnRo/ucrrrgii4hsypQp5Y5r1apVwWtW0c+9X/7yl1njxo2zhQsXljvn8kyaNOl73yN9+/bNWrVqVW572edOx44dCz7nrrvuuiwisrfeeivLsu8+d0tKSrIuXbpk3377bb7dI488kkVEdt555+W39ezZM+vZs2e55xowYEBBDRW5zoq+fpW9jq5duxa0++Mf/5hFxDLrXlpZ31vWY9iwYQXX27Bhw+89z9K/s8qu4ZZbbsk+++yz7JNPPsmeeOKJrH379lkul8tefvnlcuc44ogjCmp+//33s4jIbrrppoJ2++67b9a6det8X7799tuzoqKi7LnnnitoN3z48CwishdeeCG/rbLvySeeeGKZ1/vJJ59kEZFddtlly74hAACriGlwANYSv//972PMmDExZsyYuOOOO2LnnXeOY445pmAU87333htNmjSJ3XffPf73v//lH926dYtGjRqVm1qlU6dO+T+Bj/huxOZmm20WH374YcE5d9xxx1hnnXUKzrnbbrvFokWL4tlnn135Fx/f/Ql82fUv+bjjjjvKta1MzUuOUvzyyy9j1qxZseOOO8Y///nPStW35EKitWrViq233jqyLIujjz46v71p06bl7m+tWrXy83IvXrw4vvjii1i4cGFsvfXWy6xh//33jw022CD/87bbbhvdu3ePxx57rEJ1nnfeefl7d/fdd0e/fv3i3HPPLTcFxpL3peyvOnr27BkffvhhzJo1K389ERGPPPJILFiwYJnPV9E++eSTT8b8+fPjlFNOKZgWqaILVj722GNRq1at+MUvflGw/fTTT48sy+Lxxx8v2L7bbrsVjGbeYostonHjxgWvzfIMHTo0mjVrFqWlpdGrV6+YPHlyXHbZZfHTn/4036ZslOmoUaPy2+6///6YO3fuCqfAiSh8DRYsWBCff/55tG/fPpo2bbrMvnHccccV3Lsdd9wxFi1aFB999FFE/PB7XGa//fZb5ntx5513zre54IILYtSoUbHVVlvF6NGj49xzz41u3brFj3/843jvvffy7Zo3bx5vvvlmnHDCCfHll1/G8OHD49BDD42SkpK46KKLyk1htKTZs2dHRMSPfvSjCtdekX5dpmXLlnHAAQfkf27cuHH0798/Xn/99Zg2bVpEfDdvfNkir4sWLYrPP/88GjVqFJtttlnBa3T//ffH+uuvH6ecckq5mqprGrCKfu41bdo0vv766xgzZkylzv/5559HxLJHYK/IkUceWbD+QNnvnbL326uvvhozZsyIk046qWDqo759+0aHDh2qtO5ARa6zoq9fZa/jhBNOKGg3cODAaNKkSYVr7969+zLfY/369avwOb7PUUcdFc2aNYuWLVvGHnvsEbNmzYrbb7+93AKyixcvjieeeCL/F2YR361X0b1797jzzjvz27744ot4/PHH47DDDsv35XvvvTc6duwYHTp0KOiLZdOFLfnfIpV5T7Zp0yb69OmzzOsq65fL+osEAIBVyTQ4AGuJbbfdtmCB2X79+sVWW20VJ598cuy9995Rt27dmDhxYsyaNet7F61ccmHHiIiNN964XJt11lmnYGqZiRMnxr/+9a/vnXph6XOuLA0bNozddtut3Pal5++OqFzNjzzySFx88cXxxhtvFMylW9kAbel72aRJk6hXr15+6oolt5eFXmVuvfXWuOqqq2LChAkFoXebNm3KPc8mm2xSbtumm24a99xzT4Xq3HzzzQvu489+9rOYNWtWnHPOOXHooYfm79kLL7wQQ4cOjXHjxsU333xTcI5Zs2ZFkyZNomfPnnHggQfGBRdcENdcc0306tUr9t9//zj00EPzi19WtE+WBcpLX1+zZs0qFA5+9NFH0bJly3LBbceOHQvOX6YifX95jjvuuDj44IOjqKgomjZtGp07dy634OcWW2wRXbp0ib/85S/5echHjRoV66+//vcGTkv69ttvY9iwYTFixIj473//WxBcLx1iLeuayu5b2TX90HtcZsMNN1zme3Fp/fr1i379+sXs2bNj/PjxMXLkyBg1alTss88+8fbbb+dD2RYtWsRNN90UN954Y0ycODFGjx4dl112WZx33nnRokWLgi/CltS4ceOI+G5qp4qqSL8u0759+3KfA5tuumlEfPe5U1paGosXL47rrrsubrzxxpgyZUosWrQo33bJ6ZQmT54cm222Wbm1IapTRT/3TjrppLjnnntizz33jA022CB69+4dP/vZz2KPPfao0PMs7wuU71PRvrnktCZlOnToEM8//3yln7Mi11nR16+y17H0e6xOnTrRtm3bCte+/vrrV+g9tiLL+j123nnnxY477hhz5syJBx54IO666678FxZLeuWVV+Kzzz4rCOsjIvr37x8nn3xyfPTRR9GqVau49957Y8GCBXHEEUfk20ycODHee++9Cv0Orsx7clm/E8uU9cvVbSFcAGDtI6wHWEsVFRXFzjvvHNddd11MnDgxOnfuHIsXL46SkpKCUW9LWvp/nGvVqrXMdkuGMYsXL47dd989zjrrrGW2LQuvVicVrfm5556LfffdN3baaae48cYbo0WLFlGnTp0YMWJEwWjoiljWvazI/b3jjjti4MCBsf/++8eZZ54ZJSUlUatWrRg2bNgyF/xbGXbdddd45JFH4uWXX46+ffvG5MmTY9ddd40OHTrE1VdfHRtttFHUrVs3Hnvssbjmmmvyi1Xmcrm477774qWXXoqHH344Ro8eHUcddVRcddVV8dJLL0WjRo0q3SdXlYq8NsuzySabVChMO/zww+Occ86JV199NTbccMMYO3ZsHH/88RUKbU855ZQYMWJEnHrqqdGjR49o0qRJ5HK5OOSQQ8otGBrxw69pZWncuHHsvvvusfvuu0edOnXi1ltvjfHjx0fPnj0L2uVyudh0001j0003jb59+8Ymm2wSd95553LD+pYtW1Z4geWK9uvK+O1vfxu/+c1v4qijjoqLLroo1l133SgqKopTTz21Suf7ISr6uVdSUhJvvPFGjB49Oh5//PF4/PHHY8SIEdG/f/+49dZbv/f8ZeF1Rb/QWlJ19s1cLrfM45YM2iMqdp2Vff1Wp/dYvXr1Yt68eZFlWbmAOsuymDt37jIXaF7yC9v9998/vvnmmzj22GPjJz/5ScGc+o899li0bt06OnXqVHD8IYccEoMHD44777wzfvWrX8Udd9wRW2+9dcEXLYsXL47NN988rr766mXWXvY8lX1PLm++/rJ+ufQX5AAAq5qwHmAttnDhwoiImDNnTkR8t+jpk08+GTvssEO1LULXrl27mDNnTrWM8iuzske+VbTm+++/P+rVqxejR48uGBU9YsSIcm1XVs333XdftG3bNv76178WPMfQoUOX2X7ixInltn3wwQfRunXrKtewdD96+OGHY968efHQQw8VjCRdehqlMtttt11st912cckll8SoUaPisMMOi7vuuiuOOeaYCvfJVq1aRcR317fkCNTPPvusQuFgq1at4sknn4yvvvqqYHT9hAkTCs6/qvXr1y+GDBkSo0aNyi+mWpEpcCK+6xsDBgyIq666Kr9t7ty5MXPmzCrV8kPvcXXYeuut49Zbb41PP/10ue3atm0b66yzzgrb7b333vHHP/4xxo0bFz169Fhu28r260mTJpULQj/44IOIiPz77b777oudd9653ALNM2fOLAgN27VrF+PHj48FCxYULPK9IpX53KnMZ3XdunVjn332iX322ScWL14cJ510UvzhD3+I3/zmN9G+fftlHrPxxhtH/fr1Y8qUKT+ozmUp65vvv/9+fqqUMu+//37B+3edddZZ5nRVS//1TMSKr7Oir19lr2PixIkF17FgwYKYMmVKbLnllpU+5/Kea+HChTF58uRyr9mkSZNi0aJFFfrcu/TSS+OBBx6ISy65JIYPH57f/uijj8Zee+1Vrv26664bffv2jTvvvDMOO+yweOGFFwoWbY/4ri+++eabseuuuy63b1T2Pbk8Zf2y7K+pAABSMWc9wFpqwYIF8fe//z3q1q2b/5/Tn/3sZ7Fo0aK46KKLyrVfuHBhlUK+n/3sZzFu3LgYPXp0uX0zZ87MB72V0bBhw/zxK0NFa65Vq1bkcrmCEZlTp06NBx98cJk1r4x6y0ZqLjkyc/z48TFu3Lhltn/wwQfjv//9b/7nl19+OcaPHx977rlnlWt45JFHIiLyQdKyapo1a1a5LzG+/PLLciNKu3btGhGRn1Koon1yt912izp16sQNN9xQcM6lQ6Dvs9dee8WiRYvid7/7XcH2a665JnK53A+6Pz/ExhtvHDvuuGPcfffdcccdd0SbNm1i++23r9CxtWrVKnd/b7jhhnIjiCvqh97jivrmm2++t/+WrR1QNgp3/Pjx8fXXX5dr9/LLL8fnn3++zGlRlnTWWWdFw4YN45hjjonp06eX2z958uT8egwV7ddlPvnkk3jggQfyP8+ePTtuu+226Nq1a5SWlubPufRrdO+99xa8RyMiDjzwwPjf//5Xrn8uXc/SKvNZWdHPvaWn4SoqKootttgiIqJgKrCl1alTJ7beeut49dVXl1nnsqZmqqitt946SkpKYvjw4QU1PP744/Hee+8VTMXSrl27mDBhQnz22Wf5bW+++Wa88MILBeesyHVW9PWrzHU0a9Yshg8fHvPnz89vHzlyZLX//ij7TFtWn/r9739f0GZ52rVrFwceeGCMHDkyvxbD9OnT45///Ge5KXDKHHHEEfHuu+/GmWeeGbVq1YpDDjmkYP/Pfvaz+O9//xt/+tOfyh377bff5t/zlX1PLs9rr70WuVxuhV/aAQCsbEbWA6wlHn/88fwo4RkzZsSoUaNi4sSJcc455+Tnbu7Zs2ccf/zxMWzYsHjjjTeid+/eUadOnZg4cWLce++9cd1118VBBx1Uqec988wz46GHHoq99947Bg4cGN26dYuvv/463nrrrbjvvvti6tSplR6B2K1bt4iI+MUvfhF9+vRZ5v/s/xAVrblv375x9dVXxx577BGHHnpozJgxI37/+99H+/bt41//+le5mp988sm4+uqro2XLltGmTZvo3r37D6517733jr/+9a9xwAEHRN++fWPKlCkxfPjw6NSpU36k+5Lat28fP/nJT+LEE0+MefPmxbXXXhvrrbfe9059sbTnnnsu5s6dGxHfLQz40EMPxTPPPBOHHHJIdOjQISIievfunR+Revzxx8ecOXPiT3/6U5SUlBSMdL711lvjxhtvjAMOOCDatWsXX331VfzpT3+Kxo0b50dkVrRPNmvWLM4444wYNmxY7L333rHXXnvF66+/Ho8//niF+tc+++wTO++8c5x77rkxderU2HLLLePvf/97/O1vf4tTTz21YDHZVe3www+P4447Lj755JM499xzK3zc3nvvHbfffns0adIkOnXqFOPGjYsnn3xymXNpV8QPvcdlPvjgg2Uu7Ny8efPYfffd45tvvontt98+tttuu9hjjz1io402ipkzZ8aDDz4Yzz33XOy///6x1VZbRUTE7bffHnfeeWcccMAB0a1bt6hbt2689957ccstt0S9evXiV7/61XJradeuXYwaNSp+/vOfR8eOHaN///7RpUuXmD9/frz44otx7733xsCBAyOi4v26zKabbhpHH310vPLKK9G8efO45ZZbYvr06QVB4t577x0XXnhhHHnkkbH99tvHW2+9FXfeeWe5+cn79+8ft912W5x22mnx8ssvx4477hhff/11PPnkk3HSSSfFfvvtt8zrK/usPPfcc+OQQw6JOnXqxD777JMP8ZdU0c+9Y445Jr744ovYZZddYsMNN4yPPvoobrjhhujatesKRyXvt99+ce6558bs2bPzv3fK6rz77rvjtNNOi2222SYaNWoU++yzz3LPtaQ6derEZZddFkceeWT07Nkz+vXrF9OnT4/rrrsuWrduHYMHD863Peqoo+Lqq6+OPn36xNFHHx0zZsyI4cOHR+fOnfOLDkdEha6zoq9fZa7j4osvjuOPPz522WWX+PnPfx5TpkyJESNGVOqc//3vf5f5HmvUqFHsv//+EfHdF6PHHHNMfiq83XffPSIixowZE4899lgcc8wxFR7Jf+aZZ8Y999wT1157bVx66aXx2GOPRb169QoWjV5S3759Y7311ot777039txzz3JrkhxxxBFxzz33xAknnBBjx46NHXbYIRYtWhQTJkyIe+65J0aPHh1bb711pd+TyzNmzJjYYYcdqvz5CABQbTIA1mgjRozIIqLgUa9evaxr167ZTTfdlC1evLjcMX/84x+zbt26ZfXr189+9KMfZZtvvnl21llnZZ988km+TatWrbK+ffuWO7Znz55Zz549C7Z99dVX2ZAhQ7L27dtndevWzdZff/1s++23z6688sps/vz5yz3nlClTsojIRowYkd+2cOHC7JRTTsmaNWuW5XK5bEW/znr27Jl17tx5mfvKzn/FFVdUqeabb74522STTbLi4uKsQ4cO2YgRI7KhQ4eWq2nChAnZTjvtlNWvXz+LiGzAgAFZlmX5tp999llB+wEDBmQNGzZc4bUsXrw4++1vf5u1atUqKy4uzrbaaqvskUceyQYMGJC1atVqmdd51VVXZRtttFFWXFyc7bjjjtmbb7653PuXZVk2duzYcv2obt26WYcOHbJLLrmk4J5kWZY99NBD2RZbbJHVq1cva926dXbZZZdlt9xySxYR2ZQpU7Isy7J//vOfWb9+/bKNN944Ky4uzkpKSrK99947e/XVV8s9f0X65KJFi7ILLrgga9GiRVa/fv2sV69e2dtvv521atUqf7+X56uvvsoGDx6ctWzZMqtTp062ySabZFdccUW590hEZIMGDSp3fEWe5/v62/J88cUXWXFxcRYR2bvvvlvh47788svsyCOPzNZff/2sUaNGWZ8+fbIJEyaUq7PsM+KVV14pOL7sNR87dmx+2w+9x0v3oSUfZZ8bCxYsyP70pz9l+++/f75fN2jQINtqq62yK664Ips3b17+fP/617+yM888M/vxj3+crbvuulnt2rWzFi1aZAcffHD2z3/+s8L36oMPPsiOPfbYrHXr1lndunWzH/3oR9kOO+yQ3XDDDdncuXPz7SrSr7Ps/z7LRo8enW2xxRb5z4d777234Hnnzp2bnX766fn7ucMOO2Tjxo1b5ufoN998k5177rlZmzZtsjp16mSlpaXZQQcdlE2ePLng/g4dOrTguIsuuijbYIMNsqKiooI6l/WaVeRz77777st69+6dlZSUZHXr1s023njj7Pjjj88+/fTTFd7n6dOnZ7Vr185uv/32gu1z5szJDj300Kxp06ZZROQ/u8r64NL3bVm/F7Isy+6+++5sq622yoqLi7N11103O+yww7L//Oc/5eq44447srZt22Z169bNunbtmo0ePbrcZ2ZFrrOir19lr+PGG2/M2rRpkxUXF2dbb7119uyzzy6zTyxLq1atvvc9tuT1Zdl37+frrrsu23LLLbN69epl9erVy7bccsvs+uuvzxYtWlTQ9vuuoUyvXr2yxo0bZzNnzswOOuigbK+99lpunSeddFIWEdmoUaOWuX/+/PnZZZddlnXu3DkrLi7O1llnnaxbt27ZBRdckM2aNSvfrrLvyWWZOXNmVrdu3ezPf/7zcmsGAFgVclmWeNUwAGClmzp1arRp0yauuOKKOOOMM1KXA2u01q1bR5cuXfJTRPF/jj766Pjggw/iueeeS10KK8HChQtjvfXWi2HDhsVJJ530ve0GDx4cN998c0ybNi0aNGiwCiss79prr43LL788Jk+eXG3r9QAAVJU56wEAgFVi6NCh8corr5SbI541wxdffBGDBw+OAw444HvbzJ07N+6444448MADkwf1CxYsiKuvvjp+/etfC+oBgNWCOesBAIBVYuONN86ve8Gap6SkJM4///xl7psxY0Y8+eSTcd9998Xnn38ev/zlL1dtcctQp06d+Pjjj1OXAQCQJ6wHAABgpXr33XfjsMMOi5KSkrj++uuja9euqUsCAFjtmLMeAAAAAAASM2c9AAAAAAAkJqwHAAAAAIDEhPUAAAAAAJDYGrnA7OcXHpe6BADWIg07d0xdAgBriWy90tQlALCWqN+rX+oSaqRH62yWuoTVTt8F76cuocYwsh4AAAAAABIT1gMAAAAAQGLCegAAAAAASExYDwAAAAAAia2RC8wCAAAAAKxquTq51CVQgxlZDwAAAAAAiQnrAQAAAAAgMWE9AAAAAAAkJqwHAAAAAIDEhPUAAAAAAJBY7dQFAAAAAACsCYpq51KXQA1mZD0AAAAAACQmrAcAAAAAgMSE9QAAAAAAkJiwHgAAAAAAErPALAAAAABANcjVMTaaqtN7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Skpin332iUGDBsVdd90VpaWlK7M2AAAAAIAaI8tVeSITqHhYv+WWW8brr78ezz77bH4KnF69esV66623MusDAAAAAIA1XoW/6nnppZfi888/j8svvzzq168fl19+ebRo0SK6dOkSJ598ctx7770xY8aMlVkrAAAAAACskXJZlmVVPfirr76K5557LsaMGRMjRoyIOXPmxMKFC6uzvir5cPLk1CUAsBb5OmuUugQA1hJFsTh1CQCsJTq3b5G6hBrpk/f/lbqE1U7LzbZIXUKNUeFpcJa0ePHieOWVV+Lpp5+OsWPHxgsvvBBff/11tGrVqrrrAwAAAACANV6Fw/qXX345nn766Xj66afj+eefjzlz5sSGG24YvXr1iuuvvz523nnnaN269UosFQAAAABg9ZXlcqlLoAarcFi/3XbbRWlpaey8885x9dVXx8477xzt2rVbmbUBAAAAAMBaocJh/XvvvRebbbbZyqwFAAAAAADWSkUVbSioBwAAAACAlaPCI+vbtm1boXYffvhhlYsBAAAAAIC1UYXD+qlTp0arVq3i0EMPjZKSkpVZEwAAAAAArFUqHNbffffdccstt8TVV18de+65Zxx11FGx1157RVFRhWfSAQAAAABYY2WRS10CNViFk/aDDz44Hn/88Zg0aVJ069YtBg8eHBtttFGcc845MXHixJVZIwAAAAAArNEqPSx+gw02iHPPPTcmTpwYo0aNivHjx0eHDh3iyy+/XBn1AQAAAADAGq/C0+Asae7cuXHffffFLbfcEuPHj4+DDz44GjRoUN21AQAAAADAWqFSYf348ePj5ptvjnvuuSfatm0bRx11VNx///2xzjrrrKz6AAAAAABgjVfhsL5z584xY8aMOPTQQ+OZZ56JLbfccmXWBQAAAABQo2S5Ss86Dnm5LMuyijQsKiqKhg0bRu3atSOX+/5Vjb/44otqK66qPpw8OXUJAKxFvs4apS4BgLVEUSxOXQIAa4nO7VukLqFG+vfEd1OXsNrZaJNOqUuoMSo8sn7EiBErsw4AAAAAAFhrVTisHzBgwMqsAwAAAAAA1loVmkSpgjPlAAAAAAAAVVChsL5z585x1113xfz585fbbuLEiXHiiSfGpZdeWi3FAQAAAADA2qBC0+DccMMNcfbZZ8dJJ50Uu+++e2y99dbRsmXLqFevXnz55Zfx7rvvxvPPPx/vvPNOnHzyyXHiiSeu7LoBAAAAAFYrWeRSl0ANlssqMcfN888/H3fffXc899xz8dFHH8W3334b66+/fmy11VbRp0+fOOyww2KdddZZmfVWyIeTJ6cuAYC1yNdZo9QlALCWKIrFqUsAYC3RuX2L1CXUSB9PfC91CaudjTfpmLqEGqPCC8xGRPzkJz+Jn/zkJyurFgAAAAAAWCtVaM56AAAAAABg5RHWAwAAAABAYpWaBgcAAAAAgGXLcsZGU3V6DwAAAAAAJCasBwAAAACAxCod1vfs2TNuu+22+Pbbb1dGPQAAAAAAsNapdFi/1VZbxRlnnBGlpaVx7LHHxksvvbQy6gIAAAAAgLVGpcP6a6+9Nj755JMYMWJEzJgxI3baaafo1KlTXHnllTF9+vSVUSMAAAAAwGovi5zHUg8qrkpz1teuXTt++tOfxt/+9rf4z3/+E4ceemj85je/iY022ij233//+Mc//lHddQIAAAAAwBrrBy0w+/LLL8fQoUPjqquuipKSkhgyZEisv/76sffee8cZZ5xRXTUCAAAAAMAarXZlD5gxY0bcfvvtMWLEiJg4cWLss88+8Ze//CX69OkTudx3f9YwcODA2GOPPeLKK6+s9oIBAAAAAGBNU+mwfsMNN4x27drFUUcdFQMHDoxmzZqVa7PFFlvENttsUy0FAgAAAADAmq7SYf1TTz0VO+6443LbNG7cOMaOHVvpYrIsi6effjomTZoULVq0iD59+kSdOnUqfR4AAAAAAKhJKj1n/dChQ2PmzJnlts+ePTt22WWXSp1rr732ilmzZkVExBdffBE9evSIXXfdNc4999zYb7/9YosttojPPvussiUCAAAAAKxyWa7IY6kHFVfpu/XMM8/E/Pnzy22fO3duPPfcc5U61xNPPBHz5s2LiIhf//rX8dVXX8XkyZNjxowZ8dFHH0XDhg3jvPPOq2yJAAAAAABQo1R4Gpx//etfEfHdVDXvvvtuTJs2Lb9v0aJF8cQTT8QGG2xQ5UL+8Y9/xOWXXx5t2rSJiO/mxr/sssvi2GOPrfI5AQAAAACgJqhwWN+1a9fI5XKRy+WWOd1N/fr144Ybbqh0AblcLiIivvzyy2jXrl3Bvvbt28cnn3xS6XMCAAAAAEBNUuGwfsqUKZFlWbRt2zZefvnlaNasWX5f3bp1o6SkJGrVqlXpAgYOHBjFxcWxYMGCmDJlSnTu3Dm/b9q0adG0adNKnxMAAAAAAGqSCof1rVq1ioiIxYsXV9uTDxgwIP/v/fbbL7755puC/ffff3907dq12p4PAAAAAGBlySKXugRqsFyWZdmKGj300EOx5557Rp06deKhhx5abtt999232or7+uuvo1atWlGvXr1KHffh5MnVVgMArMjXWaPUJQCwliiK6hs8BQDL07l9i9Ql1EhyyfLaLjX1Od+vQmF9UVFRTJs2LUpKSqKoqOj7T5bLxaJFi6q1wKrwpgBgVRLWA7CqCOsBWFWE9VUjlyyvKmH973//+7jiiiti2rRpseWWW8YNN9wQ22677UqobvXy/cn7EhYvXhwlJSX5f3/fo7qD+r/97W9x2223Ves5AQAAAABYPd19991x2mmnxdChQ+Of//xnbLnlltGnT5+YMWNG6tJWugqNrE+lQ4cOMXHixEp/CeAbLABWJSPrAVhVjKwHYFUxsr5q5JLlVXZkfffu3WObbbaJ3/3udxHx3eDxjTbaKE455ZQ455xzVkaJq40Kjaxf0i9+8Yu4/vrry23/3e9+F6eeemp11JQ3YcKEFQb18+bNi9mzZxc85s2bV611AAAAAABQeZXJb+fPnx+vvfZa7LbbbvltRUVFsdtuu8W4ceNWVcnJVDqsv//++2OHHXYot3377beP++67r1qKqoxhw4ZFkyZNCh7Dhw9f5XUAAAAAAGu3LJfzWOqxrPx22LBhy7x///vf/2LRokXRvHnzgu3NmzePadOmrYqXMKnalT3g888/jyZNmpTb3rhx4/jf//5XqXPdf//9seeee0aDBg0qW0bekCFD4rTTTivY9t///KfK5wMAAAAAoHosK78tLi5OVM3qrdIj69u3bx9PPPFEue2PP/54tG3btlLnOvjgg6NFixZx3HHHxfjx4ytbSkR898I2bty44OHFBgAAAABIrzL57frrrx+1atWK6dOnF2yfPn16lJaWropyk6p0WH/aaafFWWedFUOHDo1nnnkmnnnmmTjvvPPinHPOicGDB1e6gDPOOCNeffXV6NGjR3Tp0iWuvfba+Pzzzyt9HgAAAAAAaq66detGt27d4qmnnspvW7x4cTz11FPRo0ePhJWtGrksy7LKHnTTTTfFJZdcEp988klERLRu3TrOP//86N+/f6XOU1RUFNOmTYuSkpJ47bXX4uabb46//OUv8e2338a+++4bxx57bOy+++6VLc+qywCsUl9njVKXAMBaoigWpy4BgLVE5/YtUpdQI03+8MPUJax22lVyNpa77747BgwYEH/4wx9i2223jWuvvTbuueeemDBhQrm57Nc0VQrry3z22WdRv379aNSoaiHFkmF9mblz58a9994bt9xySzz77LOx8cYbx5QpUyp1XmE9AKuSsB6AVUVYD8CqIqyvmkmTK5djrg3at2tT6WN+97vfxRVXXBHTpk2Lrl27xvXXXx/du3dfCdWtXn5QWP9D1apVKz799NOCsH5JkyZNihEjRsQll1xSqfMK6wFYlYT1wP9r7+6jrCzrvYH/BoYBBKUEZCDfQMABxVBUGMQXTtRodhRLly+lophmoqKgiYeMtKJUMtSS46OA9kgqnTTfwghF8wB6MlFRQUCUFIc8JqAIAzL384fL/bjlxRmY4WLPfD5r3Uv3fV/73t8b/pi1v1xzXbC9KOsB2F6U9VtHWb+xrSnrG6virXnT73//+7j33ntj6dKlsW7durxrf//732t8n8/7d4KuXbvWuqgHAAAAAIBCU+sNZm+88cY466yzokOHDvHcc8/FoYceGm3bto3XXnstjjnmmFrda8mSJdG+ffvaRgAAAAAAgAal1mX9b37zm7j11lvjpptuipKSkrj88stj+vTpcdFFF8XKlStrda+99torioqKahsBAAAAAAAalFqX9UuXLo3+/ftHRETLli3j/fffj4iI008/PX73u9/VOsCaNWviqaeeipdffnmja2vXro0777yz1vcEAAAAAIBCUuuyvrS0NP71r39FRMSee+4Zc+bMiYiPl7Sp7V61r776avTo0SOOOOKI6NWrVxx55JHx9ttv566vXLkyzjrrrNpGBAAAAADY7rJo4vjMQc3V+k/r3/7t3+KBBx6IiIizzjorLrnkkvjqV78aJ598cpxwwgm1utcPfvCD2H///eOf//xnLFiwIHbeeec47LDDYunSpbWNBQAAAAAABasoq+V0+Orq6qiuro7i4uKIiLj77rtj1qxZ0a1btzjvvPOipKSkxvfq0KFD/OUvf4levXpFRESWZfH9738/HnnkkXj88cejVatW0alTp9iwYUNtIsZrixfXajwAbIvVWevUEQBoJJpEdeoIADQS+3XtmDpCQVq4+I3UEXY43fbZK3WEglFc2zc0adIkmjT5/xPyTznllDjllFO26sPXrFmTK/0jIoqKiuKWW26JYcOGxZFHHhlTpkzZqvsCAAAAAEAhqXVZHxHx3nvvxe233x6vvPJKRET07NkzzjrrrNh1111rdZ+ysrL429/+Fj169Mg7f/PNN0dExHHHHbc18QAAAAAAoKDUes36J598Mjp37hw33nhjvPfee/Hee+/FjTfeGJ07d44nn3yyVvc64YQT4ne/+90mr918881x6qmn1nrTWgAAAACAFLIocnzmoOZqvWZ9r169ory8PG655ZZo2rRpRERs2LAhvv/978esWbPixRdfrJegtWHNegC2J2vWA7C9WLMegO3FmvVb59XFS1NH2OF032fP1BEKRq1n1i9atChGjBiRK+ojIpo2bRqXXnppLFq0qE7DAQAAAABAY1Drsv6ggw7KrVX/aa+88kp8+ctfrpNQAAAAAADQmNR6g9mLLrooLr744li0aFH069cvIiLmzJkTv/71r+PnP/95vPDCC7mxBxxwQN0lBQAAAACABqrWa9Y3abLlyfhFRUWRZVkUFRXFhg0btinc1rJmPQDbkzXrAdherFkPwPZizfqts2DxP1JH2OHsu88eqSMUjFrPrF+yZEl95AAAAAAAgEar1mX9XnvtVR85AAAAAACg0ap1Wf+Jl19+OZYuXRrr1q3LO3/cccdtcygAAAAAAGhMal3Wv/baa3HCCSfEiy++mFufPuLjteojItk69QAAAAAAUKi2vFvsJlx88cXRuXPn+Oc//xk77bRTvPTSS/Hkk0/GwQcfHDNnzqyHiAAAAAAA0LDVemb97Nmz47HHHot27dpFkyZNokmTJjFgwIAYO3ZsXHTRRfHcc8/VR04AAAAAgB1aFkWpI1DAaj2zfsOGDbHzzjtHRES7du1i2bJlEfHxxrMLFiyo23QAAAAAANAI1Hpm/f777x/PP/98dO7cOfr27RvXXnttlJSUxK233hpdunSpj4wAAAAAANCg1bqsHz16dKxevToiIq6++ur4xje+EYcffni0bds27rnnnjoPCAAAAAAADV2ty/qKiorc/3ft2jXmz58f//rXv+KLX/xiFBVZkwkAAAAAAGqrxmvWb9iwIV544YVYs2bNRtdatmwZL774YlRXV9dpOAAAAACAQpFFkeMzBzVX47L+t7/9bZx99tlRUlKy0bVmzZrF2WefHVOm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HgAAAAAAElPWAwAAAABAYsp6AAAAAABITFkPAAAAAACJ2WAWAAAAAKAOZJkNZtl6ZtYDAAAAAEBiynoAAAAAAEhMWQ8AAAAAAIkp6wEAAAAAIDFlPQAAAAAAJFacOgAAAAAAQEOQZakTUMjMrAcAAAAAgMSU9QAAAAAAkJiyHgAAAAAAElPWAwAAAABAYjaYBQAAAACoA9VRlDoCBczMegAAAAAASExZDwAAAAAAiSnrAQAAAAAgMWU9AAAAAAAF4/XXX4+hQ4dG586do2XLlrHPPvvEj370o1i3bl3emKKioo2OOXPm5N1r6tSpUVZWFi1atIhevXrFI488knc9y7K46qqromPHjtGyZcsYNGhQLFy4sF6eS1kPAAAAAEDBmD9/flRXV8d//ud/xksvvRQ33HBDTJgwIa688sqNxv7lL3+Jt99+O3f06dMnd23WrFlx6qmnxtChQ+O5556LwYMHx+DBg2PevHm5Mddee23ceOONMWHChHj66aejVatWUVFREWvXrq3z5yrKsiyr87sm9trixakjANCIrM5ap44AQCPRJKpTRwCgkdiva8fUEQrSX16oSh1hhzPogObb5XOuu+66uOWWW+K1116LiI9n1nfu3Dmee+656N279ybfc/LJJ8fq1avjoYceyp3r169f9O7dOyZMmBBZlkWnTp1ixIgRMXLkyIiIWLlyZXTo0CEmT54cp5xySp0+g5n1AAAAAADUi6qqqli1alXeUVVV9/+osXLlyth11103On/cccfFbrvtFgMGDIgHHngg79rs2bNj0KBBeecqKipi9uzZERGxZMmSqKyszBvTpk2b6Nu3b25MXVLWAwAAAABQL8aOHRtt2rTJO8aOHVunn7Fo0aK46aab4rzzzsuda926dYwbNy6mTp0aDz/8cAwYMCAGDx6cV9hXVlZGhw4d8u7VoUOHqKyszF3/5NzmxtSl4jq/IwAAAAAARMSoUaPi0ksvzTvXvPmml8a54oor4he/+MUW7/fKK69EWVlZ7vVbb70VRx99dJx00knx3e9+N3e+Xbt2eZ97yCGHxLJly+K6666L4447bmsepd4p6wEAAAAAqBfNmzffbDn/WSNGjIghQ4ZscUyXLl1y/79s2bIYOHBg9O/fP2699dbPvX/fvn1j+vTpudelpaWxfPnyvDHLly+P0tLS3PVPznXs2DFvzObW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WeoEFDIz6wEAAAAAIDFlPQAAAAAAJKasBwAAAACAxJT1AAAAAACQmA1mAQAAAADqgA1m2RZm1gMAAAAAQGLKegAAAAAASExZDwAAAAAAiSnrAQAAAAAgMWU9AAAAAAAkVpw6AAAAAABAQ1CdpU5AITOzHgAAAACAgrL33ntHUVFR3vHzn/88b8wLL7wQhx9+eLRo0SL22GOPuPbaaze6z9SpU6OsrCxatGgRvXr1ikceeSTvepZlcdVVV0XHjh2jZcuWMWjQoFi4cGG9PJOyHgAAAACAgnP11VfH22+/nTsuvPDC3LVVq1bF1772tdhrr73i2Wefjeuuuy7GjBkTt956a27MrFmz4tRTT42hQ4fGc889F4MHD47BgwfHvHnzcmOuvfbauPHGG2PChAnx9NNPR6tWraKioiLWrl1b58+jrAcAAAAAoODsvPPOUVpamjtatWqVu3bXXXfFunXrYuLEibHffvvFKaecEhdddFH88pe/zI0ZP358HH300XHZZZdFjx494pprromDDjoobr755oj4eFb9r371qxg9enQcf/zxccABB8Sdd94Zy5Yti/vvv7/On0dZDwAAAABAvaiqqopVq1blHVVVVXVy75///OfRtm3bOPDAA+O6666Ljz76KHdt9uzZccQRR0RJSUnuXEVFRSxYsCDee++93JhBgwbl3bOioiJmz54dERFLliyJysrKvDFt2rSJvn375sbUJWU9AAAAAEAdyLLM8Zlj7Nix0aZNm7xj7Nix2/xnfdFFF8Xdd98djz/+eJx33nnxs5/9LC6//PLc9crKyujQoUPeez55XVlZucUxn77+6fdtakxdKq7zOwIAAAAAQESMGjUqLr300rxzzZs33+TYK664In7xi19s8X6vvPJKlJWV5d3zgAMOiJKSkjjvvPNi7Nixm73/jk5ZDwAAAABAvWjevHmNy/MRI0bEkCFDtjimS5cumzzft2/f+Oijj+L111+PfffdN0pLS2P58uV5Yz55XVpamvvvpsZ8+von5zp27Jg3pnfv3jV6ptpQ1gMAAAAAkFz79u2jffv2W/XeuXPnRpMmTWK33XaLiIjy8vL4j//4j1i/fn00a9YsIiKmT58e++67b3zxi1/MjZkxY0YMHz48d5/p06dHeXl5RER07tw5SktLY8aMGblyftWqVfH000/H+eefv5VPuXnWrAcA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fv2id+/eMWHChHpKCUBD8M4778Ruu+0WTzzxRBxxxBGbHHPggQfGQQcdFLfffvtm7zNkyJBYsWJF3H///fWUFIBCs6XvNStXroz27dvHlClT4sQTT4yIiPnz50ePHj1i9uzZ0a9fv43ek2VZdOrUKUaMGBEjR47M3adDhw4xefLkOOWUU+r1eQDgs8ysh0Zi4cKF0alTp+jSpUt8+9vfjqVLl2527OzZs2PQoEF55yoqKmL27Nn1HROAArdy5cqIiNh11103ef3ZZ5+NuXPnxtChQz/3XjNnzozddtst9t133zj//PPj3XffrdOsABSezX2vefbZZ2P9+vV532PKyspizz333Oz3mCVLlkRlZWXee9q0aRN9+/b13QeAJJT10Aj07ds3Jk+eHNOmTYtbbrkllixZEocffni8//77mxxfWVkZHTp0yDvXoUOHqKys3B5xAShQ1dXVMXz48DjssMNi//333+SY22+/PXr06BH9+/ff4r2OPvrouPPOO2PGjBnxi1/8Ip544ok45phjYsOGDfURHYACsKXvNZWVlVFSUhJf+MIX8t6zpe8xn5z33QeAHUVx6gBA/fv0msAHHHBA9O3bN/baa6+49957azSzEQBq4oILLoh58+Ztdl+UNWvWxJQpU+KHP/zh597r00sP9OrVKw444IDYZ599YubMmfGVr3ylzjIDUDi29L2mZcuWCZMBQN0wsx4aoS984QvRvXv3WLRo0Savl5aWxvLly/POLV++PEpLS7dHPAAK0LBhw+Khhx6Kxx9/PHbfffdNjvn9738fH374YZxxxhm1vn+XLl2iXbt2m/3ZBUDj8+nvNaWlpbFu3bpYsWJF3pgtfY/55LzvPgDsKJT10Ah98MEHsXjx4ujYseMmr5eXl8eMGTPyzk2fPj3Ky8u3RzwACkiWZTFs2LC477774rHHHovOnTtvduztt98exx13XLRv377Wn/Pmm2/Gu+++u9mfXQA0Pp/+XtOnT59o1qxZ3veYBQsWxNKlSzf7PaZz585RWlqa955Vq1bF008/7bsPAEko66ERGDlyZDzxxBPx+uuvx6xZs+KEE06Ipk2bxqmnnhoREWeccUaMGjUqN/7iiy+OadOmxbhx42L+/PkxZsyY+Nvf/hbDhg1L9QgA7KAuuOCC+L//9//GlClTYuedd47KysqorKyMNWvW5I1btGhRPPnkk3HOOeds8j5lZWVx3333RcTH5ctll10Wc+bMiddffz1mzJgRxx9/fHTt2jUqKirq/ZkA2DFt6XtNmzZtYujQoXHppZfG448/Hs8++2ycddZZUV5eHv369cvd49M/b4qKimL48OHxk5/8JB544IF48cUX44wzzohOnTrF4MGDEz0lAI2ZNeuhEXjzzTfj1FNPjXfffTfat28fAwYMiDlz5uRmNi5dujSaNPn//3bXv3//mDJlSowePTquvPLK6NatW9x///2b3SwQgMbrlltuiYiIo446Ku/8pEmTYsiQIbnXEydOjN133z2+9rWvbfI+CxYsiJUrV0ZERNOmTeOFF16IO+64I1asWBGdOnWKr33ta3HNNddE8+bN6+U5ANjxfd73mhtuuCGaNGkS3/rWt6KqqioqKiriN7/5Td49Pv3zJiLi8ssvj9WrV8e5554bK1asiAEDBsS0adOiRYsW2/XZACAioijLsix1CAAAAAAAaMwsgwMAAAAAAIkp6wEAAAAAIDFlPQAAAAAAJKasBwAAAACAxJT1AAAAAACQmLIeAAAAAAASU9YDAAAAAEBiynoAAAAAAEhMWQ8AwA5hyJAhMXjw4Hq597p166Jr164xa9asern/5kyePDm+8IUvbHHMFVdcERdeeOH2CQQAAOywlPUAAPVsyJAhUVRUtNFx9NFH58Y8//zzcdxxx8Vuu+0WLVq0iL333jtOPvnk+Oc//5kbc99990W/fv2iTZs2sfPOO8d+++0Xw4cP/9zPf/zxx+PrX/96tG3bNnbaaafo2bNnjBgxIt566636eNytNn78+Jg8eXLu9VFHHVWj56uJCRMmROfOnaN///65c5/8PcyZMydvbFVVVbRt2zaKiopi5syZERHRr1+/+N73vrfRPYuKivIyR3z893344YfXONvIkSPjjjvuiNdee612DwUAADQoynoAgO3g6KOPjrfffjvv+N3vfhcREe+880585StfiV133TUeffTReOWVV2LSpEnRqVOnWL16dUREzJgxI04++eT41re+Fc8880w8++yz8dOf/jTWr1+/xc/9z//8zxg0aFCUlpbGf/3Xf8XLL78cEyZMiJUrV8a4cePq/blro02bNp87C31rZFkWN998cwwdOnSja3vssUdMmjQp79x9990XrVu3zjs3cODAXHH/iccffzz22GOPjc7P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lh49p6SkJDdr/9O+/vWvR6tWreKWW26JadOmbXEJnIiIAw88MObPn7/Z/QAiPl4KZ+bMmXHGGWdE06ZNNzmmf//+UVJSEr/5zW9y6/xHRBxyyCHxzjvvxMSJE3PL5dTWvHnzolmzZrHffvvV+r0AAEDDUJw6AABAY1BVVRWVlZV554qLi6Ndu3bx0EMPxd133x2nnHJKdO/ePbIsiwcffDAeeeSR3GaqY8aMiQ8//DC+/vWvx1577RUrVqyIG2+8MdavXx9f/epXN/mZn6wxP2zYsFi1alWcccYZsffee8ebb74Zd955Z7Ru3TrGjRsX3bp1i9///vcxa9as+OIXvxi//OUvY/ny5dGzZ8+8+y1dujQuvfTSOO+88+Lvf/973HTTTTFu3LiIiNhzzz2jpKQkbrrppvje974X8+bNi2uuuSbv/cOGDYubbropTjnllBg1alS0adMm5syZE4ceeugm163fe++94+mnn47XX389WrduHbvuums0adIkt3b9qFGjolu3bnmbuW7KwIED44MPPoiXXnop9t9//02OOfroo+Odd96JXXbZZbP3admyZfTr1y9uuummOOyww3KlfklJSd75rVnm569//WscfvjhdfbbBwAAQOExsx4AYDuYNm1adOzYMe8YMGBARET07NkzdtpppxgxYkT07t07+vXrF/fee2/cdtttcfrpp0fEx0utvPbaa3HGGWdEWVlZHHPMMVFZWRl//vOfN1l0f+L73/9+/PnPf4633norTjjhhCgrK4tzzjkndtlllxg5cmRERIwePToOOuigqKioiKOOOipKS0tj8ODBG93rjDPOiDVr1sShhx4aF1xwQVx88cVx7rnnRsTHy7dMnjw5pk6dGj179oyf//znGy3h07Zt23jsscfigw8+iCOPPDL69OkT/+f//J/NltsjR46Mpk2bRs+ePaN9+/Z5a+gPHTo01q1bF2edddbn/tm3bds2TjjhhLjrrrs2O6aoqCjatWsXJSUlW7zXwIED4/3338+tV/+JI488Mt5///2N1quvqbvvvju++93vbtV7AQCAhqEo29LvAwMAQHy8uWrv3r3jV7/6VeooEfHxTPSvfOUr8Y9//CM6dOjwueNfeOGF+OpXvxqLFy+O1q1bb4eENfenP/0pRowYES+88EIUF/vFVwAAaKzMrAcAoGBUVVXFm2++GWPGjImTTjqpRkV9xMfr5f/iF7+IJUuW1HPC2lu9enVMmjRJUQ8AAI2cbwQAABSM3/3udzF06NDo3bt33HnnnbV675AhQ+on1DY68cQTU0cAAAB2AJbBAQAAAACAxCyDAwAAAAAAiSnrAQAAAAAgMWU9AAAAAAAkpqwHAAAAAIDElPUAAAAAAJCYsh4AAAAAABJT1gMAAAAAQGLKegAAAAAASOz/AWyLkSi9pQDnAAAAAElFTkSuQmCC", "text/plain": [ "
" ] @@ -320,9 +323,9 @@ "if not os.path.isdir('data'):\n", " os.makedirs('data')\n", "\n", - "save_data(results, f'data/{pv_begin}-{pv_end}-{pv_groups}-{ess_begin}-{ess_end}-{ess_groups}-results.csv')\n", - "save_data(costs, f'/{pv_begin}-{pv_end}-{pv_groups}-{ess_begin}-{ess_end}-{ess_groups}-costs.csv')\n", - "save_data(overload_cnt, f'/{pv_begin}-{pv_end}-{pv_groups}-{ess_begin}-{ess_end}-{ess_groups}-overload_cnt.csv')\n", + "save_data(results, f'data/{pv_begin}-{pv_end}-{pv_groups}-{ess_begin}-{ess_end}-{ess_groups}-results')\n", + "save_data(costs, f'data/{pv_begin}-{pv_end}-{pv_groups}-{ess_begin}-{ess_end}-{ess_groups}-costs')\n", + "save_data(overload_cnt, f'data/{pv_begin}-{pv_end}-{pv_groups}-{ess_begin}-{ess_end}-{ess_groups}-overload_cnt')\n", "df=results\n", "df = df.astype(float)\n", "df.index = df.index / 1000\n", @@ -333,7 +336,6 @@ "plt.figure(figsize=figure_size)\n", "cmap = sns.color_palette(\"coolwarm\", as_cmap=True)\n", "ax = sns.heatmap(df/1000, fmt=\".1f\", cmap=cmap, vmin=-max_scale, vmax=max_scale, annot=annot_benefit)\n", - "ax.xaxis.set_major_formatter(ticker.FuncFormatter(lambda x, _: f\"{x:.2f}\"))\n", "# ax.yaxis.set_major_formatter(ticker.FormatStrFormatter('%.1f'))\n", "plt.title(title_benefit)\n", "plt.gca().invert_yaxis()\n", @@ -344,7 +346,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 22, "metadata": {}, "outputs": [ { @@ -385,14 +387,7 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": 10, + "execution_count": 23, "metadata": {}, "outputs": [ { diff --git a/main.py b/main.py index 3e2bc90..eb582ff 100644 --- a/main.py +++ b/main.py @@ -1,199 +1,16 @@ #!/usr/bin/env python # coding: utf-8 -# In[40]: +# In[14]: -import pandas as pd -class pv_config: - def __init__(self, capacity, cost_per_kW, lifetime, loss): - self.capacity = capacity - self.cost_per_kW = cost_per_kW - self.lifetime = lifetime - self.loss = loss - def get_cost(self): - return self.capacity * self.cost_per_kW - def get_cost_per_year(self): - return self.capacity * self.cost_per_kW / self.lifetime -class ess_config: - def __init__(self, capacity, cost_per_kW, lifetime, loss, charge_power, discharge_power): - self.capacity = capacity - self.cost_per_kW = cost_per_kW - self.lifetime = lifetime - self.loss = loss - self.storage = 100 - self.charge_power = charge_power - self.discharge_power = discharge_power - def get_cost(self): - return self.capacity * self.cost_per_kW - def get_cost_per_year(self): - return self.capacity * self.cost_per_kW / self.lifetime - -class grid_config: - def __init__(self, capacity, grid_loss, sell_price): - # self.price_schedule = price_schedule - self.loss = grid_loss - self.sell_price = sell_price - self.capacity = capacity - - def get_price_for_time(self, time): - hour, minute = map(int, time.split(':')) - total_minutes = hour * 60 + minute - for _, row in self.price_schedule.iterrows(): - start_hour, start_minute = map(int, row['time_start'].split(':')) - end_hour, end_minute = map(int, row['time_end'].split(':')) - start_total_minutes = start_hour * 60 + start_minute - end_total_minutes = end_hour * 60 + end_minute - if start_total_minutes <= total_minutes < end_total_minutes: - return row['price'] - return 0.1 # 默认电价,以防万一没有匹配的时间段 - - - -# In[41]: -class EnergySystem: - def __init__(self, pv_type: pv_config, ess_type: ess_config, grid_type: grid_config): - self.pv = pv_type - self.ess = ess_type - self.grid = grid_type - self.day_generated = [] - self.generated = 0 - self.stored = 0 - self.hour_stored = [] - self.hour_stored_2 = [] - self.afford = True - self.cost = self.ess.get_cost() + self.pv.get_cost() - self.overload_cnt = 0 - self.spring_week_gen = [] - self.summer_week_gen = [] - self.autumn_week_gen = [] - self.winter_week_gen = [] - self.spring_week_soc = [] - self.summer_week_soc = [] - self.autumn_week_soc = [] - self.winter_week_soc = [] - self.granularity = 4 - self.season_step = self.granularity * 24 * 7 * 12 - self.season_start= self.granularity * 24 * 7 * 2 - self.week_length = self.granularity * 24 * 7 - self.unmet = [] - - def get_cost(self): - return self.ess.get_cost()+self.pv.get_cost() - - # 优先使用PV供电给工厂 - 如果PV输出能满足工厂的需求,则直接供电,多余的电能用来给ESS充电。 - # PV不足时使用ESS补充 - 如果PV输出不足以满足工厂需求,首先从ESS获取所需电量。 - # 如果ESS也不足以满足需求,再从电网获取 - 当ESS中的存储电量也不足以补充时,再从电网购买剩余所需电量。 - def simulate(self, data, time_interval): - total_benefit = 0 - for index, row in data.iterrows(): - time = row['time'] - sunlight_intensity = row['sunlight'] - factory_demand = row['demand'] - electricity_price = row['price'] - # electricity_price = self.grid.get_price_for_time(time) - - if time == '00:00': - self.day_generated.append(self.generated) - self.generated = 0 - if time.endswith('14:00'): - soc = self.ess.storage / self.ess.capacity - self.hour_stored.append(soc) - if time.endswith('08:00'): - soc = self.ess.storage / self.ess.capacity - self.hour_stored_2.append(soc) - - generated_pv_power = self.pv.capacity * sunlight_intensity # 生成的功率,单位 kW - generated_pv_energy = generated_pv_power * time_interval * self.pv.loss # 生成的能量,单位 kWh - self.generated += generated_pv_energy - # pv生成的能量如果比工厂的需求要大 - if generated_pv_energy >= factory_demand * time_interval: - # 剩余的能量(kwh) = pv生成的能量 - 工厂需求的功率 * 时间间隔 - surplus_energy = generated_pv_energy - factory_demand * time_interval - # 要充到ess中的能量 = min(剩余的能量,ess的充电功率*时间间隔(ess在时间间隔内能充进的电量),ess的容量-ess储存的能量(ess中能冲进去的电量)) - charge_to_ess = min(surplus_energy, self.ess.charge_power * time_interval, self.ess.capacity - self.ess.storage) - self.ess.storage += charge_to_ess - surplus_after_ess = surplus_energy - charge_to_ess - # 如果还有电量盈余,且pv功率大于ess的充电功率+工厂的需求功率则准备卖电 - if surplus_after_ess > 0 and generated_pv_power > self.ess.charge_power + factory_demand: - sold_to_grid = surplus_after_ess - sell_income = sold_to_grid * self.grid.sell_price - total_benefit += sell_income - # 节省的能量 = 工厂需求的能量 * 时间段 - # total_energy = factory_demand * time_interval - saved_energy = factory_demand * time_interval - # pv比工厂的需求小 - else: - # 从ess中需要的电量 = 工厂需要的电量 - pv中的电量 - needed_from_ess = factory_demand * time_interval - generated_pv_energy - # 如果ess中存的电量比需要的多 - if self.ess.storage * self.ess.loss >= needed_from_ess: - # 取出电量 - if self.ess.discharge_power * time_interval * self.ess.loss < needed_from_ess: - discharging_power = self.ess.discharge_power * time_interval - else: - discharging_power = needed_from_ess / self.ess.loss - - self.ess.storage -= discharging_power - # 节省下来的能量 = pv的能量 + 放出来的能量 - saved_energy = generated_pv_energy + discharging_power * self.ess.loss - else: - # 如果存的电量不够 - # 需要把ess中的所有电量释放出来 - if self.grid.capacity * time_interval + generated_pv_energy + self.ess.storage * self.ess.loss < factory_demand * time_interval: - self.afford = False - self.overload_cnt+=1 - log = f"index: {index}, time: {time}, SoC:{self.ess.storage / self.ess.capacity}%, storage: {self.ess.storage}, pv_gen:{generated_pv_power}, power_demand: {factory_demand}, overload_cnt:{self.overload_cnt}, day:{int(index/96) + 1}" - self.unmet.append((index,time,factory_demand,generated_pv_power)) - # with open(f'plots/summary/ess-{self.ess.capacity}-pv-{self.pv.capacity}', 'a') as f: - # f.write(log) - print(log) - # self.unmet.append(log) - saved_energy = generated_pv_energy + self.ess.storage * self.ess.loss - self.ess.storage = 0 - needed_from_grid = factory_demand * time_interval - saved_energy - net_grid = min(self.grid.capacity * time_interval, needed_from_grid) * self.grid.loss - # grid_energy += net_grid - # total_energy += net_grid - # print(total_energy) - # 工厂需求量-总能量 - # unmet_demand = max(0, factory_demand * time_interval - total_energy) - # benefit = (total_energy - unmet_demand) * electricity_price - benefit = (saved_energy) * electricity_price - cost = net_grid * electricity_price - # print(f"time:{time} benefit: {benefit}, cost: {cost}") - total_benefit += benefit - cost - # # spring - week_start = self.season_start - week_end = self.week_length + week_start - if index in range(week_start, week_end): - self.spring_week_gen.append(generated_pv_power) - self.spring_week_soc.append(self.ess.storage / self.ess.capacity) - # summer - # week_start += self.season_step - # week_end += self.season_step - # if index in range(week_start, week_end): - # self.summer_week_gen.append(generated_pv_power) - # self.summer_week_soc.append(self.ess.storage / self.ess.capacity) - # # autumn - # week_start += self.season_step - # week_end += self.season_step - # if index in range(week_start, week_end): - # self.autumn_week_gen.append(generated_pv_power) - # self.autumn_week_soc.append(self.ess.storage / self.ess.capacity) - # week_start += self.season_step - # week_end += self.season_step - # if index in range(week_start, week_end): - # self.winter_week_gen.append(generated_pv_power) - # self.winter_week_soc.append(self.ess.storage / self.ess.capacity) - - return total_benefit import os import glob import shutil def clear_folder_make_ess_pv(folder_path): - shutil.rmtree(folder_path) + if os.path.isdir(folder_path): + shutil.rmtree(folder_path) os.makedirs(folder_path) os.makedirs(os.path.join(folder_path,'ess')) os.makedirs(os.path.join(folder_path,'pv')) @@ -202,22 +19,24 @@ folder_path = 'plots' clear_folder_make_ess_pv(folder_path) -# In[42]: +# In[15]: import matplotlib.pyplot as plt import seaborn as sns import numpy as np import pandas as pd +from EnergySystem import EnergySystem from config import pv_config, grid_config, ess_config -figure_size = (10,8) -# In[43]: +# In[16]: import json +print("Version 0.0.2") + with open('config.json', 'r') as f: js_data = json.load(f) @@ -243,6 +62,17 @@ pv_groups = js_data["pv_capacities"]["groups"] ess_begin = js_data["ess_capacities"]["begin"] ess_end = js_data["ess_capacities"]["end"] ess_groups = js_data["ess_capacities"]["groups"] + +annot_unmet = js_data["annotated"]["unmet_prob"] +annot_benefit = js_data["annotated"]["benefit"] +annot_cost = js_data["annotated"]["cost"] + +title_unmet = js_data["plot_title"]["unmet_prob"] +title_cost = js_data["plot_title"]["cost"] +title_benefit = js_data["plot_title"]["benefit"] + +figure_size = (js_data["figure_size"]["length"], js_data["figure_size"]["height"]) + pv_capacities = np.linspace(pv_begin, pv_end, pv_groups) ess_capacities = np.linspace(ess_begin, ess_end, ess_groups) results = pd.DataFrame(index=pv_capacities, columns= ess_capacities) @@ -251,7 +81,7 @@ costs = pd.DataFrame(index=pv_capacities, columns= ess_capacities) overload_cnt = pd.DataFrame(index=pv_capacities, columns= ess_capacities) -# In[44]: +# In[17]: hour_demand = [] @@ -267,7 +97,7 @@ plt.savefig('plots/demand.png') plt.close() -# In[45]: +# In[18]: def cal_profit(es: EnergySystem, saved_money): @@ -275,13 +105,13 @@ def cal_profit(es: EnergySystem, saved_money): return profit -# In[46]: +# In[24]: -for pv_capacity in pv_capacities: - print(f"pv_capacity:{pv_capacity}") - for ess_capacity in ess_capacities: - print(f"ess_capacity:{ess_capacity}") +for ess_capacity in ess_capacities: + print(f"ess_capacity:{ess_capacity}") + for pv_capacity in pv_capacities: + print(f"pv_capacity:{ess_capacity}") pv = pv_config(capacity=pv_capacity, cost_per_kW=pv_cost_per_kW, lifetime=pv_lifetime, @@ -306,23 +136,23 @@ for pv_capacity in pv_capacities: pv_generated = energySystem.day_generated ess_generated = energySystem.hour_stored ess_generated_2 = energySystem.hour_stored_2 - plt.figure(figsize=(10,8)); - plt.plot(ess_generated) - plt.xlabel('day #') - plt.ylabel('SoC %') - plt.title(f'14:00 ESS SoC \n PV cap:{pv_capacity}, ESS cap:{ess_capacity}') - plt.savefig(f'plots/ess/1400-{pv_capacity}-{ess_capacity}.png') - plt.close() - plt.figure(figsize=(10,8)); - plt.plot(ess_generated_2) - plt.xlabel('day #') - plt.ylabel('SoC%') - plt.title(f'08:00 ESS SoC \n PV cap:{pv_capacity}, ESS cap:{ess_capacity}') - plt.savefig(f'plots/ess/0800-{pv_capacity}-{ess_capacity}.png') - plt.close() - print(energySystem.unmet) - spring_week_start = energySystem.season_start - spring_week_end = spring_week_start + energySystem.week_length + plt.figure(figsize=(10,8)); + plt.plot(ess_generated) + plt.xlabel('day #') + plt.ylabel('SoC %') + plt.title(f'14:00 ESS SoC \n PV cap:{pv_capacity}, ESS cap:{ess_capacity}') + plt.savefig(f'plots/ess/1400-{pv_capacity}-{ess_capacity}.png') + plt.close() + plt.figure(figsize=(10,8)); + plt.plot(ess_generated_2) + plt.xlabel('day #') + plt.ylabel('SoC%') + plt.title(f'08:00 ESS SoC \n PV cap:{pv_capacity}, ESS cap:{ess_capacity}') + plt.savefig(f'plots/ess/0800-{pv_capacity}-{ess_capacity}.png') + plt.close() + # print(energySystem.unmet) + # spring_week_start = energySystem.season_start + # spring_week_end = spring_week_start + energySystem.week_length # summer_week_start = energySystem.season_start + 1 * energySystem.season_step # summer_week_end = summer_week_start + energySystem.week_length # autumn_week_start = energySystem.season_start + 2 * energySystem.season_step @@ -330,13 +160,13 @@ for pv_capacity in pv_capacities: # winter_week_start = energySystem.season_start + 3 * energySystem.season_step # winter_week_end = winter_week_start+ energySystem.week_length - spring_consume_data = [] + # spring_consume_data = [] # summer_consume_data = [] # autumn_consume_data = [] # winter_consume_data = [] - for index, row in data.iterrows(): - if index in range(spring_week_start, spring_week_end): - spring_consume_data.append(row['demand']) + # for index, row in data.iterrows(): + # if index in range(spring_week_start, spring_week_end): + # spring_consume_data.append(row['demand']) # elif index in range(summer_week_start, summer_week_end): # summer_consume_data.append(row['demand']) # elif index in range(autumn_week_start, autumn_week_end): @@ -344,12 +174,12 @@ for pv_capacity in pv_capacities: # elif index in range(winter_week_start, winter_week_end): # winter_consume_data.append(row['demand']) - spring_week_time = list(range(spring_week_start, spring_week_end)) + # spring_week_time = list(range(spring_week_start, spring_week_end)) # summer_week_time = list(range(summer_week_start, summer_week_end)) # autumn_week_time = list(range(autumn_week_start, autumn_week_end)) # winter_week_time = list(range(winter_week_start, winter_week_end)) - spring_pv_generated = energySystem.spring_week_gen + # spring_pv_generated = energySystem.spring_week_gen # summer_pv_generated = energySystem.summer_week_gen # autumn_pv_generated = energySystem.autumn_week_gen # winter_pv_generated = energySystem.winter_week_gen @@ -362,14 +192,14 @@ for pv_capacity in pv_capacities: # fig, ax1 = plt.subplots() - plt.plot(spring_week_time, spring_pv_generated, label = 'pv generation') - plt.plot(spring_week_time, spring_consume_data, label = 'factory consume') - plt.ylabel('Power / kW') - plt.xlabel('15 min #') - plt.title(f'ess: {energySystem.ess.capacity/1000 } MWh pv: {energySystem.pv.capacity/1000 } MW spring week generate condition') - plt.legend() - plt.savefig(f'plots/{energySystem.ess.capacity}-{energySystem.pv.capacity}-spring.png') - plt.close() + # plt.plot(spring_week_time, spring_pv_generated, label = 'pv generation') + # plt.plot(spring_week_time, spring_consume_data, label = 'factory consume') + # plt.ylabel('Power / kW') + # plt.xlabel('15 min #') + # plt.title(f'ess: {energySystem.ess.capacity/1000 } MWh pv: {energySystem.pv.capacity/1000 } MW spring week generate condition') + # plt.legend() + # plt.savefig(f'plots/{energySystem.ess.capacity}-{energySystem.pv.capacity}-spring.png') + # plt.close() # plt.plot(summer_week_time, summer_pv_generated, label = 'pv generation') # plt.plot(summer_week_time, summer_consume_data, label = 'factory consume') @@ -398,13 +228,13 @@ for pv_capacity in pv_capacities: # plt.savefig(f'plots/{energySystem.ess.capacity}-{energySystem.pv.capacity}-winter.png') # plt.close() - plt.figure(); - plt.plot(pv_generated) - plt.xlabel('day #') - plt.ylabel('Electricity kWh') - plt.title(f'PV generated pv cap:{pv_capacity}, ess cap:{ess_capacity}') - plt.savefig(f'plots/pv/{pv_capacity}-{ess_capacity}.png') - plt.close() + # plt.figure(); + # plt.plot(pv_generated) + # plt.xlabel('day #') + # plt.ylabel('Electricity kWh') + # plt.title(f'PV generated pv cap:{pv_capacity}, ess cap:{ess_capacity}') + # plt.savefig(f'plots/pv/{pv_capacity}-{ess_capacity}.png') + # plt.close() # plt.show() @@ -424,15 +254,25 @@ for pv_capacity in pv_capacities: # print(benefit) -# In[47]: +# In[20]: -energySystem.unmet +def save_data(data, filename): + data.to_csv(filename+'.csv') + data.to_json(filename + '.json') -# In[48]: +# In[21]: +import matplotlib.ticker as ticker + +if not os.path.isdir('data'): + os.makedirs('data') + +save_data(results, f'data/{pv_begin}-{pv_end}-{pv_groups}-{ess_begin}-{ess_end}-{ess_groups}-results') +save_data(costs, f'data/{pv_begin}-{pv_end}-{pv_groups}-{ess_begin}-{ess_end}-{ess_groups}-costs') +save_data(overload_cnt, f'data/{pv_begin}-{pv_end}-{pv_groups}-{ess_begin}-{ess_end}-{ess_groups}-overload_cnt') df=results df = df.astype(float) df.index = df.index / 1000 @@ -442,15 +282,16 @@ max_value = df.max().max() max_scale = max(abs(min_value/1000), abs(max_value/1000)) plt.figure(figsize=figure_size) cmap = sns.color_palette("coolwarm", as_cmap=True) -sns.heatmap(df/1000, annot=True, fmt=".1f", cmap=cmap, vmin=-max_scale, vmax=max_scale) -plt.title('Benefit Heatmap Based on PV and ESS Capacities (kEUR/year)') +ax = sns.heatmap(df/1000, fmt=".1f", cmap=cmap, vmin=-max_scale, vmax=max_scale, annot=annot_benefit) +# ax.yaxis.set_major_formatter(ticker.FormatStrFormatter('%.1f')) +plt.title(title_benefit) plt.gca().invert_yaxis() plt.xlabel('ESS Capacity (MWh)') plt.ylabel('PV Capacity (MW)') plt.savefig('plots/benefit.png') -# In[49]: +# In[22]: df = costs @@ -459,8 +300,8 @@ df.index = df.index / 1000 df.columns = df.columns / 1000 plt.figure(figsize=figure_size) -sns.heatmap(df/1000000, annot=True, fmt=".1f", cmap='viridis') -plt.title('Costs of the PV System/million Eur') +sns.heatmap(df/1000000, fmt=".1f", cmap='viridis', annot=annot_cost) +plt.title(title_cost) plt.gca().invert_yaxis() plt.xlabel('ESS Capacity (MWh)') plt.ylabel('PV Capacity (MW)') @@ -475,13 +316,7 @@ plt.savefig('plots/costs.png') # print(benefit) -# In[ ]: - - - - - -# In[50]: +# In[23]: from matplotlib.colors import LinearSegmentedColormap @@ -495,8 +330,13 @@ max_scale = max(abs(min_value/1000), abs(max_value/1000)) plt.figure(figsize=figure_size) cmap = LinearSegmentedColormap.from_list("", ["white", "blue"]) -sns.heatmap(df/(4*24*365), annot=True, fmt=".1f", cmap=cmap, vmin=0, vmax=1) -plt.title('Probability of unmet electricity demands') +ax = sns.heatmap(df/(4*24*365), fmt=".00%", cmap=cmap, vmin=0, vmax=1, annot=annot_unmet) +cbar = ax.collections[0].colorbar +cbar.set_ticks([0, 0.25, 0.5, 0.75, 1]) +cbar.set_ticklabels(['0%', '25%', '50%', '75%', '100%']) +cbar.ax.yaxis.set_major_formatter(ticker.FuncFormatter(lambda x, pos: f'{x:.0%}')) + +plt.title(title_unmet) plt.gca().invert_yaxis() plt.xlabel('ESS Capacity (MWh)') plt.ylabel('PV Capacity (MW)')