Example_3_Evaluation.ipynb 105 KB
 Maximilian Schanner committed Nov 18, 2019 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 ``````{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Evaluation\n", "The third and last step in the `CORBASS` algorithm consists of evaluating the output from the integration step. Thus again this example makes use of the output from the previous example. A standard `run` of `CORBASS` concludes by calculating mean, variance and percentiles of the Gauss coefficient (compound) posterior. Therefore we first load the results from the `Integration` step:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "scrolled": true }, "outputs": [], "source": [ "%matplotlib inline\n", "import sys\n", "import os\n", "import numpy as np\n", "\n", "# relative import\n", "sys.path.append(os.path.abspath('') + '/../')\n", "from corbass.utils import load\n", "from corbass.integration import IntegrationResult\n", "\n", "pars = load('./Example_Parfile.py')\n", "# This example focuses again on the interval 1400-1500 A.D.\n", "year = 1450\n", "\n", `````` Maximilian Schanner committed Dec 03, 2019 33 `````` "with np.load(f'{pars.bin_fname(year)}{IntegrationResult.suffix_large}') as fh:\n", `````` Maximilian Schanner committed Nov 18, 2019 34 35 36 37 38 39 40 41 42 43 44 45 46 47 `````` " posterior = fh['posterior']\n", " mu_coeffs = fh['mu_coeffs']\n", " cov_coeffs = fh['cov_coeffs']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can then pass the results to the routine `evaluation.coeffs`:" ] }, { "cell_type": "code", `````` Maximilian Schanner committed Dec 03, 2019 48 `````` "execution_count": 2, `````` Maximilian Schanner committed Nov 18, 2019 49 `````` "metadata": {}, `````` Maximilian Schanner committed Dec 03, 2019 50 51 52 53 54 `````` "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ `````` Maximilian Schanner committed May 08, 2020 55 `````` "/home/arthus/Dokumente/CORBASS/examples/../corbass/evaluation.py:217: RuntimeWarning: covariance is not positive-semidefinite.\n", `````` Maximilian Schanner committed Dec 03, 2019 56 57 58 59 `````` " for it in par_samps]\n" ] } ], `````` Maximilian Schanner committed Nov 18, 2019 60 61 62 63 64 65 66 67 68 69 70 71 72 73 `````` "source": [ "from corbass.evaluation import coeffs\n", "ls, ms, mean, sd, err_16, err_84 = coeffs(posterior, mu_coeffs, cov_coeffs, r_ref=pars.r_ref)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For illustration we show the dipole coefficients together with errorbars derived from the percentiles and one standard deviation:" ] }, { "cell_type": "code", `````` Maximilian Schanner committed Dec 03, 2019 74 `````` "execution_count": 3, `````` Maximilian Schanner committed Nov 18, 2019 75 76 `````` "metadata": {}, "outputs": [ `````` Maximilian Schanner committed Dec 03, 2019 77 78 `````` { "data": { `````` Maximilian Schanner committed May 08, 2020 79 `````` "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYwAAAD4CAYAAAD//dEpAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAAbjklEQVR4nO3df5BU5Z3v8ffnggLXCPIriWFAJoAmSkaIHTTc1bCRDOzdTTBZubJmS5KQIpiQzdb9x1jG5a6WVTHJlluGjYZ7dVFXrhqtLJTGa2D9QbYkxEHIgFHWISTSQiUjMxCMwjLke//oZ2LP0DNzmJ7pZmY+r6pTnvM95+l+upzhM+c8p8+jiMDMzKwn/6XaHTAzs4HBgWFmZpk4MMzMLBMHhpmZZeLAMDOzTIZXuwP9ZcKECTF16tRqd8PMbEDZtm3bGxExsdS+fg8MSb8CjgAngLaIyEkaBzwMTAV+BfyPiGhNx98ILEvH/01EPJXqlwBrgVHAj4CvRTf3BE+dOpWGhob++VBmZoOUpF93ta9Sl6T+NCJmRUQubX8d+LeImAH8W9pG0oXAEuAiYCHwPUnDUpu7gOXAjLQsrFDfzcyM6o1hLALuS+v3AVcV1R+KiGMRsRdoAuZIOhcYHRFb0lnF/UVtzMysAioRGAH8WNI2SctT7T0RcQAg/ffdqT4J2FfUNp9qk9J653oHkpZLapDU0Nzc3Mcfw8xsaKvEoPd/i4j9kt4NbJT0SjfHqkQtuql3LESsAdYA5HI5P/PEzKwP9fsZRkTsT//9LfBDYA7wm3SZifTf36bD88DkouY1wP5UrylRNzOzCunXwJB0lqSz29eBemAXsAFYmg5bCqxP6xuAJZJGSKqlMLj9s3TZ6oikyyQJuK6ojZmZVUB/X5J6D/DDwr/xDAfWRcT/k/QC8IikZcBrwGKAiHhJ0iPAL4A24CsRcSK91vW8c1vtk2kxM7MK0WB9vHkulwt/D8PM7NRI2lb0FYgO/GgQM7PT0DXf38I1399S7W504MAwMxtM/vnPC0s/cGCUcDomu5lZtTkwzMxOI3c/t4fn97zRofb8nje4+7k93Tf893+EvZs71vZuLtT7iAOjL/XjqaCZDQ11NWNYuW47h98+DhTCYuW67dTVjOm+4aQPww8+B0cPFbb3bi5sT/pwn/XNgVHkdE52Mxsa5k6bwOprZ9P02zfJt77FynXbWX3tbOZOm9B9w9orYPFaaH4FDv26EBaL1xbqfcSBUeR0TnYzGzrmTpvAe0aP4PVDR/nrS6f0HBbtaq+As8+Fw/sgt6xPwwIcGB2czsluZkPH83ve4De/O8akc0byL1tfO+nKR5f2boYjB2DMZGi45+QrH2VyYHRyuia7mQ0N7Vc2pr/7XdSM/a+svnY2K9dt7zk02q9sTPwAnHNe4Y/WH3yuT0PDgdHJ6ZrsZjY0NOYPs/ra2YwZdQbwzpWPxvzh7hu+/mIhJEaeU9huv/Lx+ot91jcHRpHTOdnNbGhY8bFpJ13ZmDttAis+Nq37hn/ytydf2ai9olDvIw6MIqdzspvZ0PLwlz7Kw1/66Kk3/PwThaUf+OGDJbR/y7tX/7PMzAYwP3zQzMzKVokpWgccn1mYmZ3MZxhmZpbJgAoMSQsl7ZbUJOnr1e6PmdlQMmACQ9Iw4J+APwMuBP5K0oXV7ZWZ2dAxYAIDmAM0RcQvI+I/gYeARVXuk5nZkDGQAmMSsK9oO59qfyRpuaQGSQ3Nzc0V7ZyZ2WA3kAJDJWodvkQSEWsiIhcRuYkTJ1aoW2ZmQ8NACow8MLlouwbYX6W+mJkNOQMpMF4AZkiqlXQmsATYUOU+mZkNGQPmi3sR0SZpJfAUMAy4NyJeqnK3zMyGjAETGAAR8SPgR9Xuh5nZUDSQLkmZmVkVOTDMzCwTB4aZmWXiwDAzs0wcGGZmlokDw8zMMnFgmJlZJg4MMzPLxIFhZmaZODDMzCwTB4aZmWXiwDAzs0wcGGZmlokDw8zMMnFgmJlZJv0WGJL+l6TXJe1Iy38v2nejpCZJuyUtKKpfImln2nenJKX6CEkPp/pWSVP7q99mZlZaf59h3BERs9LyIwBJF1KYXvUiYCHwPUnD0vF3AcuBGWlZmOrLgNaImA7cAdzez/02M7NOqnFJahHwUEQci4i9QBMwR9K5wOiI2BIRAdwPXFXU5r60/ihwZfvZh5mZVUZ/B8ZKSY2S7pU0NtUmAfuKjsmn2qS03rneoU1EtAGHgfGd30zSckkNkhqam5v79pOYmQ1xZQWGpE2SdpVYFlG4vDQNmAUcAP6hvVmJl4pu6t216ViIWBMRuYjITZw48ZQ/j5mZdW14OY0jYn6W4yT9b+DxtJkHJhftrgH2p3pNiXpxm7yk4cAYoKX3PTczs1PVn3dJnVu0+WlgV1rfACxJdz7VUhjc/llEHACOSLosjU9cB6wvarM0rV8NPJ3GOczMrELKOsPowbckzaJw6ehXwJcAIuIlSY8AvwDagK9ExInU5npgLTAKeDItAPcAD0hqonBmsaQf+21mZiVosP6hnsvloqGhodrdMDMbUCRti4hcqX3+preZmWXiwDAzs0wcGGZmlokDw8zMMnFgmJlZJg4MMzPLxIFhZmaZODDMzCwTB4aZmWXiwDAzs0wcGGZmlokDw8zMMnFgmJlZJg4MMzPLxIFhZmaZlDun92JJL0n6g6Rcp303SmqStFvSgqL6JZJ2pn13ptn1SDPwPZzqWyVNLWqzVNKraVmKmZlVXLlnGLuAzwCbi4uSLqQwK95FwELge5KGpd13AcspTM06I+0HWAa0RsR04A7g9vRa44BVwKXAHGCVpLFl9tvMzE5RWYERES9HxO4SuxYBD0XEsYjYCzQBc9I836MjYkuak/t+4KqiNvel9UeBK9PZxwJgY0S0REQrsJF3QsbMzCqkv8YwJgH7irbzqTYprXeud2gTEW3AYWB8N691EknLJTVIamhubu6Dj2FmZu2G93SApE3Ae0vsuiki1nfVrEQtuqn3tk3HYsQaYA0U5vTuom9mZtYLPQZGRMzvxevmgclF2zXA/lSvKVEvbpOXNBwYA7Sk+rxObZ7tRZ/MzKwM/XVJagOwJN35VEthcPtnEXEAOCLpsjQ+cR2wvqhN+x1QVwNPp3GOp4B6SWPTYHd9qpmZWQX1eIbRHUmfBr4LTASekLQjIhZExEuSHgF+AbQBX4mIE6nZ9cBaYBTwZFoA7gEekNRE4cxiCUBEtEi6FXghHXdLRLSU028zMzt1KvwRP/jkcrloaGiodjfMzAYUSdsiIldqn7/pbWZmmTgwzMwsEweGmZll4sAwM7NMHBhmZpaJA8PMzDJxYJiZWSYODDMzy8SBYWZmmTgwzMwsEweGmZll4sAwM7NMHBhmZpaJA8PMzDJxYJiZWSYODDMzy6SswJC0WNJLkv4gKVdUnyrpbUk70nJ30b5LJO2U1CTpzjRVK2k614dTfaukqUVtlkp6NS1LMTOziiv3DGMX8Blgc4l9eyJiVlpWFNXvApZTmOd7BrAw1ZcBrRExHbgDuB1A0jhgFXApMAdYleb2NjOzCiorMCLi5YjYnfV4SecCoyNiSxTmhr0fuCrtXgTcl9YfBa5MZx8LgI0R0RIRrcBG3gkZMzOrkP4cw6iVtF3Sc5IuT7VJQL7omHyqte/bBxARbcBhYHxxvUSbDiQtl9QgqaG5ubnvPomZmTG8pwMkbQLeW2LXTRGxvotmB4ApEXFQ0iXAv0q6CFCJY6P9rbrY112bjsWINcAagFwuV/IYMzPrnR4DIyLmn+qLRsQx4Fha3yZpD3A+hbODmqJDa4D9aT0PTAbykoYDY4CWVJ/Xqc2zp9onMzMrT79ckpI0UdKwtP5+CoPbv4yIA8ARSZel8YnrgPazlA1A+x1QVwNPp3GOp4B6SWPTYHd9qpmZWQX1eIbRHUmfBr4LTASekLQjIhYAVwC3SGoDTgArIqIlNbseWAuMAp5MC8A9wAOSmiicWSwBiIgWSbcCL6Tjbil6LTMzqxAV/ogffHK5XDQ0NFS7G2ZmA4qkbRGRK7XP3/Q2M7NMHBhmZpaJA8PMzDJxYJiZWSYODDMzy8SBYWZmmTgwzMwsEweGmZll4sAwM7NMHBhmZpaJA8PMzDJxYJiZWSYODDMzy8SBYWZmmTgwzMwsk7ICQ9K3Jb0iqVHSDyWdU7TvRklNknZLWlBUv0TSzrTvzjTzHpJGSHo41bdKmlrUZqmkV9OyFDMzq7hyzzA2AjMjog74D+BGAEkXUpgx7yJgIfC99ilbgbuA5RSmbZ2R9gMsA1ojYjpwB3B7eq1xwCrgUmAOsCpN1WpmZhVUVmBExI8joi1t/hSoSeuLgIci4lhE7AWagDmSzgVGR8SWNF/3/cBVRW3uS+uPAlems48FwMaIaImIVgoh1R4yZmZWIX05hvEF3pmfexKwr2hfPtUmpfXO9Q5tUggdBsZ381onkbRcUoOkhubm5rI+jJmZdTS8pwMkbQLeW2LXTRGxPh1zE9AGPNjerMTx0U29t206FiPWAGugMKd3qWPMzKx3egyMiJjf3f40CP0XwJXpMhMUzgImFx1WA+xP9ZoS9eI2eUnDgTFAS6rP69Tm2Z76bWZmfavcu6QWAjcAn4qIt4p2bQCWpDufaikMbv8sIg4ARyRdlsYnrgPWF7VpvwPqauDpFEBPAfWSxqbB7vpUMzOzCurxDKMHq4ERwMZ0d+xPI2JFRLwk6RHgFxQuVX0lIk6kNtcDa4FRFMY82sc97gEekNRE4cxiCUBEtEi6FXghHXdLRLSU2W8zMztFeucq0uCSy+WioaGh2t0wMxtQJG2LiFypff6mt5mZZeLAMDOzTBwYZmaWiQPDzMwycWCYmVkmDgwzM8vEgWFmZpk4MMzMLBMHhpmZZeLAMDOzTBwYZmaWiQPDzMwycWCYmVkmDgwzM8vEgWFmZpmUO+PetyW9IqlR0g8lnZPqUyW9LWlHWu4uanOJpJ2SmiTdmWbeI83O93Cqb5U0tajNUkmvpmVp536YmVn/K/cMYyMwMyLqgP8AbizatyciZqVlRVH9LmA5hWlbZwALU30Z0BoR04E7gNsBJI0DVgGXAnOAVWmqVjMzq6CyAiMifhwRbWnzp0BNd8dLOhcYHRFb0nzd9wNXpd2LgPvS+qPAlensYwGwMSJaIqKVQkgtxMzMKqovxzC+wDvzcwPUStou6TlJl6faJCBfdEw+1dr37QNIIXQYGF9cL9HGzMwqZHhPB0jaBLy3xK6bImJ9OuYmoA14MO07AEyJiIOSLgH+VdJFgEq8Tvuk4l3t665N574up3C5iylTppT+QGZm1is9BkZEzO9ufxqE/gvgynSZiYg4BhxL69sk7QHOp3B2UHzZqgbYn9bzwGQgL2k4MAZoSfV5ndo820Vf1wBrAHK5XMlQMTOz3in3LqmFwA3ApyLiraL6REnD0vr7KQxu/zIiDgBHJF2WxieuA9anZhuA9jugrgaeTgH0FFAvaWwa7K5PNTMzq6AezzB6sBoYAWxMd8f+NN0RdQVwi6Q24ASwIiJaUpvrgbXAKApjHu3jHvcAD0hqonBmsQQgIlok3Qq8kI67pei1zMysQpSuIg06uVwuGhoaqt0NM7MBRdK2iMiV2udvepuZWSYODDMzy8SBYWZmmTgwzMwsEweGmZll4sAwM7NMHBhmZpaJA8PMzDJxYJiZWSYODDMzy8SBYWZmmTgwzMwsEweGmZll4sAwM7NMHBhmZpaJA8PMzDIpd4rWWyU1Stoh6ceS3le070ZJTZJ2S1pQVL9E0s607840VSuSRkh6ONW3Sppa1GappFfTshQzM6u4cs8wvh0RdRExC3gc+DsASRdSmGL1ImAh8L32Ob6Bu4DlFOb5npH2AywDWiNiOnAHcHt6rXHAKuBSYA6wKs3tbWZmFVRWYETE74o2zwLa53tdBDwUEcciYi/QBMyRdC4wOiK2RGFu2PuBq4ra3JfWHwWuTGcfC4CNEdESEa3ARt4JGTMzq5Dh5b6ApNuA64DDwJ+m8iTgp0WH5VPteFrvXG9vsw8gItokHQbGF9dLtOncl+UUzl6YMmVKrz+TmZmdrMczDEmbJO0qsSwCiIibImIy8CCwsr1ZiZeKbuq9bdOxGLEmInIRkZs4cWJ3H8vMzE5Rj2cYETE/42utA56gMN6QByYX7asB9qd6TYk6RW3ykoYDY4CWVJ/Xqc2zGftkZmZ9pNy7pGYUbX4KeCWtbwCWpDufaikMbv8sIg4ARyRdlsYnrgPWF7VpvwPqauDpNM7xFFAvaWwa7K5PNTMzq6ByxzC+KekC4A/Ar4EVABHxkqRHgF8AbcBXIuJEanM9sBYYBTyZFoB7gAckNVE4s1iSXqtF0q3AC+m4WyKipcx+m5nZKVLhj/jBJ5fLRUNDQ4fa8ePHyefzHD16tEq9qqyRI0dSU1PDGWecUe2umNkAIWlbRORK7Sv7LqmBJJ/Pc/bZZzN16lTS9wUHrYjg4MGD5PN5amtrq90dMxsEhtSjQY4ePcr48eMHfVgASGL8+PFD5mzKzPrfkAoM4JTD4prvb+Ga72/pp970r6EQjGZWOUMuMMzMrHccGF24+7k9PL/njQ615/e8wd3P7SnrdYcNG8asWbOYOXMmixcv5q233irr9czMKsWB0YW6mjGsXLedw28fBwphsXLddupqxpT1uqNGjWLHjh3s2rWLM888k7vvvjtTu7a2trLe18ysXA6MLsydNoHV186m6bdvkm99i5XrtrP62tnMnTahz97j8ssvp6mpid///vd84Qtf4CMf+QizZ89m/frCdxnXrl3L4sWL+eQnP0l9fT1vvvkmn//85/nQhz5EXV0djz32WJ/1xcysJ0PqttpTNXfaBN4zegSvHzrK33x8ep+GRVtbG08++SQLFy7ktttu4+Mf/zj33nsvhw4dYs6cOcyfX3giy5YtW2hsbGTcuHHccMMNjBkzhp07dwLQ2traZ/0xM+uJA6Mbz+95g9/87hiTzhnJv2x9jcumjS87NN5++21mzZoFFM4wli1bxty5c9mwYQPf+c53gMLtv6+99hoAn/jEJxg3bhwAmzZt4qGHHvrja40d62lBzKxyHBhdaB+zmP7udzFm1Bl8bf6MPrks1T6GUSwieOyxx7jgggs61Ldu3cpZZ53V4TjfKmtm1eIxjC405g+z+trZjBlVeKxG+5hGY/5wn7/XggUL+O53v0v7Y1q2b99e8rj6+npWr179x21fkjKzSnJgdGHFx6addCYxd9oEVnxsWp+/180338zx48epq6tj5syZ3HzzzSWP+8Y3vkFrayszZ87k4osv5plnngHgi1/8Ip2fm2Vm1teG1MMHX375ZT74wQ9WqUfVMRQ/s5n1XncPH/QZhpmZZeLAMDOzTMqdce9WSY2Sdkj6saT3pfpUSW+n+g5Jdxe1uUTSTklNku5MM++RZud7ONW3Sppa1GappFfTsrRzP8zMrP+Ve4bx7Yioi4hZwOPA3xXt2xMRs9Kyoqh+F7CcwrStM4CFqb4MaI2I6cAdwO0AksZRmCf8UmAOsCpN1Wp22ur1U47/+c8Li9lpqKzAiIjfFW2eBXQ7gi7pXGB0RGxJ83XfD1yVdi8C7kvrjwJXprOPBcDGiGiJiFZgI++ETP/zL7CZGdAHYxiSbpO0D/gsHc8waiVtl/ScpMtTbRKQLzomn2rt+/YBREQbcBgYX1wv0aZzX5ZLapDU0NzcXOYnMzt1vX7K8b//I+zd3LG2d3Ohbnaa6DEwJG2StKvEsgggIm6KiMnAg8DK1OwAMCUiZgP/E1gnaTRQ6mvK7WclXe3rrk3HYsSaiMhFRG7ixIk9fbTu9eMv8G233cZFF11EXV0ds2bNYuvWrcybN48LLriAuro6PvCBD7By5UoOHTpU9ntZZfX6KceTPgw/+BwcTf/P924ubE/6cL/21+xU9BgYETE/ImaWWNZ3OnQd8JepzbGIOJjWtwF7gPMpnB3UFLWpAfan9TwwGUDScGAM0FJcL9Gm//TTL/CWLVt4/PHHefHFF2lsbGTTpk1Mnlz4eA8++CCNjY00NjYyYsQIFi1aVN5nsIrr9VOOa6+AxWuh+RU49OvCz9ritYW62Wmi3LukZhRtfgp4JdUnShqW1t9PYXD7lxFxADgi6bI0PnEd0B48G4D2O6CuBp5O4xxPAfWSxqbB7vpU61/99At84MABJkyYwIgRIwCYMGEC73vf+zocc+aZZ/Ktb32L1157jZ///OdlvZ9VXvFTjv/60inZnz1WewWcfS4c3ge5ZQ4LO+2UO4bxzXR5qpHCP+RfS/UrgEZJP6cwgL0iIlrSvuuB/wM0UTjzeDLV7wHGS2qicBnr6wCp3a3AC2m5pei1+lc//ALX19ezb98+zj//fL785S/z3HPPlTxu2LBhXHzxxbzyyitlv6dVVuenHHce0+jS3s1w5ACMmQwN95x8SdSsysp6Wm1E/GUX9ceAkrP7REQDMLNE/SiwuIs29wL39r6nvdT5F7j28rJD413vehfbtm3jJz/5Cc888wzXXHMN3/zmN0seO1gf2zKY9fopx+2XPCd+AEaeA/Nu8GUpO+34m95dKf4FPue8wi/uDz7XJ3/1DRs2jHnz5vH3f//3rF69uuTMeSdOnGDnzp1+DtQA0+unHL/+YuFnbOQ5he32S6Kvv9iv/TU7FQ6MrvTTL/Du3bt59dVX/7i9Y8cOzjvvvA7HHD9+nBtvvJHJkydTV1dX1vtZZfX6Kcd/8rcnn0nUXlGom50mPIFSV9p/UZ+9/Z1a7RVlXx548803+epXv8qhQ4cYPnw406dPZ82aNVx99dV89rOfZcSIERw7doz58+f/cW5vG0I+/0S1e2DWJT/efJAbip/ZzHrPjzc3M7OyOTDMzCyTIRcYg/USXClD6bOaWf8bUoExcuRIDh48OCT+IY0IDh48yMiRI6vdFTMbJIbUXVI1NTXk83mGypNsR44cSU1NTc8HmpllMKQC44wzzqC2trba3TAzG5CG1CUpMzPrPQeGmZll4sAwM7NMBu03vSU1A7/up5efAGR8ZrVZSf4ZsnL118/QeRFRcsrSQRsY/UlSQ1dfnTfLwj9DVq5q/Az5kpSZmWXiwDAzs0wcGL2zptodsAHPP0NWror/DHkMw8zMMvEZhpmZZeLAMDOzTBwYvSRpsaSXJP1Bkm+PtEwkLZS0W1KTpK9Xuz828Ei6V9JvJe2q9Hs7MHpvF/AZYHO1O2IDg6RhwD8BfwZcCPyVpAur2ysbgNYCC6vxxg6MXoqIlyNid7X7YQPKHKApIn4ZEf8JPAQsqnKfbICJiM1ASzXe24FhVjmTgH1F2/lUMxsQhtR8GKdK0ibgvSV23RQR6yvdHxvwVKLm+9ptwHBgdCMi5le7Dzao5IHJRds1wP4q9cXslPmSlFnlvADMkFQr6UxgCbChyn0yy8yB0UuSPi0pD3wUeELSU9Xuk53eIqINWAk8BbwMPBIRL1W3VzbQSPq/wBbgAkl5Scsq9t5+NIiZmWXhMwwzM8vEgWFmZpk4MMzMLBMHhpmZZeLAMDOzTBwYZmaWiQPDzMwy+f/rtEoKpw2quwAAAABJRU5ErkJggg==\n", `````` Maximilian Schanner committed Nov 18, 2019 80 81 82 83 84 85 86 87 88 89 90 91 92 93 `````` "text/plain": [ "