diff --git a/maxrf4u/hotmax.py b/maxrf4u/hotmax.py index e2b22d0..c45402a 100644 --- a/maxrf4u/hotmax.py +++ b/maxrf4u/hotmax.py @@ -3,7 +3,7 @@ # %% auto 0 __all__ = ['HotmaxAtlas', 'compute_hotmax_spectra', 'compute_hotmax_noise', 'compute_subpeaks'] -# %% ../notebooks/40_hotmax.ipynb 33 +# %% ../notebooks/40_hotmax.ipynb 35 import maxrf4u import scipy.signal as ssg import numpy as np @@ -14,7 +14,7 @@ import scipy.interpolate as sip from IPython.display import SVG -# %% ../notebooks/40_hotmax.ipynb 34 +# %% ../notebooks/40_hotmax.ipynb 36 class HotmaxAtlas(): def __init__(self, datastack_file, prominence=0.2): diff --git a/maxrf4u/storage.py b/maxrf4u/storage.py index ef84bcd..5915eaa 100644 --- a/maxrf4u/storage.py +++ b/maxrf4u/storage.py @@ -4,7 +4,7 @@ __all__ = ['DATASTACK_EXT', 'L', 'Layers', 'raw_to_datastack', 'tree', 'underscorify', 'append', 'append_list', 'repack', 'max_and_sum_spectra', 'DataStack'] -# %% ../notebooks/10_storage.ipynb 25 +# %% ../notebooks/10_storage.ipynb 24 import maxrf4u import numpy as np @@ -22,7 +22,7 @@ import scipy.signal as ssg import time -# %% ../notebooks/10_storage.ipynb 26 +# %% ../notebooks/10_storage.ipynb 25 # CONSTANTS DATASTACK_EXT = '.datastack' diff --git a/notebooks/10_storage.ipynb b/notebooks/10_storage.ipynb index 417ac16..fc0232b 100644 --- a/notebooks/10_storage.ipynb +++ b/notebooks/10_storage.ipynb @@ -25,18 +25,6 @@ "# Storage " ] }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "#|hide \n", - "%load_ext autoreload\n", - "%autoreload 2 \n", - "%matplotlib notebook" - ] - }, { "cell_type": "markdown", "metadata": {}, diff --git a/notebooks/30_spatial-verus-spectral.ipynb b/notebooks/30_spatial-verus-spectral.ipynb index 1c3190e..e689704 100644 --- a/notebooks/30_spatial-verus-spectral.ipynb +++ b/notebooks/30_spatial-verus-spectral.ipynb @@ -173,7 +173,7 @@ "metadata": {}, "outputs": [], "source": [ - "FeKa_slice = cube[:,:,is_iron_Ka_band].compute() # load only this slice into memory (take 20 seconds)\n", + "FeKa_slice = cube[:,:,is_iron_Ka_band].compute() # load only this slice into memory (takes 21 seconds)\n", "FeKa_map = FeKa_slice.sum(axis=2) / 60 # average over number of channels in the Fe_Ka band " ] }, diff --git a/notebooks/40_hotmax.ipynb b/notebooks/40_hotmax.ipynb index 98bc1a0..a8e4f27 100644 --- a/notebooks/40_hotmax.ipynb +++ b/notebooks/40_hotmax.ipynb @@ -34,9 +34,7 @@ "outputs": [], "source": [ "#|hide \n", - "%load_ext autoreload\n", - "%autoreload 2 \n", - "%matplotlib notebook" + "from maxrf4u import tree" ] }, { @@ -53,10 +51,56 @@ "cell_type": "code", "execution_count": null, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "['RP-T-1898-A-3689.raw',\n", + " 'RP-T-1898-A-3689.rpl',\n", + " 'RP-T-1898-A-3689.datastack_backup',\n", + " 'RP-T-1898-A-3689_FeKa-map-clipped.png',\n", + " 'RP-T-1898-A-3689.datastack',\n", + " 'RP-T-1898-A-3689_highres.png']" + ] + }, + "execution_count": null, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "#|hide \n", - "os.chdir('/home/frank/Work/Projecten/DoRe/viz/raw_nmf')" + "os.chdir('/home/frank/Work/DATA/maxrf4u-data/')\n", + "os.listdir()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "RP-T-1898-A-3689.datastack:\n", + "\n", + "/\n", + " ├── compton_peak_energy (1,) float64\n", + " ├── imvis_extent (4,) int64\n", + " ├── imvis_reg (1692, 1592, 4) float32\n", + " ├── imvis_reg_highres (4920, 4629, 4) float32\n", + " ├── maxrf_cube (1692, 1592, 4096) float32\n", + " ├── maxrf_energies (4096,) float64\n", + " ├── maxrf_maxspectrum (4096,) float32\n", + " ├── maxrf_sumspectrum (4096,) float64\n", + " └── test_list (3, 3) int64\n" + ] + } + ], + "source": [ + "#|hide \n", + "tree('RP-T-1898-A-3689.datastack')" ] }, { @@ -82,6 +126,16 @@ "A requisite step in the data analysis now is to find the hotmax pixels and spectra. Locating them takes a few minutes, and should be done once using the `get_hotmax_spectra()` function. The user is prompted to inspect and save the result in the datastack file. " ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#|hide \n", + "%matplotlib widget" + ] + }, { "cell_type": "code", "execution_count": null, @@ -98,13 +152,30 @@ "outputs": [ { "data": { - "text/html": [ - ".." + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAvEAAAFfCAYAAADHxpPiAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABJkUlEQVR4nO3de3hU9b3v8c/M5MItiQaEJNsAaYV2KzlUpUppqWAVTZWC0a3WPi2eqqc9VZ+ygV7QZz/SvXdJTyvWnrLtbnu6vVS8HD2IrXi2xSKIR+xGrK2o20KFQmvSVITcSCbJZM4fv/4yl8yVzMxaK/N+Pc88Q9asGdbc1nzWd33Xb/nC4XBYAAAAADzD7/QCAAAAAMgOIR4AAADwGEI8AAAA4DGEeAAAAMBjCPEAAACAxxDiAQAAAI8hxAMAAAAeU+L0ApyMoaEhvfPOO6qoqJDP53N6cQAAAICcCIfD6urqUl1dnfz+5PV2T4b4d955R/X19U4vBgAAAJAXR44c0emnn570dk+G+IqKCknmyVVWVjq8NAAAAEBudHZ2qr6+fjjvJuPJEG9baCorKwnxAAAAGHPStYxzYCsAAADgMYR4AAAAwGMI8QAAAIDHEOIBAAAAjyHEAwAAAB5DiAcAAAA8hhAPAAAAeAwhHgAAAPAYQjwAAADgMYR4AAAAwGMI8QAAAIDHEOIBAAAAjyHEAwAAAB5DiAcAAAA8hhAPAAAAeAwhHgAAAPAYQjwAAADgMYR4AAAAwGMI8QAAAIDHEOIBAAAAjyHEAwAAAB5DiAcAAAA8hhAPAAAAeAwhHgAAAPAYQjwAAADgMYR4AAAAwGMI8QAAAIDHZB3in3/+eS1dulR1dXXy+XzasmVLzO0+ny/h5Tvf+c7wPIsWLRpx+7XXXjvqJwMAAAAUg6xDfE9Pj+bOnauNGzcmvL21tTXm8m//9m/y+Xy68sorY+a76aabYub74Q9/eHLPAAAAACgyJdneoampSU1NTUlvr6mpifn7ySef1OLFi/W+970vZvqECRNGzAsAAAAgvbz2xP/5z3/W1q1bdcMNN4y4bdOmTZoyZYrOOussrVmzRl1dXUkfJxgMqrOzM+YCAAAAFKusK/HZuP/++1VRUaHm5uaY6Z/5zGfU0NCgmpoa7du3T2vXrtVvfvMbbdu2LeHjtLS06Bvf+EY+FxVwXigk7doltbZKtbXSwoVSIOD0UgEAABfyhcPh8Enf2efTE088oeXLlye8/YMf/KAuvvhiff/730/5OHv37tW8efO0d+9enXPOOSNuDwaDCgaDw393dnaqvr5eHR0dqqysPNnFB9xj82Zp9Wrp0KHItJkzpQ0bpLiNYAAAMHZ1dnaqqqoqbc7NWzvNrl279NZbb+nGG29MO+8555yj0tJS7d+/P+Ht5eXlqqysjLkAY8bmzdJVV0mNjdLu3VJXl7lubDTTN292egkBAIDL5C3E/+QnP9G5556ruXPnpp339ddf18DAgGpra/O1OIA7hUKmAn/55dKWLdL8+dKkSeZ6yxYzfc0aMx8AAMBfZd0T393drQMHDgz/ffDgQb366quqrq7W9OnTJZndAI899pg2bNgw4v6///3vtWnTJn3yk5/UlClT9MYbb2j16tU6++yz9dGPfnQUTwXwoF27TAvNww9L/rhtar9fWrtWWrDAzLdokRNLCAAAXCjrEP/yyy9r8eLFw3+vWrVKkrRixQrdd999kqRHHnlE4XBYn/70p0fcv6ysTL/85S/1ve99T93d3aqvr9dll12mO+64QwEO4kOxaW0113PmJL7dTrfzAQAAaJQHtjol04Z/wPV27JAWLzY98PPnj7x9925TiX/uOSrxAAAUAccPbAWQgYULzSg069dLQ0Oxtw0NSS0tUkODmQ8AAOCvCPGAkwIBM4zkU09Jy5fHjk6zfLmZfuedjBcPAABi5PVkTwAy0NwsPf649OUvm9YZq6HBTGeceAAAEIcQD7hBc7P0vvdJ//N/SjU10pIlnLEVAAAkRYgH3GT6dOm88ziIFQAApERPPOAWg4PmYNaBAaeXBAAAuBwhHnCL/n4pHDbXAAAAKRDiAbcYHDTXVOIBAEAahHjALWx4Hxw0FXkAAIAkCPGAWwwOmtFohoZGnvgJAAAgCiEecIvBQamkhBAPAADSIsQDbjEwYCrx4bAUCjm9NAAAwMUI8YBbUIkHAAAZIsQDbmEr8YR4AACQBiEecItQyFTiw2FCPAAASIkQD7iBDe70xAMAgAwQ4gE3sC00tNMAAIAMEOIBNxgaMhV4QjwAAMgAIR5wg+gQT088AABIgxAPuIGtvvv9VOIBAEBahHjADWwl3u+P/A0AAJAEIR5wAw5sBQAAWSDEA24QXYkPh80FAAAgCUI84Abx7TSMEw8AAFIgxANuYEek8fkifwMAACRBiAfcgANbAQBAFgjxgBvYg1ltJZ4QDwAAUsg6xD///PNaunSp6urq5PP5tGXLlpjbr7/+evl8vpjL/PnzY+YJBoO69dZbNWXKFE2cOFGf+tSn9Mc//nFUTwTwNBvaCfEAACADWYf4np4ezZ07Vxs3bkw6z6WXXqrW1tbhy9NPPx1z+8qVK/XEE0/okUce0QsvvKDu7m5dfvnlCnEwH4pVfE88IR4AAKRQku0dmpqa1NTUlHKe8vJy1dTUJLyto6NDP/nJT/TTn/5UF110kSTpwQcfVH19vZ599lldcskl2S4S4H22J54DWwEAQAby0hO/Y8cOTZ06VbNnz9ZNN92k9vb24dv27t2rgYEBLVmyZHhaXV2d5syZoxdffDHh4wWDQXV2dsZcgDElPsRTiQcAACnkPMQ3NTVp06ZN2r59uzZs2KA9e/bowgsvVDAYlCS1tbWprKxMp556asz9pk2bpra2toSP2dLSoqqqquFLfX19rhcbcJY9wROj0wAAgAxk3U6TzjXXXDP87zlz5mjevHmaMWOGtm7dqubm5qT3C4fD8tkqZJy1a9dq1apVw393dnYS5DG22Eq8xBlbAQBAWnkfYrK2tlYzZszQ/v37JUk1NTXq7+/XsWPHYuZrb2/XtGnTEj5GeXm5KisrYy7AmBJ9UKvPRyUeAACklPcQf/ToUR05ckS1tbWSpHPPPVelpaXatm3b8Dytra3at2+fFixYkO/FAdwpvvJOJR4AAKSQdTtNd3e3Dhw4MPz3wYMH9eqrr6q6ulrV1dVat26drrzyStXW1urQoUO67bbbNGXKFF1xxRWSpKqqKt1www1avXq1Jk+erOrqaq1Zs0aNjY3Do9UARSe+8k4lHgAApJB1iH/55Ze1ePHi4b9tr/qKFSv0gx/8QK+99poeeOABHT9+XLW1tVq8eLEeffRRVVRUDN/nu9/9rkpKSnT11Vert7dXn/jEJ3TfffcpEAjk4CkBHhQd2mmnAQAAafjCYe/tt+/s7FRVVZU6Ojroj8fY8J//KW3dKs2eLe3fL82fL9FeBgBA0ck05+a9Jx5ABqIr736/xNmLAQBACoR4wA3id4jRTgMAAFIgxANuEB3iqcQDAIA0CPGAGzA6DQAAyAIhHnADKvEAACALhHjADeKHmCTEAwCAFAjxgBtEV+IZJx4AAKRBiAfcgEo8AADIAiEecIP4ISa9dw42AABQQIR4wA1CIVOBlziwFQAApEWIB9xgaCgS4u3fAAAASRDiATegEg8AALJAiAfcgJM9AQCALBDiATcIhUwFXmKISQAAkBYhHnCD6NDu9xPiAQBASoR4wA2GhiKVeMkMMUmQBwAASRDiATeIP7A1HGaseAAAkBQhHnCD+Ko7lXgAAJACIR5wg+h2Gp+PSjwAAEiJEA+4QXTV3bbVEOIBAEAShHjADaJ74u0Qk4R4AACQBCEecIOhodgQLxHiAQBAUoR4wA3iQzwHtgIAgBQI8YAb0E4DAACyQIgH3CA6sNNOAwAA0iDEA24QCo0cYpJ2GgAAkAQhHnCaHRM+vieeSjwAAEgi6xD//PPPa+nSpaqrq5PP59OWLVuGbxsYGNDXvvY1NTY2auLEiaqrq9PnPvc5vfPOOzGPsWjRIvl8vpjLtddeO+onA3hSosBOiAcAAClkHeJ7eno0d+5cbdy4ccRtJ06c0CuvvKJ/+Id/0CuvvKLNmzfrd7/7nT71qU+NmPemm25Sa2vr8OWHP/zhyT0DwOtsYLftNH4/IR4AAKRUku0dmpqa1NTUlPC2qqoqbdu2LWba97//fZ133nk6fPiwpk+fPjx9woQJqqmpyfa/B8aeRO00Ej3xAAAgqbz3xHd0dMjn8+mUU06Jmb5p0yZNmTJFZ511ltasWaOurq6kjxEMBtXZ2RlzAcYMO5ykDe/R0wAAABLIuhKfjb6+Pn3961/Xddddp8rKyuHpn/nMZ9TQ0KCamhrt27dPa9eu1W9+85sRVXyrpaVF3/jGN/K5qIBzbFjnwFYAAJChvIX4gYEBXXvttRoaGtI999wTc9tNN900/O85c+Zo1qxZmjdvnl555RWdc845Ix5r7dq1WrVq1fDfnZ2dqq+vz9eiA4Vlh5OknQYAAGQoLyF+YGBAV199tQ4ePKjt27fHVOETOeecc1RaWqr9+/cnDPHl5eUqLy/Px6ICzktUiaedBgAApJDzEG8D/P79+/Xcc89p8uTJae/z+uuva2BgQLW1tbleHMD94nviOWMrAABII+sQ393drQMHDgz/ffDgQb366quqrq5WXV2drrrqKr3yyit66qmnFAqF1NbWJkmqrq5WWVmZfv/732vTpk365Cc/qSlTpuiNN97Q6tWrdfbZZ+ujH/1o7p4Z4BXx7TR2GiEeAAAkkXWIf/nll7V48eLhv22v+ooVK7Ru3Tr97Gc/kyR96EMfirnfc889p0WLFqmsrEy//OUv9b3vfU/d3d2qr6/XZZddpjvuuEOBQGAUTwXwqPh2GjtOPD3xAAAgiaxD/KJFixROUSFMdZsk1dfXa+fOndn+t8DYFV91Z3QaAACQRt7HiQeQhu2J98d9HQnxAAAgCUI84LRkVXdCPAAASIIQDzjNhvjoA1sleuIBAEBShHjAaTasx4d4KvEAACAJQjzgtERDTNrpAAAACRDiAacla6chxAMAgCQI8YDT4seJt+iJBwAASRDiAadRiQcAAFkixANOs+PEE+IBAECGCPGA05KNE087DQAASIIQDziNdhoAAJAlQjzgNMaJBwAAWSLEA06jEg8AALJEiAecliysE+IBAEAShHjAacnCOge2AgCAJAjxgNOoxAMAgCwR4gGnJau4E+IBAEAShHjAaVTiAQBAlgjxgNMI8QAAIEuEeMBpidppfD4pFCr8sgAAAE8gxANOY3QaAACQJUI84LREId7vJ8QDAICkCPGA06jEAwCALBHiAaclCvE+HyEeAAAkRYgHnMaBrQAAIEuEeMBpySrxDDEJAACSIMQDTksW4qnEAwCAJLIO8c8//7yWLl2quro6+Xw+bdmyJeb2cDisdevWqa6uTuPHj9eiRYv0+uuvx8wTDAZ16623asqUKZo4caI+9alP6Y9//OOongjgWfTEAwCALGUd4nt6ejR37lxt3Lgx4e3f/va3ddddd2njxo3as2ePampqdPHFF6urq2t4npUrV+qJJ57QI488ohdeeEHd3d26/PLLFaLyiGLE6DQAACBLJdneoampSU1NTQlvC4fDuvvuu3X77berublZknT//fdr2rRpeuihh/SFL3xBHR0d+slPfqKf/vSnuuiiiyRJDz74oOrr6/Xss8/qkksuGcXTATwoUVhnnHgAAJBCTnviDx48qLa2Ni1ZsmR4Wnl5uS644AK9+OKLkqS9e/dqYGAgZp66ujrNmTNneJ54wWBQnZ2dMRdgzKASDwAAspTTEN/W1iZJmjZtWsz0adOmDd/W1tamsrIynXrqqUnnidfS0qKqqqrhS319fS4XG3DW0JDpgY9GTzwAAEghL6PT+OICSTgcHjEtXqp51q5dq46OjuHLkSNHcrasgOMSHQtCiAcAACnkNMTX1NRI0oiKent7+3B1vqamRv39/Tp27FjSeeKVl5ersrIy5gKMGYkq8XY6AABAAjkN8Q0NDaqpqdG2bduGp/X392vnzp1asGCBJOncc89VaWlpzDytra3at2/f8DxAUUkU4jmwFQAApJD16DTd3d06cODA8N8HDx7Uq6++qurqak2fPl0rV67U+vXrNWvWLM2aNUvr16/XhAkTdN1110mSqqqqdMMNN2j16tWaPHmyqqurtWbNGjU2Ng6PVgMUlXCYSjwAAMhK1iH+5Zdf1uLFi4f/XrVqlSRpxYoVuu+++/TVr35Vvb29+tKXvqRjx47p/PPP1y9+8QtVVFQM3+e73/2uSkpKdPXVV6u3t1ef+MQndN999ykQCOTgKQEeEwpxYCsAAMiKLxxONr6de3V2dqqqqkodHR30x8P7nn1WeuMNqaEhMq29XSorkz77WeeWCwAAFFymOTcvo9MAyEKyISbD4eRjyAMAgKJGiAecFgqZA1mjEeIBAEAKhHjAaYmCOiEeAACkQIgHnJZsnHhCPAAASIIQDzgt2eg0hHgAAJAEIR5wWqJx4u3fDDMJAAASIMQDTks1TjyVeAAAkAAhHnBaomq7DfWEeAAAkAAhHnDa0FDyISZppwEAAAkQ4gGnJavEc2ArAABIghAPOI0ztgIAgCwR4gGnMU48AADIEiEecJIN6lTiAQBAFgjxgJPswauMEw8AALJAiAecZCvtjBMPAACyQIgHnJQsqDNOPAAASIEQDzjJ9r0zTjwAAMgCIR5wUrJKOwe2AgCAFAjxgJNSHdhKiAcAAEkQ4gEn2XYZxokHAABZIMQDTmKceAAAcBII8YCTGCceAACcBEI84KRk7TSMEw8AAFIgxANOStVOY28HAACIQ4gHnERPPAAAOAmEeMBJ6Vpm6IkHAAAJEOIBJyU7Y2v07QAAAHFyHuJnzpwpn8834nLzzTdLkq6//voRt82fPz/XiwF4Q7J2mujbAQAA4pTk+gH37NmjUCg0/Pe+fft08cUX6+/+7u+Gp1166aW69957h/8uKyvL9WIA3pCu7512GgAAkEDOQ/xpp50W8/e3vvUtvf/979cFF1wwPK28vFw1NTW5/q8B77E98VTiAQBAFvLaE9/f368HH3xQn//85+WLCik7duzQ1KlTNXv2bN10001qb29P+TjBYFCdnZ0xF2BMoJ0GAACchLyG+C1btuj48eO6/vrrh6c1NTVp06ZN2r59uzZs2KA9e/bowgsvVDAYTPo4LS0tqqqqGr7U19fnc7GBwkkX4mmncbdQSNqxQ3r4YXMd1UoIAEA++cLh/JX6LrnkEpWVlennP/950nlaW1s1Y8YMPfLII2pubk44TzAYjAn5nZ2dqq+vV0dHhyorK3O+3EDB/OlP0mOPSTNnSoFA7G2/+530yU9Kf/u3jiwa0ti8WVq9Wjp0KDJt5kxpwwYpyboMAIB0Ojs7VVVVlTbn5q0S/4c//EHPPvusbrzxxpTz1dbWasaMGdq/f3/SecrLy1VZWRlzAcaEcNhU26nEe8vmzdJVV0mNjdLu3VJXl7lubDTTN292egkBAGNc3kL8vffeq6lTp+qyyy5LOd/Ro0d15MgR1dbW5mtRAPeyO8LoifeOUMhU4C+/XNqyRZo/X5o0yVxv2WKmr1lDaw0AIK/yEuKHhoZ07733asWKFSopiQyA093drTVr1mj37t06dOiQduzYoaVLl2rKlCm64oor8rEogLsxOo337NplWmhuu23kSbr8fmntWungQTMfAAB5kvMhJiXp2Wef1eHDh/X5z38+ZnogENBrr72mBx54QMePH1dtba0WL16sRx99VBUVFflYFMDd0oV02mncp7XVXM+Zk/h2O93OBwBAHuQlxC9ZskSJjpcdP368nnnmmXz8l4A3pQvpVOLdx7b+7dtnWmji7dsXOx8AAHmQ1yEmAaSR6oyt6c7mCmcsXGhGoVm/fuRG2NCQ1NIiNTSY+QAAyBNCPOCkVP3wPh8h3o0CATOM5FNPScuWxY5Os3y5mX7nnSOHDAUAIIfy0k4DIEPp2mnoiXen5mbp8celW26RFiyITG9oMNMZJx4AkGeEeMBJ6SrtVOLdq7lZKimRnnlG6ukxVfilS6nAAwAKghAPOClVSPf5GGvc7YJBMxpNX5/04Q8T4AEABUNPPOAk2mm8KxyWenul8nKzsRUMOr1EAIAiQogHnJSqEu/3U4l3s4EBaXDQtNT4fOZvAAAKhBAPOIlKvHfZEG9baAjxAIACIsQDTqIS710DA+b9KSmJ/A0AQIEQ4gEnpRt9hkq8e9kQbyvx/f3OLg8AoKgQ4gEnpQrpfj8h3s2i22kCAQ5sBQAUFCEecBJDTHrX4KDZyLIhvq/P6SUCABQRQjzgJA5s9a7BQbMR5vNRiQcAFBwhHnASB7Z61+Bg5N+EeABAgRHiASeFQqaSmwyVePeKHo2GdhoAQIER4gEnpQrxVOLdLb4Sb3vkAQAogBKnFwAoal6txIdC0q5dUmurVFsrLVwYGWqxWERvYNkQPzAglZc7t0wAgKJBJR5w0tCQ9yrxmzdLZ5whLV4sXXeduT7jDDO9mAwMRN67QMC8V9HVeQAA8ogQDzjJa5X4zZulq66SGhul3bulri5z3dhophdTkA8GzYaWRIgHABQcIR5wkpcq8aGQtHq1dPnl0pYt0vz50qRJ5nrLFjN9zRp3LXM+9fcT4gEAjiHEA05KVYn3+cwQlKmGoSykXbukQ4ek226LhFfL75fWrpUOHjTzFYNgMHIcACEeAFBghHjASakq8T6fud0tIb611VzPmZP4djvdzjfWDQxENmbsXhNCPACgQAjxgJPSVeIl9/TF19aa6337Et9up9v5xrr4SvzQECEeAFAwhHjASV6qxC9cKM2cKa1fP3LDYmhIammRGhrMfMVgYGDksJrRJ4ACACCPCPGAk7xUiQ8EpA0bpKeekpYvjx2dZvlyM/3OO4tjvHhbdY8/NoBKPACgQDjZE+CkdCHeTZV4SWpulh5/XLrlFmnBgsj0hgYzvbnZuWUrJHt21pK4VWixjMwDAHAcIR5wUig0spprua0SbzU3m7OS/uIX0tGj0qWXSp/+dHFU4K1QyLwvVOIBAA4hxANOShXQ3ViJt3p7pTPPlLq7pbPPLq4AL5mwnmgDjBAPACiQnPfEr1u3Tj6fL+ZSU1MzfHs4HNa6detUV1en8ePHa9GiRXr99ddzvRiAN6SrxIfD7qvEh8PSiRNSaan5u7/f2eVxgq3ER2+8+Hwc2AoAKJi8HNh61llnqbW1dfjy2muvDd/27W9/W3fddZc2btyoPXv2qKamRhdffLG6urrysSiAe9kTOXnlZE/WwICpOAcCZhn7+pxeosKzPfHRG2B+vxl2EgCAAshLO01JSUlM9d0Kh8O6++67dfvtt6v5rwfA3X///Zo2bZoeeughfeELX0j4eMFgUMGoH8fOzs58LDZQWLbKnizE+/3urMT395sQW15uDuzs6XF6iQovFBq5FyUQIMQDAAomL5X4/fv3q66uTg0NDbr22mv19ttvS5IOHjyotrY2LVmyZHje8vJyXXDBBXrxxReTPl5LS4uqqqqGL/X19flYbKCwbL97shAvuTPEDwyYAFtSYi7FGFxtJT66nSYQGFvtNKGQtGOH9PDD5pqRdwDAVXIe4s8//3w98MADeuaZZ/TjH/9YbW1tWrBggY4ePaq2tjZJ0rRp02LuM23atOHbElm7dq06OjqGL0eOHMn1YgOFly7E20q8G9tpBgZMgA8EzEGuxSbR6DRjqZ1m82bpjDOkxYul664z12ecYaYDAFwh5yG+qalJV155pRobG3XRRRdp69atkkzbjOWLCy3hcHjEtGjl5eWqrKyMuQCel0lP/NCQeyvxgYAJ8sUa4uPfu0BgbBzku3mzdNVVUmNj7Am9GhvNdII8ALhC3s/YOnHiRDU2Nmr//v3DffLxVff29vYR1XlgzLOVeK+NTjMwEGklCQRMoC22oRUTPV8b4t225yQboZC0erV0+eXSli3S/PnSpEnmessWM33NGlprAMAF8h7ig8Gg3nzzTdXW1qqhoUE1NTXatm3b8O39/f3auXOnFkSf/RFjEz22sdK107h5dBorEDCBtthCfKLPrt/vzj0n2di1Szp0SLrttpEbl36/tHatdPCgmQ8A4Kich/g1a9Zo586dOnjwoH71q1/pqquuUmdnp1asWCGfz6eVK1dq/fr1euKJJ7Rv3z5df/31mjBhgq677rpcLwrchB7bkbw6Ok18iA+FxtYBnZlIFeK9vEHT2mqu58xJfLudbucDADgm5yH+j3/8oz796U/rAx/4gJqbm1VWVqaXXnpJM2bMkCR99atf1cqVK/WlL31J8+bN05/+9Cf94he/UEVFRa4XBW5Bj21imY5O4/ZKPCHeGAutRbW15nrfvsS32+l2PgCAY3zhsNsSQnqdnZ2qqqpSR0cHB7m6XShkKu6NjaanNnoX/dCQtHy5CQb798cO11cMjh83rUXV1dKECSNvD4elAwekv/s7yU3Dqu7da9qhZs82PeB/+pN07bXS1KlOL1nhvPKK9Nxz5jWwuruljg6zp8mr6yW+rwDguExzbt574lHk6LFNLtOeeLe10wSDkWUOBLzfQnIyklXivf5aBALShg3SU09Jy5bF7jlbvtxMv/NOAjwAuEBeztgKDKPHNrlM2mnsfG4SDEZCnN/v/RaSkzEwMPJ9s6+F1w/Ybm6WfvhDs+EdPeBAQ4P0+OPmdgCA4wjxyK/oHtv580feXsw9tukObI2ez02CQTM+vBRZ9mIL8f39I6vRY6ESby1aJH31q+a9/s//lD71KenKK6nAA4CL0E6D/Fq4UJo5U1q/fmRFeWhIamkxFb6FCx1ZPEelGyc+ej43CQZHLnOxHdja35+4PWwsVOIlqa/PPJ+5c6WzzzYXAjwAuAohHvkV3WO7fDk9ttHsmOJebqexxkL1ORsDA4lD/FipxMefhbevz5nlAAAkRTsN8q+52fTSfvnL9NhGs+GcEO89idppJPNejoVKfFeXVFoa+TsYdG5ZAAAJEeJRGM3N0qxZ0j33mKreBz4gfeUrxVmBtzLtiXdTiLftIoT45G1QY+G16O6OhPhAQOrpcXZ5AAAjEOJROIODZgzqSZOkyZOLO8BL3uyJHxgwIT66SuvzFV9PfKJ2GmsshPiensjBy6WlhHgAcCF64lE4fX0m8JWWSidOuG/UlULLNJy7KcQPDo6sxPv9xdVuYfvek22Eer2dZmDAvJ92Q62khBAPAC5EiEfhnDhhAkFJiQlBxVa9jeflEF8StRMvECiuEB8KmfdkrFbi+/vNd9OG+NJSc6BrsW90A4DLEOJROL29JvwFAibo9Pc7vUTOyrRi67YQHx9giy3E29dgrFbig0HzHO2Gmt3oLvbvKwC4DCEehdPba4IPlXgj03DupgpoonaaYgvx9uDeRJX4sdBa1N9v3ufodpqBAb6vAOAyhHgURjhsQnxpKZU9K9Nw7rZKfKKe+GJ6LxPtjbDGwgaNDfFU4gHA1QjxKIzo8GfbaYq9spdJ24XbRn5J1k4zOOiuPQb5ZHviE7XTBALuer9ORn+/eS/t0KeEeABwJUI8CsMOTWhDfDjs/bAzWplU2P1+dx0omWhZAgHz3rppOfMp0d4Ia6y000QrKTHPlxAPAK5CiEdhDAyMHJavWEJfMpmEeLedATTRe+b3F1+IT9ZO4/d7f+M0Pqz7fOb5ev15AcAYQ4hHYdhKfPTQhMVe2RsrIb7YKvHpDmz1+ue6v3/kWYR9Pu8/LwAYYwjxKIzBQSrx8bzaThPf+x4ImOfipo2NfLKvQXzQlSI98W46GDlbvb2JN1AI8QDgKoR4FEZ0T3z0tGLm1Up8fHgttkp8otfAsq+Fm96zbPX0RIaXjFbs31cAcBlCPArDVidthW8sHAA4WqnCoOW2SnyiVoti7IlPxu6V8PJrYc+sHM3vl/r6nFkeAEBChHgURnxgDQQIBQMDidsWorktxAeDI0dlKcZKfDJjYYOmr29kiOf7CgCuU5J+FiAH4kMNocCEvXSV+GzbaUIhadcuqbVVqq2VFi5MPBTiyUoU4v1+71efszGWK/H2zKzx73FpqWmzAQC4BpV4FEZ8P+1YOLPlaCUb4SSaz5d5INy8WTrjDGnxYum668z1GWeY6bmSKMRnu5xeNzCQvifeq6+FHQo2vieejW4AcB1CPAqDSvxI/f3pQ7w9G2o6mzdLV10lNTZKu3dLXV3murHRTM9VkE+1zF4NrtkKBpO/BradxqsHtvb3m/cxvp2mpMQ8by+PugMAYwwhHoURDI7siff6UHyjlWklfmgo9esUCkmrV0uXXy5t2SLNny9NmmSut2wx09esyU2wDAZHBjyrWEJ8X1/yFiWvV+JtiI9/fiUlkWFiAQCuQIhHYcS3YdhTuRdzKMh0dJpwOHUA37VLOnRIuu22kRsFfr+0dq108KCZbzTs+5UowIbDxfNeJmspkiLvl1dfC9tOk+jA1sFBxooHABchxKMw4ke8sBXLYh57OpMQn0klvrXVXM+Zk/h2O93Od7IGB5PvPSimnvhUId7y6mvR328+a8kq8cX8fQUAl8l5iG9padGHP/xhVVRUaOrUqVq+fLneeuutmHmuv/56+Xy+mMv8+fNzvShwk/g+YlvZ82rYyYXBwcyGmExXia+tNdf79iW+3U63850sG+KTHdhaLFXaVD3xllc/18neQxvii+U9BgAPyHmI37lzp26++Wa99NJL2rZtmwYHB7VkyRL1xA1Pdumll6q1tXX48vTTT+d6UeAm8b3Udii+Yq7sZTpOfCiUuhK/cKE0c6a0fv3I+YaGpJYWqaHBzDfa5U0W4u2Bj2Od/cwmOy7A8mqIT/Z9pBIPAK6T83Hi//3f/z3m73vvvVdTp07V3r179fGPf3x4enl5uWpqajJ6zGAwqGBUQOjs7MxuofI9djZSC4dHtiAUeyXetshkcmBrOJw6xAcC0oYNZhSaZctMb/ycOaYC39IiPfWU9Pjjo//MDw6a5UgUYItltCF7MHa6EO/VsNvfbz5v8ey5AKjEA4Br5L0nvqOjQ5JUXV0dM33Hjh2aOnWqZs+erZtuuknt7e1JH6OlpUVVVVXDl/r6+swXoBBjZyO1RL3UXh/FY7RsdT2TSvzQUPqRZZqbpccek/7jP6QFC6TKSnO9b58J8M3No19mu9GVaJn9/uKoxNvXYKz2xPf1Jf9MFlPLFAB4QF5DfDgc1qpVq/Sxj31Mc6IOumtqatKmTZu0fft2bdiwQXv27NGFF14YU22PtnbtWnV0dAxfjhw5ktkCFGrsbKRmQ3x09dKGU69WLEcrFDIVz1yMTmNddpn0T/8kff3r0o03SrffLv3ud7kJ8FLqdppiOXmXfQ1SVeK9/FqcOJH6uRHiAcA1ct5OE+2WW27Rb3/7W73wwgsx06+55prhf8+ZM0fz5s3TjBkztHXrVjUnCBzl5eUqLy/P7j+PHzvbVpfs2NnLl5uxs5cto7Um35KFP5+vuEN8olFA4mVz8qATJ8zr+aEPmRCZaONpNAYHzQZFokptSUmkFSPdhomXpdqQsfx+77YW9fSMPFtrNEI8ALhG3irxt956q372s5/pueee0+mnn55y3traWs2YMUP79+/P3QIUauxspJdqVBOvth2MVqY98Zm200gmxPf3S+XlUlmZCfK9vblZXin1BpffH3mfx7JM2mnGaiU+EDC3AwBcIechPhwO65ZbbtHmzZu1fft2NTQ0pL3P0aNHdeTIEdWOdgi8aIUaOxvp2RPIJAo+xV6JzzTEZ3Jm297eSHW/rMy8trmsCKfa4CqWYxzsga2pQnxJiTcr8aFQ6jPylpQQ4gHARXIe4m+++WY9+OCDeuihh1RRUaG2tja1tbWp968Vwe7ubq1Zs0a7d+/WoUOHtGPHDi1dulRTpkzRFVdckbsFKdTY2UgvVSWeEJ96vmx64qOr7iUl5rUtVCXenoF3rL+f9vmlahny6kG+/f3mu5qsnYYQDwCukvMQ/4Mf/EAdHR1atGiRamtrhy+PPvqoJCkQCOi1117TsmXLNHv2bK1YsUKzZ8/W7t27VVFRkbsFKdTY2UgvWfXS7y/eHlvb554uxEfPn05PTyRc2utchknbE5+I7d0vhhCf7DWw7PEBmew9cZP+/tRj4BPiAcBVcn5gazjND9z48eP1zDPP5Pq/HSl67Ozly00PfD7GzkZ6yYJdMffY2jHXcxniOzpMG020XLZ1pDpTqT0ZUDG006QTCJj5BgbM8QleYQ+GThXi7fNKdfArAKAg8j5OvKOam01Q/+1vY8fO/s1vcjd2NtJLFuy8fADgaGXaThM9fzpdXbHhyufL7UZSb2/qgx6LpRKfjlfPbhoMpg7opaXm9mLdewYALpPXISZdoblZOu886VvfMj9CfX3SzTcnP+AVuZfqVO657Nn2kmxDfLoKdyhk2mmiK7+lpVJ398kvY7y+vuR7roolxPf1pR9C06uvRTCY+jNpN06CQWnixMIuGwBghLEf4iVTOZo5U/rAB8zJb6gkFVaqdppiDvHZjKeerhLf12c+19HhqqzMVOdzJVUlXiqOcf/TvQaStyvxqT6TthJfrHvPAMBlxnY7jXXiROTHKRDIbbBBesnCQbH0USeS7XNON39vrwlY0T3xpaWmOp+rAyxTVeItrwXXbGUS4r1ciU91TJPtiSfEA4ArFEeIj672lpdLx487tihFKVnwKZZhCRPJJsT7fJmF+GAwNsTb0JWLPU+2spwuwI7197K3N/2GTCBgNpy8tsfvxInUz83nMxdCPAC4QnG003R2Rg7Wsn3CY/308G7S15c4/AUCJhz290vjxxd+uZyUTYjPZNzxvj7zmY7uZy4rM5X4YFAaN+7kltMaGDAbXOkeJ9PgGgqZsyW3tppzNSxc6P6RosJhE+IzHZnFayG+s3Pk6EaJePFEVgAwBhVHiI8etcOejt6enh75l6zCV1oaCfHFJpPRZqxMxtNPdGyB7WHu65OqqrJbvnh2DPFUBzRmeozD5s3S6tXSoUORaTNnmiFh3TxilD0ZUrq9EZbX9kr09GT23AjxKCQvbvADBTL222nCYRPibYWptNT8GLNLuDDCYfOjn6h6aXviizHEZxPwMhmKM/q4Dyt6NJHR6u83P6apqtCZnAxo82Zz7obGRmn3bvPd3L3b/H3VVeZ2t0p3MqRE83vF4ODI0Y0SKS015yMACmHzZumMM6TFi6XrrjPXZ5zh7vUEUEBjP8Tbqnt0Jb6/v3hHRSk020udqHLi1QMAcyEYzLyalEmIj24Zs/x+sxGVqxCfrgqdLsSHQqYCf/nl0pYt0vz50qRJ5nrLFjN9zZrs9lIUkn0NMmmn8fm8VbG2oxule27l5YR4FIaXN/iBAimOEB99ApNcVieRXibhrxjfi0xGerEyCfGJztYa/X+Nlu2JT7XM6UL8rl2mhea220aORe73m7MqHzxo5nMjuy7JpBJfUpLbMfrzrbfXfFfT9cTb4yyKcUQpFI7XN/iBAhn7Id5WmOyPk61OeqlK5mW2DSNV8PFS20GuJDvYN5FAwLxGyYb/S9UKYQ/GHK1MNrTsaDjJ9qy0tprrZCdas9N/+Uvp4YelHTvc9SPd15f+s2yVlub2bLn5lmmILy83nwX2ZCKfvL7BDxTI2A/xyU4lTogvjEz6iIuxEh8MZn621nRDcfb1jRxe0iotzc15ETJ5j+yBtMk2ymprzfW+fYlv37jRPNd//md39r9ms86wY/SnGnfdTU6cGDm6USI2xHtpAwXek+kGv50PKFJjP8TbH974g/4I8YWRrp0mEDBhp9hkW4lPFeJPnEheRc3VWVsz2VuS7oyeCxeaUWjWrx95AqrHH5duv1269FL39r/29mYeyktLIwUEL8h0g8MODFCM31kUjh0FK9kGv51uCwNAkSqeEB8tV9VJpGfPApmswldWZg7KLCYDA2bDJtOeeHscR7JAmKoVIvq8CKPR05N+eaOHtEwkEDDDSD71lLRsWSSsv/CC9F//q3TZZdKTT7q3/7WzM/MNr3QbNG7z3nuZjRFvT/hEiEe+2D2LkydL3/zmyA3+oSFTCJg6Vaqo8M7eLiAPxn6I7+0dWYUnxBdOuhAT/V6EQqYP2o390LlkQ3ymJw3KpBIvJT55mT0vwmjDZCYnArIbG6n2cl1xhfT3fy/96lfSggVSZaWp0Hd3m0q8m/tfjx3L/KRZZWWpN2jcJByW3n038xOu+XyMUIP8CAalnTvN9/3zn5e2bo3d4N+92/y9das5p8T/+3/SgQNOLzXgmLF/sqdE1TPbYsBZW/MvXXgsLzdB53//b+lrX/PeCYBOhm0xyrYSn6ylJVWl3Y4m0tc3urO2dnfnZmjFjg5p1izprrukw4dNBfjAAVOBd3P/6+CgWZdkeoI423bihRDf02PWh6lO5BVt/HipvT2/y4Ti098vbd8uvfaa1NAg/e3fmnXkffeZDX6rpsb8VixYYNYhe/ZI1dWmcg8UmbEf4js6Rv7wRp/wabSno0dqJ06kPliurMy0U/yv/2XaJh5+2IS2ffvMLtOrrjL90mMpyGd75s9AIHWIP348eZXcVuJ7e6VTTjmZpTUV5d7ezNotpNTB9b33TGisrTX97pL5AX7ySfOez58/8j5u6H+1G0KZnvnWjoKVj1Fccn0Gy2PHzEbaaadlNv+ECeYzFwxy1mvkzssvm+/6+94X+VwtWCCdf770xhtm3VFdLZ15ZuTz/jd/I/3+92bP7eWX83lE0Rnb7TRDQ+bHN76CWF7OCZ8KJV0bRkmJ9MQTxTUecLIRk1Lx+ZLv1Xj33eQbo6WlZgNgNJ/13l6zvJmE+EAgdavau++OPEbizDNNdS1Z/2tLi6nMLVx4csufC93dJ7c3I9ejuOTjDJbt7eZ1znSjcuJE83ocO3by/2e+ZdKaVyzte17w9tvSr39t1gPxQTwQMBv8F1xgrqM3WAMBs254+23prbcKu8yAC4ztEG8P+ItfKURXJ5FfXV2pw+rvfmeCXTGNB5zuYN9U94vX22s2VFP1M/t8owuTvb3Jh7CMV16eOtwdOTKybSMQkK6/Pnn/61NPSXfeGfnxdiJ8dXZmPka8FQjk9qDtfJzBcmjIVDIzbaWRIkWQo0ez//8KIZMNnXxsDOHk/OlPpo1GOrm9haWlZg/Z3r20eaHojO0Qf+JE4vBhx90ulhDvVMVpYMC8B6nC33vvmWs390Pn2skeZJqoTaWry3yO04X40RzIfeJE5nsOystNq0Wiz1hXlwl+FRUjb1uwwPS5vvxy5IDXBQukl16SfvCDSDuVU+HrvfeyP36mvDzy+R6tfJ3B8sgR892aMiW7+5WVmX5kt8lkQycfG0M4Oa2t5jepu1uaPv3kH6emxqx3fvlLcw0UibHdE5/uLITFcMKSzZvNj78TB4za17+yMvk81dXmejT90LnuEc63k9l4TDaiUmdn+ir5aMOkHU4wkxA7frw5DqW7e2T/+LvvmulTpya+b6L+19JSc4CbFAlfhT52Ihw21cJsqtWSeS2OHcvsTKjxbFvR4KD5944d5jv88MPJ91gtWCBt22Zew54e836NHx85EDUUMpXO9nazQejzmRYGvz/7NqFTTzUbAO3tppc+/rMRCpnlzqZlbLTiN3Ts62Q3dJYvN7dLqedZs8bsAXLzOsTrenrMHqBf/9p8R2bOHN3j+XymrebAARPklyxJXCzIBa/93mBMG9sh3p7AJFHbgs9nAsVY5lToseyekFQHG515pgl13/ymObgx+r3KpB/ayY2Uk9XVlV1bhpS8TcVWnVIF7HHjTCgeGsq+hUcyGwqZVqHHj5fa2sxzjA/xf/6z+T6m+sGz/a/WX/5ifuzPOSd9QMtX+Hr3XfPaZxsKJk2S3nnHjJ4xebL0xz+addLEiZGWFPs56Oszt9mRswYHzWtlr196ycyXbo/V//k/pv3MhvSyssiG1dCQ+b+jR+aaOFGaMSP716SqyoSYn//cbKSXlUUGDKioMO91MGiqq+PHm/fEfi7q6yPv3+TJkfu9+655zSZONPcJh82/J0408w8MmMexZwWeNMm8jj6fmZbpho6Ufp5du6RFi7J/XZBaOGz24PzqV9If/mDew/e9LzejxAUC0vvfb4L8tm3mNyPTg7Uzla/fGzYMcJLGdohPFdJzuavbjTKpSuW74tTTY35sU1XjAgEzHvD/+B9mWW67LXZjY+tWs7GRaBmd3kg5WUePZj+KQnm5+TzHt7W880768b3HjTP37e5OvVckmfb2zMcQDwRMWDx+XDr99Mj0UMiEy0mTsvu/q6vNQWtbtmQW0J55RvrkJ01YsCHZ5zPf9UAgMn57OGyCrh1Bxh7YeeKEeZ3a2sz9J0wwgbSjw+yyz4YNmDaA+/1m2uBgZIhROzSo32+WLRQy76/fb+5rl9+2u6TbY3XaaaZKPm6ceU52ZKHTTzeP1dMjTZsW+b9PNjz5fKaNqbvbhG/JLHsgYN6n8ePN83ntNbMc4bD5e9w407tsRQ+N6vebx4hepnHjzGsWHeLtORMmTDB/+3zm9fzVr8x90m3oZDLPm2+aPUB2T6FdvmPHzPWppzI8cTaGhsxG7JEj0iuvmL9nzcr9b09JiQnyBw+a7+y555pCUbZFk0Ty9XvjxUIUXGNsh/h3300elsaPH1110u127cos9Hz/++ZHfTRb/8mqCF1dmf3Q2X7o+PGAp0wx4T7RiizbjZRCVjpS/V8DA+Z1ybZ9Ydy4yFCAp55qpvX2mkp1ugrxxIkmiHd0ZB/ig0HzPck0xEvmuba2xgalP//ZLGu2w0QGAua9ffll83e68PXEEyYYdnSYkO73m0tXl3ksO1ynFBmyc2DAfE5toPT5zOttQ+WkSSYYnMx6YrRtAtb550dG8Em0x2r9enP7eedFPmuBgNkgmDAhMm/0+z/aEFpaaj6L9vOYSKJe+0w2hmw7kR1FLBw270koFNng6e2N7KkoLc28NS+Ted54wzy2PSOofa16esz/X1lp9kaEw2ZPVUWFeV79/aZlye+P7CWbONHMaz979v2xrU7jx5v57bEnds9FLoJnPvX1RZ67XT8MDJj3qK/PFCveesu8DnadMDho9rym+syMVmmp2UD485+lX/zCrPsaG80G7sn+1uerKObVQhRcw+VriVEIhVKfhXDcOPPDnq466dXdXPZA0GSh5+23zY/E3/99ZNrJbP2nqiJUVmbeE5uoH/qUU8zudlvhi5bpRsquXebxClXpSFdVsQeiZntiknHjzP26uiI/gO3t5kc0XVC01fFjx0wrQzbee898R+rqMr/PKaeYitvx4+YHfmDA7OLu7z+58zLU1UWGj0sXviZPNp9tW8EdGjLBYfLkSEXYhqPS0kiF2O3sCD6p9lh97WveWDdlwn6nx41L/pmJn57Jhs60aebvdPMsXBhpubQBfmjIbJSEQibMv/deZO/KsWPS/v1mXruhYe8Xvf6K3iAoK4tcAoHI0LN2z8PEieY5BoPmu3Paaeb7VFJibu/tjR2xaXDQ3PeUU0yILi01G6B2vpIS8xzsQdpTppjHtXusqqrM7XaD9sSJyMkSfT7zWCUlkT1VR46Y2ydNMssVfSZfO/pbIGA2IoeGzPc4m2LAaPh85rNQWSm9+qpZf9TXm3XllClmmSdNyjzUZ/N7k2kblhv2lsPzxm6ItwfXJdvinzDBrIiOH08e4r28m8tWPBOFns2bpc9+VrrsMnOq+5Pd+k9XRbjlFum//JfMlzm+H7q311RT2ttHVnDTbaTY6U8+KX3ve4WpdGRSVfnQh8zzyjbM2vaH996LjOJw5Ejm43uXlprd2fHvR3SV056gKDrstrcnHqY1lVNOMUOHPv545GyzXV3JD2hNZ/x46ZJLzA9bukr0/Plj9wcv2R6r6DNYFrNMN3Sk9PPYsJnse5rN8RHhcOTi90eC8sBAJKDbg58nTjTTBwfNd92eFM7vN3uy7AHDPt/IPSl2z5H9P6VIILfzRrcvRd/fbszadqZwOPJY0fe164hAwLwGtbUmyB89apZr/Hgz/6mnmo2hQh7YnMiECdIHPmA2uv7wB7NeKikxy1lZaVrCqqrM36Wl5jmVlUX28PT2muf34ovm8dL93vzhD5kv286dmW0Y2AN1gQR84XCy87W7V2dnp6qqqtTR0aHKZAH8wAHzoz9rVvKt7bfeki66yASreNGBLH5F/9RT7t/NFQyaDY5582JDTyhkVlxz5iQOQ8uXm+e5f3/qMGQfp7ExtooQ/TgvvWQCdLZ90NHeekv62MdGbojs2GGGF9y9O3FldvduswKsrTWvQbJlzOS5ZiKT12PfPunee01P8KxZ2f8fhw+bMxQuW2Y2UB97LLZfOhU7Ssoll5jneuKEeW1bW82P1aRJ5rV6551Im4k9M2coFNvfnolQKHZs9fLy0VfhXnzRhK/LLksevoohyIZCyc9gCfM5ue8+U6SxampMwLefj0zmGQtSHfcQ3UpqD6KOXm9F703I5PG8YmDA7Kno6oq0fPp8kb0G9gR5kvkdDQbNb8S//mv635uvfU36xCfM93LatEgRo6MjcuxNV5fZINu50zxmV1fi38iuLrOh8d/+m1lvn3qq+Xv8eDN/WZlZ97u97QonJaOcK4dD/D333KPvfOc7am1t1VlnnaW7775bCzM4K2NGT27nzvRh6fBhs4tv+fLYFVOmgSwX4S9fXnnFBOif/jQ29DzwgKmQp1sZPfdc6t2CmYbob34ztrqerb/8xVxffXXsiq6727xHH/5w8o2RPXvMj/Ron2smMn091qwxoSvbcbklU03685/N47/3njlo8AMfyGyX8NCQCe3Rlb6SEvNj4/ebx+7pMa+xrZ7Z9hfb4+sGxRK+MDqZbOiwMQRraMh8Hk6ciD3ofNy4SLvdf//vI4ti9r7Llpnjdv7pn8xj2BYlu+cl+vwNdk/AgQPSd76T2YbBzJlmwyMUiuwRKSkxbYIlJWYZGxoiv5GTJpllLymJtFLZDRWvb4QViUxDvGObcI8++qhWrlype+65Rx/96Ef1wx/+UE1NTXrjjTc0fTQnfZBMBfDAgdiRBRKprjaVx9bWSM/v4KA5OC6T3VwPPWT6MO2Bk/aLOm5cpA/Z7ka1ozXYESfs/2W/gLYaYL+c6QwMmOv43ZUDA9Lrr5uws2iReV7xu9+lzEZnaGgwz8GO92wPkquoMK0ZmTzOaEcAmjzZhM9XXjEVeb/frCBfftnsYnzwweS7xT//eeknP0m/jAcOSGefbV7//v7IGVVLSsyKc2DAXOyuZLvLubfXXA8NmY3GTF6P1tbkw2WmM3GiWTm/8IJZlpkzMw/Xfr80e3ZktKD4z1j8cJBulejYCcIX4sW35p3sPCgO9gD4VOvBTFq17DEXUuQ3WkrcVjR1amYHqydqEbSjbx07FtmLcuBA5DHs77XfHzmg3+YLyewZnTAhUqgpKzMbHxUVkUKOzS72vqGQKZ7ZzGIHabDHYkyYYG6z/7cU2QtrNyBsJrKZwh6nEb1HqKQksqFiN6jsstuRqILBSKubnW5/m+3ztfeze4/stZ3f5rXBwdhcVlYWaVmLPuB8wgRzm90wCwYj89jlLS2N3NdmQvtaRLfA2ZG2clAccyzE33XXXbrhhht04403SpLuvvtuPfPMM/rBD36glpaWzB7k0KHIVrINVv395sP8l7+YKmWqMxiOH2+C2M6d0llnmTfr9783w9RJ6QPZ//2/ic8kaj+w0f2J5eWRreHoD1H0VrIUCfFlZZFRJaJ7IO3uOPsBGjcuMqRcMGh6mFtbI6NGnH++qR68+ab5wh8/Lv3bv2U2OsOJE7H90YFA5Mv65puR+VM9zimnjP4MsbW10n/8h3neZWXmgOU//MHsYqytle6/f2SP8Oc+Fzk5T7plfP31yAgldvg6u/Lq74+MlJGKrQyn+78++MHMHi+ZyZNjD4rN9rWN/r542Zlnxv7t9ecDwN3OP1/6ylcS/9585Svm9uj1UHRAS7Z++tznTDU+2YbBV76S/P4lJcnHwbeFJxsk7e+43bDo6TFZwY6YZI+t6u+PVPsTiQ7iPl9kQ8EeWC2NvG90u1L8MVfRAdje1/4fNkNFb3zY/2tgIHZAgviDyO1GmX3M+BAfvZy2jSx6WN/ozBUMmseNznB2wAS7TNF7R+yB7bYAajfA7P9rj4eJ/j+jj2ex89qTLKbhSIjv7+/X3r179fWvfz1m+pIlS/SiPYAkSjAYVDDqVPWdnZ3mHy++GNl6sm92KBTZSsvkIJOSksg40PZDb3ddpAtk1dWpR7aI/hJHf4FyqaPDLH+0srJIe4Rlj8b/m78xrRyptv6nTDFVeLsVH/0c+vrM5bTTMnucCRNiDww+WSUlpn3JGjcuMmThV79qRiTp7DTv3fveF/kSZbKM9fXmMxPNflEz7TecNauwrwcAoLBS/d6czHq9ttZU+H/+85HDK19/vbk9n78X0cExOsymEr9XwAbeTA5ijg7RUiRIRxe2bDiOnha/EWODcCL5KujYY8UKpa8vo9kcCfHvvvuuQqGQpkXvepI0bdo0tUX3uv5VS0uLvvGNb4x8oI9/3FR6cy0Ukn72MxO8EvXEt7SYEUK8OqSbPVhm+XLTGmS3/ltazNb/j35kTphTqMfJp0IuoxdeDwCAe1x9tfSNb5iTlbW3mzYb26aL4tXVZXJEGo4e1uyLO8AiHA6PmCZJa9eu1apVq4b/7uzsVH19vRkx42TOQJmJu+82o9MkCmR2dJpsx9x2ixtvNHsRVq+O3fpvaMhu1J1cPU4+FXIZvfB6AADcx6t5AvlhO07ScGR0mv7+fk2YMEGPPfaYrrjiiuHpX/7yl/Xqq69qpz1IMIlMj9odtUTjxDc0SHfeOTYCWa5OZOWFE2K55YytAAAAKbh+iMnzzz9f5557ru65557haWeeeaaWLVuW9sDWgoV4iUAGAACAgnH9EJOrVq3SZz/7Wc2bN08f+chH9KMf/UiHDx/WF7/4RacWKbFAYPRjiAMAAAA55FiIv+aaa3T06FH94z/+o1pbWzVnzhw9/fTTmjFjhlOLBAAAAHiCo2dsPVkdHR065ZRTdOTIkfy30wAAAAAFYgdwOX78uKpSnITM0dFpTlZXV5ckmRFqAAAAgDGmq6srZYj3ZCV+aGhI77zzjioqKhIOSZmM3bKhgg+JzwMi+CzA4rOAaHweYBXysxAOh9XV1aW6ujr5U5yAy5OVeL/fr9NPP/2k719ZWcmXEcP4PMDiswCLzwKi8XmAVajPQqoKvJXm/LoAAAAA3IYQDwAAAHhMUYX48vJy3XHHHSovL3d6UeACfB5g8VmAxWcB0fg8wHLjZ8GTB7YCAAAAxayoKvEAAADAWECIBwAAADyGEA8AAAB4DCEeAAAA8BhCPAAAAOAxRRXi77nnHjU0NGjcuHE699xztWvXLqcXCQW2bt06+Xy+mEtNTY3Ti4UCef7557V06VLV1dXJ5/Npy5YtMbeHw2GtW7dOdXV1Gj9+vBYtWqTXX3/dmYVFXqX7LFx//fUj1hXz5893ZmGRVy0tLfrwhz+siooKTZ06VcuXL9dbb70VMw/rhuKQyWfBTeuGognxjz76qFauXKnbb79dv/71r7Vw4UI1NTXp8OHDTi8aCuyss85Sa2vr8OW1115zepFQID09PZo7d642btyY8PZvf/vbuuuuu7Rx40bt2bNHNTU1uvjii9XV1VXgJUW+pfssSNKll14as654+umnC7iEKJSdO3fq5ptv1ksvvaRt27ZpcHBQS5YsUU9Pz/A8rBuKQyafBclF64ZwkTjvvPPCX/ziF2OmffCDHwx//etfd2iJ4IQ77rgjPHfuXKcXAy4gKfzEE08M/z00NBSuqakJf+tb3xqe1tfXF66qqgr/67/+qwNLiEKJ/yyEw+HwihUrwsuWLXNkeeCs9vb2sKTwzp07w+Ew64ZiFv9ZCIfdtW4oikp8f3+/9u7dqyVLlsRMX7JkiV588UWHlgpO2b9/v+rq6tTQ0KBrr71Wb7/9ttOLBBc4ePCg2traYtYT5eXluuCCC1hPFKkdO3Zo6tSpmj17tm666Sa1t7c7vUgogI6ODklSdXW1JNYNxSz+s2C5Zd1QFCH+3XffVSgU0rRp02KmT5s2TW1tbQ4tFZxw/vnn64EHHtAzzzyjH//4x2pra9OCBQt09OhRpxcNDrPrAtYTkKSmpiZt2rRJ27dv14YNG7Rnzx5deOGFCgaDTi8a8igcDmvVqlX62Mc+pjlz5khi3VCsEn0WJHetG0oK/j86yOfzxfwdDodHTMPY1tTUNPzvxsZGfeQjH9H73/9+3X///Vq1apWDSwa3YD0BSbrmmmuG/z1nzhzNmzdPM2bM0NatW9Xc3OzgkiGfbrnlFv32t7/VCy+8MOI21g3FJdlnwU3rhqKoxE+ZMkWBQGDEFnN7e/uILWsUl4kTJ6qxsVH79+93elHgMDtKEesJJFJbW6sZM2awrhjDbr31Vv3sZz/Tc889p9NPP314OuuG4pPss5CIk+uGogjxZWVlOvfcc7Vt27aY6du2bdOCBQscWiq4QTAY1Jtvvqna2lqnFwUOa2hoUE1NTcx6or+/Xzt37mQ9AR09elRHjhxhXTEGhcNh3XLLLdq8ebO2b9+uhoaGmNtZNxSPdJ+FRJxcNxRNO82qVav02c9+VvPmzdNHPvIR/ehHP9Lhw4f1xS9+0elFQwGtWbNGS5cu1fTp09Xe3q5//ud/Vmdnp1asWOH0oqEAuru7deDAgeG/Dx48qFdffVXV1dWaPn26Vq5cqfXr12vWrFmaNWuW1q9frwkTJui6665zcKmRD6k+C9XV1Vq3bp2uvPJK1dbW6tChQ7rttts0ZcoUXXHFFQ4uNfLh5ptv1kMPPaQnn3xSFRUVwxX3qqoqjR8/Xj6fj3VDkUj3Weju7nbXusHBkXEK7l/+5V/CM2bMCJeVlYXPOeecmCGDUByuueaacG1tbbi0tDRcV1cXbm5uDr/++utOLxYK5LnnngtLGnFZsWJFOBw2Q8ndcccd4ZqamnB5eXn44x//ePi1115zdqGRF6k+CydOnAgvWbIkfNppp4VLS0vD06dPD69YsSJ8+PBhpxcbeZDocyApfO+99w7Pw7qhOKT7LLht3eD760IDAAAA8Iii6IkHAAAAxhJCPAAAAOAxhHgAAADAYwjxAAAAgMcQ4gEAAACPIcQDAAAAHkOIBwAAADyGEA8AAAB4DCEeAAAA8BhCPAAAAOAxhHgAAADAY/4/pkrNYmQvyjYAAAAASUVORK5CYII=", + "text/plain": [ + "
" ] }, - "execution_count": null, "metadata": {}, - "output_type": "execute_result" + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Step 1/3: Reading hot max channel maps...\n", + "[########################################] | 100% Completed | 107.78 s\n", + "Step 2/3: Locating hot max pixels...\n", + "Step 3/3: Ready with reading hot max spectra. \n" + ] + }, + { + "name": "stdin", + "output_type": "stream", + "text": [ + "Write hotmax spectra, spots and peak indices to datastack file [y/n]? n\n" + ] } ], "source": [ @@ -946,5 +1017,5 @@ } }, "nbformat": 4, - "nbformat_minor": 2 + "nbformat_minor": 4 }