{ "cells": [ { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true, "run_control": { "frozen": false, "read_only": false } }, "source": [ "# HDF5 Archives\n", "\n", "An important issue when it comes to numerical calculations is to save data in a compact, portable and light way, which allows for easy recovery. To this end, the objects in TRIQS\n", "are save into hdf5 archives. The interface in TRIQS allows\n", "to recover objects directly, as they were saved. Let us first import the relevant module:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false, "deletable": true, "editable": true, "execution": { "iopub.execute_input": "2023-08-28T15:03:35.056624Z", "iopub.status.busy": "2023-08-28T15:03:35.056317Z", "iopub.status.idle": "2023-08-28T15:03:35.120162Z", "shell.execute_reply": "2023-08-28T15:03:35.119880Z" }, "jupyter": { "outputs_hidden": false }, "run_control": { "frozen": false, "read_only": false } }, "outputs": [], "source": [ "from h5 import HDFArchive" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true, "run_control": { "frozen": false, "read_only": false } }, "source": [ "# Writing to an archive\n", "\n", "We initialize a Green's function and write it to file together with a number" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false, "deletable": true, "editable": true, "execution": { "iopub.execute_input": "2023-08-28T15:03:35.121719Z", "iopub.status.busy": "2023-08-28T15:03:35.121629Z", "iopub.status.idle": "2023-08-28T15:03:35.174374Z", "shell.execute_reply": "2023-08-28T15:03:35.174147Z" }, "jupyter": { "outputs_hidden": false }, "run_control": { "frozen": false, "read_only": false } }, "outputs": [], "source": [ "from triqs.gf import Gf, MeshReFreq, SemiCircular\n", "w_mesh = MeshReFreq(window=[-2,2], n_w=1000)\n", "G = Gf(mesh=w_mesh, target_shape=[])\n", "G << SemiCircular(1.0)\n", "\n", "with HDFArchive(\"my_archive.h5\",'w') as A:\n", " A['number'] = 12\n", " A['G'] = G" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true, "run_control": { "frozen": false, "read_only": false } }, "source": [ "Here, `'w'` means we overwrite the archive if there was an existing one. If you want to append information to an\n", "existing archive without destroying it, use `'a'`. An archive essentially behaves like a python dictionary, i.e. we can put any object in there\n", "\n", "From the shell we can now see the new file and check what is in it" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false, "deletable": true, "editable": true, "execution": { "iopub.execute_input": "2023-08-28T15:03:35.175881Z", "iopub.status.busy": "2023-08-28T15:03:35.175804Z", "iopub.status.idle": "2023-08-28T15:03:35.303512Z", "shell.execute_reply": "2023-08-28T15:03:35.302920Z" }, "jupyter": { "outputs_hidden": false }, "run_control": { "frozen": false, "read_only": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "my_archive.h5\r\n" ] } ], "source": [ "!ls *.h5" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false, "deletable": true, "editable": true, "execution": { "iopub.execute_input": "2023-08-28T15:03:35.305752Z", "iopub.status.busy": "2023-08-28T15:03:35.305595Z", "iopub.status.idle": "2023-08-28T15:03:35.451931Z", "shell.execute_reply": "2023-08-28T15:03:35.451177Z" }, "jupyter": { "outputs_hidden": false }, "run_control": { "frozen": false, "read_only": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "G Group\r\n", "number Dataset {SCALAR}\r\n" ] } ], "source": [ "!h5ls my_archive.h5" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true, "run_control": { "frozen": false, "read_only": false } }, "source": [ "Note: The `!` allows to run shell commands from the notebook. `h5ls` is a command that lists the entries in an archive." ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true, "run_control": { "frozen": false, "read_only": false } }, "source": [ "## Reading from an archive\n", "\n", "Of course, later on we want to read from our saved archive.\n", "We just open it again (the `'r'` flags means that we just read from the archive and\n", "cannot modify it)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false, "deletable": true, "editable": true, "execution": { "iopub.execute_input": "2023-08-28T15:03:35.455554Z", "iopub.status.busy": "2023-08-28T15:03:35.455295Z", "iopub.status.idle": "2023-08-28T15:03:35.748030Z", "shell.execute_reply": "2023-08-28T15:03:35.747769Z" }, "jupyter": { "outputs_hidden": false }, "run_control": { "frozen": false, "read_only": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "HDFArchive (partial view) with the following content:\n", " G : subgroup\n", " number : data \n", "Number = 12\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkQAAAGwCAYAAABIC3rIAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAByXUlEQVR4nO3dd1yVdf/H8ddhHTaIbEUFFw7ErVg5cqaVltoellmZdt+5SrtL25bazrJ+lbaHlVZamnviFgcqiqIoMkRkb871++MCjBJlnHOuczif5+NxHhwO13XO+xIPfPhOnaIoCkIIIYQQNsxO6wBCCCGEEFqTgkgIIYQQNk8KIiGEEELYPCmIhBBCCGHzpCASQgghhM2TgkgIIYQQNk8KIiGEEELYPAetA1gLg8HA+fPn8fDwQKfTaR1HCCGEEDWgKAo5OTkEBwdjZ1d9O5AURDV0/vx5QkJCtI4hhBBCiDo4e/YsTZs2rfbrUhDVkIeHB6D+g3p6emqcRgghhBA1kZ2dTUhISOXv8epIQVRDFd1knp6eUhAJIYQQVuZaw11kULUQQgghbJ4UREIIIYSweVIQCSGEEMLmyRgiIYQQwszKysooKSnROkaD4OjoiL29fb2fRwoiIYQQwkwURSElJYXMzEytozQo3t7eBAYG1mudQCmIhBBCCDOpKIb8/f1xdXWVhX7rSVEU8vPzSUtLAyAoKKjOzyUFkRBCCGEGZWVllcVQ48aNtY7TYLi4uACQlpaGv79/nbvPZFC1EEIIYQYVY4ZcXV01TtLwVPyb1mdclhREQgghhBlJN5nxGePfVAoiIYQQQtg8qyuI5s6dS48ePfDw8MDf359Ro0YRFxd3zfOWLl1KeHg4zs7ORERE8Mcff5ghrRBCCCGsgdUVRJs2bWLSpEns2LGDNWvWUFJSwpAhQ8jLy6v2nO3bt3P33Xczfvx49u/fz6hRoxg1ahSHDx82Y3IhhBBCWCqrK4hWrVrFuHHj6NChA5GRkSxZsoTExET27t1b7Tnvvvsuw4YNY8aMGbRr146XX36Zrl278sEHH5gxuRBCCFMpLCnTOkKDNW7cOHQ6HTqdDkdHR0JDQ3n66acpLCys93PHx8fz8MMP06xZM/R6PU2aNGHgwIF88803lJaWGiF9zVldQfRPWVlZAPj4+FR7THR0NIMGDary2NChQ4mOjq72nKKiIrKzs6vchBBCWJ6vok/Tcc5qlu9P0jpKgzVs2DCSk5M5deoUb7/9Nh9//DFz5syp13Pu2rWLrl27cvToURYuXMjhw4fZuHEjjzzyCB999BGxsbFGSl8zVr0OkcFg4KmnnuK6666jY8eO1R6XkpJCQEBAlccCAgJISUmp9py5c+fy4osvGi2rEEII44tPy+HllUcpNSjsPXOJUV2aaB2pVhRFoUCD1i0XR/tazczS6/UEBgYCEBISwqBBg1izZg1vvPEGoP4+fuONN/jkk09ISUmhTZs2PP/884wZM+aKz6coCuPGjaNNmzZs27YNO7vL7TOtW7fm7rvvRlGUelxh7Vl1QTRp0iQOHz7M1q1bjf7cs2bNYurUqZWfZ2dnExISYvTXEUIIUTelZQamLT1IcakBsM5us4KSMtrPXm321z3y0lBcnepWAhw+fJjt27fTvHnzysfmzp3L119/zaJFi2jdujWbN2/mvvvuw8/Pj379+v3rOWJiYjh69CjfffddlWLo78y9PIHVFkSTJ09mxYoVbN68maZNm1712MDAQFJTU6s8lpqaWlntXoler0ev1xslqxBCCOP7ZMspDpzNrPy8sLwwEsa3YsUK3N3dKS0tpaioCDs7u8pxuEVFRbz22musXbuWqKgoAMLCwti6dSsff/zxFQui48ePA9C2bdvKx9LS0ggLC6v8fN68eTzxxBOmvKwqrK4gUhSFJ598kmXLlrFx40ZCQ0OveU5UVBTr1q3jqaeeqnxszZo1ld84IYQQ1uV4ag7vrDkBQM8WPuw6nUFBsfW1ELk42nPkpaGavG5tDBgwgI8++oi8vDzefvttHBwcGD16NKAOjM7Pz2fw4MFVzikuLqZLly41fo3GjRsTExMDQP/+/SkuLq5VxvqyuoJo0qRJfPvtt/z66694eHhUjgPy8vKq3M/kgQceoEmTJsydOxeA//73v/Tr148333yTESNG8P3337Nnzx4++eQTza5DCCFE3ZSUGZj24wGKywwMDPdnRKcgdp3OoKjU+goinU5X564rc3Jzc6NVq1YAfP7550RGRvLZZ58xfvx4cnNzAVi5ciVNmlQdw1VdT0vr1q0BiIuLqyya7O3tK1/DwcH8/yZWN8vso48+Iisri/79+xMUFFR5++GHHyqPSUxMJDk5ufLzPn368O233/LJJ58QGRnJTz/9xPLly686EFsIIYRl+njTSQ4lZeHl4shrt0dUtnZY4xgia2RnZ8ezzz7Lc889R0FBAe3bt0ev15OYmEirVq2q3Kobe9ulSxfCw8NZsGABBoNldHVafln6DzUZdb5x48Z/PTZ27FjGjh1rgkRCCCHM5VhKNu+uU7vKXri1PQGezjhXFkSW8YvVFowdO5YZM2awcOFCpk+fzvTp05kyZQoGg4Hrr7+erKwstm3bhqenJw8++OC/ztfpdCxevJjBgwdz3XXXMWvWLNq1a0dJSQmbN2/mwoULdd61vq6sriASQghhmyq6ykrKFAa3D2BUZ7V7pqIg0mL6uq1ycHBg8uTJzJs3j4kTJ/Lyyy/j5+fH3LlzOXXqFN7e3nTt2pVnn3222ufo3bs3e/fu5bXXXmPSpEmkpKTg5uZGZGQkb7/9Ng8//LAZrwh0irkn+lup7OxsvLy8yMrKwtPTU+s4Qghhc95de4K31x7H29WRv6b0xd/DGYD9iZe47cPtNG3kwtZnbtQ4ZfUKCwtJSEggNDQUZ2dnreM0KFf7t63p72+rG0MkhBDC9sSez+L99WpX2Yu3dqgshgBcnKTLTNSfFERCCCEsWnGpgelLD1JqUBjWIZBbI4OrfN3ZQQZVi/qTgkgIIYRF+2BDPEeTs/Fxc+KV2zr+awVjZ5llJoxACiIhhBAW63BSFh9uiAfg5ZEd8XX/97o2rnq1ICo1KFIUiTqTgkgIIYRFKiotY/rSA5QaFEZEBDGiU9AVj/PQO2Bvp7YaZReUmDOiaECkIBJCCGGR3l8Xz7GUHBq7OfHSyA7VHqfT6fBycQTgUr4URKJupCASQghhcQ6ey+SjTScBeGVURxpfoavs77xdKwoi8+5/JRoOKYiEEEJYlKLSMqb9eIAyg8ItkcHcFHHlrrK/8y5vIcqUFiJRR1IQCSGEsCjvrD3BibRcfN31vHRr9V1lf9fI1QmATGkhEnUkBZEQQgiLsT/xEh+Xd5W9dltHGrk51eg87/KC6GKeFETGNm7cOEaNGmWS546Pj+fhhx+mWbNm6PV6mjRpwsCBA/nmm28oLS01yWtWR/YyE0IIYREKS9RZZQYFRnUOZkiHwBqfG+iljjFKySo0VTxhZLt27WLQoEF06NCBhQsXEh4eDsCePXtYuHAhHTt2JDIy0mx5pCASQghhEd5ec5yTF/Lw89DzQg27yioEebkAkJxVYIpo4m/69+9PREQE9vb2fPHFFzg5OfHKK69wzz33MHnyZH766ScCAgJ4//33uemmm674HIqiMG7cONq0acO2bduws7vcYdW6dWvuvvtuzL3VqnSZCSGE0NzeM5f4ZMspAObeFlHZBVZTwd7q3mbnM62shUhRoDjP/Ld6FhtffPEFvr6+7Nq1iyeffJKJEycyduxY+vTpw759+xgyZAj3338/+fn5Vzw/JiaGo0ePMn369CrF0N/9c0VyU5MWIiGEEJoqLCljxtIDKArc3rUJg9oH1Po5rLaFqCQfXgu+9nHG9ux5cHKr8+mRkZE899xzAMyaNYvXX38dX19fJkyYAMDs2bP56KOPOHjwIL179/7X+cePHwegbdu2lY+lpaURFhZW+fm8efN44okn6pyxtqSFSAghhKYWrI7jVHoeAZ565txcu66yCsHlBdGl/BIKimX7DlPr1KlT5X17e3saN25MRERE5WMBAWpRm5aWVuPnbNy4MTExMcTExODt7U1xsXkHyEsLkRBCCM3sPp3BZ9sSAHj99k54lS+wWFueLg64OtmTX1xGclYBYX7uxoxpOo6uamuNFq9bn9Mdq36fdDpdlccqursMBsMVz2/dujUAcXFxdOnSBVALq1atWgHg4GD+8kQKIiGEEJooKL7cVTa2W1MGhPvX+bl0Oh1BXs6cvJBHclah9RREOl29uq6sVZcuXQgPD2fBggXccccd1Y4jMiftEwghhLBJ81Yf4/TFfIK8nHnu5vb1fr5gb7Xb7NylKw/kFZZDp9OxePFi4uLiuO666/jtt984ceIER44cYdGiRVy4cAF7e3uzZpKCSAghhNntPHWRxdtOA/D66E6Vm7PWR8vyVqFTF/Lq/VzC9Hr37s3evXtp27YtkyZNon379vTp04fvvvuOt99+m4kTJ5o1j3SZCSGEMKv84lJm/HQQgLt7htCvjZ9Rnreln9r1FJ+Wa5TnE6olS5ZU+Xzjxo3/Oub06dP/eqwm6wi1adPmX8+vFWkhEkIIYVZv/HmMxIx8mni78OzwdkZ73pb+agvRyQtSEInak4JICCGE2Ww/mc4X0WcAeGN0Jzyc699VVqFVeZdZYkY+hSUy9V7UjhREQgghzCKvqJSny7vK7u3VjOtb+xr1+f089Hg4O2BQ4PRFGUckakcKIiGEEGYx98+jnLtUQBNvF2YZsausgk6no02ABwBHk7ON/vyiYZOCSAghhMltPZHO1zsSAZg/phPuetPM6Ylo4gXAwXNZJnl+YzD3pqW2wBj/plIQCSGEMKmcwhKe+VntKnsgqjl9Whm3q+zvOjW13IKoYiXn6jY8FXVX8W/6zxW0a0Om3QshhDCp1/44RlJmASE+LjwzLNykr9WpqTcAseezKC0z4GBvOX/329vb4+3tXbm/l6urq9l3dG9oFEUhPz+ftLQ0vL2967WYoxREQgghTGbz8Qt8t6uiqywSNxN1lVUI83XDXe9AblEpJ9JyaRfkadLXq63AwECgdpueimvz9vau/LetKymIhBBCmET237rKxvVpQe+wxiZ/TTs7HR2beLLjVAYHz2VaXEGk0+kICgrC39+fkpISreM0CI6OjkbZ5sMqC6LNmzczf/589u7dS3JyMsuWLWPUqFHVHr9x40YGDBjwr8eTk5PrXVEKIYS4sldXHCU5q5DmjV15elhbs71uZFNvdpzKIOZsFnf2MNvL1oq9vb3Z9+oSV2c5nau1kJeXR2RkJAsXLqzVeXFxcSQnJ1fe/P3rvrOyEEKI6m2IS+OHPWfR6dSuMlcn8/393b2FD6DulyZETVllC9FNN93ETTfdVOvz/P398fb2Nn4gIYQQlbIKSphZ3lX28HWh9Az1Mevr9wz1wU4Hp9LzSM4qIMjLxayvL6yTVbYQ1VXnzp0JCgpi8ODBbNu27arHFhUVkZ2dXeUmhBDi2l5ecYTU7CLCfN2YPsR8XWUVvFwcK9cjij4prUSiZmyiIAoKCmLRokX8/PPP/Pzzz4SEhNC/f3/27dtX7Tlz587Fy8ur8hYSEmLGxEIIYZ3WHU3lp73n1K6ysZ1wcdJmnExUS3Wto+1SEIka0ilWvmSmTqe75qDqK+nXrx/NmjXjq6++uuLXi4qKKCoqqvw8OzubkJAQsrKy8PS0rFkLQghhCTLzixny9mbScop4tG+YUXeyr61Nxy/w4Oe7CPZyZtvMG2W9HxuWnZ2Nl5fXNX9/20QL0ZX07NmT+Pj4ar+u1+vx9PSschNCCFG9F38/QlpOES393Jg6uI2mWXq0aISTgx3nswo5npqraRZhHWy2IIqJiSEoKEjrGEII0SD8FZvCsv1J2OlgwdhInB21nVLu6uTA9eVbhKw9mqppFmEdrHKWWW5ubpXWnYSEBGJiYvDx8aFZs2bMmjWLpKQkvvzySwDeeecdQkND6dChA4WFhXz66aesX7+ev/76S6tLEEKIBuNSXjHPLjsMwKN9W9KlWSONE6kGtQtg/bE01hxJZdKAVlrHERbOKguiPXv2VFlocerUqQA8+OCDLFmyhOTkZBITEyu/XlxczLRp00hKSsLV1ZVOnTqxdu3aKy7WKIQQonbm/BZLem4Rrf3deWpQa63jVBrYzh+WQczZTNKyC/H3dNY6krBgVj+o2lxqOihLCCFsyarDyTz+9T7s7XT8MrEPkSHeWkeqYuQHWzlwLouXRnbggagWWscRGpBB1UIIIUzqYm4R/yvvKnu8X5jFFUMAt0QGA7B8f5LGSYSlk4JICCFEncz+LZaLecW0DfDgPwMtp6vs726JDMZOB/sSMzlzMU/rOMKCSUEkhBCi1lYeTGblwWTs7XQsGBuJ3sEyNyoN8HTmuvLZZsv3n9c4jbBkUhAJIYSolfTcIp7/Ve0qm9S/JRFNvTROdHWjOjcB4NeYJGTYrKiOFERCCCFqTFEUnl9+mIy8YsIDPZh8o2V2lf3d0I6BODvacSo9jz1nLmkdR1goKYiEEELU2IqDyfx5OAUHOx1v3hGJk4Pl/xpx1ztwa/ng6q+iz2icRlgqy/+fLIQQwiKk5RRWdpVNvrEVHYItu6vs7yqm3P95OJkLOUVXP1jYJCmIhBBCXJOiKPxv2WEy80toH+RpdSs/d2ziRZdm3pSUKXy/K/HaJwibIwWREEKIa/o15jxrjqTiaK92lTnaW9+vj/t7Nwfgm52JFJcaNE4jLI31/Y8WQghhVmnZhcz5LRaA/9zYmnZB1rla/4hOQfh76EnJLpSFGsW/SEEkhBCiWoqi8OyyQ2QVlBDRxIvH+7fUOlKd6R3seeSGUAAWbTpJmUGm4IvLpCASQghRrV/2JbH2aBpO9nYsGGudXWV/d0+v5ni5OHIqPY9Vh1O0jiMsiHX/zxZCCGEyKVmFvPi72lX230GtaRvooXGi+nPXO/BgnxYAvLfuhLQSiUpSEAkhhPgXRVGY9ctBsgtLiWzqxWN9w7SOZDTjrwvF09mBuNQcGUskKklBJIQQ4l+W7j3HhrgLODmoXWUOVt5V9ndero48Ub5swFtrjlNYUqZxImEJGs7/cCGEEEaRnFXAy78fAWDq4Da0DrD+rrJ/GtenBUFeziRlFvD1Dlm9WkhBJIQQ4m8UReGZnw+RU1RKl2beTLih4XSV/Z2zoz1TBrcB4P318WTkFWucSGhNCiIhhBCVfth9ls3HL6Av7yqzt9NpHclkRndtSrsgT7IKSnjjz2NaxxEak4JICCEEAEmZBbyy8igA04e0paWfu8aJTMveTscrozoA8MOes+w9k6FxIqElKYiEEEKoXWU/HSS3qJRuzRvx8PWhWkcyi27Nfbije1MAnlseS2mZbOlhq6QgEkIIwbe7Etkan46zox3zx3Rq0F1l/zTzpnZ4uzpyNDmbjzef0jqO0IgUREIIYePOZuTzWnlX2Yyh4YQ18K6yf/Jxc+L5Ee0BeGftcY4mZ2ucSGhBCiIhhLBhBoPCMz8fJK+4jJ4tfHiofBVnW3N71yYMbh9ASZnC1B8PUFwqXWe2RgoiIYSwYd/sPMP2kxdxcbRn3phO2NlQV9nf6XQ6XrstgkblXWdvronTOpIwMymIhBDCRiVezOe1P9Tp5jNvCqeFr5vGibTl56Fn7u0RAHy86RTrjqZqnEiYkxREQghhgwwGhRk/HaCgpIzeYT7c37u51pEswrCOQYwr7zactvQASZkF2gYSZiMFkRBC2KAvo0+zMyEDVyd75o2OtNmusiuZNTycyKZeZOaXMPnbfTKeyEZIQSSEEDbmdHoer69Su8pmDW9Hs8auGieyLHoHez64pyuezg7sT8zkf8sOoSiK1rGEiUlBJIQQNqSiq6ywxECflo25t2czrSNZpBAfV96/pyt2Oli69xyfyPpEDZ4UREIIYUMWbz/N7tOXcHOy543RtjurrCb6tfFj9s3q+kSvrzrGX7EpGicSpiQFkRBC2IhTF3KZV95V9r8R7Qnxka6ya3mwTwvu7dUMRYH/fL+fPadlv7OGyioLos2bN3PLLbcQHByMTqdj+fLl1zxn48aNdO3aFb1eT6tWrViyZInJcwohhKUoMyjM+OkgRaUGbmjty909Q7SOZBV0Oh0v3NqB/m39KCwx8NCS3Rw5LytZN0RWWRDl5eURGRnJwoULa3R8QkICI0aMYMCAAcTExPDUU0/xyCOPsHr1ahMnFUIIy/D51gT2nrmEu96B10d3QqeTrrKacrS346N7u9G9eSNyCkt54PNdJKTnaR1LGJlOsfKh8zqdjmXLljFq1Khqj3nmmWdYuXIlhw8frnzsrrvuIjMzk1WrVtXodbKzs/Hy8iIrKwtPT8/6xhZCCLOJT8tl+HtbKC418MboCO7sIQOp6yKroIS7P9nBkeRsmni78P2jvaXb0QrU9Pe3VbYQ1VZ0dDSDBg2q8tjQoUOJjo6u9pyioiKys7Or3IQQwtqUGRSmL1X35urXxo87uktXWV15uTjyxcM9CfN1IymzgDs+jubUhVytYwkjsYmCKCUlhYCAgCqPBQQEkJ2dTUHBlVchnTt3Ll5eXpW3kBD5ISKEsD7/t+UUMWcz8XB24PXREdJVVk9+Hnq+f7Q3rfzdSc4q5M5PdnAiNUfrWMIIbKIgqotZs2aRlZVVeTt79qzWkYQQolZOpObw1l/HAZh9c3uCvFw0TtQw+Hs68/2jvQkP9OBCThF3frKDA2cztY4l6skmCqLAwEBSU6tu0peamoqnpycuLlf+AaHX6/H09KxyE0IIa1FaZmDa0gMUlxm4MdyfMd2aah2pQfF1V1uKIpp4kZFXzF2f7JDNYK2cTRREUVFRrFu3rspja9asISoqSqNEQghhWh9vPsXBc1l4Ojvw2m3SVWYK3q5OfPdob/q28aOgpIwJX+7h6x1ntI4l6sgqC6Lc3FxiYmKIiYkB1Gn1MTExJCYmAmp31wMPPFB5/OOPP86pU6d4+umnOXbsGB9++CE//vgjU6ZM0SK+EEKY1LGUbN5Zq3aVvXBrBwK9nDVO1HC56x347MHu3NG9KQYFnlt+mNf+OEqZwaoncNskqyyI9uzZQ5cuXejSpQsAU6dOpUuXLsyePRuA5OTkyuIIIDQ0lJUrV7JmzRoiIyN58803+fTTTxk6dKgm+YUQwlRKygxMX3qAkjKFQe0CuK1LE60jNXiO9na8MboTUwa1AeCTzacYt3gXl/KKNU4masPq1yEyF1mHSAhhDd5fd4I31xzHy8WRNVP64u8prUPm9NuB8zxdvnluiI8LH9/XnfbB8jtDS7IOkRBC2Jgj57N5b/0JAF4a2UGKIQ3cGhnMsieuo5mPK2czCrj9o238uPss0vZg+aQgEkKIBuDvXWVDOwRwa2Sw1pFsVrsgT36bfB1926j7nz3980Emf7efrIISraOJq5CCSAghGoCFG+I5kpxNI1dHXhkls8q05u3qxOJxPXh6WFsc7HSsPJjM8He3sOd0htbRRDWkIBJCCCt3OCmLD9bHA/DSyI74eeg1TiQA7O10PNG/FT9N7EMzH9fK7T7mrz5GUWmZ1vHEP0hBJIQQVqy4VO0qKzUoDI8I5OZOQVpHEv/QOcSblf+5ntu6NMGgwMINJxnx3lb2J17SOpr4GymIhBDCin2w/gTHUnLwcXPipZEdpavMQnk4O/L2nZ356N6u+LrriU/LZfRH23l15REKiqW1yBJIQSSEEFbq0LksFm48CcDLIzvi6y5dZZbupogg1kzpy+3lrUX/tyWBQW9tYnVsisxE05gUREIIYYWKSsuYtjSGMoPCzZ2CGCFdZVajkZsTb93Zmc/HdaeJtwtJmQU89tVexi3eTUJ6ntbxbJYUREIIYYXeXXuC46m5+LqrXWXC+twYHsDaqf2YPKAVTvZ2bDp+gaFvb2beqmPkFMoUfXOTgkgIIazMgbOZLNqkdpW9MioCHzcnjROJunJxsmf60LasntKXfm38KC4z8OHGk/Sbv5El2xIoLjVoHdFmSEEkhBBWpLCkjGlLD2BQYGTnYIZ1DNQ6kjCCUF83ljzUg0/u70aYnxsZecW88PsRBr+9iRUHz8v4IjOQgkgIIazI22uPE5+Wi6+7nhdu6aB1HGFEOp2OIR0C+eupvrx6mzpI/szFfCZ/u5+RC7ex7miqFEYmJJu71pBs7iqE0Nq+xEuM+Wg7BgU+ub8bQzpI61BDlldUyqdbEvh480nyy6fmd2ziyX9ubM3g9gGyxEIN1fT3txRENSQFkRBCS4UlZQx/bwunLuRxe5cmvHVnZ60jCTNJzy3i0y0JfBl9urIwahfkyX8HtmJI+0Ds7KQwuhopiIxMCiIhhJZeXXmE/9uSgL+HnjVT+uHl6qh1JGFmGXnFfLb1FF9sP0NuUSkAYb5uPHx9KKO7NsXFyV7jhJZJCiIjk4JICKGVvWcyGLMoGkWBz8d158bwAK0jCQ1l5hfz+dYElmw/TXahWhg1cnXkvt7NeSCqhexl9w9SEBmZFERCCC0UFKtdZQnpeYzp1pQFYyO1jiQsRF5RKT/uOcvn2xI4m1EAgJO9HbdEBnNf72Z0DvGWcUZIQWR0UhAJIbTw0u9H+HxbAoGezqye0hcvF+kqE1WVGRT+ik3h/7acYl9iZuXjHYI9ua93c0Z2DsbVyUG7gBqTgsjIpCASQpjbroQM7vxE7Spb/FAPBrT11zqSsHD7Ei/x9Y4zrDiYXLmoo4fegdu6NuGuHs1oH2x7v7+kIDIyKYiEEOaUX1zKTe9u4czFfO7sHsIbYzppHUlYkUt5xfy09xzf7DzD6Yv5lY+3D/JkdLemjOwcbDObAUtBZGRSEAkhzOmF32JZsv00wV7OrJrSF09n6SoTtWcwKGw/eZFvd51h7ZE0isvUViMHOx392/ozplsTbgwPwMmh4a7TLAWRkUlBJIQwlx2nLnLXJzsA+PLhnvRt46dxItEQXMor5veD5/l57zkOnMuqfNzLxZGhHQK4uVMwfVo2xsG+YRVHUhAZmRREQghzyCsqZdi7mzmbUcDdPZsx9/YIrSOJBuhEag4/7TvHsn1JpOUUVT7u4+bE0A6B3NIpiF5hjbFvAIs+SkFkZFIQCSHM4fnlh/lqxxmaeLuwekpf3PW2OztImF6ZQWFnwkVWHExm1eEUMvKKK7/m6+7EkA6BDG4fQJ+WjdE7WOfCj1IQGZkUREIIU9sen849n+4E4JtHenFdK1+NEwlbUlpmIPrURVYeTGZVbAqZ+SWVX3NzsqdvGz8Gtw9gQFt/Grk5aZi0dqQgMjIpiIQQppRbVMrQtzeTlFnAfb2b8coo6SoT2ikpM7AtPp01R1JZezSV1OzL3Wr2djq6N2/E4PYB9G/rT0s/N4teAFIKIiOTgkgIYUrPLjvEtzsTadrIhdVP9cVNusqEhTAYFA6fz2LNkVTWHEnlWEpOla838Xahbxtf+rb2o08rX4tbPFQKIiOTgkgIYSpbTlzg/s92AfDdhN5EtWyscSIhqnc2I5+1R1NZdzSNXaczKheABLX1qHOIN31b+9GvrR8RTbw0H5gtBZGRSUEkhDCFnMIShr69mfNZhTwY1ZwXR3bUOpIQNVZQXMaOhItsPn6BzccvcPJCXpWve+gd6BnqQ++wxkS1bEy7IE+zF0hSEBmZFERCCFOY+fNBvt99lmY+rqx66gab3nNKWL9zl/LZciKdzccvsDU+nZzC0ipf93B2oFd5gdQ7zDwFkhRERiYFkRDC2DbGpTFu8W50Ovjh0Sh6hvpoHUkIoykzKBxNzib65EV2nLrIroQMcor+XSB1b96I7i186NHCh05NvXB2NO70/pr+/rba5SgXLlxIixYtcHZ2plevXuzatavaY5csWYJOp6tyc3Z2NmNaIYSoKqughJk/HwJgXJ8WUgyJBsfeTkfHJl5M6BvGZ+N6EDNnCL9Nvo5nh4dzY7g/7noHcgpL2RB3gfmr47jj42gWbTqpWV6rbJv94YcfmDp1KosWLaJXr1688847DB06lLi4OPz9r7wbtKenJ3FxcZWfW/IUQSFEw/fKiiOkZBfSorErTw8N1zqOECZnb6ejU1NvOjX15tG+LSktM3AsJYfdpzPKb5fo0UK7PwyssiB66623mDBhAg899BAAixYtYuXKlXz++efMnDnziufodDoCAwPNGVMIIa5o/bFUlu49h04HC8ZG4uJknSsAC1EfDvZ2dGziRccmXjx0XSiKoqDlIB6r6zIrLi5m7969DBo0qPIxOzs7Bg0aRHR0dLXn5ebm0rx5c0JCQhg5ciSxsbFXfZ2ioiKys7Or3IQQor6y8kuY9YvaVTb+ulC6a/gXsRCWRKfTYafhFH2rK4jS09MpKysjICCgyuMBAQGkpKRc8Zy2bdvy+eef8+uvv/L1119jMBjo06cP586dq/Z15s6di5eXV+UtJCTEqNchhLBNL66IJTW7iDBfN6YPbat1HCFEOasriOoiKiqKBx54gM6dO9OvXz9++eUX/Pz8+Pjjj6s9Z9asWWRlZVXezp49a8bEQoiGaM2RVH7Zl4SdDhbcEWn02TRCiLqzujFEvr6+2Nvbk5qaWuXx1NTUGo8RcnR0pEuXLsTHx1d7jF6vR6/X1yurEEJUyMwv5tllalfZhBvC6NqskcaJhBB/Z3UtRE5OTnTr1o1169ZVPmYwGFi3bh1RUVE1eo6ysjIOHTpEUFCQqWIKIUQVL/wWy4WcIlr6uTFlcBut4wgh/sHqWogApk6dyoMPPkj37t3p2bMn77zzDnl5eZWzzh544AGaNGnC3LlzAXjppZfo3bs3rVq1IjMzk/nz53PmzBkeeeQRLS9DCGEjVh1OYXnMeex08OYdnaWrTAgLZJUF0Z133smFCxeYPXs2KSkpdO7cmVWrVlUOtE5MTMTO7nLj16VLl5gwYQIpKSk0atSIbt26sX37dtq3b6/VJQghbERGXjHPLVe7yh7r15LOId7aBhJCXJFs3VFDsnWHEKIunvxuP78fOE+bAHd+f/J69A7SOiSEOTX4rTuEEMLS/XEomd8PnMfeTseCsZFSDAlhwaQgEkIIE7iYW8Tzyw8D8ET/lnRq6q1tICHEVUlBJIQQJjD711gu5hUTHujBkze21jqOEOIapCASQggjW3HwPCsPJeNQ3lXm5CA/aoWwdPIuFUIII7qQc7mrbNKAVnRs4qVxIiFETUhBJIQQRqIoCs8tP8Sl/BLaBXkyaUArrSMJIWpICiIhhDCS3w6cZ3VsKg52Ot6UrjIhrIq8W4UQwgjScgqZ81ssAP8Z2Jr2wbJemRDWRAoiIYSoJ0VR+N+yw2Tml9CxiScT+7fUOpIQopakIBJCiHpaHpPEmiOpONqrs8oc7eVHqxDWRt61QghRD6nZhcz5Ve0qe2pQG8IDpatMCGskBZEQQtSRoijM+uUQ2YWldGrqxWN9w7SOJISoIymIhBCijn7el8T6Y2k42duxYGwkDtJVJoTVknevEELUQXJWAS/+rnaVTRnchjYBHhonEkLUhxREQghRS4qiMPPnQ+QUlhIZ4s2EG0K1jiSEqCcpiIQQopaW7jnHpuMXcHKw482xnaSrTIgGQN7FQghRC0mZBby84ggA04e0oZW/dJUJ0RBIQSSEEDWkdpUdJKeolK7NvBl/vcwqE6KhkIJICCFq6PvdZ9lyIh29gzqrzN5Op3UkIYSRSEEkhBA1cO5SPq+Ud5XNGNqWMD93jRMJIYxJCiIhhLgGRVF45ueD5BWX0aNFIx66TmaVCdHQONTn5JKSElJSUsjPz8fPzw8fHx9j5RJCCIvxzc5EtsVfxNnRjvljpKtMiIao1i1EOTk5fPTRR/Tr1w9PT09atGhBu3bt8PPzo3nz5kyYMIHdu3ebIqsQQpjd2Yx8XvvjKADPDAunha+bxomEEKZQq4LorbfeokWLFixevJhBgwaxfPlyYmJiOH78ONHR0cyZM4fS0lKGDBnCsGHDOHHihKlyCyGEyRkMCjN+OkB+cRk9Q314MKqF1pGEECZSqy6z3bt3s3nzZjp06HDFr/fs2ZOHH36YRYsWsXjxYrZs2ULr1q2NElQIIcztqx1n2HEqAxdHexaMicROusqEaLB0iqIoWoewBtnZ2Xh5eZGVlYWnp6fWcYQQJnbmYh7D3tlCQUkZL43swAPSOiSEVarp7+86D6qeN28eMTExpKSk4OLiQvv27bn99tuJioqq61MKIYRFMBgUZiw9SEFJGVFhjbmvV3OtIwkhTKzO0+7ff/990tPT8ff3B+D777/n+uuvZ9iwYWRlZRktoBBCmNuS7afZdToDVyd75o3pJF1lQtiAOrcQnT179l+P7dixg4kTJzJp0iS+/vrregUTQggtJKTnMW/1MQCeHd6OEB9XjRMJIcyhXusQ/VPv3r1ZvHgxffv2NebTCiGEWZQZFGYsPUBhiYHrW/lyb69mWkcSQpiJUQqixYsX4+HhgbOzM8uXL6dx48bGeFohhDCrxdsS2HPmEu56B14fHYFOJ11lQtgKo2zdsXPnTh577DFGjhxJWloav/32mzGe9qoWLlxIixYtcHZ2plevXuzateuqxy9dupTw8HCcnZ2JiIjgjz/+MHlGIYT1OHkhl/mr4wD434h2NG0kXWVC2BKjFESLFi0iPT2dFStWcOrUKfbt22eMp63WDz/8wNSpU5kzZw779u0jMjKSoUOHkpaWdsXjt2/fzt1338348ePZv38/o0aNYtSoURw+fNikOYUQ1qHMoDB96QGKSg3c0NqXu3qEaB1JCGFmdV6HqG/fvsyfP59evXpVeTwmJobhw4dz/vx5owS8kl69etGjRw8++OADAAwGAyEhITz55JPMnDnzX8ffeeed5OXlsWLFisrHevfuTefOnVm0aFGNXtNk6xBlJkJeuvGeT5ifTgf+7cFBr3USUUcfbzrJ3D+P4aF3YPWUvgR7u2gdSdRWYRZcPKl1ClFf3s3AzdeoT2nydYg6dOjAddddR8+ePRk9ejQRERG4u7vz3XffUVBQUNenvabi4mL27t3LrFmzKh+zs7Nj0KBBREdHX/Gc6Ohopk6dWuWxoUOHsnz58mpfp6ioiKKiosrPs7Oz6xe8Olvegr2LTfPcwnzC+sMDv2qdQtRBfFoOb645DsDzN7eXYsgalRbDBz0gN1XrJKK+bn4Huj+kyUvXuSD66KOPmDx5MvPnz+ell14iJycHAJ1Ox2uvvWa0gP+Unp5OWVkZAQEBVR4PCAjg2LFjVzwnJSXlisenpKRU+zpz587lxRdfrH/ga3FpBF7SPG+1ykogNwVSDmmdRNRBaZmBaUsPUlxqoH9bP8Z2b6p1JFEXeWmXiyH5eWrdnNw1e+l6zTLr0KEDS5Ys4bPPPuPkyZNkZmbSvHnzfxUf1mjWrFlVWpWys7MJCTHBG23QHPUmrFNWErzdHgqzQVHU7jNhNT7ZcooDZzPxcHbg9ds7yawya1WUq3508YEpMjZU1I1Rpt3b29vTpk0bYzzVNfn6+mJvb09qatWm0dTUVAIDA694TmBgYK2OB9Dr9ej1MiZEXINzeX+0oQRKCsBJZiZZi7iUHN5ZcwKAObd0INDLWeNEos6K1B4K9B7a5hBWrVazzBITE2v15ElJSbU6viacnJzo1q0b69atq3zMYDCwbt26avdRi4qKqnI8wJo1a2TfNVF/Tu6gK38bFZlonJkwupIyA9OXHqC4zMDAcH9Gd22idSRRHxXvPSmIRD3UqiDq0aMHjz32GLt37672mKysLP7v//6Pjh078vPPP9c74JVMnTqV//u//+OLL77g6NGjTJw4kby8PB56SB2I9cADD1QZdP3f//6XVatW8eabb3Ls2DFeeOEF9uzZw+TJk02ST9gQnQ705a1EhbKHn7X4eNNJDiVl4eXiyGu3ywKMVk9aiIQR1KrL7MiRI7z66qsMHjwYZ2dnunXrRnBwMM7Ozly6dIkjR44QGxtL165dmTdvHsOHDzdJ6DvvvJMLFy4we/ZsUlJS6Ny5M6tWraocu5SYmIid3eVar0+fPnz77bc899xzPPvss7Ru3Zrly5fTsWNHk+QTNsbZEwoz1XFEwuIdTc7m3XVqV9kLt7YnwFO6yqxecfkYIimIRD3UaR2igoICVq5cydatWzlz5gwFBQX4+vrSpUsXhg4d2iALDZOtQySs36Lr1Vlm9/4MrQdpnUZcRUmZgVELtxF7PpvB7QP45P5u0jrUEOz4CFbNhI6jYcznWqcRFsak6xC5uLgwZswYxowZU+eAQjQYei/1Y5F0mVm6DzecJPZ8Nt6ujrx6W0cphhoK6TITRlDrgqigoIB169Zx8803A+r09L8vYGhvb8/LL7+Ms7M0Qwsb4VxeEEmXmUWLPZ/F++vVrrIXb+2Av4f8jGowKgZVa7iGjbB+tS6IvvjiC1auXFlZEH3wwQd06NABFxd1dddjx44RHBzMlClTjJtUCEvlLIOqLV1xqYHpSw9SalAY1iGQWyODtY4kjKliHSK9DGcQdVfrzV2/+eYbHn300SqPffvtt2zYsIENGzYwf/58fvzxR6MFFMLiVfwQlmn3FuuDDfEcTc7Gx82JV6SrrOGRLjNhBLUuiOLj44mIiKj83NnZucqMrp49e3LkyBHjpBPCGlR2mUkLkSU6nJTFwg3xALw0sgO+7rLgaoMjBZEwglp3mWVmZlYZM3ThwoUqXzcYDFW+LkSDV9llJi1ElqaotIzpSw9QZlAYERHEzZ2kq6xBqiyIZAyRqLtatxA1bdqUw4er3yvm4MGDNG0qGyQKGyItRBbr/XXxHEvJobGbEy+N7KB1HGEqxdJCJOqv1gXR8OHDmT17NoWFhf/6WkFBAS+++CIjRowwSjghrIKMIbJIB89l8tGmkwC8MqojjaWrrOGqbCGSQdWi7mrdZfbss8/y448/0rZtWyZPnly5qWtcXBwffPABpaWlPPvss0YPKoTFki4zi1NUWsa0H9Wuslsig7kpIkjrSMKUZAyRMIJaF0QBAQFs376diRMnMnPmTCoWutbpdAwePJgPP/ywcgsNIWyCdJlZnHfWnuBEWi6+7npeulW6yho0RblcEMk6RKIe6rRSdWhoKKtWrSIjI4P4eHX2RqtWrfDx8TFqOCGsQuVK1dJCZAn2J17i4/Kustdu60gjNyeNEwmTKs6DsmL1vqv8DhJ1V6eCqIKPjw89e/Y0VhYhrJPz3woiQxnY2Wubx4YVlqizygwKjOoczJAOgVpHEqaWn65+dHABJzdtswirVutB1UKIf3D+20DOiqZ7oYm31xzn5IU8/Dz0vCBdZbYh/6L60bWxtjmE1ZOCSIj6ctCDffkMJhlHpJm9ZzL4ZMspAObeFoG3q3SV2YT8DPWjdJeJepKCSAhjcJZxRFoqLCljxtKDKArc3rUJg9rLxA6bIS1EwkikIBLCGFy81Y8Vf60Ks1qwOo5T6XkEeOqZc7N0ldmU3DT1o5uvtjmE1ZOCSAhj8Chf5yYnWdscNmj36Qw+25YAwOu3d8LL1VHjRMKsKt5zHrLWlKgfKYiEMAbP8j2yspO0zWFjCorLmLH0AIoCY7s1ZUC4v9aRhLlVvOc8m2ibQ1g9KYiEMIbKgkhaiMxp3upjnL6YT5CXM8/d3F7rOEILFe85T9m4V9SPFERCGENFc332eW1z2JAdpy6yeNtpAF4f3QkvF+kqs0kV7zkpiEQ9SUEkhDFUNNfnSEFkDvnFpTz900EA7uoRQr82fhonEpowlF0eQyQFkagnKYiEMIbKLjMpiMzhjT+PkZiRT7CXM/8b0U7rOEIreRdAKQOdPbjLUguifqQgEsIYKgqi3DQoK9E2SwO3/WQ6X0SfAWDemEg8nKWrzGZVDKh2D5Atc0S9SUEkhDG4+oKdI6DI1HsTyi263FV2b69mXN9a1p6xaZXjh2TKvag/KYiEMAY7O/Bupt6/dFrTKA3Z3D+Ocu5SAU28XZg1XLrKbF7Fe61RCy1TiAZCCiIhjMUnTP2YcUrbHA3U1hPpfLMzEYD5YzrhrnfQOJHQXMV7rVGotjlEgyAFkRDG4lP+QzkjQdscDVBOYQnP/Kx2lT0Q1Zw+raSrTHD5vVbxx4gQ9SAFkRDGIi1EJvPaH0dJyiwgxMeFZ4aFax1HWIqK95qPtBCJ+pOCSAhjqSyIpIXImDYfv8B3u84CMH9MJG7SVSYASoshS/1/IS1EwhikIBLCWCp+KF9KAEXRNksDkf23rrJxfVrQO6yxxomExcg6C4oBHF1lDSJhFFIQCWEs3s3UBeKKc2XqvZG8suIIyVmFNG/sytPD2modR1iS9BPqR58w0Om0zSIaBKsriDIyMrj33nvx9PTE29ub8ePHk5ube9Vz+vfvj06nq3J7/PHHzZRY2AwHPTRuqd5PO6ptlgZgQ1waP+45h06ndpW5OklXmfibtCPqR39ZfkEYh9UVRPfeey+xsbGsWbOGFStWsHnzZh599NFrnjdhwgSSk5Mrb/PmzTNDWmFz/MoH/EpBVC9Z+SXMLO8qe/i6UHqG+micSFiciveYnwyyF8ZhVX9yHT16lFWrVrF79266d+8OwPvvv8/w4cNZsGABwcHVb+7n6upKYGCguaIKW+XfHo7+BhekIKqPl1YcITW7iFBfN6YPka4ycQUV7zH/9trmEA2GVbUQRUdH4+3tXVkMAQwaNAg7Ozt27tx51XO/+eYbfH196dixI7NmzSI/P/+qxxcVFZGdnV3lJsQ1+UsLUX2tO5rKz/vUrrIFYzvh4iR7VIl/KCuFC8fV+/7SQiSMw6paiFJSUvD396/ymIODAz4+PqSkpFR73j333EPz5s0JDg7m4MGDPPPMM8TFxfHLL79Ue87cuXN58cUXjZZd2IiKv1YvxIHBoG7pIWosM7+YWb8cAmDCDWF0ay5dZeIKLiVAWRE4uIB3C63TiAbCIn5az5w581+Dnv95O3bsWJ2f/9FHH2Xo0KFERERw77338uWXX7Js2TJOnjxZ7TmzZs0iKyur8nb27Nk6v/7VnM3IJ/Z8FmUGmabdIPiEgb2TOtMsyzT/ZxqyF38/QlpOEWF+bkwd3EbrOMJSVQ6oDpc/OoTRWEQL0bRp0xg3btxVjwkLCyMwMJC0tLQqj5eWlpKRkVGr8UG9evUCID4+npYtW17xGL1ej16vr/Fz1tU3OxNZtOkkns4O9GjhQ89Q9daxiReO9vJGtzr2jtC4NaTFqt1mjZprnchq/BWbwrL9SdjpYMHYSJwdpatMVCOt/A9kP5lhJozHIgoiPz8//Pz8rnlcVFQUmZmZ7N27l27dugGwfv16DAZDZZFTEzExMQAEBQXVKa8xlZYZcHOyJ7uwlHXH0lh3TC34XBzt6da8Eb3KC6TIEG/5BWEtAtqrBVHqIWg7TOs0VuFSXjHPLjsMwKN9W9K1WSONEwmLlqLOQCRABlQL47GIgqim2rVrx7Bhw5gwYQKLFi2ipKSEyZMnc9ddd1XOMEtKSmLgwIF8+eWX9OzZk5MnT/Ltt98yfPhwGjduzMGDB5kyZQp9+/alU6dOGl8RPHdze2beFM6R5Gx2JWSwMyGDXQkZZBWUsDU+na3x6QA4OdjRvXkjrm/tyw2t/OgQ7ImdnSxGZpGCu8ChpXA+RuskVmPOb7Gk5xbR2t+dpwa11jqOsHQV763gLprGEA2LVRVEoM4Wmzx5MgMHDsTOzo7Ro0fz3nvvVX69pKSEuLi4yllkTk5OrF27lnfeeYe8vDxCQkIYPXo0zz33nFaX8C8O9nZ0aupNp6bePHJDGAaDwvG0nCoF0oWcIrafvMj2kxeZRxyNXB3p08qXG1r5cn1rX5o2ctX6MkSFih/S5/drm8NKrDqczG8HzmNvp5OuMnFtuWmQfQ7QQaD2f9SKhkOnKLLpUk1kZ2fj5eVFVlYWnp6eZn1tRVE4eSGPbfHpbDmRzo5TF8ktKq1yTKivGze09uXGcH96hzWWXypaKsqFuU0BBaYdBw/ZZ6k6F3OLGPL2Zi7mFTNpQEtmDJUp1OIajv8F344F3zYwebfWaYQVqOnvb6trIbJFOp2OVv7utPJ358E+LSgpM3DgbCZbTqhdajFnM0lIzyMhPY8vo8/g6mTP9a18GdjOnwHh/vh7OGt9CbZF7w5+beHCMUiOAY+hWieyWLN/i+ViXjFtAzz4z0DpKhM1UNHyKt1lwsikILJCjvZ2dG/hQ/cWPkwZ3IbswhJ2nLzIhrgLrD+WSmp2EX8dSeWvI6kARDb1YmC7AIZ0CKBtgAc62QjR9IK7qAXR+f3QRgqiK1l5MJmVB5Mru8r0DtKqKWpACiJhIlIQNQCezo4M6RDIkA6BKEpHYs9ns+5oGuuPpXLgXFbl7a01xwnzdeOmiEBu6hhEh2BPKY5MJagzHPgOkvZpncQipecW8fyv6qyySf1bEtHUS+NEwiooCpwvf09JQSSMTAqiBkan09GxiRcdm3jx30GtScsuZENcGmuOpLH5xAVOpeexcMNJFm44SfPGrtzUMYjhEYFENPGS4siYmvZQP57dKStW/4OiKDy//DAZecWEB3ow+UbpKhM1dOk05KaCnaMMqBZGJwVRA+fv6cydPZpxZ49m5BaVsv5YGn8cTGZDXBpnLuazaNNJFm06STMfV0Z1acLtXZrQwtdN69jWL6gTOLpCYSakx4G/LCBX4feDyfx5OAUHOx1v3hGJk4MUi6KGEneoH4M7g5PMrBXGJQWRDXHXO3BrZDC3RgaTV1TKxrgL/HEomfXH0kjMyOe9dSd4b90JujTz5vYuTbi5UzCN3Jy0jm2d7B2haXdI2AyJ0VIQlUvLKWR2eVfZ5Btb0SFYuspELSRGqx+bRWmbQzRIUhDZKDe9AyM6BTGiUxD5xaWsOZLKL/uS2HLiAvsTM9mfmMlLK47Qv60/Y7s15cZwfxxkK5HaaRalFkRnoqH7w1qn0ZyiKPxv2WEy80toH+TJpAGttI4krI0URMKEpCASuDo5MLJzE0Z2bkJaTiG/xZznl31JHEnOZs2RVNYcSSXQ05k7eoRwV48Qgr1dtI5sHSp+aFc089u4X2POs+ZIKo72aleZ7NUnaiUvHdKPq/eb9dY2i2iQpCASVfh7OPPIDWE8ckMYcSk5/LzvHD/tPUdKdiHvrTvBB+tPMKCtP/f0akb/tv7Yy/Yh1WvaA3T2kJUIWefAq6nWiTSTll3InN9iAfjPja1pF2TexU1FA1Dxh4VfOLj6aJtFNEjyJ5qoVttAD54d3o7oWTfy3t1d6B3mg0GBdcfSGP/FHvrO28CnW06RXViidVTLpHdXB1eDTbcSKYrCs8sOkVVQQkQTLx7v31LrSMIaSXeZMDEpiMQ16R3suTUymO8fjWLdtH48cn0o3q6OJGUW8MrKo/SZu56Xfj/C2Yx8raNanoof3qe3aJtDQ7/sS2Lt0TSc7O1YMFa6ykQdndmmfpSCSJiI/GQStdLSz53nbm7PjlkDef32CFr7u5NbVMrn2xLoN38Dj3+1l71nLmkd03KE9lM/ntqoaQytpGQV8sLvalfZfwe1pm2gh8aJhFXKz7i8w31oX02jiIZLCiJRJ86O9tzVsxl/TenLFw/35IbWvhgUWBWbwuiPtnPvpzvYeeqi1jG11+J6dRG5S6ch45TWacxKURRm/XKQnMJSIpt68VjfMK0jCWt1aiOggH978AzSOo1ooGRQtagXnU5HvzZ+9GvjR1xKDp9uOcWy/Ulsi7/ItviL9Az14b8DW9OnZWPbXAlb7w4hPdXm/pMbwMd2ioKle8+xIe4CTg5qV5ks2yDq7NQG9WPYAG1ziAZNfkIJo2kb6MH8sZFsmN6fe3s1w8nejl0JGdz76U7GLIpmh622GLUs/yF+cr22OczofGYBL/9+BICpg9vQOkC6ykQdKYr6xwRcfi8JYQJSEAmjC/Fx5dXbItj0dH/G9WmB3sGOvWcucdcnO3ho8S6OJmdrHdG8wm5UPyZsgbJSbbOYgaIozPzlEDlFpXRp5s2EG2ynVUyYwMWTkHUW7J2geR+t04gGTAoiYTJBXi68cGsHtjw9gPt7N8fBTseGuAsMf28L0348QFJmgdYRzSO4Mzh7Q1HW5Z26G7Afdp9l8/EL6Mu7ymStKlEvFd1lIb3ASfZZFKYjBZEwOX9PZ14e1ZE1U/sxolMQigI/7zvHgAUbefOvOAqKy7SOaFp29peb+o+v1jaLiVUsxQAwfUhbWvq5a5xIWL2K90zLG7XNIRo8KYiE2YT6urHwnq78Ouk6osIaU1xq4P318Qx6axN/HkpGURStI5pOm5vUj3F/aJvDhBRF4ZmfDpJbVEq35o14+PpQrSMJa1eUCwmb1Ptth2ubRTR4UhAJs4sM8ebbCb1YdF9Xmni7kJRZwMRv9nH/Z7uIT8vVOp5ptB6sbuORdgQyErROYxLf7kpka3w6zo52zB/TSbrKRP2d2gBlxdAoFPzaap1GNHBSEAlN6HQ6hnUMYu3UfvznxlY4OdixNT6d4e9uYeGGeErKDFpHNC5Xn8sDQuP+1DaLCZzNyOe18q6yGUPDCZOuMmEMFe+VtjeBLS7bIcxKCiKhKRcne6YOacvaKf3o39aP4jID81fHMWrhNmLPZ2kdz7gqmvwbWLeZwaDwzM8HySsuo2cLHx7q00LrSKIhMJTB8VXq/bY3aZtF2AQpiIRFaNbYlcXjevDWHZF4uzoSez6bkR9sY8HqOIpLG0hrUcUP9TPb1a0IGohvdp5h+8mLuDjaM29MJ+ykq0wYw7ndkH8RnL1k/zJhFlIQCYuh0+m4vWtT1kzpx/CIQEoNCh9siGf0R9s5daEBjC3yCVW3HlDK4MQardMYReLFfF774xgAzwxrSwtfmRYtjOTIr+rH1kPB3lHbLMImSEEkLI6fh54P7+3GR/d2xdvVkUNJWdz8/laW7jlr/TPRKrrNjv6mbQ4jMBgUpv90gIKSMnqF+vBAVAutI4mGwmCA2OXq/Q63aRpF2A4piITFuikiiFX/7UtUWGPyi8uY8dNB/vN9DDmFJVpHq7sOo9SPJ9ZAoXWPkfoy+jS7EjJwdbJn/phI6SoTxnN2J+ScB70ntBqodRphI6QgEhYt0MuZrx/pxYyhbbG30/H7gfOMXLjNeqfnB3QE37ZQVgTHrHdw9en0PF5fpXaVzRrejmaNXTVOJBqU2GXqx/AR4KDXNouwGVIQCYtnb6dj0oBWLH08iiAvZ05dyGPUwm38FZuidbTa0+mg42j1/uGftM1SRwaDwoyfDlBYYqBPy8bc27OZ1pFEQ2IogyPL1fvSXSbMSAoiYTW6NmvE709eT89QH3KLSnn0q728tea49Y0rqiiITm6AvIvaZqmDxdtPs/v0Jdyc7HljtMwqE0aWGA25qerssjDZ3V6YjxREwqr4uuv55pFejCtf6+a9dSeY8kOMdU3N920FQZHqbLOjv2qdplZOXchlXnlX2f9GtCfER7rKhJEd/ln9GH4LODhpm0XYFCmIhNVxtLfjhVs7MG90JxzsdCyPOc+Dn+8iq8CKBlt3HKN+PGQ93WZlBoXpSw9QVGrghta+3N0zROtIoqEpKbxcEEWM1jaLsDlWVxC9+uqr9OnTB1dXV7y9vWt0jqIozJ49m6CgIFxcXBg0aBAnTpwwbVBhcnf0COHzcT1wc7In+tRFxi7azvnMAq1j1UzH2wEdnNlmNXubfb41gX2JmbjrHXh9dCd0spWCMLa4P9TZl55NIbSf1mmEjbG6gqi4uJixY8cyceLEGp8zb9483nvvPRYtWsTOnTtxc3Nj6NChFBYWmjCpMIe+bfz48fEoAjz1HE/NZeyiaBIv5msd69q8mkLL8vERMd9qm6UG4tNymf9XHADP39yOJt4uGicSDdKB79SPkXeBnb22WYTNsbqC6MUXX2TKlClERETU6HhFUXjnnXd47rnnGDlyJJ06deLLL7/k/PnzLF++3LRhhVl0CPZi2RPXEebrRlJmAXd8HG0dK1t3vlf9GPOtOrPGQlV0lRWXGujXxo87uktXmTCBnBSIX6ve73yPtlmETbK6gqi2EhISSElJYdCgQZWPeXl50atXL6Kjo6s9r6ioiOzs7Co3YbmCvV34/rHetPZ3JyW7kDs+3sHx1BytY11d+M3qTJrsc5CwSes01fq/LaeIOZuJh7MDr4+OkK4yYRoHfwDFACG9oXFLrdMIG9TgC6KUFHWtmoCAgCqPBwQEVH7tSubOnYuXl1flLSRE/iq2dP4eznz/aG/aBXmSnlvEPf+3k9PpeVrHqp6jM0Tcod7f/7W2WapxIjWHt/46DsDsm9sT5CVdZcIEFAX2f6Pel9YhoRGLKIhmzpyJTqe76u3YsWNmzTRr1iyysrIqb2fPnjXr64u6aeyu57sJvSqLovs+20lKlgWPFetS3m12dAXkZ2ib5R9KywxMW3qA4jIDN4b7M6ZbU60jiYbq9FZIjwNHN1mMUWjGQesAANOmTWPcuHFXPSYsLKxOzx0YGAhAamoqQUFBlY+npqbSuXPnas/T6/Xo9bJkvDXydnXiy4d7MnbRdk5fzOf+z3by42NRNHKzwDVNgjpDYASkHFJbia77j9aJKn28+RQHz2Xh6ezAa7dJV5kwod2fqh8j7wRnT22zCJtlES1Efn5+hIeHX/Xm5FS3X2ahoaEEBgaybt26yseys7PZuXMnUVFRxroEYWH8PPR8Nb4XgZ7OnEjLZdyS3RSWWODAZZ0OekxQ7+/+1GIGVx9LyeadtWpX2Qu3diDQy1njRKLBykmBYyvU+93Ha5tF2DSLKIhqIzExkZiYGBITEykrKyMmJoaYmBhycy/PKgoPD2fZMnVzQJ1Ox1NPPcUrr7zCb7/9xqFDh3jggQcIDg5m1KhRGl2FMIcQH1e+Gt8Tb1dHDpzNZNrSA5a5zUfEWHVwdeaZy7NsNFRSZmD60gOUlCkMaufPbV2aaB1JNGT7vgRDKTSLgsCOWqcRNszqCqLZs2fTpUsX5syZQ25uLl26dKFLly7s2bOn8pi4uDiysrIqP3/66ad58sknefTRR+nRowe5ubmsWrUKZ2f5q7ehax3gwaL7uuFor2PlwWTeWWuBC3I6uUKX+9X7uz7RNgvw0caTHE7KxsvFUbrKhGmVlcKexer9Ho9om0XYPJ1ikX8yW57s7Gy8vLzIysrC01P6uK3Nj7vP8vTPBwF4/+4u3BIZrHGif8g4Be91BRR4cp9m046PnM9m5MKtlJQpvHtXZ0Z2ltYhYUJHf4cf7gM3P5gSCw4yblMYX01/f1tdC5EQdXFHjxAe7asOzH/m54PEp1nYwo0+YdB6sHq/YoCpmRWXXu4qG9ohgFstrWgUDU/0h+rHLvdLMSQ0JwWRsBnPDAsnKqwx+cVlTPpmHwXFljGAuVLPR9WP+75S93Mys4Ub4jmSnE0jV0deGSVdZcLEzu2BxO1g53j5/74QGpKCSNgMezsd797dGV93PXGpOcz57bDWkapqORD8wqE4B/Z8btaXPpyUxcIN8QC8NLIjfh7y17owsW3vqh873QGeQVc/VggzkIJI2BR/D2feu7szdjr4cc85fo1J0jrSZXZ2cN1/1fs7PoLSIrO8bEVXWalBYXhEIDd3kl9OwsQyTqnjhwCiJmubRYhyUhAJm9OnpS//GdgagNm/xpKabUErWXccA55NIDcVDnxvlpd8f/0JjqXk4OPmxEsjO0pXmTC96IWAAq0GQ0B7rdMIAUhBJGzUpAGtiGjiRVZBCTN/Pmg56xM5OEHvJ9T7298z+UKNh85l8eHGkwC8PLIjvu7SVSZMLO/i5X3LLGhldiGkIBI2ydHejjfviMTJwY4NcRdYuuec1pEu6/agulDjxXg4ttJkL1NUWsa0pTGUGRRu7hTECOkqE+YQ/QGUFkBQJLS4Qes0QlSSgkjYrDYBHkwb3AaAV/84ysVc84zZuSa9x+XtPDbPU3cCN4F3157geGouvu5qV5kQJpefcXnx0b5Pq1vXCGEhpCASNm389aGEB3qQVVDCG6uOaR3nsqhJ4OSubvpasc+TER04m8miTWpX2SujIvCxxI1vRcMT/QEU56obGoeP0DqNEFVIQSRsmoO9Ha/epraO/LjnHHvPZGicqJyrD/R6XL2/8XUwGIz21IUlZUxbegCDAiM7BzOsY6DRnluIauVnwM7y1qF+M6V1SFgcKYiEzevW3Ic7u4cA8PzyWAwGCxlgHTUJ9J6QehiO/W60p3177XHi03Lxddfzwi0djPa8QlxV9EJ1ja0AaR0SlkkKIiGAZ24Kx8PZgSPJ2fx6wELWJjJBK9G+xEv83+ZTALx2W0caSVeZMIe8dNj5sXq//zPSOiQskhREQgA+bk5M7K9uqPrmX8cpKrWQbT2ingC9F6QdgcM/1eupCkvKmF7eVXZ7lyYM6SBdZcJMNs9XW4cCO0FbaR0SlkkKIiHKPdQnlABPPecuFfDNjkSt46hcGl1eq2XdS1BS90Uk3/wrjlMX8vD30DNHusqEuWScgt2fqfcHv6SuyC6EBZL/mUKUc3Gy56lB6jT899efILeoVONE5Xo/AR7BkHX28pTlWtpzOoNPtyYAMPf2CLxcHY2ZUIjqrXsZDCXQ8kZoOUDrNEJUSwoiIf5mbLemhPm6cSm/hG92nNE6jsrJFW58Tr2/ZYE6W6cWCorLmPHTQRQFxnRrysB2ASYIKcQVJO2F2F8AHQx6Ues0QlyVFERC/I2DvR2Pl48l+nRrAoUlFjKWKPIuCOgIhVmweUGtTp2/Oo6E9DwCPZ15/mbZN0qYiaLAmjnq/U53QFAnbfMIcQ1SEAnxD6M6NyHYy5kLOUX8tNdCtvSws1fHX4DabZaRUKPTdiVksHh7eVfZ6Ai8XKSrTJhJ3B9wegvYO8GA/2mdRohrkoJIiH9wcrDj0b5hAHy8+SRllrIuUauB6jgMQwmsfvaah+cXlzLjpwMoCtzZPYQBbf3NEFIIoKQAVs1S70dNgkbNtc0jRA1IQSTEFdzZoxleLo6czShgY1ya1nEuG/Y62Dmof30fX33VQ+etiuPMxXyCvZz5383tzBRQCGDbe5B5BjybQN8ZWqcRokakIBLiClyc7Lmje1MAvoy2kMHVAH5t1VlnAH8+Xe00/OiTF1my/TQAr4/uhKezdJUJM7l0Bra+pd4f8go4uWmbR4gakoJIiGrc17s5Oh1sOn6B0+l5Wse5rN/T4BEEl07Dtnf/9eW8olKe/vkAAHf3bEbfNn5mDihs2upnobQQWtwAHW7TOo0QNSYFkRDVaN7YjX7lxcTXljIFH0DvAUNfVe9vfetfA6xf//MYZzMKaOLtwv9GSFeZMKMTa+DYCtDZw/D5skWHsCpSEAlxFff3VgeDLtufREmZ8Xacr7cOt0NoX/Uv8ZXT1CnOwPb4dL4qL97mjemEu95By5TClhTlwO9Pqfd7TwR/KcaFdZGCSIir6NfGj8ZuTlzMK2ZrfLrWcS7T6WDEW2Cvh5Pr4MB35BaVMuOngwDc17sZ17Xy1TiksCnrXoLsc+DdHAZcexakEJZGCiIhrsLB3o5bIoMB+HV/ksZp/sG3NfSfqd5fNYv3ft1KUmYBTRu5MOsm+etcmFHiTtj1f+r9W96VgdTCKklBJMQ1jOysFkSrY1PJs5T9zSr0+Q8ERUJhJl0OvQLA/DGRuElXmTCX0iL47UlAgc73yn5lwmpJQSTENXQO8aZFY1cKSspYHZuidZyq7B3IHfYupdhzk/1u3gg/RVTLxlqnErZk4+uQHgdu/uo0eyGslBREQlyDTqfj1s5NAPjzsIUVRMAre+xZWHorAHekvgU5lpdRNFBnomHbO+r9EW+Cq4+mcYSoDymIhKiBoR3UHeK3nLhgORu+Ahvj0vh+91k+KL2NvEbt0RVkwPInKmedCWEyhdmw7FFQDGpXWftbtU4kRL1IQSREDbQP8iTYy5nCEgPbLGS2WVZBCTN/PgTAfde1wu2eJeDgrM462/WJtuFEw7dqFmQmgnczdUsZIayc1RVEr776Kn369MHV1RVvb+8anTNu3Dh0Ol2V27Bhw0wbVDQoOp2OQe3VVqK1R1M1TqN6ZcURUrILadHYlaeHhqvbelSM4fjreUg7qm1A0XAd+Q1ivgZ0cNvH4OypdSIh6s3qCqLi4mLGjh3LxIkTa3XesGHDSE5Orrx99913JkooGqpB7dSCaN3RNBSNu6TWH0tl6d5z6HSwYGwkLk726hd6PAKtBkNZEfw0HorzNc0pGqCMBPh1snr/+qegeR9N4whhLFZXEL344otMmTKFiIiIWp2n1+sJDAysvDVq1MhECUVD1TPUB72DHWk5RZy8kKtZjqz8y11l468LpXuLvw1k1elg5EJw84O0WPhDdhoXRlRaBEvHQVEWNO0JA/6ndSIhjMbqCqK62rhxI/7+/rRt25aJEydy8eLFqx5fVFREdnZ2lZuwbc6O9nRvoRbS209e/f+PKb24Ipa0nCLCfN2YPrTtvw/wCIAxn4POTu3W2PeV+UOKhmn1/yA5Blx8YOxisHfUOpEQRmMTBdGwYcP48ssvWbduHW+88QabNm3ipptuoqys+tlCc+fOxcvLq/IWEhJixsTCUvVpqW6HEa1RQbTmSCq/7EvCTgcL7ojE2dH+ygeG9r381/sf0yH5oPlCiobp8M+wu3w16ts/Aa+m2uYRwsgsoiCaOXPmvwY9//N27NixOj//XXfdxa233kpERASjRo1ixYoV7N69m40bN1Z7zqxZs8jKyqq8nT17ts6vLxqOikUPo09dxGAw7ziizPxinl2mdpVNuCGMrs2u0e17/VRoPUTdAPbHB6AwywwpRYN0IQ5++496/4Zp0HqwtnmEMAGLWN9/2rRpjBs37qrHhIWFGe31wsLC8PX1JT4+noEDB17xGL1ej16vN9prioYhookXbk72ZOaXcDQlmw7BXmZ77Rd+i+VCThEt/dyYMrjNtU+ws1NnAH3cDy4lwM+PwN3fg101rUpCXEl+Bnx7JxTnQvProb9s3CoaJosoiPz8/PDz8zPb6507d46LFy8SFBRkttcUDYOjvR1dmzdiy4l09p25ZLaCaNXhFJbHnMdOB2/e0bn6rrJ/cvWBO76AxTfBib9gzWwY+qppw4qGo6xEHUR9KUFdb+iOL8DeIn5tCGF0FtFlVhuJiYnExMSQmJhIWVkZMTExxMTEkJt7edZPeHg4y5YtAyA3N5cZM2awY8cOTp8+zbp16xg5ciStWrVi6NChWl2GsGJdQrwB2H820yyvl5FXzHPL1a6yx/q1pHP569dYk64w6iP1fvQHsO9L4wYUDdfqZyFhEzi5q62Lbr5aJxLCZKyu1J89ezZffPFF5eddunQBYMOGDfTv3x+AuLg4srLU8RL29vYcPHiQL774gszMTIKDgxkyZAgvv/yydImJOulSPnYnxkwF0exfD5OeW0ybAHeeGtS6bk/S8XZIPw4b58KKqeDTElpcZ9ygomHZ83n5iuc6dRB1QAetEwlhUjpF6xXmrER2djZeXl5kZWXh6SmrstqyjLxiur68BoADs4fg5Wq6qcd/HErmiW/2YW+nY9kTfejU1LvuT6Yo8NNDELtMnTY9/i/wrWOBJRq2uFXw/T2glMGNz0Pf6VonEqLOavr72+q6zITQmo+bEyE+LgDEJptu5lZ6bhHPLT8MwMR+LetXDEH5oo0fQnBXKMiAr26H7OT6BxUNy9nd6rghpUzdtPWGaVonEsIspCASog7CA9W/Mo4l55jsNWb/epiMvGLCAz14cmAr4zypkyvcu1TtMstKhK9HQ0GmcZ5bWL/0E/DtHVBaoC7ZcMu7aiEthA2QgkiIOmgX6AFAXIppCqIVB8/zx6EUHOx0LBgbid7BiFPl3Xzh/mXgHqhu7/Hd3VBSYLznF9YpO1ltNSzIgCbdYOwSWYla2BQpiISog/Cg8haiFONv6XIhp4jny7vKnhjQio5NTDC1v1FzuO9n0HtC4na1i6S02PivI6xDbhp8eavaaujTEu75EZzctE4lhFlJQSREHYRXtBCl5lBmxBWrFUXhueWHuJRfQrsgTyYPMFJX2ZUEdlSnUjs4w/FV6oDrshLTvZ6wTHkX4cuR6ixEz6Zq66FMrxc2SAoiIeqgeWM3nOztKCwxcD7TeN1Nvx04z+rYVBzsdLw5NhInBxO/RVtcB3d9C/Z6OLYCfnpYiiJbkp8BX42EtCPgEQQP/qa2Hgphg6QgEqIO7O10NC2faXbmYr5RnjMtu5DZv8YC8J+BrWkfbKblHVoNLC+KnODob+oWH2Wl5nltoZ38DPjqNkg5BG7+8ODv0Lil1qmE0IwURELUUXMfVwDOZOTV+7kUReHZZYfJKiihYxNPJvY38y+m1oPgzq/BzhGOLIelD0JJoXkzCPPJSYHFwyE5Blwbqy1DsiaVsHFSEAlRR80bq4NOE43QQrQ8Jom1R1NxtFdnlTnaa/DWbDNULYoqus++HQtFpltWQGjk0hn4fBhcOKp2k437A/zbaZ1KCM1JQSREHTWraCGqZ0GUml3InPKusqcGtalc40gTbYfBfT+pe1clbFYH2+ZnaJdHGNeF4+pGv5cSwLs5PPQn+IdrnUoIiyAFkRB11LxxRZdZ3QsiRVGY9cshsgtL6dTUi8f6hhkrXt2F9lXHk7j4QNJetTXh0mmtU4n6Or0NPhsM2Ung2xYeXgU+oVqnEsJiSEEkRB1VFESJF/Oo65aAP+09x/pjaTjZ27FgbCQOWnSVXUmTrmrrgUcwpMfBp4Pg3B6tU4m6OrgUvhoFhZnQpDs89Ad4BmudSgiLYiE/fYWwPsHe6iyzvOIycotqPysrOauAl1YcAWDK4Da0CfAwar568w+HCesgMALyLsCSERC7XOtUojYUBTYvgF8egbJiaHcLjFsh6wwJcQVSEAlRR65ODng4OwCQml1Uq3MVRWHmz4fIKSwlMsSbCTdYaNeFZzA8tApaD4XSQnX22cY3wGDQOpm4luI8+Hk8rH9Z/TxqMoz9EhxdtM0lhIWSgkiIegjwdAbUNYRq48c9Z9l0/AJODna8ObaT5XSVXYneHe7+Dno9rn6+8TX4/m7ZFNaSZSTAZ0Pg8M9g5wAj3oShr4KdBf8/E0Jj8u4Qoh4CPPUApObUvCBKyizglRVHAZg+pA2t/C2sq+xK7Ozhpjdg5EJ1Wv7xVfBJf3VRP2FZTqxVvzephy8vuNjjEa1TCWHxpCASoh783NWC6EJOzbrM1K6yg+QUldK1mTfjr7eAWWW10eU+GP8XeDdTp25/Ohj2faWOVRHaKi2Gv56Db0ZfHjz92CZo3kfrZEJYBSmIhKgHb1cnADLza7b/13e7zrLlRDp6Bzvmj43E3k5nynimEdwZHt0ELQdCaQH8Nhl+vF/WK9LSxZPqlPrt76uf93hEZpIJUUtSEAlRD43KC6JLNSiIzl3K59WV6qyyGUPb0tLP3aTZTMrVB+5dCoNeUMeoHP0dPuoDJzdoncy2KIraQrfoBnUbDpdG6r50I94EB73W6YSwKlIQCVEP3q6OAGTmF1/1OINB4emfDpJXXEaPFo146DoLnVVWG3b2cP0UeGQtNG4NOcnqWjd/zJAtP8whMxG+Hq220JXkQYsbYOJ2CB+hdTIhrJIURELUQ0VBdOkaBdE3uxLZfvIizo52zB9jpV1l1QnuAo9thu7j1c93fQILe0Hcn9rmaqgMBtj1f/BhFJxcpw5yH/QiPPCrdJEJUQ9SEAlRD41qMIbobEY+c/9QZ5U9MyycFr5uZslmVk6ucPNbcP9yaNRC3R7iu7vgxwchO1nrdA1H8gFYPAz+mA7FudAsSm0Vuv4ptcVOCFFnUhAJUQ9eLmoLUXbBlQsig0Fhxk8HyC8uo2eoDw9GtTBjOg20HAATo+G6p0BnD0eWw/vd1NWSSwq0Tme98tLht//Ax/3g7E51893hC9Sd6n1baZ1OiAZBCiIh6sHFSf2rvKCk7Ipf/2rHGXacysDF0Z4FYyKxa0hdZdVxcoXBL8KjG6FpD3V8y/qX4YMe6kKBMkW/5kqLIPpDeK8r7PsCUKDjGJi0C3pOkIUWhTAieTcJUQ/ODmpBVFjy760szlzM4/U/jwEwa3g4zco3g7UZQZ1g/Bq4/VPwbAJZZ+Gnh+H/boQTa6QwupqyEtj7hVoIrZ4FRVkQEKFuuDvmM/BqonVCIRocB60DCGHNnJ3UvykKS8tQFAWdTm0BMhgUZiw9SEFJGVFhjbmvV3MtY2pHp4NOY9WZT9EfwNa34fw++GaM2nrUfxa0vFE9TqiF0OFfYNPrkHFKfcwjCPo9A10fkHFCQpiQFERC1IOzo/oLSlGguMyAvrzFaMn20+w6nYGrkz3zxnSyja6yq3FyhX5PQ7dxsO1d2P0pnNsNX98OTbpB7yeg/Uiwd9Q6qTaKcmHfl7DjQ7UlDcDVF26YCt0flg1ZhTADKYiEqIeKLjOAwmK1IEpIz2PearWr7Nnh7QjxsbGusqtx91c3Ge3zH9j2Duz5HJL2qruyr5mjjovp9qC6wKAtuHQa9i5R/x0Ks9THXH2h90R1M129FS/eKYSVkYJIiHpwtNdhb6ejzKBQWFqGu8GBGUsPUFhi4PpWvtzbq5nWES2TRwAMmwvXT4U9n6ktRtnnYO0c2DgX2t2i7pvWom/DGzhcWgxxK9UxQqf+trK3T0voMxki75YWISE0IAWREPWg0+lwdrAjr7iMwpIyFm9LYM+ZS7jrHXh9dETlmCJRDXc/6D9TnaZ/+CfYsQhSD8GhperNqxl0ukPtTguMsN6xRmWlcGYbxC6Do79B/sXLXwsboO491nZ4wyv+hLAiUhAJUU/OjvbkFZcRez6b+avjAPjfiHY0bSRdZTXm6Ky2CHW+F87vh/1fw6GfICsRtixQb41aqC1H4Ter444sfbxRUS6c3gIn/lL3esu7cPlr7oHq9Xa9X70uIYTmdIpiPXNfT58+zcsvv8z69etJSUkhODiY++67j//97384OTlVe15hYSHTpk3j+++/p6ioiKFDh/Lhhx8SEBBQ49fOzs7Gy8uLrKwsPD09jXE5ooG47vX1JGUW4OvuRHpuMTe09uXLh3tK61B9lRTAsZVqq0r8WigtvPw1Jw9ocb26EGSLG8CvrfYzsEoK4HwMnN0B8esgcQcY/rZgp0sjtaDrcJvaFWgvf48KYQ41/f1tVe/IY8eOYTAY+Pjjj2nVqhWHDx9mwoQJ5OXlsWDBgmrPmzJlCitXrmTp0qV4eXkxefJkbr/9drZt22bG9KKhcnZUuznSc4vx0DvwxuhOUgwZg6MLRIxRb8V56tpFR3+Dk+uh4BIc/1O9gbpyc3AXaNIVgjqrBZJPS7XlyRQKs+FCHFw4Cqmx6oy55INVCyAA7+bQapDaHRbWz/JbtYSwYVbVQnQl8+fP56OPPuLUqVNX/HpWVhZ+fn58++23jBkzBlALq3bt2hEdHU3v3r1r9DrSQiSqM+K9LcSezwZg3uhO3NEjRONEDZzBACkH1QHJJzfAuT3qatj/ogPvZtC4JXgEg0egenP3VwsoJ3dwcrs8gFkxqOsnGEqgKEed9VWYrRZf2UnqLeucust8dtKVs7n5Q0hPCO2rFkI+YdY77kmIBqJBthBdSVZWFj4+PtV+fe/evZSUlDBo0KDKx8LDw2nWrNlVC6KioiKKiooqP8/OzjZeaNGguDmpb6P+bf0Y272pxmlsgJ0dBHdWb9dPAUOZ2lpzfp9aHKXGQnqcWtBknlFvpuAeCP7h4NdOHdMU0kNtEZICSAirZNUFUXx8PO+///5Vu8tSUlJwcnLC29u7yuMBAQGkpKRUe97cuXN58cUXjRVVNGCP3BCKn6eeOTe3l64yLdjZQ0B79dblPvUxRVE3RE0/DpcSICel/JasPl6cp+4WX5wLJYVqEaPTgc5O3ZTW2RP0nupHZ2/wDFa3H/FqAl4h4NvadtZKEsJGWERBNHPmTN54442rHnP06FHCw8MrP09KSmLYsGGMHTuWCRMmGD3TrFmzmDp1auXn2dnZhIRIV4j4tyEdAhnSIVDrGOLvdDp1Sr+7H7S4Tus0QggrYBEF0bRp0xg3btxVjwkLC6u8f/78eQYMGECfPn345JNPrnpeYGAgxcXFZGZmVmklSk1NJTCw+l9ier0evV5fo/xCCCGEsG4WURD5+fnh5+dXo2OTkpIYMGAA3bp1Y/HixdhdYyGzbt264ejoyLp16xg9ejQAcXFxJCYmEhUVVe/sQgghhLB+VrUsalJSEv3796dZs2YsWLCACxcukJKSUmUsUFJSEuHh4ezatQsALy8vxo8fz9SpU9mwYQN79+7loYceIioqqsYzzIQQQgjRsFlEC1FNrVmzhvj4eOLj42natOpsnorVA0pKSoiLiyM/P7/ya2+//TZ2dnaMHj26ysKMQgghhBDQANYhMhdZh0gIIYSwPjX9/W1VXWZCCCGEEKYgBZEQQgghbJ4UREIIIYSweVIQCSGEEMLmSUEkhBBCCJsnBZEQQgghbJ4UREIIIYSweVIQCSGEEMLmSUEkhBBCCJtnVVt3aKliQe/s7GyNkwghhBCipip+b19rYw4piGooJycHgJCQEI2TCCGEEKK2cnJy8PLyqvbrspdZDRkMBs6fP4+Hhwc6nc5oz5udnU1ISAhnz55tsHukNfRrbOjXBw3/GuX6rF9Dv0a5vrpTFIWcnByCg4Oxs6t+pJC0ENWQnZ0dTZs2Ndnze3p6Nsj/5H/X0K+xoV8fNPxrlOuzfg39GuX66uZqLUMVZFC1EEIIIWyeFERCCCGEsHlSEGlMr9czZ84c9Hq91lFMpqFfY0O/Pmj41yjXZ/0a+jXK9ZmeDKoWQgghhM2TFiIhhBBC2DwpiIQQQghh86QgEkIIIYTNk4JICCGEEDZPCiIzO336NOPHjyc0NBQXFxdatmzJnDlzKC4uvup5hYWFTJo0icaNG+Pu7s7o0aNJTU01U+raefXVV+nTpw+urq54e3vX6Jxx48ah0+mq3IYNG2baoPVQl2tUFIXZs2cTFBSEi4sLgwYN4sSJE6YNWkcZGRnce++9eHp64u3tzfjx48nNzb3qOf379//X9/Dxxx83U+JrW7hwIS1atMDZ2ZlevXqxa9euqx6/dOlSwsPDcXZ2JiIigj/++MNMSeumNte3ZMmSf32vnJ2dzZi2djZv3swtt9xCcHAwOp2O5cuXX/OcjRs30rVrV/R6Pa1atWLJkiUmz1kftb3GjRs3/ut7qNPpSElJMU/gWpg7dy49evTAw8MDf39/Ro0aRVxc3DXPM/d7UAoiMzt27BgGg4GPP/6Y2NhY3n77bRYtWsSzzz571fOmTJnC77//ztKlS9m0aRPnz5/n9ttvN1Pq2ikuLmbs2LFMnDixVucNGzaM5OTkytt3331nooT1V5drnDdvHu+99x6LFi1i586duLm5MXToUAoLC02YtG7uvfdeYmNjWbNmDStWrGDz5s08+uij1zxvwoQJVb6H8+bNM0Paa/vhhx+YOnUqc+bMYd++fURGRjJ06FDS0tKuePz27du5++67GT9+PPv372fUqFGMGjWKw4cPmzl5zdT2+kBdEfjv36szZ86YMXHt5OXlERkZycKFC2t0fEJCAiNGjGDAgAHExMTw1FNP8cgjj7B69WoTJ6272l5jhbi4uCrfR39/fxMlrLtNmzYxadIkduzYwZo1aygpKWHIkCHk5eVVe44m70FFaG7evHlKaGhotV/PzMxUHB0dlaVLl1Y+dvToUQVQoqOjzRGxThYvXqx4eXnV6NgHH3xQGTlypEnzmEJNr9FgMCiBgYHK/PnzKx/LzMxU9Hq98t1335kwYe0dOXJEAZTdu3dXPvbnn38qOp1OSUpKqva8fv36Kf/973/NkLD2evbsqUyaNKny87KyMiU4OFiZO3fuFY+/4447lBEjRlR5rFevXspjjz1m0px1Vdvrq81709IAyrJly656zNNPP6106NChymN33nmnMnToUBMmM56aXOOGDRsUQLl06ZJZMhlTWlqaAiibNm2q9hgt3oPSQmQBsrKy8PHxqfbre/fupaSkhEGDBlU+Fh4eTrNmzYiOjjZHRLPYuHEj/v7+tG3blokTJ3Lx4kWtIxlNQkICKSkpVb6HXl5e9OrVy+K+h9HR0Xh7e9O9e/fKxwYNGoSdnR07d+686rnffPMNvr6+dOzYkVmzZpGfn2/quNdUXFzM3r17q/zb29nZMWjQoGr/7aOjo6scDzB06FCL+15B3a4PIDc3l+bNmxMSEsLIkSOJjY01R1yzsKbvX3117tyZoKAgBg8ezLZt27SOUyNZWVkAV/29p8X3UDZ31Vh8fDzvv/8+CxYsqPaYlJQUnJyc/jVWJSAgwCL7i+ti2LBh3H777YSGhnLy5EmeffZZbrrpJqKjo7G3t9c6Xr1VfJ8CAgKqPG6J38OUlJR/Nbs7ODjg4+Nz1az33HMPzZs3Jzg4mIMHD/LMM88QFxfHL7/8YurIV5Wenk5ZWdkV/+2PHTt2xXNSUlKs4nsFdbu+tm3b8vnnn9OpUyeysrJYsGABffr0ITY21qSbWJtLdd+/7OxsCgoKcHFx0SiZ8QQFBbFo0SK6d+9OUVERn376Kf3792fnzp107dpV63jVMhgMPPXUU1x33XV07Nix2uO0eA9KC5GRzJw584oD3P5+++cPp6SkJIYNG8bYsWOZMGGCRslrpi7XVxt33XUXt956KxEREYwaNYoVK1awe/duNm7caLyLuAZTX6PWTH19jz76KEOHDiUiIoJ7772XL7/8kmXLlnHy5EkjXoUwhqioKB544AE6d+5Mv379+OWXX/Dz8+Pjjz/WOpqoobZt2/LYY4/RrVs3+vTpw+eff06fPn14++23tY52VZMmTeLw4cN8//33Wkf5F2khMpJp06Yxbty4qx4TFhZWef/8+fMMGDCAPn368Mknn1z1vMDAQIqLi8nMzKzSSpSamkpgYGB9YtdYba+vvsLCwvD19SU+Pp6BAwca7XmvxpTXWPF9Sk1NJSgoqPLx1NRUOnfuXKfnrK2aXl9gYOC/BuOWlpaSkZFRq/9vvXr1AtRW0JYtW9Y6r7H4+vpib2//r1mZV3v/BAYG1up4LdXl+v7J0dGRLl26EB8fb4qIZlfd98/T07NBtA5Vp2fPnmzdulXrGNWaPHly5SSNa7VEavEelILISPz8/PDz86vRsUlJSQwYMIBu3bqxePFi7Oyu3lDXrVs3HB0dWbduHaNHjwbUmQWJiYlERUXVO3tN1Ob6jOHcuXNcvHixSvFgaqa8xtDQUAIDA1m3bl1lAZSdnc3OnTtrPRuvrmp6fVFRUWRmZrJ37166desGwPr16zEYDJVFTk3ExMQAmPV7eCVOTk5069aNdevWMWrUKEBttl+3bh2TJ0++4jlRUVGsW7eOp556qvKxNWvWmO39Vht1ub5/Kisr49ChQwwfPtyESc0nKirqX1O0LfX7Z0wxMTGav9+uRFEUnnzySZYtW8bGjRsJDQ295jmavAdNNlxbXNG5c+eUVq1aKQMHDlTOnTunJCcnV97+fkzbtm2VnTt3Vj72+OOPK82aNVPWr1+v7NmzR4mKilKioqK0uIRrOnPmjLJ//37lxRdfVNzd3ZX9+/cr+/fvV3JyciqPadu2rfLLL78oiqIoOTk5yvTp05Xo6GglISFBWbt2rdK1a1eldevWSmFhoVaXcVW1vUZFUZTXX39d8fb2Vn799Vfl4MGDysiRI5XQ0FCloKBAi0u4qmHDhildunRRdu7cqWzdulVp3bq1cvfdd1d+/Z//R+Pj45WXXnpJ2bNnj5KQkKD8+uuvSlhYmNK3b1+tLqGK77//XtHr9cqSJUuUI0eOKI8++qji7e2tpKSkKIqiKPfff78yc+bMyuO3bdumODg4KAsWLFCOHj2qzJkzR3F0dFQOHTqk1SVcVW2v78UXX1RWr16tnDx5Utm7d69y1113Kc7OzkpsbKxWl3BVOTk5le8xQHnrrbeU/fv3K2fOnFEURVFmzpyp3H///ZXHnzp1SnF1dVVmzJihHD16VFm4cKFib2+vrFq1SqtLuKbaXuPbb7+tLF++XDlx4oRy6NAh5b///a9iZ2enrF27VqtLqNbEiRMVLy8vZePGjVV+5+Xn51ceYwnvQSmIzGzx4sUKcMVbhYSEBAVQNmzYUPlYQUGB8sQTTyiNGjVSXF1dldtuu61KEWVJHnzwwSte39+vB1AWL16sKIqi5OfnK0OGDFH8/PwUR0dHpXnz5sqECRMqf5hbotpeo6KoU++ff/55JSAgQNHr9crAgQOVuLg484evgYsXLyp333234u7urnh6eioPPfRQlWLvn/9HExMTlb59+yo+Pj6KXq9XWrVqpcyYMUPJysrS6Ar+7f3331eaNWumODk5KT179lR27NhR+bV+/fopDz74YJXjf/zxR6VNmzaKk5OT0qFDB2XlypVmTlw7tbm+p556qvLYgIAAZfjw4cq+ffs0SF0zFVPM/3mruKYHH3xQ6dev37/O6dy5s+Lk5KSEhYVVeS9aotpe4xtvvKG0bNlScXZ2Vnx8fJT+/fsr69ev1yb8NVT3O+/v3xNLeA/qysMKIYQQQtgsmWUmhBBCCJsnBZEQQgghbJ4UREIIIYSweVIQCSGEEMLmSUEkhBBCCJsnBZEQQgghbJ4UREIIIYSweVIQCSGEEMLmSUEkhBBCCJsnBZEQQgghbJ4UREIIIYSweVIQCSFs0sSJE7n++uuv+LWmTZvy+uuvmzmREEJLDloHEEIIc4uNjeWTTz5hy5YtV/x6u3btiImJMW8oIYSmpIVICGFz5s+fT48ePejTp88Vv+7j40NKSoqZUwkhtCQFkRDCppSWlvLLL78wevToyscee+wxPvvss8rPc3JycHFx0SKeEEIjUhAJIWzKyZMnycnJISIiAgCDwcDSpUvx8PCoPObgwYO0b99eq4hCCA1IQSSEsCmZmZkAuLu7A7B69WouXbqEs7MzADt27CApKYnbbrtNq4hCCA3IoGohhE1p3rw5Op2O7777Djc3N6ZPn86IESP49ddfCQkJ4fHHH2fQoEHVzkATQjRMOkVRFK1DCCGEOc2dO5fXX38dFxcXXnvtNbp168bIkSNJT0/nlltu4cMPP6RRo0ZaxxRCmJEUREIIIYSweTKGSAghhBA2TwoiIYQQQtg8KYiEEEIIYfOkIBJCCCGEzZOCSAghhBA2TwoiIYQQQtg8KYiEEEIIYfOkIBJCCCGEzZOCSAghhBA2TwoiIYQQQtg8KYiEEEIIYfP+H1t7jd3XWk1uAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "with HDFArchive(\"my_archive.h5\",'r') as A:\n", " # show the contents of the archive\n", " print(A)\n", " \n", " # read the number from B\n", " print(\"Number = \", A['number'])\n", " \n", " # read the Green's function\n", " G = A['G']\n", " \n", "from triqs.plot.mpl_interface import oplot\n", "%matplotlib inline\n", "oplot(G, name = 'G')" ] } ], "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.11.5" }, "latex_envs": { "LaTeX_envs_menu_present": true, "autocomplete": true, "bibliofile": "biblio.bib", "cite_by": "apalike", "current_citInitial": 1, "eqLabelWithNumbers": true, "eqNumInitial": 1, "hotkeys": { "equation": "Ctrl-E", "itemize": "Ctrl-I" }, "labels_anchors": false, "latex_user_defs": false, "report_style_numbering": false, "user_envs_cfg": false }, "widgets": { "state": {}, "version": "1.1.1" } }, "nbformat": 4, "nbformat_minor": 4 }