{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Handling filter objects\n", "\n", "The most fundamental building block of photometric surveys lies in the bandpass filters used to conduct them. In this example we will learn how to use the `Filter` class which is used in (nearly) every use-case of the `galfind` code. We start by looking at the JWST/NIRCam/F444W band, which is very commonly used in both blank field and cluster surveys." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "__init__ imports took 0.5126409530639648s\n", "Reading GALFIND config file from: /nvme/scratch/work/austind/GALFIND/galfind/../configs/galfind_config.ini\n" ] } ], "source": [ "# imports\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import astropy.units as u\n", "from copy import copy, deepcopy\n", "\n", "from galfind import Filter\n", "from galfind import U, V, J" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "# Example 1: Create a filter object from a filter name\n", "facility = \"JWST\"\n", "instrument = \"NIRCam\"\n", "filter_name = \"F444W\"\n", "f444w = Filter.from_SVO(facility, instrument, filter_name)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can also very simply plot this filter profile so we can check that it looks correct. This in-built function also allows the user to choose the filter colour; we choose to plot this filter in red since it is the reddest wideband available for JWST/NIRCam." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAHLCAYAAAA0kLlRAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABhIElEQVR4nO3deVxU5f4H8M/MsO8gsqgo7qhsJoqi5oaSWmalkpp6rcwssyJLLdO0xUozu1eL0vxZllfTsqxIU9xCcRcFRVwRFJBN9p05vz+EcxlZZHRmziyf9+s1r3s458zMd8614cPzPOd5ZIIgCCAiIiIyEnKpCyAiIiLSJIYbIiIiMioMN0RERGRUGG6IiIjIqDDcEBERkVFhuCEiIiKjwnBDRERERoXhhoiIiIwKww0REREZFYYbIqIaGzduhI+PD8zNzeHk5AQAGDx4MAYPHiyek5ycDJlMhg0bNkhSIxHdG8MNEYk2bNgAmUzW4GP+/PkNPicvLw9ubm6QyWTYtm1bk6//4YcfQiaTwdfXt8nzGnvNn376CTKZDNu3b6/3nICAAMhkMuzbt6/esbZt2yIkJKTJ97xw4QL+9a9/oWPHjli7di2++eabJs+vKyoqCu+9916zzyci7TKTugAi0j9Lly5F+/btVfY1FkgWLVqEkpKSe77mjRs38NFHH8HW1vae5zb2mgMGDAAAxMTE4IknnhD3FxQUICEhAWZmZjh06BCGDBkiHktNTUVqaiqefvrpJt9z//79UCqV+OKLL9CpUydx/99//33PeqOiorBmzRoGHCI9wXBDRPWMHDkSQUFB9zwvISEBX331FRYtWoRFixY1ee7cuXPRt29fVFdXIzs7+75es1WrVmjfvj1iYmJU9sfGxkIQBIwfP77esdqfa4NRYzIzMwFA7I6qZWFh0eTztEUQBJSVlcHa2lqS9ycyZOyWIqL79uqrr+KJJ57AwIEDmzzv4MGD2LZtG1atWvXArzlgwACcPn0apaWl4r5Dhw6hR48eGDlyJI4cOQKlUqlyTCaToX///o2+p7e3NxYvXgwAaNmyJWQymdgKc/eYm7v961//wpo1awBApRuvllKpxKpVq9CjRw9YWVnB3d0dM2fOxO3bt+vV8Oijj2LXrl0ICgqCtbU1vv7660bfl4gax5YbIqonPz+/XuuKq6urys9bt27F4cOHkZiYiOTk5EZfq7q6Gq+88gqef/55+Pn5Nfm+zXnNAQMGYOPGjTh69KgYOg4dOoSQkBCEhIQgPz8fCQkJ8Pf3F4/5+PigRYsWjb7vqlWr8P3332P79u346quvYGdnJz7/XmbOnIm0tDTs3r0bGzdubPD4hg0bMH36dMyZMwfXrl3D6tWrcfr0aRw6dAjm5ubiuUlJSZg4cSJmzpyJGTNmoGvXrs2qgYhUMdwQUT2hoaH19gmCIG6XlpZi7ty5eP311+Ht7d1kuImMjMT169exZ8+eJt+zua9Zd9zN4MGDUVVVhaNHj2LatGno2LEj3N3dERMTA39/fxQWFiI+Ph7PPvtsk+89duxYxMXFYfv27Rg3bly9INeUfv36oUuXLti9ezeeeeYZlWMxMTFYt24dfvzxR0yaNEncP2TIEDzyyCPYunWryv7Lly9j586dCAsLa/b7E1F9DDdEVM+aNWvQpUuXRo9//PHHqKysxNtvv93k6+Tk5GDRokV499130bJlyybPbe5rduvWDS1atBDH0pw5cwbFxcXi3VAhISE4dOgQXnrpJcTGxqK6uvqe4220ZevWrXB0dMTw4cNVWsJ69eoFOzs77Nu3TyXctG/fnsGGSAMYboionj59+jQ6oDg5ORnLly/HmjVrYGdn1+TrLFy4EC4uLnjllVeaPE+d15TJZAgJCcHBgwehVCpx6NAhuLm5iXc4hYSEYPXq1QDudEkB9x5MrC2XLl1Cfn4+3NzcGjxeO4i51t13qBHR/WG4ISK1LFq0CK1bt8bgwYPFrqOMjAwAQFZWFpKTk9G2bVtcuXIF33zzDVatWoW0tDTx+WVlZaisrERycjIcHBzg4uLS7NeUy+/cAzFgwAD8/vvviI+PF8fb1AoJCcGbb76JmzdvIiYmBq1atUKHDh10cGXqUyqVcHNzw48//tjg8btbs3hnFJFmMNwQkVpSUlJw+fLlBgPDSy+9BAC4ffs2bt68CaVSiTlz5mDOnDn1zm3fvj1effVVrFq1qtmvWXubdt1xN4cOHcJrr70mnt+rVy9YWlpi//79OHr0KEaNGvWgH/me6t4dVVfHjh2xZ88e9O/fn8GFSIcYbohILR988EG9O6kSEhLw7rvv4q233kK/fv1ga2sLX1/fBmcSXrhwIQoLC/HFF1+gY8eOar1mraCgIFhZWeHHH3/EzZs3VVpuLC0t8dBDD2HNmjUoLi7WSZdUbW15eXkq8+RMmDABX375Jd5//3189NFHKs+pqqpCUVFRvXl1iOjBMdwQkVoaCgu1v6B79+6NsWPHArhz63jtdl21c93UPdbc16xlYWGB3r17459//oGlpSV69eqlcjwkJASfffZZo6+tabXvP2fOHISFhUGhUODpp5/GoEGDMHPmTCxbtgxxcXEYMWIEzM3NcenSJWzduhVffPEFxo0bp/X6iEwNJ/EjIoNUG1pqu6Hqqp2wz97eHgEBAVqv5cknn8Qrr7yCnTt3YsqUKZg4caJ4LDIyEt988w0yMzPx9ttvY8GCBdi7dy+eeeaZJicWJKL7JxPqTl5BREREZODYckNERERGheGGiIiIjArDDRERERkVhhsiIiIyKgw3REREZFQYboiIiMiomNwkfkqlEmlpabC3t290ynQiIiLSL4IgoLCwEK1atRLXmWuMyYWbtLQ0eHl5SV0GERER3YfU1FS0adOmyXNMLtzY29sDuHNxHBwcJK6GiIiImqOgoABeXl7i7/GmmFy4qe2KcnBwYLghIiIyMM0ZUsIBxURERGRUGG6IiIjIqEgebtasWQNvb29YWVkhODgYx44da/L8vLw8vPzyy/D09ISlpSW6dOmCqKgoHVVLRERE+k7SMTdbtmxBREQEIiMjERwcjFWrViEsLAxJSUlwc3Ord35FRQWGDx8ONzc3bNu2Da1bt8b169fh5OSk++KJiIhIL8kEQRCkevPg4GD07t0bq1evBnBnDhovLy+88sormD9/fr3zIyMjsXz5cly4cAHm5ub39Z4FBQVwdHREfn4+BxQTEREZCHV+f0vWLVVRUYGTJ08iNDT0f8XI5QgNDUVsbGyDz9mxYwf69euHl19+Ge7u7vD19cVHH32E6urqRt+nvLwcBQUFKg8iIiIyXpKFm+zsbFRXV8Pd3V1lv7u7OzIyMhp8ztWrV7Ft2zZUV1cjKioK7777Lj777DN88MEHjb7PsmXL4OjoKD44gR8REZFxk3xAsTqUSiXc3NzwzTffoFevXggPD8c777yDyMjIRp+zYMEC5Ofni4/U1FQdVkxERES6JtmAYldXVygUCty6dUtl/61bt+Dh4dHgczw9PWFubg6FQiHu69atGzIyMlBRUQELC4t6z7G0tISlpaVmiyciIiK9JVnLjYWFBXr16oXo6Ghxn1KpRHR0NPr169fgc/r374/Lly9DqVSK+y5evAhPT88Ggw0RERGZHkm7pSIiIrB27Vp89913SExMxKxZs1BcXIzp06cDAKZOnYoFCxaI58+aNQu5ubl49dVXcfHiRfz555/46KOP8PLLL0v1EYiIiEjPSDrPTXh4OLKysrBo0SJkZGQgMDAQO3fuFAcZp6SkqCxr7uXlhV27duH111+Hv78/WrdujVdffRXz5s2T6iMQERGRnpF0nhspcJ4bIiIiw2MQ89wQERERaQPDDRERERkVhhsiIiIyKgw3REREZFQYboiIiMioMNwQERGRUWG4ISIiIqPCcENERERGheGGiIiIjArDDRERERkVhhsiIiIyKgw3REREZFQYboiIiMioMNwQERGRUWG4ISIiIqPCcENERERGheGGiIiIjArDDRERERkVhhsiMjje3t7o2rUrAgMDERgYiOeff148lpmZCXd3d4wdO7be80pLS9G9e3cEBgbWOyYIAoYOHQonJydx35AhQ/DDDz+IP3/wwQewsrJCWVmZuM/HxwfR0dEa+VxEpBkMN0RkkLZs2YK4uDjExcVh3bp14v6ZM2fi0UcfbfA58+bNQ//+/Rs89vnnn6Njx44q+4YMGYL9+/eLP+/btw+BgYE4cuQIACA9PR3JycmNviYRSYPhhoiMxrfffov27dtj4MCB9Y7t2bMHN2/exOTJk+sdO3fuHH799VfMnz9fZX/dcFNRUYFr165hxowZ4r79+/ejb9++sLKy0vhnIaL7x3BDRAYpPDxc7Jbavn07rl27hsjISHz44Yf1zs3Ly8Nbb72Fr776qt6xyspKzJgxA19//TUUCoXKseDgYKSlpSE1NRVHjhxBnz59MHjwYOzbtw/AnZacoUOHaucDEtF9M5O6ACKi+7FlyxZx7EzteJnVq1fD2tq63rmzZ8/G22+/DTc3N5w/f17l2JIlS/Dkk0+iW7duSE5OVjlmYWGB/v37Y//+/bh27RoGDx6Mjh074saNGygrK8P+/fvx7bffausjEtF9YrghIoNXUFCAs2fPIjw8HABQVFSEkpISDBs2DNHR0YiJiUFMTAzmzp2LsrIy5ObmomvXrkhKSsKBAweQkpKC1atXo6qqCgUFBfD29sbx48fRsmVLDBkyBPv27cO1a9fElp++ffti69atuHnzJoKDg6X86ETUAIYbIjJ4jo6OyMnJEX/e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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "****************************************\n", "FILTER: JWST/NIRCam/F444W\n", "****************************************\n", "DetectorType: photon counter\n", "Description: NIRCam F444W filter\n", "Comments: includes NIRCam optics, DBS, QE and JWST Optical Telescope Element\n", "WavelengthRef: 44043.150837738 Angstrom\n", "WavelengthMean: 44393.515120525 Angstrom\n", "WavelengthEff: 43504.264673627 Angstrom\n", "WavelengthMin: 38039.572043804 Angstrom\n", "WavelengthMax: 50995.5 Angstrom\n", "WidthEff: 10676.002928393 Angstrom\n", "WavelengthCen: 44405.491515008 Angstrom\n", "WavelengthPivot: 44043.150837738 Angstrom\n", "WavelengthPeak: 43523.2 Angstrom\n", "WavelengthPhot: 43732.035994545 Angstrom\n", "FWHM: 11144.052434142 Angstrom\n", "WavelengthUpper50: 49977.517732078995 Angstrom\n", "WavelengthLower50: 38833.465297937 Angstrom\n", "****************************************\n", "\n" ] } ], "source": [ "# Example 2: Display filter and metadata\n", "# Construct the axis to plot this filter on using matplotlib\n", "fig, ax = plt.subplots()\n", "f444w.plot(ax, colour = \"red\", show = True)\n", "\n", "# Have a look at the meta properties of the filter\n", "print(f444w)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the above example, we have taken the filter profile (and associated properties) directly from the [SVO Filter Profile service](\"http://svo2.cab.inta-csic.es/theory/fps/\"). In addition to those available via SVO, `galfind` also provides a set of top-hat UVJ filters useful for the identification of passive galaxies at $z<4$ or so. When plotting these UVJ filters, we utilize the option to change the wavelength units that are plotted on the x axis. For more information on how `galfind` handles standard unit conversions, please see [Galfind unit conversions](../misc/units.ipynb)." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "****************************************\n", "FILTER: U\n", "****************************************\n", "WavelengthCen: 3650.0 Angstrom\n", "FWHM: 660.0 Angstrom\n", "****************************************\n", "\n", "****************************************\n", "FILTER: V\n", "****************************************\n", "WavelengthCen: 5510.0 Angstrom\n", "FWHM: 880.0 Angstrom\n", "****************************************\n", "\n", "****************************************\n", "FILTER: J\n", "****************************************\n", "WavelengthCen: 12200.0 Angstrom\n", "FWHM: 2130.0 Angstrom\n", "****************************************\n", "\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAHMCAYAAAAplYnpAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA1nUlEQVR4nO3dfVgVdf7/8dfh7iAaiJKgRouFeQfeki7drG6iZKzkVmaKaa5b2eZqUmqmQmpqWpJ9y5uyVbcUU8vK0miV1NakTJTUzdRSE01AM0A0QWB+f/Tz1AkwjsA5MD4f1zXX5fnMZ2be8/ESXs58Zo7FMAxDAAAAJuHm6gIAAACqE+EGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGwBWnuLhY48aNU3BwsNzc3NSvXz9JksVi0dNPP23rt3TpUlksFh05csQldQK4PIQb4Ar29NNPy2Kx6NSpU+WuDwsLU48ePap0jFGjRsliseibb76psM/EiRNlsVi0e/fuKh3LYrFo5MiRv9tv8eLFeu6553TPPffo3//+t8aMGVPpY8yfP19Lly6tQpUAapqHqwsAYG5xcXF66aWXlJycrISEhHL7rFixQuHh4Wrfvr1Tavr444/VvHlzvfDCC3btP/30kzw8Lv1jcf78+QoICNADDzxQgxUCqAqu3ACokqefflohISEVru/WrZtCQ0O1YsWKctenpaXp8OHDiouLq3AfmzdvrtbbQzk5OWrYsGGZdm9v798NNzWhuLhYRUVFTj8uYFaEGwA1Li4uTl9//bV27txZZl1ycrIsFosGDhxY43UcOXJEFotFmzZt0v/+9z9ZLBZZLBZt3rxZUtk5N78VEhKi//3vf9qyZYtt21/ftsvNzdVjjz2m4OBgWa1WhYaGatasWSotLS1Tw/PPP6+5c+fq+uuvl9Vq1VdffSVJeumll9SuXTv5+PjI399fERERSk5OronhAEyL21IAalxcXJymTJmi5ORkde7c2dZeUlKiVatW6dZbb9W1115b43VcffXVeuONNzR9+nQVFBRo5syZkqQ2bdpUavu5c+fqn//8pxo0aKCJEydKkgIDAyVJ586dU/fu3XX8+HE9/PDDuvbaa7Vt2zZNmDBBJ06c0Ny5c+32tWTJEp0/f14PPfSQrFarGjVqpEWLFmnUqFG65557NHr0aJ0/f167d+/W559/rkGDBlXfQAAmR7gBUONatmypG2+8UStXrtTs2bPl5vbzReONGzcqJydH06ZNc0od9evX1+DBg/Xaa6/J3d1dgwcPdmj7fv36adKkSQoICCizbVJSkr799lvt2rVLLVu2lCQ9/PDDatasmZ577jk9/vjjCg4OtvU/duyYvvnmG1199dW2tnXr1qldu3ZavXp1Fc4SALelADjk1KlTdsu5c+dUWlpapr2wsNBuu8GDB+vYsWP65JNPbG3Jycny8vJS//797frm5eXZ7SsvL0+S9OOPP9q1FxQU1PwJV9Lq1at16623yt/f367GqKgolZSU2J23JN199912wUaSGjZsqGPHjumLL75wZumA6XDlBsAlWSwWu8+//YVcUfuSJUvsnii67777FB8fr+TkZPXo0UPnz5/XO++8oz59+sjf399u2zvvvFNbtmwpc4xf39KSpKFDh9aax7IPHjyo3bt3Vzg+OTk5dp9btGhRps/48eO1ceNGde3aVaGhoerdu7cGDRqkm2++uUZqBsyKcANcwby9vSX9/Ah0ec6dO2frc9GGDRvsPr/++uv6z3/+o2XLltm1t2vXzu5zkyZN1KtXL7399tuaN2+e3n//fZ05c6bcp6TmzJmjH3/80fb5yy+/1BNPPKFly5bZ5rhIUrNmzSpxls5RWlqqXr16ady4ceWuv+GGG+w+16tXr0yfNm3aaP/+/frggw+UkpKit99+W/Pnz1dCQoKmTJlSI3UDZkS4Aa5gf/jDHyRJ+/fvt5sPIv0cbDIzM9W7d2+79qioKLvPW7dulbe3d5n28sTFxSklJUUffvihkpOT5evrq759+5bp16VLF7vPFx/Pvvnmmy/52Lkz/PZK1kXXX3+9CgoKKjUOl1K/fn0NGDBAAwYMUFFRke666y5Nnz5dEyZMKBM0AZSPOTfAFaxnz57y8vLSggUL7B5XlqRXX31VxcXF6tOnT7Udr1+/fvLx8dH8+fP14Ycf6q677qpzv7Dr16+v3NzcMu333nuv0tLS9NFHH5VZl5ubq+Li4t/d9w8//GD32cvLS23btpVhGLpw4cJl1wxcabhyA1zBmjRpooSEBE2aNEl/+tOfFBsbKx8fH23btk0rVqxQ7969y72ycrkaNGigfv362d7bcqkX99VWXbp00YIFC/TMM88oNDRU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AACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqbg83MybN08hISHy9vZWt27dtH379kv2nzt3rlq1aqV69eopODhYY8aM0fnz551ULQAAqO1cGm5Wrlyp+Ph4JSYmaufOnerQoYOio6OVk5NTbv/k5GQ9+eSTSkxM1L59+/Svf/1LK1eu1FNPPeXkygEAQG3l0nCTlJSkBx98UMOGDVPbtm21cOFC+fj4aPHixeX237Ztm26++WYNGjRIISEh6t27twYOHPi7V3sAAMCVw2XhpqioSOnp6YqKivqlGDc3RUVFKS0trdxtbrrpJqWnp9vCzKFDh7R+/XrdcccdFR6nsLBQ+fn5dgsAADAvD1cd+NSpUyopKVFgYKBde2BgoL7++utytxk0aJBOnTqlW265RYZhqLi4WCNGjLjkbamZM2dqypQp1Vo7AACovVw+odgRmzdv1owZMzR//nzt3LlTa9as0bp16zRt2rQKt5kwYYLy8vJsS2ZmphMrBgAAzuayKzcBAQFyd3dXdna2XXt2draCgoLK3Wby5Mm6//779fe//12SFB4errNnz+qhhx7SxIkT5eZWNqtZrVZZrdbqPwEAAFAruezKjZeXl7p06aLU1FRbW2lpqVJTUxUZGVnuNufOnSsTYNzd3SVJhmHUXLEAAKDOcNmVG0mKj4/X0KFDFRERoa5du2ru3Lk6e/ashg0bJkkaMmSImjdvrpkzZ0qS+vbtq6SkJHXq1EndunXTN998o8mTJ6tv3762kAMAAK5sLg03AwYM0MmTJ5WQkKCsrCx17NhRKSkptknGR48etbtSM2nSJFksFk2aNEnHjx/X1Vdfrb59+2r69OmuOgUA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oYOkn99Bc/F2FQAAgKs4fOWmR48eOnXqlPLz8+Xv729rf+ihh+Tj41OtxQEAADjK4XAjSe7u7nbBRuJrEAAAQO1QqXDTuXNnpaamyt/fX506dZLFYqmw786dO6utOAAAAEdVKtzceeedtiek+vXrV5P1AAAAVEmlws2vv9qgoq85AAAAqA0ua87NRQUFBXZvC5YkX1/fKhUEAABQFQ4/Cn748GHFxMSofv368vPzk7+/v/z9/dWwYcMyk4wBAACczeErN4MHD5ZhGFq8eLECAwMvObkYAADA2RwON19++aXS09PVqlWrmqgHAACgShy+LXXjjTcqMzOzJmoBAACoMoev3Lz22msaMWKEjh8/rrCwMHl6etqtb9++fbUVBwAA4CiHw83Jkyf17bffatiwYbY2i8UiwzBksVhUUlJSrQUCAAA4wuFw87e//U2dOnXSihUrmFAMAABqHYfDzXfffae1a9cqNDS0JuoBAACoEocnFN9222368ssva6IWAACAKnP4yk3fvn01ZswY7dmzR+Hh4WUmFMfGxlZbcQAAAI5yONyMGDFCkjR16tQy65hQDAAAXM3hcPPb75ICAACoTRyec1Oe3Nzc6tgNAABAlTkcbmbNmqWVK1faPvfv31+NGjVS8+bNmWgMAABczuFws3DhQgUHB0uSNmzYoI0bNyolJUV9+vTR2LFjq71AAAAARzg85yYrK8sWbj744APde++96t27t0JCQtStW7dqLxAAAMARDl+58ff3t31xZkpKiqKioiRJhmHwpBQAAHA5h6/c3HXXXRo0aJBatmypH374QX369JEk7dq1i7cWAwAAl3M43LzwwgsKCQlRZmamZs+erQYNGkiSTpw4oX/84x/VXiAAAIAjHA43np6eeuKJJ8q0jxkzploKAgAAqAqHw40kHTx4UJs2bVJOTk6Zl/olJCRUS2EAAACXw+Fws2jRIj3yyCMKCAhQUFCQLBaLbZ3FYiHcAAAAl3I43DzzzDOaPn26xo8fXxP1AAAAVInDj4L/+OOP6t+/f03UAgAAUGUOh5v+/fvrP//5T03UAgAAUGUO35YKDQ3V5MmT9dlnnyk8PFyenp5260eNGlVtxQEAADjK4XDz6quvqkGDBtqyZYu2bNlit85isRBuAACASzkcbg4fPlwTdQAAAFQLh+fcAAAA1GaX9RK/Y8eOae3atTp6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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Example 3: Create UVJ filters\n", "# initialize the UVJ filters\n", "U_filter = U()\n", "V_filter = V()\n", "J_filter = J()\n", "filters_to_plot = [U_filter, V_filter, J_filter]\n", "\n", "# plot the UVJ filters\n", "fig, ax = plt.subplots()\n", "# plotting meta\n", "wav_units = u.AA\n", "colours_to_plot = [\"blue\", \"green\", \"red\"]\n", "for i, (filt, colour) in enumerate(zip(filters_to_plot, colours_to_plot)):\n", " # print string representation of the filter\n", " print(filt)\n", " # plot the filter on the axis\n", " filt.plot(ax, wav_units = wav_units, show = True if i == len(filters_to_plot) - 1 else False, colour = colour)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We have now learnt how to both load in filters directly from the SVO as well as access the UVJ filters built into `galfind` itself, but what if we have some strange filter not included in either. Maybe we want to test out some future instrument (for instance the ELT MICADO filterset), or maybe we want to procrastinate? Let's have a little fun shall we." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAHLCAYAAAA0kLlRAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABizElEQVR4nO3de1yO9/8H8Nfd3UlSIkVEkpljUUnGMJHD5DBEKEnnEznmnDkfxuaw5mxm02abGVtjYd/ZmpDM+ZxjRQ6lpNJ9/f7o59ruKYr77rq7ez0fj/sx13Vf1329PqX1dl2fg0wQBAFEREREWkJH6gBEREREqsTihoiIiLQKixsiIiLSKixuiIiISKuwuCEiIiKtwuKGiIiItAqLGyIiItIqLG6IiIhIq7C4ISIiIq3C4oaIKtTo0aNhY2Oj0s+8dOkSevbsCVNTU8hkMuzatQtbtmyBTCZDamqqeFzXrl3RtWtXlV6biDQPixsiqvR8fHxw6tQpzJ8/H9u2bYOTk1OZzrtz5w7mzJmDlJQU9QYkogol49pSRFSRCgsLoVAoYGBgoJLPy8vLg5GREaZPn4558+aJ+4uKilBYWAgDAwPIZDIAEO/aHDp0CABw7NgxODs7Y/PmzRg9erRK8hCR9HSlDkBEVYuenp5KP+/evXsAgJo1ayrtl8vlkMvlKr1WWeXm5qJ69eqSXJuI+FiKiFTo8ePHGDduHGxsbGBgYAALCwv06NEDycnJ4jH/7XOTmpoKmUyGZcuWYd26dWjSpAkMDAzg7OyMo0ePvvR6c+bMQaNGjQAAkyZNgkwmEz+7pD43/3bo0CE4OzsDAHx9fSGTySCTybBlyxbxmCNHjqBXr14wNTWFkZERunTpgj/++OOFDDKZDGfPnoWXlxfMzMzQqVOnMn7FiEgdeOeGiFQmKCgIO3fuRFhYGFq0aIH79+/j8OHDOHfuHNq1a/fSc7/88ks8fvwYgYGBkMlkWLJkCQYNGoSrV6+Werdn0KBBqFmzJsaPH4/hw4ejT58+MDY2LlPW5s2bY+7cuZg1axYCAgLQuXNnAEDHjh0BAAcOHEDv3r3h6OiI2bNnQ0dHB5s3b8Z7772H33//He3bt1f6vCFDhqBp06ZYsGAB+LSfSFosbohIZfbu3Qt/f38sX75c3Dd58uQynXvjxg1cunQJZmZmAIBmzZqhf//++OWXX/D++++XeE6bNm1gYmKC8ePHo127dhg5cmSZs1paWqJ3796YNWsWXF1dlc4VBAFBQUHo1q0bfv75Z7HPTmBgIFq2bIkZM2Zg3759Sp9nb2+PL7/8sszXJyL14WMpIlKZmjVr4siRI7hz5065z/X09BQLGwDinZSrV6+qLF9ZpaSk4NKlS/Dy8sL9+/eRmZmJzMxM5Obmonv37vjf//4HhUKhdE5QUFCF5ySikvHODRGpzJIlS+Dj4wNra2s4OjqiT58+8Pb2hq2t7SvPbdiwodL280Ln4cOHasn6MpcuXQJQPMS8NFlZWUrFWOPGjdWei4jKhsUNEanM0KFD0blzZ3z//ffYt28fli5disWLF+O7775D7969X3puaSObpOi/8vyuzNKlS+Hg4FDiMf/t21OtWjV1xyKiMmJxQ0QqVa9ePYSEhCAkJAR3795Fu3btMH/+/FcWN1J43pfmv5o0aQIAMDExgZubW0VGIiIVYJ8bIlKJoqIiZGVlKe2zsLCAlZUV8vPzJUr1cs/nonn06JHSfkdHRzRp0gTLli1DTk7OC+c9n1uHiDQT79wQkUo8fvwYDRo0wODBg2Fvbw9jY2P8+uuvOHr0qNLoKU3SpEkT1KxZE7GxsahRowaqV68OFxcXNG7cGBs2bEDv3r3RsmVL+Pr6on79+rh9+zYOHjwIExMT/Pjjj1LHJ6JSsLghIpUwMjJCSEgI9u3bh++++w4KhQJ2dnZYu3YtgoODpY5XIj09PWzduhXR0dEICgrCs2fPsHnzZjRu3Bhdu3ZFYmIiPvzwQ6xevRo5OTmoW7cuXFxcEBgYKHV0InoJri1FREREWoV9boiIiEirsLghIiIircLihoiIiLQKixsiIiLSKixuiIiISKuwuCEiIiKtUuXmuVEoFLhz5w5q1KhR6tTrREREpFkEQcDjx49hZWUFHZ2X35upcsXNnTt3YG1tLXUMIiIieg03b95EgwYNXnpMlStuatSoAaD4i2NiYiJxGiIiIiqL7OxsWFtbi7/HX6bKFTfPH0WZmJiwuCEiIqpkytKlhB2KiYiISKuwuCEiIiKtwuKGiIiItAqLGyIiItIqLG6IiIhIq7C4ISIiIq3C4oaIiIi0CosbIiIi0iosboiIiEirsLghIiIircLihoiIiLQKixsiIiLSKixuiIiISKuwuCEiIiKtwuKGiIiItAqLGyIiItIqLG6IiIhIq7C4ISIiIq3C4oaIiIi0CosbIiIi0iosboiIiEirsLghIiIircLihoiIiLQKixsiIiLSKixuiIiISKuwuCEiIiKtwuKGiIiItAqLGyIiItIqLG6IiIhIq7C4ISIiIq3C4oaIiIi0CosbIiIi0iosboiIiEirsLghIiIirSJ5cbNmzRrY2NjA0NAQLi4uSEpKeunxK1euRLNmzVCtWjVYW1tj/PjxePr0aQWlJSIiIk0naXETFxeHqKgozJ49G8nJybC3t4e7uzvu3r1b4vFffvklpk6ditmzZ+PcuXPYuHEj4uLiMG3atApOTkRERJpKJgiCINXFXVxc4OzsjNWrVwMAFAoFrK2tER4ejqlTp75wfFhYGM6dO4eEhARx34QJE3DkyBEcPny4TNfMzs6GqakpsrKyYGJiopqGUKVVVFSErKwsPHjwAHl5eXj+42BkZISaNWvC1NQUenp6EqckIqLy/P7WraBMLygoKMDx48cRHR0t7tPR0YGbmxsSExNLPKdjx4744osvkJSUhPbt2+Pq1av46aefMGrUqFKvk5+fj/z8fHE7OztbdY2gSiMvLw8pKSlISkrCyZMncfnyZVy5cgVpaWl4VX1ft25d2NraokmTJmjTpg0cHR3Rrl07mJqaVlB6IiIqD8mKm8zMTBQVFcHS0lJpv6WlJc6fP1/iOV5eXsjMzESnTp0gCAKePXuGoKCglz6WWrhwIWJiYlSanTSfQqHA8ePH8dNPP+Gnn35CcnIynj179lqflZ6ejvT0dPz555/iPplMBicnJ/To0QM9e/ZEx44deYeHiEhDSFbcvI5Dhw5hwYIFWLt2LVxcXHD58mVERkbiww8/xMyZM0s8Jzo6GlFRUeJ2dnY2rK2tKyoyVSBBEHDixAls2bIFX3/9NTIyMl56fI0aNVC7dm3UqFEDNWrUgL6+PmQyGYDiO365ubnIyclBZmYmsrKyXrjW0aNHcfToUSxYsAC1a9fGkCFDMGLECHTs2BE6OpL31SciqrIk63NTUFAAIyMj7Ny5EwMGDBD3+/j44NGjR/jhhx9eOKdz587o0KEDli5dKu774osvEBAQgJycnDL9QmGfG+3z+PFjbNq0CRs2bMDp06dLPKZevXqws7NDs2bN0KxZM1hbW8PIyKjM18jPz8ft27dx+fJlXLx4EefOncPNmzdLPNbGxgYhISHw8/NDrVq1XqtNRESkrFL0udHX14ejoyMSEhLE4kahUCAhIQFhYWElnvPkyZMXChi5XA4Ar+w3Qdrn1q1b+OSTT7Bu3boX7qzo6emhZcuWcHJyQocOHWBhYfFG1zIwMICtrS1sbW3Rs2dPAMCDBw+QkpKCI0eO4Pjx4ygoKAAApKamYvLkyZg9ezZGjRqFCRMm4K233nqj6xMRUdlJOloqLi4OPj4++Oyzz9C+fXusXLkSX3/9Nc6fPw9LS0t4e3ujfv36WLhwIQBgzpw5+Oijj7Bu3TrxsVRwcDAcHR0RFxdXpmvyzk3ll5aWhg8//BDr169/oR+NnZ0dunbtim7duqFGjRoVlikvLw9//fUXDhw4gJMnTyq9p6OjA29vb8ycORO2trYVlomISJtUijs3AODp6Yl79+5h1qxZSE9Ph4ODA+Lj48VOxjdu3FC6UzNjxgzIZDLMmDEDt2/fRp06ddCvXz/Mnz9fqiZQBXr48CGWLFmCjz/+GHl5eeJ+XV1ddOzYEYMGDZKseKhWrRq6deuGbt264c6dO/jxxx+RkJCAp0+fQqFQYMuWLfjiiy8wZswYfPjhh298J4mIiEon6Z0bKfDOTeWjUCiwdetWTJ48GZmZmeJ+AwMDuLu7Y+DAgahdu7aECUv25MkT/Pjjj9i1axdyc3PF/aampoiJiUFISAhHWBERlVF5fn+zuCGNdvLkSYSEhCgNw9bV1UX37t3h5eUFMzMzCdOVTW5uLnbv3o3vv/9eaamQFi1aYN26dXjnnXckTEdEVDmwuHkJFjeVQ0FBAebNm4cFCxagqKhI3O/s7IyxY8eiXr16EqZ7PQ8fPsTWrVtx4MABcZ9MJkNkZCTmz59frtFbRERVDYubl2Bxo/lOnToFb29vpKSkiPssLS3h7++P9u3bSxdMRS5evIjY2FhcvnxZ3NekSRNs3rwZnTt3ljAZEZHmKs/vb840RhpDEASsWLECjo6OYmEjl8sxcOBArFmzRisKGwB46623sHTpUvj6+op9bq5cuYKuXbti7ty5SneqiIio/HjnhjTCw4cP4evrqzR5o5WVFcaNG4e3335bwmTqdfv2bXzyySc4d+6cuK9Lly7Yvn076tevL2EyIiLNwsdSL8HiRvMcPXoUQ4cORWpqqrivd+/e8PPzg76+vnTBKkhRURF27tyJL7/8UpyMsnbt2oiLi0P37t0lTkdEpBn4WIoqjW3btqFTp05iYVO9enVMmTIFwcHBVaKwAYofvXl6emLhwoXikPb79+/D3d0dK1eu5OzbRETlxOKGJFFUVISpU6fC29tbXLagSZMmWLFiRZUdGt2iRQt88skncHR0BFD8NRo/fjxGjx6tNGkhERG9HB9LUYV7/PgxRowYgR9//FHc161bN4SFhXFSOxQXNdu3b8fOnTvFfR06dMCePXs0crJCIqKKwMdSpLHS0tLQqVMnsbCRyWTw8fHBuHHjWNj8P7lcDm9vb0yePBkGBgYAgL/++guurq64du2axOmIiDQfixuqMJcuXULHjh3x999/Ayhej2natGn44IMPIJPJJE6neTp16oRFixahZs2aAIq/fi4uLjh27Ji0wYiINByLG6oQycnJeOedd8SOw7Vr18aiRYvg4uIibTAN16RJEyxdulQcFn7v3j107doVv/zyi8TJiIg0F4sbUruDBw+ia9euuHfvHgCgfv36WLx4MRo3bixxssrB0tISS5YsQfPmzQEUr1Xl4eGhNCcQERH9g8UNqdUvv/yC3r174/HjxwAAOzs7LF68GBYWFhInq1xq1KiBDz/8EK6urgCK194aPHgw4uLiJE5GRKR5WNyQ2sTHx6N///7Iz88HANjb22PBggUcpfaa9PX1MXnyZHTt2hUA8OzZM3h5eWHr1q3SBiMi0jAsbkgtfvrpJ6XCxsnJCbNmzYKhoaHEySo3uVyOcePGoUePHgAAhUKB0aNHY8OGDRInIyLSHCxuSOX27NmDgQMHipPzOTk5ITo6mkO9VURHRwehoaHo27evuC8gIADbt2+XMBURkeZgcUMqdeDAAXzwwQdiYePs7MzCRg10dHQQEBCA/v37AyheUd3HxwfffvutxMmIiKTH4oZUJikpCR4eHmJh0759exY2aiSTyTBmzBj07t0bQPHMxsOHD8fevXslTkZEJC0WN6QSp0+fRu/evZGbmwsAcHBwwJQpU6CrqytxMu0mk8kQGBiI9957DwBQWFiIDz74AAcOHJA4GRGRdFjc0Bu7du0aevbsiQcPHgAAmjVrhmnTpvGOTQXR0dFBeHg4OnXqBADIz89H//79cfLkSYmTERFJg8UNvZH09HS4ubkhLS0NAGBjY4PZs2dzVFQFk8vliIqKgrOzMwAgJycHvXr1EmeEJiKqSljc0GvLzc3F+++/j6tXrwIA6tWrh5iYGBgbG0ucrGrS1dXF5MmT0axZMwDFhWfPnj1x//59iZMREVUsFjf0Wp53Xj1+/DgAoFatWoiJiYGZmZnEyao2AwMDzJw5E1ZWVgCKF9vs27cvnjx5InEyIqKKw+KGyk0QBIwbNw4//vgjgOLVvWfMmIG6detKnIwAwMTEBDExMeJq4keOHMHw4cNRVFQkbTAiogrC4obK7eOPP8bq1asBFPf1mDBhAuzs7CRORf9maWmJOXPmoFq1agCA3bt3Y+rUqRKnIiKqGCxuqFx27dqFqKgocXvs2LFo3769hImoNLa2toiOjoaOTvGP+bJly7B582aJUxERqR+LGyqzkydPYsSIERAEAQDQv39/pSUASPM4ODggMDBQ3A4MDMTvv/8uYSIiIvVjcUNlkpmZif79+4sdUzt06ABfX1+JU1FZ9O7dWyxCCwsLMXDgQFy7dk3iVERE6sPihl6psLAQQ4YMwfXr1wEUz2UzYcIE8XEHab6xY8fCwcEBAHD//n307dsX2dnZ0oYiIlITjfjttGbNGtjY2MDQ0BAuLi5ISkoq9diuXbtCJpO98OLjEfWJiorCoUOHAACmpqaYMWMGDAwMpA1F5SKXyzF58mTUr18fAHDu3DmMHDkSCoVC4mRERKoneXETFxeHqKgozJ49G8nJybC3t4e7uzvu3r1b4vHfffcd0tLSxNfp06chl8sxZMiQCk5eNWzcuFEcGaWrq4tJkybBwsJC4lT0OoyNjTFz5kxxksUff/wRCxculDgVEZHqSV7cfPTRR/D394evry9atGiB2NhYGBkZYdOmTSUeX6tWLdStW1d87d+/H0ZGRixu1OCvv/5CcHCwuO3n54c2bdpImIjelJWVFSZOnAiZTAYAmDlzJvbt2ydxKiIi1ZK0uCkoKMDx48fh5uYm7tPR0YGbmxsSExPL9BkbN27EsGHDUL169RLfz8/PR3Z2ttKLXi0zMxNDhgxBYWEhAKBHjx589Kcl2rVrBy8vLwDFEzIOGzaMa1ARkVaRtLjJzMxEUVERLC0tlfZbWloiPT39lecnJSXh9OnTGDt2bKnHLFy4EKampuLL2tr6jXNru6KiIowYMQK3bt0CADRt2hRBQUESpyJVGjJkiLjI5sOHDzFgwADk5eVJnIqISDUkfyz1JjZu3IjWrVu/dBK56OhoZGVlia+bN29WYMLKaf78+eKjChMTE0ydOhV6enoSpyJV0tHRwfjx41GvXj0AxXMYBQUFiXMYERFVZpIWN+bm5pDL5cjIyFDan5GR8cp1inJzc7Fjxw74+fm99DgDAwOYmJgovah0+/fvx5w5cwAAMpkM48aNQ506daQNRWphbGyMadOmiSPfPv/8c85gTERaQdLiRl9fH46OjkhISBD3KRQKJCQkwNXV9aXnfvPNN8jPz8fIkSPVHbPKuHXrFry8vMR/vQ8ePBhOTk4SpyJ1atSoEcLCwsTt0NBQnD17VsJERERvTvLHUlFRUVi/fj22bt2Kc+fOITg4GLm5ueLst97e3oiOjn7hvI0bN2LAgAGoXbt2RUfWSoWFhfD09ERmZiYAoE2bNmKnU9JuXbp0gbu7OwDg6dOnGDJkiDgTNRFRZaQrdQBPT0/cu3cPs2bNQnp6OhwcHBAfHy92Mr5x48YLM+FeuHABhw8f5hBWFZo+fTr+/PNPAEDt2rUxadIkyOVyiVNRRRk7dizOnz+P69ev4+zZs4iIiMCGDRukjkVE9FpkQhXrQZidnQ1TU1NkZWWx/83/279/P3r27AmgeCbbDz/8EK1atZI4FVW0mzdvIioqCvn5+QCA7du38+4dEWmM8vz+lvyxFEnr3r178Pb2Frc9PT1Z2FRR1tbWSkP+AwICcOnSJQkTERG9HhY3VZggCPD19RXnFGrVqhVneq7iunfvjm7dugEoHpE4ZMgQ8U4OEVFlweKmClu1ahX27t0LAKhRowYmTJjAfjaEoKAgcYHNkydPYtq0aRInIiIqHxY3VdTJkycxadIkcTs8PJwjzwgAUK1aNUyePBm6usXjDVasWIEDBw5InIqIqOxY3FRBT548wfDhw1FQUAAAcHd3R4cOHSRORZqkcePGYl8sQRAwatQoPHz4UOJURERlw+KmCpo4cSLOnTsHAGjYsCH8/f0lTkSayMPDQ1wF/s6dOwgICODyDERUKbC4qWJ++eUXfPrppwCKZ4ieOHEi9PX1JU5FmkhHRwfjxo2DsbExAGDnzp3Ytm2bxKmIiF6NxU0V8vDhQ4wZM0bcHjFiBGxsbKQLRBrP3NwcISEh4nZoaChSU1OlC0REVAYsbqqQsLAw3LlzB0DxsO/+/ftLnIgqg06dOonDw3NycuDl5YWioiKJUxERlY7FTRXx9ddf48svvwQAGBkZYdy4cS8sa0FUmsDAQFhYWAAAEhMTsXz5cokTERGVjr/dqoC0tDQEBweL235+fuIvKqKyMDIyQlRUFGQyGQBg5syZXD2ciDQWixstJwgCxo4diwcPHgAAnJ2d4ebmJnEqqoxatGiBAQMGAAAKCgowatQoPHv2TNpQREQlYHGj5TZs2ICffvoJAGBqaorw8HDxX99E5eXl5YUGDRoAAJKTk7FkyRKJExERvYjFjRa7du0axo8fL24HBQWhZs2a0gWiSs/AwACRkZFif605c+bg1KlTEqciIlLG4kZLPX8clZubCwDo0qUL3nnnHYlTkTZo1qwZBg4cCAAoLCzEyJEjUVhYKHEqIqJ/sLjRUhs2bBDXA6pVqxaCgoIkTkTaxMvLCw0bNgQA/P3331iwYIHEiYiI/sHiRgvdunULEydOFLeDgoJQvXp1CRORttHT01N6PDVv3jykpKRIG4qI6P+xuNEygiAgMDAQ2dnZAIDOnTtzUUxSi6ZNm2Lw4MEAgGfPnvHxFBFpDBY3Wmb79u1Ko6MCAwMlTkTazNPTU1zC48yZMxw9RUQagcWNFklPT0dERIS47e/vDxMTEwkTkbbT09NDeHi4+Hhq7ty5uHDhgsSpiKiqY3GjRcLCwvDw4UMAgIuLC959912JE1FV0LRpU3GdsoKCAvj6+kKhUEicioiqMhY3WmLnzp349ttvAQDGxsZKKzkTqZuXlxfq1q0LoHjtqdjYWIkTEVFVxuJGC9y/fx+hoaHi9pgxY2BmZiZhIqpqDAwMlP4OTpkyBbdu3ZIwERFVZSxutMCECRNw9+5dAEC7du3QvXt3iRNRVWRvb48ePXoAAHJychAQEABBECRORURVEYubSu7AgQPYunUrAKBatWoIDQ3l2lEkGV9fX/Gu4c8//4wdO3ZInIiIqiIWN5XY06dPlWYe9vLyQp06dSRMRFWdsbGx0vQD4eHhuH//voSJiKgqYnFTic2fPx+XLl0CANjZ2eH999+XOBER0LFjR7i6ugIo7g/27+kJiIgqAoubSurs2bNYvHgxAEAulyM0NBRyuVziVETFAgMDxSU/vvzyS+zfv1/iRERUlbC4qYQUCgUCAgLEqe779u2LJk2aSJyK6B+1atWCr6+vuB0YGIinT59KmIiIqhIWN5XQhg0b8McffwAALCwsMHLkSIkTEb3Izc0NLVq0AABcu3YN8+fPlzgREVUVkhc3a9asgY2NDQwNDeHi4oKkpKSXHv/o0SOEhoaiXr16MDAwwFtvvSWupVQVpKenY/LkyeJ2UFAQDA0NJUxEVDIdHR2EhISIj0sXL17MpRmIqEJIWtzExcUhKioKs2fPRnJyMuzt7eHu7i7O2fJfBQUF6NGjB1JTU7Fz505cuHAB69evR/369Ss4uXTGjRuHrKwsAMA777wDJycniRMRla5hw4YYMGAAAKCwsBD+/v6c+4aI1E4mSPh/GhcXFzg7O2P16tUAivuSWFtbIzw8HFOnTn3h+NjYWCxduhTnz5+Hnp7ea10zOzsbpqamyMrKqnSLSv7888/o06cPgOIht2vWrOFMxKTx8vPzERYWhoyMDADA1q1b4e3tLXEqIqpsyvP7W7I7NwUFBTh+/Djc3Nz+CaOjAzc3NyQmJpZ4zu7du+Hq6orQ0FBYWlqiVatWWLBgAYqKikq9Tn5+PrKzs5VelVFubi6Cg4PF7ZEjR7KwoUrBwMBAaT6mqKgoPHjwQMJERKTtJCtuMjMzUVRUBEtLS6X9lpaWSE9PL/Gcq1evYufOnSgqKsJPP/2EmTNnYvny5Zg3b16p11m4cCFMTU3Fl7W1tUrbUVHmzZuH69evAwDefvtt9OrVS+JERGXn6OiId955B0Dx3DcTJ06UOBERaTPJOxSXh0KhgIWFBdatWwdHR0d4enpi+vTpL12BODo6GllZWeLr5s2bFZhYNc6dO4fly5cDAHR1dRESEgIdnUr1rSPC2LFjUa1aNQDA5s2bcfjwYYkTEZG2kuw3pLm5OeRyufgc/rmMjAzUrVu3xHPq1auHt956S2myuubNmyM9PR0FBQUlnmNgYAATExOlV2UiCAJCQ0PFOW369OkDGxsbaUMRvYbatWtj1KhR4ra/v7/495qISJUkK2709fXh6OiIhIQEcZ9CoUBCQoI4dft/vfPOO7h8+TIUCoW47+LFi6hXrx709fXVnlkKO3bswMGDBwEUF4Sc04Yqs969e8POzg4AcP78efGOJBGRKkn6bCMqKgrr16/H1q1bce7cOQQHByM3N1ec2dTb2xvR0dHi8cHBwXjw4AEiIyNx8eJF7N27FwsWLEBoaKhUTVCr7OxsTJgwQdweM2YM57ShSk0ulys9Vo2JicGNGzckTkVE2kZXyot7enri3r17mDVrFtLT0+Hg4ID4+Hixk/GNGzeU+pZYW1vjl19+wfjx49GmTRvUr18fkZGRmDJlilRNUKvZs2cjLS0NAODg4IBOnTpJnIjozdnZ2aFPnz7Ys2cPnj59ioiICOzatUvqWESkRSSd50YKlWWem7///hvt2rVDUVER9PT0sGrVKlhZWUkdi0glcnJyEBISgkePHgEA4uPj4e7uLm0oItJolWKeGyqdQqFASEiIOH/PgAEDWNiQVjE2Nsbo0aPF7ZCQEOTn50sXiIi0CosbDfT555+LC2NaWlrC09NT4kREqtetWzdxYc2rV69i6dKlEiciIm3B4kbDPHjwAJMmTRK3/f39tXYkGFVtMpkMgYGBYr+6+fPnixNVEhG9CRY3Gmb69OnIzMwEADg7O6N9+/YSJyJSn8aNG6Nv374AIHYuJiJ6UyxuNMjRo0fx2WefASiefDAwMFDiRETq5+XlhZo1awIoXj8uPj5e2kBEVOmxuNEQRUVFCAkJwfPBax988AEsLCwkTkWkftWrVxfntgLYuZiI3hyLGw2xfv16HDt2DABgZWWFDz74QOJERBWna9euYufia9euYcmSJRInIqLKjMWNBrh//z6mT58ubgcFBUFPT0/CREQV67+dixcsWMDOxUT02ljcaICZM2fiwYMHAABXV1c4ODhIG4hIAuxcTESqwuJGYikpKUqdiMeOHStxIiLp/Ldz8c8//yxtICKqlFjcSEgQBERERIirnA8cOBB16tSROBWRdErqXPz06VMJExFRZcTiRkI7duzA77//DqB4JuLBgwdLnIhIev/uXJyamoply5ZJnIiIKpvXWjjz0aNHSEpKwt27d8W7Ds95e3urLJw6aMrCmTk5OXj77bdx+/ZtAEB0dDRcXV0ly0OkSVJTUzFu3DgoFApUq1YNFy9eRIMGDaSORUQSKs/vb93yfviPP/6IESNGICcnByYmJpDJZOJ7MplM44sbTbFgwQKxsLG3t2dhQ/QvNjY26N27N/bu3Yu8vDxMmDABcXFxUsciokqi3I+lJkyYgDFjxiAnJwePHj3Cw4cPxdfzET/0cpcvX8by5csBALq6uggICJA4EZHmGTFiBGrUqAEA+Prrr8VHuEREr1Lu4ub27duIiIiAkZGROvJUCVFRUSgoKAAA9O7dG9bW1hInItI8xsbGGDVqlLgdEhKCoqIiCRMRUWVR7uLG3d1dnEmXyu/nn3/Gjz/+CAAwMzPDiBEjJE5EpLl69OgBW1tbAMDp06fFaROIiF6m3H1u+vbti0mTJuHs2bNo3br1CzPpenh4qCyctikoKEBkZKS4PWrUKN4BI3oJuVyOgIAATJ06FQAwffp0eHp6onbt2hInIyJNVu7ixt/fHwAwd+7cF96TyWS8bfwSK1euxKVLlwAATZs2Rffu3SVORKT5WrRogS5duuC3337Do0ePMH36dMTGxkodi4g0WLkfSykUilJfLGxKd+fOHXz44YcA/llH598jzYiodKNHj4ahoSGA4kVmT548KXEiItJknMSvgkydOhU5OTkAgG7duuGtt96SOBFR5VG7dm0MHToUQPE/sEJCQvAaU3QRURXxWsXNb7/9hn79+sHOzg52dnbw8PDgMM2X+PPPP7Ft2zYAgJGREUaPHi1tIKJKqH///qhbty6A4p8pzntDRKUpd3HzxRdfwM3NDUZGRoiIiEBERASqVauG7t2748svv1RHxkqtqKgI4eHh4ranp6e4MCARlZ2enp7Y5w8onlIhNzdXwkREpKnKXdzMnz8fS5YsQVxcnFjcxMXFYdGiRWKfEvrHpk2bkJycDACwtrZGv379JE5EVHk5OTnB0dERAJCWloYFCxZInIiINFG5i5urV6+W+Avaw8MD165dU0kobfHw4UNMmzZN3Pb394eubrkHqBHR/5PJZBg7dqz4c7Rs2TJcvXpV4lREpGnKXdxYW1sjISHhhf2//vorZ9r9j9mzZyMzMxMA4OLiAgcHB2kDEWmB+vXri/Np/XfuKCIi4DXmuZkwYQIiIiKQkpKCjh07AgD++OMPbNmyBR9//LHKA1ZWp06dwtq1awEA+vr6GDt2rMSJiLTH0KFDcfDgQTx8+BB79uzBvn370LNnT6ljEZGGKHdxExwcjLp162L58uX4+uuvAQDNmzdHXFwc+vfvr/KAlZEgCIiIiBDn/enfvz8sLS0lTkWkPZ6POlyxYgUAICwsDGfOnHlhxnQiqppkQhWbLCI7OxumpqbIysqCiYmJWq7xzTffiHNy1KlTB2vXroWBgYFarkVUVSkUCkyZMgUXLlwAACxfvhxRUVESpyIidSnP729O4qdiubm5mDBhgrjt6+vLwoZIDXR0dBAQECDO9D179mxkZGRInIqINEGZiptatWqJHWPNzMxQq1atUl+vY82aNbCxsYGhoSFcXFyQlJRU6rFbtmyBTCZTej2fll0TLF68GDdv3gQAtGrVCu+8847EiYi0V9OmTdGjRw8AQE5ODiZPnixxIiLSBGXqc7NixQrUqFFD/LMq10SKi4tDVFQUYmNj4eLigpUrV8Ld3R0XLlyAhYVFieeYmJiIt6IBaMwaTdeuXcOSJUsAFK9mzPWjiNRv5MiROHz4MJ48eYLPP/8coaGhaN++vdSxiEhCkve5cXFxgbOzM1avXg2g+Dm6tbU1wsPDMXXq1BeO37JlC8aNG4dHjx691vXU2edm4MCB2LVrFwCgT58+CAoKUunnE1HJdu/ejQ0bNgAAHB0dkZSUBB0dPnUn0iZq7XOTnJyMU6dOids//PADBgwYgGnTpqGgoKBcn1VQUIDjx4/Dzc3tn0A6OnBzc0NiYmKp5+Xk5KBRo0awtrZG//79cebMmVKPzc/PR3Z2ttJLHQ4ePCgWNqamphg5cqRarkNEL+rTp484z9bx48exdetWiRMRVU379+9HvXr14OXlJWmOchc3gYGBuHjxIoDi2Yo9PT1hZGSEb775ptzPuzMzM1FUVPTCMGlLS0ukp6eXeE6zZs2wadMm/PDDD/jiiy+gUCjQsWNH3Lp1q8TjFy5cCFNTU/GlrokG9+7dK/7Z09MTxsbGarkOEb1IV1cXAQEB4vaUKVOQlZUlYSKiqufx48fw8fFBeno6vvrqK6SlpUmWpdzFzcWLF8WZdr/55ht06dIFX375JbZs2YJvv/1W1fle4OrqCm9vbzg4OKBLly747rvvUKdOHXz22WclHh8dHY2srCzx9byzr6oVFhaKf27atKlarkFEpbO3txcnFr137x5iYmIkTkRUtSxYsECpoCnv0xxVKndxIwgCFAoFgOIlF/r06QOgeFmG5yOqysrc3BxyufyF4ZsZGRmoW7dumT5DT08Pbdu2xeXLl0t838DAACYmJkovItJOvr6+0NfXBwCsWrUK586dkzgRUdVw+fJlfPTRR1LHEJW7uHFycsK8efOwbds2/Pbbb+jbty+A4pFC5Z2FV19fH46OjkprVSkUCiQkJMDV1bVMn1FUVIRTp06hXr165bo2EWkfS0tLDBo0CADw7NkzhIeHo4rNU0okiQkTJkh6p+a/yl3crFy5EsnJyQgLC8P06dNhZ2cHANi5c6d4S7g8oqKisH79emzduhXnzp1DcHAwcnNz4evrCwDw9vZGdHS0ePzcuXOxb98+XL16FcnJyRg5ciSuX7/OtZuICADwwQcfoE6dOgCAhIQE7N69W+JERNpt3759GvdzVu61pdq0aaM0Wuq5pUuXQi6XlzuAp6cn7t27h1mzZiE9PR0ODg6Ij48X7wLduHFDaUjnw4cP4e/vj/T0dJiZmcHR0RF//vknWrRoUe5rE5H2MTAwgJ+fHxYtWgQAiIiIgLu7u0ZN9kmkLQoLCxEZGSluGxkZ4cmTJxImKlbuOzc3b95UGpmUlJSEcePG4fPPP3/tRevCwsJw/fp15Ofn48iRI3BxcRHfO3ToELZs2SJur1ixQjw2PT0de/fuRdu2bV/rukSknVxdXdGmTRsAxf9AWrZsmcSJiLTTqlWrcP78eQCAra2txvw+Lndx4+XlhYMHDwIA0tPT0aNHDyQlJWH69OmYO3euygMSEZWXTCaDv7+/eNd3wYIFahspSVRVpaenY86cOQCKf+YCAgI0ZvLMcqc4ffq0OLX5119/jVatWuHPP//E9u3ble6wEBFJqVGjRuKAh7y8PKUFbYnozUVHR+Px48cAgM6dO2tU95ByFzeFhYXiKte//vorPDw8AABvv/22pBP2EBH91/Dhw8XpH7755hv89ttvEici0g5HjhwRb2hUq1ZNHASkKcpd3LRs2RKxsbH4/fffsX//fvTq1QsAcOfOHdSuXVvlAYmIXpexsTG8vb3F7dDQUDx79kzCRESVn0KhQHh4uLg9ePBgjfv9X+7iZvHixfjss8/QtWtXDB8+HPb29gCKF67jSrxEpGm6d++OJk2aAADOnDlT6mzmRFQ2W7ZswdGjRwEAVlZWGDBggLSBSlDu4qZr167IzMxEZmYmNm3aJO4PCAhAbGysSsMREb0puVyutO7U9OnTcf/+fQkTEVVejx49wtSpU8VtPz+/1x4prU6v1a1ZLpfDzMxMaZ+NjQ0sLCxUEoqISJWaN2+Obt26AQCysrIwffp0iRMRVU4xMTG4d+8egOIVC5ydnSVOVLIyTeLXrl07JCQkwMzMDG3btoVMJiv12OTkZJWFIyJSFR8fHyQmJuLp06dYv349goKCxEWAiejVzp49i1WrVgEoXj5Jk1cGKFNx079/f3GElCY+WyMiepVatWph2LBh2LJlCxQKBUJCQvDHH3+89B9rRFRMEARERESgqKgIAPD+++/DyspK4lSlK1NxM3v27BL/TERUmfTr1w/79u3DnTt3kJiYiB07dmD48OFSxyLSeN9//724yLW5uTk8PT0lTvRybzSVYE5ODrKzs5VeRESaSk9PD/7+/uL2hAkTkJOTI2EiIs335MkTREVFidve3t6oVq2ahIlerdzFzbVr19C3b19Ur14dpqamMDMzg5mZGWrWrPlCJ2MiIk3j6OgodoJMS0vDggULJE5EpNmWLl2K69evAwBatGiBd999V+JEr1buVcFHjhwJQRCwadMmWFpa8nk1EVU6fn5+OHHiBJ49e4Zly5bBz89PnAuHiP6RmpqKRYsWAfhnWgVNWT/qZcpd3Jw8eRLHjx9Hs2bN1JGHiEjtnk88tnPnThQWFiIyMhJ79uyROhaRxpk4cSKePn0KAHBzc4Otra3Eicqm3OWXs7MzV9clokpvyJAhqFWrFgBg7969+PnnnyVORKRZEhIS8O233wIATExMlJYy0XTlvnOzYcMGBAUF4fbt22jVqtULMxO2adNGZeGIiNTl+WJ/y5cvBwCEh4fj7Nmz0NfXlzgZkfQKCwsREREhbg8fPhw1atSQMFH5lLu4uXfvHq5cuaK0AqhMJoMgCJDJZOIYeCIiTffuu+/i559/xtmzZ3HlyhV8/PHHmDRpktSxiCS3du1anD17FgDQuHFjcZHsyqLcj6XGjBmDtm3bIjExEVevXsW1a9eU/ktEVFnIZDIEBASIAyNiYmKQlpYmcSoiad29e1dpTjt/f3/I5XIJE5Vfue/cXL9+Hbt374adnZ068hARVShbW1u4u7sjPj4eubm5mDx5MrZt2yZ1LCLJTJ48GVlZWQCAzp07o1WrVhInKr9y37l57733cPLkSXVkISKSxMiRI2FsbAwA+OKLL/DHH39InIhIGocPH8bWrVsBFPdLGzNmjMSJXk+579z069cP48ePx6lTp9C6desXOhR7eHioLBwRUUUwMTHByJEjERsbCwAIDAxESkoKdHXL/b9Iokrr2bNnCA0NFbeHDh2K2rVrS5jo9ZX7JzcoKAgAMHfu3BfeY4diIqqs3N3dsX//fly5cgVnzpzB6tWrMW7cOKljEVWYNWvW4O+//wYANGzYEP3795c40esr92MphUJR6ouFDRFVVnK5HEFBQWLn4pkzZ7JzMVUZaWlpmDVrlrgdGBhYqe9cqmQO5UePHqniY4iIJNWsWTP06NEDQPHCwP9eLJBIm02aNElc/Prdd99F69atJU70Zspd3CxevBhxcXHi9vNZPuvXr8+OxkRU6Xl7e4uTle3YsQMHDx6UOBGRev3222/Yvn07AMDIyAh+fn4SJ3pz5S5uYmNjYW1tDQDYv38/fv31V8THx6N3796c/IqIKj0TExP4+PiI20FBQSgoKJAwEZH6FBYWKnUiHjZsGMzMzCRMpBrlLm7S09PF4mbPnj0YOnQoevbsicmTJ+Po0aMqD0hEVNHc3NzExYEvXryIFStWSJyISD0++eQTnDlzBgBgY2OD999/X+JEqlHu4sbMzExcODM+Ph5ubm4AAEEQ2KGYiLSCjo6OUufimJgY3LhxQ+JURKp1+/ZtzJkzB0DxaOfK3on438pd3AwaNAheXl7o0aMH7t+/j969ewMATpw4wVmLiUhrNGnSBH369AEA5OXlITIyUuJERKo1ceJE5OTkAAC6dOmCli1bSpxIdcpd3KxYsQJhYWFo0aIF9u/fL87qmZaWhpCQEJUHJCKSyogRI1CzZk0AwK5duxAfHy9tICIVSUhIwI4dOwAAxsbGlXYm4tKUu7jR09PDxIkT8fHHH6Nt27bi/vHjx2Ps2LGvFWLNmjWwsbGBoaEhXFxckJSUVKbzduzYAZlMhgEDBrzWdYmIXsbY2Bi+vr7idkhICJ4+fSphIqI3V1BQgLCwMHF7+PDhYhGvLV7r4dqlS5dw8OBB3L17FwqFQum9f08CVBZxcXGIiopCbGwsXFxcsHLlSri7u+PChQuwsLAo9bzU1FRMnDgRnTt3fp0mEBGVSdeuXbFv3z6cOXMG165dw+LFi5VWTCaqbJYtW4bz588DKF449vnjV21S7js369evR/PmzTFr1izs3LkT33//vfjatWtXuQN89NFH8Pf3h6+vL1q0aIHY2FgYGRlh06ZNpZ5TVFSEESNGICYmBra2tuW+JhFRWclkMgQFBUFHp/h/lwsXLsTVq1clTkX0eq5cuYIPP/wQwD9/t+VyucSpVK/cxc28efMwf/58pKenIyUlBSdOnBBfycnJ5fqsgoICHD9+XBxxBRSPUnBzc0NiYmKp582dOxcWFhZlmmgoPz8f2dnZSi8iovJo1KiRuChwfn4+goKCIAiCxKmIykcQBKVHq+7u7nj77bclTqUe5S5uHj58iCFDhqjk4pmZmSgqKoKlpaXSfktLS6Snp5d4zuHDh7Fx40asX7++TNdYuHAhTE1NxdfzOXqIiMpj2LBh4grJ+/fvV5qpnagy2LFjB/bt2wcAqFWrltJkldqm3MXNkCFDxC9ORXv8+DFGjRqF9evXw9zcvEznREdHIysrS3w9n6OHiKg8jIyMEBgYKG5HRETg4cOHEiYiKruHDx9i/Pjx4vaYMWNQvXp1CROpV7k7FNvZ2WHmzJn466+/0Lp1a+jp6Sm9HxERUebPMjc3h1wuR0ZGhtL+jIwM1K1b94Xjr1y5gtTUVPTr10/c97xDs66uLi5cuIAmTZoonWNgYAADA4MyZyIiKk2HDh3g4uKCI0eO4N69e5gyZQrWrVsndSyiV4qOjhZ/17Zt21brB+OUu7hZt24djI2N8dtvv+G3335Tek8mk5WruNHX14ejoyMSEhLE4dwKhQIJCQlKw9See/vtt3Hq1CmlfTNmzMDjx4/x8ccf85ETEaldQEAATp48iadPn2L9+vXw8fHBO++8I3UsolIlJibis88+A1D8D/7g4GBx9m1tVe7i5tq1ayoNEBUVBR8fHzg5OaF9+/ZYuXIlcnNzxbklvL29Ub9+fSxcuBCGhoZo1aqV0vnPx+b/dz8RkTrUqVNHfDwOAGPHjsXJkyehr68vcTKiFxUWFiIgIEDcHjJkSIlPRrRNufvcqJqnpyeWLVuGWbNmwcHBASkpKYiPjxc7Gd+4cQNpaWkSpyQi+kefPn3E5WbOnz+PpUuXSpyIqGQrVqzA6dOnARSP+hs0aJDEiSrGa03id+vWLezevRs3btxAQUGB0nsfffRRuT8vLCysxMdQAHDo0KGXnrtly5ZyX4+I6E3I5XKEhoZiwoQJUCgUmDt3Ljw9Pbm+HmmUa9euKS2MGRwcrDULY75KuVuZkJAADw8P2Nra4vz582jVqhVSU1MhCALatWunjoxERBqnSZMm8PDwwK5du1BQUAB/f38cOHBA6/syUOUgCALCwsKQl5cHAHBzc0OLFi0kTlVxyv1YKjo6GhMnTsSpU6dgaGiIb7/9Fjdv3kSXLl1UNv8NEVFl4OXlhTp16gAovsu8bds2iRMRFfvqq6/w008/ASjum/rvNdKqgnIXN+fOnYO3tzeA4uHXeXl5MDY2xty5c7F48WKVByQi0lSGhoYICgoSt8ePH4/79+9LmIgIuHfvntLIZT8/PxgbG0uYqOKVu7ipXr262M+mXr16uHLlivheZmam6pIREVUCzs7O4lDwBw8eIDIyUuJEVNVFRkaKRbaTkxO6dOkicaKKV+7ipkOHDjh8+DCA4hEDEyZMwPz58zFmzBh06NBB5QGJiDSdv7+/ONvr9u3bxccBRBVtz549+OqrrwAUz6odEhIicSJplLu4+eijj+Di4gIAiImJQffu3REXFwcbGxts3LhR5QGJiDRdrVq1lBby9ff3R1ZWloSJqCrKzs5Wekzq7e1d5qWKtE25ipuioiLcunULDRs2BFD8iCo2NhZ///03vv32WzRq1EgtIYmINF337t3h4OAAALhz5w4mTpwobSCqcqZMmYLbt28DKJ7YtlevXhInkk65ihu5XI6ePXtysTgiov+QyWQICwuDoaEhAGDDhg04cOCAxKmoqvjtt98QGxsLoHiJhdDQUOjoSD5Pr2TK3fJWrVrh6tWr6shCRFSpWVhYYPTo0eL2mDFjkJubK10gqhLy8vIwduxYcdvT0xP169eXMJH0yl3czJs3DxMnTsSePXuQlpaG7OxspRcRUVXWq1cvtGzZEgBw/fp1TJs2TeJEpO3mzJmDy5cvAyieXPL5QtRVWZmLm7lz5yI3Nxd9+vTByZMn4eHhgQYNGsDMzAxmZmaoWbMmzMzM1JmViEjj6ejoIDw8XFxIc9WqVfjzzz8lTkXaKikpCcuWLQNQPPdceHh4lVli4WXK/BWIiYlBUFAQDh48qM48RESVnpWVFUaMGIHNmzdDEAT4+vri5MmTYn8cIlXIy8uDj48PFAoFAKB///6wtbWVOJVmKHNxIwgCAFTJyYCIiMrLw8MDhw8fxqVLl3Dx4kXMmjULS5YskToWaZGZM2fi/PnzAIpX/Pby8pI4keYoV58bLghHRFQ2crkckZGR4iOC5cuX8/EUqczhw4fx0UcfASh+HDVu3Djo6elJnEpzlKu4eeutt1CrVq2XvoiIqFjDhg3Ff00rFAqMHDkSOTk5Eqeiyi43NxejR48Wn6gMHjwYTZo0kTiVZilXr6OYmBiYmpqqKwsRkdYZOHAgjhw5ggsXLuDatWuYNGkSPv30U6ljUSU2ZcoUcV1HOzs7DB06VOJEmqdcxc2wYcNgYWGhrixERFpHLpdj/PjxiIyMRH5+PmJjYzFgwAC4u7tLHY0qoYSEBKxZswYAoK+vr/Tok/5R5sdS7G9DRPR6rKys4OvrK26PHj2aM71TuWVnZ2PMmDHi9rBhw7jsUSnKXNw8f7ZHRETl17t3b3HtqfT0dISGhkobiCqd8ePH48aNGwCAt99+GwMHDpQ4keYqc3GjUCj4SIqI6DXJZDJERETAyMgIAPDVV19h586dEqeiyuK7777Dpk2bABSvHTVu3DjI5XKJU2muqruqFhFRBTM3N0dQUJC4HRAQgLS0NAkTUWVw+/Zt+Pv7i9s+Pj6wsrKSMJHmY3FDRFSBunTpAldXVwDAw4cPMWrUKHGGWaL/UigU8PHxwYMHDwAATk5O6NOnj8SpNB+LGyKiCiSTyRAaGirOC5aQkIDly5dLnIo01YoVK5CQkAAAMDMzQ0REBHR0+Kv7VfgVIiKqYCYmJhg/frw4CnX69Ok4fvy4xKlI06SkpCA6OhpAcVEcFhaGmjVrShuqkmBxQ0QkAXt7ewwaNAgAUFhYCE9PT85eTKInT57Ay8sLhYWFAIpH2zk7O0ucqvJgcUNEJBEvLy/Y2dkBAK5cuYKIiAiJE5GmmDhxIs6dOwegeBmPf89vQ6/G4oaISCJ6enqYOHEiDA0NAQCbN2/G119/LXEqktrOnTvFJTr09fUxYcIE6OvrS5yqcmFxQ0QkISsrKwQGBorb/v7+SE1NlS4QSerKlSvw8/MTt0eNGoXGjRtLmKhyYnFDRCSx9957D++++y6A4in2P/jgA+Tn50uciipafn4+hg4diuzsbABAhw4d0K9fP4lTVU4sboiIJCaTyRAcHIy6desCAJKTkxEVFSVxKqpoEydORHJyMgDA0tISkZGRHPb9mjTiq7ZmzRrY2NjA0NAQLi4uSEpKKvXY7777Dk5OTqhZsyaqV68OBwcHbNu2rQLTEhGpXvXq1TF16lTo6ekBANauXYu4uDiJU1FF2blzJ1avXg0A0NXVxcSJE1G9enWJU1Vekhc3cXFxiIqKwuzZs5GcnAx7e3u4u7vj7t27JR5fq1YtTJ8+HYmJifj777/h6+sLX19f/PLLLxWcnIhItWxtbREQECBu+/n54cKFCxImoorw33423t7eaNasmYSJKj/Ji5uPPvoI/v7+8PX1RYsWLRAbGwsjIyNxgbD/6tq1KwYOHIjmzZujSZMmiIyMRJs2bXD48OEKTk5EpHo9e/ZE165dAQC5ubkYNGgQnjx5Im0oUpu8vDylfjYuLi7w8PCQOFXlJ2lxU1BQgOPHj8PNzU3cp6OjAzc3NyQmJr7yfEEQkJCQgAsXLoid8YiIKjOZTIaQkBA0bNgQAHD27FkEBwdDEASJk5GqCYKA4OBgpX4248aNYz8bFZD0K5iZmYmioiJYWloq7be0tER6enqp52VlZcHY2Bj6+vro27cvVq1ahR49epR4bH5+PrKzs5VeRESazNDQEFOmTBHnv/n888/x2WefSZyKVG3t2rXYunUrgOL5bCZPnsx+NipSKcvDGjVqICUlBUePHsX8+fMRFRWFQ4cOlXjswoULYWpqKr6sra0rNiwR0WuwtrZGaGiouB0eHs7H71rk8OHDGDdunLgdGBiIpk2bShdIy0ha3Jibm0MulyMjI0Npf0ZGhjgksiQ6Ojqws7ODg4MDJkyYgMGDB2PhwoUlHhsdHY2srCzxdfPmTZW2gYhIXbp06SL2v3j27BkGDRrE/4dpgdu3b2Pw4MF49uwZgOJ1o0p7+kCvR9LiRl9fH46OjuJy7gCgUCiQkJAAV1fXMn+OQqEodcIrAwMDmJiYKL2IiCoLX19ftGnTBgBw7949DBgwAHl5eRKnoteVn5+PwYMHi/+ob968Ofz9/SVOpX0kfywVFRWF9evXY+vWrTh37hyCg4ORm5sLX19fAMVD4p4v+Q4UP2bav38/rl69inPnzmH58uXYtm0bRo4cKVUTiIjURi6XY/LkyWLfxOTkZPj7+7ODcSX0vAPxX3/9BQCoXbs2pk6dCl1dXYmTaR/Jv6Kenp64d+8eZs2ahfT0dDg4OCA+Pl78Qb5x44ZSz/Hc3FyEhITg1q1bqFatGt5++2188cUX8PT0lKoJRERqZWJigunTp2PSpEnIz8/H9u3bYW9vj0mTJkkdjcph6dKl2Lx5M4DiRVMnT54MMzMziVNpJ8mLGwAICwtDWFhYie/9t6PwvHnzMG/evApIRUSkOWxsbDB+/HgsWrQIADBlyhQ0bdoUAwYMkDYYlcn333+PqVOnitvBwcFo3ry5hIm0m+SPpYiIqGw6duyIYcOGASh+xOHl5YWjR49KnIpe5fjx4xgxYoT4KHHQoEFK87uR6rG4ISKqRIYPHy5OWpqXl4f3338fqamp0oaiUt2+fRseHh5iJ/AOHTrA29tb4lTaj8UNEVElIpPJEBkZiRYtWgAA7t69iz59+uDRo0fSBqMXZGdn4/3338edO3cAAHZ2doiKiuIMxBWAX2EiokpGT08P06ZNQ7169QAA586dwwcffICCggKJk9Fz+fn5GDRoEFJSUgAUz+s2ffp0cdZpUi8WN0RElZCJiQlmz54tzt114MABjB49GgqFQuJkpFAo4OPjI87hZmRkhBkzZqB27doSJ6s6WNwQEVVSVlZWmD59OvT09AAAX331FcLDwzkHjoQEQUBUVBTi4uIAFE9WGx0dDVtbW4mTVS0sboiIKrHmzZtj8uTJYj+OtWvXYtasWRKnqrqWLFmCjz/+GEDxUkERERGwt7eXOFXVw+KGiKiSc3FxQWRkpLg9b948rFy5UrpAVdTq1auV5rLx8/MTR7ZRxWJxQ0SkBbp166a0RtH48eOxZcsW6QJVMRs2bEB4eLi4PWTIEPTr10/CRFUbixsiIi3Rr18/DB8+XNweM2YMtm3bJmGiquGLL75AQECAuN2vXz+udygxFjdERFpk2LBh4h0DQRDg4+ODzz//XOJU2uvrr7+Gj4+P2Inb3d0dfn5+kMlkEier2ljcEBFpEZlMhrFjx6Jv374Aiguc0aNHY+vWrRIn0z5ffPEFhg8fLg6/f++99xAcHMxJ+jQAvwNERFpGJpMhICBAqcDx9fUVV6SmN7du3Tp4e3uLhc27776L8PBwFjYagt8FIiItVFKBM2bMGCxfvlziZJXfypUrERgYKD6Keu+99zB+/HjI5XKJk9FzLG6IiLTU8wLn36N2Jk6ciKlTp3Kiv9cgCALmzp2L8ePHi/v69OmDiIgIFjYahsUNEZEWe94H59+jqBYvXoyxY8fi2bNnEiarXAoLCxEQEIDZs2eL+wYOHIiAgAA+itJA/I4QEWk5mUyG4cOHIygoSBzFs2nTJgwaNAg5OTkSp9N8jx8/hoeHBzZs2CDu8/LywujRo1nYaCh+V4iIqog+ffpg4sSJ4iOUH3/8ER07dsSNGzckTqa50tLS0KVLF8THxwMAdHV1ER4ejmHDhnG4twZjcUNEVIV07twZs2fPhpGREQDg1KlTcHZ2RmJiosTJNM+RI0fg5OSEEydOAChe3Xv69Ono0aOHxMnoVVjcEBFVMQ4ODli2bBnq1q0LALh79y66devGuXD+ZdOmTXj33Xdx584dAEDt2rWxYMECODo6SpyMyoLFDRFRFdSgQQMsX74crVq1AgDk5+dj9OjRGDt2LPLy8iROJ52nT58iJCQEfn5+KCgoAAA0bdoUy5Ytg62trcTpqKxY3BARVVE1atTA3Llz4e7uLu7buHEjOnTogEuXLkmYTBrnz59Hhw4d8Omnn4r7unfvjkWLFqF27doSJqPyYnFDRFSF6erqIjQ0FJGRkTAwMAAA/P3332jbti3Wr19fJebDEQQBmzZtgqOjI06ePAmg+Ovi7++PiIgI6OnpSZyQyovFDRERoXv37li+fDkaNGgAAMjNzUVAQADef/99pKWlSZxOfe7cuYMBAwbAz88PT548AQDUq1cPixcvRr9+/TgiqpJicUNERACAhg0bYvny5UqjgX766Se0atUKmzdvFtdR0gbP79a0aNECu3fvFvd36dIFK1euRNOmTSVMR2+KxQ0REYmqVauG8PBwzJw5EzVr1gQAPHjwAGPGjEGXLl1w6tQpaQOqwKlTp9C9e3f4+fkhKysLQHH/o6ioKEyYMAHVqlWTOCG9KRY3RET0AmdnZ6xevRqdO3cW9x0+fBht27ZFZGQk7t27J2G613P//n2EhYXBwcEBBw8eFPe7urpi9erV6Nq1q3ThSKVY3BARUYlMTEwwadIkxMTEoF69egCAoqIifPLJJ7C1tUVMTAweP34sccpXy87Oxrx582BnZ4c1a9aIj9fMzc0xZcoUREdHw8zMTOKUpEosboiI6KXatm2LVatWYfjw4dDX1wcA5OTkYM6cOWjcuDFiYmKQmZkpccoXPXz4EPPnz4eNjQ1mzpyJR48eAQAMDAwwZMgQfPrpp3jnnXekDUlqweKGiIheSV9fH8OHD8e6devg7u4uLhh5//59zJkzBw0bNkRoaChOnz4tcdLiPjWBgYFo0KABZsyYgYcPHwIAdHR00LlzZ6xevRqjRo0Sh76T9tGI4mbNmjWwsbGBoaEhXFxckJSUVOqx69evR+fOnWFmZgYzMzO4ubm99HgiIlKdWrVqITQ0FGvXrkXnzp3FIicvLw9r165F69at4ezsjLVr1+L+/fsVlisjIwOrV6/GO++8gzZt2mDdunXi0G4dHR106tQJn3zyCSZNmgRLS8sKy0XS0JU6QFxcHKKiohAbGwsXFxesXLkS7u7uuHDhAiwsLF44/tChQxg+fDg6duwIQ0NDLF68GD179sSZM2dQv359CVpARFT1WFlZYdKkSfD29sauXbvw66+/Ij8/HwBw7NgxHDt2DOHh4ejYsSP69euH3r17o2XLlmIx9KYUCgVSUlLw66+/4pdffsGhQ4deGKpuaGiIzp07Y8CAAbC2tlbJdalykAkSTz/p4uIi9soHiv/CWltbIzw8HFOnTn3l+UVFRTAzM8Pq1avh7e39yuOzs7NhamqKrKwsmJiYvHH+5yIjI/HJJ58AAJYuXYpmzZqp7LOJiDRdTk4ODh48iP379yM1NbXEY0xMTODi4gIXFxe0bNkSTZs2RZMmTWBqalrqZHmCIODhw4dITU3FlStXkJKSghMnTiApKanUO0NWVlbo0aMH3N3dYWxsrKomUhksXboUv//+OwAgNTUVjRo1Utlnl+f3t6R3bgoKCnD8+HFER0eL+3R0dODm5obExMQyfcaTJ09QWFiIWrVqqSsmERG9grGxMfr164d+/frh2rVrOHDgAI4ePSquqg0U/3Lav38/9u/fr3Sunp4ezM3NYWJiArlcDrlcjvz8fGRnZ+PRo0d4+vTpK69fp04duLq6olu3bmjSpInK20eVi6TFTWZmJoqKil54/mlpaYnz58+X6TOmTJkCKysruLm5lfh+fn6+eKsUKP7hIiIi9WncuDH8/Pzg5+eHO3fuICkpCadOncLFixfFSfP+rbCwEGlpaeVa5qF69epo1qwZ7O3t4ejoCGtray6VQCLJ+9y8iUWLFmHHjh04dOgQDA0NSzxm4cKFiImJqeBkREQEFD8iGjBgAAYMGABBEJCZmYmLFy/i1q1buHPnDu7evYvs7Gzk5OTg6dOnUCgUEAQBcrkc1apVg6GhIczMzFCnTh1YWFigUaNGeOutt2BhYcFihkolaXFjbm4OuVyOjIwMpf0ZGRmoW7fuS89dtmwZFi1ahF9//RVt2rQp9bjo6GhERUWJ29nZ2exYRkQkAZlMhjp16qBOnTpSRyEtJ+lQcH19fTg6OiIhIUHcp1AokJCQAFdX11LPW7JkCT788EPEx8fDycnppdcwMDCAiYmJ0ouIiIi0l+SPpaKiouDj4wMnJye0b98eK1euRG5uLnx9fQEA3t7eqF+/PhYuXAgAWLx4MWbNmoUvv/wSNjY2SE9PB1DcmY294omIiEjy4sbT0xP37t3DrFmzkJ6eDgcHB8THx4udjG/cuKE0L8Knn36KgoICDB48WOlzZs+ejTlz5lRkdCIiItJAkhc3ABAWFoawsLAS3zt06JDSdmnzJxAREREBGrL8AhEREZGqsLghIiIircLihoiIiLQKixsiIiLSKixuiIiISKuwuCEiIiKtwuKGiIiItAqLGyIiItIqLG6IiIhIq7C4ISIiIq3C4oaIiIi0CosbIiIi0iosboiIiEirsLghIiIircLihoiIiLQKixsiIiLSKixuiIiISKuwuCEiIiKtwuKGiIiItAqLGyIiItIqLG6IiIhIq7C4ISIiIq3C4oaIiIi0CosbIiIi0iosboiIiEirsLghIiIircLihoiIiLQKixsiIiLSKixuiIiISKuwuCEiIiKtInlxs2bNGtjY2MDQ0BAuLi5ISkoq9dgzZ87ggw8+gI2NDWQyGVauXFlxQYmIiKhSkLS4iYuLQ1RUFGbPno3k5GTY29vD3d0dd+/eLfH4J0+ewNbWFosWLULdunUrOC0RERFVBpIWNx999BH8/f3h6+uLFi1aIDY2FkZGRti0aVOJxzs7O2Pp0qUYNmwYDAwMKjgtERERVQaSFTcFBQU4fvw43Nzc/gmjowM3NzckJiZKFYuIiIgqOV2pLpyZmYmioiJYWloq7be0tMT58+dVdp38/Hzk5+eL29nZ2Sr7bCIiItI8kncoVreFCxfC1NRUfFlbW0sdiYiIiNRIsuLG3NwccrkcGRkZSvszMjJU2lk4OjoaWVlZ4uvmzZsq+2wiIiLSPJIVN/r6+nB0dERCQoK4T6FQICEhAa6uriq7joGBAUxMTJReREREpL0k63MDAFFRUfDx8YGTkxPat2+PlStXIjc3F76+vgAAb29v1K9fHwsXLgRQ3An57Nmz4p9v376NlJQUGBsbw87OTrJ2EBERkeaQtLjx9PTEvXv3MGvWLKSnp8PBwQHx8fFiJ+MbN25AR+efm0t37txB27Ztxe1ly5Zh2bJl6NKlCw4dOlTR8YmIiEgDSVrcAEBYWBjCwsJKfO+/BYuNjQ0EQaiAVERERFRZaf1oKSIiIqpaWNwQERGRVmFxQ0RERFqFxQ0RERFpFRY3REREpFVY3BAREZFWYXFDREREWoXFDREREWkVFjdERESkVVjcEBERkVZhcUNERERahcUNERERaRUWN0RERKRVWNwQERGRVmFxQ0RERFqFxQ0RERFpFRY3REREpFVY3BAREZFWYXFDREREWoXFDREREWkVFjdERESkVVjcEBERkVZhcUNERERahcUNERERaRUWN0RERKRVWNwQERGRVmFxQ0RERFqFxQ0RERFpFRY3REREpFVY3BAREZFW0YjiZs2aNbCxsYGhoSFcXFyQlJT00uO/+eYbvP322zA0NETr1q3x008/VVBSIiIi0nSSFzdxcXGIiorC7NmzkZycDHt7e7i7u+Pu3bslHv/nn39i+PDh8PPzw4kTJzBgwAAMGDAAp0+fruDkREREpIkkL24++ugj+Pv7w9fXFy1atEBsbCyMjIywadOmEo//+OOP0atXL0yaNAnNmzfHhx9+iHbt2mH16tUVnJyIiIg0kaTFTUFBAY4fPw43Nzdxn46ODtzc3JCYmFjiOYmJiUrHA4C7u3upxxMREVHVoivlxTMzM1FUVARLS0ul/ZaWljh//nyJ56Snp5d4fHp6eonH5+fnIz8/X9zOysoCAGRnZ79J9BKv89z9+/dLzUNERKStnjx5Iv758ePHKv1d+/yzBEF45bGSFjcVYeHChYiJiXlhv7W1tdquuWjRIrV9NhERUWXQunVrtXzu48ePYWpq+tJjJC1uzM3NIZfLkZGRobQ/IyMDdevWLfGcunXrluv46OhoREVFidsKhQIPHjxA7dq1IZPJ3rAFyrKzs2FtbY2bN2/CxMREpZ+tCbS9fYD2t5Htq/y0vY1sX+WnrjYKgoDHjx/DysrqlcdKWtzo6+vD0dERCQkJGDBgAIDi4iMhIQFhYWElnuPq6oqEhASMGzdO3Ld//364urqWeLyBgQEMDAyU9tWsWVMV8UtlYmKitX9pAe1vH6D9bWT7Kj9tbyPbV/mpo42vumPznOSPpaKiouDj4wMnJye0b98eK1euRG5uLnx9fQEA3t7eqF+/PhYuXAgAiIyMRJcuXbB8+XL07dsXO3bswLFjx7Bu3Topm0FEREQaQvLixtPTE/fu3cOsWbOQnp4OBwcHxMfHi52Gb9y4AR2dfwZ1dezYEV9++SVmzJiBadOmoWnTpti1axdatWolVROIiIhIg0he3ABAWFhYqY+hDh069MK+IUOGYMiQIWpOVX4GBgaYPXv2C4/BtIW2tw/Q/jayfZWftreR7av8NKGNMqEsY6qIiIiIKgnJZygmIiIiUiUWN0RERKRVWNwQERGRVmFxQ0RERFqFxc1LrFmzBjY2NjA0NISLiwuSkpJKPfa7776Dk5MTatasierVq8PBwQHbtm1TOkYQBMyaNQv16tVDtWrV4ObmhkuXLqm7GS+l6jZ+99136NmzpzgDdEpKippb8HKqbF9hYSGmTJmC1q1bo3r16rCysoK3tzfu3LlTEU0pkaq/f3PmzMHbb7+N6tWrw8zMDG5ubjhy5Ii6m/FSqm7jvwUFBUEmk2HlypVqSF42qm7f6NGjIZPJlF69evVSdzNeSh3fw3PnzsHDwwOmpqaoXr06nJ2dcePGDXU2o1Sqbt9/v3/PX0uXLlV3U0qk6vbl5OQgLCwMDRo0QLVq1dCiRQvExsaqNrRAJdqxY4egr68vbNq0SThz5ozg7+8v1KxZU8jIyCjx+IMHDwrfffedcPbsWeHy5cvCypUrBblcLsTHx4vHLFq0SDA1NRV27dolnDx5UvDw8BAaN24s5OXlVVSzlKijjZ9//rkQExMjrF+/XgAgnDhxooJa8yJVt+/Ro0eCm5ubEBcXJ5w/f15ITEwU2rdvLzg6OlZks0Tq+P5t375d2L9/v3DlyhXh9OnTgp+fn2BiYiLcvXu3opqlRB1tfO67774T7O3tBSsrK2HFihVqbknJ1NE+Hx8foVevXkJaWpr4evDgQUU16QXqaOPly5eFWrVqCZMmTRKSk5OFy5cvCz/88EOpn6lO6mjfv793aWlpwqZNmwSZTCZcuXKlopolUkf7/P39hSZNmggHDx4Url27Jnz22WeCXC4XfvjhB5XlZnFTivbt2wuhoaHidlFRkWBlZSUsXLiwzJ/Rtm1bYcaMGYIgCIJCoRDq1q0rLF26VHz/0aNHgoGBgfDVV1+pLng5qLqN/3bt2jXJixt1tu+5pKQkAYBw/fr1N8r6OiqifVlZWQIA4ddff32jrK9LXW28deuWUL9+feH06dNCo0aNJCtu1NE+Hx8foX///qqM+UbU0UZPT09h5MiRKs35uiri57B///7Ce++990Y5X5c62teyZUth7ty5Sse0a9dOmD59+psH/n98LFWCgoICHD9+HG5ubuI+HR0duLm5ITEx8ZXnC4KAhIQEXLhwAe+++y4A4Nq1a0hPT1f6TFNTU7i4uJTpM1VNHW3UJBXVvqysLMhkMrWvV/ZfFdG+goICrFu3DqamprC3t1dZ9rJSVxsVCgVGjRqFSZMmoWXLlmrJXhbq/B4eOnQIFhYWaNasGYKDg3H//n2V5y8LdbRRoVBg7969eOutt+Du7g4LCwu4uLhg165d6mpGqSri5zAjIwN79+6Fn5+fynKXlbra17FjR+zevRu3b9+GIAg4ePAgLl68iJ49e6osu0bMUKxpMjMzUVRUJC4B8ZylpSXOnz9f6nlZWVmoX78+8vPzIZfLsXbtWvTo0QMAkJ6eLn7Gfz/z+XsVSR1t1CQV0b6nT59iypQpGD58eIUvgKfO9u3ZswfDhg3DkydPUK9ePezfvx/m5uZqacfLqKuNixcvhq6uLiIiItSWvSzU1b5evXph0KBBaNy4Ma5cuYJp06ahd+/eSExMhFwuV1t7SqKONt69exc5OTlYtGgR5s2bh8WLFyM+Ph6DBg3CwYMH0aVLF7W26d8q4v8zW7duRY0aNTBo0CCVZi8LdbVv1apVCAgIQIMGDaCrqwsdHR2sX79epf9QZnGjQjVq1EBKSgpycnKQkJCAqKgo2NraomvXrlJHUxltb2NZ21dYWIihQ4dCEAR8+umn0oR9DWVpX7du3ZCSkoLMzEysX78eQ4cOxZEjR2BhYSFd8HJ4WRuPHz+Ojz/+GMnJyZDJZFJHfS2v+h4OGzZMPLZ169Zo06YNmjRpgkOHDqF79+4SpS6fl7VRoVAAAPr374/x48cDABwcHPDnn38iNja2Qoub11We/49u2rQJI0aMgKGhYcUHfU2vat+qVavw119/Yffu3WjUqBH+97//ITQ0FFZWVkp3id4Ei5sSmJubQy6XIyMjQ2l/RkYG6tatW+p5Ojo6sLOzA1D8w3bu3DksXLgQXbt2Fc/LyMhAvXr1lD7TwcFB9Y14BXW0UZOos33PC5vr16/jwIEDFX7XBlBv+6pXrw47OzvY2dmhQ4cOaNq0KTZu3Ijo6Gi1tKU06mjj77//jrt376Jhw4bi8UVFRZgwYQJWrlyJ1NRUtbSlJBX1M2hrawtzc3Ncvny5wosbdbTR3Nwcurq6aNGihdI5zZs3x+HDh1XfiJdQ9/fw999/x4ULFxAXF6fy7GWhjvbl5eVh2rRp+P7779G3b18AQJs2bZCSkoJly5aprLhhn5sS6Ovrw9HREQkJCeI+hUKBhIQEuLq6lvlzFAoF8vPzAQCNGzdG3bp1lT4zOzsbR44cKddnqoo62qhJ1NW+54XNpUuX8Ouvv6J27doqzV1WFfn9k+p7rI42jho1Cn///TdSUlLEl5WVFSZNmoRffvlF5W14mYr6Ht66dQv3799X+kdVRVFHG/X19eHs7IwLFy4oHXPx4kU0atRINcHLSN3fw40bN8LR0VGSPm+AetpXWFiIwsJC6Ogolx9yuVy8K6cSKuuarGV27NghGBgYCFu2bBHOnj0rBAQECDVr1hTS09MFQRCEUaNGCVOnThWPX7BggbBv3z7hypUrwtmzZ4Vly5YJurq6wvr168VjFi1aJNSsWVP44YcfhL///lvo37+/5EPBVd3G+/fvCydOnBD27t0rABB27NghnDhxQkhLS6v07SsoKBA8PDyEBg0aCCkpKUpDNfPz8yt9+3JycoTo6GghMTFRSE1NFY4dOyb4+voKBgYGwunTpyu8fepoY0mkHC2l6vY9fvxYmDhxopCYmChcu3ZN+PXXX4V27doJTZs2FZ4+faoVbRSE4mH8enp6wrp164RLly4Jq1atEuRyufD7779rRfsEoXikopGRkfDpp59WaHv+Sx3t69Kli9CyZUvh4MGDwtWrV4XNmzcLhoaGwtq1a1WWm8XNS6xatUpo2LChoK+vL7Rv317466+/xPe6dOki+Pj4iNvTp08X7OzsBENDQ8HMzExwdXUVduzYofR5CoVCmDlzpmBpaSkYGBgI3bt3Fy5cuFBRzSmRqtu4efNmAcALr9mzZ1dQi5Spsn3Ph7eX9Dp48GAFtuofqmxfXl6eMHDgQMHKykrQ19cX6tWrJ3h4eAhJSUkV2aQXqPrv6H9JWdwIgmrb9+TJE6Fnz55CnTp1BD09PaFRo0aCv7+/+ItIKur4Hm7cuFE8zt7eXti1a1dFNKVE6mjfZ599JlSrVk149OhRRTThpVTdvrS0NGH06NGClZWVYGhoKDRr1kxYvny5oFAoVJZZJgiCoLr7QERERETSYp8bIiIi0iosboiIiEirsLghIiIircLihoiIiLQKixsiIiLSKixuiIiISKuwuCEiIiKtwuKGiIiItAqLGyIiItIqLG6ISK2mTp0KAwMDeHl5SR2FiKoILr9ARGqVlZWFbdu2ITw8HJcuXYKdnV2FXdvX1xf169fHvHnzKuyaRCQ93rkhIrUyNTWFn58fdHR0cOrUqQq7blFREfbs2QMPD48KuyYRaQYWN0Skds+ePYORkRFOnz5dYdf8888/oaenB2dn5xLfP3z4MPT09PD06VNxX2pqKmQyGa5fvw4A6Nq1K8LDwzFu3DiYmZnB0tIS69evR25uLnx9fVGjRg3Y2dnh559/rpA2EVHZsLghIrWbMWMGcnJyKrS42b17N/r16weZTFbi+ykpKWjevDkMDQ3FfSdOnICZmRkaNWok7tu6dSvMzc2RlJSE8PBwBAcHY8iQIejYsSOSk5PRs2dPjBo1Ck+ePFF7m4iobFjcEJFaHT9+HLGxsejbt2+ZipvU1FQ4OTm98XV/+OGHlz6SOnnyJNq2bau0LyUlBfb29kr77O3tMWPGDDRt2hTR0dEwNDSEubk5/P390bRpU8yaNQv379/H33///caZiUg1WNwQkdooFAoEBgYiLCwM3t7euHTpEgoLC9V+3XPnzuHOnTvo3r17qcekpKTAwcFBad+JEyde2NemTRvxz3K5HLVr10br1q3FfZaWlgCAu3fvvnlwIlIJFjdEpDarVq1CZmYm5s6di9atW6OwsBDnz58X31+8eDFatWqF1q1bY/v27eL+goICDB06FM2bN4ePjw+ePXuGnJwc9OrVC61bt0br1q3xyy+/lHrd3bt3o0ePHkqPnP6tqKgIp0+ffuHOTXJy8gvFjZ6entK2TCZT2vf8sZdCoXj5F4OIKoyu1AGISDvdvn0bM2fOxFdffYXq1aujadOmMDAwwOnTp9G6dWscPXoUX3/9NY4dO4YnT57A2dkZ3bp1AwCcPn0amzZtgpOTE7y8vPDFF1+gRo0aqF27NuLj4yEIAh4/flzqtX/44QcEBASU+v6FCxfw9OlTWFlZifsSExNx+/btF4obIqp8eOeGiNQiIiICvXv3Rt++fQEAurq6aN68udjv5o8//sAHH3wAQ0ND1KpVC927d8fRo0cBAHZ2dmK/m2HDhuHw4cNo3bo1/ve//2Hy5Mn466+/YGJiUuJ17969i2PHjuH9998vNVtKSgqA4jtLly5dws8//wxvb28AxXeNiKhyY3FDRCq3Z88eHDhwAB9//LHS/tatW5epU/G/RzjJZDLIZDK89dZbSElJQcuWLREVFYXVq1eXeO6PP/6I9u3bw9zcvNTPT0lJgbu7O65evYrWrVtj+vTpiImJgYmJCT755JMytpKINBVnKCYiSRw7dgxBQUH4448/xMdSv//+O/Lz82Fra4tjx46hXbt2GDlyJHr06IEePXqgVq1aMDQ0RFxcHPbv348NGza88LkeHh7o1KkTJk+eXOq13d3d4ezszJmLibQU79wQkSScnJwwZMgQODo64t1330VMTAzq1asHAGjVqhUWL16M5s2bQ0dHB15eXjh16hScnZ3h4OCAlStXIioqqsTP7dSpE4YPH/7Sa588eVJpxBMRaRfeuSGiKiU9PR316tXDmTNn0KJFC6njEJEasLghIiIircLHUkRERKRVWNwQERGRVmFxQ0RERFqFxQ0RERFpFRY3REREpFVY3BAREZFWYXFDREREWoXFDREREWkVFjdERESkVVjcEBERkVZhcUNERERa5f8AHUQa6I86LHEAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Example 3: Create a custom filter\n", "# define a sin function for the filter throughput about a 0.5 midpoint\n", "def sin_func(x, wavelength, amplitude = 0.3, const = 0.5):\n", " return amplitude * np.sin(x * 2 * np.pi / wavelength) + const\n", "\n", "# create a filter object from the custom function\n", "wav = list(np.linspace(3_000., 3_800., 800)) * u.AA\n", "trans = sin_func(wav.value - wav[0].value, 800)\n", "properties = {}\n", "sin_filt = Filter(None, \"sin\", wav, trans, properties = properties)\n", "# plot the filter\n", "fig, ax = plt.subplots()\n", "sin_filt.plot(ax, colour = \"grey\", label = False, show = True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Looks beautiful, although maybe not particularly realistic. Maybe we were attempting to re-create the F444W filter from JWST/NIRCam and want to check this without explicitly plotting it. In this case we use the overridden `==` operator which can be helpful for checking whether your `Filter` objects are identical or not." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Filter(sin) and Filter(F444W) are different\n" ] } ], "source": [ "# Example 4: Checking whether the sin and F444W filters are identical\n", "if sin_filt == f444w:\n", " print(f\"{repr(sin_filt)} and {repr(f444w)} are identical\")\n", "else:\n", " print(f\"{repr(sin_filt)} and {repr(f444w)} are different\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally, we ask the question about what to do if we want to use many of these filters at one time, as in photometric surveys. Since the $\\sin$ and F444W filters are different, let's try collating their information together into a single object using the `+` operator.Be careful though, as the reserve operation will not yield the same object. We can see from the example below that the type of this is a `Multiple_Filter` class, which we cover in the [next notebook](multiple_filter.ipynb)." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The type of the combined filter is \n", "\n", "****************************************\n", "MULTIPLE_FILTER\n", "****************************************\n", "FACILITY: JWST\n", "INSTRUMENT: NIRCam\n", "FILTERS: ['F444W']\n", "----------\n", "FACILITY: UserDefined\n", "INSTRUMENT: UserDefined\n", "FILTERS: ['sin']\n", "****************************************\n", "\n", "Multiple_Filter(UserDefined) and Filter(sin) are different\n", "\n", "****************************************\n", "MULTIPLE_FILTER\n", "****************************************\n", "FACILITY: UserDefined\n", "INSTRUMENT: UserDefined\n", "FILTERS: ['sin']\n", "****************************************\n", "\n", "combined_filt[0] == sin_filt\n" ] } ], "source": [ "# Example 5: Adding filters together\n", "\n", "# add the sin and F444W filters together\n", "combined_filt = sin_filt + f444w\n", "print(f\"The type of the combined filter is {type(combined_filt)}\\n\")\n", "\n", "# print the combined filter\n", "print(combined_filt)\n", "\n", "# attempt the reverse operation to regain the original sin filter\n", "combined_filt -= f444w\n", "if combined_filt == sin_filt:\n", " print(f\"{repr(combined_filt)} and {repr(sin_filt)} are identical\\n\")\n", "else:\n", " print(f\"{repr(combined_filt)} and {repr(sin_filt)} are different\\n\")\n", "print(combined_filt)\n", "\n", "# show the difference between the two\n", "if combined_filt[0] == sin_filt:\n", " print(\"combined_filt[0] == sin_filt\")\n", "else:\n", " print(\"combined_filt[0] != sin_filt\")" ] } ], "metadata": { "kernelspec": { "display_name": "galfind_test", "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.0" } }, "nbformat": 4, "nbformat_minor": 2 }