{ "cells": [ { "cell_type": "markdown", "id": "6ae409d4", "metadata": {}, "source": [ "# Masking of Data\n", "\n", "After an experiment has been performed, there are usually some parts of the data that contain noise or background. Whether these parts are spurious signals or well established background does not play an important role. In order to mask them out, a set of masks have been created, covering masks in 1D, 2D and 3D. Due to the ambiguity in defining e.g. a box in 3D, it is advantageous to generate a mask for then to plot it in an axes. This can be done either in 2D or 3D as needed, but notice that 1D masks are not possible to plot.\n", "\n", "The following masks are available:\n", "\n", "| Mask | Dimensionality | Description |\n", "|---------------|:--------------:|---------------------------------------------|\n", "| lineMask | 1D | Mask relative to two values |\n", "| indexMask | 1D | Mask relative to two indices |\n", "| circleMask | 2D | Mask values inside or outside a circle |\n", "| rectangleMask | 2D | Mask values inside or outside a rectangle |\n", "| boxMask | 3D | Mask values inside or outside a box |\n", "| curratAxeMask | N/A | Mask out Currat-Axe for specified HKL point |\n", "\n" ] }, { "cell_type": "markdown", "id": "e26599ff", "metadata": {}, "source": [ "When a mask is generated, one can specify the coordinates in which the masking is to take place. Usually, this is going to be the $H$, $K$, $L$, and $E$ axis of the data, but others are also supported. This also means that plotting the mask on to of the data provides some difficulty. This is the reason behind the “transformation” argument of the plot method. It takes a function as input which converts between the chosen coordinates and the plotted ones; an example will be shown below.\n", "\n", "Most often, masking is to be performed in many coordinates that might depend on each other. This could be masking Bragg peaks, where the position is known in ($H$, $K$, $L$) but only for a limited energy range. This means that masks are to be merged either using a boolean “and” or “or” command.\n", "\n", "Commands to combine masks:\n", "\n", "- * AND, requires both masks to be true for region to be masked\n", "- + OR, requires either masks to be true for region to be masked\n", "- - OR NOT, requires first mask to be true or second mask to be false to mask region\n", "\n", "In principle one can also utilize / AND NOT but experience has shown that it leads to more confusion. When wanting to negate a mask, insted reverse the parameter maskInside. These algebraic operators also have a given order of operation making it easier to construct more complicated mask combinations but the most efficient way is with the use of parentheses. \n", " \n" ] }, { "cell_type": "markdown", "id": "bb701ec8", "metadata": {}, "source": [ "Combining any two masks generates a multiMask object that simply wraps the two masks together. It has both a plotting and a calling method taking care of the needed addition of multiple masks. In order to apply the mask to the data set one has to calculate the boolean matrix for that data set by calling the mask with the data set as argument." ] }, { "cell_type": "code", "execution_count": 1, "id": "5da2e52a", "metadata": { "execution": { "iopub.execute_input": "2023-07-25T11:37:38.487963Z", "iopub.status.busy": "2023-07-25T11:37:38.487963Z", "iopub.status.idle": "2023-07-25T11:37:42.984141Z", "shell.execute_reply": "2023-07-25T11:37:42.983203Z" } }, "outputs": [], "source": [ "%matplotlib inline\n", "from MJOLNIR.Data import DataSet,Mask\n", "from MJOLNIR import _tools # Usefull tools useful across MJOLNIR\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "plt.rcParams['figure.figsize'] = [18, 12]\n", "plt.rcParams['figure.dpi'] = 200\n", "\n", "numbers = '494-500' # String of data numbers\n", "fileList = _tools.fileListGenerator(numbers,r'C:\\Users\\lass_j\\Documents\\CAMEA2018',2018) # Create file list from 2018 in specified folder\n", "\n", "ds = DataSet.DataSet(fileList)\n", "ds.convertDataFile()" ] }, { "cell_type": "markdown", "id": "ec54065b", "metadata": {}, "source": [ "Below, 3 masks are generated, combined, and made to act on the dataset" ] }, { "cell_type": "code", "execution_count": 2, "id": "39091455", "metadata": { "execution": { "iopub.execute_input": "2023-07-25T11:37:42.987088Z", "iopub.status.busy": "2023-07-25T11:37:42.986120Z", "iopub.status.idle": "2023-07-25T11:37:43.314452Z", "shell.execute_reply": "2023-07-25T11:37:43.313470Z" } }, "outputs": [], "source": [ "# Define circular mask at -1 0 0 in hkl with radius 0.25\n", "circle = Mask.circleMask(center=[-1,0],radiusPoint=[-1.25,0],coordinates=['h','l']) # only provide h,l\n", "\n", "\n", "# The circle mask is only to be on when energy is between 3.0 meV and 4.0 meV\n", "lowEnergy = Mask.lineMask(start=3.0,end=4.0,coordinates='energy')\n", "\n", "# Mask dispersion above -1 0 1 with a rectangle\n", "corner1 = np.array([-1.5,1.0]) # in h,l (k= any value)\n", "corner2 = np.array([-1.1,0.65]) # in h,l\n", "corner3 = np.array([-0.5,0.9]) # in h,l\n", "\n", "# Three corners are provided in order to specify also the rotation of the rectangle. If\n", "# only two corners are provided, it is assumed that the rectangle axes are along the main axes.\n", "# In this case, this would be (H,0) and (0,L)\n", "\n", "rectangle = Mask.rectangleMask(corner1,corner2,corner3,coordinates=['h','l'])\n", "# but only for energies not between 3.0 and 4.0, which is achieved by negating lowEnergy\n", "\n", "# the total mask then becomes\n", "mask = circle*lowEnergy+rectangle*lowEnergy.bar()\n", "\n", "# Calculate the mask for the current data set\n", "evaluatedMask = mask(ds)\n" ] }, { "cell_type": "code", "execution_count": 3, "id": "d15a693c", "metadata": { "execution": { "iopub.execute_input": "2023-07-25T11:37:43.317184Z", "iopub.status.busy": "2023-07-25T11:37:43.316181Z", "iopub.status.idle": "2023-07-25T11:37:43.329495Z", "shell.execute_reply": "2023-07-25T11:37:43.328826Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "circle: \n", "lowEnergy: \n", "rectangle: \n", "mask: \n" ] } ], "source": [ "print(f'circle: {type(circle)}')\n", "print(f'lowEnergy: {type(circle)}')\n", "print(f'rectangle: {type(rectangle)}')\n", "print(f'mask: {type(mask)}')" ] }, { "cell_type": "markdown", "id": "f42b74f2", "metadata": {}, "source": [ "As can be seen, the three masks have the expected type while the combined mask is of the type MultiMask signifying that it is a combination of masks. \n", "Calling any mask with a DataSet returns a list of masking arrays; one for each DataFile and having the same shape as the intensity of the DataFile. " ] }, { "cell_type": "code", "execution_count": 4, "id": "62d81ec1", "metadata": { "execution": { "iopub.execute_input": "2023-07-25T11:37:43.332530Z", "iopub.status.busy": "2023-07-25T11:37:43.331529Z", "iopub.status.idle": "2023-07-25T11:37:43.344514Z", "shell.execute_reply": "2023-07-25T11:37:43.344411Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Shapes of the masks are:\t [(101, 104, 64), (101, 104, 64), (41, 104, 64), (41, 104, 64), (11, 104, 64), (141, 104, 64), (141, 104, 64)]\n", "Shapes of the I are:\t\t [(101, 104, 64), (101, 104, 64), (41, 104, 64), (41, 104, 64), (11, 104, 64), (141, 104, 64), (141, 104, 64)]\n" ] } ], "source": [ "print('Shapes of the masks are:\\t',[m.shape for m in evaluatedMask])\n", "print('Shapes of the I are:\\t\\t',[df.I.shape for df in ds])" ] }, { "cell_type": "markdown", "id": "23b7a37a", "metadata": {}, "source": [ "Despite having called the mask on the DataSet nothing has been masked yet. The mask is applied to the DataSet by assigning it to the mask property" ] }, { "cell_type": "code", "execution_count": 5, "id": "c5f2b145", "metadata": { "execution": { "iopub.execute_input": "2023-07-25T11:37:43.347514Z", "iopub.status.busy": "2023-07-25T11:37:43.347514Z", "iopub.status.idle": "2023-07-25T11:37:43.360433Z", "shell.execute_reply": "2023-07-25T11:37:43.359737Z" } }, "outputs": [], "source": [ "# Apply the mask\n", "ds.mask = evaluatedMask\n" ] }, { "cell_type": "markdown", "id": "5063b638", "metadata": {}, "source": [ "In order to plot the masks, a 3D view is created. This is not specifically needed but for the current example is a way to show all of the masks in action" ] }, { "cell_type": "code", "execution_count": 6, "id": "d277d4f4", "metadata": { "execution": { "iopub.execute_input": "2023-07-25T11:37:43.362477Z", "iopub.status.busy": "2023-07-25T11:37:43.362477Z", "iopub.status.idle": "2023-07-25T11:37:45.035789Z", "shell.execute_reply": "2023-07-25T11:37:45.035789Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "C:\\Anaconda\\envs\\python39\\lib\\site-packages\\MJOLNIR\\Data\\Mask.py:342: UserWarning: It is not possible to plot a 1D masks.\n", " warnings.warn('It is not possible to plot a 1D masks.')#raise NotImplementedError('It is not possible to plot a 1D masks.')\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "# Generate a 3d viewer\n", "view = ds.View3D(0.05,0.05,0.05)\n", "# it is started in the hkl plane, where we can also plot our masks.\n", "# However, the transformation used by view3D is from qx,qy to hkl, so the inverse\n", "# is to be provided. This is stored in\n", "trans = view.ax.sample.inv_tr\n", "\n", "mask.plot(view.ax,transformation=trans,zorder=20)\n", "\n", "# tune the colorbar\n", "view.caxis=(1e-8,5e-6)\n", "\n", "view.Energy_slider.set_val(10)\n", "view.ax.get_figure().set_size_inches(16,12)\n" ] }, { "cell_type": "markdown", "id": "7255e59f", "metadata": {}, "source": [ "As seen above, the data within the blue mask are masked out. This is because the energy transfer is within the lowEnergy mask but data within the orange rectangle are present. Changing the energy to be outside the lowEnergy mask enables the orange mask:" ] }, { "cell_type": "code", "execution_count": 7, "id": "363c1d4f", "metadata": { "execution": { "iopub.execute_input": "2023-07-25T11:37:45.038706Z", "iopub.status.busy": "2023-07-25T11:37:45.038706Z", "iopub.status.idle": "2023-07-25T11:37:45.312631Z", "shell.execute_reply": "2023-07-25T11:37:45.311736Z" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA/wAAALhCAYAAADinq8KAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/av/WaAAAACXBIWXMAAAsTAAALEwEAmpwYAAB170lEQVR4nOzdd5xcZ3X4/8/Zrt67bMuWe0E2KG44ICAuEMDGYEgIJmBA1IQvKRAICRBIAgnlFxIMKLaBQAhg04sbGGFcQTbGxk2WC7aq1evWmef3x65hrbkr7Uqze2fvfN6v17y888wzd85cj6Q9c57n3EgpIUmSJEmSiqUh7wAkSZIkSVL1mfBLkiRJklRAJvySJEmSJBWQCb8kSZIkSQVkwi9JkiRJUgGZ8EuSJEmSVEAm/JIkSZJGrYg4LSKWH+Bz3xsRt0bEHRHxhiqHJuXOhF+SJEnSqBQR7wYuA9oO4LlLgDOBZwPPBQ6pZmxSLTDhlyRJkjRaPQxc+NSdiDgpIn4aEcsj4psRMWkfzz0XuAf4NvB94AfDG6o08iKllHcMkiRJknRAImIB8LWU0ukRcRtwSUrpvr4l+kcAPwc+vtfT/h54MXBY338PB74HHJtMkFQgTXkHIEmSJElVchxwaUQANAMPpZSuAa7Ze2JEnAE8kFLqAh6MiA5gBvDkCMYrDSuX9EuSJEkqigeB16aUlgDvZt/L9G8Czotec4FxwObhD1EaOVb4JUmSJBXFW4H/iYgmIAEDdt5PKf0gIp4D/ILeQujbU0qlkQlTGhnu4ZckSZKkIYiIO4EdfXcfTSm9Ps94pIFY4ZckSZKkQYqINnoLp0vyjkXaH/fwS5IkSdLgLQLGRsR1EXFDRJyed0DSQFzSL0mSJCl35z5vXNq8pTa20N9xd+e9QEe/oWUppWUAEXEScDpwGXAUcDVwTEqpZ8QDlfbDJf2SJEmScrd5S4lfXHto3mEA0DjnoY6U0uIBHl4JrEq9ldOVEbEZmAM8MWIBSoNkwi9JkiQpdwkoU847jMG4BDgJeFvf5fwmAuvyDUnKZsIvSZIkSYN3OfDFiLiJ3u8pLnE5v2qVCb8kSZKkGpAopdqv8KeUuoBX5x2HNBh26ZckSZIkqYBM+CVJkiRJKiCX9EuSJEnKXW/TPi8ZLlWTFX5JkiRJkgrICr8kSZKkmjBKLssnjRpW+CVJkiRJKiAr/JIkSZJyl0iUknv4pWqywi9JkiRJUgGZ8EuSJEmSVEAu6ZckSZJUE7wsn1RdVvglSZIkSSogK/ySJEmScpeAkhV+qapM+KWDMH369LRgwYK8wxgxGzduZMaMGXmHUdM8R4Pjedo/z9H+Heg5uuOOOzallDy5kqTCM+GXDsKCBQtYsWJF3mGMmMWLF9fV+z0QnqPB8Tztn+do/w70HEXEb4chHElV4B5+qbrcwy9JkiRJUgGZ8EsatKVLl+YdQs3zHA2O52n/PEf75zmSJGnfIiWXzUgHavHixcklt5I0ukTEHSmlxXnHIenpFi1qSdf+aHreYQAwZ/46/55QIVjhlyRJkiSpgGzaJ0mSJKkmlPMOQCoYK/ySJEmSJBWQFX5JkiRJuUskSl6WT6oqK/ySJEmSJBWQCb/qRkScFhHLB3jszohY3nf7QkQ0RMTnIuLWvrEjRzhcSZIkSTooLulXXYiIdwMXA7szHmuj9xKVS/qNXQi0pZTOiIjTgU8A549QuJIkSfUnQckV/VJVWeFXvXgYuHCAxxYBYyPiuoi4oS/BPwu4BiCldBvgdVglSZIkjSpW+FUXUkrfjIgFAzy8B/g4cBlwFHA18FNge785pYhoSin19H/ixo0bWbz4998FLF26lKVLl1YzdElSFSxbtoxly5Y9dXd6nrFIypbwsnxStZnwS7ASWJVSSsDKiNgMNAIT+s1p2DvZB5gxYwYrVqwYoTAlSQeq/xeyEbEp53AkSRoRLumX4BJ69+gTEXOBifQu539R39jpwD25RSdJkiRJB8AKv+pSREwFLkspXQhcDnwxIm6idzXZJcBtwPMi4hYggNfnFqwkSVJdCEpE3kFIhWLCr7qRUnoMOL3v5y30NfFLKXUBr854yltGLDhJkiRJqjITfkmSJEm5S0DZy/JJVeUefkmSJEmSCsgKvyRJkqSa4B5+qbqs8EuSJEmSVEAm/JIkSZIkFZBL+iVJkiTlLuGSfqnarPBL0lOSrYElSZJUHCb8kgRwz1Xw8aNgzZ15RyJJUt0qp6iJm1QUJvyS1L4Nrn4P7N4I3/hz2LMl74gkSZKkg2bCL0nL/xX2bIYXfwp2roNvvQnKpbyjkiSprjy1h78WblJRmPBLqm/rfwO/WAaLL+m9vfCjsOrHcOO/5x2ZJEmSdFBM+CXVr5TgR38LbZPh+e/vHVv8BnjGn8Dyj8JDP841PEmSJOlgeFk+SfXrnqvg8VvgJf8BY6f2jkX0Lu3f8Bv45hvgzTfClMPyjVOSpDqQCErWI6Wq8k+UpPrUuROuez/MPQVOufjpj7WMhVf+D6QyfOO10N2RT4ySJEnSQTDhl1SffvZvsGs9vOjj0NBY+fi0hfCyz8G6u+Dqd494eJIk1aO8L8fnZflUNCb8kurPxpVw26Vwymtg/uKB5x37x3DWu+DOL8GvvjJy8UmSJElV4B5+SfUlJbj6b6F5HLzgg/uf/7z3w5o74Id/DbNPgjmLhj1ESZLq0VOX5ZNUPVb4JdWX+78PjyyH5/89jJ+x//mNTfDyK2DMVPj6xdC+ddhDlCRJkqrBhF9S/ejaA9e+D2ad2Hv5vcEaPwNe+SXYsRa+9WYol4cvRkmSJKlKTPgl1Y+bPgnbn4AX/Xtv5X4oDjkVzv0XeOha+Pknhic+SZLqWlBKDTVxk4rCT7Ok+rD5Ybj5P+CkV8JhZx7YMU59E5x0Efz0n2HVT6obnyRJklRlJvyS6sO174PGFjj7nw78GBHwkv+AGcfCN98I256oXnySJNW5BJRpqImbVBR+miUV34PXwMpr4LnvgYlzDu5YLePgVV+BUjd847XQ01mdGCVJkqQqM+GXVGzdHXDN38H0o+G0t1TnmNOPhAsuhbV39h5bkiRJqkFD7FolSaPMrf8JWx+Fi78DTS3VO+7xL4Uz/xJu+TTMPxVO/tPqHVuSpDpVIvIOQSoUK/ySimvb43DjJ+D482Hh86p//Bd8AA47C37w/2D9PdU/viRJknQQTPglFde1f9/733P+eXiO39gEr7gC2ibD1y+G9m3D8zqSJNWBlLwsn1RtfpolFdPDN8D934Pn/DVMPmT4XmfCLHjll2D7E/Cdt0K5PHyvJUmSJA2BCb+k4unpgqvfA1MOhzP+Yvhf79DT4ZyPwIM/gps/NfyvJ0lSQZWJmrhJRWHCL6l4bv8cbFoJL/wYNLeNzGue9hY44UK44SPwyPKReU1JkiRpH0z4JRXLjnXws4/B0efB0eeO3OtGwEv/E6YdBVe9AbavGbnXliRJyklELI6Iq/KOQ9lM+CUVy/X/CKVuOO9fR/61W8fDq74CPR1w5Z/3bi2QJEmDkoASDTVx0+CllFaklF6RdxzK5qdZUnE8djPc8w149jth6hH5xDDjaDj/M7D6l3Dt+/KJQZIkqQoiYklE3BoR34yIByLizoh4SURcHxGPR8Sn+ub8pm/+FyPi0xHx04hYFRE/iIjxeb+PahjkuWiIiP+IiNsj4r6IuD8int03/pOI+Le+Y/1RRKyOiFnDHXfTcL+AJI2IUg/86G9h0iFw1rvyjeWEC2D1O+DW/4JDToVnvDLfeCRJGhXCS+LVpj8A/iCl9KuIuBp4L7AEmAisBX651/xnAc8HysDtwEXAF0Ys2uG1v3NxFTAXOCOlVI6IvwP+LqX0koh4DfCriLgZ+C/g1SmlDcMdsAm/pGJYcTk8eS+88svQMjbvaOCPPghr7oDvvxNmnQizjs87IkmSpAPxaErpV30/PwxsTyl1AZsiYgcwda/516SUOgEi4p6Mx0ez/Z2L7cD7gTdHxEJ6vwzYCZBSWhcRbwK+C3wgpXTjSATsV2iSRr9dG+GGf4YjngfHvSTvaHo1NsNFX4TWCfD110DH9rwjkiSppiWgTENN3PQ0nXvd797P/PZ+Pyco1HUO93cuXgD8sO/n7wKf4+nv/wRgA3DqsESXwU+zpNHvJx+E7t3wwn/r7ZZfKybM7k36tz4G33kbpJR3RJIkSRo+LwG+n1L6LL1bHS4AGgEi4lTgncBiYHJEvHMkAjLhlzS6rV4Bv/oKnP623oZ5teawM+Hsf4IHfgC3fDrvaCRJkjR8/h/w3Ii4G7iV3mX/h0fEJOD/gL9IKa0BXgf8Y0ScMtwBRbLiJB2wxYsXpxUrVuQdRv0ql+C/nw+7NsA7ftm7fL4WpdR7mb77vw+v/R4c/od5R6RhcPQ3P1wxNrYt+9KMPzr58szx2Y2VjYy/vHN65txPrXxB5vic/7f3akO4+qF/y5xbryLijpTS4rzjkPR0R540Nv3bd47JOwwAXn7kXf49oUKwwi9p9Lrzf2DdXXDOR2o32YfebQbnfwamLoSrXg871uYdkSRJkuqACb+k0WnPFvjJh+CwZ8OJL887mv1rnQCv+gp07YErXwc92ZVfSZLqVSIo0VATN6ko/DRLGp1u+Ah07Ki9Rn37MvNYeOmn4Ynb4fp/zDsaSZIkFVxT3gFI0pCtvQtWXAGnvRlmn5h3NENz0itg9S/h9s/C/MW99yVJEgDlZD1Sqib/REkaXcpl+NHfwrjpsOS9eUdzYM7+MBxyGnzvL+HJB/KORpIkSQVlhV/S6HL312H1L+D8S2HM5LyjOTBNLXDRF+Hzz4GvvwbedAO0Tcw7qpp3dsNFB3+QyP6eOxoqt4U0zp+bOXfDeYdkjpcPr+ywv2N+e+bcM3/0rszxcQ9X/rPcccqezLkvWLgyc/zHH6rscH3uKR/InFu+e4AvnFI5e3yYXF++ckRfT5KkemGFX9Lo0bG9d+/7/D+ARX+adzQHZ+JceMUXYMvD8L139F66T5KkOpYg92Z9Nu1T0VjhV92IiNOAj6WUluw13gxcASwAWoGPpJS+FxF3Ajv6pj2aUnr9CIarLMs/Crs3wp99AxoK8I/x4X8IL/gA/PgDcOtn4Mx35B2RJEmSDsDy5csXNjQ0/BXwmnK5PKGhoWEn8JVyufzJJUuWPJxXXCb8qgsR8W7gYmB3xsOvATanlC6OiKnAXRFxHRB7fzmgHG24D27/PDzrdTD3lLyjqZ5nv7O3id/1/9j7vhY8O++IJEnKRSIopVFy5R2pn+XLl7+woaHhqnnz5jXPnTu3ubW1lc7Ozolr165905o1a163fPnyVyxZsuTqPGIrQIlMGpSHgQsHeOxK4B/6fg6gB1gEjI2I6yLihog4PeuJGzduZPHixb+7LVu2rOqBi97l7le/u3ef+wsKdjm7CLjgUpiyAK56Pexcn3dEUiEtW7bsd39XA9PzjkeSVAx9lf2rFi1aNHbhwoXNY8aMoaGhgTFjxrBw4cLmRYsWjW1oaLhq+fLlC/OIzwq/6kJK6ZsRsWCAx3YBRMQE4Crg/cAe4OPAZcBRwNURcUxKqaf/c2fMmMGKFSuGM3QB3PsteOzn8MefhLFT846m+tomwau+Ape9AK58Hfz596GxOe+opEJZunQpS5cuBSAiNuUcjiSpIBoaGv5q3rx5zZMmTcp8fNKkScybN695zZo17wJGfP+mCb8ERMQhwLeBS1NKX42IVmBVSikBKyNiMzAHeCLPOOtS5y649v0wZ1Hvcv6imnU8vOQ/4Ftvgh9/EM7957wjqqqqdNivhoG6z59yUsXQ4y+YkDm1e/GuzPGJ11V26Z/12QHyyj3Z3fvLuyp3HZXbs+c+1tiYOX7ks3oqxhZ98b7Mucs/eUbm+OSv/qJiLJVKmXMlqZrKLkDW6POauXPn7rNSM3fu3OY1a9ZcjAm/NPIiYhZwHfCOlNJP+oYvAU4C3hYRc4GJwLqcQqxvP/847FwLr/wSNGQnOIXxjFfCE7+AW/8L5i+GE16Wd0SSJKkO/OY3vxnxywWdeOKJNd+wYcHf/XC/5+UL546jtbV1n3NaW1splcoT93e8xz76x1U/Jyb8qkt9zfkuSyldCLwPmAL8Q0Q8tZf/fOCzEXETvVeJuWTv5fwaAZseglv+C07+Mzjk1LyjGRnn/gusuwu++w6YeQLMODrviCRJGhEpQSlZ4dfo0pWCzs5OxowZM+Cczs5OOnNqSOmfKNWNlNJjKaXT+37e0pfsk1J6Z0ppdkppSb/b9pTSq1NKZ6WU/jCldEu+0dehpxr1NY+BP/pg3tGMnKYWuOhL0NQKX39N75YGSZIk1aRb1nTz+Oo1+5zz2yfWcMua7hGK6OlM+CXVpgd+CA/fAM97H4yfmXc0I2vSPHjFFbD5IfjeX/R++SFJUuEF5Rq5SYP1o0e6eHz1WrZv3575+Pbt23lizVqufqRrhCPr5ZJ+SbWnux2ueS/MPB7+4E15R5OPI5bA898PP/mn3u0Mp791RF52SM31YoDvjLMa4w1l7jBqOir7ijiPvKSyQV/ngs7MubO+My5zfMrV91eM9WzN/sd/QEM4HwM20fvFPRVDv3722MypL/vFjzPHb7z5hIqxnkcfHyCQwcd8ffnKQc+VJGk02Nie+PQde/hLfs0h8+Zy2CHzaG1tpbOzk98+sYYn1qzl03fsYWN7PgUcE35Jteem/w+2Pw6v+yE01vFfU89+F6xeAde9H+aeAoeenndEkiRJ2ss9m0q878ZdvPCIxzhz9RpaI9GZglvWdHP1I125Jftgwi+p1mx5FG76FJz4ClhwVt7R5KuhAS74LCxbAle+Dt58Y/1tb5Ak1Y2ETfs0em1sT/zPvZ38z73ZKwTz4p8oSbXl2vdBQxOc8+G8I6kNYybDq74M7dvgqkug5MUiJEmSNDgm/JJqx8rr4MEfwXPfDRPn5h1N7Zh9Erz4U/DYz+EnH8o7GkmShk2Jhpq4SUXhp1lSbejphGveA9OOhNPflnc0tefkP4XFl8Atn4b7vpd3NJIkSRoF3MMvqTbc+l+w5RF4zbd6r0WvSud9FNbeBd95W+8VDKYfOainDanzfpZqdNgfaO4wdvpvnFDZeX/D82cNcIzKoUOvasycOua6X2WOlzo7so9dA8p79mSOL3/WtMzxV/361oqxr514aObc1DOyV1qQVFyJoJy8JJ5UTVb4JeVv+2q48eNw7IvhyBfkHU3tamqFV/4PNDbDNy6Grt15RyRJkqQaZsIvKX/Xvb+3Snvuv+QdSe2bfAi8/DJ48n74/jsh5XeZF0mSJNU2l/RLytcjP4N7vw3P+3uYclje0YwOR76g93z99CNwyGlw6pvyjkiSpKqwYZ5UXf6JkpSfUjdc/W6YsgDO/Mu8oxld/vCv4ahz4Zr3whO/zDsaSZIk1SATfkn5uf3zsPGB3mZ0zW15RzO6NDTAhZ/vvXzhN14LuzbmHZEkSQclAeXUUBM3qShc0i8pHzvXw/KPwlHnwNHn5R3N6DRmCrzqy3D5OfDNS3jB156duRSydezYirGBurZnGko3/qGqQqf/aGrOHp81o2Ksc2L2ocetqxwbc+1dmXPLXV3ZBxmFBnovX/rr8yvGfvvf2ef/qEvurBwc4P/VUK4YcX35ykHPlSRJ2fz6SlI+rv8AlDp7q/vhJXgO2JxF8MefgEdv5PXzf5Z3NJIkHYSgVCM3qShM+CWNvN/eCnd/Dc78C5i2MO9oRr9TXgPP/HNeM+8Wnj3lwbyjkSRJUo0w4Zc0ssol+NHfwsT5vY3nVB0v/Dce3DWb9x7xfea1bsk7GkmSJNUAE35JI2vFFbDhHjj3n6FlXN7RFEdzGx946OWUUgMfOuqbtDZ05x2RJElDYtM+qfps2idp5OzeBDd8GA5/Lhxf2RRMB2frj1fzb6sW8eFX3Mbfjv0q//6jZwLB+jedUjF35qdvGfkAh0kqlTLHOw+bMuhjzLxpU8VYqbvngGMaNQZorjfm1ocqxsa+YW7m3Gio3Ouasv+XQAzwS3RGHENp8Ac2+ZMkKYtfX0kaOT/5EHTthhf+m436hsmKx2bxlVuO4Y9OWM0fL3os73AkSRqSvJv12bRPRWOFX9LIWH0H3PllOOPtMPPYvKMptK/ecgzHzdnKW57/G1ZtmMz6vAOSJElSLqzwSxp+5TL86G9g/Ex47nvyjqbwEsHHfvgstuxu5f3n/5LJsTvvkCRJkpQDE35Jw++ur8DaO+HsD0PbxLyjqQs7O1r48HdPZfLYTj469ps0kL1XW5KkWpFS5N6sz6Z9Kho/zZKGV/tW+PEH4dAz4BmvzDuaurJqw2Q+8+NncEbzI7y1bXne4UiSJGmEuYdf0vD66b/0Jv0v+ncb9Q2za3f/T+VgSnzvb5ewdPyN3L9jHje1Hz3ygQ2zxvHZl3fcNr+lYqw0NvsYsT1j28MAHezrQWnL1oqxsd/P7r3RMGFC5fO3bcs+8FDO6QAd/a8vfX3wx5A06pSsrktV5Z8oScNn3d3wy8vgD94Is0/KO5r6FMG/bXkRD3TO5kPTvs28pspETpIkScVkwi9peKQEP/pbGDMFnve+vKOpa52pmb/b1Lud4mMzvkFrdOcckSRJlRJQJmriJhWFCb+k4XH3N+CJ2+CPPtib9CtXa3qm8I+bX8YxLet599Qf0ftrlSRJkorMhF9S9XXsgOv/AeY9C05+Td7RqM/N7Udz+bY/5KXj7+LsZ6zNOxxJkiQNMxN+SdX3s4/Brid7G/U1+NdMLblhz/EAHDYzo0mdJEm5CkqpoSZug4o2YmZEPBER2V1NpRpgl35J1fXkA3D75+CZr+2t8Ct30757f99Pife8fDnb21u46sHFNM1srZjb8+TGg3/BrO7qw9jxPsaOyRwvtVTuwRy3JvsYadv2aoZUSE0d2dtA2p9deeWHlh/+4qBfz278kmpZRDQDnwfa845F2hcTfknVkxJc/bfQMh5e8IG8o9Felhz9BM+Yt5H/+Mmz2NVZmexLkpSnBJTTqGmY93Hgc8B78w5E2hfX2kqqnvu+A4/eCM9/P4yblnc06mdMczdvPOvXrNwwhWvvOzzvcCRJqnXTI2JFv9vSpx6IiNcBG1NK1+YXnjQ4VvglVUfXbrj272H2SbD4kryj0V5efep9TB/fzod/eCbl1OAFhyRJNalUO/XITSmlxQM8dgmQIuKPgJOB/4mIl6aU1o9YdNIgmfBLqo6ffwJ2rIFXXAENjXlHo37mT9nBy05eybX3Hs6DG1x5IUnSwUgpPeepnyNiOfAWk33VKhN+SQdv88Nwy3/CM/4EDj0972jq1tkNF2WMJj72ul/T0dPEFTef2NtnAUgzpmQfpBpN+4axQV+mcWMzh7smVY5NeqSUfYxwzcP+TLklu+PhI68/pGLs0B8NUKEb4LNxffnKA45LkiQNzIRf0sFJCa5+DzS2wtn/lHc02stZxz7JMw99kkuXn8z29ra8w5EkaUCJGE1N+wBIKS3JOwZpX2pmk4ykUWrlNbDqenjee2HCrLyjUT+tTSXecs6DPLJxEj+4e2He4UiSJGmEWeGXdOC623ur+zOOhVOX7n++RtSfnPUosyZ38NdXnk45+f2uJKn2la1HSlVlwi/pwN38adj2W3jt96CxOe9o1M/cKXt45ZmP8uO753Dv2hl5hyNJkqQcmPBLOjBbfws3fRJOeBkc8dy8o9Fe3nLuA/SUGrjsx0eBF02QJI0CKUFplO3hl2qdCb+kA3Pt+yAa4JyP5B2J9nLaURs54+hNfP76o9m8q42G1s6KOeVJ2Z3ta1oMsMyzpydzOGsXQ9OeAa4g0Jzxz+FArzfSVyEYTkN5j+0dmVO7J6aMww7wC3u4EkiSpJHkJhlJQ7fqx/DAD+A5fwuT5ucdjfppbizx1nMf4PGN4/jO7YfmHY4kSZJyZIVf0tD0dPU26pu6EM54e97RaC8XnfFb5k1t591ffhY9Zb/TlSSNLqPtsnxSrTPhlzQ0t10Km1fBn30Tmlrzjkb9zJzUzp/+4SPceN8sfvXotLzDkSRJUs5M+FU3IuI04GMppSV7jTcAlwKLgE7gjcAje4+llFaNaMC1aPsa+Nm/wTF/DEf9Ud7RaC9vPvtBAD533dE5RyJJ0tAlwsvISlVmwq+6EBHvBi4Gdmc8fAHQllI6IyJOBz4BfClj7PyRirdmXf8PUO6B8/4l70i0t4dv4DnHP8kXbjiSjTvG5B2NJEmSaoAJv+rFw8CFwJczHjsLuAYgpXRbRCzum7/3WH277bPwm2/Cc/8OpizIO5q6dk7Lq592v6mhzOfeeCONDWO48tbDKuY3jB9XMRbb92Qeu1SdEEfWmLbM4awi0e652f/sjW3KGC9SN/6BDOU9ZnyOAOb9rPIYqZT9Sbq+/LXBv54kSTpoJvyqCymlb0bEggEenghs73e/lDUWEU0ppadd/2vjxo0sXvz77wKWLl3K0qVLqxN0rbnm73r/O2dRvnGowgV/8CiHTt/N3//fKXSXGvMOR6pJy5YtY9myZU/dnZ5nLJIGVsKmfVI1mfBLsAOY0O9+Q9bY3sk+wIwZM1ixYsUwh1cj3rsaPnEcfPftMPtGmHxI3hEJmDq+g9ec9RC3PTSTXzw0I+9wpJrV/wvZiNiUcziSJI0Iu2JIcDPwIoC+/fr3DDBW31onwNKfQqkbvvFa6OnMOyIBb3r+/TQ1Jj57/fF5hyJJ0kFJ9F6WrxZuUlGY8KsuRcTUiPhW391vAx0RcQvwKeBdA4xp+lFwwWdg7Z1wzXvzjqbunXTIZl5w4lq+cdsRrNuWvb9akiRJ9csl/aobKaXHgNP7ft5CbxM/Ukpl4C0ZT8ka0/Hnw5l/Abf8JxxyKiz6k7wjqj+pTEOUefs597Jhextfv/mIfTdfmzyxYii2Z12wosYN9B7bOzKHGyo24UD3uCFUbWKA78TroZlfhu3PnJ05vv6MynO68LvDHY2kYvKyfFK1+SdK0tC94INw2Fnw/f8H63+TdzR16SXPepwjZu3kc9cfR2ePjfokSZJUyYRf0tA1NsErroC2SfD110D7trwjqiuTx3by5899iDsemcbND87KOxxJkiTVKBN+SQdmwiy46Iuw/Qn4ztugXJ/LnPNwyfNW0tpc4tLrjgcvXyRJKpAyURM3qShM+CUduMPOgLM/DA/+EG7+//KOpj6sXsF5J6/mW7cv4InN4/OORpIkSTXMpn2SDs7pb4XVv4QbPgzznglHLMk7ouIql+CHf82mna189eYj845GkqSqSglKXhJPqioTfkkHJwJe+p+w4V646g3w5hth0ry8oyqMsxtf9bufX3TKE7zrxfey7LqT2NMeQGlwB2nKaOrXWZ34RlI0DtCcsJS9nSQyuvSngfobjh1b+fyGLZlT0yBPe9FMunN95viYTVMrxq4vXznc4UiSpEFwSb+kg9c6Hl71ZejpgCv/HHq68o6ocCaM6eINz1/J3b+dwk/vzb48miRJo105NdTETSoKP82SqmPGMXD+f/Uu77/u7/OOpnBet+QhxrX18F/X2KhPkiRJg2PCL6l6TngZnP52+MUyuPsbeUdTGEfO3s6Ln/UE3/vloTz65IS8w5EkSdIo4R5+SdV19odg7Z3w/XfCrBNh1vF5RzSqBYl3nHc/23e38KWf2ahPklRciaBs0z6pqqzwS6quxma46IvQMh6+cTF07Mg7olHtj56xlhMO2cZlPzma3Z3NeYcjSZKkUcQKv6TqmzC7N+n/0kvgu2+DV365t5u/BnR2w0UVY2Nbu/ni2x/kvtWTuP7Xc4DsbvT70zNtfMVY49oNB3SsPKXSAO3xy9nnpXlP5diu+QMce0xr5Vg5DTa0urDqXydljr/8mDtGOBJJRVa2T41UVVb4JQ2PBc/uXd5///fhlv/MO5pR6bXPfZhJ47r4r6uPI/kLkCRJkobICr+k4XPGO+CJX8CPPwjzngkLzso7olFjwYydXHDqE/zojvk8tG5i3uFIkjTsEriHX6oyK/yShk8EnP8ZmHoEXPl62LEu74hGicTbX/gAuzuauOKnNuqTJEnSgTHhlzS82ibCq74MXbvgytdBqTvviGrec4/fwMkLtnLFDUeys70l73AkSZI0SrmkX9Lwm3kcvPQ/4ZtvgOv/Ec7717wjqlltzT28+ZwHWbl2Alf/aoAOcwOIxsbM8c6Jld39W/dkdLSrJZHxfXTKbs6Xdu3OHG/ZVdl0r2dC9st1za18oPmxykZ+AOWOzuyDDBBfUTz4h/+TOd4we+UIRyKpyMrJeqRUTf6JkjQyTnoFnPYWuO1S+M238o6mZv3Zcx5hxsRO/uua49zHKEmSpINihV/SyDn7w7DmTvjuO2Dm8TDz2Lwjqinzp+3m5af/lmvvmsv9qyfnHY4kSSMrhV92S1VmhV/SyGlqgVd+CVrGwjcuhs6deUdUQxJvP+8BurobuewnR+UdjCRJkgrAhF/SyJo4F15xBWxe1VvpT5X7rOvRmcdsZPHCzXxp+UK27c7eOy5JkiQNhQm/pJF3+HPgBR+A+77Tu6e/3nW389ZzH+DRDeP57i8PyTsaSZJykYAyURM3qSjcwy9p2J3dcFHlYAQfuGgmZ5T/nr/50+/wmyemAnB96esjHN3IyjoXr33uKi5+bgd//aXFB9WduPGIBZnjzbt7KsZSqXTArzMihtDxPvVUvj+AiQ9Xdu/ffML4zLkbnlW5quLQ32S39E9dXdnjNX5Kh6Jx0qS8Q5AkSVVghV9SToJ//95JrNs6hve//NdMGTfApc4KbvbkPbzq2Y9xwz2zufu3U/MOR5KkXJX7GvflfZOKwoRfUm72dDbzoatOYVxbN+9/+V00NhT7OuZZ3nrug5TKwbIfH513KJIkSSoYE35JuXrsyQl86gcn8ozDtvKG56/MO5wRdeqRGznzmI185cYj2LyzLe9wJEnKVcIKv1RtJvyScnfDb+byvV8eykVnPAb3fifvcEZEc2OZt537II9vGsu3bjss73AkSZJUQCb8kmrC564/lvtXT4Lvvh02PZR3OMPu5ac/xrxpe7j0mmPpKftXsSRJkqrPLv2SqiazG/9A9urC3t0DH75qEZe+6Va2/eNz+YvLT6Oj+/d/RV1fvrJaYeZuxsQOXv2Hj/Dz+2dyxyPTh/z8htbs5f8907M70DfdtapirEAN5Sm3t2eON63eVDHWsiP7HHXMSBVjm85bmDl3+tWVcwF6Nm6uHBzC1QbyMNBn6ZH/rlx18pKV52XO/eHsqoYkqc65nF6qLstKkmrGxh1t/Mu3nsEh03fzVy+5j97dfMXz5rMfpCHgc9cdk3cokiRJKjATfkk15VePTuNLy4/keSeu54JTH887nKo75fDNPPeEDfzfTYfz5PYxeYcjSVLNSOTfrM+mfSoaE35JNedrNx3OrQ/O4M1nr+T4+dvyDqd6St28/bwHWLtlDN+4ZUHe0UiSJKngTPgl1ZxE8LHvnMiG7W38wyt+zeRxnXmHVB23f57DZuzms9cdQ3epMe9oJEmqOWWiJm5SUdi0T9KQDak53wHa3dnMP115Mp++5Hb+/uV3Q6kHGkfXX1n9z9PU8Z1c8fabuOe307lt5cxBHyOamivGGubMyp67uytzvLRr96Bfr0jS9h0VY9Pv7s6cu+7Zled50zOzG+6NW78gc7zt5srmgQM1FEyl4WubGI2VXyZFa2vm3FX/tChzPHV3VIz98DmfPrjAJEnSiLPCL6lmPbJhAv/xw+M4ecFWuOGf8g7noLzxBStpbizz2WuPzTsUSZIk1YnRVS6TVHeuv3sex8/fzov5D5j/B3DcS/IOachOOGQrZy9ax//+/HDWbh2bdziSJNWm5GX5pGqzwi+p5l167bEw95nwnbfB5ofzDmdIGqLMX7zwfp7c3sbXbjo873AkSZJUR0z4JdW87lIDvPJ/oKEJvv4a6Bo9e9Jf/KzVLJy9i89ddzQd3S6qkiRpIAlyvxyfl+VT0ZjwSxodJh8CL78MnrwffvAuSCnviPZr0tguXve8Vdz5yFR+fn92oz1JkiRpuFhukjQqnN34KgD+7A8X8jq+zqc/eg9XP5rdYfzqjZ8bydAGvGrBu16yijEtJT5z3QlE3xUGsrruA8S4MdnjEydWjKUx2R3X06rfZgeYsrvNF11p166KsbF3PZE5d/z8IyrGNp+a3Un/sVdmv960+c+oGJt6b/ZqlKbHn8wcL2/bXjEWzQN8ZlqyxzdccHTF2J5zd2bOPXTymszx1gu2VA7+aeZUSaoqq+tSdVnhlzSqfPXnC7lt5Qzeeu79HDtrU97hDOiYuds57+TVfPsXC3hi8/i8w5EkSVIdMuGXNKokgo999xls2tHG+869mUltldcLz1uQeMcL72frrlb+96aFeYcjSZKkOmXCL2nU2dXRzD9ddTKTxnTwnnNuoSFqa8n6eaes4dh5O/jvnxzDnq7sZdeSJOnpEvk367Npn4rGhF/SqLRq/SQ+c+NiTjlkAxefek/e4fzOhLZu3vCCh7jn8cnccO/cvMORJElSHbNpn6RR67r7F3LsrM38yeL7eGDDNG5/bH7eIfHnS1Yxvq2b/7r6OMAKgSRJQ5GsrktVZcIvaZ8G6kA/4jI6zZe2beO/vr+QI6du5G9ecCvvuOJM1m4dN+KhNc2ZDcARU7fw4sWr+cF9x/J4w1E0zsr4pWVsdjf+IV1mcO2GzOHynj2DP0ad6lmf3R1/1tWNFWOtOw/JnLvhD7J/GS1ldLZf/aLsf2bbN2Yfu3HXgoqx8qzOzLkvOObBzPEfzv9sxdixl781c27Lv6zKHC+1t2eOS5Kk0cUl/Sq8iGiIiM9FxK0RsTwijtzr8df1jS+PiNsioiMiJkfEnf3Gv5BX/Nq37lIjH/7mKZRT8A8v/xWtTdmXUht+ibc9+3Z2drby5TtOzikGSZIk6fes8KseXAC0pZTOiIjTgU8A5z/1YErpi8AXASLiM8AVQAcQKaUlIxyrDsD67WP52HcX8eFXreAvzru3t1oeI7sk8PlHPsIJszfyqZ+dwe6ulhF9bUmSiqLsdjipqqzwqx6cBVwDkFK6DVicNSkiFgMnpJSWAYuAsRFxXUTc0PdFgWrYLx+ewf/+/EjOWbQG7hjZBRljm7t4w2l38MCT07l+5ZH7f4IkSZI0Aqzwqx5MBLb3u1+KiKaUUs9e894HfKjv5z3Ax4HLgKOAqyPimL2fs3HjRhYv/v33B0uXLmXp0qXVjl+D9JWfH8mx87bxB1e/B+YsgnnPGpHXffUz72bymA4+dO3zSVYmpJq0bNkyli1b9tTd6XnGIilbSnhJPKnKTPhVD3YAE/rdb9g7cY+IycAxKaWf9g2tBFallBKwMiI2A3OAJ/o/b8aMGaxYsWLYAh9JNdOcbwhS6en79RPwr986kUvfdBvx7y/ibZedyY723uX115e+ftCv98Lj3lsxdujELVx67v1cu/JoVm6dBf17vzVmLKLqyG7ARntH5nDqrJxf2m1zvgOW0fwRoLRufcXYpGt2Z86ddN+czPHNz5xSMda+YIBfXA/ryhxumVH5/3agjtW3Xrkoc/yPvzWzYmzBY7dnzi2X8up5MfL6fyEbEZtyDkeSpBHhkn7Vg5uBFwH0Lc3Pumj7c4Cf9Lt/Cb17/YmIufSuElg3vGGqGna2t/Dhq05hyvhO3vuyX9MQQ+h+P2SJtz7z5+zpbuaLK0ZmNYEkSUWWUtTETSoKE37Vg28DHRFxC/Ap4F0RMTUivtVvzjHAI/3uXw5MjoibgK8Dl2RsAVCNWrluEv91zfEsXriZi5+Tfdmxajhr/sOcPGsNX7rjWezobBu215EkSZIOhEv6VXgppTLwloyHLuw359/3ek4X8OphDk3D6Opfzef4+dt4zXMe5v41k6p+/NbGbpaecjMPb53O1Q8eXfXjS5IkSQfLhF9SQQX/efXxHDl7B++54B7Y+hhMWVC1o//J8XcwY+xuPnrrOZSTi6UkSTp4YdM+qcr8LVVSYXX1NPKhK08hSPD1i6G7vSrHnTd+Gy8/5i5+/Ogx3Lcpu4GbJEmSlDcr/FKdGY3d+IesXyf29Vvb+Nh3TuIjf/orrrloMZ/84UlPm3pd99cGf9g164HEm192C109DVx+7ULSnvWUB+i8H82Vf8Wm7uxWEHtfceD3D2R3lVd1ZZ3/0vYdmXPj3p2Z41MfaqkYmz5hfPYLxgAVrIbK7+HTnuwvqko7suPo8TMjaRSzYZ5UXVb4JRXe7Q/N4H9vWsh5J6/mvEVP7P8J+3D6Eev4g8M38OVbjmfrHhv1SZIkqXZZ4ZdUF75841EcO3cb7zjvPh7eMJGH1g+9kV9LU4k3L7mbxzZN5Pu/PmIYopQkqX4lcA+/VGVW+CXVhXIK/vU7J7Ntdwv/8PJfMaGta8jHeMXilcyZvIdLf7qIUtm/PiVJklTb/I1VUt3Y0d7Ch791ClPHd/Ce8+/ubeY3WFsf41WnPsjyB+Zz9xMzhi9ISZIkqUpM+CXVlQfXTuaz1x/PqUdu5NVnrRr8E6/9e1IKLrvxxOELTpKkepYg1chNKgr38EuqC/27sP/gl3M5fu4WLn7OKt571PNY8fD0yifE778PXbxwI//66jv4yo1HsWF9Gdg1uNfs6T7YsJWnAbrdp4EuqNBe2U2/nDEGPO3zNZjXlCRJOhBW+CXVoeA/fng8j24Yz3tfdg+zJg2QlAHNjWXefu79PLF5LN+67bARjFGSpPpTJmriJhWFCb+kutTZ08g/XXkyDQ2Jf7zo1zQ3ZpdtLzztMeZP28Ol1xxHd8m/MiVJkjR6+NurpLq1dutY/u07J3L03B287bwHKx6fPqGDP/vDh7npgZmseMRGfZIkDacEpBQ1cZOKwoRfUl27deVM/u+mw3nxs1ZzzqI1T3ts6dkP0BCJz19/bE7RSZIkSQfOpn1SgZ3dcFHeIYwKX/zpQo6dt52/fNH9PLx+Ag9vmMiiwzbxvBPW86XlC1m/tQ2wmZqqyOZ8kiRpBFjhl1T3yqmBf/nmSexob+YfL/o1k8Z28fbz7mfd1jF845YFeYcnSVKdCMqpNm5SUZjwSxKwbU8rH75yETMmdfC5pbdy+MzdfPbaY+jqacw7NEmSJOmAmPBLUp/710zm89cdw/SJnfzioencutJGfZIkjaSUauMmFYV7+CWpn+/+8hA272zlnsengNfhlSRJ0ihmwi9JTxPc9MCsvIOQJKkueUk8qbpM+KUCsBu/JEmSpL25h1+SJEmSpAKywi9JkiQpd70N81zSL1WTFX5JkiRJkgrICr8kSZKkmlC2wi9VlRV+SZIkSZIKyAq/VAQxwHd3qTyycUiSJEmqGSb8kiRJkmpCSnlHIBWLS/olSZIkSSogK/ySJEmSaoKX5ZOqywq/JEmSJEkFZIVfKgKb80mSpFEuEVb4pSqzwi9JkiRJUgGZ8EuSJEmSVEAu6ZckSZJUE7wqn1RdVvglSZIkSSogK/ySJEmS8pe8LJ9UbSb80ihzdsNFeYcgSZIkaRQw4ZckSZJUG9zEL1WVe/glSZIkSSogE35JkiRJkgrIJf2SJEmSaoJN+6TqssIvSZIkSVIBWeGXJEn7NdAVQq4vXznCkUgqsmTTPqmqrPBLkiRJ0iBFRGNEXBERN0fETRFxYt4xSQOxwi9JkiQpd4lRs4f/JQAppWdHxBLgn4Hz8wxIGogJvyRJkiQNUkrpOxHxg767hwHbcgxH2icTfhVeRDQAlwKLgE7gjSmlVXvNuRPY0Xf3UeAN+3uOJEmSCmt6RKzod39ZSmnZU3dSSj0R8SXgZcArRjw6aZBM+FUPLgDaUkpnRMTpwCfot+wqItqASCkt6Td24b6eI0mSpCpLQO0s6d+UUlq8rwkppT+PiPcAt0fE8Sml3SMUmzRoJvyqB2cB1wCklG6LiL3/8l4EjI2I6+j9M/G+QTxn2A3UEVuSJEn5iYiLgfkppX8F9gDlvptUc0z4VQ8mAtv73S9FRFNKqafv/h7g48BlwFHA1cBP9/McADZu3Mjixb//LmDp0qUsXbp0GN6CJOlgLFu2jGXLfrcad3qesUga2Ci5LN+3gC9ExI1AM/D/UkrtOcckZTLhVz3YAUzod79hr8R9JbAqpZSAlRGxGWjcz3MAmDFjBitWrNh7WJJUY/p/IRsRm3IOR9Io1rd0/5V5xyENRkPeAUgj4GbgRQB9+/Hv2evxS+jdo09EzKV3RcA1+3mOJEmSJNU0K/yqB98Gzo6IW4AAXh8RU4HLUkoXApcDX4yIm+htF3MJcBvwvP7PySd0SZKkOjI6lvRLo4YJvwovpVQG3pLx0IV9j3cBr854POs5kiRJkjQqmPBLkiRJqgFBqp3L8kmF4B5+SZIkSZIKyAq/JEmSpNrgHn6pqqzwS5IkSZJUQCb8kiRJkiQVkEv6pZyd3XBR3iFI0gHL+jvs+vKVOUQiadRL2LRPqjIr/JIkSZIkFZAVfkmSJEm1waZ9UlVZ4ZckSZIkqYCs8EuSJEmqEe7hl6rJCr8kSZIkSQVkhV8qghjgu7tUHtk4JBWWnfclSRp9TPhVMyKiZX9zUkpdIxGLJEmScmDTPqmqTPhVS7YD66jcvJX6xmYC40Y6KEmSJEkajUz4VUt+nFJ6yUAPRsT3RzIYSZIkjTAr/FJVmfCrlrw9Ig7t+zkB7SmlTU89uK8vAyRJkiRJT2fCr1ry9b3uj+/b1//alNLteQQ0aticT8pdLTe1O7vhorxDkKT9S0DysnxSNZnwq2aklM7YeywiFgJfAJ4z8hFJkiRJ0ug1wLW8pNqQUnoYd3NJkiRJ0pBZ4VdNi4hGYFLecUiSJGn4Jcs8UlWZ8KtmRMTSvYZagZcC3xn5aCRJkiRpdDPhVy2Zs9f9duBjKaUf5xGMJEmSRpgVfqmqTPhVM1JKH8oaj4hXpZT27uA/KtkpW6pNtdxhvxqK/v4kSVI2m/ZpNPjrvAOQJEmSpNHGCr9GAy/IKkmSVA+Sv/ZJ1WSFX6OBu7kkSZIkaYis8KtmRMQ6epP74PdJfgBTcwtKkiRJIyYs80hVZcKvmpFS2rtLPwAR4douSZIkSRoiE37VjIiYBLwB2Ap8KaVUjoiTgM8DZ+YanEZMNDVnjqee7hGORKOdneklaZRJuJFTqjITftWSK4EVwCnAIRGxAfgA8De5RiVJkiRJo5AJv2rJhJTS+/qW8D8IPAacnFJ6Mt+wJEmSJGn0MeFXLekASCmliGgHXppS6sg5JkmSJI2I8LJ8UpV5WT7Vkv67tjab7EuSJEnSgbPCr1ryrIi4hd5L8R3f7+eUUrJpX50YSnO+hjFjso/R1VU5ViodcExVFQN8z5rKIxtHgdicT5IKxKZ9UlWZ8KuWPCPvACRJkiSpKEz4VUs+n1I6b6AHI+KafT0uSZKkUc4Kv1RVJvyqJc+PiLUDPBbAlJEMRpIkSZJGMxN+1YyUUkveMUiSJElSUZjwS5IkSaoNLumXqsqEX9KoVW5vzzuEXnbeHxF245ckSRoaE35JkiRJ+UtAiryjkAplgLKUJEmSJEkazazwq2ZExE+B1r2HgZRSOjOHkCRJkjSCwj38UlWZ8KuW/B3w38DLgJ6cY5EkSZKkUc2EXzUjpXR7RHwZeEZK6dt5xyNJkiRJo5kJv2pKSunf846hGs6b+Pq8Q9BeGsaOzRx/7N0nZ47POHNdxVipnN325MktEzPHn3fkyoqxQ9u2ZM79yneelzl++EdWVIyVu7oy5xaJHfklqU65pF+qKhN+FV5ENACXAouATuCNKaVV/R5vBq4AFtDbQ+AjKaXvRcSdwI6+aY+mlMziJUmSJI0aJvyqBxcAbSmlMyLidOATwPn9Hn8NsDmldHFETAXuiojrgEgpLRnxaCVJkiSpCkz4VQ/OAq4BSCndFhGL93r8SuCqvp+D3oaBi4CxfYl/E/C+lNJtIxSvalxKUGpvo3vneLp3jaO8YzypuxnKjb1LESNBU4l7t01k3ISdjJ+4nUnTNtPc0p136JIkSaojJvyqeRFxDtCVUlp+gIeYCGzvd78UEU0ppR6AlNKuvteZQG/i/35gD/Bx4DLgKODqiDjmqec8ZePGjSxe/PvvD5YuXcrSpUsPMEzVspSgc8skOjZOp3PTVEqdbb0PRBmaeqClGxp7+i4kGdDdxOb1s1n32OFPHYGJU7ay+ZBHWHj4Q0ycsGOgl5I0DJYtW8ayZcueujs9z1gkSRopJvwaDU4B7o2I+Sml1Qfw/B3AhH73G/ZO3CPiEODbwKUppa9GRCuwKqWUgJURsRmYAzzR/3kzZsxgxYrKpmql3XsyA2loaakYq4cGbCNt90WnV45dvC1z7pzPZFfd2z6+EYBScxPbTjiCbSccQfek8URXN2N/u46xj66hbd1GWjZto6FUzg4kGii1tdA5Ywrth8xmz4I5/GrLs/jV3YsZs+ZJptz5IOMfWUMAY9+QfYhX3f3birGvveaczLlpxT3ZB6lhNufTSOn/hWxEbMo5HEkDCJv2SVVlwq+aFBENKaUyQErpYwd5uJuBlwDf6NvD/7SsKCJmAdcB70gp/aRv+BLgJOBtETGX3lUClW3bVVjlpka2LDqKLYuOptzWwtg1TzL1xjsY/9DjNPSUBn2cxo4uxj6xgbFPbGDaLb+mNHUyO449jO0nLmTtS/6Qls3bmX7L3b07AYbv7UiSJKkOmfCrZkTEEcAngcVAT193/XuAd6WUKq9vNnjfBs6OiFvozale39ec77KU0oXA+4ApwD9ExD/0Ped84LMRcRO9u7Iv2XtVgIopAXsmTmD1n5xDz8RxjH90LdNW3M+YjVsp7dp10Mdv3rWHaSvuZ+odD7DzqEPYfNoJrH3JH9LUs5sxnU/SmNznL0mqY8mvv6VqMuFXLbkMeG9K6fanBvoq8l8Ann2gB+1bKfCWjIcu7Hv8ncA7Mx5/9YG+pkanUkMDW+bPZfeUSbRu3s7c7yxn7NrhWfkbKTFx5eNMWPUE2048ko1LTmbn2MMY07WJlu5tVvslSZJ00Ez4VUva+if78Luu+nnFozrSOWYMTy6YT6m5mcnrNjDruzcR5eHfSBjlxJS7H6Lj1MnsaZ1Fe+tMuhvHMrZjPQ0M0BtAkqQiSn03SVVjwq9a8uuIuILeS+htp7fR3ouAu3ONSoW3a/IkNh0yl6buHuasepTWPe0jkuz315BKjOtYS1fTJNpbZ7Jr7KGMa187ojFIkiSpWEz4VUveBlwAnEVvk7wdwA/o3YM/qjSOG5s5HvNmV4ylVY9mzk2lwTeGq1c9f7Q4c3zteZXn7rj/15E598npTWxedAJjnljPnO/8lMb2TgCqcvZTZYW+3Jkdx4xLb/ndz+1zZ7Duguexu3EOl//VK2jb9fSrPhz6mYcyj7HmL5+RHcbtfmcmSZJUj0z4VTP6LoH3bUZhgq/RJwEbTziczccdxoT7HmbWj24myrWxhH7M2o0c8r8/Ys0rz2HtcUcw+8HHGLvj4BsGSpJU81zSL1VVQ94BSFIeNh2/gM3HHcbEX69k1g9vqplk/ynN23cx/6tX09zZxfpjFtAxPnvViCRJkjQQE35JdWfLEXPZdPwCJj22jpnX3kKk2iwnNO1uZ879j9DU1cO6Y4+gc2xb3iFJkjSsItXGTSoKE37VvIg4JyKW5B2HimHn7KlsOOUoxq/dxJw7Vtb85e+aunuYc//DRKnE+mMOp6fJnViSJEkaHBN+jQanAOMjYn7egWh06xw/hrWnHU/rtl3Mu/2+mq3s7625q5s5Kx+j1NTEhqMXUC7X+tcUkiQdoFQjN6kgLBWpJkVEQ0q9Lc5TSh/LO56hKu3KbrDWuGZ95dj0adnH2LQ5c7xeu/c3jK3cw/7on2Ynvse9/4mKsa6NG1n92hcT3T3M+fo1lHfsHhVXuW+48VcAjAFmPbqW9S9dwl2f+UOmP76uYu6mv2/PPMbcN86oGOt5cmNV49yf68tXjujrSZIkyQq/akhEHBER34mI1cAjEfF4RPwwIo7OOzaNfpuWLKZr+hRmff9nNO/YnXc4B2TCA48x6c772T53JrsnT8g7HEmSJNU4E37VksuAf00pzU8pLUgpHQp8GPhCznFplNs1dzrbn3kck3/5G8b9trIyPppMX76Clt3tbDziEEqNjXmHI0lSdeW9lN8l/SoYE37VkraU0u39B1JKt+UVjIqh1NTIutNPoGXjVqb1LY8fzRp6Ssx8+HFKzU1sPmxu3uFIkiSphrmHX7Xk1xFxBXANsB2YALwIuDvXqDSqbVp0FD3jxjD/2zfQUJD+B617Opi89km2zZvF+E1bGbsju2eEJEmjiZfEk6rPhF+15G3ABcBZwERgB/AD4Ns5xlRVWc38miZm78VunDolc7xn46aqxjRa7DrvpIqxoz+/J3Nuz7re5oid0yez5dhDmXjXg4xZO7JN6oZT4813M73pXnb/+UvYPHMa46+5tfeKAyefljl/y9mVn6WJX81uCkk6+FaGNuiTJEmqDSb8qhkppURvcl+YBF/52vTcxTR0dTP9xjvyDqXqGnpKTL/xTta99LlsP+lIJt/9UN4hSZJ08JKXnpWqyT38kgppz6Gz2bNwPlNvu5vGjq68wxkW4x96nDFPbGDzs0+m3OT3t5IkSXo6E35JhZOAzWedQtOOXUy644G8wxk2AUy/6VeUxrax7WSvXilJkqSnM+GXVDjth8ymY/4sptz+m8I06hvImLUbGfvYWrYuPp6EyyAlSaNc3pfj87J8KhgTfkmFs+WMZ9C4q52J99THvvZpt91NadwYuhon5R2KJEmSaoibPqWclTdld0tvmD4te7ylpfIYXcXZo944IfuqBVuPbawYm3D9YxVjnVMn0r7kWUz72R009IxMdT8aK2MDSENZXRADfP+a0TV/7+O2Pb6e1rUbKU2cwOyfrqqo8z9+/vSKY0ydkf356nmyOFczkCSNPl6WT6ouK/ySCmXrCUcQPSUm3b0y71BG1OQ77qN7/Bh2z5ycdyiSJEmqESb8kgqj1NzEjqMPZfz9j9LY3pl3OCNqwoO/pbGji22Hzc47FEmSJNUIE35JhbHziHmUW5qZ9OsH8w5lxEW5zKTVG9k1cwo9Lc15hyNJ0oHJu1mfTftUMCb8kgpjx9GH0rxtF21r63Mf+qQnnoSGYMf8yj37kiRJqj8m/JIKoXvcGPbMm8Gkhx6v24vTte5qp23bLnbMNeGXJI1CqbdpXy3cpKKwS780DBrGjMkcL3dU7isfqMN+dHRkH7wp449tgbr0c9jczOHmnZVjpV27f/fzjqMOgQjG/XqAZn1D6II/VKlchd8MBoojK+4B5qbHnmD8tHFsOnMRXZs207xrDwDllsovAMpzZmS/3saMq0YM8HrR5NYBSZKkWmaFX1Ih7DrqEJo3b6Nl6468Q8nVhIdXA7DriHk5RyJJ0gHIe+++e/hVMCb8kka9Umsz7fNnMX7V6rxDyV3Ltl20bN7OriOyV0pIkiSpfpjwSxr12g+dA40NjHvYhB9g3OPraZ8zg3JjY96hSJIkKUcm/JJGvT2Hzia6umlbtynvUGrCuMfXk5oaabd5nyRptMl7Kb9L+lUwNu2TDsKUOw/n7IaLBv+EgRrHZU2dMD57vLmyUVp5z57Bx1Djdi+cnDk+85e7Kwf7msm1HzqbMas3EKWegQ9cheZ8w9n4b0BDOPZTTSFbH1kNpRK750xnzEOPM3lV5W8uexZMyDzG2Psr/1kYqLFk6ukedGySJEkaeSb8kka10phWuqZPZsJvVuUdSs1o6CnRtmEL7XMH6MQvSVKN8pJ4UnW5pF/SqNYxu3fZusv5n65t7UY6Z08jNUTeoUiSJCknJvySRrWOOdMhJdo2mPD317Z2E6m5ic7pU/IORZIkSTkx4Zc0qnXOnk7L5u00dO1j/34dan1yCwBdMybnG4gkSZJyY8IvaVTrmjaJlo1b8w6j5jRv2wmlEl3TJucdiiRJknJi0z4pbwN1fu/ruF6hIWN+Ht3jh0nnpOz3Mv7ByisRdDU10j15AhPufXi4w+o1is5npETLlh10TZvExC07Kh4vtw7wmWlsHPRrXF++8kDDkyQpm037pKqywi9p1OqaOgkiaNm8Le9QalLL5u10TZuUdxiSJEnKiQm/pFGrZ+J4AJq37co5ktrUsnk73ZMnkMJO/ZKkUSD1XpavFm5SUZjwSxq1eiaMBaBp5+6cI6lNTTt3QwSlJndvSZIk1SN/C5Q0avVMGAelEo17OvIOpSY17WoHoNTcRFN3d87RSJI0CFbXpaqywi9p1OqZMJamXe24YD1b4+6+hN8KvyRJUl3yt0BpJA2hy3t5Z/a+9GhpqVY0uYqm5szxNNDXkJsrL73Xc/IRtb2cf6CrJ2SpxhUA9jpG066+c9MTtGzvetpjHTPbMg8RQ+jSL0mSpNpmwi9p1Cq3ttC0s/JyferVuKcDymVKLdlfrkiSVHNc0i9VlUv6JY1a5eYmwr3pA4qUiJ4S5Qb/qpckSapHVvgljVrl5iYaunvyDqOmNXT3kBrtciBJqn2Bl8STqs2yjwovIhoi4nMRcWtELI+II/f3+P6eo9qQmptp6DLh35colSgPpZeAJEmSCsMKv+rBBUBbSumMiDgd+ARw/n4e/9J+njPshtI8LRqyK7ipVK1oqi+VsoPrHjtANTpjWXrvkv4aTvir0YhvCLI+M9FThgii++mxRGmAEor7/SVJkgrDso/qwVnANQAppduAxYN4fH/PUS0IILn2b1+6p05k56ypeYchSdLgpBq5SQVhwq96MBHY3u9+KSKa9vX4IJ6jGhClMjT615ik/Vu2bBmLFy9m8eLFANPzjkeSpJFgAqN6sAOY0O9+Q0qpZ1+PD+I5qgFRLpNM+PepZdM2WsqWKqSlS5eydOlSACJiU87hSMqSbNonVZu/Kase3Ay8CKBvP/49g3h8f89RLSiVSV5ybp/KLc00DNAvQZIkScVmhV/14NvA2RFxC727vl8fEVOBy1JKF2Y9DqzMGFONscK/f+WWJhq2j2zzQEmSDpgVfqmqTPhVeCmlMvCWjIcu3M/jWWM1KdXDku3Wloqhhu4eyi2V4/Vq789BYuAK/5CWTHpZP0mSpFHJ3+IkjVqNu9spjW3NO4yalZqboKGBhh6X9EuSJNUjK/ySRq3GPR10T5mYdxg1q9zSDOAefknS6FEHixalkWSFX9Ko1bing9LYtrzDqFk9E8YC0NTRnXMkkiQVR0Q0R8SXI+LnEfGLiHhp3jFJA7HCL2nUatrTTmlMKymCSJYE9tY9cTwAzZ1dOUciSdLgjJLL8r0G2JxSurivEfRdwPfyDUnKZsIvadRq2rkHGhroGT+W5p278w6n5vRMHAdAU4cJvyRJVXQlcFXfzwH05BiLtE8m/NIIisbGirGBOuzHAN3ney8qUHGQg4qrlkx8YoB/M8dULt1v3roDgK6pE034gYa9PjM9UybS0NlFQwOklqd/9pp2Z5/nyOrIX6DPlySpxtVOhX96RKzod39ZSmkZQEppF0BETKA38X9/DvFJg2LCL2nUatmyHYDuqZPgt+tyjqb2dE8c17sKQpIkDdWmlNLigR6MiEOAbwOXppS+OnJhSUNjwi9p1Grc1U50ddM1dVLeodSkrqmTaHtyS95hSJJUKBExC7gOeEdK6Sd5xyPti136JY1aAbRs3k73VC/Nt7dycxPdk8fTsnl73qFIkjQ4qYZu+/Y+YArwDxGxvO825iDfvTQsrPBLGtVaNm1jzxHzSPR+AaBenX1fgrRu2gZTJuQbjCRJBZJSeifwzrzjkAbDhF86CFuf+SgrVqyoGD+78VWZ81OpVDEWTc2Zc8t7Bth7PUCTv1FngEZwDZ3Z453zK5ftN65soG39ZnaedCQ9Eyf8vnFf1rGzmtHtI44RV434Gn9/jI650wFo27ydriOmVUxt2ZrduT91Db6j/9kNF2WOX1++ctDHkCSpv1FyWT5p1HBJv6RRrW3dJgA65lQmtfWsfdY0mnbtoWmXTfskSZLqlQm/pFGtdeNWoruHjnkz8w6lpnTMnkbb+s1uc5AkjS55790f3B5+adQw4Zc0qkW5TNvajew5dHbeodSM7vFj6Z40njHrNucdiiRJknJkwi9p1Bv7+Hq6Zk6lNKY171Bqwu5DZgEw7on1OUciSZKkPJnwSxr1xjy+DoA9h83JOZLasOeQWTTubqdly468Q5EkaUgi1cZNKgq79EvDYQid1VNPd+Z445TKrvQA5V27Dyik0WLMw9nL0DedVblkf3LfeW5bu5HG3e3sWjifCfc/kn3ganTjH85O/0M4RjQ2Zo43TBhPimD3YbOZ8MSTNE4YD0A5Y3rjrs4B4vC3HEmSpKIw4Zc06kVKjHt4NbuOPozUEERRLl14AHbPnka5tYUJj7ucX5I0CtXvP+HSsHBJv6RCGLfqccptLew5tL6X9e88bBbR3cO4tZvyDkWSJEk5M+GXVAhjH11LQ0cnO48/Iu9QcpMi2HnobMav2UhDqQrbDCRJkjSqmfBLKoSGUonxDz7GrqMPo9xcn7uVds2fQWlMK5MeXpN3KJIkDV2qoZtUECb8kgpj4r2PkFqa2XX0YXmHkottR86nsb2T8Ws25h2KJEmSakB9lsGkvGR0eW8cNzZzamrvyB7v7qlqSLUmbd2WPd5Y2aW/6bBDnnZ/PNCyYzfbTjmWifc+PLgXHKjzfmYQAyyTr8YxhiBaWyvGuseNYdf8WUxe8ySlBU8/V017Ml6zu5R57HJ7+0HHJ0nSgYi+m6TqscIvqTACmLJqNZ1zZ9Axe1re4YyobScthIDJ62zWJ0mSpF4m/JIKZdJj64iubrY96/i8Qxkx5cZGtp+wkHGbt9Pc0ZV3OJIkHbi89+67h18FY8IvqVAau0tMuutBdh53OF2TJ+QdzojYfvzhlMa0Mtm9+5IkSerHhF9S4Uz55b1EObH1tBPzDmXYlRsa2PKsYxmzZiNjtu/KOxxJkiTVEJv2ScNhgCZumQ36Ghsz56au7KXZ0VDZzqZIK89KW7Zmjk94vLtibMez5mbOHX/1Jibd9wjbTjyKab9eRcv2XQM3o6tCE72qHGMAkfH5aJg65Xc/bztqPj3jxzL39vvpOCS7AWTzrsoGfbFlW+bcVMpu5jcUZzdcVDF2ffnKgz6uJKn4oki/1Eg1wAq/pEKa9sv7iFKJTWeclHcow6bU3MSmkxYydsNWxm7Yknc4kiRJqjEm/JIKqWlPB1N/9SA7jzqU9oJ27N90wuGUWpuZeeeDXsZIklQMeTfrs2mfCsaEX1JhTf3VgzTt2sOG5y0mZWyFGM06J45j6zGHMunRdYzZujPvcCRJklSDTPglFVZDdw8zf3YnndMnF+oyfQlYd+pxRE+JmXc9lHc4kiRVT96VfSv8KhgTfkmFNv6RNYx/ZA2bzzqFrqmT8g6nKrYeNZ/2mVOYdeeDNHVkN3eUJEmS7NIvDYOG5uw/WtHaOuhjlHfvyRxPPZXd6utB268erRjb8upjsueedtzT7k/bvp32OdNZ/5Lnctg3fkyUf99Vv9zZUd1A92eAKzhkdeMHaJw982n3OyaN48lnHcOY7Ttpa0l0HjP7d4/1jM0+9viHt1eMlXe4DUCSJKnorPBLKrym7h5m/fgXdM6aysZnPyPvcA5YubGBtc9+Bg2lEjMeW22jPklSsaTey/LVwk0qChN+SXVhwiNrmPzrlWx95rHsOPrQvMMZsgSsO+14OiePZ8Zjq2nq6ck7JEmSJNU4l/RLqhszb7yLzumTWf9Hp9KybSdtT27NO6RB23z8AnYsmMOMux5ibGmEtyFIkjRSrK5LVWWFX1LdiHKZuT+6mcb2Tlaf/1y6Jk/IO6RB2Xb4HDaefBQTH13HtPseyzscSZIkjRIm/JLqStOeTg759nIAnnjZEronjss1nv3ZMX8m6047gXHrNjPn9vvcty9JKrS89+67h19F45J+aRgM1I0/dVVeQq20a3f2QVI5e7xOlbZtqxibdXt2p/nNJ1VW7idz/O9+bgBmP/oE6445gtWv+WMO+9GttOx8+lURyjsrj13uzt43P9BVGVKpVDl30sTMuTFlcsXY9vkzWHvqcbTuaWfq5g10nNDbkb9rUnZH/3Grs5f6x9qNFWOljs7MucPlnOY/yRy/rvtrIxqHJElSPbHCL6kute1uZ+4DD5MaG3nsxc+mffqkvEN6mi1HzO1N9nfvYeZjv6UhWW6QJEnS0JjwS6pbrXs6OOxHtxDlMr/942ez4/A5eYdEimDdKUex4ZSjGL9uc2+yX3a1hySpTqQauUkFYcIvqa61btvF4d/9OW2btrPm+YtZf8aJlBvz+auxa1wbv33uIrYdMZdpDz7O/FvvtbIvSZKkA+Yefkl1r6mji0OvvpWNf3AsW05cyO4505l13a2MXbdpRF4/AduOmMOGkxYS5cS82+5l4pqReW1JkmqJDfOk6jLhl4ZBtLRkjpfb2yvnNmY3YEs9LuPuL7MB3l0PZs6d2nhcxdjmk7K78bfOPur3P9PN1CcfZ9vUOTzxqnMYv3krU9ZtoKmvWV/ruuwmgam1OTvoxsqe+u3T2p52v2PsWLbOnU3XmDG0dOxm0tb1lOY3sXX+7OxjAhMeq/wcATQ9uj5zvLR9R0bQI/v5yvr/J0mSpOFlwi9J/bR27GHGukfoaJ7K9pnT2DVlEhM2b2XSk5vJvvbC0CWgY9w4dsycTsf48TR2dTNp81ra2nd62T1JUv1y/7xUdSb8KrSIaAAuBRYBncAbU0qr9prTDFwBLABagY+klL4XEXcCT5VGH00pvX7EAleuGlJi6roNTNi0he2zZ7Bz2hR2zpjG2FnbmbhmI+M3bqWpK/sSfQNJQPfYVrbNnMHuyZPoaW2lsbubyevWM2HzFronZ6/0kCRJkg6UCb+K7gKgLaV0RkScDnwCOH+vOa8BNqeULo6IqcBdEXEdECmlJSMarWpKc3c3059Yy+R1T7Jr2hR2TZ7E+kVHQkq0bd9N2/ZdtG3fTVNPD02d3TT2lIBEiqDU3ETPmBY6x42hc9wY2idPoKetd6tH667dTHpyI+O27yBsyidJkqRhYsKvojsLuAYgpXRbRCzOmHMlcFXfzwH00LsiYGxf4t8EvC+ldNsIxKsa1NTTw+QNG5l51yN0ThzHrplT2D1tIjvmTmfbYQPvtX9KY2cXY3bsZuxv19GcOmnq7h6BqCVJGoX8HlyqKhN+FUZEvAF4117DG4Dr+90vRURTSul367FTSrv6nj+B3sT//cAe4OPAZcBRwNURcUz/5wFs3LiRxYt//x3C0qVLWbp0afXelGpKAG07dtO2YzfTV/1+mX73hHH0tDZTbmogEURKNHb30NjTQ8uejr7Kf6/OvZr2SRoZy5YtY9myZU/dnZ5nLJIkjRQTfhVGSuly4PL+YxHxSWBCv6GGvZP2vnmHAN8GLk0pfTUiWoFVKaUErIyIzcAc4In+z5sxYwYrVqyoiKVn8+aDfTsahHJXV+Z4w68fqhibuW1+5tw9Cydnj8+q7Ly/beG0zLnNexLw+6p9oneZSA9BJ2OeNrexK7t00bIzu4v9mMd3VYw1rH0yc25p6/bM8dTjigKp/xeyEeF1L6UaFHhZPqnaGvIOQBpmNwMvAujbw3/P3hMiYhZwHfCelNIVfcOX0Lvfn4iYC0wE1o1EwJIkSZJUDSb8KrpvAx0RcQvwKfqW/EfE1Ij4Vt+c9wFTgH+IiOURsRz4KjA5Im4Cvg5ckrUyQJIkSZJqlUv6VWgppTLwlozxLcCFfT+/E3hnxtNfPbzRSZIk6Wlc0i9VlRV+SZIkSZIKyAq/JEmSpJoQyRK/VE0m/NIwuL58Zeb42Q0XjXAk9am8Z0/l4P0rM+eO+e3YzPFxkydVDk4cn/1641qzA+kpVww1bN2RPbejM3M47WmvGCu1V44BpFJ2p39JkiTVJxN+SZIkSflLuIdfqjL38EuSJEmSVEAm/JIkSZIkFZBL+iVJkiTVhHBJv1RVJvzSSIqMRTWpsrGbRk5mg7+BxtcNbVFUNETFWE95gN9k/BxIkiSpykz4JUmSJNUGK/xSVbmHX5IkSZKkArLCL0mSJKkmuIdfqi4r/JIkSZIkFZAJvyRJkiRJBeSSfmkk2Yl9dBvi/79UGqY4JEkqKpf0S1VlhV+SJEmSpAKywi9JkiQpf8mmfVK1WeGXJEmSJKmArPBLkiRJqg1W+KWqssIvSZIkSVIBWeGXRtD15Ssrxs5uuCiHSFRzYoDvX7OuDDCUudUw0q8nSZKkqjDhlyRJkpS7wKZ9UrW5pF+SJEmSpAKywi9JkiSpNiRL/FI1WeGXJEmSJKmArPBLUi0YSgO8EW6Wd33p65njQ2k4mdWwUpIkScPLhF+SJElSTbBpn1RdLumXJEmSJKmArPBLkiRJyl/qu0mqGiv8kiRJkiQVkBV+SZIkSTUhRrYvrVR4JvySpH0aSjd+SZIk1Q6X9EuSJEmSVEBW+CVJkiTVBpv2SVVlhV+SJEmSpAKywi9JkiSpJoQVfqmqrPBLkiRJklRAVvilnF1fvjJz3M7oGq0G+kxLkrRPCUiW+KVqssIvSZIkSVIBmfBLkiRJklRALumXJEmSVBNs2idVlxV+SZIkSZIKyAq/JBVdZHy3m8rD9nJZDSdt5CdJGhQr/FJVWeGXJEmSJKmArPBLkiRJyl3gHn6p2qzwS5IkSZJUQCb8kiRJkiQVkEv6VWgR0QBcCiwCOoE3ppRWZcy7E9jRd/dR4A2DeZ4kSZKqJKXem6SqMeFX0V0AtKWUzoiI04FPAOf3nxARbUCklJb0G7twf8+TRo2MjvwDdc0/u/FVg3r+vtiRX5IkqTaY8KvozgKuAUgp3RYRizPmLALGRsR19P6ZeN8gnydJkqQqsmmfVF0m/CqMiHgD8K69hjcA1/e7X4qIppRST7+xPcDHgcuAo4CrgZ8C2/fzPDZu3Mjixb//LmDp0qUsXbr0oN+LJKm6li1bxrJly566Oz3PWCRJGikm/CqMlNLlwOX9xyLik8CEfkMNeyftwEpgVUopASsjYjPQOIjnMWPGDFasWFGV+CVJw6f/F7IRsSnncCRJGhF26VfR3Qy8CKBvL/49GXMuoXePPhExF5hI73L+/T1PkiRJ1ZRq5CYVhBV+Fd23gbMj4hYggNcDRMRU4LKU0oX0rgr4YkTcRO9f8ZcAtwHP2/t5kiRJkjRamPCr0FJKZeAtGeNbgAv7fu4CXp3x9IrnjaQBu6g3XDTCkaiIBvocZX3uMjv3w5C790uStD827ZOqyyX9kiRJkiQVkBV+SZIkSflLQNkSv1RNVvglSZIkSSogE35JkiRJkgrIJf2SpN/JauY3UANJSZKqzhX9UlVZ4ZckSZIkqYCs8EuSJEmqCV6WT6ouK/ySJEmSJBWQFX5JkiRJtSFZ4peqyQq/JEmSJEkFZIVfGmWyOqZndVYfUAzwPV8qH2BEGmkDdc0f0udgCAY6rt37JUmSapsJvyRJkqSaYNM+qbpc0i9JkiRJUgFZ4ZckSZKUv9R3k1Q1VvglSZIkSSogK/ySJEmSchdAeFk+qapM+KV6Yzf+UW+oXfMPtnu/3fglSaoUEacBH0spLck7FmkgJvySJEmSNAQR8W7gYmB33rFI++IefkmSJEm1oVwjN5geESv63ZbuFenDwIXVfvtStVnhlyRJkqSn25RSWjzQgymlb0bEghGMRzogJvySJEmSaoJN+6TqMuGXCmC4mrWpBsTgd15V4/+3DfokSZKKwz38kiRJkiQVkBV+SZIkSflLfbdRIqX0GHB63nFI+2KFX5IkSZKkArLCL0mSJKkGJLBpn1RVVvglSZIkSSogK/ySNIKGfEWFVB7ROCRJylNY4Jeqygq/JEmSJEkFZMIvSZIkSVIBuaRfkiRJUm2waZ9UVVb4JUmSJEkqICv8kiRJkvKXIIanV61Ut0z4pQLL6sQ+YDd4jYiBzv+Qu/dLkiRJ+2HCL0mSJKk2uIdfqir38EuSJEmSVEAm/JIkSZIkFZBL+iVJkiTVBlf0S1Vlwi/VmWFtDhcDLBpKQ2i5W41jVMGQGh4OEHNDS0vFWLmrK3PuUJr5DfX/1UD/zyVJklRsJvySJEmSakLYtE+qKvfwS5IkSZJUQFb4JUmSJNUGK/xSVVnhlyRJkiSpgEz4JUmSJEkqIJf0S9q3rA70A3XMr0Yn/RHuxt80d07m+AuPfk/F2IBXODjrnzPHe5qiYqxl9dbsQHbuyo7jiL+pGGuaPy9z7tWP/3/Zx5YkaTRIwMj+GiAVnhV+SZIkSZIKyAq/Ci0iGoBLgUVAJ/DGlNKqvea8Dnhd39024GRgNnADsKNv/NGU0uuHP2JJkqT6FCQvyydVmQm/iu4CoC2ldEZEnA58Aji//4SU0heBLwJExGeAK4AOIFJKS0YwVkmSJEmqGpf0q+jOAq4BSCndBiweaGJELAZOSCkto3dFwNiIuC4ibuj7sqDCxo0bWbx48e9uy5YtG4a3IEk6WMuWLfvd39XA9LzjkSRpJFjhV2FExBuAd+01vAG4vt/9UkQ0pZR6Mg7xPuBDfT/vAT4OXAYcBVwdEcfs/bwZM2awYsWKqsQvSRo+S5cuZenSpQBExKacw5E0EJf0S1Vlwq/CSCldDlzefywiPglM6DfUkJXsR8Rk4JiU0k/7hlYCq1JKCVgZEZuBOcATwxF7LRiwA33DRSMcSbaGlpaKsWs7/jdz7rnjXlsxlp5xVPaBN+7IHu8pVQyd0/wnmVOv7/7aoONg2tTMuWl2dsEx2rsqxq5+5OOZcyVJkqT+XNKvorsZeBFA37L8ewaY9xzgJ/3uX0Lvfn8iYi4wEVg3fGFKkiSJlGrjJhWECb+K7ttAR0TcAnyKviX/ETE1Ir7Vb94xwCP97l8OTI6Im4CvA5cMsA1AkiRJkmqSS/pVaCmlMvCWjPEtwIX97v/7Xo93Aa8e9gAlSZLUKwHlvIOQisUKvyRJkiRJBWSFX9I+ZTXzG6iR33A2/it3VTavG0ocZze+KnNuTzr4UsKQ4hhgbqxvzhy/ruurBx6YJEmS6poJvyRJkqSaEDbMk6rKJf2SJEmSJBWQFX5JkiRJtcEKv1RVVvglSZIkSSogK/ySJEmSakCywi9VmQm/pCEbqBv/UOZXo3N/0/x5mePntv1ZZQylr2fOHah7P8PUvX+o506SJEk6UC7plyRJkiSpgKzwS5IkScpfwiX9UpVZ4ZckSZIkqYCs8EuSJEmqDQffQkdSP1b4JUmSJEkqICv8knIxULf6oXTv714wI3M8Vq+pPO4A3fgH7N5fhasISJKkoQn38EtVZYVfkiRJkqQCMuGXJEmSJKmAXNIvSZIkqTa4pF+qKiv8kiRJkiQVkBV+STVloGZ+Z7384xVj4294IHNuKWswZV/n55yWVw86joHmpp7uQR9DkiQNIAFlK/xSNVnhlyRJkiSpgEz4JUmSJEkqIJf0S5IkSaoByaZ9UpVZ4ZckSZIkqYCs8EuSJEmqDVb4paoy4Zc0Ktz0zb+pGDu74aLBHyCyFzQN1GE/69h23ZckSdJoYsIvSZIkqTZY4Zeqyj38kiRJkiQVkAm/JEmSJEkF5JJ+SZIkSflLQNkl/VI1WeGXJEmSJKmArPBLGrUG6pr/wnl/UTHWs/7JIR1DkiSNtASpnHcQUqFY4ZckSZIkqYCs8EuSJEmqDV6WT6oqK/ySJEmSJBWQCb8kSZIkSQXkkn5JhXP1mv/MOwRJkjRUXpZPqjor/JIkSZIkFZAVfkmSJEm1waZ9UlVZ4Zc0aMuWLcs7hJrnORocz9P+eY72z3MkSdK+mfBLGjR/ud4/z9HgeJ72z3O0f54jqYBSqo2bVBAm/JIkSZIkFZB7+KWDcMcdd2yKiN/mHccImh4Rm/IOosZ5jgbH87R/nqP9O9BzdFjVI5EkqQaZ8EsHIaU0I+8YJEmSisHl9FK1uaRfkiRJkqQCssIvSZIkKX8JKJfzjkIqFCv8kiRJkiQVkAm/JEmSJEkFZMIvaZ8i4rSIWL6Px++MiOV9ty+MYGg1ZV/nKSIaIuJzEXFr33k6coTDy9Vg3389fpb2d27q/bMDgzsH9fjZkQorpdq4SQXhHn5JA4qIdwMXA7sHeLwNiJTSkpGMq9bs7zwBFwBtKaUzIuJ04BPA+SMUXi24gP28/zr+LF3Avs/N/h6vBxewj3NQx58dSZL2ywq/pH15GLhwH48vAsZGxHURcUPfL+P1aH/n6SzgGoCU0m3A4pEIqoYM5v3X62dpf+em3j87sP9zUK+fHamY8q7sW+FXwVjhl0REvAF4117Dr08pfTMiFuzjqXuAjwOXAUcBV0fEMSmlnuGJNF8HcZ4mAtv73S9FRFMRz9MA52gDcH2/+1nvv64+S/3s77NRN5+dfdjfOajXz44kSftlwi+JlNLlwOUH8NSVwKqUUgJWRsRmYA7wRDXjqxUHcZ52ABP63W8oajKSdY4i4pPs//3X1Wepn/19Nurms7MP+zsH9frZkQooQdnqulRNLumXdDAuoXc/LRExl95K3LpcI6pNNwMvAuhbbnxPvuGMuMG8/3r9LO3v3NT7Zwf2fw7q9bMjSdJ+mfBLGpKImBoR3+q7ezkwOSJuAr4OXFKH1cdMe52nbwMdEXEL8Ckql7wXXeb797MEZJwbPzsV9neO6vWzI0nSfkWyKYUkSZKknE1qmpHOmPyyvMMA4NrN/31HSqluGqX+5je/GfGk8MQTT4yRfs2hWvB3PxzR8/LYR/+46ufECr8kSZIkSQVk0z5JkiRJtcGmfVJVWeGXJEmSJKmArPBLkiRJqg32F5Oqygq/JEmSJEkFZMIvSZIkSVIBmfBL0igTEadFxPJBzPtARPwiIm6JiFMPZm5EdEXEdRGxICJ2RMTyvtttEfHjiJjSN299xnM/GBFv2Wvstr5j/SAiOiKibb9vXJJUbClBuVwbN6kgTPglaRSJiHcDlwH7TJAj4pnAc4HTgD8BPnOQc7eklM7p+/m+lNKSvtvpwC+BNwz1vQCklF4MVHxJIEmSpINnwi9Jo8vDwIWDmHcWcF3q9TjQFBEzqjD3aSIigEOArYOZL0nSPqVUGzepIEz4JWkUSSl9E+gexNSJwPZ+93cCk6owF+D4vuX8dwMrgVXAlwYR0978jUqSJGkYeVk+SSqmHcCEfvcnANuqMBf6lvRHxBjg+8CGlFLPPua3A617jY3vG5ck6XeS++elqrLCL0nFdDNwbkQ0RMShQENKaVMV5v5OSqkd+DPgHyNi0T6m3gm8NCKaACJiIdCaUnpyKG9IkiRJQ2OFX5JGuYh4HUBK6YtPjaWU7oiInwO30vvl7tuHOncwUkobIuJvgM9HxJnAtIhY0W/KJ1JK/xcRZwF3RMQOIIDXDv2dSpIkaShM+CVplEkpPQac3m/oTmBxxrwPAh/ca3gocwfz2qSU/hf43767zQM87wPAB/Z3fElSPbNhnlRtLumXpNFvC/CFYZjb39SIuO4AnrdPEfEDYHa1jytJkiQr/JI06qWUVg/H3L2e13IgzxvEcV88HMeVJI1CCShb4ZeqyQq/JEmSJEkFZIVfkiRJUm1IXpZPqiYr/JIkSZIkFZAJvyRJkiRJBeSSfkmSJEm5S0CyaZ9UVVb4JUmSJEkqICv8kiRJkvKXkk37pCqzwi9JkiRJUgGZ8EuSJEmSVEAu6ZckSZJUE2zaJ1WXFX5JkiRJkgrICr8kSZKk2mDTPqmqrPBLkiRJklRAVvglSZIk5W4nW6/9cbpqet5x9NmUdwBSNZjwS5IkScpdSum8vGOQisYl/ZIkSZIkFZAJvyRJkiRJBWTCL0mSJElSAZnwS5IkSZJUQCb8kiRJkiQVkAm/JEmSJEkFZMIvSZIkSVIBmfBLkiRJklRAJvySJEmSJBWQCb8kSZIkSQVkwi9JkiRJUgGZ8EuSJEmSVEAm/JIkSZIkFZAJvyRJkiRJBWTCL0mSJElSAZnwS5IkSZJUQCb8kiRJkiQVkAm/JEmSJEkFZMIvSZIkSVIBmfBLkiRJklRAJvySJEmSJBWQCb8kSZIkSQVkwi9JkiRJUgGZ8EuSJEmSVEAm/JIkSZIkFZAJvyRJkiRJBWTCL0mSJElSAZnwS5IkSZJUQCb8kiRJkiQVkAm/JEmSJEkFZMIvSZIkSVIBmfBLkiRJklRAJvySJEmSJBWQCb8kSZIkSQVkwi9JkiRJUgGZ8EuSJEmSVEAm/JIkSZIkFZAJvyRJkiRJBWTCL0mSJElSAZnwS5IkSZJUQCb8kiRJkiQVkAm/JEmSJEkFZMIvSZIkSVIBmfBLkiRJklRAJvySJEmSJBWQCb8kSZIkSQVkwi9JkiRJUgGZ8EuSJEmSVEAm/JIkSZIkFZAJvyRJkiRJBWTCL0mSJElSAZnwS5IkSZJUQCb8kiRJkiQVkAm/JEmSJEkFZMIvSZIkSVIBmfBLkiRJklRAJvySJEmSJBWQCb8kSZIkSQVkwi9JkiRJUgGZ8EuSJEmSVEAm/JIkSZIkFZAJvyRJkiRJBWTCL0mSJElSAZnwS5IkSZJUQCb8kiRJkiQVUFPeAYyYiLTgPT/IOwpJUg34wWsOyzsESdJeTjzxxMg7BqlorPBLkiRJklRA9VPhlyTVtRljghcd0cKZ85rZtGkTjY2NtLS00NbWRmNjY97hSZIkVd0+E/6IWAJ8A7iv3/DGlNJFe83rApanlM45kCAi4mfAh1JKN/Qb+w/gHuCNACml0w/k2JIknTS9kb981lgOnT+XQ+fPo7W1lc7OTtauXcvatWsZN24cLS0teYcpSZJUVYOp8N+QUvqT/czZcqDJfp//Bl4L3AAQES3AS4D3AT8GvnYQx5Yk1bEZY4K/fNZYTn3mIiZNmvS78TFjxrBw4UKmT5/O3XffTWNjo5V+SZJUKFXdwx8RSyLi2oj4XkT8KiLeHBFfj4gHIuKtfXOeGxE3RcTPIuKKiGgGrgKeHxFj+w51PnBdSml3NeOTJNWfFx3RwqHz5z4t2e9v0qRJzJkzh46OjhGOTJIkaXgNJuF/fkQs73f72/3Mnw+8HHgr8H7gYuCFwJsjIuit5l+YUnousAZ4XUqpA/gO8LK+Y7we+PyQ340kSXs5c14zh86ft8858+bNo6ura4QikiRJGhnVWtLf329SSt0RsQ14OKXUFRFbgTZgBjAH+EZv7s8Y4Pq+5/038O8RsRyYklL61RBeU5KkTC2RaG1t3eec1tZWSqXSCEUkSZI0MoajS3/ax2ObgNXA+Sml7RHxUmAXQErpnoiYAPwlcMUwxCVJqkNdKejs7GTMmDEDzuns7HT/viRJKpwDWdK/PCIG/q1pH1JKZeCdwA8j4hbgbcBv+k25AngT8H8HcnxJkvZ2y5puHl+9Zp9z1qxZY5d+SaphEXFnv1zkCwPMmRERKyOird/YkRFxTxXjeH1E/M9eY6dExE3Veg2pmvZZ4U8pLQdmDvZgffOX9/38ALCk7+dtwLF9P18HXDfA8y8HLh/s60mStD8/eqSLs+avZfbMGZmN+7Zv3866deuYOHFiDtFJkvanL4GPlNKSfcw5F/goMLvf2MX0FhtnVDGcbwAfiYhx/RqMXwIsq+JrSFVTrS79UyMiM4k/GBFxJF6ST5J0EDa2Jz59xx5+ceeveWDlKtrb2ymXy7S3t7Nq1Sruvvtuxo0b55J+Sapdi4CxEXFdRNwQEadnzCkDfwRs6Te2FXjuQAeNiHsi4jMR8fOI+O+I+EhE3BgR10dEc0RMioirIuKnfbeT+pL879HbpJyIaKW3QfmV1XqzUjVVZQ9/SmlY1kGmlFYBWX+gJUkatHs2lXjfjbt44RGPcebqNbQ1JBobG2lpaWHixIkm+5JU2/YAHwcuA44Cro6IY1JKPU9NSCldD9DXGPypsR/sPbaXCcBXU0pvj4gHgL9KKb0/In4GnAD8KfCTlNJnI+Io4AvAWfQ2G/8Y8D/0Xk78hyml9iq+X6lqhqNpX21KKR7LOwZJkiRJQ7USWJVSSsDKiNhM75W/nqjCse/s++824L6+n5+6wthJ9PYze1Xf+FSAlNKdfdX/efReTvxvqhCHNCzqJ+GXJEmSNBpdQm/y/baImAtMBNZV6dj7usLYA8BXUkpfjYiZwBv7PXYF8BfA2JTSvVWKRao6E35JkiRJtexy4It9nfATcElKqSci/oreyv/3hul1/xm4PCKW0vslwwf7PfZV4HF6mwLWnVKpREdHB11dXZRKpd9tk2tra3ObXI0x4ZckSZJUs1JKXcCrM8Y/mTG2IGNs9t5je89NKZ3e7+cL+k3r/3P/5+4AJg8Uc5F1dXWxe/du5s6dy9y5c2ltbaWzs5O1a9eydu1axo0b56Vua4gJvyRJkiRpv0qlErt37+YZz3jG0y51O2bMGBYuXMj06dO5++67aWxstNJfI6p1WT5JkiRJUoF1dHQwd+7cpyX7/U2aNIk5c+bQ0dExwpFpICb8kiRJkqT96urqYu7cufucM2/ePLq6ukYoIu2PS/olSZIkqY6deOKJMZh5y5cvL7e2tu5zbmtrK6VSqXziiSeO+jX9j330jwd1XmqZFX5JkiRJ0n41NDTs7Ozs3Oeczs5OGhoado1QSNoPE35JkiRJ0mB8Ze3atd37mtD3+JdHKB7thwm/JEmSJGm/yuXyJ9esWdO9ffv2zMe3b9/OmjVrusvl8qdGODQNIFJKeccgSZIkSRoFli9f/sKGhoar5s2b1zx37tzm1tZWOjs7Wbt2bXdfsv+KJUuWXJ13nOplwi9JkiRJGrTly5cvbGhoeBdwcblcHt+3Z//L5XL5U0uWLHk47/j0eyb8kiRJkiQVkHv4JUmSJEkqIBN+SZIkSZIKyIRfkiRJkqQCMuGXJEmSJKmATPglSZIkSSogE35JkiRJqjPR64sR8TcDPP7HEXF3RDwYEVdGxMQDeI0ZEXF1RNwXEb+JiDP7PfayvuPfFRE/jYiFB/N+DlZEfCIiHu+L566I+HrGnNMiYkVE3B8RP4mIOQfwOmMj4qt9x3gwIi7o99ihEfGDiPhVRNwTEece5Nsy4ZckSZKkehIRxwE/AV45wOMzgC8AL08pHQM8Anz0AF7qM8DPU0rHA68BruxLeMcAXwEuTCmdDHwP+PQBHL+azgT+JKV0ct/tVf0fjIgW4CrgnSml4/p+vvwAXueDwK6+Y5wNXBoR8/se+z7ww5TSKcBrga9FROuBvZ1eJvySJEmSVF/eTm9C/40BHj8H+GVK6aG++58F/qxvVUBLRHwqIu6MiF/3rRKoqP5HRBPwYuC/AVJKdwEPAecBjUAAk/qmjwc6qvPWhq4vqT4F+Ju+9/TNiDh0r2l/AOxIKd3cd/9y4AURMa3vGH/fd07uiojvRMTcAV7uZfz+nDwOXAe8MiJOBqamlD7b99ivgLOA8sG8NxN+SZIkSaojKaV3pJS+vI8phwBP9Lu/GpgITAD+DugBnpVSWgSsJbv6Px1oSClt3Os481NKu4C3ALdExFrgHcB7DvT9VMFc4AbgvcDJwG3AdyMi+s152jlJKXUBG4F5EfFa4CTg1L4VCz8CLhvgtbLO7XzgaOCxiPhkRNweETcDc1JK3QfzxpoO5smSJEmSpMIZqDBcordqPxk4uy8fbgGeHMoxIuIk4B+B41NKD0fEXwLfjIiTU0rpoCI/ACmlR4EXPXU/Ij4O/AOwAHi0b3h/5+RUYEXfOWkExg4wP+s4JaAZeDbw8ZTSX0XEqcDVEXFSSmntkN5QPyb8kiRJkqT+HgdO63d/HrA1pbQ7Ihrp3cd+NUBEjAfaImIxT69qL+57fEpKaWu/46wGzgVuTik93Df+GeBTwDRg0zC9pwFFxDOARXutegigf3X9cWBOv+c007uKYQ29Cf7HnlqO37dFYErfsv4f9TvGi/odZ33f2DzgLnpXSmxLKX0XIKX0i4h4BHhqFcUBcUm/JEmSJKm/64DTI+KovvtvAb7b9/O1wDv69vI30Lsf/V9TSiv6Nbw7OaXUA/wQeDP8Lqk+HlgO3Ak8NyJm9R3zAuDRlNKIJ/t9ysCnI+LwvvtvBe5OKa3uN+d2YFq/Kw1cAtyaUvr/27tjl5/iKI7j7zP7Myz+FCkpm0EhGZRJZsVgYKMsNquNWSbZSI/RxjMoYpPla/j9ROrJ8CT183qt93Zv37N9Ouee+7lNTS7+ssvgRvVwrbX/W03229TxUtV2Wd/x6kn1vPo6Mye3145VR6vXhzmYDj8AAMB/7keHfhtMP8zM+erRdjv92zZb46tuVneql20626+qqwc89nL1YGb2qlWdXWt9qZ7OzO3q2cx8qz5Vp/7S0f5orbU3M1eqx9sJhnfVmV869CfWWvszc7q6NzNHqo/9rMmDNp36FzOz2nTxzx3wuuvV/Zl506Z+135MOmx/w3d3Zm5t772w1np/mLPNP/hEAgAAAPjLjPQDAADADhL4AQAAYAcJ/AAAALCDBH4AAADYQQI/AAAA7CCBHwAAAHaQwA8AAAA7SOAHAACAHfQdGPctHmL9+qsAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "view.Energy_slider.set_val(40)\n", "view.ax.get_figure()" ] }, { "cell_type": "markdown", "id": "195e15d3", "metadata": {}, "source": [ "Lastly, the effect of the masks can also be seen in e.g. a QE cut:" ] }, { "cell_type": "code", "execution_count": 8, "id": "159d9302", "metadata": { "execution": { "iopub.execute_input": "2023-07-25T11:37:45.315136Z", "iopub.status.busy": "2023-07-25T11:37:45.315136Z", "iopub.status.idle": "2023-07-25T11:37:45.992618Z", "shell.execute_reply": "2023-07-25T11:37:45.992618Z" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "# Along the Q-E direction the masking looks differently\n", "QPoints = np.array([[-1.0,0.0,-1.0],\n", " [-1.0,0.0,1.25]])\n", "Energies = np.concatenate(ds.energy,axis=0)\n", "EnergyBins = np.linspace(np.min(Energies),np.max(Energies),31)\n", "ax,*_ = ds.plotCutQELine(QPoints=QPoints, width=0.05, minPixel=0.05, \\\n", " EnergyBins=EnergyBins)\n", "\n", "# Change the colorbar of the plot\n", "ax.set_clim(0,5e-6)\n", "ax.get_figure().set_size_inches(16,9)" ] }, { "cell_type": "markdown", "id": "822c5936", "metadata": {}, "source": [ "## Combining Masks\n", "\n", "Masking has been implemented into MJOLNIR in such a way, that one can combine masks rather freely. With the above list of possible masks as building blocks, it is believed that almost all masks can be generated by combining the masks with the correct arithmetic operations. Masks are combined using the standard order of operators, meaning that AND (*) operations are performed before OR (+). In additionally, parentheses are allowed making it easier to perform more advanced mask combinations, where multiple masks are to be negated or AND’ed with another masks. This complexity also allows for situations where multiple combinations are equivalent. Using the masks defined in the example, then\n", "\n", "$$ (circle*lowEnergy).bar() = circle.bar()*lowEnergy.bar()$$\n", "\n", "Behind the scene, a pair-wise tree is created by multiMasks and all operations are propagated through this tree, remembering the mask relations." ] }, { "cell_type": "markdown", "id": "133d88d8", "metadata": {}, "source": [ "## General Features\n", "\n", "All of the masks are build on a common base object with a set of methods. In detail, these methods are ensure by the use of a meta class, but the exact implementation is out of scope. What is ensured is that all masks have a __call__ and a plot method. The __call__ method is used to generate the mask needed in MJOLNIR, and depending on the attributes used to generate a mask it either takes coordinates with the correct dimensionality or an object with attributes matching the coordinates given to the mask. The plot method takes a matplotlib.axes object and, if applicable, a transformation function. This transform is needed when plotting masks on axis having other coordinates than the ones provided to the masks, or if the axis utilizes some sort of transformation under the hood. Unfortunately, this is often the case for MJOLNIR, where RLU, and other axes are used. In the above example, where the masks were to be plotted on an RLU object, the transformation from (h,l) to ($Q_x$,$Q_y$) was to be specified. This is found as an method on the _ax.sample object. Plotting of masks on axes is currently in a non-optimal state. Best way of achieving the goal is to find an example, as above, or simply write the maintainer.\n", "\n", "All masks can be combined with each others, independent of their attributes or coordinates as long as the datafile object to be masks has all of these attributes. As explained above, four different arithmetic operations exist, but on top of that, all masks has the bar method. This method simply negates the masks, in effect masking values outside of e.g. the circle, instead of inside.\n" ] }, { "cell_type": "markdown", "id": "76b7ee41", "metadata": {}, "source": [ "## Masking Types\n", "\n", "Currently, there are 5 different masks, that are supported by MJOLNIR. These covers the main parts, where masks are needed, but might need extension down the line. In ascending order of dimensionality, these are presented below." ] }, { "cell_type": "markdown", "id": "8a219af3", "metadata": {}, "source": [ "### lineMask\n", "The most simple for of masking is in 1D, where values are either inside our outside a given interval. The lineMask requires two attributes (start and end) to generate a mask. It is intended to mask 1D parameters as energy or to be combined with other masks to create more complex maskings. In the above example, the lineMask was used to give an energy dependency on the two masks of $H$ and $L$.\n", "\n", "### indexMask\n", "At times it be necessary to perform masking depending on the indices of the points. This could be when a full detector tube is to be masks, but the $A_4$ value is unknown. This can be performed by the indexMask, where a start and end index together with an axis defines the masks.\n", "\n", "### circleMask\n", "Increasing in complexity, the next step up is a circular mask where masking of two directions at the same time is possible. One can either proide the center and a point in which the circumference goes through or a center and a radius. If the center is given as a 3D position the masks turns into a spherical masks. Currently, there is no option for elongating the masks in any direction, i.e. to create an ellipse.\n", "\n", "### rectangleMask\n", "Instead of only being allowed to mask in circles, one can also mask a rectangle. This can be achieved with the rectangleMask. To create one, a starting corner is to be provided together with a second corner. From these two, the rectangle is created. Alternatively, one can provide 3 points. If this is done, the first two points are used to define an edge, and the last point gives the extend of the rectangle orthogonal to this edge. That is, the third point might not be located on the edge of the rectangle. This three-input option allows the creation of rotated rectangles. Points are then masked by rotating then such that the rectangle lines up with the coordinate axes and center at (0,0). This allows for two simple 1D checks.\n", "\n", "### boxMask\n", "Extending the rectangle into 3D creates the boxMask. This mask also supports two different inputs; either three corner points making the edges of the box parallel to the coordinate axes, or 4 point input. In this latter case, the two first points creates on edge, which is extended to form a rectangular base with width corresponding to the orthogonal distance to the third point. Lastly, this rectangle is extended by the orthogonal distance to the last point. Like the rectangleMask, points are masked by rotating the box such that it center is in (0,0,0) and edges are along the coordinate axes. Due to the complexity of 3D rotations, three rotations matrices are involved.\n", "\n", "### CurratAxeMask\n", "In all experiments having a strong Bragg peak, be it either magnetic or structural, there is a high chance that the accidental scattering of it polutes the inelastic signals. This mask traces out the paths of the spurions originating from the provided Bragg peaks across all scans." ] } ], "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.9.7" } }, "nbformat": 4, "nbformat_minor": 5 }