{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "
\n", "\n", "**This is a fixed-text formatted version of a Jupyter notebook**\n", "\n", "- Try online [![Binder](https://static.mybinder.org/badge.svg)](https://mybinder.org/v2/gh/gammapy/gammapy-webpage/v0.18.2?urlpath=lab/tree/fermi_lat.ipynb)\n", "- You can contribute with your own notebooks in this\n", "[GitHub repository](https://github.com/gammapy/gammapy/tree/master/docs/tutorials).\n", "- **Source files:**\n", "[fermi_lat.ipynb](../_static/notebooks/fermi_lat.ipynb) |\n", "[fermi_lat.py](../_static/notebooks/fermi_lat.py)\n", "
\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Fermi-LAT data with Gammapy\n", "\n", "## Introduction\n", "\n", "This tutorial will show you how to work with Fermi-LAT data with Gammapy. As an example, we will look at the Galactic center region using the high-energy dataset that was used for the 3FHL catalog, in the energy range 10 GeV to 2 TeV.\n", "\n", "We note that support for Fermi-LAT data analysis in Gammapy is very limited. For most tasks, we recommend you use \n", "[Fermipy](http://fermipy.readthedocs.io/), which is based on the [Fermi Science Tools](https://fermi.gsfc.nasa.gov/ssc/data/analysis/software/) (Fermi ST).\n", "\n", "Using Gammapy with Fermi-LAT data could be an option for you if you want to do an analysis that is not easily possible with Fermipy and the Fermi Science Tools. For example a joint likelihood fit of Fermi-LAT data with data e.g. from H.E.S.S., MAGIC, VERITAS or some other instrument, or analysis of Fermi-LAT data with a complex spatial or spectral model that is not available in Fermipy or the Fermi ST.\n", "\n", "Besides Gammapy, you might want to look at are [Sherpa](http://cxc.harvard.edu/sherpa/) or [3ML](https://threeml.readthedocs.io/). Or just using Python to roll your own analyis using several existing analysis packages. E.g. it it possible to use Fermipy and the Fermi ST to evaluate the likelihood on Fermi-LAT data, and Gammapy to evaluate it e.g. for IACT data, and to do a joint likelihood fit using e.g. [iminuit](http://iminuit.readthedocs.io/) or [emcee](http://dfm.io/emcee).\n", "\n", "To use Fermi-LAT data with Gammapy, you first have to use the Fermi ST to prepare an event list (using ``gtselect`` and ``gtmktime``, exposure cube (using ``gtexpcube2`` and PSF (using ``gtpsf``). You can then use `~gammapy.data.EventList`, `~gammapy.maps` and the `~gammapy.irf.EnergyDependentTablePSF` to read the Fermi-LAT maps and PSF, i.e. support for these high-level analysis products from the Fermi ST is built in. To do a 3D map analyis, you can use Fit for Fermi-LAT data in the same way that it's use for IACT data. This is illustrated in this notebook. A 1D region-based spectral analysis is also possible, this will be illustrated in a future tutorial.\n", "\n", "## Setup\n", "\n", "**IMPORTANT**: For this notebook you have to get the prepared ``3fhl`` dataset provided in your $GAMMAPY_DATA.\n", "\n", "Note that the ``3fhl`` dataset is high-energy only, ranging from 10 GeV to 2 TeV." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "fermi_3fhl_events_selected.fits.gz\r\n", "fermi_3fhl_exposure_cube_hpx.fits.gz\r\n", "fermi_3fhl_psf_gc.fits.gz\r\n", "gll_iem_v06_cutout.fits\r\n", "iso_P8R2_SOURCE_V6_v06.txt\r\n" ] } ], "source": [ "# Check that you have the prepared Fermi-LAT dataset\n", "# We will use diffuse models from here\n", "!ls -1 $GAMMAPY_DATA/fermi_3fhl" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "from astropy import units as u\n", "from astropy.coordinates import SkyCoord\n", "from gammapy.data import EventList\n", "from gammapy.datasets import MapDataset\n", "from gammapy.irf import EnergyDependentTablePSF, PSFMap, EDispMap\n", "from gammapy.maps import Map, MapAxis, WcsGeom\n", "from gammapy.modeling.models import (\n", " PowerLawSpectralModel,\n", " PointSpatialModel,\n", " SkyModel,\n", " TemplateSpatialModel,\n", " PowerLawNormSpectralModel,\n", " Models,\n", " create_fermi_isotropic_diffuse_model,\n", ")\n", "from gammapy.modeling import Fit" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Events\n", "\n", "To load up the Fermi-LAT event list, use the `~gammapy.data.EventList` class:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "EventList\n", "---------\n", "\n", " Instrument : LAT\n", " Telescope : GLAST\n", " Obs. ID : \n", "\n", " Number of events : 697317\n", " Event rate : 0.003 1 / s\n", "\n", " Time start : 54682.65603222222\n", " Time stop : 57236.96833546296\n", "\n", " Min. energy : 1.00e+04 MeV\n", " Max. energy : 2.00e+06 MeV\n", " Median energy : 1.59e+04 MeV\n", "\n", "\n" ] } ], "source": [ "events = EventList.read(\n", " \"$GAMMAPY_DATA/fermi_3fhl/fermi_3fhl_events_selected.fits.gz\"\n", ")\n", "print(events)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The event data is stored in a [astropy.table.Table](http://docs.astropy.org/en/stable/api/astropy.table.Table.html) object. In case of the Fermi-LAT event list this contains all the additional information on positon, zenith angle, earth azimuth angle, event class, event type etc." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['ENERGY',\n", " 'RA',\n", " 'DEC',\n", " 'L',\n", " 'B',\n", " 'THETA',\n", " 'PHI',\n", " 'ZENITH_ANGLE',\n", " 'EARTH_AZIMUTH_ANGLE',\n", " 'TIME',\n", " 'EVENT_ID',\n", " 'RUN_ID',\n", " 'RECON_VERSION',\n", " 'CALIB_VERSION',\n", " 'EVENT_CLASS',\n", " 'EVENT_TYPE',\n", " 'CONVERSION_TYPE',\n", " 'LIVETIME',\n", " 'DIFRSP0',\n", " 'DIFRSP1',\n", " 'DIFRSP2',\n", " 'DIFRSP3',\n", " 'DIFRSP4']" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "events.table.colnames" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/html": [ "Table length=5\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
ENERGYRADEC
MeVdegdeg
float32float32float32
12856.5205139.64438-9.93702
14773.319177.0445460.55275
23273.527110.2132537.002018
41866.125334.8528717.577398
42463.074316.8667648.152477
" ], "text/plain": [ "\n", " ENERGY RA DEC \n", " MeV deg deg \n", " float32 float32 float32 \n", "---------- --------- ---------\n", "12856.5205 139.64438 -9.93702\n", " 14773.319 177.04454 60.55275\n", " 23273.527 110.21325 37.002018\n", " 41866.125 334.85287 17.577398\n", " 42463.074 316.86676 48.152477" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "events.table[:5][[\"ENERGY\", \"RA\", \"DEC\"]]" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2008-08-04 15:49:26.782\n", "2015-07-30 11:00:41.226\n" ] } ], "source": [ "print(events.time[0].iso)\n", "print(events.time[-1].iso)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "mean = 28905.451171875 MeV\n", "std = 61051.7421875 MeV\n", "min = 10000.03125 MeV\n", "max = 1998482.75 MeV\n", "n_bad = 0\n", "length = 697317\n" ] } ], "source": [ "energy = events.energy\n", "energy.info(\"stats\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As a short analysis example we will count the number of events above a certain minimum energy: " ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Events above 10 GeV: 697317\n", "Events above 100 GeV: 23628\n", "Events above 1000 GeV: 544\n" ] } ], "source": [ "for e_min in [10, 100, 1000] * u.GeV:\n", " n = (events.energy > e_min).sum()\n", " print(f\"Events above {e_min:4.0f}: {n:5.0f}\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Counts\n", "\n", "Let us start to prepare things for an 3D map analysis of the Galactic center region with Gammapy. The first thing we do is to define the map geometry. We chose a TAN projection centered on position ``(glon, glat) = (0, 0)`` with pixel size 0.1 deg, and four energy bins." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "gc_pos = SkyCoord(0, 0, unit=\"deg\", frame=\"galactic\")\n", "energy_axis = MapAxis.from_edges(\n", " [1e4, 3e4, 1e5, 3e5, 2e6], name=\"energy\", unit=\"MeV\", interp=\"log\"\n", ")\n", "counts = Map.create(\n", " skydir=gc_pos,\n", " npix=(100, 80),\n", " proj=\"TAN\",\n", " frame=\"galactic\",\n", " binsz=0.1,\n", " axes=[energy_axis],\n", " dtype=float,\n", ")\n", "# We put this call into the same Jupyter cell as the Map.create\n", "# because otherwise we could accidentally fill the counts\n", "# multiple times when executing the ``fill_by_coord`` multiple times.\n", "counts.fill_by_coord({\"skycoord\": events.radec, \"energy\": events.energy})" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "MapAxis\n", "\n", "\tname : energy \n", "\tunit : 'MeV' \n", "\tnbins : 4 \n", "\tnode type : edges \n", "\tedges min : 1.0e+04 MeV\n", "\tedges max : 2.0e+06 MeV\n", "\tinterp : log " ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "counts.geom.axes[0]" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "counts.sum_over_axes().smooth(2).plot(stretch=\"sqrt\", vmax=30);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exposure\n", "\n", "The Fermi-LAT datatset contains the energy-dependent exposure for the whole sky as a HEALPix map computed with ``gtexpcube2``. This format is supported by `~gammapy.maps` directly.\n", "\n", "Interpolating the exposure cube from the Fermi ST to get an exposure cube matching the spatial geometry and energy axis defined above with Gammapy is easy. The only point to watch out for is how exactly you want the energy axis and binning handled.\n", "\n", "Below we just use the default behaviour, which is linear interpolation in energy on the original exposure cube. Probably log interpolation would be better, but it doesn't matter much here, because the energy binning is fine. Finally, we just copy the counts map geometry, which contains an energy axis with `node_type=\"edges\"`. This is non-ideal for exposure cubes, but again, acceptable because exposure doesn't vary much from bin to bin, so the exact way interpolation occurs in later use of that exposure cube doesn't matter a lot. Of course you could define any energy axis for your exposure cube that you like." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "HpxGeom\n", "\n", "\taxes : ['skycoord', 'energy_true']\n", "\tshape : (49152, 18)\n", "\tndim : 3\n", "\tnside : 64\n", "\tnested : False\n", "\tframe : icrs\n", "\tprojection : HPX\n", "\tcenter : 0.0 deg, 0.0 deg\n", "\n", "MapAxis\n", "\n", "\tname : energy_true\n", "\tunit : 'MeV' \n", "\tnbins : 18 \n", "\tnode type : center \n", "\tcenter min : 1.0e+04 MeV\n", "\tcenter max : 2.0e+06 MeV\n", "\tinterp : log \n", "\n" ] } ], "source": [ "exposure_hpx = Map.read(\n", " \"$GAMMAPY_DATA/fermi_3fhl/fermi_3fhl_exposure_cube_hpx.fits.gz\"\n", ")\n", "print(exposure_hpx.geom)\n", "print(exposure_hpx.geom.axes[0])" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAV0AAAC1CAYAAAD86CzsAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOx9ebwUxbn2Mz0z5xwOiyK4BTDiEjQIKlGDiju4RI2IUdHcqBBMjNGoqF+u+dxirvqZ63JzNcbtJsZojEtQExUXXHBBJRiuccOFaERkEUThwDlnzkzP90fPe/rpt9/qnnNmAE3O+/vNr7ur3qqu7q566qm33qrJlMtl9EiP9EiP9Mi6EW99F6BHeqRHeuRfSXpAt0d6pEd6ZB1KD+j2SI/0SI+sQ+kB3R7pkR7pkXUoPaDbIz3SIz2yDiW3vgvQI/+U4gHY4L333ttkzpw5Q5csWTKotbV10/b29oFtbW3929vbN2xvb9+wo6Njg7a2tt5tbW3NxWKxoVgs5ovFYq5YLGY7Ojo8+bW3t2d8389kMhlkMhkAQLlczlTuVS6XyyiXy8jlcuV8Pl9uaGjwK+elXC7n53K5Yjab7WhoaCj06tWrtaGhYU1jY+PKfD6/orGx8bN8Pv9JY2PjJ7169Vq68cYbLxgxYsT7I0eOXAJgBYDienqHPfJPKpkel7EeqVIyq1atGjBnzpxhb7/99vDly5d/5ZNPPvlyS0vLFqtXr96kpaVlg1WrVvX67LPP8r7vZ8vlcjmbzZY32mgjv3///n6/fv3Qr1+/TL9+/bx+/fp5G2ywQaZv377o27cv+vTpg169eqGxsRGNjY1oaGiInWez2dQCFotFFAqF2K+9vR3t7e1obW3FqlWr0NLSglWrVmHVqlVYuXJlaeXKlX5LS0v5008/zXzyySeZTz75JFMoFLxMgPB+v379Ovr27dvWp0+fVX379v24b9++C/r16/ePgQMHvvvlL3/5jf322++N5ubmJQBKa/0r9MgXXnpAt0dEsh988MGXZ86cuduHH36487Jly7b/7LPPtlm2bNmmy5cv77N69eqGcrlc7tu3r7/55pv7gwYNwpAhQ7KDBg3yNt10UwwcOBADBgzARhtthIaGhvX9LHWTUqmEFStWYPny5Vi2bBkWL16MhQsXlj/88MPiwoULsXjx4syKFSuyADL5fL64ySabrBk4cODSDTfc8O8bbbTRvM022+xvu+2224s77rjjOwAK6/t5emT9Sw/o/mtJZtGiRUMee+yxvd9///3dP/74452WLl261ZIlSzZatWpVQyaT8QcNGlQaOnQott5669xWW22VGTp0KIYMGYK+fft2Du17xJbW1lYsWLAA7733Ht57773y/Pnzi++99x4++OCDbEdHh9fY2Fj80pe+9Nkmm2zyj4EDB/5tyJAhL40ZM+aZ4cOHv4UelvwvIz2g+88pmXnz5n358ccfP+iDDz7Ye8WKFTstWbJkyEcffdSnXC5jiy22KG6//faZ4cOH54YNG4att94a/fv37wHVtSwtLS2YP38+3nrrLbzxxhvFN998s/z3v/89WywWvYEDB7ZuvvnmiwYMGPC3IUOGPL/33ns/sssuu7wBwF/f5e6R+koP6H7xJffwww9//ZVXXjls0aJFey5atOir77//fv9SqZTZZpttijvvvLO3ww47ZLfbbjsMHToUuVzP3OnnTcrlMhYuXIh58+bhtdde8+fOnVt68803s8ViMTNkyJBVgwYNenezzTZ7Yeutt35kv/32e+JLX/pS6/ouc490X3pA94sl3uzZs0fMnDnzW//4xz8OeP/994cvWLCg7wYbbOCPHDnS33nnnXM77bRTZvjw4WhqalrfZe2RGqVYLOLtt9/GK6+8grlz53a88sormUWLFuU233zzNVtttdW7gwcPfnq33XabNm7cuFkAOtZ3eXukOukB3c+xLFu2rM+999571DvvvDN+4cKFu8+fP39jz/Ow8847l0aPHp0bPXp05itf+Qo8r8fd+l9FyuUyPvjgA8yePRsvvPBCx5w5c7xVq1Z5Q4cO/XTQoEFzt9pqqwfHjx//+6FDhy5Z32XtEVt6QPdzJB999NGA+++//9/eeeedI995552v/eMf/+i97bbbFvfcc09v9913z+68887o1avX+i7mWpKFdF4G4LIvc5yr7rrSDupGuT7/UiwW8cYbb+DFF18sP/vss8VXX301N3DgwPZhw4a9udVWW/35wAMP/O2IESP+vr7L2SOB9IDuepTly5f3veOOO0546623Js6fP3/URx991OurX/1qcb/99svts88+mWHDhn3BJrc+RbCWoAR7/kfCPEd8dySt/nb1/elRgwegEcCGXcxn/cqCBQvw7LPP4qmnnup4+eWXc3369On4yle+8tawYcPuPfzww2/ebrvtFq3vMv6rSg/orlvx7r///rGzZ8/+3ltvvbX/22+/veF2221XPPjgg3P77bdfZujQoZ9jkP20ckwyZbAbKgNvPUC22vRSn5kNV/tOLcAVyRvxWj6/wLx06VLMnDkTjzzySMdf/vKX3ODBg9dsv/32L+60006/+c53vnMvgPb1XcZ/FekB3bUsb7311oD77rvv9Lfffnvia6+9tm1TU1N53LhxOOSQQ7KjRo36HNljP0QATuLdkEUUZDy61mX2K/pSlwqk4yMKmOyOmjXCOE8XWNfbiyoNbCXMN3Rd5fERzG15CNn/FrUVs05SLpfxzjvv4NFHH/UfeeQRf+HChdntt9/+o2HDht130EEH/WL33Xd/d32X8Z9ZekB3Lchzzz331RkzZpz9+uuvHzFv3ryNdt111+IRRxyR32+//dCvX7/1XLo3EQCJgCuDrIiHEHQFbHKIAk6GdLX4CEAmjwB4NCgJEDMwM8C6QLiaMJdw/gygXAaJa0QAlGnudTo/fo4S3B2OhBURvJ/tu/Ac9ZdCoYBZs2bhgQce6HjqqadygwYNWjNixIgnxowZc81hhx02E+k2nB7pgvSAbn0kc/fdd+8xe/bs//P666+PXbJkSa8DDjigNGHChNzXv/719chm/4o4cOTpKEDqIQqiHulxmNbTQK2FAacAoAGhZ5MAkOwnw6CowVSDsAuAk96zZs1c/hziIMt5ucCdQdbqMOTZykaYAK6P+PMVAYxy3HPtSrlcxptvvon77ruv9NBDDyGbzfo77rjj7FGjRl0zefLk+9CzWKNm6QHdGmTGjBm7PP744xfMmTPnwNWrVzccccQR5SOPPDK73XbbrY/SIAA1BpPGyrEBIejJNTNdARgxL7BpQcDWYsIcr4XZJIOpAJxIm5G2iHjb7kDUHJFFOHyXvK1yWBvlaHBNA2zJPy2swwgvIb5RmVx3IGTEAvoS1046HoLvt39KGesvixYtwp/+9KfSPffcg9WrV2O33XZ7ccyYMT8/+uijH0QPAHdLekC3izJjxoxtn3766Yvnzp17xOLFi3uNHz++fPzxx2e33nrrdVyS+xG1NzLAAlGmiko8mw3ypAtKowFVg3IS4HaV0fMwW9JawFVGtNMoVMolYQxalqQBczVldIXJeQdsc4pm9JKmQ8VJGOsIIIuNvF3db3wXnqN2WbJkCe69917/rrvuKgPwd9lll5mjR4/+2THHHPPMOi3IF1x6QLcKWbZsWZ9bbrnlJ7Nnzz7573//+4BDDjmk9O1vfzu3ww47rMNS3AKgCSGYir8ug6sAqzT+PF17iDJdAR8BVT1x1og4I2TWKHlqIKuWOYpoALNMCxqAgaAD4LrbHdLFNlkrXJsPNHu3TAmucvuIMlwgKL/FbIGwQymoeDn3ALRSmjYAU7Cu5MMPP8Rdd91VuueeezL9+vVrGz169N2HHXbYBbvtttuH66wQX1DpAV23ZO66665vPvPMMz99/vnnR+60007F733ve/ndd999Hbp1/RIhgwUC0AUCwBMAbFBxAqjaJiv5MBDzBJmYFXw6Z5arh+kMupphVjNU1zZWbc8tGXEsGnCT3NK66rpmlUtETBsWqLpst2I2EODUeWjgBUJAlvgSooAMFdaG8PnaAfww+RHrKG+88QZuueWWjscffzw3atSoD/fYY4///P73v38DepYmm9IDukpeeOGFTR588MErZs+ePbGtrS0/adIk75hjjsn06dNnHZXg0sqRV55tiBBYBDyF1QIB0PIEF+uwLutxuICCxOcQB2Vp0FlEmbSIi/VqSQNGIDrL71qBZgFjGvBqT4WkcA36Om8GTm2P5esOQx+Ib60rpgMGYt/Qa1NpyqTjA1hJ8cKE/y/WhXR0dGD69Om4+eabi0uXLs2MHj36ibFjx049/PDDX18nBfiCSA/oVuSPf/zjQY8//viVzz///PADDzyw+L3vfS8/bNiwtX/j5T8CNiSn+iwzWwFeNhFweKMR1kRHbWrIImTCbM/1EDU5AFEvB9GxmG0GNthpmzKLAI/FGAVky4gCovZycMUBbhDmjkKTMCsv7VPMNlguh54c5FV5FvsVYaAFQlu1AC6bHPia7b+84RjHE2sutwN+5T18+ikw4L+xtmXx4sW49dZbS3feeac3YsSIRfvuu+9Pp0yZcgt6Jt/+5UE3f8011/z4mWeeOWfhwoV9v//97+P444/31vr+BgtPDo5NdJ+mRqC5d3Ce0QAr5wKoHuLgqlmshyg4S17tiNqDxYwgTFdst+JnK3qa2WqTgna7ElYsUqZwKR9fWz6vDKzae0Gzark324UtBstSUnosGkQbEAdNvuaJNOs6yTuB9QqImg24/ALSAsLazCB6BMTlyn3aWoE2AuI1q4PjoJuxNqVUKmH69Om49tpri4VCwd9rr71uP/jgg8/ZY489VqzVG3+O5V8SdP/6178OvOuuu66bOXPmUYMHD8aZZ56Z23PPPdeurfbVo4Jjc+8AYEUEeD0vDPeyQKMFsGw6EFBlFqwBWsC4gCjwonItDVvS86IANjsIkPKKNRHXf5cJAPI5eymA4pn5AiGAuEBT7J1cFq0j4JZT1yyarWo9Br6sIxyIMmI9AWaBMRAHWiAwHXDaAsLnalNHMS1wmALf9kq4X4oCblsFlH0/CG9rDc5H/BFrU9555x1cd911xaeffjq73377PXvooYd+f9y4cfPW6k0/h/IvBbqPPfbYNo888sj/PPHEE3sdeOCBxTPPPDM/aNBa3HnqL4eF502NAbACUYbb3EsBb1N4nm9CyF4rLDgGwqIjLBaIgnGW9CVNBlE7r/bh1deWOxZfa/9ZIA64EqdZqACPXkacU7oChkk2Wz3M1+ycAY+vPaVrLVaQZ9EMmEUDrDVhZrFdbQKROGa17I7GrmPapFB5hx0CuD7QRnbgtlZgDTFhYbxANHzXB7G25LPPPsONN95Yuv32273Ro0e/dcABB/zg2GOPfXqt3fBzJv8SoHv33XePeuqpp3793HPPjTz++OP9U089NbvBBhusnZs9ukdwbO4F+JV329wcxjdXAFZMCZ1A3Bgw3M5zrwLCvYCMAFQjQtcu9rttUvGohBURZbF6kovjtFgmBdbzEbUL68mpBiNMjgLYMpTOqzixiQJR9lumMA1wAkxAFEyziDJTATz2+XV5W3CH4IrT17KQgRkri3YNY2HTgn62gjoCgRmhci5mBN+PM1mRNWvCc9ZLA+GDZhllrV0KhQLuuOMO/7rrrsO22267eOzYsadNmTLlvrVys8+R/FOD7rRp03Z9+OGHfztnzpztTjnllPJJJ53krZV/VLh5MDBwYDRMgLaZWW3v8FzMCV420BGAlThJbzJeNiFIwxZgF3Blmy5UGjm2IcqC9aSbiGspMRAAIQMMs1nWkTggOsHEugKQmiUDAVg1VnENuhZphL2JFoNtB9zgK0CdN/TkuSVM30d7LUiaBkRNBVosG63oyfuWEURFt+wDhUJgTgACwJUJNAFTCWtrC+M4HgjBVsKEPCxbBpxcfzdc3/fx4IMPli+77LLylltuuewb3/jGD0844YR7636jz4n8U4Lun/70p5HTp0+/Y9asWcNPO+00/6STTsrm80mz6d2UX/SPAmlzr+i1yMABAXiuaQ3BWRhuc3N43gnEXgDGJuMVkwKzX164oD0RWFfiNcPVgAV1Xa7ko4fdAnoCBnqijYe+DJAS56t0bJPMU3wHohN0QNQEIuE6TABR3gf7xEo4s1Fmn42Imw8KCDspeTYN3KBwyy2M37lOw88BuCfUWsPrksVwy3G2KwArej61+08+CecTli2j2wlgrwmB2PcDMD6j/vNg5XIZf/7zn8uXXnppeauttvp43Lhx35s8efKf6n6j9Sz/VKD70EMPbfXQQw/d9dxzz33tlFNOKU+ZMsVraNBLXesgl+aBPn2CiutVGKiArbBWIMpW2ZzAwKqvY3lQOs4vy+5kPIHWjLBRSgeg3dDY9gvYpgSdTkTepwVyAvy8bFd7J8jyXb6G0uFj2mY33am/bFLgYbxmsNx5MaNl8LTAVXRYLC8FIAr8DLjyjjjemChLYrV+ucJo6R2uaSUApgk2AVORlpZ4ms58/VDn/9Z//QOD77bbbrvwm9/85nHHHHPM83W/0XqSfwrQnT9/fr9bbrnl9ocffviwE044wf/hD3+YrbcZYfnpAbg2NwO9+uWCiud5Afhq2WST4NjJYCtg1Kd3eN1MpoQ+fYMJNGG1QBy8eacyAehGZrFiXmAG24Go+UC/E2G9LJa7HLNOLVJ/BHz1ooKyEddeyZNNDHrfArYLFyitPFsr4qxRx3sq3AWEFlvVniwe4kyWRfQtHYvxauFnZ1Ane6vFakX8MrHYSj4xhtsWAKfvxxnwmjVRc4OcL/s4Hk6A3L6y0Jl0wLX1xRLf9/GHP/yhfMUVV2CvvfZ6ZcKECd/af//959f1JutBvuigm/35z3/+/+69996z9thjj/JFF12U69+/f11v8OHJQWPqpfCqE3xZZK9cYbbCgvv0jYJmnz4VHQJebU5gYAYq+YmpoQLQ0vAkDgAyesGEh6jtVgOv1TlZphgBLQbFXnQuwqvJGlW8BmTWaaNwBnmLNYu+HsVo5i1hIg1GmGXH1UxVT6RxPL/rVkO3gDiAa3bYTkcxw1R0LDstADTkw+tOkCWzAbPSToAthWFst+0E5nI03ZrWME3L6ghj7ljZ1jkvJ8lXV64H31xfTGlvb8e1115buu2227yDDz74wQkTJnx79OjRq+p6k3UoX1jQvfnmm4+59957/6d3795N//mf/5mr9y5f878TNBTfD724Ml7QBiJWg2agsV9DGACEZoNNNo7aa7X9VoMzEAB0Z3xGmRd6hfkDUTbM4REGbIGqxOl9G1gYqBnsmoCYGaCB0jSoOF/F6zQCvnpizNp7QddVF/u2pBXxicU2OpfFJRpMPYRgKkN9bSOXNAy4vAiFdXmTGod0UKfAdloWZrTspcA225i5wY+aHDi9RtClS6N5VOJKK1dHnCB0Mp6f2/p39cWWFStW4JJLLim+8MILmDhx4sVnnnnmZfgCbrD+hQPdZ599dsidd945ffbs2dtfc8013l577VXX/F8+PBOuSwDQSMTJ8xCJy3rxeTHPq8x39dsgBE02GwjL5UQCxp1A7ABXzX61rZiF3dQAIF9J19EankdEJsu0MMiCzhkgrT0R9OSZsGQLlDmtZUZgHWbGwsj1cN0yO7Cod1WqgBwvwS53kKueTpMJdQDS86L58TcpGGEAUGgHGhrDc5Y2dW0xWiAKogy+YrMVtguQeaEc6mm221IhkStXRoEZAen45JNocSzgBYCSH/QfOz9QX4x58803cfrpp5cGDhz4yYQJE478otl7v0ig611++eVX33333acff/zx5TPPPLOuHgkvHBQ0JJ53a1QYJCYGPU/W3By0u2wlvFcfAlCx+bqugSgQS5wwYGtCTdLINS+8YBGThZYmC3QrkueH1mBngW8vAEJ98iq+MruebUTcRayiW6JZ8TwBfJkApoGewXeEi7S1hUMTHQ4E71SeX1gkv7u2dtWxVTo+AcSmXuG5Htno/ORY6AjvraVgMN4CmQxiz+HwVgAcJgWaNNMmA9GTiTLREZut76OjpdCpCoQAK6aEsgJaDby+WEd8YPdH64c15XIZ99xzj3/ppZdmxo4dO2Py5MlHDh8+fHV6yvUvXwjQ/f3vfz/6rrvuetjzvH7//d//nR0yZEjd8n58z0wn0DY0BL0zYNtwRdismvGiYKxJKwBkmpvChglEbb9JDJiBFYiaE/RkHGC7qwFRoGGxAFkasAYuaahNveLDVslbGq5c69luAUlu9G3tQTmYaXEafZRyr1kT3EdPKKWJ3M9Ttte21ij4yrvkcC8bXjfRt+gE4Uqe8l0tUNcgzvGa2eryiWhGC8QXPkTYqx/aawVo5T23rAqvlYeCAOrqNQG48uI2fQ4ArW0hCANx4JWwcc/XD3NaWlpwwQUXFOfMmeOfeOKJ350yZcrtdct8LcnnHXRzl1xyyW//+Mc/HvfTn/60PH78eGvWo1vy4K4B68jTXBizXMYcAVggznJ5bkvCmPWKfmOzF81E23eBKBjLUQOv2HyBqM2X8xVZsya4bjYAV6+W85Vrlu8HeWsHeh3OAGqBbScgK3YlgKnBVgBYA4t0EKLHjJbZr4iAop7pZ5PNGgsUFVgyuLa1xW3yPJkJhKOTtvZ4vsJ0rTiRttaA/TbQqEGDMfvgAlEfWiDCVINjqTIRJoBbCtORTnlNW2cy/gFBVWqtgCizW90naqAVEtNRCHUk/LC/1A97XnrpJZx66qn+3nvv/ddJkyaNGzly5Kd1y7zO8rkF3T/84Q9fv/POOx9tamrqff311+cGDBhQl3zv2zEc4uUbggqU8QLwlbrfoOy4DMDaXZZ1NBCzjk6T8RA3GbgyZ1czILhmpsZ2YJHm3nFAAOxhq2a82kVIg6+ca9BbszrKhLnRMxsWXc2qeXJnTWscaHV6KZeAK0tbq83816x2jwzaWuPvlfPq/CaZKHDyB5c8rEqg03FcpAyezeLb2uPfQU+oMeBaRtfODk0hpu+jo82PJCv5UYbLgGqxWzYl8HXa+ZGv1AeD2tvbcckllxSffPLJ8re//e0pp5122m11ybjO8nkE3cx//Md/XHv33Xf/4OKLL8aECRPqxm7vGR4Abk55euWVl1FjQ7QtNDYFzFXC2LQABHFNTTYj9ox0Ep5vMhomAAwkrwcBiQijrXQc/dT+Edo2zNKsQI9FwuQekYZNZgWt3wm+FXBke6EFvvI8zH5jefUiMFGmhk4QJrNEZ76GmUGe2WK0IgzOETDMBOn4Azb3UmBb+Q5SodrI1sv2eM18JZ3+9prRcnnWKHNli4wm1MIHIGqu4Vkvfp8C6MVg1V17BYMFaDuTVH6tbSFbZdDV2M3stqzAFQDaC7YJ4ujX64dDc+fOxZQpU/xx48bNPOWUUw7ZcsstE+w2614+V6D73HPPbf7rX//6hY8++mjwbbfdlt1EFhnUKL8dGlTybKVtuEwKnhe/BuIg26spDqoNDTYYW/kAdl6RyfKNNgoi1pBN0ZowsxZniJlCS5++cdDVAGuxYm1PjaUrR5lnNaDMIKvvJcxM3ysC3mvsCTOOB+LGeI5jViv2cn7fQBQ8JQ+28QIhO+38kW0XcE+8Rcq0Oh4G2J2JNi8AURYslXjlZ4i4fbEZpnIuTFbAsuxHgZWJMQOoAHS7Yr+a6QLRMPFoEJG4YjE4nvheffBozZo1OPPMM4sffvhh24knnjju2GOPfbEuGddBPjege9NNNx39m9/85vdHHnlk5pxzzsl6LsbWRfmfIXF26/sBuxXw1WYFDbCsI6YEvm5oiE+o6faT8aIMWqe32luECYvI0FOLdhGLxVfSsE0YsM0GrM/hMcAm5tTJlg2GK0PeiC3YjwNwc3O4MipmohAbdKVcLavjTNYlfXoH+ladEtYpQKxt6AzEmqHKOX/wXJ7SrbaBmBmv54Xvx+VW5mLCQAjo+juKVwSbeAjdyvSKi8U4oFqgazFZzXQFVPXnY4Yr+RSL0bwqpBuT/lE/TLrvvvv8iy++GBMnTvx/55133rr536IU+TyAbubiiy/+zf3333/CTTfdlNltt93qkumNm4e2W6utCcBmcyEjtcCvSQGpDpc0LhOClVdSHLPdrAJklkyTsolo47OIdqoH0m24fJ5kcgAqe1D4MO2ulm2Xr3Xe2iapTSJchpaWOMv3/fBl8d4BWo+BzrLhaqYrYZx3zG6bCa/FlKDTCvhGzA6tYbirDECISCzsAcHvptAR/UYV5CwXinwZea3CNJMAl9ksEA1ns4Rl+y2oiTQ+6nLI+fcX1QebFi5ciIkTJ/q77LLLX6dOnbrXkCFD2tJTrT1Zr6A7b968Pr/4xS/mvP/++9vceeed2Q35v8JqkOs2DgE3awAWmxDYXQyIs9R8Q9RMwCBZbRo5agDVZgjOT8QCbBbtSxx39VLsVMJck2OAzUC1fZXP2TYbCSdwtXQtMKVhr6WS7xO8pPaVhc6VgO0rrX1ro+IaOOl3Lf6nWf1Nm3PoWFPs/NbBhm/CbmnIJB4OFtBqIC502AxaHzXgFtX3EdGLK+jllYt+dJCh2GmpGAU8BlgGZADoKAb6bcoO3Gm9aIvmDdBqZgJWNjVE+oxCGH/ax/XBp0KhgDPPPLP40UcfrT755JN3PfTQQ9+pS8bdkPUGuvfff//2N9544+wRI0Y0XX755bls1vW3L9XLL/qHS3c9LzjqSTPxVACiICeM17LVSjoG8KYmN7hKvKQT6ZXAdDmN1nHFiyRtpNbYFJ24AKIVPNuUc4KvBr5sUy4aoABSgpLwt6kpHsZ7rfBRO0dwvqvXAL2b47gj72z1GsREJjz1e+1cN+H4ltypAlGMlevWtrD+8K8TnPlXKMSHTsyA+aF0r1BoD1mxXwrO/VIUmI0PUFLAKUcBTIvpFgrxMDYhSLy2BetwuV+1bLejGK9TZ6yoD07deuutpeuuuw6TJ0+eeOqpp66XPXvXC+jedNNN42+88cZ7zznnnMxxxx3n4CBdkyt6ZTobA9c5Bl2pvw0N8YYjDBWIgy8zVO1epsHVxXBFLBODLhvnx5L14gBbzc6VGph8P+qxwUudLcBktgLEgVM7yUuZnBvwGQgAACAASURBVFYGYkRaVzdUfRRm394WnrcqgHWxWonTi9asDlA6We2aqzeDKxbj4Cxga4FwoRDUPc8L03aCM2fiKhjfVNgFU1QlDKgiGhAZ+NoLYTqXuYHZr9hl2bWsWvZbKrpNDPrbF4vAuavrg1Uvv/wyJk+e7J944ok/nTp16iV1ybQLss5B97rrrjvr5ptvvvKWW27xdt1115rzu7wxYLclP+qVIKKZLps+NYMRgNSsVsIZlHV6zYpFtPtZEtBa5gUrHesmhbksC9Z1Q0OCtcEBvsJGXfE6X4lvVyDNDKzkh52AxcpEGHQ1k+f3365YLIvuUOUowGONfIA4Ua0GbAUbubO3dDkuUih5CfQg5WL8A7u+ufy0qcD6BsI0NdBqVgyE54VClBkz6OpwwF7hBoSmDgt05fy89tox64MPPsCECRP88ePH333++ecfj3W4cc46Bd2f//znv/jDH/5w+j333JOpx65gP8uGttvOIbABvMJMNbvVIGeZFJjVSjyzRG6YopMEovreOl7uK9JYBbhaIu+Dy5pkZmB9PbSzjlYYAywfmc3wUuskRmvdh/MvFKLvodUxNWLZ9PX3YJB11QkgJJRpAAsEdU3ii8W4rrBdHkHpsnaH9HI5+R1a75x/HMbAxyCtzQjFYuiVoEFdgFubKCQP7S3RUSmztvEym2Y5v6N23Pr0009x1FFHlXbaaae/XHXVVWMQ3zF/rci6At3MBRdccM8TTzxx5P333+/Vw//2gsrfpVsjSQ/Rys9HXZEtW24uFwVHV8WXo7WIjI98LyBughBhENELNkQsEOEKqUG6K0xWzrvDenV8tUdhti5Wq4FZzjXopgmzVL52nUfYJuKjGw2wQAicDKhsQrAA16ozGojlXejRV5oIkAEBiALu78BmAgm3fsJMLTBm1ls0QFt0rUUW3DlrJq3rQtEHfAA/qwN2FQoFnHTSSaU+ffrMP/fcc0dsu+226bOyNcq6AN3MBRdc8PCsWbPGPfDAA9k+ljN/F+UnmUxkLMB7N8mK9RxVSra35nJ2Rc/mQsBKYhgCwhaIW400lwvBQRogN1Igyqa1WOHaZGIJg5SUwWI+QDKz5fslsVzfDxljV0DUxWol3GUfTgLdgtFsXDZywA26QNRmK99e763BP2GczIbzubieZsq5XJxJu4CYRZaxa9GdIWCz2phjRNE2QWgGzLo6DTNdC4j1z1pQwYDNzF2KK5T0sjrgV6lUwsknn1zMZDIfXXzxxcPWtkvZ2gbdzIUXXvjorFmz9v/Tn/6UbU5z4K9Czs1kOtmtj/Afthh49f/YMmthMGTGYU2EaUZibWRjmQtcpgMGXB1nXVcDrnxP32hoQDzc9+OLRfiYBMhsvnGBNZso0piudprX5UsC+jQR2yuLHslImAjXA88L8kgCWYvNcr1xnWuAZnOEvo9cswnBVX55P9Y3d+kIoALJE2gMmklMVxZbaD22FfPiCL6nfDerXGLCls0wywhA+D/rgGG+7+O0004rtrS0LLn00ku3WZvAuzZBN3PeeedNnzNnztgHHnigZsA9K5NBDmEP53Iwy8EG4MacGzA9Lz4Jpm25cmSTBIelNQbNjmPlTmC7Wq8a0QAJ2CAp50kgx+dJgM1DwbzKTzdqnVaO0nm48tXPocWaOJVGrBmhHq6nsVwgaiLyvABItEmBAZTBVt6dxXJ15y4MVpu+rGO1nZBrdGEBnx7+i6mipNgqs1wXwEp4eyGaXsLl/npRRUndW4pcUke/cn51jVhWLpcxderU4tKlSxdffPHFW68tU8NaA90LL7zwrlmzZh315z//OdurV8Km2VXIGcp+q+uYBuAsAvCV9ufRUTcii7kAbpMEn7tsfqLH1yIC2losW201AOvS0Q2Ry5HEHqtlmOwtot1++H4ugGUHeCDIKwmgdf7ieuUSqwPj4TuQ/C0FUPmaAVKzW8ueK+BbJrDVAKsn1Fxlc80DuDr5pFEBv2eXuccCXM2C5X2yKUF+FvvVR8sjgkdAJQW2PgJmy9dAALgCwL+oA/D+4Ac/KAJ474Ybbtiesq6brBXQveKKK6657777fvT44497ffv2TU+QIKdnMrGnZpBlQM1QnA4Hwj9x0UyVj3r22mUD5qPoubwOLADQabUw2wFsUNZiMVB9nsu5QVREQELCXZMwnBeHMyC6hrAcl83ZPqOue+qy84SRJfwt2IZZDYN0gR/rMXBmc+EoidNL/cjn4oAroxKXqxnfz+UPLuV1jZasDk3HJXWMaWYHebcWwIqpQdt5mSm7vBw6QbhS1jLQ+a96QPQvRiXs2hoxzfd9HHfccaXBgwe/fNVVV41Gnd3J6g66V1999Y9+97vf/dejjz6aqYeXwg8yobEgg+Dp+QiEYAoKE/DNq2uv8tOeBC7GoYeTIlpP/3ea1nNdy72T4rkcWqTxcB7avYZ10ibQsrnoLlAWQKcxKlcDl3AevushLeehO4iENQCx91NSQKzfq3xvMQ+wngXCGoA5vTB+C2DlGSSOwdWqc9pN0TI7WeALBO87rXPWE2fa1MBhHMeTaC6wtcwG7Hom9nsGZZcZohPkpUwIKKfYc4WICQjznx5dXyevhm9+85ul3Xbbbdoll1xyTM0ZktQVdG+77baxV1111aPTpk3z6uGHO7kCuFkg5hpm2XRdQMt2XslLvBuSJklErKGfazJGgzUQ5s/O8azL0l2TgovN6jgBACmPpZcGqmkTbZ2uPQ5QdZke2OvApaP1kt4XA4zre+kVZXJkfWaQun6weUGzWHkXDMbazKDvx6YKfQ/r/lw2y4sBSPfPljwsxmuxTgm3toPUfrqa0TIQFwrhPg46fecRAcAKuIKOBXVdROjdcHMdcG3lypU44IAD/OOPP/6Cs84667KaM6xIF+bHk+Wxxx4b8qtf/erh//qv/6rLwofJxHDFZlNGWGCuRx6iTLZExyyCDyE60kMW/ZD1Fv2wwloNDIi6eZV8oFSIsmRXxQWAkhfGMWBodpb14sBjAbNrB0C5p7ZdatYijSWvwJnBVJ6NzQt8Dw2Kkq9lVpCjBdYWKOdy8ZVKLqbtWhQBBM8nTNYCdDnXz+R5UZstjwLYBCDfXECTARaIAnpG3VM6YN3p53JBnSwUo2YwLZx3Z76O96DrpoRpHQuMrbwYqIGwvVkbobnyASrM3wOQA4q0RSTXE3kmseVaAFykc69yPDmTqRl4+/Xrh3vuucc74ogjfta3b9//nTJlysM1ZViRujDdOXPm5C6//PJF++2334annXZazUB+YgVw5cV66giEzDWv4rRdN+vQAaIM2kN02NaobLtyzszKmkgDkr0UXOFpDLfaSSNmJrqMljmB0+rhexLjdZkTBMh1Xi6w1uvspQPjPJllWe+uaDRS1pV4idOjEF4xxmnZ5iph3BG6PBB4s3xmuLzZEqcRcNXsN4n5so4lVnjS6EefW+9fM11mwtr0IASDWS4zWM2KZZczMTmUiqHZwGXHFRAGHUVf5Dd1wLfnnnuufPbZZxcvvfTSLceOHftRrfnVBXTPO++86R999NHYW2+9NZfJZNITJMh3aOIsad8xaTcW+GZQHRhDhQGB2YHdxoB4ZefzNBDmhqFnvJ3P1s1Z+SSzggV2rjg+57IDUTst24jFVmdN1PkqzmrYIrHZdCkjQkYjwhOseUTteixWPdIduQ+3yYkZuMVyLdAU84IGXt+PLrDRQK09ICyQl3JpJm7VUxfL5HhrlOZaNgwkLw1mQOUlv0leDLy1JIe1F6PMVgOwy5NBjhL2uzpg3NVXX1165ZVXFv/2t7/dgrLultQMujfccMPkm2+++eZnnnnG693b8RfgVcqxBNgyTACCRiOlZDzihsPga10DiE2ycfoGvqZKq53lLeBNYh6c3rWc0wXAGny54ruYjAt4NSByHOenmbLvR+20nJ8Ga7m/tUtUIgtGFPyYwfCEqVwz68kh2gJ0a8g54jwVL6YojvMQPrsFxNo+K52QTKAJ8AqQAnHWq9mtNmHoOQBmvjpczgF3PbFGKjoOsBdLiI5muZYrGcclLQ/WLDhy7gffrID4BJrUEVkg4fLdFdy4sw6uZOPHjy+NGjXqzosuuug7teRVE+g++uijm59//vkf3HzzzbmddtqplnLg2EwmYpPRopkJELJXYa5J7mKi5yHKenmSDSocqB6AWddy0NdiOeonsV8RbhgaRHU8YLuCcRi7g7ncycQGaYUzCGs7ccTdDAGTZKCVhsS2dqmNAqy6PnDjyqo0ne8A0W/PojtvBns513VJ4ngUBMTBke3+DKi8O10uFwdewDY3SLj1k/tIvqLL4gLcpLAkhmsBb1dAV46y/aOL/XZ6OfhRRluAzXiBcN5HM14591A78K5YsQL77rtveerUqQefeOKJj3U3n5pA9+STT573la98Zetzzz23JjvuhIS9FHjyTEQDcIO6zhk6lg9vmr1X8uq8rwHA+Zwdr+2ALC4PBvHNtcQ1My0MOsleyw1LT8BYbNdl25VrdpaXckkj0cDKRyDu6gNETQccn0PU8R0qjZVvnvQYmFHJTyZVQUfA3r+DAVmAmEFYmDCbEMR8wMAr39syNwBxkOY64zI1WOArYu1WJiYEwGa0QBxorZGMBlxJZ+2rYO1WxruPuRhupz+vHwKssNkORE0OmtGyPy8Qr1fTagTexx57rHzVVVe13njjjRt191+Guw26v/zlL0+/4447/uvZZ5/1avnXhyMrDBeIM1zPcc4spRqGq+2/LtuuNCQ49C0AlgqZtspMs1/LyZ/ztlivBkVXWeTc1dCY1TKTsfISQOcOQYMqnwsocUNgFskNBQhZrmYurA9EZ6iZ4XIZ9CvTcfI9pVw8UhLg5zognXcH4kCcI102A7CpQUBWwrWdV7NkzkfHWyYEbdd1gbAW9kwB3Ptk6DBt/61m0YQ+7ygGfuAahJNAVxisZrwcBkTrndWJi9xXI/B+97vfLW666aYPX3bZZUd0J323GOqcOXP63X777VffdNNNNQEuEO2Z9DBfN2qpS/JCkwovusKULF9fzpdBgNkSKK4AMk8wUAHwZTKLbsKuaCV2FfOibl3WMDCNjVrhGkAtk0HJj6ZN2tMgYnOtnOvKzKYBGcZJGiBkKjlEGwDno9+zlQ8zV62v6w5UOKcREJX6wABszRvIvbW7otSbHCrvRvkEy4iig76zT3pihpHvIx4UIgzAYo/nhRiR8qnvloK5KBSjpiFXXhbgAtG/07EWSOhFGhpguysZBO9djnoExB29fGcg3qHXKtdcc01uzJgxh48cOfLrEydOfKmr6bsFunffffc9Y8aMKY8YMaI7yTvlEGK5QJzlJAk3dmkAVuNj8HWJHoaKLrOjpDR8Xqg8ROeL9eOgGgFjP27P7aCG2ZlNChsF4quTAKCwxp4IK4GAmsrGnRt7A2i7q2asgieaTUreBTpnwNYO7nJ/nhxhYLR2IOEGxmHSmfL3lHyKdK6XlRcobRZRsBcmL51z5zPL+yUfaCAETwGehoYApMWnmTvfXM72dQbCHdPE77jaCTM98WvZZ7Uk6XAnnZQHmwy6I1Y65qfyfXQ9BIVZdl8gwJ3pNbDdfv364cc//nH5wQcfvG/ixImDVNFSpcvmhYceemiH884772/PPfdcpl+/fl1Ky3KQAlwg2hhZtNlAmwySzAvalUzEsu+64lzxosONmXWKQMzbImIy8UIf0pxqNCLaz5bNGUkrjYAokMksP1dA3dFYrM/qFEUfCJ9T4j2ks2HWlTwZBC17XF6VncsqYs0LcPnYLMXPwnWJ2bHESVnFFVGuO5ku6ecRfEu22fLkmQ5ne66EaY8IIGpKcHkvJJmkgHSA5qNlzwXiftOWWcHaxEavRhNQBuLbQFo23XZEbbsl2GYGBmDWz5KOyKM1AG+5XMY+++zjH3PMMaefdtpp13clbZdBd8qUKW+OGjVq21NPPbUmu8L+5B7G+ykANrvUCxmA0M3LstVqINQ2W50GiNt+0/LUOiBdV7xu1Cx62CFg4WL+DHAiGkwZzOT+HGe5XAkoWcN3Bk0gDpx8H11+raeBXYb9fB/LM4HLqcO5TJ5Dl8O1TV/yEa8W7jx1HciSHi89FzdF2Twplwt9c2XrSg5jIE4CXMtPWC+c6HxGL3p0MU7LlOVitkB8sk10tccCg63EJ02sMTPWiyNkAk3qVBE2COs6K+k7n0WesXJ8vEbb7ssvv4wf//jHrTNmzOhL2adKl8wLd999954vv/zysBtuuKGmFRD7qBVn1RSKbbMiMtQU8NU2PyAEZW3blXrGQMFptFmCe0vNXjVD1+VkpimiTSElR1k4P2Z4IgxyeljF97fyZNETVRbb5OeTezCAafZaMvR1eTSwWw7v2nwg9lVtamAgZxFdqzOVMru8Z9jmLEAr74Lth/qb50F22mIImp02Xj+01cqycmsPYt7xzdwnAhWvkVzclsp5cRod7jITpP3bh56sdYnvyMcqi0uk7Vn1Q4tuCyJs4wUCHJpZA/B+7WtfQ3Nzc/6aa645/6yzzvpptem6xHS/973vvTV69OhtJk+eXI3Z1Sl7qlVrmokAxlC8ctTmBM0+83B7NGg9K+8S7HvpvCymLKIB1mLXupHq9ECcxep3xMwQiAIpD6uBOJgySLIOA7wIA6wLOAUI00BTmzAsE4LVAUh5JT8RBuN8QhiXlyfE9Le2OuYchXOHK+y3gcqfpWNj5R75XNx9zGK5vJBCJti0ucHyXBBh7wX2UHD9r541B8AmK/FYSZtcS/NkAOzdxFwmh84wBN+yAyHgyo/ZLZsWrHMRa/7g2RrZ7v/+7//inHPOaZsxY0YfVMl2qwbdadOm7XjxxRfPffnllzP5fD49gUN2J8BN6+Asf9sk8HW5eLlWonFYV+L5nkAcDCzzgauX0qYHEc14XV+pK8DkAmjOX38TZq2abTNosf8rA6dlo9XmC5fXg5RZ24N15yF5cplldCEiHape/q3BVNt15TvLe86qNBmE4CoALICLik4OAci67LwMoOxSJnpsywUQWZRhAS+bFCw3sjQPgmpYMAOqC3Qtk4O1D4PlryuAa5kWXHElQ4/rmTXa8gE8XyPwHn744cWxY8f++xlnnHFVNfpVmxeefvrp6yZNmuTn8/mabLm+cW6xQiDomQR4uYHLcNDqVsTOmaFrbSrQ5cmpeG6cHC89JZcxo3QlThquizlLGTVb5eew2obkxWyOgZHLX07Q4TANgtbCBBmqaVAEpdH5ahttEmPW9xfR7ESfp3mlANH3K/eX7yLPpSf98oiyclcZpb6VEACtvJfYKIVsm5bPtrBaSSjAKiYF2X3Membe0wMIwdZ3vTQpE+m7vGOSWC6AiB+3xXBZqjEjZCofhVWtURsc1/KNXIBr1btaZerUqblf/epXP6kWdKtiuosXL27+xje+seqJJ57w+vfv3+3Cfc2xGY5+cMvUIEdhDhzeFQ8GUBoRnqTzlR4PMV1lZGd9zt9izpboySMdznGa0WnRHZgGRwZ90bdsuPw+BDC74tVggTA3AtaRd+7yetDgx3lwOSUfq8OSvLSpR+IkL8sUpOsU1ycejWnTAhAyX/FqAOKmBd6L11qpxhNpnWUWkwRVCJ5407ZWnoBziQWwcm4BcdqfWYpJIePFJ9DSmK5lQnAx3Q4Vbq1W04Ar55Lu5Ro9GXbZZRf/ggsu2Gf8+PHPpelXxXR/+9vf/t/hw4eX+vfvn4YficIPrYeTLtENiO00Hv2sBsVgZpkfJA+XqxqL5YMqoifWWEoqTLNqwH4HJUc4YLNMYaZ6ea2IBjS5L98nabivy8ITixIv34rB1dKR8rAONxYpO/v26rQi2hUOiJed6xCbQXgEI/VD23V5wpMBWN65dFos3IFEaEalEJliuDjCp8Jr26teECG+ul7lBp6nOuqiDay8cMbFaLXoMGuXOa3rYrpJHgsMwGmAW6JjGfFtHC3Ga00q61+tkslkMGnSJMyYMeOK8ePH75mmXxXozpkz5+Qf/ehH3TfkAthReSxY7lCaZbK4htsuXSAOMBbgWWkttpbEXLULlOhr04HrIzOLTYrnMur89NGaEJNwXVFdHQBPflkuY/qcmal8SzEPuGy0Oh+LaWtAB+L5A3EXOAFYZqoSJx4NOoy9KNiuq9+DpJHrhsozMuDyc8izA4j9lVCn5ACPAIu9FfRG5yI+mRb0tzbNDCqe9XS43tTe2uMjDXC1XlI5RLgNspQpTjo7/a6tdFIPpP5Yk707ZjJ4pQa2O3HiRO+www77OsL5ZKekgu68efM2nzdv3sA990wF8ESxAMcV5tHRKqBmyq6HEPaih6N66GwxUahw/qD8Ri0WxOW0WLFVMdjVTeI1aFvsyaomPsXpyqXtt3Jvzt9ilQxOLnMDs2ZrZFBUOvr76xGNfiYdr71EgLgbmWb9Ul8KRph+VgZh+T7CfkWkDHJfDQICxL6OI4bXaQ7wo3+y2Qmwyk9R/6tFp54PlClM78FgeSwImOrl4HriraiAU59b/r3Wf6pp4LaEo5mQaOOkazSoJ9Kgrq36VyvjHThwIDbYYIPyb37zm29PmjTpt0m6qaA7bdq0s/fcc8+i53k1MV15aM1YADe7tZgPH7nRaEZjHa3Zay0MRgwcIvolaHByLUOWcvLwllmRtQhAgyPn6XqH1tJdBkbLbYzvIUDP4S77rIjlXmbpW+HyDqzOV44e4vfVLBdKz3Ut6XTdKFA8f1M2XwFRd0Qgyro4vwyls9hYsVIZ9PacYlIQcOyMq2RS9kKXME7L4N0pFRAGQvcvXoIu6bT4+mPpOHVuuY4liQbiiDsZoqYFXuSgw7gzZ53Y/dS5rkuJtLQLctxxx2VffPHF02oG3TfeeOPoE088sSbAHUamBX5obXvT4hpupzUulzBL0SYBAUveUYrTiQhwJoGxZoXSSyetuBPdtHAe4lquW3JtAXYHou+JGSvnx14LnL/la8umAX1/7hy4jC47sLDLGCtEtN5YYVZd8hD9Fta19tm1Om+eLBMpU5zuQKD0GYgj38QHMkbLz+Wi4ChMttNvV/KhNMJuLQ8Gz6s8t9FjSljayjWOq8Z8oCfLBJBL1DlImqyHyF8uxe7rjoIPd3sSsTp2y8QwLJPBWzWYGA455JDMr3/96x3hXqcDIB10s2+99dbgepsWqqH0LrZqeRHovK0Kb6W39ICQ7blcjrS+6zmyjnhrWOyaENCs1Lo3M3hu1BZTZcCTvPQihSQPBw2orMeVW4OplYZBiu9l5ctxOdjPoa/lni7brnXkn4zq9eiEn1VEg2+H0hPmy2YKH2TfJXuu9fdLvJy2cxOdSpzei0EDroRp262E89GSNNuv9sW17sMS8cclYLYm0ORdWYSE5xl4IraojvrchUXVELck2XTTTbFmzZrsM888s8Pee+/9qksvEXSnT58+prGxsdzc3FxTYbTHQTVga7EabkCsq13IrHQW0OtycL5s62VWbLkaucpdUjplI5zaXCydxaglXnej1kytBgYJc+0epn0agXhF1QBqVVaeuEhKo9mqayLMxVAk77SOlwEViNYLz3FtMWQYR/4+Aqw8aag7Bf4mGQ73g2G2BjVZSqy3dIwsCUYFrHx79RmDsAs4tT4Lmy20OYL9dHX5tNmBbbyxe8aDOsMZiLW3jeUlY+Vh1ZHOsibcv6syZsyY0tNPP33S3nvvfbZLJxF0n3/++WP23HNPITrdFlcDBuzGYcVpcbEVvl8aO9H38pVOEmMGorZBixW77EtWz63tkwL6lo1UVyCL6VpmA5mVFykiWg6LkVpMgDs+F0Ba39oa0um8raWaSAjT4dxRWqMR65smmRg0S9bzWtLZCYtlwGWGq0kDly+PgLXmEJ0kk4UUHsIJNv6/NSAEUfZgyHqhXdjyYHD54Oo4HaY3vwFC+y3/7ZPLi0HnySwXcIMrYJM1eedWG9FsFype/2DodUf22GOP/NNPP71/kk4i6C5fvnyPfffdtyZ77hDjv8+shqQbsQtENSsBXUMdrY/ELzkJVPX9NfvR+Uk6a0JMewroMAmHoQsVzg1b7qfB1Ko8rrA0EHSBnj4XIHHlw9dcH/Q71t/H6qT1tQZ8riP6WnTYbFBEvF5xWg/R/TC0T1AOoZeCPAuPlASAOxkpokuHO9+BT0DrqWtUFhlUkISBNuJ7i9DskOQaycIeE/wHqiyuyTE9mWaZLzTL5eXBnXoJ5RNQTVosod0PY+UkXYsQSPyQTAYLarDr7rTTTvjd7363TZJOIuguXrx46A477NDtAgDuh2SxwMtHONR0MV4LQF3gqVmulZduuC49OHSse+hnskAZjnDr01vA5hKtZw2x0oDO0uH0Foh6Ks4KYyZp5QdE35urHBJWVNdWR8ystah0NNvNkR6DLDNdfS9tNsgiCu7azmudww+BFUDnRudJy4BZGPiq0Qei5gE2H6RNslnsmf9fTwOuiN5MXcBST+QymEp7SKrvWnx11PVJ1/N6yDbbbIMFCxb0hs37AKSA7oIFC/puu+22NRWCH8r1YLrBy7keIoquxXZd8RZAWazaujcc+q5yeypOp0vrQKoJ64quCyRdYRawVQO6fO4C2GKCvqvcrqMul9bRIGul03WIdfXkGZsTGIQZqNn+zh4YejTmI7okmb1l5NzzQzMBg1nnMl9Uz2JFP0ksFzEGb8sdTU/SyTFpYs5yLXMBqqvDkHem61EZdj4gPV0HOU7CkohZNeJ5HjzPKy9evHiLzTbb7H1LJwl0e/u+7zXITsw1SFJvooEqKb0FjknMFipM52nd2xqm6nhd/iQbsAZvqyNxgboO0z01h3OYpecK05XXYpfas4DTaWBzXet7W/e1gF5LVzow1tH1wrqHLhM3Dp7ksyb8ZCGFBlztCSMsWBMDSe8jtO/CADoRBl5rkow3y0nyJrBsvvp+DKaapVp6cq+kf5nQ5gpe6af3w/XpWTnMMi346letL3/QbAAAIABJREFUTdeFPd2RzTbbzJ85c+aoY4899n0r3gm677///pBsNptUt6uStAfScVajcDFInY+L1VjAUw0bTorn8mpmpXWtZ7CAT99f61usPumYFKYByCqbq0LqCTF9Dw3Slo4+1y5g1TSEaliJC9CtOqW/owZX1zvkBi6+uLI3sKxUlMlOZmIlivPoHEDM5gmEbLcTABFlghZ4JoEq61igqvPQuhzPIjZiDbjWfYGo5w0Dp8tlTDqujIrjEYQFtDDCtU49wHfw4MH+Bx988FUA06x4J+jOmjVr24033riuoFvP3oTz18yBw9PumfaASfEWw7QmdQD3B7XKDNiAkvQek8Isxq7L5AInl44FOlYa6z46zCp/Uuepn8klXBY9SuJ3ze9f+1C7TASuDknYLhAAAOenl5zrrS49qAUvBEp6QQE/ozZF1CJOly7fPtc61s5jLh0geE7LtODDZr9A1JQARG3Bom/Vp2p+9ZBNNtnEa2lp+ZIr3gm6q1atGti7d+/advdFeuMC3Ey2mpegG5YO5/yrAeJqmGoSs62GuVpl11JtWDW6LrBOqpg6XTXnQJzl6ryte7nAMAnIrfJb6dP0OW9r0QrnxRNo+n78PLxfgFzz/rwWG2NA7oz3owyTTQUuUwODr2sCLI35aqlm4QQAcwcy0dEALIshgKhbnQZXIAqmlikBdPToZ4FpEgvW592V3r17e6tXr3b+a68TdH3f71XLP0R0RSxw5Ou0tJrFcDhLUuN25WuV0fWRqmFf1j3qCbC1hCWBswV+rrQusE3TSco36VxLWqeaBL763FU3GYS5EfmwN03X1wLyArBZCoswPz/uxmW5ZXkIXcpi+zaoNGmAWw0gazuxNoW48og8B+JA26mnrtmUIO9Lp5OVlRbYdpYr5boe0tLS4i1YsGBjV7wT19ra2vL5fL4uTFeOaQ/oanw6j7RG3NX8WRYqPRcAdSfOuk7Ko9awD7uYVpcnCUCtsK7cJ0mnmnIAtrtZ2nVXdKqpL1Y4NxrX3hRadEO7j/Qs5pgm1ZgJupqn1rXSWFs/3tHmzqtaLwxrBaazfFXmqdNUiyNp8t5772H+/PmbuOKdTLehoaG1UCjU9K+/liQ9lNUD+Ea4zoNtYqzPYTp/qxwegJYqy8r3tcqh06cNayxJa6hpILAqQVe/myQwhUOvuyDm0rfyt8qWVB6XnmsUlVSXXGYv1pU4X+mIPTdp3w4f9gKYHIC3WM+PL+/V5gaA/qXBj7LdpBVpAKr6VwlXWiBuVtA6rxUBnyYA2VUsko/cg+9HRx8hm+X9QkS0Z0is7Oq8HgBrya677upvvvnm77rinaA7cODAZatWraoL6KYxBVcaF3jpCRCdxgJZnWfafdLSsb419NT3d4F80n1dUi3jSgtzHV3nSQCXBNpJZglXmiTpSjkssNX1SeJ5MY5Vl9LMXZaOBmHQNeu6GppZZw3ATZI0va6w3K7agxPzgg20HK7P2XNBrwxkVzNXvVibYCvS0tLi5/P5Va5456fYZJNNFn722Wd1Z7pJUi0T7Cp4W8eu3jfpY7ni0j5wVytAd++TpJcEqC6gdL1Ll25S3q5GYpW7Ow3GAlgrb9dkXTWjLCtP3mGulkYk+fOwvRqgjZUp4cXpfxbW/zBs6YtYS4arEVfnBMTrkfUHAV3N3yW11C2XLFmypLzRRhstcsU7y7brrrv+vaWlpRuftzZJa8hdYWAcn9Z45HqoI74aSQPl7n7UNMB3hW9dRb4iXamkOm0SmHeFzVfb6XZVrIYldSJt8lbXHVc9cul4CBiYNSWt82Jw+T+s54XLdLVnQmc51MuqFgzTwFWDsD5au5rpPH/WFNdJKx6/C70wgvNI8mawvvW6ALTFixejf//+f3fFO8vQp0+fZZlMJuPXayxRpegKm2RHqya9SBpDcZks6i21MLWu5pX0LNUAXFL6ar9LNSOLpHvUq/ZZ5dWdjmW6suqFp37ae4GHwCwZOup/MNH/r6fLx/+R1lkOAwxZkjweXGxWh7vO+VrKxh2Dy3OCxQJI3u5SpJotDq1/A9ff1FXH6w3Iixcv9rbYYgvnfrpJ9ykPGDCgbfHixTUXolZAqxV8dRmsxlZtOZLiqsmnO8MkV5qugKIOq1cFszqztHfRleepRznT8nCxXd2A9bnOQ+sJW9P/o6f/QcRT5/o+/A8S1UjWC39WOgtILbBNitP5acbrAvTOMiH+rPxXUnozfhdgyt8n8fvWZMtFuNaGaQEAWlpasgcddFC3QBebbbbZknnz5tVUAAv8kiptUsHS8kprzBb4J/V+1Ug1DbrWTofTut5BtYBVDeAlpXN1ZiwMXmnpqu2outthJNWZpHohnbOLCfHG+To+q/JIupcFuJzexVAtlqs3Euc4fe1iyUnxrnszq804wFv0hH0L0GURZbfcQYHOk7550mY3VtvQ9VN+9QDeZcuWYcMNNywAaHXpJNbfQYMGzX7ppZe6sqFRTJZX9qa0Gk4SYCQVsJqGX40kNUCXHl+npalHGa08qgFODksCPBeYWTrVHl3CebnsyUn1QZclrd4kAa6+t87XVTetMlg/BlIGUZl11/fXrFhE/oonjeUK4DLjrNYU4ZpI8zza2cxII/v+Jtl3dRrNdLX3gmthgN5vIZsQ55rjqaZ+Lq9hL10AeO211zB48OAlafdxyjbbbDN99uzZNXcAaQDFOi7dNBCrpiHoeBZrsi2pkdZS/qQyVQPorjxc5UjShxHuSu+6T1q5knSsfC2dat5lNeVOyjup7ngIlwC70vkIAZVBNIcoWMgxD5vldubrhcekXxLgJk2EuUwILlAWkBWx7LZZL2S7SXZmzwvfA79Di/UCCf/yiPheDNXW0c7nSMi7q/Lss8+WvvzlLz+XpONq0wCAAw44YNq7776bK9eI/l1pUGkFS2skXZmkcf1WAljTxfum5a/zYL2kMqaVNa1cKwGsVvdJSu8qg1UeKz/rOklH52vlr/NgXatmpr0XK6+0nwW4rnAGXAEV8V6Qe/JEmpyzc7+HkOXOKQLzfMTAloXtty5PgzTwTvp1vlsvynBd4KrvJ9dZD5gL4E2joVqeMfLOLLODi9m6PJ7SGHBSW6xWZs6cWR41atRdSTqJm5gPHTr0s6FDh6569dVX+40cObLbBZGH8R3nSWlc11ostxAXYHDYcgCfVa4bAWxeOV+FAKxyADY20lZbLtZxuSVVKy43LM6vDOAdBI38ywgq5ioEK+34WeR9pZUpyd0uKY0Vr/NKqgPy7wHyd0QZlS//6aOrzFYdSgL9nAqX65wRxnkwKDDoMvhKPkDQoT9UOXoAdgSwW0X/XQCPVp571zKwnxfovFIE5pWADbLAQRUXLM1w2XZazSQYn1v2YJasF19xxulvXQG82g70yQAXDKh8vyKwxgfuXA0srqQ5Kgt4GeCNyrP2BjAG0cUi3JFaK884jusQv2fejKoaUNXg3R0pFAr4+OOPs0cdddT0JL3U9r/99ts//dBDD9Vk111SLjvZVTWFSgNPKzwpjdy/A8CnALYEsBWCj9aCoPL3RQDA7aq8Sc9gPaMrnU6flk7ruNIsA9BE8RkAfQAMUs+SlqfrWat9vrR3Us1985Vnkb1pcwh36xLXLCDKIvMJ+Vk/a0LMxWpd8WIqEHOBvPccxWsWuxeAkwD8GwLmt6JSjukATsgCp2eBV3zgYwCZDLBdHvhWL2BRCZ0mBe2hkDbhFWGcuSCPjMpL/4CoS1jGyBsA9mgGfrRRUFaRbA64rxXYPg/8uDdwVhOwaRbwy8A2GeBQAEsrutaIhUFH77ebJNWAp65/PgKcqkWefvppjBgx4iPE/2c2du9EGTVq1H8//PDDNa9MqxaEdIPtagOoJp7vr5mUbrQZIy/rmdLuw8/jei/VApYrroiA1Q6A3fgzKemr/T7V6mjm6MpHvzsg/H8xKTcQDtc9hKBrPROfW3l3pb7kEn4Sz65KeTr6pMu22g0RdOh5AL0ADETw3RYBGJABNs4CjVlgxyzwhh8AWbMXgJyXiU+uJQGuZQ5ghpzPhXlZ+chfv7tcwkRvu15AX5p0y3rAmhIwvwR8vdKochmgV+Vj9spUylLJj9872791PWYXMWtyTRWzan9+na47cu+99xZ32GGH36fppd7r2GOPfTKbzRbff//9mgqUBERJjcWVXudtHV06cp5HUOHfAfB25Z4bIAq0rmdxgSxLGhC70lrvIAkoJH4hgMFGGl05q/m5OrO08lebf1d+0nAaEN0fgZ9JP6/2EOjK82pglTJYaazOTb871tEA8RmAJQCGAGjJABtWwMjzgA09YGU5AN1MJRywAdflcSB6Fqt15cF/8S7xuVwI0Mx49X04zSflwNzwhzbgmjXAvQWgmAE8ReE82HswAPEVaBKWtAhHf0sg+j20vtUGuyqlUgmzZs3KHnbYYVel6VZzr/LXv/71R2+77baa/rNtYcXEoF+Iq+JzAXWjsuI4TJ9bRw/Bx1sFYDsAX0XwIT5FAMQbVnS2VmXTnYGVr26w+hmrYVPVgAOHfYagE+mDaOPeGED/yvmWCfnqHxzXXXkunUfS87jylb+XF6Aq0bMx6PVGCGS9qnxvutxWJ5fGcPOIu4TJkc0LHumLTgeCLRwPAtBbEhHoehWA2r0XMKIpALopG0bBjj0KLKZqmQ/SJswsdszCrDdr6IldGRngwxKwZyNwdh+gIQM81QF8LQsMq+gejfRVi3xumRyS0gJ2+8+psIU1mhYeffRRjBw58qMddtgh0V2M75koe++990+mTZuWrXVJsK7QSXpaR78w3ci7Y2ZYjWDyrAFBY+hfCdNlTAKSJMbrArO0uGruYT3LCgB/A/Aegs7kPZVXGsBV+966+76t95eULovAw5yBSmanOxDYqEsIbdX8fDDys96D1uNj2rNrMM3ST8wMLhAuIwDckQCGIwDG/l7AbAXAVmaCiTMBzbwBsNZPgFCzWgbStHPrHrlcGJ/14oyYxfOAfpmArW/VEFzvlAcWloN07FomHZjLhMDmGTY5yDcS6erEU0Lxuyw33HBDccyYMaksF4i3dVMOPfTQ17bffvvFjzzySE0FW1AuV9XguXAWE7H0kBBmnQMB4IprmLDeXsZ9ugJSaQ22mnQ6PQw9nXZLALsCGAVgGwD9AGyrdDWTSwJhF+tzfaOk8rk6yCRQyyDoSLIIWGy58muu6PStnOcq8a7yu8KrLY/FdOH4VmKHtsBYOg75TUcwChnjBSCZ9YAhWWBZuTKplgXmdgAjG6tnp2yvFWBLSmeBrBwZYC3TgRXGZhDPAwY0BKC7pIKGbxeBTb345jwsaYskLOGOrquTTx4CXKpFFi1ahKVLl+LUU0+9rhr9qsF+7NixF15zzTU3fOMb36hm/wmneOkqEV0LSPW1S0eDltbpi4DdvongYzUD2ETpJJVX4rTrU1efUSRplVZaHjqttXGIxLG+nHvqXOdtvXvtdlZN2STMiufzDgRTwFmEm7GvrDxXE4IOswDb/i55aHuelDdnxGv26zL1ZFSanCOM82YQzgFYAOA1BHXteh/IlIGDMsAODcAED7hpTVDW3ZuAwQ1xkNOAK4zTWr1mmQ20SxlfS17634HlyP9GLPEdReCXi4E3W4GWEnDuIuDwPsAevYCj+wC3rQKKZWCABxzTCHjlZODVIl4LItb+DCw5uN0HrLZSq1xzzTXFfffd9wEE1TZVMl1Y+JAZN27c6iuvvLLXjjvu2O0CAsDQil9JWmPlow63rjVLcekk5Z+Ud1I50sK1Tpqfcgbpvb0L9HS4BWquiQjLluYKs/K3/krd0vdUmFWWtDAdbnWCafUjCXAZRIGQTfF5UpjejIXDcogySoCG7rm4K5jFRpnZAlFmq3X1kYE248X/EojD9b9OyHWxGD/nX7Fo/zsw/zqKYVwR4X+cdSD00S2oa0vHlY7rGF/L750aWe6nn36KffbZp3z77bdvNmLEiKXpKboG9OVDDjnksvPPP7+mCTW5adIvaWit8wDSh+SWvit/ub/MlLtMBa50rmfSOyCJbYp/cJzzUlKOF+al8+6OfdIKq8ZEYg27rbTWcNy6rqZOWM+WlE81z299awtwtc1Wji6g9ZR+57fyYK7sYpaqh/daj222eUde2pNB/HPZT1fuxR4OEq43sJG8dHlyufikmpg40vZkAJI7WnnPlulAp+NJzaqH8TXItddeWxw7duxT1QIuEMWxVJk6derlHR0dhZdeeqnrpSOZX7HtWg3G+sERJuCo9fiow/SH0PlrW6aOSwNiIA6mYufLqWv9kwk9+XEDh9KVZ+clpALAfO80EIO61s81B8A8BCaY+aRfQjBMTgPL+Y68WxF6JfB34ff8MQL7pvX+Afv9W9/JFe76nhzWUXl2BtAs4u+skeJ1nlmVr4f4IgMBWAFSvdGMnigTPSBM6wLxfEOYN2AvgvCMMF4UYU26uWy7SdddEU7KAJwzdKqx5er6UivLXb58Oe69915v3LhxJ3YlXVdfSemwww7795/85CeleuzHUA2TsoCXwRYp+voeWj/pGsYRsEGVf7yeXhvAhfG4yux6RxZ7Ex0N0hqcmSnrPFwdCIeNRLBUNYdgxZuHYMJxa0e5uMxw5L0G0b8w1+llOCW2OdaDoc956Hdn6QLxd2uBcG969mp/2mMh8u49oKHB9ihgm6wL4LQng2ayroUQzDqTJtL0ufbNTROXrdZKm/pX8HSuk1cLXFb7rZdcfPHFxW9+85t/Ovjggz/sSrouM/DTTjvtumefffb8P/7xjwO/9a1vdftZ3iyXMVzZdjkzFxBxvOtap006d8XJtasHtWYTdV7Vvlx9D73JteueaRVR7FbWX8WUEPq9lo20Vr4bINyPohXBP9aOrOTxPoA2BJNcBQBfQjAxmUGw1HNVJZ9BlfjVFf0VCFZnMaACASj3regWKH4lwom1PMKJz2UIXMeAwMe6N+Uvf5ezeSWP+ZVnkX9+3gqBf/NKAB8g7Ex3qdz7rwD2rYTJkl0PgafIYAR7CHyIcEXg1gD2QdTtqdOFzAA2lxcB6wBxUBbRwGvZeXW+LC52yqCY9aI7hLkAMynO0rX+Vqia5EnMVuKsuQa5fr1G0vjuu+/iL3/5C2699dbvdDVtd0CzfNRRR0342c9+lmlpaUnXTpDX1YIJi7GArvnHM+6aKWk2pPNwsSY5l6G+fDy9I5SLreq8NCN2/USYnVomCMBmsUk2X2HA+t2wjVHfj98Tv5PPECwcESAR9raskt8OCEB1DeXjIwC0YQiBrR8CQN0YAUA1If5NViMARgFHKctnALZAsJnPphX9FZX7Dan8ZIHIp5XybImgA/iM8m9AsChmEwRmjByClWHbINh8ZheEdUCe873K+cEA9gTwIgJAzyLYOOlAAN9GsMJROicxAXkIzALCUBvIK8E1fGeTg+UCxpNwlp3XAlyXfdgyGVgmhIwXnYRziZVWX8f+1y05yyAP0s2qMKtIVvt/tUbALZfLOPXUU0tHHXXUz7bbbrsug2B3QBfHHHPM8+PGjXvywgsvrMpFIkl4wioJwCzQ1OGudEl5s91NyiIfU4btHgKbnQWGHqXX9lQWDaCWSUDEAnQuA4fpSR0NyNrmK8+cRfydaNDPIADNuQBmIajoG1EeUtYWBGCcQ+g/61EeG1TOeyO042bUvfi5OirXvRAAdAEBuOUq72Apwo2JPASMdgPKJ4/Q5WwhgH8gAFwxZ4CeQ9h0rpLHe5U0QGhjl3ezAsEfl2YR7G/Rp1KODAKwb66kGUDhne/Yi4OmZVLQE2Acb60Ss+zBafbXtAk8yVdfd26AY3QMEp+hsuu01r9KAF1zHwOqA2ftwaLrei1y2223+RtvvPHH55577s+6k77bZZg0adIRc+bM8WfNmtXdLAAAc43lwQ3q2rI5ugBZAzM/oO4R9SoYnZdcu8CUQSMP9ySYZsaWDVPycD2rC5STbMSNpCNlkucFop4P+v7yfFkAuyPYFasMYDHlzwzb8s4QnbyK0x2CHum0IADCdxAM3X0E7DmHgOFuWIn/ICGPMgJQ3BrBIpHtEAAmAz5PRGYr8cMr1y8iMKFImbVbGD8/f2drNJHP2WyWbbtpgJtkg9VMmONc4KuBW6fR1wysIklmCxeYAzYoVytprlNsLrOynVsjy126dCmuvvpqHH300Qeja2s4OqXboDt8+PDVJ5544nd++MMfllevXp2eIEHmKm8GKVgasHpK32U2sACPG5sF5MxcocIsE4OIh2gj1LPelquY9nDQP8uFzPKKyKj7WO9A2LIGYvZ84HIA4TB5GKI2T2FyGyIYXnsI7KqtlIfrO8gWjRosswhMEMMAbF/5bYnAVpqtpNkAgWlB9mDti4DJSl6lSlhr5VzCC/St+H7yftsrz/KVyrEF0SXImyNgzQ0IzAerETB8Sa+X/noITQr5HGKTZi5AzOUCQE5yAxMXrSQmnAS0QBTgrXskgSpLNUyV8ygWo+mqZbpJCJeFbQtmLHi5DmaFyZMnl4466qibx48f/0p38+k26ALAd7/73XsOPPDAx84888yafXf/UmG8UigLKPlcD0mB+E5QQBS8JEzbaiUdg471s8rDPw3SIgJyck/L1JDUUbgYNH88y2zBoK3dyfhZ8oiyYtYD6W+EAMyWIwrIgxEM5+ciGJr3RtS7hN+XdBYDENhQ30R0okz2WmiisA0QmBDKCNzU3gXwdwQ2Ydl43q+Ev4twQm+Liv5blV87QjutLlMWwWTY8wCeoefiMm9XeZ5pAJ4EMBZRoOVONQt0LnLQgJjxot4H2r4r4gJS9iRwMeVqWCvfh00GLNWw0DQdidcLLViScJcXOHjqKCYwMTlwG+R0L9UIuABw7bXXlvr377/kwgsvPLWWfLqyIs2U119/Pf/v//7vHx977LF9/+3f/q0mEAeA3TOZLm1CzNeuOMu+qj+eCI98JB/X6jEeIieVk8W1zDYpjb4nC++0xOnSVnBZdjFrGz2+Lhl6kpf0uu0IZvu/Drvy67xdK+P0Nb8nF6OxXIx0XdBgy52X7qB5xGCNPHj1WawzJvDjfQyA6LXEC4jK/rXW9ozabithlp4FhNW4fOl/h7BWkZV8e4WZrEDTccViuPKMV66JfqkYX01WqlzLSjMf8VVn7Uq/TPElSvd8HQD31VdfxaRJk0o///nPt95///3/UUteuXSVZBk+fHjHlClT9vjpT3/6t5133hnDhw9PT5QgL5TL2LMCvK7ejSXtARgYdXoX89X5Zh3nrjIl1W2XfppztwXuss1hgxGun43/tM/VifCsKJdJp5V7gOJfprjtETJ7KYu+LwNokj8mEAK6BlANwhzPRz0CYoBkM5MAqoRbgCxALWm0Z0jOiwImA6xljxXAtVzBLPtuyY/nodPItXYdE/csvUKM3bZk6a/ndX2CS+4r35yXCbNOWr7yV01AtF1wfdR1RvQFkEXqAbiffPIJTjjhhPKkSZO+WyvgAnVguiK//OUvp/z617++ccaMGV7//v1rzm8fBbwiLtCygEsDlQZofW2BMgOyC0zF1pgEnFnE2WVXWTKLCzhd8drNhMsrNYBBjMFRM1yJ16BXrORp5cdi5cfiIT5h4gJmrWeNIuQ7s1cKA6XEMfCyKQcp4Rpwta3UBbwacF2r0KwJNXHbstitZrS8j4OIC/j0XglA1Aar90twMV29F4OL6cq1sFaL8Qprlb0TNPstqjBhvU/VAduKxSIOPfTQ0l577XXH+eef36WVZy6pG+gCwCWXXPKbmTNnfmf69OnZhgbNv7ou+5CpwcVSRfSEF+tYui72q1ltSYWlAbzoW4CYBpRWeSyxTAw63vqqeqjuYq1JYGzpS5wF1mmALsK6ac+QxowlnF3ELIaaq+SlXeWqYbocbgGuZql5FWcBMxAFZZfdVtJohmv9UWU1wruIASFwAnHAZRNDRyHZ9MAAa4FueyFuWtDnbYjWJQZiDc5scqgH4ALA1KlTi21tbW9ff/31O6Cb3gpa6gq6ADJnn332S8uWLdv51ltvzWUyaYPmdNk/k4n966cWniXXotmkACmv0tIgaoGsFv1kOr+uSDVvKYkV645BwlgsJm4xTWaZLnC1WG7Sjv5aR76BdX8LUHV6q8bq78f3AqITfwKq3PFaTJfZsIc40xXQzhlgKpNT+Rw6t0TUgJzkXWCxW8DNbC1XLn2uRbNdC3Q1kxVgLRm7iln2XknTUQzSMLtley4zWGG0LlAV5st2XN5B7PE6YdovfvGL4owZM1ZddNFFg3bZZZfWumSKruNDmpQnT568Z7FYXHrRRRfV7NEARGeDRbTblIhn/Pj1Sx6NSodF/zGlNDb9k/y48Yr4jjSun8tbwvKcsH5WmbW3Aw+xpbx8f34XAjaNiHsz6JGAgJIedlvl1u9K8mxAtJyujk7YZ4P6WZ0WM1Xxn5WxF+fNrFabEFgnh/gzAnGGy+5cnToUnsR2ha1aq89ER+u6ADfJ1pukIyIrz/jHktRhaBGWa91HhM0DItwpWhPGWUrDHjn1kLvvvtu/7777SmecccYO9QRcoP5MFwDw4osv9r3ssssW7L333n3OOeecNNNlqhySyXSuZLJMUboRAVEwscRiwFY+nBeHu/KVYXEONgNNSqufT2zFOm99Py1aR48SXMySy2uxSs1upbyatfoIWaDOX/J0mQn093V5WSSNfPTEqDRGSWMxVovdAtHOQ5scxCVMgymbE/TP9Tc51ZgSNChqsGV93oQ8SRhQNdO1mGyS94LvA4WC27TA4cJ4i75tPnB5LjCj1UwXAKbXAc+eeOKJ8nnnnVc677zzdj7yyCNfqzlDJWsFdAHg+eef3/iSSy5578gjj2w65ZRT6gK8Ljsfi+XNIA2GJW2STbM6F7BbeWl9K0w/S7VuJC7wZNFDax0OxMHUBXrW0N5l8+2oQsdljhDJGOEaoEV40x4NsJyXlIeZd8441yD/qQTBAAAgAElEQVQMumbbLYMqEAXQpP8eE10LcC2wZX2XzdbFVKsBWz5n4GVQBZIn0vSEmZ4oY/1CwZEHQqDlibOumBRKAB6uA5Y9+eST5XPPPdc//fTT9zvppJOerTlDQ9Ya6ALAI488MviKK654+/jjj284+eSTawZeAPhGxU6sd+JKAkjX8NMCWhbLTuuaQGMGnObFoNuDi7V1ZaikQY7zts7TmKXL3mql00w3i3SwlXi2QTEQu1zkqhHN1hlsNcu1wNYFvC5wBeJh+l8gLDsuYE+muey7IkmmA7l2MV0NtvqYxHYLBTvOAloG2KR4y8e2wwgT8JXvKkDbAeDPdcIwAdyzzz573PHHH/9UXTI1pGY/3SQ5+OCDP/Q8b9iVV145r6WlpfGss86qGXgfLpdxBHk1WN4FgJvZJg1JrS0Qtb7FqJKEJ1y0TUrnqcP0xJOIlNPFdKHSMtCngWxO6SWZJqRhSBppQNqTA5SHLoeYYYBwaTALd2Dy3DIMdVVezpsXMgBxW7NlVtDvzAMiO4QlASpPmvGG5AyknC7JbqtNDhKudUX4OumfegHEPBY4vcslTOtzXsKQLd2MB/jFKPhmPAA+OidurfYhTFbAN4vQjCB1pl6A+9RTT5XPPfdc/9xzzz1w4sSJaw1wgbUMugBw4IEHLmhsbNz6yiuvfGvVqlXNF1xwQc1eDQ+UyziykocGCSAKEnr2mkWbEARgOD17RlgA5CkdS0QvrcfRzJrL7DKbaJE3a7F4vW+ulEu3Iw2MJUecTisAWjZ0JR8Nwj6iYAqVBglhrsqrRx2WvV4zWsu2q0EVCM+13dYFtAzC2pRgMV9rxZnlk2sdJT0LT2C5fHPlHsx0M55dvyxA1nkxuLInhAZ1AJFJMHYVK1GYrj9ixppWJ8CdNm2af/nll/s/+tGPDpg4ceIzdck0QdaqeYHlb3/724aXXHLJ21tssUX/K6+8MuelGZ2qkKMrwMtszZrAYlbDopmtlMi1IMKK18KgndSjVdvbVQu2LK4OKI3lAm6bqs7DMkO4zApFh44rb86fhd+3ZrpsptDfT4Mvd2gyCpGwHGwGK/+C6zIXJJkRdDpt5xVPh64s7xVwLfvR6zTRrmCuc+uPJq2JtEIhvvyX01oTa53hiPvnCqAy+xXGK+EAcGedcOv6668v3XXXXaUzzjhjtwkTJnR7E5uuyDoDXQCYM2dOr5tuuumVjz/+eKs77rgj29zcXHOex9G/TySxNiBsjI2OvNImz9IYrXansvLgsupyWeYNLfKMOaMQSSwHUPY8RM8ts4JIkieDZrMalPmdlOhosWht4rB8jUUs84L21RWmZIGvsNpGhAw0T+zUMiO42GuSR4JOp80MQHWmhs5n9MI0JT9q62XRpgBrpZkLeCNMVIGny57rAldeRCETcp0LJfzoZBjv31Gma55kK6M+gFsul3HhhRcW586d2zp16tQR+9dheW+1sk5BtyLe+eef/8iTTz55wLRp07zNNtusLpken8lEbJ96og2IAqHFUl0LHHTjTmOzuh1oME4iJRaYRuJz8WvXsBGwGx4QNtaSH26ywvr/v71rj66iOvffzHkkISEQkkoIwUQBjXh5GChBlBAltKBdREAE1CUgtBfuklvtAm2vS69dUq9ooe0K1qWg3HrlTRMRUVyx8Sa8igEsCCY0cAVCTIiWJCQ5OTmZx/3jnO+cb76z5yTQc/KA+a2VdWb27Nkzsyfzm9/89rf3pnn5ICg2uzENvVx/2Xg83B/LpucFRuIMFVlBgWW3g3F8Bwr6RSIiXOwcY2fEKCJPTsAOZ8dEaqZ4cVwD2jDGydbM08U0DjOflabze8rvJzaQAZgPWiMKC6Mkix0deOcHXbAP7RThJvfTLCoBCfh/wsRVra2tsGTJElWSpJqnn376znHjxl0JS8GdRHeQLgAAvP7667/dtGnTL/70pz9Jo0ePDkuZi0gDG1diFPQBRFAuEzXecNhMtoUiYyFBkweXP2SivB0tI/CBsgsIla7jdv6AitI4wXdE0JxkAcQevEeQpoHY60W0QeCLhX454L1DT5ATLx1GEUlRUYKjEuivaOZdvg1VpxnZUv9XUYz2AlfGdGAas0YzBKZ39OIVES+9vzwsTNTrjBIy2goi9UtVscqsBv/YDJqRYEOFggEAvBsmnqquroY5c+Zo2dnZpa+++mouBL+zI45uI10AgDfeeOPRjRs3vrd8+XJYsGBBWELKAACe9HUdBhB3KKDkR1UQQMfxu1gmDTnDY4SyCWQAQy8lERyC7TJ52EXgROh0GkkQQGwz0HPhyocua5q3TDNSDkXWeB4Oe3AeEVHz/f3rZDnad33tSmCmWpcnQLr+X0JiIl+UEiYlWEqIlCyxDsyIlBI4V7yiP6p6AczPE+uDN6yJIEoX2Qdm3XxFvi1VqDRdUYItB2o1mIWc8a6/Hgj4uMh+lHTXh5GfDh06BEuXLtUWLlz42jPPPPOrsBV8lehW0gUA+PDDD29/9913D990002x+fn59qgoM8f16vBT0sjGQ5jo2AuUZEVkKfJpAYwNMSBIFykTPooUfZjMSJUSHoKqJF5+Zx5Ikfo18/9w3CKzT1Sz7ZgnlHLm+wIAuN2BZdF2RKsbICY6sM4VoccTIK7oaCM5AhjJlZMoWg0AYmKmZYsIlpfNlawsyIvnbubn0v8VXp8cvJ7xF9UsV7uhSFdkJ3SWXLn65R0iRCOD0dHG3goTN+m6Dvn5+cqmTZvgZz/72azFixfvDkvB14huJ10AgHPnzkWtW7eu+MCBAxO2bNkip6enh63sZT7LAf9f8f9UBnPCRJjF7orGHwAIVrLUN7XJwUTZEeHS8qjlYEa4ZkC1ChD4xXREKDINRaSYhxIpf9iRSEMpZtxOA/Ap+Hl5PIHldhK6YGN1KssAUdHexhxRoxhXuEjQdDvaD5yAsXzRmLgichaRL14LKl8Acy+3XQm2nszqSSF1IrIRRA1imId6tUKVStLbPB2TLqpiQxoYoxJoY9kfw8hJ9fX1sGjRIrVv376XFi1aNP7++++v7nivyKJHkC7i9ddf/4/333//5RUrVsDjjz8uh2OUMgCA5ZIUpHLxZndEvDzNjIjt7GEUQTTaJSVLGn0Q6wvsoA8PJRJUPrQFHMD7j40KkJOjmXLkVgJPo79mHnCbJ9hG4PYCKiZ6XIfveNRioCTNzxFBSZerQkn2kgOAWOVSmwDvmdNpJF/RuAp4DDOPVmRdyLL3XEW9zaiyxfvMr4Xef0znaTwf7ut2i+8j9WZxX06+9BeJVBRGxkmX+7n0PPyWBf5/QCCSBQk4P8x2wrJly7TZs2dve+GFFx4HCGqX7Rb0KNIFACgsLPyXzZs3lwBA/Ntvv20Px4DoiF/4vF7eZZb6uUjKlDs7YyHQ1m/RpyDm4fuI8mEknSR7FRpAgJwo6Oc1gJjU6TZOXCJ1a2YjIGmIWsDRR8ZzNfOB8aHk5yKyPkSKN4pcX5snsI7Exj/Tnc4AAVPi5B4u5uOTR3JydjrF1gHui0pURKwi4uV+Lipe0ahh7Yxosa4psM7oy8XlCiybEa9I2VLSRKXaEemi9YDnqirGF62flCFgKaC6XRtGHmpvb4dVq1YpRUVF2pIlS+Y9+eSThWErPAzocaTrg/2ll156v7Cw8JE1a9ZAbm5ueCQvADzHBkaniheXeWMaHToRQGwjUB9QRKRckQIEkyRVSVT5oVoz2w8fegokFFym4OQbyuMNRaBc9XZG7eI2GqaEdUOvmZKUCFTpAgSTGJIpV6BUlaK65VEMXMliHVBrgEYr0D9K1PTaMC8nZnr+VMWK/HmRh9tG6pE2fNH8vDFMRLqcePk2t9ucdM0iFOh9NnjDYLQWVoeRg7766itYsmSJ9sMf/vDE3Llz75s0aVJD2AoPE3oq6QIAwDvvvDN169athampqVFr164Nq+r9lc+6oKoXn3E+yDmNneUTCAKIG184ohhR4kNMEc2UK+bjeaiS5tupIm73BBQahUhZipQnffDpA8RJEvNg/C6dG8vMjkDPU3RMXKf+I68/rnSp2sX7gRaBogT7sTQaIVTXXUrcmJ/7vTyfyHIA8P1fyDLoiuZf9l8A/mLl0TcObW0DAF3RDHXGpzSnJIvp3GowI8irIV2ufgG8+XjkA94vPqrYK2HkHkVR4NVXX1V2794NCxcufHrZsmVvhK3wMKNHky4AQGVlpfO9997bsmvXrpkvvvii/vDDDwso7drxgiQFhRsBGDsAABifAfqpCmAkNdEnPidTEbl2hnCvdp2is9EOZoSLoC8KfKi4EjazCBzsePgJy+tapOhomsPpfaE4nAHrAMB8NC5uGdDBa6gCprYDkihN58TLw8QMtgFmpifCyZXLXTNfSlQpHqO/QK0d3MyJt9UdHCpGSdKMeJGw+XYkXSyPEjufzgdJV9EAfh1mzjly5Ag89dRT2ujRo0898cQTU+65557vwnqAMKPHky5i27ZtE7dv375bVdV++fn5tiFDhoS1/FUOCXQfYZh9ElN1BBAgF/6ZS9c7Q7hUnfLWd1GZdDt/AXCIGqMwTdTyTcui/i31dClBomeqad7r4NEN1CYQWRZcFXOix3hcDkznPi61FWhjFs2PhEmVLu0CLOpAQcmWWgh+ghV5C7IMINsANF8EqmwLVreUmPmNEkEhU4yy6XZVj2YgWvppb6ZuKZFykm1XvMQpGpoxqHHME3wcugwA8Ku28HJNQ0MD/PKXv1TKy8u1efPmLV22bNnGsB4gQug1pOuDvGrVqt8WFBT8fObMmdrKlSvt0SIW+yewOkYyPPxcDXKCi4sTlxPlOy1RYxe3H0TWg9m6GflymOVD5UZhZgVgGn2QcbuZEqZKh/q71KvkjXGiMuj58vOhCpTuSwmU+7f05WQ2JgLeG1EXXb+PLzJw/ek2k3QJQPM9Z7IUSOcXa/bZYUjTWTyYaqgk1RcagPeMjwomGkOBq1tUqC6X2Mdtbhbn58cA8C6vbAkvx+i6Dps3b9ZWr14t5eXl7Vm2bNkjKSkpYZ1SJ5LobaQLAAAlJSXJBQUFu0tKSsa+9NJLkJeXJ4UrvAyRnyiZihBOgnSdEmpfQsgitYr702PwBjczG0OUF0H3CaWCaWs+V730s11kL3A7AYmVv6T4dppGy1FMjtcRuNLlQhJ9XXwJiNQrtRtoWUG+q0Hm2kzIVzIaw/4Cfc2zmqDXqcyabmkeHh/mrzCVrbf7WU9XNAMJXgvxNl0Rd3xwuUJbDFRJL/9H+LmlrKwMVqxYoQ4aNOjS7NmzZ8yZM+do2A8SYfRK0kVs3rw5t6CgYGtTU1P/1157zRauMRwo3hwo+Rty+OcxqllUbLSRK5Q6xc9XbClHhFK8NGIC84miE0TLVBWaddCgMCNOqjq5kjWzKjpStXh8WjY/J5E6p2ncr6XRAfSLn4boUbVLy5Dsoh0dxkyoXFG1chZHEhWpXqwAkZ1A31C0koIsBR3AbvO9ydR/inh5Axv3b3E/mq5qAG3uYI8Y46v/tSb8nFJVVQXPPfecUltbq86aNesXTz311B/DfpAuQq8mXR+ktWvXrvjwww9fTklJsb3yyiv2cPZoQ7wzRPKTLfVEOVECAMSQESvNQsRCqWUAo89LVRjF1ZAtz4Pg5Yq+dM0UKH1YeTkiHsF16tNSosX4Tt4zi/rENHKC+syiGRy4tUDVLhWjfqIVWQW4jiRHC6UKlVcALY8rYY08c0jcmh7Ix2U/JVVM40rX/z3f5l/nxOvxGJUpV6xIqDQEjFoJ+MeJGdcXV4WfS65cuQKrV69W9u7dK8+aNWv9Qw89tPzOO+9s73jPnovrgXQBwBvlsHPnzrWFhYVLs7Ky9BdffNH+gx/8ICLH2naHFNRzS9So1tkIB94QR71HByNN3ognWuYKmDfKcUXJBRlCND4vVa/UgsD8tJeTSMwhp2CaWftRZywGLiBF9oCDKVmqiA2VTYnWbguoySDJ7GsYszuMJ09JFcCohHlF84ugxImEjKzGt5sRL1G5oChBnR462+AVKmIBlSzNM+dUZPijpaUF8vPz1c2bN8tTpkz57LHHHps/bty4f0TkYF2M64Z0EZWVlX03btz4zp49e2ZPmzZNW7lypT0pKSkix9p1l2QId8JgewQ+K3FxAQXBx23vbKOZWbSCWSgYgnIGrvO+/aLBsEXCjV4TptFPTh6uRZWr2QDrlHgpGXAyFilp7uPSa6f2q9/G4azMbQOAgCcr8m95XsxPK8NU4crBF8tJOBT50jyceP0Vp/rfaLpHoRwc1PuMknGrK/CydrmClS0qZKp0876MDG+43W5488031Y0bN8pTpkw5PH369Ed/9KMffRORg3UTrjvSRZSWliZ9/PHH7+7du/fB3NxcbeXKlfaBAwdG5FifZEl+MuXKNxRBIqniJ3OUCclSP5crt1DHE3XSoPtzMhOliQiPEzBVryJypvn41zBAQDljg5doChqM50XQwcDpefMXjiRDMANTzxWVLV0HAENDmX8b8XK5AhZVoMgTwos3qwxcFxEv9XYNzKgb8/iWdUXz3xeMk0V7gXu8SMQARmVLPfnmZoDphyPDFy6XCzZs2KBu2LBBnjRp0t8efPDBxx544IHyiBysm3Hdki7iyJEjiYWFhRs+/vjjGdnZ2drKlSvtqampETveoR9LBq8XfUMELvOuxNRGMLMoOrIXODlT79TME/Z/avtACS9IoXJlJvhc5vsjRHYBV7WUi7gFIjosj5nlVofQPvAvC8iWb/cvS+ZvJ5HFABCwIXhkgv/i1eBKwXX0ZjihAjAbQQ3k11QDg+qESPl4t9w2EHbVJfmzPokcR9TX18O6deuU7du32yZNmnR06tSpi2bOnHkyYgfsAbjuSRfx5Zdf9tu+ffsbxcXFc4cOHQrPPvusfcyYMRE95vGZvvnbTIgXlztqEDNbpt4lnXGAE63IgvCTaSi1xn8RIvlL06mCE7GmD6JhIkXFiKxQen34a7AQRF6tf50o1aslW/prSDMhWV6PhgtljWG4LFKw9HOCEi+N2xVEL3BVy4dZpESM4zjoGsDIP0eWF2pqamDNmjVKUVGRPHXq1JIZM2Yszs7Ovq5sBDPcMKSLOHfuXNS2bdt+XVxc/O+KojhXrFhhmzZtGoQ7zpejfG5AAVMeol1or5V8zRrMkJANilXUqGP2eSxCJ9SuOcmYf1bjOVIiDnUaWJTwugzLzCYQqVu+L/VpzawCSrY8LdRJG9ZV4zaDp8vshSA1K/ByfesqsQlE5IrqF8DbsQGV7u1bIs8FZWVlsHbtWuXMmTNSbm7un2fPnv1v10sDWWdxw5EugfTWW289WVxcvKqysnLgggULtIULF9r69esX8QN/s8D7UNPwLAzQN1PFPB0tAe7xUvhJqSPPMSjdZiQEquJol1YAEAb74wmbEa/ZusCq4IN70zRDF1x60SL1SlUrJ1xeH3ZbcHl0nV4/TesIhms1CfniKteQ1nnSxU3+mXcVo42A2dM2Rv75b29vh507d+rr1q3TBgwY4Jo8efIf8vLyXh4+fLhggMrrHzcy6fqxY8eO8aWlpb/ft2/fhLFjxyrLly93RNp6QFz8qQQx0Ua129EyJVxuLdJwM9PGHvqLMPMeRYZrRxAR8VWQbaeOQc+PXovfVrgK0uXlhCJdTMNjdObrQHRNlHSFxCtuHDNYCpSENWNcLlWzSMIAAC0ugNT1XfPMnz9/HjZs2KDs2rXLNm7cuLO5ubnPPfroo4Ugnmv0hoFFugSVlZV9d+zY8fL+/fuXNDY2xixevBjmzJkj9+3bt8vOofEZyaBq0YJAUHIV2RKomg2ZqX9JISLazqo2CjOS5J/Pon06QbgdNu51Vuka1mUjadJWSur54j60fACj+jfzvUPVCSVbuk7JlqpbzMMVLjKsb3ubm2T1Jfdd03XPuMfjgV27dunr16/X2tratIkTJ344efLkFdOmTTvXZSfRw2GRrhjSxo0bp5eVlb186NChu0aMGKEuXrzYnpOTA/K1kNI1ovU5Kche4M+2oRGJJpiqM5OGH9F1mV2riFA620gkWPaPLwvmMwNTRU9FN+2hJuxZBhDoyKBpxg4PSLzY2QH3ocpYVI/0rWj2hUDrQHQx+OtfZlEK3E6ghIzKFyAQl+tTuZgU9V9d+1xXVFTA22+/3V5UVGQfP378N9nZ2a8sWLDgvwG6forzng6LdDtAXV1d7KZNm5794osvlp06dSppxowZ6sKFC+3Dhg3r0vNof14ycEAQyVJWpkNs0TxX40d25nNZZDlw75cTDJZLBnJRleBiRAPg0Dym1ouT1QdWmt1B0gRjJtAeZv6WSdb1l7/5DG8/5oPTeuJ1xrd1pG6DFDANFQv4uLaXu/ZZrq6uhi1btqg7duyQ+vXr587Kyto2c+bM5zMzM2u69ER6GSzSvQqUlJQM27t376rDhw/PcLlcUbNmzdLnzp1rS0tL6/qT+Y3DyEJm3i1HKGVrlh7q05kTLqZxBiXgM9bSaX48Jk0rLpe3N58ke3tQxfTx/uLQmm63d7vIaZCcPnL1eAIDGjujQBgSZidzhhhaNG3idFG9BL2IBFZKKGWL8IeCqcF5NA3g+a4fgqChoQF27typb9q0SVNVVc/Kyiq99957X8rLy9vX5SfTS2GR7rVBKigomHTw4MHnjx07ltPa2mp/+OGH4ZFHHpHDPbh6p7E6RmwZUDUq8h45aZiRrtk6921xlB1F8doGdtk/xivOa4ahTABe4uTFioiXDt6jKIFZI3DENiybC9CoaON057IM4OhDQj6cUd7PdWeUNy06KlCY3eHdZncwoiXhhZ1taKThX/jrXxYoW9yHqtvnumfI2MuXL8Pu3bv1nTt3qrW1tVJWVtbf7rnnntfmz5+/E6BnzLDbm2CR7j8PqbCwMPfAgQPPlpWVZSuKYv/JT36i5+Xl2e64446Ix/+GxO/6dy4fH/mKg6s2JBeTFnicw4uSZ3OzV4li334MxMeWdTpQDx2wx2xwHN7+xafbwbEgMA1n8gUIjOAW45vwU4qLBb25BaS42MABnD7Fa+ge6DB6Gnhgaj90VHcAwS+qIAtCB3ime+dTvHjxIhQWFmoFBQV6a2srZGZmHh81atQbS5cufQ+805xZuEZYpBteSFu3bp185MiRZ77++usp1dXVfbKzs9WHHnrInp2dDQ6Ho+MSIo0/JASbpRyUgENZCdQ2IMtt7oAd4HIFRqdCYP9/OkYv8hc9VCjhyNuzMA1JlzayIfniVD64bLeLJ/70k3Cf6IAdgaOO0YOhFUG/LnivtM40pv28XnyRXQhd1+H48ePw0UcfKR999JEcFRWlZGZmHh4/fvwf5s+f/wFYDWJhg0W6EcRf//rX4Z999tnPy8vLZ504cSI5IyNDeeCBB+xTp06VIjn+wzUhPzGwTD9veRq2nCPreTz+SSJxckRUswCBgbABAkH6WBwSLech7EVFIxpEg/cABFsHvM0LIHhMCkq6AMGdTnCKJU0DcMT5WNkZBeBu9f7a7V4CVlTvVwIf9R1Phl4UAMDyntXx6vLly1BUVAR79uxpP3bsmH3o0KFXhg8fXjRx4sTfz5o16yDc4PG0kYJFul2E2traPtu3b19YUVHxREVFxZiGhgbn3XffrUybNs0xefJkiI+P7+5TDI3f9Qd/uBJ6x2xuLpfPn/Vxsd9CAAB/11Qa1tQZsu0IIqVL05HcDZ1GfOBTIlHuxIHlcT0mTgbDIMro81J7oZstgY7g8XigrKwMioqKlKKiIknTNBgzZkxFRkbG1gcffPCtYcOG9ehZdK8XWKTbTSgrK7v9L3/5y08rKysfOnny5C0Oh0PPycnRc3Jy7BMmTIA4sxkvezD0/5SguTl43iy6LGwv0ozEC2Aerwtg9Hb5RJL8lwd00GWcyZiSMu+C7XACxPYBkH7d+54TJNni4mL1888/1+vr62233377pbS0tKKJEyeuz8vL2w+Wmu1yWKTbMyB/8MEHE7/44ouF1dXVUysqKlIBALKystTJkyc77r33XojUWMA9BZWPSQYSFs25JoJIuSJ4JMPwTdf3/3pjYyOUlZXBgQMHlJKSEqm+vl7OyMj47tZbb/3fzMzM92fPnr0XAHr1VDfXAyzS7ZmQ9u/fn1laWvrY+fPnf1xRUTGssbHRMWLECGXChAm28ePHy2PGjIFwTz9vofdAVVUoLy+HQ4cO6QcPHlSOHz9uj4qK0oYPH35x0KBBJXfdddeWefPmfQZWpEGPg0W6vQTHjh0btG/fvjkXLlyYXl1dPfbs2bOJuq7DqFGj1AkTJtjHjx8vjRgxApyied4t9Gq0t7dDRUUFfPnll3D06NH248ePy/X19fItt9xyJT09/UR6evqn9913347Ro0dXgmUX9HhYpNt7IZWVlY0oLS2def78+SlVVVUjq6qqEnRdh6FDh6pjxoyRR48ebRs5ciQMGTKke+OFLXQa3333HZSXl8OJEye0o0ePqqdOnbIpiiKlpaVdSU1NPZ2cnFw6cuTI3TNmzDgEllXQK2GR7vUFqaKiIu3zzz+fXlVVNbmuri7zwoULqXV1dTFxcXHq8OHD1YyMDFtGRobttttug1tvvRWioqK6+5xvOOi6DhcvXoTy8nL4+uuv9ZMnTyqnT5+Wm5qabP369fOkpqZeSkpK+urmm2/el5OTs2fs2LFfgxUne93AIt0bA/ZPP/101KlTp+6/dOnSuIaGhlG1tbWDq6ur4xRFkQYOHKjedttt2tChQ+3p6elyWloapKenQ//+/S2FfI1wu91w7tw5OHv2LJw9e1Y/c+aMcvbsWammpsam6zokJSW1Dh48uDYpKelkSkrKkczMzM9zcnKOAkD39PW10GWwSPcGR1NTU+Inn3ySdfr06bvr6+tHNDc331ZfXz/o0qVL8U1NTQ5JkrTk5GTt5ptv1oYMGWIbPHiwLTk5GQYNGgSDBg2CpFY9eeIAAAJ4SURBVKSkLh3usruh6zq0tLTAt99+C9XV1XDx4kWoqqpSq6qqtOrqaqipqbGpqirbbDY1JSWl+aabbrrUv3//ysTExJNpaWll2dnZhwcPHlwNlvd6w8IiXQuhYKupqRlcXFw85sKFC6MbGxuHuVyutJaWltTGxsaE+vr62IaGBoeu67Isy1piYqKWkJCgJyYm6omJiXJiYqItMTFRGjBgAAwYMAASEhIgLi4O4uLiIDY2FuyiGTO7CJqmQUtLC1y5cgUaGxvhypUr/uXGxka4dOmSWldXp9XV1cH3338vXb58WdZ1XdZ1XY+OjlaSkpJaBwwYUB8fH/9tfHz8NwkJCWeSk5NPjRs37nhGRsY3AHBDTkVjoWNYpGshHIj++9//nnLs2LFhDQ0NaU1NTaktLS3JLpdroNvtvqm1tTWhpaUlvrm5uU9bW5uztbXV4XK5bJqmSZLPv9C9zK07nU7dbreDw+HQHQ4H+P4wDex2u65pGui6Lum6Dr5l/6+u6+DxeMDtdktut1vyeDzQ1tbmP44sy5Ivn9anTx81NjZWiY2NbYuJiWmNjo5ucTqdDXa7/fu4uLi6+Pj4bxMSEqpSUlL+LzMz82xqamoNADR3a01b6PWwSNdCd0MGgBgA6HP+/Pm42travs3NzbGtra193G53TFtbW7TH44n2eDxRbW1tTlVVbTabTZJlGWw2myZJki7LsqrruiJJkqLruhITE9MaHx/fnJCQ0DRkyJDmlJSUpujo6FYAcIHXM7ViVy10GyzStWDBgoUuxI3TAmLBggULPQAW6VqwYMFCF8IiXQsWLFjoQlika8GCBQtdCIt0LViwYKEL8f8e2cy1yyHklwAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "exposure_hpx.plot();" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "# For exposure, we choose a geometry with node_type='center',\n", "# whereas for counts it was node_type='edge'\n", "axis = MapAxis.from_nodes(\n", " counts.geom.axes[0].center, name=\"energy_true\", unit=\"MeV\", interp=\"log\"\n", ")\n", "geom = WcsGeom(wcs=counts.geom.wcs, npix=counts.geom.npix, axes=[axis])\n", "\n", "exposure = exposure_hpx.interp_to_geom(geom)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "WcsGeom\n", "\n", "\taxes : ['lon', 'lat', 'energy_true']\n", "\tshape : (100, 80, 4)\n", "\tndim : 3\n", "\tframe : galactic\n", "\tprojection : TAN\n", "\tcenter : 0.0 deg, 0.0 deg\n", "\twidth : 10.0 deg x 8.0 deg\n", "\n", "MapAxis\n", "\n", "\tname : energy_true\n", "\tunit : 'MeV' \n", "\tnbins : 4 \n", "\tnode type : center \n", "\tcenter min : 1.7e+04 MeV\n", "\tcenter max : 7.7e+05 MeV\n", "\tinterp : log \n", "\n" ] } ], "source": [ "print(exposure.geom)\n", "print(exposure.geom.axes[0])" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Exposure is almost constant accross the field of view\n", "exposure.slice_by_idx({\"energy_true\": 0}).plot(add_cbar=True);" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([3.19917466e+11, 3.27536547e+11, 3.03032026e+11])" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Exposure varies very little with energy at these high energies\n", "energy = [10, 100, 1000] * u.GeV\n", "exposure.get_by_coord({\"skycoord\": gc_pos, \"energy_true\": energy})" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Galactic diffuse background" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The Fermi-LAT collaboration provides a galactic diffuse emission model, that can be used as a background model for\n", "Fermi-LAT source analysis.\n", "\n", "Diffuse model maps are very large (100s of MB), so as an example here, we just load one that represents a small cutout for the Galactic center region." ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "WcsGeom\n", "\n", "\taxes : ['lon', 'lat', 'energy_true']\n", "\tshape : (120, 64, 30)\n", "\tndim : 3\n", "\tframe : galactic\n", "\tprojection : CAR\n", "\tcenter : 0.0 deg, -0.1 deg\n", "\twidth : 15.0 deg x 8.0 deg\n", "\n", "MapAxis\n", "\n", "\tname : energy_true\n", "\tunit : 'MeV' \n", "\tnbins : 30 \n", "\tnode type : center \n", "\tcenter min : 5.8e+01 MeV\n", "\tcenter max : 5.1e+05 MeV\n", "\tinterp : log \n", "\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "WARNING: FITSFixedWarning: 'datfix' made the change 'Set DATE-REF to '1858-11-17' from MJD-REF'. [astropy.wcs.wcs]\n" ] } ], "source": [ "diffuse_galactic_fermi = Map.read(\n", " \"$GAMMAPY_DATA/fermi-3fhl-gc/gll_iem_v06_gc.fits.gz\"\n", ")\n", "\n", "# Unit is not stored in the file, set it manually\n", "diffuse_galactic_fermi.unit = \"cm-2 s-1 MeV-1 sr-1\"\n", "print(diffuse_galactic_fermi.geom)\n", "\n", "print(diffuse_galactic_fermi.geom.axes[0])" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [], "source": [ "template_diffuse = TemplateSpatialModel(\n", " diffuse_galactic_fermi, normalize=False\n", ")" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [], "source": [ "diffuse_iem = SkyModel(\n", " spectral_model=PowerLawNormSpectralModel(),\n", " spatial_model=template_diffuse,\n", " name=\"diffuse-iem\",\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's look at the map of first energy band of the cube:" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "template_diffuse.map.slice_by_idx({\"energy_true\": 0}).plot(add_cbar=True);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here is the spectrum at the Glaactic center:" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, 'Flux (cm-2 s-1 MeV-1 sr-1)')" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Exposure varies very little with energy at these high energies\n", "energy = np.logspace(1, 3, 10) * u.GeV\n", "dnde = template_diffuse.map.interp_by_coord(\n", " {\"skycoord\": gc_pos, \"energy_true\": energy},\n", " interp=\"linear\",\n", " fill_value=None,\n", ")\n", "plt.plot(energy.value, dnde, \"+\")\n", "plt.loglog()\n", "plt.xlabel(\"Energy (GeV)\")\n", "plt.ylabel(\"Flux (cm-2 s-1 MeV-1 sr-1)\")" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [], "source": [ "# TODO: show how one can fix the extrapolate to high energy\n", "# by computing and padding an extra plane e.g. at 1e3 TeV\n", "# that corresponds to a linear extrapolation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Isotropic diffuse background\n", "\n", "To load the isotropic diffuse model with Gammapy, use the `~gammapy.modeling.models.TemplateSpectralModel`. We are using `'fill_value': 'extrapolate'` to extrapolate the model above 500 GeV:" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [], "source": [ "filename = \"$GAMMAPY_DATA/fermi_3fhl/iso_P8R2_SOURCE_V6_v06.txt\"\n", "\n", "diffuse_iso = create_fermi_isotropic_diffuse_model(\n", " filename=filename, interp_kwargs={\"fill_value\": None}\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can plot the model in the energy range between 50 GeV and 2000 GeV:" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "energy_range = [50, 2000] * u.GeV\n", "diffuse_iso.spectral_model.plot(energy_range, flux_unit=\"1 / (cm2 MeV s)\");" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## PSF\n", "\n", "Next we will tke a look at the PSF. It was computed using ``gtpsf``, in this case for the Galactic center position. Note that generally for Fermi-LAT, the PSF only varies little within a given regions of the sky, especially at high energies like what we have here. We use the `~gammapy.irf.EnergyDependentTablePSF` class to load the PSF and use some of it's methods to get some information about it." ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "EnergyDependentTablePSF\n", "-----------------------\n", "\n", "Axis info:\n", " rad : size = 300, min = 0.000 deg, max = 9.933 deg\n", " energy : size = 17, min = 10000.000 MeV, max = 2000000.000 MeV\n", "\n", "Containment info:\n", " 68.0% containment radius at 10 GeV: 0.00 deg\n", " 68.0% containment radius at 100 GeV: 0.10 deg\n", " 95.0% containment radius at 10 GeV: 0.00 deg\n", " 95.0% containment radius at 100 GeV: 0.43 deg\n", "\n" ] } ], "source": [ "psf_table = EnergyDependentTablePSF.read(\n", " \"$GAMMAPY_DATA/fermi_3fhl/fermi_3fhl_psf_gc.fits.gz\"\n", ")\n", "print(psf_table)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To get an idea of the size of the PSF we check how the containment radii of the Fermi-LAT PSF vari with energy and different containment fractions:" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfEAAAFBCAYAAABn+JYIAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3deZxcVZ3//9enqrvT2ROSzp6QQEL2TgIBgiKrIINCFFAR5isigqA4yijIV2WGr85j5PflMQoiyhd4YHRGWZxhEyIoAiKKZjNkJQthSWfft+6kl/r8/ji3uqq6q7srna7uru738/E4j6o699xbn2Lpzz3nnnuPuTsiIiJSeGIdHYCIiIi0jpK4iIhIgVISFxERKVBK4iIiIgVKSVxERKRAKYmLiIgUqKKODuBoDR482MeOHdvRYYiIiLSbxYsX73T3sob1BZfEx44dy6JFizo6DBERkXZjZu9lq9dwuoiISIFSEhcRESlQSuIiIiIFquCuiYuIFLqamhoqKio4fPhwR4cinUxpaSmjRo2iuLg4p/ZK4iIi7ayiooK+ffsyduxYzKyjw5FOwt3ZtWsXFRUVjBs3Lqd9NJwuItLODh8+zKBBg5TAJYOZMWjQoKMaoVESFxHpAErgks3R/nehJC4i0g3t3buXK664gkmTJjF58mTeeOMNAJYuXcqcOXOYOXMms2fPZsGCBVn3f+GFF5g4cSLjx4/nrrvuqq//5je/SXl5OZ/97Gfr6/7zP/+Te++9t8lY1q5dy8UXX8z48eOZPHkyn/rUp9i2bVurfte///u/59Tu4osvZu/eva36jmP19NNPs2rVqrY5mLsXVDnllFNcRKSQrVq1qqND8M9+9rP+0EMPubv7kSNHfM+ePe7ufsEFF/j8+fPd3f3555/3s88+u9G+tbW1fsIJJ/jbb7/tR44c8fLycl+5cqXv3bvXzzzzTHd3v+qqq3zZsmVeWVnp5513nldXV2eNo6qqysePH+/PPvtsfd3LL7/sy5cvb9Xv6t27d6v2a0/XXHON//rXv25ye7b/PoBFniUnqicuItLN7N+/n9dee43rrrsOgJKSEgYMGACE4dz9+/cDsG/fPkaMGNFo/wULFjB+/HhOOOEESkpKuPLKK3nmmWeIxWJUV1fj7lRVVVFcXMzdd9/NP/3TPzU52/pXv/oVZ5xxBpdcckl93bnnnsu0adM4fPgw1157LdOnT2fWrFm88sorAMybN4/LLruMiy66iAkTJnDbbbcBcPvtt1NVVcXMmTO5+uqrAfj4xz/OKaecwtSpU3nwwQfrv2Ps2LHs3LmTd999l8mTJ3P99dczdepULrzwQqqqqgA455xzuOWWWzjrrLOYPHkyCxcu5LLLLmPChAl85zvfqT/Wf/3Xf3Haaacxc+ZMvvjFL1JXVwdAnz59+Pa3v82MGTOYM2cO27Zt4y9/+QvPPvsst956KzNnzuTtt99uxb/BlLwmcTO7yMzWmNl6M7s9y/ZbzWxpVFaYWZ2ZHZfPmEREursNGzZQVlbGtddey6xZs/jCF77AoUOHALjnnnu49dZbGT16NN/4xjf4/ve/32j/TZs2MXr06PrPo0aNYtOmTfTt25fLL7+cWbNmMW7cOPr378/ChQuZO3duk7GsWLGCU045Jeu2+++/H4Dly5fz6KOPcs0119RP+lq6dCmPP/44y5cv5/HHH2fjxo3cdddd9OzZk6VLl/LLX/4SgEceeYTFixezaNEifvSjH7Fr165G37Nu3Tq+/OUvs3LlSgYMGMD//M//1G8rKSnhtdde48Ybb2Tu3Lncf//9rFixgnnz5rFr1y5Wr17N448/zp///GeWLl1KPB6v/+5Dhw4xZ84c3nzzTc466yweeughPvCBD3DppZdy9913s3TpUk488cRm/121JG+3mJlZHLgfuACoABaa2bPuXn8hwN3vBu6O2l8C3OLuu/MVk4hIZzP29ufzctx37/pok9tqa2tZsmQJ9913H6effjpf/epXueuuu/je977HT3/6U374wx9y+eWX88QTT3Ddddfx0ksvZewfRnczJSdk3XbbbfU94y984Qt897vf5eGHH+Z3v/sd5eXlGT3Ylrz++ut85StfAWDSpEkcf/zxrF27FoDzzz+f/v37AzBlyhTee++9jBOLpB/96Ec89dRTAGzcuJF169YxaNCgjDbjxo1j5syZAJxyyim8++679dsuvfRSAKZPn87UqVMZPnw4ACeccAIbN27k9ddfZ/HixZx66qkAVFVVMWTIECCcAHzsYx+rP+7vf//7nH97rvLZEz8NWO/uG9y9GngMaPp0DD4DPJrHeEREhNBzHjVqFKeffjoAV1xxBUuWLAHg5z//OZdddhkAn/zkJ7NObBs1ahQbN26s/1xRUdFo2P3vf/87ACeddBK/+MUveOKJJ1ixYgXr1q3LaDd16lQWL16cNc5sJwtJPXr0qH8fj8epra1t1ObVV1/lpZde4o033uDNN99k1qxZWW/fau5YyW2xWCyjXSwWo7a2FnfnmmuuYenSpSxdupQ1a9Zw5513AlBcXFx/ctNUjMcqnw97GQlsTPtcAZyeraGZ9QIuAm7OYzwiIp1Ocz3mfBk2bBijR49mzZo1TJw4kT/84Q9MmTIFgBEjRvDHP/6Rc845h5dffpkJEyY02v/UU09l3bp1vPPOO4wcOZLHHnuMX/3qVxlt7rjjDh588EFqamrqrxHHYjEqKysz2l111VV8//vf5/nnn+ejHw3/LF544QVGjhzJWWedxS9/+UvOO+881q5dy/vvv8/EiRPrTziyKS4upqamhuLiYvbt28fAgQPp1asXb731Fn/961+P6Z9bNueffz5z587llltuYciQIezevZsDBw5w/PHHN7lP3759OXDgQJt8fz574tludmvqtOoS4M9NDaWb2Q1mtsjMFu3YsaPNAhQR6a7uu+8+rr76asrLy1m6dCnf+ta3AHjooYf4+te/zowZM/jWt75VPxls8+bNXHzxxQAUFRXx4x//mI985CP1t4RNnTq1/thPP/00p556KiNGjGDAgAGcccYZTJ8+HTNjxowZGXH07NmT5557jvvuu48JEyYwZcoU5s2bx5AhQ/jSl75EXV0d06dP59Of/jTz5s3L6A1nc8MNN1BeXs7VV1/NRRddRG1tLeXl5dxxxx3MmTOnLf8RAmEo/9/+7d+48MILKS8v54ILLmDLli3N7nPllVdy9913M2vWrGOe2GbNDVcc04HNzgDudPePRJ//N4C7N5olYWZPAb9291813NbQ7NmzXeuJi0ghW716NZMnT+7oMKSTyvbfh5ktdvfZDdvmsye+EJhgZuPMrAS4Eni2YSMz6w+cDTyTx1hERES6nLxdE3f3WjO7GXgRiAOPuPtKM7sx2v5A1PQTwO/c/VC+YhEREemK8rqKmbvPB+Y3qHugwed5wLx8xiEiItIV6YltIiIiBUpJXEREpEApiYuIiBQoJXERkW7o3nvvZdq0aUydOpV77rmnvv7OO+9k5MiRzJw5k5kzZzJ//vys+2sp0tZry6VIlcRFRLqZFStW8NBDD7FgwQLefPNNnnvuuYzHod5yyy31jxFNPuAlXV1dHV/+8pf57W9/y6pVq3j00UdZtWoV+/bt4y9/+QvLli2jrq6O5cuXU1VVxbx58/jSl76UNZbDhw/z0Y9+lJtuuon169ezevVqbrrpJlr7YK9ck/j8+fPrV25rb0riIiLSaqtXr2bOnDn06tWLoqIizj777PpFQnKhpUi7yVKkIiLS+UybNo3XXnuNXbt2UVlZyfz58zMWNPnxj39MeXk5n//859mzZ0+j/bUUaTdYilRERHJwZ/88HXdfk5smT57MN7/5TS644AL69OnDjBkzKCoK6eCmm27ijjvuwMy44447+PrXv84jjzySsb+WIu0eS5GKiEgndd1117FkyRJee+01jjvuuPrVyoYOHUo8HicWi3H99ddrKdJuvBSpiIi0pJkecz5t376dIUOG8P777/Pkk0/yxhtvALBly5b63uZTTz3FtGnTGu2rpUhTuvJSpCIi0kldfvnlTJkyhUsuuYT777+fgQMHAmE4fPr06ZSXl/PKK6/wwx/+ENBSpE3pskuR5ouWIhWRQqelSKU5nWUpUhEREckjJXEREZECpSQuIiJSoJTERUQ6QKHNR5L2cbT/XSiJi4i0s9LSUnbt2qVELhncnV27dlFaWprzPrpPXESknY0aNYqKiopWL/IhXVdpaSmjRo3Kub2SuIhIOysuLmbcuHEdHYZ0ARpOFxERKVBK4iIiIgVKSVxERKRAKYmLiIgUKCVxERGRAqUkLiIiUqCUxEVERAqUkriIiEiBUhIXEREpUEriIiIiBSqvSdzMLjKzNWa23sxub6LNOWa21MxWmtkf8xmPiIhIV5K3Z6ebWRy4H7gAqAAWmtmz7r4qrc0A4CfARe7+vpkNyVc8IiIiXU0+e+KnAevdfYO7VwOPAXMbtLkKeNLd3wdw9+15jEdERKRLyWcSHwlsTPtcEdWlOwkYaGavmtliM/tsHuMRERHpUvK5FKllqfMs338KcD7QE3jDzP7q7mszDmR2A3ADwJgxY/IQqoiISOHJZ0+8Ahid9nkUsDlLmxfc/ZC77wReA2Y0PJC7P+jus919dllZWd4CFhERKST5TOILgQlmNs7MSoArgWcbtHkG+JCZFZlZL+B0YHUeYxIREeky8jac7u61ZnYz8CIQBx5x95VmdmO0/QF3X21mLwDLgATwsLuvyFdMIiIiXYm5N7xM3bnNnj3bFy1a1NFhiIiItBszW+zusxvW64ltIiIiBUpJXEREpEApiYuIiBQoJXEREZECpSQuIiJSoJTERURECpSSuIiISIFSEhcRESlQSuIiIiIFSklcRESkQCmJi4iIFCglcRERkQKlJC4iIlKglMRFREQKVLPriZtZKfAx4EPACKAKWAE87+4r8x+eiIiINKXJJG5mdwKXAK8CfwO2A6XAScBdUYL/ursvy3+YIiIi0lBzPfGF7n5nE9t+YGZDgDFtH5KIiIjkoskk7u7PN7eju28n9M5FRESkAzR7TRzAzH4DeIPqfcAi4P+5++F8BCYiIiLNy2V2+gbgIPBQVPYD2wjXxh/KX2giIiLSnBZ74sAsdz8r7fNvzOw1dz/LzDRDXUREpIPk0hMvM7P6CWzR+8HRx+q8RCUiIiItyqUn/nXgdTN7GzBgHPAlM+sN/DyfwYmIiEjTWkzi7j7fzCYAkwhJ/K20yWz35DM4ERERaVqLw+lm1gu4FbjZ3ZcCo83sY3mPTERERJqVyzXxnxGufZ8Rfa4A/i1vEYmIiEhOckniJ7r7/wVqANy9ijCsLiIiIh0olyRebWY9iR74YmYnAkfyGpWIiIi0KJfZ6f8KvEC4Fv5L4IPA5/IZlIiIiLQsl9npvzezJcAcwjD6V919Z94jExERkWY1OZxuZicnC3A8sAXYDIyJ6lpkZheZ2RozW29mt2fZfo6Z7TOzpVH5l9b+EBERke6muZ74f0SvpcBs4E1CT7ycsL74mc0d2MziwP3ABYQZ7QvN7Fl3X9Wg6Z/cXbesiYiIHKUme+Lufq67nwu8B5zs7rPd/RRgFrA+h2OfBqx39w3uXg08Bsxti6BFREQkt9npk9x9efKDu68AZuaw30hgY9rniqiuoTPM7E0z+62ZTc3huCIiIkJus9NXm9nDwH8RbjP7R2B1Dvtlu5e84brkS4Dj3f2gmV0MPA1MaHQgsxuAGwDGjBnTcLOIiEi3lEtP/FpgJfBV4GvAqqiuJRXA6LTPowgT4+q5+353Pxi9nw8Um9lgGnD3B6Ph/NllZWU5fLWIiEjXl8stZoeBH0blaCwEJpjZOGATcCVwVXoDMxsGbHN3N7PTCCcVu47ye0RERLqlJpO4mf0GeBB4wd1rGmw7gfDAl3fd/ZFs+7t7rZndDLwIxIFH3H2lmd0YbX8AuAK4ycxqgSrgSndvOOQuIiIiWVhTOTPqJf8zcDmwG9hBuN1sHGF2+o/d/Zl2irPe7NmzfdGiRe39tSIiIh3GzBa7++yG9U32xN19K3AbcJuZjQWGE3rLa929Mk9xioiISI5ymZ2Ou78LvJvXSEREROSo5DI7XURERDohJXEREZECdVRJ3MwGmll5voIRERGR3LWYxM3sVTPrZ2bHERZB+ZmZ/SD/oTXBEx321SIiIp1JLj3x/u6+H7gM+Fm0CMqH8xtWM7Yuh3kfgz/9B2xaAom6DgtFRESkI+UyO73IzIYDnwK+ned4WuYO7/4plD98F3oOhHFnw9gzYdSpMHQaxHOadC8iIlLQcsl23yU8de11d18YPa1tXX7DasawafDJf4W3X4ENr8De92HV06EAFPeCEbNCQh99WnjtM6TDwhUREcmXJp/Y1lllPLHNHXZvgA2vwsYFULEgfG5owPGphD7qVBg2HeLF7Rq3iIhIazX1xLYWk7iZ/YzGS4ji7p9vu/By1+JjVw/tgoqFIaFXLAzXzasPZrYpKk311pM99r7D8hu4iIhIKx31Y1fTPJf2vhT4BA2WFO1Ueg+CiReFAmHi2/ZVIaFvjJL7rvXw/huhJPUfnTkEP6wciko65jeIiIjk4KiH080sBrzk7uflJ6TmtckCKJW7oWJRqrdesRiqD2S2ifeAETMze+v9Rhzb94qIiLTCsfTEG5oAjDn2kDpQr+PgpAtDgdBb3/FWZm9951rY+LdQkvqNzEzqw2dAUY+O+Q0iItLttZjEzewA4Zq4Ra9bgW/mOa72FYvD0KmhnPK5UFe1J/TQ03vr+zfBqk2pmfDxkjDsnj5prv8oMOuwnyIiIt1Hi0nc3fu2RyCdTs+BMOHDoQAkErBzTdRbXxCG43e8BZsWhZLUdziMmg2jTkv11ot7dsxvEBGRLq3Ja+JmNsnd3zKzk7Ntd/cleY2sCW1yTbytVO2FTYujnnpUDu/LbBMrDre0jZgJQ6aE3v6QKdBzQMfELCIiBeeobzEzs4fc/XozeyXLZi/oiW35kkjArnWZvfXtq8hyh164vj5kCgydAkOmhtfBJ+kau4iINNLq+8Q7m06dxLM5vB82LwnPfN+2CravhB1roPZw47axIhg0vnFy7z8GYlo1VkSku2pNT/yy5g7o7k+2UWxHpeCSeDaJuvBkuW0rQ089+br7HbL22kv6wJDJmcPxQ6eGWfYiItLlteYWs0ui1yHAB4CXo8/nAq8CHZLEu4RYHAZPCGXqx1P11YfCZLltqzKT+6EdqWvu6foMi3rsacm9bBIUl7bv7xERkQ7RZBJ392sBzOw5YIq7b4k+Dwfub5/wupmS3jDylFDSHdwRhuGTw/HbVoVkf3BrKG+/nGprMTjuxMzh+CFTYOA4DcmLiHQxuTzsZWwygUe2ASflKR7Jpk8Z9DkHTjgnVZdIwJ53oh57WnLf/XaYXLdrHax6JtW+uFfopWck96nh2CIiUpBySeKvmtmLwKOEC7ZXAtlmrEt7isVg0ImhTL4kVV9TFSbOpQ/Hb1sVeuybl4SSrndZ2nD85NSQfI8+7ft7RETkqOU0Oz2a5Pah6ONr7v5UXqNqRpeY2NYRKnc3nki3fXXjFd6SBhwfJfUosQ+ZrFvgREQ6iG4xk8YSCdj3fnSNfXVI6ttXh558oqZxe4uHnn96Yh8yBY47IUzWExGRvDiW9cTnAPcBk4ESIA4ccvd++Qi0JUri7aCuJtwCl+ytJ193bwBPNG4f7wFlEzMT+5DJeo68iEgbOZZVzH5MuA7+a2A28FlgfNuGJ51KvDgk5bKJMPUTqfqaqrC6W3pi374a9m2ErctCSVfSt/GQ/JApmkwnItJGclqK1N3Xm1nc3euAn5nZX/Icl3RGxT3Dgi7DZ2TWH96XmkyXnuAP7YhWgVuQ2b7X4MaJfcgkKO3ffr9FRKQLyCWJV5pZCbDUzP4vsAXond+wpKCU9g8rto0+LbP+4I60a+1pPffKnfDun0JJ129U45572UStAici0oRcrokfT7g3vAS4BegP/MTd17d4cLOLgHsJ19Efdve7mmh3KvBX4NPu/t/NHVPXxAuce1iXPSOxr2r6efJYmDhXNil6yt1JURkflosVEekGWjWxzcziwM/d/R9b8YVxYC1wAVABLAQ+4+6rsrT7PXAYeERJvJtK1MGedxsPye9cB16XfZ/eZVFCT0vug8bDgDGaLS8iXUqrJra5e52ZlZlZibtXH+V3ngasd/cNUQCPAXOBVQ3afQX4H+DUozy+dCWxePaH19QeCYl859q017Wwa3245n5oB7z358xjxXuEZN6w5z5ogh5iIyJdSi7XxN8F/mxmzwKHkpXu/oMW9hsJbEz7XAGcnt7AzEYCnwDOQ0lcsinqAcOmhZIukYADmxsn953r4MCW8Bja7SsbH6/fyMY998EnQb8Ruh1ORApOLkl8c1RiQN+jOHa2v4gNx+7vAb4Z9fibPpDZDcANAGPGjDmKEKTLisXCfej9R8GJ52VuO7w/9NQbJvfdb4fr8fs3wYZXM/cp6ZNK6MkV5gafFBaT0apwItJJ5e2JbWZ2BnCnu38k+vy/Adz9+2lt3iGV7AcDlcAN7v50U8fVNXFptUQd7H2vcXLfuS7MmM/KYODxUa99QmYvvvdg9d5FpF20+2NXzayIMLHtfGATYWLbVe6eZYwTzGwe8JwmtkmHqNzdOLnvWge732l6Yl3pgMykPnRaWB2u73AldxFpU8fyxLZWcfdaM7sZeJFwi9kj7r7SzG6Mtj+Qr+8WOWq9joMxp4eSrrY6LPlan9zXp94f3gsVC0NJ13NgSOjJ1eGGTtXKcCKSF7ncJ/5Bd/9zS3XtRT1x6RTc4eD2VELf8VZYSGbbipDcGzEYODaV1IdODeu5HzdOt8OJSIuOZQGUJe5+ckt17UVJXDo19zA7ftvKkNC3RUu/7lybfWW4op7hkbPJpJ5M8L0Ht3/sItJpHfVwejQx7QNAmZn9c9qmfoThcRFpyCzcrtZvBEy4IFVfWx2usSd768l13fdvgs1/DyVdn6Fpw/HRtfbBEzVTXkQyNHdNvAToE7VJv7VsP3BFPoMS6XKKSlK9bD6Zqq/ak+qtb18Zva6Gg9tC2fBKqq3Fw21wQ6eGpJ687j5gjCbSiXRTOT073d3fa6d4WqThdOnyEolwK1yyt54su9/Ovp57j35hsZihU6Pee9Rz16pwIl3GscxO72FmDwJj09u7+3lN7iEirReLhQlvx42DSR9N1ddUpU2gS+u5H9oBG/8WSrr+ozNnyA+bHnrymkgn0mXkksR/DTwAPAw0ccOsiORdcU8YMSuUdAe3p3rr26Nr7jvWwL6Noax7MdW2qGfotQ+bBsPKo177VCjt176/RUTaRC5JvNbdf5r3SESkdfoMCeXEc1N1dbWwe0Oqt75tJWxdHpL65iWhpBs4NvTUh06PEvz00JPXtXaRTi2Xa+J3AtuBp4AjyXp3353XyJqga+Iix6BqD2xdEXrrW5eHsuMtqMuySGFp/8ykPnRaeGiNZsiLtLtjuU/8nSzV7u4ntFVwR0NJXKSN1dWE+9i3roCty1IJvnJX47YWh7KJIaEPixL80OnQp6z94xbpRtr92en5oiQu0g7c4cDWKKEvixL88rA6XKPFCIE+wzJ77MPKw9rwmkQn0iZaPTvdzHoB/wyMcfcbzGwCMNHdn8tDnCLSGZhBv+GhpD+0proy3Mee3mPfthIOboX1W2H9S6m29ZPopqfK0KnQ42hWNBaR5uQyse1nwGLC09sAKggz1pXERbqbkl4w6pRQkhKJsEjMthWpHvu2Fc1MohuXGoZPDslrEp1Iq+SSxE9090+b2WcA3L3KTP+3iUgkFgtD54NOhClzU/WVu1PPkE+fRLfnnVBW/ybVtnQAjJgJI05O3UbXf5QSu0gLckni1WbWk+hCmJmdSNosdRGRrHodB+M+FEpS/SS65akee3IS3YZXQ0nqXRYl9LTE3ndoe/8KkU4tl9npFwDfAaYAvwM+CHzO3V/Ne3RZaGKbSBfjnrkQzKYl4TXbkq79RqYSerL0Oq79YxZpZ8c0O93MBgFzAAP+6u472z7E3CiJi3QD7rDn3eia+t9h89JQqg80bjtwbFpSPxmGz9AT6KTLOdYkXk7jZ6c/2ZYB5kpJXKSbSiTCLW6b/55K7luWQW1V47aDJsDIk1OJfdj0MClPpEAdy8NeHgHKgZVAcgkld/fPt3mUOVASF5F6dbVhslxyKH7zkjBDPlGT2c5iUDYZRqYNww+dBkU9OiZukaN0LEl8lbtPyVtkR0lJXESaVXskLASzKW0ofvsq8AbrN8WKw33rI2aleu1lkyGey3xfkfZ1LEuRvmFmU9x9VR7iEhFpW0U9Gq/2Vl0ZZsKnT5zbuRa2LA1l8c+ifUvD0+bSE7uWb5VOLJck/nNCIt9KuLXMCMPp5XmNTESkrZT0gtGnhZJ0eH948lx6Yt/zDlQsCKV+3z4wfGYYih95Sih6OI10Erkk8UeA/wUsJ3VNXESksJX2g7FnhpJUuTv0zOtvd/s77K+A914PJal3WZgwl0zqI0/WrW7SIXJJ4u+7+7N5j0REpKP1Og5OPC+UpIPbo576kvC6aTEc2gHrXgwlaeDYVFJP3uqmGfGSZ7lMbPsJMAD4DZnriesWMxHpfpL3sG9aHPXWF4fJcw1vdbM4DJmSOQyviXPSSscyO/1nWap1i5mISFLyVrdNi6OyJPuM+KKeoYeeHIIfeXJYEEbX16UFWk9cRKQ9VVeGiXPJpL5pcZg411DPgakh+GRy7zOk/eOVTu1Y1hMvA66n8RPbOqQnLiJSEEp6wZg5oSRV7k67vr44dX19/UuZa7H3Hx311KNh+OEztA67ZJXLxZlngD8BLwF1LbQVEZGm9DoOJnw4FAjX1/dtTPXUk7e67dsYyqpnoh0NyiZFST26xj5kKhSVdNhPkc4hl2viS919ZjvF0yINp4tIl5aoCw+iSb++vm0FJGoz28V7hGfCJ4fgR5wcPZgm1jFxS14dyxPbnjOzi919fh7iEhGRdLE4DJkcyqx/DHU1h8O665sWp4bid62HTYtCSSrpG4beR8xMPbVu4Dgl9i4sl574AaA34fayGkHe4H0AABW0SURBVFJPbGtxrT8zuwi4F4gDD7v7XQ22zwW+R3iITC3wNXd/vdGB0qgnLiICVO0Jt7Yle+tbloZ12Rvq0R9GzEgl9eEzwz3tmhFfUNp9drqZxYG1wAVABbAQ+Ez6M9jNrA9wyN09Wu70CXef1NxxlcRFRJpwYFv0xLmlqVXdDm5r3K50QNoa7FHpP0qJvRM76uF0M5vk7m+Z2cnZtrv7kha+8zRgvbtviI73GDAXqE/i7n4wrX1voLDudxMR6Uz6DoW+H4GTPpKq278l9RjZLUtDr71yJ2x4JZSkXoMzh+FHzIK+w5XYO7nmron/M3AD8B9ZtjlwXpb6dCOBjWmfK4DTGzYys08A3weGAB9t4ZgiInI0+g0PZdLF4bN7GHavX4M9Wq61cmfjW936DE0Nwdcn9qEd8zskqyaTuLvfEL2e28pjZzt9a9TTdvengKfM7CzC9fEPNzqQ2Q2EEwrGjBnTynBERASzMHTefxRMviTUucPe9zMT+5alYSh+7QuhJPUd0WAofib0Htwxv0Vymp2OmU0DpgClyTp3/0ULu1UAo9M+jwI2N9XY3V8zsxPNbLC772yw7UHgQQjXxHOJWUREcmQGA48PZerHQ517eMJcem99y5twYDOs2Qxrnk/t33905lD88Jla1a2d5PLEtn8FziEk8fnAPwCvAy0l8YXABDMbB2wCrgSuanDs8cDb0cS2k4ESYNdR/gYREWlrZnDcCaFMuzzUJRKwe0ODHvubqYfTrP5Nav8Bx2f21oeVK7HnQS498SuAGcDf3f1aMxsKPNzSTu5ea2Y3Ay8SbjF7xN1XmtmN0fYHgMuBz5pZDVAFfNoL7WHuIiLdRSwGg8eHUv7JUJeoC/esZyT2ZbD3vVBWPZ3av99IGDotPKRm2DQYOj2cJOg+9lbL5T7xBe5+mpktBs4FDgAr3H1qewTYkG4xExHp5Opqw1Pn0q+vb1sJNZWN2xb3hqFTouQ+LfTYh0yBHn3aP+5O7Fie2LbIzAYADwGLgYPAgjaOT0REuop4UZSYp8Csq0Ndog52vwPblsPWFeEJdNtWhJnyFQtDqWdw3LjQYx8a9dqHTQ89ed3yluGoHvZiZmOBfu6+LF8BtUQ9cRGRLqRydyqhJ5P7jrcgUdO4bemAaCh+eqrnXjYJinq0f9ztrNVPbDOzP7j7+S3VtRclcRGRLq62OgzH1yf35aFU7W7cNlYEgydG19inpZJ8F7vtrTVPbCsFegGDzWwgqfu++wEj8hKliIhIUUk0hD4tVecOB7aE3vq2KKlvXREm1W1fGQqPp9r3GZY2gS5K7oPGhwVmupDmrol/EfgaIWEvJpXE9wP35zkuERGRFDPoNyKUky5M1Vcfgu2rM3vt21bCwa2wfius/32qbVHPsDpccgLd0GkwdCqUtrieV6eVy3D6V9z9vnaKp0UaThcRkWYlErD33VRvPZnc923M3n7A8WFGfHIJ2LJJMPgkKC7N3r4DHNMqZmb2AWAsaT33HJ7YlhdK4iIi0ipVe0IvvT65Lw+9+Lrqxm0tFtZiT0/sQyaHIfkOmEjX6lvMzOw/gROBpUBdVO20/MQ2ERGRzqPnQBh7ZihJdTXRdfXVoexYDdvfCk+m2/12KG89l2pvcRh0YpTUp8CQSVA2OdTFi9v9J+Vyn/hsYIqepCYiIl1OvDjV205XewR2rgu3u21fFRL7jtXhXveda0NZ/Wyqfaw49NKHRMk92XMfOC7cN58nuRx5BTAM2JK3KERERDqToh6NZ8gD1FSFBL49Su473go9+L3vhSS/YzWsfCrVPl4Srq+XTcpM8APHtslM+VyS+GBglZktAI4kK9390mP+dhERkUJS3BOGzwglXfUh2LEmldS3rw7v920ME+u2rchsX1Qaknv99fZoaL7/mKN6lnwuSfzOnI8mIiLSHZX0hpEnh5LuyIGQ3JNJPZngD2yGrctCSVfcG8pOCtfZk9fbGw71p2kxibv7H6OVy06Nqha4+/aj/HkiIiLdT4++MGp2KOmq9kY999Wp6+3b3wr3tycXjslBLrPTPwXcDbxKeODLfWZ2q7v/99H+FhEREQF6DoAxp4eSrnJ3qsee/sr+rIfJZTj928Cpyd63mZUBLwFK4iIiIm2p13Fw/AdCSXdb9tXbcrl6HmswfL4rx/1EREQkj3Lpib9gZi8Cj0afPw38Nn8hiYiISC5ymdh2q5ldBpxJuCb+oLs/1cJuIiIikmfNLUU6Hhjq7n929yeBJ6P6s8zsRHd/u72CFBERkcaau7Z9D3AgS31ltE1EREQ6UHNJfKy7L2tY6e6LCCuaiYiISAdqLok3t5Bqz7YORERERI5Oc0l8oZld37DSzK4DFucvJBEREclFc7PTvwY8ZWZXk0ras4ES4BP5DkxERESa12QSd/dtwAfM7FwguRbb8+7+crtEJiIiIs3K5T7xV4BX2iEWEREROQp6fKqIiEiBUhIXEREpUEriIiIiBUpJXEREpEDlNYmb2UVmtsbM1pvZ7Vm2X21my6LyFzObkc94REREupK8JXEziwP3A/8ATAE+Y2ZTGjR7Bzjb3cuB7wEP5iseERGRriafPfHTgPXuvsHdq4HHgLnpDdz9L+6+J/r4V2BUHuMRERHpUvKZxEcCG9M+V0R1TbkO+G0e4xEREelSWnzYyzGwLHWetWF4Ktx1wJlNbL8BuAFgzJgxbRWfiIhIQctnT7wCGJ32eRSwuWEjMysHHgbmuvuubAdy9wfdfba7zy4rK8tLsCIiIoUmn0l8ITDBzMaZWQlwJfBsegMzGwM8Cfwvd1+bx1hERES6nLwNp7t7rZndDLwIxIFH3H2lmd0YbX8A+BdgEPATMwOodffZ+YpJRESkKzH3rJepO63Zs2f7okWLOjoMERGRdmNmi7N1cvXENhERkQKlJC4iIlKglMRFREQKlJK4iIhIgVISFxERKVBK4iIiIgVKSVxERKRAKYmLiIgUKCVxERGRAqUkLiIiUqCUxEVERAqUkriIiEiBUhIXEREpUEriIiIiBUpJXEREpEApiYuIiBQoJXEREZECpSQuIiJSoJTERURECpSSuIiISIFSEhcRESlQSuIiIiIFSklcRESkQCmJi4iIFCglcRERkQKlJC4iIlKglMRFREQKlJK4iIhIgVISFxERKVBK4iIiIgUqr0nczC4yszVmtt7Mbs+yfZKZvWFmR8zsG/mMRUREpKspyteBzSwO3A9cAFQAC83sWXdfldZsN/BPwMfzFYeIiEhXlc+e+GnAenff4O7VwGPA3PQG7r7d3RcCNXmMQ0REpEvKW08cGAlsTPtcAZx+rAdds/UAF/zgj5QUxSgpilEcj9GjKEY8ZhTFjJgZ8ZgRiz7HLfU+Fn2Ox1IltId4LBZtI9U+apu+b/1x07bHmzxuqgC4OwkPrw4kEtGrO+7gHt4nou0e1Sc8vU10DNKOlba9vl399mRdw+/M3Dd5TPdscWV+ZyJ8QWq/ht+RVt/kd2SLN0HGb0+kfTdAzMDM6l8NiJkRi4FhmIXP6a9Gsn2yLrk9+kzymJn1RK+xtGMQfU7uF4ulviMeg6JYjOK4URSPURQziuKWqovFKIobxfXbQn08lqorjscy90m2jf4bMrNj/d9HRLqYfCbxbH9xvFUHMrsBuAGgZNh41m0/eCxxiRSkbCcDycQfjxnF0baieIzi6CQivV2P4jg9isJJb2n9+zg9imP170uLo7qiWFSfel9a3zZ1nKK45saKdKR8JvEKYHTa51HA5tYcyN0fBB4EmD7zZP/vr51FdW2C6rpE/WtdIkFdgtSre/37RMKpc6c24eF9IvR2a5Pvo+110ec6d+rqwmujbVFvMf1YtdHx6o+bZV9I60WS7OUle3yZPUhI6wW2Q8/T0o+R9t3Zep6ZsaV9B1l6yg16s5a2vT7eBt+ZapP8zrAvpHrrqVGC1EhFtpGJ9M/powgZowv1IwTJ95mjH5A5MpEIDVPHStYnnJo6pzaRoLYu8319XcKprUu+T7ZLUBvVJ/epSx6rLlG/T8Khps6pqavrVBef4jGjtCjzBCF5YlDa4AQh48SgwclAj+I4PYvDSUR4TZbwuWdJnNKi8NqjKKZRCZFIPpP4QmCCmY0DNgFXAlcd60F7FMWYOKzvsR5GpKAkEqnE3/AkIJxIRicBdentUicBNXUJjtQmOFKT4EhtXXhfm+BITXh/uCatrrYuahfeH07fJ+394Zo66hLOoeo6DlXXtes/j9LiMJqQLeEn63s0+JzcJ32/niXhZKM07SQh/Tg6YZDOLm9J3N1rzexm4EUgDjzi7ivN7MZo+wNmNgxYBPQDEmb2NWCKu+/PV1wihSgWM3rE4vTI52l3K6RODrKfBKRODjJPDDK21SQ4XFvH4ZpkSVBVXcfh2jqqqkObhp8P14Sytx2GJRqPDjQcMWh4cpB2EpB1hKHxyURpNHKRHO0SyVVe/yS4+3xgfoO6B9LebyUMs4tIASqOh8mlfdrx7CKR8JDYo6RfVdP0CcDh2gSHq9PbJTLap44RTkTqP0f7VqedMLTHdYySoljGqEHP+hOBKPGnjRY0OnEoKaJncZxeJaFN8n2vktCuV0kRvXQ5osvpZOf1IiLNi8UsJKmSeN6/qy7hHEk7IaiKTghCXSLzJCLLCcPh2rpQV5t9hCHzJCSa41ObYF9V/n6TGfUJvrQ+6RfRszhGr+hEoGeU/Bu/L2qiPl6/b2mxThLak5K4iEgT4jGLerD5/1Pp7g0Se8Mk37AukRpRqA51ydfK6vT3tRn1R2oTVFaH9/mQPEnIluhTr0X0LAknDcnRhGS70pI4vZKTGYsb7B+9L9ZdEfWUxEVEOgEzqx8iH5DH76lLOIdbSPSZ72ubqM/hJOFQfn5Dcdwykn9pgxOG0kYnBeGkITma0NR+vXsU3iUHJXERkW4kHjN69yiid57mMSQSXp/QkycLldGJQPrJQ/37BiMJlTXhEkRyW3q7w9H2cLtlLQcO1+blN8SM+jkEvXsURQk+nAD0jkYEepcU0atHOEEI20JdxrYGdfm41KAkLiIibSaW55ME9/AchfrEH40GNBxdSN9eVZ15glBVk+UkobqOQ9W1VB6po7ouwcEjtRw8UgsHjrRZ7GbQqzhOr6jHnzxRSJZU8k+vDycJTVESFxGRgmFmlBQZJUUx+lOcl++oqUtkJPaq6joOHamlsqaOyiNpdfXb6qiqqeXQkdTIw6HoUkTYFvY/Upto8+cqKImLiIikKY7H6N8zRv+ebXuSUJfw+jkEh6JkXxmdICTrqqITgMrqOirrTxxqubeJYyqJi4iItIN4zOhbWkzf0qM/Obj3M9nrNU9fRESkQCmJi4iIFCglcRERkQKlJC4iIlKglMRFREQKlJK4iIhIgVISFxERKVBK4iIiIgVKSVxERKRAKYmLiIgUKHP3jo7hqJjZPmBdHg7dH9jXSY7V2v1bs99gYGcrvkuya8v/jjpKZ/oN7RlLvr5Lf1ukLUxw9/6Nat29oArwYGc/7rEeq7X7t2Y/YFFH/zvtSiVf/31219/QnrHob0vb7qe/LW1bmvp3UIjD6b8pgOMe67Fau3++/tlI7rrCv4PO9BvaMxb9bcnf98qxy/rvoOCG06Vtmdkid5/d0XGISNeivy3toxB74tK2HuzoAESkS9LflnagnriIiEiBUk9cRESkQCmJi4iIFCglcRERkQKlJC4ZzOzjZvaQmT1jZhd2dDwiUvjMbLKZPWBm/21mN3V0PF2Jkng3YGaPmNl2M1vRoP4iM1tjZuvN7HYAd3/a3a8HPgd8ugPCFZECcJR/V1a7+43ApwDddtaGlMS7h3nARekVZhYH7gf+AZgCfMbMpqQ1+U60XUQkm3kcxd8VM7sUeB34Q/uG2bUpiXcD7v4asLtB9WnAenff4O7VwGPAXAv+P+C37r6kvWMVkcJwNH9XovbPuvsHgKvbN9KuraijA5AOMxLYmPa5Ajgd+ArwYaC/mY139wc6IjgRKUhZ/66Y2TnAZUAPYH4HxNVlKYl3X5alzt39R8CP2jsYEekSmvq78irwavuG0j1oOL37qgBGp30eBWzuoFhEpGvQ35V2piTefS0EJpjZODMrAa4Enu3gmESksOnvSjtTEu8GzOxR4A1goplVmNl17l4L3Ay8CKwGnnD3lR0Zp4gUDv1d6Ry0AIqIiEiBUk9cRESkQCmJi4iIFCglcRERkQKlJC4iIlKglMRFREQKlJK4iIhIgVISFykQZlZnZkvTyu0dHRNAtGjOy2bWL/o81Mx+ZWYbzGyxmb1hZp9o4RjvmNnEBnX3mNltZjbdzObl8SeIFCw9O12kcFS5+8y2PKCZFUUP6DgWFwNvuvt+MzPgaeDn7n5V9B3HA5e2cIzHCE/3+j/RPjHgCuCD7v6emY0yszHu/v4xxirSpagnLlLgzOxdM/s/ZrbEzJab2aSovreZPWJmC83s72Y2N6r/nJn92sx+A/zOzHqZ2RNmtszMHjezv5nZbDO7zsx+mPY915vZD7KEcDXwTPT+PKA6ffU7d3/P3e+LjhE3s7ujmJaZ2RejZo8SknjSWcC77v5e9Pk3DbaLCEriIoWkZ4Ph9E+nbdvp7icDPwW+EdV9G3jZ3U8FzgXuNrPe0bYzgGvc/TzgS8Aedy8HvgecErV5DLjUzIqjz9cCP8sS1weBxdH7qUBz69BfB+yLYjoVuN7Mxrn7MiBhZjOidlcSEnvSIuBDzRxXpFvScLpI4WhuOP3J6HUxYd1mgAsJSTiZ1EuBMdH737v77uj9mcC9AO6+wsyWRe8PmdnLwMfMbDVQ7O7Ls3z3ce5+IFtQZnZ/dPzqKHFfCJSb2RVRk/7ABOAdot64ma0E5gL/knao7cCIJn67SLelJC7SNRyJXutI/X9twOXuvia9oZmdDhxKr2rmuA8D3wLeInsvHKDWzGLungBWApcnN7j7l81sMKEnnfyur7j7i1mO8yjwO+CPwDJ33562rRSoaiZOkW5Jw+kiXdeLwFeiyWaY2awm2r0OfCpqMwWYntzg7n8jrA99FZnD2+nWACdE718GSs3sprTtvRrEdFNyiN7MTkoO8bv728Au4K4s33USsKLJXyrSTSmJixSOhtfE72qh/feAYmCZma2IPmfzE6AsGkb/JrAM2Je2/Qngz+6+p4n9nwfOAfCwLOLHgbOj28YWAD+PjguhZ78KWBLF9P/IHBF8FJgEPNXgO86NvkdE0mgpUpFuzszihOvdh83sROAPwEnuXh1tfw74obv/oYn9hwO/cPcL8hRfD8IQ+5ltcDucSJeia+Ii0gt4JRriNuAmd682swHAAsI94FkTOIC7bzGzh8ysn7vvz0N8Y4DblcBFGlNPXEREpEDpmriIiEiBUhIXEREpUEriIiIiBUpJXEREpEApiYuIiBQoJXEREZEC9f8DpOAKvzgtz5oAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(8, 5))\n", "psf_table.plot_containment_vs_energy(linewidth=2, fractions=[0.68, 0.95])\n", "plt.xlim(50, 2000)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In addition we can check how the actual shape of the PSF varies with energy and compare it against the mean PSF between 50 GeV and 2000 GeV:" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(8, 5))\n", "\n", "for energy in [100, 300, 1000] * u.GeV:\n", " psf_at_energy = psf_table.table_psf_at_energy(energy)\n", " psf_at_energy.plot_psf_vs_rad(label=f\"PSF @ {energy:.0f}\", lw=2)\n", "\n", "energy_range = [50, 2000] * u.GeV\n", "spectrum = PowerLawSpectralModel(index=2.3)\n", "psf_mean = psf_table.table_psf_in_energy_range(\n", " energy_range=energy_range, spectrum=spectrum\n", ")\n", "psf_mean.plot_psf_vs_rad(label=\"PSF Mean\", lw=4, c=\"k\", ls=\"--\")\n", "\n", "plt.xlim(1e-3, 0.3)\n", "plt.ylim(1e3, 1e6)\n", "plt.legend();" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [], "source": [ "# Let's compute a PSF kernel matching the pixel size of our map\n", "psf = PSFMap.from_energy_dependent_table_psf(psf_table)" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "psf_kernel = psf.get_psf_kernel(\n", " position=geom.center_skydir, geom=geom, max_radius=\"1 deg\"\n", ")\n", "psf_kernel.psf_kernel_map.sum_over_axes().plot(stretch=\"log\", add_cbar=True);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Energy Dispersion\n", "For simplicity we assume a diagonal energy dispersion:" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [], "source": [ "e_true = exposure.geom.axes[\"energy_true\"]\n", "edisp = EDispMap.from_diagonal_response(energy_axis_true=e_true)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Fit\n", "Now, the big finale: let’s do a 3D map fit for the source at the Galactic center, to measure it’s position and spectrum. We keep the background normalization free." ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [], "source": [ "spatial_model = PointSpatialModel(\n", " lon_0=\"0 deg\", lat_0=\"0 deg\", frame=\"galactic\"\n", ")\n", "spectral_model = PowerLawSpectralModel(\n", " index=2.7, amplitude=\"5.8e-10 cm-2 s-1 TeV-1\", reference=\"100 GeV\"\n", ")\n", "\n", "source = SkyModel(\n", " spectral_model=spectral_model,\n", " spatial_model=spatial_model,\n", " name=\"source-gc\",\n", ")\n", "\n", "models = Models([source, diffuse_iem, diffuse_iso])\n", "\n", "dataset = MapDataset(\n", " models=models, counts=counts, exposure=exposure, psf=psf, edisp=edisp\n", ")" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 2.34 s, sys: 32.4 ms, total: 2.37 s\n", "Wall time: 2.38 s\n" ] } ], "source": [ "%%time\n", "fit = Fit([dataset])\n", "result = fit.run()" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "OptimizeResult\n", "\n", "\tbackend : minuit\n", "\tmethod : minuit\n", "\tsuccess : True\n", "\tmessage : Optimization terminated successfully.\n", "\tnfev : 204\n", "\ttotal stat : 19965.24\n", "\n" ] } ], "source": [ "print(result)" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Models\n", "\n", "Component 0: SkyModel\n", "\n", " Name : source-gc\n", " Datasets names : None\n", " Spectral model type : PowerLawSpectralModel\n", " Spatial model type : PointSpatialModel\n", " Temporal model type : \n", " Parameters:\n", " index : 2.603 \n", " amplitude : 6.61e-10 1 / (cm2 s TeV)\n", " reference (frozen) : 0.100 TeV \n", " lon_0 : -0.025 deg \n", " lat_0 : -0.040 deg \n", "\n", "Component 1: SkyModel\n", "\n", " Name : diffuse-iem\n", " Datasets names : None\n", " Spectral model type : PowerLawNormSpectralModel\n", " Spatial model type : TemplateSpatialModel\n", " Temporal model type : \n", " Parameters:\n", " norm : 0.961 \n", " tilt (frozen) : 0.000 \n", " reference (frozen) : 1.000 TeV \n", "\n", "Component 2: SkyModel\n", "\n", " Name : fermi-diffuse-iso\n", " Datasets names : None\n", " Spectral model type : CompoundSpectralModel\n", " Spatial model type : ConstantSpatialModel\n", " Temporal model type : \n", " Parameters:\n", " norm : 5.305 \n", " tilt (frozen) : 0.000 \n", " reference (frozen) : 1.000 TeV \n", " value (frozen) : 1.000 1 / sr \n", "\n", "\n" ] } ], "source": [ "print(models)" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "residual = counts - dataset.npred()\n", "residual.sum_over_axes().smooth(\"0.1 deg\").plot(\n", " cmap=\"coolwarm\", vmin=-3, vmax=3, add_cbar=True\n", ");" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercises\n", "\n", "- Fit the position and spectrum of the source [SNR G0.9+0.1](http://gamma-sky.net/#/cat/tev/110).\n", "- Make maps and fit the position and spectrum of the [Crab nebula](http://gamma-sky.net/#/cat/tev/25)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Summary\n", "\n", "In this tutorial you have seen how to work with Fermi-LAT data with Gammapy. You have to use the Fermi ST to prepare the exposure cube and PSF, and then you can use Gammapy for any event or map analysis using the same methods that are used to analyse IACT data.\n", "\n", "This works very well at high energies (here above 10 GeV), where the exposure and PSF is almost constant spatially and only varies a little with energy. It is not expected to give good results for low-energy data, where the Fermi-LAT PSF is very large. If you are interested to help us validate down to what energy Fermi-LAT analysis with Gammapy works well (e.g. by re-computing results from 3FHL or other published analysis results), or to extend the Gammapy capabilities (e.g. to work with energy-dependent multi-resolution maps and PSF), that would be very welcome!" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "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.7.0" }, "latex_envs": { "LaTeX_envs_menu_present": true, "autoclose": false, "autocomplete": true, "bibliofile": "biblio.bib", "cite_by": "apalike", "current_citInitial": 1.0, "eqLabelWithNumbers": true, "eqNumInitial": 1.0, "hotkeys": { "equation": "Ctrl-E", "itemize": "Ctrl-I" }, "labels_anchors": false, "latex_user_defs": false, "report_style_numbering": false, "user_envs_cfg": false }, "nbsphinx": { "orphan": true }, "toc": { "base_numbering": 1.0, "nav_menu": { "height": "237px", "width": "253px" }, "number_sections": false, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": {}, "toc_section_display": "block", "toc_window_display": false }, "varInspector": { "cols": { "lenName": 16.0, "lenType": 16.0, "lenVar": 40.0 }, "kernels_config": { "python": { "delete_cmd_postfix": "", "delete_cmd_prefix": "del ", "library": "var_list.py", "varRefreshCmd": "print(var_dic_list())" }, "r": { "delete_cmd_postfix": ") ", "delete_cmd_prefix": "rm(", "library": "var_list.r", "varRefreshCmd": "cat(var_dic_list()) " } }, "types_to_exclude": [ "module", "function", "builtin_function_or_method", "instance", "_Feature" ], "window_display": false } }, "nbformat": 4, "nbformat_minor": 4 }