{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Basic example cytometry workflow\n", "\n", "Welcome to `cytoflow`! I'm glad you're here. The following is a heavily commented workflow for importing a few tubes of cytometry data and doing some (very) basic analysis. The goal is to give you not only a taste of using the library for interactive work, but also some insight into the rationale for the way it's designed the way it is and the way it differs from existing projects.\n", "\n", "`cytoflow`'s goal is to enable *quantitative, reproducible* cytometry analysis. Reproducibility between cytometry experiments is poor, due in part to differences in analysis between operators; but if all your analysis is in a `Jupyter` notebook (like this one!), then sharing and reuse of workflows is much easier.\n", "\n", "Let's look at a very basic experiment, containing only two tubes. These two tubes contain cells that are expressing fluorescent proteins as the read-out of some cell state. We'll assume that these two tubes are identical, except that one has been induced with 1 µM of the small molecule inducer Doxycycline (aka 'Dox') and the other tube has been induced with 10 µM Dox.\n", "\n", "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Start by setting up Jupyter's plotting interface, then import the `cytoflow` module." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "# in some buggy versions of the Jupyter notebook, this needs to be in its OWN CELL.\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import cytoflow as flow\n", "\n", "# if your figures are too big or too small, you can scale them by changing matplotlib's DPI\n", "import matplotlib\n", "matplotlib.rc('figure', dpi = 160)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The central data structure in `cytoflow` is the `Experiment`, which is basically a `pandas.DataFrame` containing the events; its associated metadata (experimental conditions and the like); and some methods to manipulate them.\n", "\n", "You usually create an `Experiment` using an instance of the `ImportOp` class. Start by defining two tubes, including their experimental conditions (ie, how much Dox is in each); then give those tubes, and a `dict` specifying the experimental conditions' names and types, to `ImportOp`. Call the `apply()` function to get back the `Experiment` with all the data in it." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "tube1 = flow.Tube(file = 'data/RFP_Well_A3.fcs',\n", " conditions = {'Dox' : 10.0})\n", "tube2 = flow.Tube(file='data/CFP_Well_A4.fcs',\n", " conditions = {'Dox' : 1.0})\n", "\n", "import_op = flow.ImportOp(conditions = {'Dox' : 'float'},\n", " tubes = [tube1, tube2])\n", "\n", "ex = import_op.apply()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Once you have an `Experiment` instance, this is the last time you should ever think about tubes or wells. Rather, think of your experiment as a very large set of single-cell measurements, each of which has some metadata associated with it; in this case, how much Dox the cell was exposed to. `cytoflow` helps you focus your analysis on how those measurements change as the experimental conditions change, without worrying about what cells were in what tube.\n", "\n", "---\n", "Let's have a quick look at one of the fluorescence channels, `Y2-A`. Instantiate a `HistogramView` and tell it which channel we're looking at, then call `plot` and pass it the experiment containing the data. Remember, this is not a single tube, but rather all the data in the `Experiment`." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAArcAAAHRCAYAAABw2JGtAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAYmwAAGJsBSXWDlAAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzs3XtUVPe9///XDBeDggq0gXREIKaYpBTTXLBQvOV4YgIeKyRosFYjxnM0N7G0NG09xXjSNGsdIZgLSWNM1JhawUvj8YJNjsYrlRA5Km2i/qoDaAOxGgTROAMzvz/8zpTJEMF0Juju87GWq/jZ7/3Ze79XV9aLj589Y3I6nU4BAAAABmDu7RsAAAAAfIVwCwAAAMMg3AIAAMAwCLcAAAAwDMItAAAADINwCwAAAMMg3AIAAMAwCLcAAAAwDMItAAAADINwCwAAAMMg3AIAAMAwCLcAAAAwDMItAAAADINwCwAAAMMg3AIAAMAwCLcAAAAwDMItAAAADCOwt2/AKBwOhy5cuCBJCgwMlMlk6uU7AgAAuDo5nU61t7dLkkJCQmQ2+269lXDrIxcuXNBHH33U27cBAABwTbn55pvVr18/n83HtgQAAAAYBiu3PhIY+PdWBgQE6NZbb+3FuzGeDz/8UJJ0yy239PKdGAt99Q/66h/01T/oq3/Q18uz2+3uf/HunKF8gXDrI5332JpMJgUHB/fi3RiPq7/01bfoq3/QV/+gr/5BX/2Dvvacr99TYlsCAAAADINwCwAAAMMg3AIAAMAwCLcAAAAwDMItAAAADINwCwAAAMMg3AIAAMAwCLcAAAAwDMItAAAADINwCwAAAMMg3AIAAMAwCLcAAAAwDMItAAAADINwCwAAAMMg3PpB/anPevsWAAAA/ikRbv3AZnf29i0AAAD8Uwr01UTr1q3Tz372s8vWfPe739Xy5cvdf29ra1NpaakqKirU1NSkiIgIjR49Wnl5eYqIiOhyji1btmj58uU6fPiwzGazEhMTNXv2bKWkpHRZ39DQoJKSElVWVqq1tVWDBg3SxIkTlZubq6CgoC//wAAAALjq+Czc3nLLLXrssce6PLZ161YdPXpUaWlp7rELFy5o2rRpqq2t1bBhw3Tfffepvr5eZWVl2rNnj8rKyhQZGekxz5IlS7Ro0SKFh4crKytLJpNJmzdv1owZM1RcXKz09HSP+mPHjiknJ0dnz57V2LFjFRcXp+rqahUXF6umpkalpaUym1m8BgAAMAqfhttbbrnFa9xms2nlypUKDAxUZmame3zp0qWqra1VRkaGioqKZDKZJEnl5eWaP3++ioqK9Mwzz7jr6+rqtHjxYoWHh2v9+vW64YYbJEmzZs1SZmamnnrqKaWlpal///7ucwoLC9Xc3KzCwkJNmTJFkuR0OlVQUKANGzZow4YNmjhxoq9aAAAAgF7m92XLd999V83NzRo9erS+9rWvSboUMMvKyiRJ+fn57mArSdnZ2YqLi9PGjRt17tw59/i6detkt9s1depUd7CVpKioKE2bNk3Nzc3aunWre9xqtaqqqkoxMTHKyclxj5tMJvc1V69e7bfnBgAAwFfP7+F2zZo1ki6FVpe6ujo1NTUpPj5eFovF65wRI0bo4sWLOnjwoHts3759kuSxtcFl5MiRHjWSVFVVJUlKTU31CM+SFB0drYSEBB04cEA2m63bZ2hsbOz2z6lTp7qdBwAAAP7ls20JXTl58qQqKysVFRWlESNGuMetVqskKS4ursvzXONWq1Wpqake58TGxnrVu8bq6urcY8ePH+/2GocPH1ZDQ4OGDBly2ecYNWrUZY9LUkREhF588UVJUkdHu0cwxz/ObrdLEn31MfrqH/TVP+irf9BX/6Cvl+d0+u+Tpfy6crtu3To5HA5lZWUpICDAPd7a2ipJCg0N7fI817irTpJ7i0JYWJhXfb9+/RQQEKCWlpYe1Xe+RudzAAAAcG3z28qtw+HQunXrZDKZdP/993+pOT6/neBynE7nFdf39Bo7duzotqajo0ONjY2SpICAQCUlJfX4XtA912++9NW36Kt/0Ff/oK/+QV/9g75ens1m06FDh/wyt9/C7Z49e/TXv/5VKSkpiomJ8TjmWk3t/MJYZ67xziu7oaGh+vTTT9Xa2qrw8HCP+ra2NjkcDo9V2q5Wfz9/Tud7uZzo6Ohua2w2mzvcAgAAoHf4bVtCVy+SuXTeU9uVrvbkun7uvK/WxTXWeT9ufHx8t9cICAjwCt4AAAC4dvkl3H766af63//9Xw0cOFD/+q//6nU8NjZWUVFROn78uE6ePOl1fNeuXerTp4/HUv7w4cMlSbt37/aq37lzp0eNJCUnJ0uS9u7d67VpubGxUUeOHNGwYcMUHBz8JZ4QAAAAVyO/hNu3335bdrtd//Zv/9ZleDSZTJo0aZIkqaioyCN8lpeXy2q1avz48R7bErKyshQUFKSVK1fq448/do83NTVpxYoVGjBggMaNG+cej4uLU3JyshoaGrRq1Sr3uNPpdF9z8uTJPn1uAAAA9C6/7Lldu3atpK63JLjMnDlT27Zt06ZNm3TixAklJyervr5e77zzjiwWi/Lz8z3qY2NjNXfuXC1atEiZmZnKyMhwf/3umTNnVFxc7PHtZJK0YMEC5eTkaOHChaqsrFRsbKyqq6tVU1OjMWPGaMKECb5/eAAAAPQan4fbgwcP6siRI0pKStLQoUO/sC4kJEQrVqxQaWmpKioqtGzZMg0cOFDZ2dmaO3euIiMjvc6ZNWuWLBaLli1bprVr18psNisxMVFz5sxRSkqKV/2QIUO0Zs0alZSUaO/evdq+fbssFovmzZun3Nxcmc1+/w4LAAAAfIV8Hm6TkpJ0+PDhHtWGhoaqoKBABQUFPZ4/PT1d6enpPa4fPHiwiouLe1wPAACAaxdLlwAAADAMwi0AAAAMg3ALAAAAwyDcAgAAwDAItwAAADAMwi0AAAAMg3ALAAAAwyDcAgAAwDAItwAAADAMwi0AAAAMg3ALAAAAwyDcAgAAwDAItwAAADAMwi0AAAAMg3ALAAAAwyDcAgAAwDAItwAAADAMwi0AAAAMg3ALAAAAwyDcAgAAwDAItwAAADAMwi0AAAAMg3ALAAAAwyDcAgAAwDAItwAAADAMwi0AAAAMg3ALAAAAwyDcAgAAwDAItwAAADAMwi0AAAAMg3ALAAAAwyDcAgAAwDAItwAAADCMQF9P+O6772rVqlWqra3V+fPn9fWvf12JiYmaN2+e4uPj3XV2u12vv/66fv/73+vEiRMKCwtTSkqK8vLyFBMT0+XclZWVeuWVV1RbWyuHw6GhQ4dq+vTpuu+++7qsP336tBYvXqz33ntPZ86cUVRUlO6991498sgj6tevn68fHQAAAL3MZ+HW6XSqsLBQq1evVkxMjNLT0xUaGqpTp06purpaVqvVHW4dDocef/xxbd++XTfddJN++MMf6m9/+5u2bNmi3bt3a9WqVbrxxhs95t+8ebN+9KMfKSQkRBkZGQoLC9PWrVuVl5enkydP6uGHH/aoP336tCZNmqQTJ07oe9/7nm699VZ99NFHeu211/THP/5RK1euVEhIiK8eHwAAAFcBn4XbFStWaPXq1Zo8ebJ++ctfKjDQc+r29nb3z2+//ba2b9+uO++8U2+88YaCg4MlSRMmTNDDDz+sp556SsuXL3fXt7S0aMGCBQoKCtJbb72lW2+9VZL06KOPatKkSSopKdE999yjwYMHu89ZtGiRTpw4oYcfflg/+clP3OPPPfecXnnlFb3++ut69NFHffX4AAAAuAr4ZM/tZ599ppdeekkWi0X/+Z//6RVsJXmMrV69WpKUl5fnDraSlJaWptTUVP3xj3+U1Wp1j1dUVOjs2bMaP368O9hKUmhoqObMmSO73a61a9e6x8+dO6eNGzeqb9++XgF2zpw5CgsLU1lZmZxO5z/87AAAALh6+GTldvfu3Tp79qwyMzPldDr17rvv6tixY+rXr5+Sk5P1zW9+01178eJFHTx4UH379tXtt9/uNdfIkSO1Z88evf/++4qLi5Mk7du3T9Kl8Pt5I0aMkCRVVVW5xw4cOCCbzabk5GT17dvXo/66667TXXfdpW3btqm+vl6xsbHdPl9jY2O3NR0dHd3WAAAAwL98Em7/9Kc/SZKCgoI0ceJE/eUvf/E4npmZqf/6r/9SUFCQ6uvr1dHRoUGDBikgIMBrLlfY7Lxy6/q5qyA6cOBADRw4UHV1dV71rnD8ea5xq9Xao3A7atSobmsiIiL04osvSpI6Otp18ODBbs9Bz9ntdkmirz5GX/2DvvoHffUP+uof9PXy/Pmv5z7ZlnD69GlJ0uuvv66+ffuqvLxc+/fv11tvvaUbb7xR69ev1+LFiyVJra2tki5tKehKWFiYR510aZtB52NdndPS0uL+e3fXcI13vgYAAACufT5ZuXWl76CgIL300kuKioqSJN155516/vnnNWHCBK1cuVJPPPFEj+e60uubTKYrvt+enrNjx45uazo6OtzbFwICApWUlNTj+0H3XL/50lffoq/+QV/9g776B331D/p6eTabTYcOHfLL3D4Jt64V1cTERHewdfnmN7+pmJgY1dXV6S9/+Yu71rUa+3ldrdJ2t9J67tw5j/rurtHW1uYxb3eio6O7rbHZbD3amwsAAAD/8cm2BNfn115u24B06VMVBg8erICAAJ04caLLl7Bce2c775d1/dx5X61Lc3OzmpubPfbOdt5T25Xu9uQCAADg2uSTcPvd735XknTs2DGvY3a7XfX19ZIki8WiPn36KCkpSefPn9f+/fu96nfu3ClJuuuuu9xjw4cPl3TpUxk+b9euXZKk5ORk99iwYcMUHBys/fv36/z58x71n332md5//31FR0d7fC4uAAAArn0+CbcxMTEaOXKk6urqVF5e7nHs1VdfVUtLi+68805df/31kqTJkydLkkpKSmSz2dy1u3fv1t69e/Xd737XY1X13nvv1YABA7Rx40Z9+OGH7vFz587p5ZdfVlBQkO6//373eGhoqMaPH6/z58/rpZde8rifl19+Wa2trZo0adIV7dMFAADA1c9n31BWWFioBx98UPPnz9e7776rG2+8UX/+85/1xz/+UQMHDtTChQvdtd///vdVUVGh9957T5mZmRo1apROnz6tzZs3q3///vrlL3/pMXf//v1VWFio/Px8TZkyRePHj1doaKj+8Ic/6MSJE/rxj3/stQqbn5+vffv26bXXXtOHH36ob33rW/rwww+1a9cuJSYmKjc311ePDgAAgKuEz8LtoEGDtHbtWr3wwgvasWOH9uzZo4EDByorK0uPPfaYLBaLu9ZsNuuFF17Q66+/rvXr12vFihUKDQ3VPffco7y8PMXExHjNn5GRoYiICL388svatGmTHA6HEhISlJ+fr/T0dK/6r33tayovL9fixYu1bds2VVVV6frrr9fMmTP16KOPKiQkxFePDgAAgKuEz8KtJEVFRenpp5/uUW1wcLBmz56t2bNn93j+lJQUpaSk9Lg+MjJSCxcu9Fg1BgAAgHH5ZM8tAAAAcDUg3AIAAMAwCLcAAAAwDMItAAAADINwCwAAAMMg3AIAAMAwCLcAAAAwDMItAAAADINwCwAAAMMg3AIAAMAwCLcAAAAwDMItAAAADINwCwAAAMMg3AIAAMAwCLcAAAAwDMItAAAADINwCwAAAMMg3AIAAMAwCLcAAAAwDMItAAAADINwCwAAAMMg3AIAAMAwCLcAAAAwDMItAAAADINwCwAAAMMg3AIAAMAwCLcAAAAwDMItAAAADINwCwAAAMMg3AIAAMAwCLcAAAAwDMItAAAADINwCwAAAMMg3AIAAMAwAn052d13362TJ092eSwtLU1Lly71GGtra1NpaakqKirU1NSkiIgIjR49Wnl5eYqIiOhyni1btmj58uU6fPiwzGazEhMTNXv2bKWkpHRZ39DQoJKSElVW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FrdEREREZDNY3BIRERGRzWBxS0REREQ2g8UtEREREdkMFrdEREREZDNY3BIRERGRzWBxS0REREQ2g8UtEREREdkMFrdEREREZDNY3BIRdQJz586FWq3Gyy+/3GJcYmIi1Go1YmJioNfrodPpkJWVhddffx2RkZEIDAzE4MGDERoaiuXLl+PUqVPt0r+wsDCo1WrceeedaGxsbJd1EhF1BDshhLjanSAiutadOXMGEydOxLlz57Bt2zYEBgYaxRQVFWHSpEnQ6/XYs2cPfHx8kJ2djenTpwMA3N3dMWDAAADA0aNHcfr0abi4uGDz5s0YMmSI1X07evQooqOjldeJiYm46667rF4fEVFH4plbIqJO4IYbbsDixYshhMCSJUtQV1dnsFxur6+vx9NPPw0fHx8AgJ2dHe677z4kJyfjm2++wYYNG7Bhwwakp6cjMjISGo0G8+fPR0NDg9V9S0lJAQC4ubkBAPbs2WP1uoiIOhqLWyKiTmLSpEkIDg5GaWkp1q5da7Bsx44d+OmnnzBw4EDMnDlTaR81ahTWrl0LPz8/g3hHR0e8/PLLcHFxQXl5OfLy8qzqk1arxf79+wEA77zzDuzt7fH1119Do9FYtT4ioo7G4paIqBN59dVX4eLigg8++EApSP/66y+sWrUKXbt2xcqVK9G1a1ez1tW9e3d4eXkBACorK63qz7fffovq6mr4+flh5MiRGDVqFOrr65GWlmbV+oiIOhqLWyKiTqRPnz5YuHAh9Ho9Fi9eDK1Wi6VLl6K2thYzZ85U5tSao7GxESdPngQAXH/99Vb1R56CMHnyZABAREQEgMtTFYiIOhsWt0REnUx0dDRGjx6NP//8E48++iiysrJw2223Yfbs2RatJzU1FX///Td69+6N4cOHW9yPv//+G5mZmXBwcMB9990HAAgJCYGzszNyc3NRUlJi8TqJiDoai1siok7otddeg0qlws8//wx7e3usXLkS3bp1M/v95eXleOuttwAAzz33nEXvle3btw86nQ5jx45Fr169AFya6hAWFgaAF5YRUefE4paIqBPq168fYmNjAVw6W3rlBWMtOX/+PGbPno3q6mqMHz8eMTExVvXhyikJMvl1amoqeDdJIupszLsqgYiI/nUqlcrguznq6+sxa9YsHDt2DCNHjsSqVauMYn766Sfs2rXLqH3mzJnw9vYGABQWFuL333+Hq6sr7r77boO4ESNGwMPDA2VlZcjJyUFAQIAFoyIi6lgsbomIbIROp8MzzzyDw4cPY+jQodi4caPJ6QilpaUmLwiLiIhQilt5uV6vx+OPP24Ue+HCBSWOxS0RdSYsbomIbIBer8cLL7yAjIwMDBgwAImJiejRo4fJ2MjISERGRja7rsbGRuzbtw8AUFNTg9zc3GZjv/zySyxbtgxOTk5tGwARUTthcUtE9B8nP70sLS0N3t7eSEpKwnXXXWf1+rKyslBVVQUPDw+kp6c3GzdlyhTk5ubiwIEDeOCBB6zeHhFRe+IFZURE/3Fvvvkmdu/eDQ8PD2zZsgW9e/du0/pSU1MBABMnTmwxLjw8HADvmkBEnQvP3BIR/Yelp6dj69atAICbb77Z6LG9spCQEISEhLS6Po1Gg6+//hoAcP/997cYGxYWhpUrV+LgwYOoqKhA3759Les8EVEHYHFLRPQfVlNTo/z70KFDzca5u7ubVdympaXh4sWLuP322+Hj49NibO/evTFmzBhkZGRg7969ePLJJ83vOBFRB7ETvEkhEREREdkIzrklIiIiIpvB4paIiIiIbAaLWyIiIiKyGSxuiYiIiMhmsLglIiIiIpvB4paIiIiIbAaLWyIiIiKyGSxuiYiIiMhmsLglIiIiIpvB4paIiIiIbAaLWyIiIiKyGSxuiYiIiMhmsLglIiIiIpvB4paIiIiIbAaLWyIiIiKyGSxuiYiIiMhmsLglIiIiIpvB4paIiIiIbMb/AKzyO3jkkN18AAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "hist = flow.HistogramView()\n", "hist.channel = 'Y2-A'\n", "hist.plot(ex)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Hmmm. This plot is hard to interpret because most of the data is clustered around 0, in the linear range of the detector's response. Let's re-plot using a different scale. My favorite is `logicle`, which has a linear response around 0 and a log range elsewhere. We specify the plot scale by setting the `scale` attribute of `HistogramView` to `logicle`; other options are `log` and `linear`.\n", "\n", "The cell below also demonstrates a different way to parameterize the `HistogramView` instance, by passing parameters to the constructor instead of setting the values of the instance's attributes after we make it. Either way is correct." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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fAi3AAAAMIbxa24BAABQeTBzCwAAAGMQbgEAAGAMwi0AAACMQbgFAACAMQi3AAAAMAbhFgAAAMYg3AIAAMAYhFuDvP/++4qPj1fLli3Vrl07jRo1SllZWZ7uFlyA7zW8xcKFCxUbG6uWLVuqdevWGjRokL799ltPdwuVQGJiopo2baqlS5d6uivwMoRbg+zevVsDBw7UqlWr9MEHH+jSpUsaPny4bty44emulerw4cMaMWKEoqKi9MADD+jJJ5/U8uXLxbNFbq0ifq9hpl/96lcaO3as1q1bp+XLl6tBgwZ69tlndfHiRU93DQbbunWrvvnmG9WtW9fTXYEX4gllBjt16pS6dOmidevWqVmzZp7uTgl79+7VkCFDZLFY9Pjjjys0NFTbtm3T8ePHNWDAACUmJnq6ixWGt3+vUXlcvnxZrVq10pIlSxQVFeXp7sBAP/zwg3r16qX58+dr5MiRGjp0qJ5++mlPdwtepKqnO1CZrFu3Tvv27VN6erqOHz+ugoICvf3224qPjy/1mMOHD2vmzJnav3+/rl+/roYNG6pfv37q27evfHx8bvl6ly9fliQFBQU59Tyc4caNG3r99deVn5+v+fPnq1OnTpKkUaNGadiwYVq2bJliYmL08MMPe7int4fvNbyFO8difn6+VqxYodq1a6tJkyauOB14OXeMt9///vcaOHCgmjZt6spTQQVGuHWjGTNm6PTp0woODlbdunV1+vTpW9aXNrOZmJioY8eO3XJms7CwUJMnT1bHjh1Vr149Z5/KL5aamqqMjAy1adPGFmwlyd/fXwkJCerfv79WrFhRYcMt32t4C3eMxb1792r48OH68ccfdeedd2rBggX8oFVJuXq8LV26VFevXtXQoUNdeRqo6Cxwmx07dliysrIsFovF8v7771uaNGliWb16td3agoICS9euXS1NmjSxfPXVV7bt169ftwwcONDSpEkTy+7du+0eW1RUZBk7dqylS5culh9++MH5J+IE06ZNszRp0sTy/vvvl9hXVFRkadWqlaVDhw4e6Jlz8L2Gt3DHWLx27ZolIyPDcuDAAcvYsWMtnTt3tpw7d841JwSv5srx9re//c0SHR1tOXXqlG3bo48+almyZImLzgYVFReUuVG7du0UFhbmUG1ZM5uStGLFihLHWSwWJSYmKjU1VQsXLlSdOnWc03knO3HihCQp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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "hist = flow.HistogramView(channel = 'Y2-A',\n", " scale = 'logicle')\n", "hist.plot(ex)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Ah, much better. There is clearly a population of cells around 0 and a population of cells around about 5000. But! This is the entire `Experiment` -- is is one of the populations from the low-Dox tube and the other population from the high-Dox tube?\n", "\n", "Let's see if the histogram is different for the two different concentrations of inducer. `CytoFlow`'s plotting takes inspiration from Trellis plots (eg the lattice package in R): to split the data into subsets, you tell the plotting module which metadata \"facet\" you want to plot in the X, Y and color (hue) axes.\n", "\n", "This time, we tell `HistogramView` to make a separate plot for each different value of Dox and stack them on top of eachother by saying `yfacet = 'Dox'`; if we wanted the plots side-by-side, we would have said `xfacet = 'Dox'`. \n", "\n", "Also note that this time, we don't keep around the `HistogramView` object; if we don't need to re-use it, we can just call `plot` right after the constructor." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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AAAAeBm3h9vY2FgdOnTIpdrg4GBlZ2crOzvb5fGTk5OVnJx8o9MDAACAgTX743cBAACAlkK4BQAAgGEQbgEAAGAYzfaEMsBTVhUedNo+KqlXC88EAAC0NFZuAQAAYBiEWwAAABgG4RYAAACGQbgFAACAYRBuAQAAYBiEWwAAABgG4RYAAACGQbgFAACAYRBuAQAAYBiEWwAAABgG4RYAAACGQbgFAACAYRBuAQAAYBiEWwAAABgG4RYAAACGQbgFAACAYRBuAQAAYBiEWwAAABgG4RYAAACGQbgFAACAYRBuAQAAYBiEWwAAABgG4RYAAACGQbgFAACAYRBuAQAAYBiEWwAAABgG4RYAAACG0c7TEwBayqrCg07bRyX1auGZAACA5sLKLQAAAAyDcAsAAADDINwCAADAMAi3AAAAMAzCLQAAAAyDcAsAAADDcPutwD766CP97ne/U2lpqS5duqSbb75ZMTEx+o//+A91797dXldbW6t33nlH77//vk6cOKGOHTsqISFBkydPVrdu3ZyOvXPnTi1atEilpaWqr69Xz5499dOf/lQPP/ywu08DXuB6t/YCAABtl9vCrdVq1bRp07R69Wp169ZNycnJCg4O1tmzZ7V7926ZTCZ7uK2vr9ezzz6rP//5z7rzzjv1k5/8RP/7v/+rTZs2afv27frd736n22+/3WH8jRs36rnnnlNgYKBSUlLUsWNHFRYWavLkyTp58qTGjRvnrlMBAACAl3JbuF2+fLlWr16txx57TL/5zW/Urp3j0FeuXLF//8EHH+jPf/6z+vXrp3fffVcBAQGSpB//+McaN26cpk+frmXLltnrL168qBdeeEH+/v567733dPfdd0uSfvazn2nkyJF6/fXX9dBDD+m2225z1+kAAADAC7llz+2XX36pN998U5GRkfr1r3/dINhKcmhbvXq1JGny5Mn2YCtJiYmJGjBggP7617/KZDLZ2wsKCvTFF19o2LBh9mArScHBwZo4caJqa2u1Zs0ad5wKAAAAvJhbVm63b9+uL774QqmpqbJarfroo4/02WefKSgoSHFxcbrrrrvstZcvX1ZxcbE6dOig7373uw3GGjRokHbs2KG//e1vio6OliTt2rVL0tXw+1UDBw6UJH3yyScuz7eioqLRmrq6OpfHAwAAQOvglnC7b98+SZK/v7+GDx+uo0ePOhxP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C7f79+/XhAkTFBcXp3vvvVfDhw/X73//e1mtVk9PDQAAAB7mVbcC2717t8aMGSOr1aof/vCHioiI0NatWzVt2jQdOnRI06ZN8/QUgVaFW4QBANoarwm3V65c0fPPPy+LxaK3335bgwcPliRlZmZq3LhxWrVqlZKTk9W/f38PzxQAAACe4jXhdteuXTKZTIqPj7cHW0kKCAjQ5MmT9cQTT2j16tWEWwAAvsb1/qJzPfylB97Ga8LtJ598IklKTExscOy+++5Tx44d7TWNqaioaLTmypUr9u/9fKySb72LM5UC2vlIkto1oY8R8T78S2t7LywWi6engFbC9nkFrglH7xf902n78MF3tvBMbtz1zqFdEz9tc71r45u+R65ce0b47wDnamtr7d+7+3NTPlYv+STWz3/+cxUWFuqNN95QUlJSg+NpaWnat2+f/v73vyswMPBrx+rZs2ejr3f77bfr5ZdfvuH5AgAAoHG9evVSUFCQ28bzmrslVFVVSZI6duzo9LitvbKyssXmBAAAgNbFa7YlNMa2AO3j49NobVFRUaM19fX1unLlisLDw9WuXTuXxpWks2fP6tFHH5Uk/eEPf9DNN98sSRoxYoQkac2aNQ7112t3d5+WPna99+Gbvt6N9vVkn8bei9assf8W3va67hj3Rsdoaj9X6r9pjTdfm9dq6evU3a/3Tca7kb6u9nHHNXij/x/R2rXkNefO12pN15rVarVvAW3sL+5N5TXhNjg4WNL1V2ZtK7u2uq/TpUsX903sK/z8/HTu3Dn79wEBAZKkL774QpLs/7a5Xru7+7T0seu9D9/09W60ryf7NPZetGaN/bfwttd1x7g3OkZT+7lS/01rvPnavFZLX6fufr1vMt6N9HW1jzuuwRv9/4jWriWvOXe+Vmu71tq3b9/kebjCa7YldO/eXZJUVlbW4JjVatXx48cVERHh9vQPAAAA7+E14TYuLk6StH379gbH9u7dq4sXL9prAAAA0DZ5TbiNj49XdHS0du3a5bBntra2Vq+//rok6bHHHvPU9AAAANAKeM2e23bt2unll1/W008/rZ/97Gd6+OGHdcstt2jr1q06fPiwnnjiCR7gAAAA0MZ5zX1ubfbt26f58+drz549unz5sqKjo/XEE0/o8ccfd/mOBs2poqLC/gS1oqKiZv3wWmvG+/AvvBdorbg24Slce2hO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atvaFai+FBoaKun8frhiPw72dkbWWd5z+J9LOTctFoseffRRffnll+rdu7diY2P16quv6lvf+lb7DBqGwV/44G2dOtzefvvtrV7RebE//vGPuvPOO70yFlczmgcPHvTKa3nTgAEDJEnl5eXN1tlsNn322WeKioriA0vGec9hPK7OzWeeecZXw0En485f+LZv395ew4Ef6tThduzYsTpx4oTb7fv373/Jr9VZZjTj4+P10ksvqbi4WD/+8Y+d1u3du1enT592uoDAyDrLew7/w7kJX+L8g7d16nD72GOPtdtrdZYZzYSEBMXExKikpERFRUWOIGu1WvXss89Kku655x5fDrHddJb3HP6HcxO+xPkHb+NWYO3E/njK4uLiZuvsM5pGeIRlly5d9PTTT6tr1656+OGH9b//+7965plnlJaWppKSEk2aNMlvH+DQVp3lPYf/4dyEL3H+wdsIt+3kqzOadkac0bzlllv02muvKSkpSe+8845WrlypgIAAPfnkk1/7RC6j6UzvOfwL5yZ8ifMP3hZgs1duo80KCgr0wQcfSJIOHTqkjz/+WDfffLPj9iZDhgxRenq6o/0///lPPfjgg7LZbBo3bpz69OmjHTt26NChQ5o0aZKefPJJX+wG2oD3HB0V5yZ8ifMPHQnh9ht4/PHHtX79+hbXp6amat68eU7LPv74Yz3//PP64IMPVFdXp5iYGE2aNEkTJ07sFPd+9Xe85+ioODfhS5x/6EgItwAAADAMam4BAABgGIRbAAAAGAbhFgAAAIZBuAUAAIBhEG4BAABgGIRbAAAAGAbhFgAAAIZBuAUAAIBhEG4BAABgGIRbAAAAGAbhFgAAAIZBuAUAAIBhEG4BAABgGIRbAGhHP/vZzzRo0CDNnj37a9stWbJEgwYN0oQJE9TU1CSr1ari4mI9/fTTSktLU0JCgq6//nqNGTNGTz31lI4ePeqR8Y0bN06DBg1SUlKSGhsbPdInALSnAJvNZvP1IACgs/jiiy+UkpKiU6dOafny5UpISGjW5siRI7rzzjvV1NSkN954Q9dcc43effddTZkyRZJkMpk0ePBgSVJpaak+//xzhYWFadmyZbrhhhsueWylpaVKT093fL9kyRKNHDnykvsDAF9g5hYA2tHll1+uJ554QjabTbNmzVJtba3Tevvyuro6Pfzww7rmmmskSQEBAUpOTlZBQYG2b9+uF154QS+88ILefPNNpaWl6cyZM3r00UfV0NBwyWNbv369JKlPnz6SpDfeeOOS+wIAXyHcAkA7u/POO3XbbbepoqJCCxYscFq3evVq7d69W9ddd50yMzMdyxMTE7VgwQLFxcU5te/WrZtmz56tsLAwVVZWau/evZc0pvr6em3evFmS9MwzzygoKEhvvfWWzpw5c0n9AYCvEG4BwAfmzJmjsLAwrVy50hFI//Of/ygnJ0ddunTR3Llz1aVLF7f6uuyyyxQTEyNJslgslzSet99+WydPnlRcXJxuvfVWJSYmqq6uTlu2bLmk/gDAVwi3AOADUVFReuyxx9TU1KQnnnhC9fX1+vWvf61z584pMzPTUVPrjsbGRlVVVUmSIiMjL2k89hKEH/7wh5Kk1NRUSRdKFQDAXxBuAcBH0tPTNWzYMH366ae6//77VVxcrG9/+9v6yU9+0qZ+NmzYoOPHjysiIkJDhgxp8ziOHz+unTt3Kjg4WMnJyZKk0aNHKzQ0VHv27FF5eXmb+wQAXyHcAoAP/fa3v1X37t314YcfKigoSHPnzlXXrl3d3r6yslJ/+MMfJEk///nP27St3d/+9jdZrVaNGDFC4eHhks6XOowbN04SF5YB8C+EWwDwoauuukoTJ06UdH629KsXjH2dmpoa/eQnP9HJkyc1duxYTZgw4ZLG8NWSBDv79xs2bBB3jQTgL9y7WgEA4DXdu3d3+q876urqNH36dB08eFC33nqrcnJymrXZvXu3Xn/99WbLMzMz9a1vfUuSdOjQIe3fv1+9e/fWqFGjnNoNHTpU/7+9u2WJZo/jOPw9UQTDJlEmadBosVi3iA/gNpPNZrQaxVdgMKhvwKCGRVzDgiAq7IvQIthWBEHcc5IWH+4nbg/757rSwPz4z0z7MMxDVVW5vb3N9fV1pqenf+GqAP4f4hagzzw/P2dtbS1XV1eZmprK9vb2h48j3NzcfPhC2NLS0lvcvu7v9XpZWVl5N/v4+Pg2J26BfiBuAfpIr9fL+vp62u12Jicns7Ozk8HBwQ9nG41GGo3Gp2u9vLzk+Pg4SdLtdtPpdD6dPTk5ycbGRgYGBv7sAgD+MnEL0Cde/17WbDYzNjaW3d3dDA0N/fZ65+fnub+/T1VVabVan84tLy+n0+nk9PQ0i4uLv308gO/ghTKAPrG1tZWDg4NUVZW9vb3UarU/Wu/w8DBJMjc39+Xc/Px8El9NAPqDO7cAfaDVamV/fz9JMjIy8u63va/q9Xrq9foP13t4eMjZ2VmSZGFh4cvZ2dnZbG5u5uLiInd3dxkeHv61kwf4RuIWoA90u9237cvLy0/nRkdHfypum81mnp6eMjExkfHx8S9na7VaZmZm0m63c3R0lNXV1Z8/cYBv9s+/Pl4IAEAhPHMLAEAxxC0AAMUQtwAAFEPcAgBQDHELAEAxxC0AAMUQtwAAFEPcAgBQDHELAEAxxC0AAMUQtwAAFEPcAgBQDHELAEAxxC0AAMUQtwAAFEPcAgBQDHELAEAxxC0AAMX4D18PpdPTTikCAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "flow.HistogramView(channel = 'Y2-A',\n", " scale = 'logicle',\n", " yfacet = 'Dox').plot(ex)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Indeed, the two tubes have dramatically different histograms. We could also plot them on top of eachother with different colors, by using `huefacet` instead of `yfacet`." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "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nlcRbgEAALqZxYsXq6KiQmFhYRo4cKAqKirarD179qzS09NVUlKi66+/XuPHj1dZWZlycnK0d+9e5eTkKCIiokPHff/99zV16lTZ7XbdfvvtioyMVEFBgebOnavDhw9r7ty5njpFr2HNLQAAQDczb9487dy5U++9954mT558wdpVq1appKREycnJWr9+vX71q19pyZIl+sMf/qDy8nJlZ2d36JhNTU168skn1dDQoBdeeEELFizQ448/rg0bNig+Pl7r1q3TP//5T0+cnlcRbgEAALqZkSNHymKxtFtnt9uVk5MjScrKynJZNpCWlqbo6Ght2bJFtbW17fZVWFgoq9Wq+Ph4jRkzxtkeHByszMxMSdL69d13vbMD4RYAAMBPlZaWymazaciQIW7D8KhRo1RfX6/i4uJ2+9q3b58kKTExsdW2G2+8Uf369XPWdGeEWwAAAD9ltVolSdHR0W63O9oddRdy7NgxSVJUVFSrbSaTSVdeeaVsNpvOnj17MUPtMoRbAAAAP1VTUyNJMpvNbrc72h11F+JYutCvXz+32x3tHenLl3haArzm7Q9OSZJKjrs+UovHaAEA0LU88Qgvu93usb68iZlbAAAAP+WYTW3rhjFHe1szu+drb5a3M335EuEWAADAT7W3pra9NbnnGzJkiKRzN6l9k91u12effabIyEj17t37YobaZQi3AAAAfioqKkqRkZE6duyY2xc97N69WyEhIYqNjW23r7i4OEnSnj17Wm07cOCAqqurnTXdGeEWAADAT5lMJk2cOFGSlJ2d7VwXK0m5ubmyWq2aMGGCy1KCxsZGffLJJyorK3PpKz4+XtHR0SosLNSuXbtc6p977jlJ0qRJk7x5Oh7BDWUAAADdTG5urvbv3y9JOnLkiLPN8ZzZm266SWlpaZKkadOmaefOndq6davKy8sVFxensrIybd++XRaLRVlZWS5922w2JSUlyWKxaOfOnc72Xr16ad68eXrwwQf18MMPa/z48Ro4cKAKCgp05MgR3XvvvRoxYkRXnP63QrgFAAB+JXx09589/Lb279+vTZs2ubQVFRWpqKjI+XdHuO3du7fWrFmjZcuWKS8vT6tXr1ZoaKjS0tKUkZGhiIiIDh93xIgReuONN/T888/rH//4h+rr6xUdHa3f/e537b4GuLsg3AIAAHQz8+fP1/z58ztcbzabNWvW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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "flow.HistogramView(channel = \"Y2-A\",\n", " scale = \"logicle\",\n", " huefacet = 'Dox').plot(ex)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So, there's a clear difference between these tubes: one has a substantial population above about ~200 in the Y2-A, and the other doesn't. What's the proportion of \"high\" cells? Let's gate out the \"high\" population using a `ThresholdOp`." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "thresh = flow.ThresholdOp(name = \"T\",\n", " channel = \"Y2-A\",\n", " threshold = 200)\n", "\n", "ex2 = thresh.apply(ex)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Two important things to note here: first, an `Operation` (such as `ThresholdOp`) *does not operate in place*; instead, you create a `ThresholdOp` object, then call `apply()` to run it on an `Experiment`. The `apply()` function returns a new `Experiment`.\n", "\n", "Second, a gate *does not remove events*; it simply *adds additional metadata* to the events already there. You can see this if we look at the underlying `pandas.DataFrame` for `ex` and `ex2`:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " B1-A B1-H B1-W Dox FSC-A FSC-H \\\n", "0 -127.094002 257.718353 -63040.300781 10.0 459.962982 437.354553 \n", "1 -70.234840 255.798340 -34034.042969 10.0 -267.174652 365.354553 \n", "2 -96.471756 313.398346 -41931.687500 10.0 -201.582336 501.354553 \n", "3 18.831570 277.669250 8514.489258 10.0 291.259888 447.029755 \n", "4 100.882095 255.756256 51291.074219 10.0 -397.168579 354.565308 \n", "\n", " FSC-W HDR-T SSC-A SSC-H SSC-W \\\n", "0 137847.578125 2.018511 840.091370 747.917847 147225.328125 \n", "1 -95849.679688 27.451754 3476.902344 3163.917969 144038.046875 \n", "2 -52700.828125 32.043865 480.270691 507.917877 123937.437500 \n", "3 85399.273438 79.327492 8026.275879 6741.838867 156043.484375 \n", "4 -146821.125000 79.731194 7453.750488 609.884277 262143.968750 \n", "\n", " V2-A V2-H V2-W Y2-A Y2-H \\\n", "0 41.593452 240.153854 22701.017578 109.946274 153.630051 \n", "1 103.437637 336.153870 40332.058594 5554.108398 4273.629883 \n", "2 -271.375580 256.153870 -138860.828125 81.835281 121.630051 \n", "3 -26.212378 207.677841 -16543.453125 -54.120304 98.122017 \n", "4 44.559933 216.036865 27035.013672 -10.542595 127.326027 \n", "\n", " Y2-W \n", "0 93802.468750 \n", "1 170344.203125 \n", "2 88188.023438 \n", "3 -72294.242188 \n", "4 -10852.761719 \n", "----\n", " B1-A B1-H B1-W Dox FSC-A FSC-H \\\n", "0 -127.094002 257.718353 -63040.300781 10.0 459.962982 437.354553 \n", "1 -70.234840 255.798340 -34034.042969 10.0 -267.174652 365.354553 \n", "2 -96.471756 313.398346 -41931.687500 10.0 -201.582336 501.354553 \n", "3 18.831570 277.669250 8514.489258 10.0 291.259888 447.029755 \n", "4 100.882095 255.756256 51291.074219 10.0 -397.168579 354.565308 \n", "\n", " FSC-W HDR-T SSC-A SSC-H SSC-W \\\n", "0 137847.578125 2.018511 840.091370 747.917847 147225.328125 \n", "1 -95849.679688 27.451754 3476.902344 3163.917969 144038.046875 \n", "2 -52700.828125 32.043865 480.270691 507.917877 123937.437500 \n", "3 85399.273438 79.327492 8026.275879 6741.838867 156043.484375 \n", "4 -146821.125000 79.731194 7453.750488 609.884277 262143.968750 \n", "\n", " V2-A V2-H V2-W Y2-A Y2-H \\\n", "0 41.593452 240.153854 22701.017578 109.946274 153.630051 \n", "1 103.437637 336.153870 40332.058594 5554.108398 4273.629883 \n", "2 -271.375580 256.153870 -138860.828125 81.835281 121.630051 \n", "3 -26.212378 207.677841 -16543.453125 -54.120304 98.122017 \n", "4 44.559933 216.036865 27035.013672 -10.542595 127.326027 \n", "\n", " Y2-W T \n", "0 93802.468750 False \n", "1 170344.203125 True \n", "2 88188.023438 False \n", "3 -72294.242188 False \n", "4 -10852.761719 False \n" ] } ], "source": [ "print(ex.data.head())\n", "print(\"----\")\n", "print(ex2.data.head())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In ex2, the `ThresholdOp` added a new column, named `T`, which has the same name as the `ThresholdOp`'s `name` attribute. It is `True` if the `Y2-A` value is greater than 200, and `False` otherwise. The `T` column is now a piece metadata *just like the Dox concentration* that we can use to facet the plots. For example, the following plots different `Dox` concentrations in separate plots stacked on top of eachother (`yfacet = \"Dox\"`), and on each of these plots uses separate colors for the \"low\" and \"high\" populations (`huefacet = 'T'`):" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAArcAAAO0CAYAAAC/fh5tAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAYmwAAGJsBSXWDlAAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzs3XtclHXe//H3gEjIiIK1aJOBncwisjQMbzxsWRTYAQzbzCVds/ReDTe6be9d71xr17VNNNPMzTQ85K64am1qkGk3HrYsOyxQnrYcSJPRW0UQieEwvz/8zazTjAI1MHDxej4ePILv9bm+873G60Hv+fK9rsvkcDgcAgAAAAwgwN8DAAAAAHyFcAsAAADDINwCAADAMAi3AAAAMAzCLQAAAAyDcAsAAADDINwCAADAMAi3AAAAMAzCLQAAAAyDcAsAAADDINwCAADAMAi3AAAAMAzCLQAAAAyDcAsAAADDINwCAADAMDr4ewAA4E+33XabDh8+7Po5ICBAoaGh6tKli6655hr169dP999/vy6++GI/jtK/zpw5o82bN6uwsFBFRUX68ssvVV1drZSUFM2aNesH91tZWalFixYpNzdXpaWl6tKliwYOHKjJkyerZ8+ePjwCAO2JyeFwOPw9CADwF2e4TUhI0CWXXCLpbJg7evSoK8QFBQVpwoQJmjhxogIDA/084pa3Z88e3X///R7tPybcVlRUaNSoUdq/f78sFotiY2NVUlKiL774QmazWW+88YauvfbaHzt0AO0QM7cAIOmxxx7TgAED3NrOnDmjnJwczZ07V/Pnz9fRo0f17LPP+mmE/hMaGqoRI0YoJiZGMTExKiws/NHvw/PPP6/9+/frpz/9qV566SV17NhRkvTnP/9Zc+bM0VNPPaW///3vCghg9RyApuG3BgCcR6dOnTRmzBgtWrRIgYGBWr16tXbs2OHvYbW4yy+/XDNnztSoUaMUGxvrCqI/1IkTJ7R+/Xp16NBBzz77rFt/jz32mK655hodOHBA77///o8dOoB2iHALAA2Ij49XUlKSJCk7O9tju91u15IlS5SSkqKbbrpJffv2VUpKipYuXSq73e5Wu3//fsXGxqpv37766quvPPpasWKFevfurfvuu89jX6PIz89XbW2t+vXrp5/85Cdu20wmkxITEyVJW7Zs8cfwALRxhFsAaIThw4dLknbv3q2amhpXe1VVldLT0/WnP/1J33zzjQYOHKj/+I//0DfffKPnn39eY8aM0Xfffeeqv+aaa/T000+rqqpKTz75pFuA3bdvn1544QWFhIRozpw5P3qGtLXau3evJOn666/3ut3Z7qwDgKZgzS0ANEKfPn0knQ2zhw8fVnR0tCRp7ty5+uyzz3TDDTdo8eLFCg8Pl3T2T++PPvqoPvnkE82bN09PP/20q6+HH35YO3fu1JYtW/TCCy/ot7/9rb777jtlZmaqurpazz33nK688spGj+37d3xojEmTJmny5MlN2sdXvv32W0lS9+7dvW53tjf1mABAItwCQKM4Q6sknTp1StLZoLtmzRpJ0u9+9zu3moiICP3ud79TWlqa/vrXvyojI0MXXXSRa/sf/vAHFRUVacWKFUpISNDWrVt14MABJSYmauTIkU0aW2Jiok6ePNmkfZxh3R8qKyslnV3T7I2z3VkHAE1BuAWARjj3rokmk0mS9MUXX+jMmTO6+uqrFRMT47FPbGysrrzySn311VcqKipS//79XdvCw8P1wgsvaMyYMXryySd1+vRp9ejRQ88991yTx3burHBb0NAdKLlDJYAfgzW3ANAI586MdunSRZJks9kkSZdddtl593M+jODo0aMe2wYMGKBRo0bp9OnTkqQ//elPrr6NLDQ0VNLZW61541yj7KwDgKZg5hYAGuHLL7+UdPZP5haLxSd9nj59Wvn5+a6fCwsLFRcX1+R+nn/++SYvSxg2bJiGDRvW5NfyhUsvvVSSVFpa6nW7s91X7zOA9oVwCwCNsHHjRknSLbfcog4dzv7qjIyMlCQdOnTovPs5t33/llfS2XW633zzje644w598MEHmjt3rgYMGOB1icOF5OXlNfniK4vF4rdw61zv6/zA8H1ffPGFJKl3794tNiYAxkG4BYAGfPDBB9q0aZMkaezYsa7266+/XiEhITpw4IC+/PJLXXfddW77FRYW6l//+pc6derkEVjffPNNvf322+rVq5deeOEFvfvuu5o6daoyMzO1fv36815s5c3WrVt/xNG1vMGDByswMFCffPKJjh075nrssXR2vW1ubq4k6fbbb/fXEAG0Yay5BYDzqKqqUnZ2tiZMmKD6+nqNGjVK8fHxru0hISFKS0uTJM2YMcN1FwXp7BrdGTNmSJJ+9rOf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7+kvf/mLioqKdObMGV1yySWKiYnRr371K/Xq1ctVV1NTo6VLl+rNN9/UoUOH1LlzZ8XHx2vKlCnq2bOn174/+OADLVq0SEVFRaqvr1fv3r31yCOP6O677/b1YaANaM1X0wIA0BiHDx/W/PnzPdoHDRqkvn37SpKWLl3qkY1Onz6tBx98UC+++KJGjBhxwfW5e/fuVVFRke666y7NmzfPbZvdbldNTY3r523btmnp0qUaPHiwXnrpJYWEhEg6G5CnT5+unJwcJSUladiwYT/4mJubz8Ktw+HQ9OnTtXr1avXs2VNJSUkym806duyYdu/eLavV6gq39fX1mjx5st5//31dddVV+vnPf67/+7//0zvvvKMdO3boL3/5i6644gq3/jdt2qQnn3xSISEhSk5OVufOnZWXl6cpU6bo8OHDevTRR311KAAAAC3i8OHDWrBggUd7586dXeHW26Sf2WzW/fffr9mzZ6uoqEj9+vVr8LW8BeCOHTuqY8eOrp/feOMNSdJzzz3nCraSFBAQoMzMTOXk5Gjjxo3tI9wuX75cq1ev1oMPPqhnnnlGHTq4d11bW+v6/q233tL777+v/v376/XXX3e9qffee68effRRzZgxQ8uWLXPVl5eX63e/+52CgoL0xhtv6LrrrpMk/fKXv9TIkSP14osv6s4779Tll1/uq8MBAABodnFxcVqxYsUFa44dO6ZXX31V27dv15EjR/Tdd9+5bT969OgF97/66qt11VVX6a233tLhw4c1bNgw9evXT9dff73H+tnPP/9cnTp10po1a7z2FRwcrK+//roRR+Y/Pgm33333nV5++WVZLBb9z//8j0ewleTWtnr1aknSlClT3D4tJCQkaODAgdq5c6esVquio6MlSbm5uTp16pRSU1NdwVY6+6ll4sSJeuqpp7R27Vr96le/8sXhAAAAtAonTpzQAw88IJvNpptvvlkJCQkym80KDAzUF198offff192u/2CfQQFBWnFihWaP3++Nm/erFmzZkmSwsPDNXr0aE2YMMGV006dOiWHw+F1NtmpqqrKdwfYDHwSbnfs2KFTp04pJSVFDodD7733nr7++muFhoYqLi5OV199tau2urpaBQUF6tSpk26++WaPvgYPHqydO3fq448/doXbXbt2STobfr9v0KBBkqSPPvqo0eMtLS1tsKaurq7R/QEAADSHNWvWqLS0VJmZmXrsscfcti1cuFDvv/9+o/qJiIjQ9OnT9cwzz+jrr7/Whx9+qJUrV2r+/PkymUz65S9/KUkKDQ1Vhw4dXNmrLfJJuP3iiy8knf1kcP/99+urr75y256SkqLnnntOQUFBKikpUV1dnS677DKvt5KIioqSJFmtVleb83vntnN17dpVXbt2VXFxcaPHO2TIkAZrIiIiXJ9a9uzZI5PJ1Oj+nQuzCwoKGr2PETX3+2CznfRJPwUFF/7E6wucE2itODfR0mpra9WpUyc5HA5J0pkzZzxqzr3AqbXxNt4fwrm0oK6u7oJ9OpcADBw40KPOObFnt9td25zLQC/Ub48ePZSSkqKEhATdeeedeu+99zR27FhJUkxMjD788EPt2bPHa+5qLOfrn+93i/PfvzkE+KKT48ePSzp7NZ9zncann36qN954Q1dccYXWr1/vujqvoqJC0tklBd507tzZrU46e0Xgudu87VNeXu6LQwEAAGg1evToIensWthzvf322/rggw8a1cc333yjgwcPerSfOHFCkvuFZg899JAkacaMGSorK/PY59ixY+1jza0zfQcFBenll19WZGSkJKl///566aWXdO+992rlypV64oknGt1XU1+/KTOr+fn5DdbU1dW5li/06dPHbW1wQ5yfUmJjYxu9jxE19/tQdMQ3twKLjb3WJ/1cCOcEWivOTbS0AwcOSJLr/9udOnXyqAkKCmrRMTWFt/H+EBdddJEkKTAw8IJ9jhw5UitWrNAf//hHffLJJ+revbv27t2rDz/8UHfccYc2b96sjh07uvpwztye2+/BgweVkZGh2NhYXXXVVbrkkkt09OhRvffeewoICND48eNdtXfddZcef/xx/fnPf9Z9992nwYMHq0ePHiorK1NxcbE++eQTZWZmKiYm5oLHFxgYqM6dO7stTT2X3W5XYWFh0960RvJJuHXOqMbExLiCrdPVV1+tnj17qri4WF999ZWr1jkb+33eZmmds7znzuZ+f5/zzep607179wZr7HZ7o9bmAgAA3xqV2PyTDm3FpZdeqhUrVmj27NnauXOnamtrFRMTo9dff13ffPONNm/e3GAfsbGxGj9+vD766CPl5+ervLxcl1xyieLj4zVu3DjXLcecnnzyScXFxWnlypX6xz/+oYqKCnXt2lWXXXaZJk+erOTk5OY6XJ/wSbh13r/2QssGpLPrS6677joFBgbq0KFDqqur81h361w767yYzPl9UVGRiouLPT4plJWVqayszOvFaQAAAK3RZZddpn379jWq9rrrrtPSpUs92m+99ValpaW5tXXo0MGj30svvVRPPfVUk8aXkJDg9UL+tsAna25vvfVWSfK6BqOmpkYlJSWSJIvFouDgYMXGxurMmTP69NNPPeq3bdsmSbrllltcbQMGDJB09q4M37d9+3ZJZ+8TBwAAgPbNJ+G2Z8+eGjx4sIqLiz1u+vvqq6+qvLxc/fv3109+8hNJ0oMPPihJevHFF93uzbZjxw794x//0K233uo2c3vXXXepS5cu2rBhg/bs2eNqP336tF555RUFBQVpxIgRvjgUtEOr8vZ6/QIAAG2Pz55QNn36dP3sZz/TtGnT9N577+mKK67Ql19+qQ8//FBdu3bVs88+66q97777lJubq//93/9VSkqKhgwZouPHj2vTpk0KCwvTM88849Z3WFiYpk+frszMTI0aNUrDhw+X2WzWu+++q0OHDumpp57i6WQGcL5AydorAADQWD4Lt5dddpnWrl2r+fPnKz8/Xzt37lTXrl2VmpqqSZMmyWKxuGoDAgI0f/58LV26VOvXr9fy5ctlNpt15513asqUKV6foZycnKyIiAi98sor2rhxo+rr63XNNdcoMzNTSUlJvjoMAAAAtGE+C7eSFBkZqd///veNqu3YsaMmTJigCRMmNLr/+Ph4xcfH/9DhAQAAwOB8suYWAAAAaA0ItwAAADAMwi0AAAAMg3ALAAAAwyDcAgAAwDAItwAAADAMwi0AAAAMg3ALAAAAw/DpQxwAAAB+rBPbVvt7COcVMfjBH7V/7969m1S/b9++H/V67RHhFgAAoIVMmjTJo23BggXn3YamI9wCAAC0kMmTJ3u0OcOtt21oOtbcAgAAtGLbtm1T79699eqrr2r37t0aM2aM+vfvr9jYWI/t31ddXa3evXtr3LhxHtsqKio0d+5c3X333brhhht0yy236LHHHtPnn3/e7MfUnJi5Bc5jVd7e824blXhtC44EAABp165dmjdvngYOHKiRI0fq2LFjP7iv48eP6+GHH9bBgwd1yy23aMiQITp16pS2bNmi0aNH6+WXX9aQIUN8OPqWQ7gFAABoA3bs2KHZs2frnnvu+dF9zZgxQwcPHtTzzz+v+++/39Vus9k0YsQITZs2TVu3blVQUNCPfq2WxrIEAACANuCmm27ySbC12Wx69913NWjQILdgK0mRkZEaM2aMjh49qo8//vhHv5Y/MHMLAADQBtxwww0+6aegoEAOh0NVVVWaP3++x/avvvpKkvT1119r4MCBPnnNlkS4BQAAaAMuvvhin/RTVlYmSdq9e7d279593rozZ8745PVaGuEWAACgDTCZTF7bAwLOrjKtra312FZRUeHRZjabJUnjx4/XU0895cMRtg6EWzSbLZ+flCQVHXG/6wB3GgAAwHfCwsIknV1L+31FRUUebc5biLX1W36dDxeUAQAAtGFXX321LrroIr377rs6deqUq72srExz5szxqLdYLLr99tv18ccfKzs7Ww6Hw6Pm008/ld1ub9ZxNxdmbgEAANqwkJAQPfTQQ3r99deVkpKi2267TVVVVcrPz1e/fv20b98+j31+//vfq6SkRH/84x+1fv163XjjjTKbzSotLVVhYaFKSkr08ccfq2PHjn44oh+HcAsAANDG/dd//Zc6deqk9evX669//at69Oih9PR0jR49Wrm5uR71ERERysnJ0YoVK5Sbm6u3335b9fX1uuSSS3Tddddp8uTJrrW5bQ3hFgAAtCoRgx/09xBalLeZ1XMNHjy4wZrAwEA98cQTeuKJJxrdf6dOnfT444/r8ccfb/xg2wDW3AIAAMAwCLcAAAAwDMItAAAADINwCwAAAMMg3AIAAMAwCLcAAAAwDMItAAAADINwCwAAWkxAQIDq6uq8PvIVxlBfX6+6ujoFBPgnZhJuAQBAizGbzXI4HDp69KhqamoIuQbicDhkt9v17bffyuFw+O0JZzyhDAAAtJiIiAhVVlbq1KlTqqysVFBQkN9m+OBb9fX1qq+vlyQFBwcrIiLCL+PgbAIAAC0mKChIvXr1kiTV1NSoQwfm2YyiQ4cOCg0NVffu3dWrVy8FBQX5Zxx+eVW0a6vy9vp7CAAAPzKZTK7Z2iuvvNLPo4HREG7R6hGGAQBAY7EsAQAAAIZBuAUAAIBh+HRZwm233abDhw973ZaQkKAlS5a4tVVWVmrhwoXKzc2VzWZTRESEhg4dqilTppz3Crt33nlHy5Yt0759+xQQEKCYmBhNmDBB8fHxvjwUAAAAtEE+X3PbuXNnPfLIIx7tl19+udvPVVVVSk9PV1FRkW688UbdfffdKikpUU5Ojnbu3KmcnBx169bNbZ/Fixdr9uzZCg8PV2pqqkwmkzZt2qSxY8dqzpw5SkpK8vXhAAAAoA3xebgNCwvT5MmTG6xbsmSJioqKlJycrKysLJlMJknSmjVrNG3aNGVlZWnmzJmu+uLiYs2bN0/h4eFav369evToIUkaP368UlJSNGPGDCUkJCgsLMzXhwQAAIA2wi9rbh0Oh3JyciRJmZmZrmArSWlpaYqOjtaGDRt0+vRpV/u6detUU1Oj0aNHu4KtJEVGRio9PV1lZWXKy8truYMAAABAq+PzcGu32/Xmm29q0aJFWrlypQpWuz0WAAAgAElEQVQKCjxqiouLZbPZ1KtXL1ksFo/tgwYNUnV1tdu+u3btknR27e73DR482K2mIaWlpQ1+HTt2rFF9AQAAoPXw+bKEY8eO6emnn3Zr69u3r2bPnq2ePXtKkqxWqyQpOjraax/OdqvVqoEDB7rtExUV5VHvbCsuLm7UGIcMGdJgTUREhBYsWCBJ2rNnj9vsckNqamokyWuwb0/q6uokSTabzc8j8b2CAnuT6jkn0FpxbsJfOPfaN4fD0Wx9+zTcpqam6pZbbtFVV12lkJAQWa1WLVmyRBs2bNCYMWP09ttvq1OnTqqoqJAkmc1mr/042511klxLFDp37uxRHxoaqsDAQJWXl/vycAAAANDG+DTcTpo0ye3n6667TllZWZKkDRs26G9/+5vS09Mb3V9TZksdDkej6/Pz8xusqaurU2lpqSSpT58+6tixY6PH4vwUGhsb2+h9jGjL52ff58jISD+PxPdiY69tUj3nBForzk34C+de+2a321VYWNgsfbfI43cfeOABbdiwQZ9++qnS09Nds6/nXjB2Lmf7uTO7ZrNZJ0+eVEVFhcLDw93qKysrVV9f73VW15vu3bs3WGO3213hFhfG43EBAEBr0SJ3S3CG0aqqKknua2q98bYm1/m9t3W1zjZv63EBAADQfrRIuP3nP/8pSa47I0RFRSkyMlIHDx70+kSz7du3Kzg42O1PFQMGDJAk7dixw6N+27ZtbjUAAABon3wWbg8cOKCysjKP9v3792vu3LmSpOHDh0s6u5Z25MiRkqSsrCy3K+bWrFkjq9Wq4cOHuy1LSE1NVVBQkFauXKkjR4642m02m5YvX64uXbooMTHRV4cDAACANshna25zc3P16quvKi4uTj179lRISIgOHjyo7du3q7a2Vv/5n/+pm2++2VU/btw4bd26VRs3btShQ4cUFxenkpISbd68WRaLRZmZmW79R0VFKSMjQ7Nnz1ZKSoqSk5Ndj989ceKE5syZw9PJAAAA2jmfhdsBAwboq6++0p49e/TZZ5+purpa4eHhGjp0qB5++GHX/WqdQkJCtHz5ci1cuFC5ubnKzs5W165dlZaWpoyMDHXr1s3jNcaPHy+LxaLs7GytXbtWAQEBiomJ0cSJExUfH++rQwEAAEAb5bNwGxcXp7i4uCbtYzabNXXqVE2dOrXR+yQlJSkpKampwwMAAEA70CK3AgOM5ny3PxuV2LT73wIAAN9qkbslAAAAAC2BcAsAAADDINwCAADAMAi3AAAAMAzCLQAAAAyDcAsAAADDINwCAADAMAi3AAAAMAzCLQAAAAyDcAsAAADDINwCAADAMAi3AAAAMAzCLQAAAAyDcAsAAADDINwCAADAMAi3AAAAMAzCLQAAAAyDcAsAAADDINwCAADAMAi3AAAAMAzCLQAAAAyDcAsAAADDINwCAADAMAi3AAAAMAzCLQAAAAyDcAsAAADDINwCAADAMAi3AAAAMAzCLQAAAAyDcAsAAADD6ODvAaDtWJW3199DAAAAuCBmbgEAAGAYhFsAAAAYBuEWAAAAhkG4BQAAgGEQbgEAAGAYhFsAAAAYRrOG21dffVW9e/dW7969tXv3bo/tlZWVeuGFF3T77bcrJiZGgwcP1jPPPKMTJ06ct8933nlHP/vZz3TTTTepX79+euSRR/TBBx8052EAAACgjWi2cHvgwAHNnz9fnTp18rq9qqpK6enpeu2119StWzeNGTNGffv2VU5OjtLS0nT8+HGPfRYvXqwpU6bIarUqNTVVKSkpOnDggMaOHatNmzY116EAAACgjWiWhzjU1tbq6aefVp8+fRQVFaW///3vHjVLlixRUVGRkpOTlZWVJZPJJElas2aNpk2bpqysLM2cOdNVX1xcrHnz5ik8PFzr169Xjx49JEnjx49XSkqKZsyYoYSEBIWFhTXHIQEAAKANaJaZ21deeUUHDhzQzJkzFRgY6LHd4XAoJydHkpSZmekKtpKUlpam6OhobdiwQadPn3a1r1u3TjU1NRo9erQr2EpSZGSk0tPTVVZWpry8vOY4HAAAALQRPg+3X3zxhRYtWqRJkybpqquu8lpTXFwsm82mXr16yWKxeGwfNGiQqqurVVBQ4GrbtWuXJCkhIcGjfvDgwW41DSktLW3w69ixY43qCwAAAK2HT5cl2O12Pf300+rdu7ceffTR89ZZrVZJUnR0tNftznar1aqBAwe67RMVFeVR72wrLi5u1DiHDBnSYE1ERIQWLFggSdqzZ4/b7HJDampqJMktnBuBzXaySfV1dXX/fz9bcwynVSoosHttN+o5gbaPcxP+wrnXvjkcjmbr26fh9sUXX5TVatXatWu9LkdwqqiokCSZzWav253tzjpJriUKnTt39qgPDQ1VYGCgysvLf/DYAV/Y8rn3DwCDr/d+rgMAAN/yWbj97LPP9Prrr2vSpEnq3bu3T/psymypw+FodH1+fn6DNXV1dSotLZUk9enTRx07dmz0WJyfQmNjYxu9T1tQdGRvk+qdM7aRkZHNMZw2JSjo7Iyu0c4JtH1G/X2F1o9zr32z2+0qLCxslr59Em5ra2v161//Wr1799Zjjz3WYL1z9vXcC8bO5Ww/d2bXbDbr5MmTqqioUHh4uFt9ZWWl6uvrvc7qetO9e/cGa+x2uyvcAgAAoG3wSbg9c+aMa01sTEyM15qHH35YkvTyyy+7LjRz7vN93tbkRkdH6+TJkyouLvYIt861tt7W46JpVuU1bXYWAACgNfFJuO3YsaMeeOABr9t2794tq9Wqn/70p+rWrZssFouioqIUGRmpgwcP6vDhwx53TNi+fbuCg4Pd/lQxYMAAffbZZ9qxY4f69u3rVr9t2zZXDQAAANovn4Tbiy66SH/4wx+8bvv1r38tq9WqRx99VP3793e1jxw5UvPnz1dWVpbHQxysVqtGjBjhtiwhNTVVS5Ys0cqVKzVixAjXvW5tNpuWL1+uLl26KDEx0ReHAwAAgDaqWZ5Q1hjjxo3T1q1btXHjRh06dEhxcXEqKSnR5s2bZbFYlJmZ6VYfFRWljIwMzZ49WykpKUpOTpbJZNKmTZt04sQJzZkzh6eTAQAAtHN+C7chISFavny5Fi5cqNzcXGVnZ6tr165KS0tTRkaGunXr5rHP+PHjZbFYlJ2drbVr1yogIEAxMTGaOHGi4uPj/XAUAAAAaE2aPdzOmjVLs2bN8rrNbDZr6tSpmjp1aqP7S0pKUlJSkq+GBwAAAAPx+eN3AQAAAH8h3AIAAMAwCLcAAAAwDMItAAAADINwCwAAAMMg3AIAAMAwCLcAAAAwDMItAAAADINwCwAAAMMg3AIAAMAwCLcAAAAwDMItAAAADINwCwAAAMMg3AIAAMAwCLcAAAAwDMItAAAADINwCwAAAMPo4O8BwD9W5e319xAAAAB8jplbAAAAGAbhFgAAAIZBuAUAAIBhEG4BAABgGIRbAAAAGAbhFgAAAIZBuAUAAIBhEG4BAABgGIRbAAAAGAbhFgAAAIZBuAUAAIBhdPD3ANC8VuXt9fcQAAAAWgzhFmgBWz4/KUkqOuL+YWNU4rX+GA4AAIbFsgQAAAAYBuEWAAAAhkG4BQAAgGEQbgEAAGAYhFsAAAAYBuEWAAAAhkG4BQAAgGEQbgEAAGAYPnuIg91u15w5c1RYWKji4mKdOnVKYWFh6tmzp9LS0nTvvfcqKCjIbZ/KykotXLhQubm5stlsioiI0NChQzVlyhRFRER4fZ133nlHy5Yt0759+xQQEKCYmBhNmDBB8fHxvjoUAAAAtFE+m7n97rvvtGrVKplMJg0dOlRjx47VsGHDdPToUf3mN7/R448/rvr6eld9VVWV0tPT9dprr6lbt24aM2aM+vbtq5ycHKWlpen48eMer7F48WJNmTJFVqtVqampSklJ0YEDBzR27Fht2rTJV4cCAACANspnM7edO3fW7t271bFjR7f22tpa/eIXv9DOnTu1detWDRs2TJK0ZMkSFRUVKTk5WVlZWTKZTJKkNWvWaNq0acrKytLMmTNd/RQXF2vevHkKDw/X+vXr1aNHD0nS+PHjlZKSohkzZighIUFhYWG+OiQAAAC0MT6buTWZTB7BVpI6dOjgCrQlJSWSJIfDoZycHElSZmamK9hKUlpamqKjo7VhwwadPn3a1b5u3TrV1NRo9OjRrmArSZGRkUpPT1dZWZny8vIaNdbS0tIGv44dO9b0NwEAAAB+5bOZ2/Opr6/X9u3bJUnXXnutpLOzsDabTb169ZLFYvHYZ9CgQVqxYoUKCgo0cOBASdKuXbskSQkJCR71gwcP1ty5c7Vr1y6lpaU1OKYhQ4Y0WBMREaEFCxZIkvbs2eMWwBtSU1MjSSooKGj0Ps3FZjvpt9euq6v7/2Ow+W0MrcX53ouCArs/hgO4tKbfV2hfOPfaN4fD0Wx9+zzc1tbW6pVXXpHD4VBZWZk++OADff3110pLS3MFVavVKkmKjo722oez3Wq1euwTFRXlUe9sKy4u9t2BAAAAoM3xebitq6tzzXhKZ5cr/OIXv9CTTz7paquoqJAkmc1mr3042511klxLFDp37uxRHxoaqsDAQJWXlzdqjPn5+Q3W1NXVqbS0VJLUp08fr0suzsf5KTQ2NrbR+zSXoiN7/fbazlnKyMhIv42htTjfexEbe60/hgO4tKbfV2hfOPfaN7vdrsLCwmbp2+fhNjg4WPv27VN9fb2OHj2qrVu3au7cufr000/12muveQ2n59OUpQAOh6PR9d27d2+wxm63u8ItAAAA2oZme4hDQECAunfvrlGjRunZZ5/V559/rpdfflnSv2dfz71g7FzO9nNndr3N5jpVVlaqvr6+ScEZAAAAxtMiTyhzXgT20UcfSXJfU+uNtzW5zu+9rat1tnlbjwsAAID2o0XCrXO9YYcOZ1dBREVFKTIyUgcPHtThw4c96rdv367g4GC3dTgDBgyQJO3YscOjftu2bW41AAAAaJ98Fm7379+vkyc9bztVVVWlWbNmSTp7yy7p7FrakSNHSpKysrLcbgexZs0aWa1WDR8+3G1ZQmpqqoKCgrRy5UodOXLE1W6z2bR8+XJ16dJFiYmJvjocAAAAtEE+u6AsLy9PixcvVlxcnC677DKZzWbZbDZt27ZNZWVluvnmmzVu3DhX/bhx47R161Zt3LhRhw4dUlxcnEpKSrR582ZZLBZlZma69R8VFaWMjAzNnj1bKSkpSk5Olslk0qZNm3TixAnNmTOHp5MBAAC0cz4Lt0OHDtXRo0f12Wef6Z///KfOnDkjs9msa665RsnJyXrggQdcyxIkKSQkRMuXL9fChQuVm5ur7Oxsde3aVWlpacrIyFC3bt08XmP8+PGyWCzKzs7W2rVrFRAQoJiYGE2cOFHx8fG+OpQ2aVWe/275BQAA0Fr4LNzecMMNuuGGG5q0j9ls1tSpUzV16tRG75OUlKSkpKSmDg8AAADtQItcUAYAAAC0BMItAAAADINwCwAAAMMg3AIAAMAwCLcAAAAwDMItAAAADINwCwAAAMMg3AIAAMAwCLcAAAAwDMItAAAADINwCwAAAMMg3AIAAMAwCLcAAAAwDMItAAAADINwCwAAAMMg3AIAAMAwCLcAAAAwDMItAAAADINwCwAAAMMg3AIAAMAwCLcAAAAwDMItAAAADINwCwAAAMMg3AIAAMAwCLcAAAAwDMItAAAADKODvweAplmVt9ffQwAAAGi1mLkFAACAYRBuAQAAYBiEWwAAABgG4RYAAACGQbgFAACAYRBuAQAAYBiEWwAAABgG4RYAAACGQbgFAACAYRBuAQAAYBg8fhfwo/M9TnlU4rUtPBIAAIzBZ+HWZrMpLy9P+fn5+vrrr3Xs2DGZzWbFxsZqzJgxGjhwoMc+lZWVWrhwoXJzc2Wz2RQREaGhQ4dqypQpioiI8Po677zzjpYtW6Z9+/YpICBAMTExmjBhguLj4311KAAAAGijfLYsYcWKFfrDH/6gkpISxcfHa+zYsYqLi9OOHTs0duxYvf766271VVVVSk9P12uvvaZu3bppzJgx6tu3r3JycpSWlqbjx497vMbixYs1ZcoUWa1WpaamKiUlRQcOHNDYsWO1adMmXx0KAAAA2iifzdzGxsbqjTfeUP/+/d3ad+/erTFjxigrK0tJSUmKjIyUJC1ZskRFRUVKTk5WVlaWTCaTJGnNmjWaNm2asrKyNHPmTFc/xcXFmjdvnsLDw7V+/Xr16NFDkjR+/HilpKRoxowZSkhIUFhYmK8OCQAAAG2Mz2Zu77zzTo9gK0n9+/fXgAEDVFNTo88++0yS5HA4lJOTI0nKzMx0BVtJSktLU3R0tDZs2KDTp0+72tetW6eamhqNHj3aFWwlKTIyUunp6SorK1NeXl6jxlpaWtrg17Fjx37Q+wAAAAD/aZELyjp06OD23+LiYtlsNvXq1UsWi8WjftCgQVqxYoUKCgpca3V37dolSUpISPCoHzx4sObOnatdu3YpLS2twfEMGTKkwZqIiAgtWLBAkrRnzx63AN6QmpoaSVJBQUGj92ksm+2kz/tsLnV1dZLOrsdu75r6XhQU2JtzOIBLc/6+Ai6Ec699czgczdZ3s98K7Ntvv9U//vEPBQcHq1+/fpIkq9UqSYqOjva6j7PdWXfu91FRUR71zrbi4mKfjBkAAABtU7PO3NbU1Gjq1Kmy2+3KyMhQeHi4JKmiokKSZDabve7nbHfWSXItUejcubNHfWhoqAIDA1VeXt6oceXn5zdYU1dXp9LSUklSnz591LFjx0b1Lf37U2hsbGyj92msoiPebx3VGjlnKZ3rrNuzpr4XsbHcCgwtozl/XwEXwrnXvtntdhUWFjZL380Wbuvr6/Wb3/xGH3/8sYYNG6YJEyY0uY+mLAVwOByNru/evXuDNXa73RVuAQAA0DY0S7h1OByaNm2a/v73v+u2227T3LlzFRDw7xUQztnXcy8YO5ez/dyZXbPZrJMnT6qiosI1A+xUWVmp+vp6r7O6bdX5bu4PAACA8/P5mlvnjO3atWt12223ad68eR5/0ve2pvZc3tbkOr/3tq7W2eZtPS4AAADaD5+G2/r6ev32t7/VunXrNGzYML300kte16pGRUUpMjJSBw8e1OHDhz22b9++XcHBwW7rcAYMGCBJ2rFjh0f9tm3b3GoAAADQPvks3J4bbO+88069+OKLCgoK8lprMpk0cuRISVJWVpbb7SDWrFkjq9Wq4cOHuy1LSE1NVVBQkFauXKkjR4642m02m5YvX64uXbooMTHRV4cDAACANshna25ffvllrVu3Tp06ddIVV1yhRYsWedQMGzZMffr0kSSNGzdOW7du1caNG3Xo0CHFxcWppKREmzdvlsViUWZmptu+UVFRysjI0OzZs5WSkqLk5GSZTCZt2rRJJ06c0Jw5c3g6GQAAQDvns3DrXF5w5swZr8FWkiwWiyvchoSEaPny5Vq4cKFyc3OVnZ2trl27Ki0tTRkZGerWrZvH/uPHj5fFYlF2drbWrl2rgIAAxcTEaOLEiYqPj/fVoQAAAKCN8lm4nTVrlmbNmtWkfcxms6ZOnaqpU6c2ep+kpCQlJSU1dXgAAABoB5r9CWUAAABASyHcAgAAwDAItwAAADAMwi0AAAAMg3ALAAAAwyDcAgAAwDAItwAAADAMwi0AAAAMg3ALAAAAwyDcAgAAwDAItwAAADAMwi0AAAAMg3ALAAAAwyDcAgAAwDAItwAAADAMwi0AAAAMg3ALAAAAwyDcAgAAwDAItwAAADAMwi0AAAAMg3ALAAAAwyDcAgAAwDAItwAAADAMwi0AAAAMo4O/B9Dercrb6+8hAAAAGAYztwAAADAMwi0AAAAMg3ALAAAAwyDcAgAAwDC4oAxohc53oeGoxGtbeCQAALQtzNwCAADAMAi3AAAAMAzCLQAAAAyDcAsAAADDINwCAADAMAi3AAAAMAzCLQAAAAyDcAsAAADD8NlDHN566y198sknKioq0v79+1VTU6M//vGPSk1N9VpfWVmphQsXKjc3VzabTRERERo6dKimTJmiiIgIr/u88847WrZsmfbt26eAgADFxMRowoQJio+P99VhAAAAoA3z2cztvHnztHr1an377bf6yU9+csHaqqoqpaen67XXXlO3bt00ZswY9e3bVzk5OUpLS9Px48c99lm8eLGmTJkiq9Wq1NRUpaSk6MCBAxo7dqw2bdrkq8MAAABAG+azmdvf//73ioqKksVi0auvvqqsrKzz1i5ZskRFRUVKTk5WVlaWTCaTJGnNmjWaNm2asrKyNHPmTFd9cXGx5s2bp/DwcK1fv149evSQJI0fP14pKSmaMWOGEhISFBYW5qvDAQAAQBvks5nbgQMHymKxNFjncDiUk5MjScrMzHQFW0lKS0tTdHS0NmzYoNOnT7va161bp5qaGo0ePdoVbCUpMjJS6enpKisrU15enq8OBQAAAG1Ui19QVlxcLJvNpl69enkNw4MGDVJ1dbUKCgpcbbt27ZIkJSQkeNQPHjzYraYxSktLG/w6duxYUw8NAAAAfuazZQmNZbVaJUnR0dFetzvbrVarBg4c6LZPVFSUR72zrbi4uNFjGDJkSIM1ERERWrBggSRpz549bjPMDampqZEkt4B+PjbbyUb329bU1dVJkmw2m59H4n++ei8KCuy+GA7g0pTfV4Avce61bw6Ho9n6bvGZ24qKCkmS2Wz2ut3Z7qyT5Fqi0LlzZ4/60NBQBQYGqry83NdDBQAAQBvT4jO3jdWUmVKHw9Gk+vz8/AZr6urqVFpaKknq06ePOnbs2Oj+nZ9CY2NjG6wtOrK30f22Nc5ZysjISD+PxP989V7Exl7ri+EALk35fQX4Eude+2a321VYWNgsfbd4uHXOvp57wdi5nO3nzuyazWadPHlSFRUVCg8Pd6uvrKxUfX2911nd8+nevXuDNXa73RVuAQAA0Da0+LKEc9fUeuNtTa7ze2/rap1t3tbjAgAAoH1p8XAbFRWlyMhIHTx4UIcPH/bYvn37dgUHB7v9mWLAgAGSpB07dnjUb9u2za0GAAAA7VeLh1uTyaSRI0dKkrKystyulluzZo2sVquGDx/utiwhNTVVQUFBWrlypY4cOeJqt9lsWr58ubp06aLExMSWO4gfYFXeXq9fAAAA8B2frblds2aNPvnkE0nS/v37XW0fffSRJKlfv35KS0uTJI0bN05bt27Vxo0bdejQIcXFxamkpESbN2+WxWJRZmamW99RUVHKyMjQ7NmzlZKSouTkZJlMJm3atEknTpzQnDlzeDoZAAAAfBduP/nkE61fv96t7dNPP9Wnn37q+tkZbkNCQrR8+XItXLhQubm5ys7OVteuXZWWlqaMjAx169bNo//x48fLYrEoOztba9euVUBAgGJiYjRx4kTFx8f76jAAAADQhvks3M6aNUuzZs1qdL3ZbNbUqVM1derURu+TlJSkpKSkHzI8AAAAtAMtvuYWAAAAaC6EWwAAABgG4RYAAACGQbgFAACAYRBuAQAAYBiEWwAAABgG4RYAAACGQbgFAACAYRBuAQAAYBg+e0IZgOa3Km+v1/ZRide28EgAAGidmLkFAACAYRBuAQAAYBgsS/CxVXl7ZbOdlCQVHfH+J2QAAAA0D2ZuAQAAYBiEWwAAABgG4RYAAACGQbgFAACAYRBuAQAAYBiEWwAAABgG4RYAAACGQbgFAACAYfAQhx9oVR4PaAAAAGhtmLkFAACAYRBuAQAAYBiEWwAAABgG4RYAAACGQbgFAACAYRBuAQAAYBiEWwAAABgG4RYAAACGQbgFAACAYRBuAQAAYBg8frcR3sz/l2rr+RyA1ut8j4MelXhtC48EAAD/IrEBAADAMAi3AAAAMAzCLQAAAAyDcAsAAADDINwCAADAMNpcuP3yyy81YcIExcXF6cYbb9T999+vv/71r3I4HP4eGgAAAPysTd0KbPfu3Ro7dqwcDofuuusuRUZGatu2bZo+fbr27dun6dOn+3uIQKvCLcIAAO1Nmwm3tbW1+u1vfyu73a5XX31VQ4YMkSRlZGTo0Ucf1apVq5SUlKRbbrnFzyMFAACAv7SZcLtr1y5ZrVYNGDDAFWwlqWPHjpoyZYoeeughrV69mnALAMAFnNi2ukn1EYMfbKaRAM2jzYTbjz76SJKUkJDgse2mm25S586dXTUNKS0tbbCmtrbW9X2gySEF1DdypFLHDiZJUocm7GNEvA//1treC7vd7u8hoJVwXq/AOeGubNffvbZ3HXBvC4/khzvfMcgU2KR+zndu/Nj3qDHnnhH+HeBdTU2N63tfXzdlcrSRK7GeeOIJ5eXl6aWXXlJiYqLH9tTUVH3xxRf6/PPPFRIScsG+evfu3eDrXfH/2Lv7uKrr+//jT0BwCKjACh0Z6MqLjciWQTi8+DaXCW4FhpoV09Td9FsbfmM/2sqt7GpuiWaa9U0tvJhLSM3NC5hlAzVnM21CmroSEJOjC69A4xzg/P7we06cOMjBDhzOh8f9dusWvj/v9/u8Px8/N3zy5nU+p18/Pfvss1e9XgAAALRs4MCBCgoKctt8XvO0hOrqaklSSEiI0+O29gsXLrTbmgAAANCxeE1ZQktsG9A+Pj4t9i0sLGyxT0NDg+rq6hQeHq4uXbq4NK8knT59Wvfee68k6a233tI111wjSRo3bpwkad26dQ79m2t395j2Ptbcdfimr3e1Yz05pqVr0ZG19Hfhba/rjnmvdo7WjnOl/zft4833ZmPtfZ+6+/W+yXxXM9bVMe64B6/234iOrj3vOXe+Vke616xWq70EtKXfuLeW14Tb4OBgSc3vzNp2dm39rqRXr17uW9jX+Pn5qaqqyv51QECAJOncuXOSZP+zTXPt7h7T3seauw7f9PWudqwnx7R0LTqylv4uvO113THv1c7R2nGu9P+mfbz53mysvUMKbX4AACAASURBVO9Td7/eN5nvasa6OsYd9+DV/hvR0bXnPefO1+po91rXrl1bvQ5XeE1ZQt++fSVJZWVlTY5ZrVYdP35cERERbk//AAAA8B5eE27j4uIkSTt37mxybP/+/Tp//ry9DwAAADonrwm38fHxio6O1p49exxqZi0Wi1588UVJ0oQJPIsPAACgM/OamtsuXbro2Wef1UMPPaSHH35YY8aM0bXXXquioiIdOXJE9913Hx/gAAAA0Ml5zXNubT7++GMtWrRIH374oWpraxUdHa377rtPEydOdPmJBm2psrLS/glqhYWFbfrmtY6M6/AVrgU6Ku5NeAr3HtqS1+zc2nz/+9/Xq6++6ullAAAAoAPymppbAAAAoCWEWwAAABiG19XcAgAAAM1h5xYAAACGQbgFAACAYRBuAQAAYBiEWwAAABgG4RYAAACGQbgFAACAYRBuAQAAYBiEWwAAABgG4RYAAACGQbgFAACAYRBuAQAAYBiEWwAAABgG4RYAAACGQbgFAACAYRBuAQAAYBiEWwAAABgG4RYAAACGQbgFAACAYRBuAQAAYBiEWwAAABgG4RYAAACGQbgFAACAYRBuAQAAYBhdPL0AAGgPd9xxh06cOGH/s6+vr4KCgtSjRw/1799ft956q+655x59+9vf9uAqPevixYvatm2biouLVVJSooMHD6q2tlYpKSmaO3fuFcdarVatXbtWubm5+uyzzxQQEKCbbrpJ06dP1+23335V69m9e7eWLVum4uJimc1m9evXTxMmTND48ePl4+NzVXMCMD4fq9Vq9fQiAKCt2cJtYmKirrnmGkmXw9ypU6fsIc7f318zZszQzJkz5efn5+EVt79Dhw7pnnvuadLuSrjNysrSxo0bFRQUpB/+8IeqqanRP/7xDzU0NOi5557TuHHjWrWWvLw8/fa3v5Wvr69uv/12BQUFadeuXaqpqVFqaqp+//vft2o+AJ0HO7cAOpWf//znio+Pd2i7ePGicnNztWDBAi1atEinTp3S008/7aEVek5QUJDGjRunmJgYxcTEqLi42KXr8Je//EUbN27UddddpzVr1igiIkKS9M9//lNTpkzRU089pYSEBH3nO99xaR3Hjx/XnDlz1KVLF73xxhu67bbbJEkmk0mTJk3S+vXrNWzYMCUlJV39yQIwLGpuAXR63bp10+TJk/Xqq6/Kz89Pa9eu1c6dOz29rHZ3/fXX6/nnn9ekSZMUGxurgIAAl8YtW7ZMkvT//t//swdbSbrtttuUlpYms9msFStWuLyOFStWyGKxaPz48fZgK0kRERH61a9+JUlaunSpy/MB6FwItwDwfxISEuy7gTk5OU2Om81mLV++XCkpKbrllls0ePBgpaSk6PXXX5fZbHboe+TIEcXGxmrw4MH69NNPm8y1atUqDRgwQHfffXeTsd7k888/1+HDh9W1a1fdcccdTY7brue7777r8pzbt2+XJI0ZM6bJsR/96Efq2rWrDh48qJMnT17lqgEYGeEWABoZO3asJGnv3r2yWCz29kuXLik9PV1//OMfdfz4cQ0dOlQ//OEPdfz4cf3hD3/Q5MmT9eWXX9r79+/fX4899pguXbqkRx991CHAHj58WC+88IICAwM1f/58l3dIO6JDhw5Jkm688Uan5/G9731P0uVSg+rq6hbnq66utr/xzza2sYCAAN1www2SpE8++eSq1w3AuKi5BYBGBg0aJOlymD1x4oSio6MlSQsWLND+/ft10003aenSpQoNDZUkVVVVadq0afrwww+1cOFCPfbYY/a57r//fu3atUvvvvuuXnjhBT3xxBP68ssvlZmZqdraWj3zzDP67ne/6/Lavv7EB1c88sgj+sUvftGqMa3x+eefS5J69erl9HhQUJBCQkJ04cIFff755+rfv/8V57OdX/fu3RUUFOS0T69evfTxxx+3+loA6BwItwDQiC20StK5c+ckXQ66eXl5kqSnnnrKoU9YWJieeuoppaWl6c0331RGRoa+9a1v2Y8/99xzKikp0apVq5SYmKjt27fr6NGjGj16tMaPH9+qtY0ePVpnzpxp1RhbWG8rNTU1kqTAwMBm+3Tr1k0XLlyw93XHfI37AkBjhFsAaKTx0xFtz1L9+OOPdfHiRd14442KiYlpMiY2Nlbf/e539emnn6qkpERDhgyxHwsNDdULL7ygyZMn69FHH1V1dbV69+6tZ555ptVra7wr3FHYrteVnjvbmidOuns+AJ0PNbcA0EjjndEePXpIuvwIKkm67rrrmh3Xp08fSdKpU6eaHIuPj9ekSZPsNad//OMf7XN7O1vpwMWLF5vtY6tFbq7MoC3nA9D5sHMLAI0cPHhQ0uVffUdGRrplzurqahUWFtr/XFxcrLi4uFbP84c//KHVZQmjRo3SqFGjWv1arrI9u7aystLp8YsXL+r8+fMOfa/Eds3Pnz+vixcv2ksQGrO9lqvPzQXQuRBuAaCRzZs3S7r8jNYuXS5/i7Q9u7WioqLZcbZj1157bZNjTz31lI4fP64f//jH2r17txYsWKD4+HinJQ5XUlBQ0Oo3UUVGRrZpuLXV9P773/+W2Wxu8sQE2w8L1113nYKDg1ucLyQkRJGRkTpx4oQOHjzoUOIhXX4c29GjRyVJAwcOdMcpADAYwi0A/J/du3dry5YtkqQpU6bY27///e8rMDBQR48e1cGDB5s8oqq4uFj//ve/1a1btyaB9e2339Zf//pX9e3bVy+88IL+9re/KSsrS5mZmdqwYYPTncnm2J7/2pFERkaqf//+OnLkiP7+97/rzjvvdDi+detWSZefT+uqO+64Q6tWrVJ+fn6TcPvee++ptrZWgwYNYucWgFPU3ALo9C5duqScnBzNmDFDDQ0NmjRpkhISEuzHAwMDlZaWJkmaM2eO/SkK0uUa3Tlz5kiSJk6c6PCkhPLycj399NPy9/dXdna2AgMDdffdd+snP/mJSktLr+pNZR3R1KlTJV2uJW5cc7x3716tXbtW/v7+Sk9PdxhjMpl011136a677rLXNNukp6fL399fb775pvbu3WtvP3XqlF544QVJ0rRp09rqdAB4OR8rbzsF0AnYnhGbmJioa665RtLletBTp07p4MGDqq2tlb+/v2bOnKkZM2bIz8/PYfylS5c0ZcoU7d+/X927d9ftt98uq9WqPXv26Pz587r11lv1+uuv28OtxWLRfffdp+LiYj322GN66KGH7HNVV1fr7rvvVkVFhRYsWGD/FK+O4OGHH9bp06clXX6G7/HjxxUaGqrrr7/e3mfx4sUO5RdWq1W/+tWvtGnTJgUHB2vo0KG6ePGidu/erYaGBj3zzDP2Hw5sKioq7Lu57777bpM367355pt66qmn5Ovrq4SEBHXr1k3vv/++/dr98Y9/bKtLAMDLEW4BdApf/wAEHx8fBQUFqUePHurfv79uu+023X333fr2t7/d7By1tbVatWqVNm3apGPHjsnHx0fR0dH6yU9+ogcffNCh3nTevHlaunSpfvjDH2r58uVNHm310Ucf6f7771e3bt309ttvu+3Na9+UKx8U4SyMWq1W/fnPf1ZeXp4+++wz+fv766abbtLPf/5zh11wm5bCrSS9//77Wrp0qYqLi2WxWNSvXz+NHz9eEydOvOKjwgB0boRbAAAAGAY1twAAADAMwi0AAAAMg3ALAAAAwyDcAgAAwDAItwAAADAMwi0AAAAMg3ALAAAAwyDcAgAAwDAItwAAADAMwi0AAAAMo4unF9BRNTQ06NKlS5KkLl268DnmAAAAbmK1WlVXVydJCgwMlK+v+/Zb3RZu169fr9/85jdX7HP77bdrxYoV9j/X1NRoyZIlys/Pl8lkUlhYmEaOHKlZs2YpLCzM6Rxbt27VihUrdPjwYfn6+iomJkYzZsxQQkKCu05FknTp0iV98sknbp0TAAAAjgYOHKigoCC3zee2cDto0CA98sgjTo8VFBTo6NGjSkxMtLddunRJ6enpKikp0c0336wxY8aovLxcubm52rVrl3JzcxUeHu4wz9KlSzVv3jyFhoYqNTVVPj4+2rJli6ZMmaL58+crKSnJXacDAAAAL+RjtVqtbfkCZrNZw4YNU3V1tQoLC/Xtb39bkrR48WItWrRIycnJys7Otv/aPy8vT7Nnz9a4ceP0/PPP2+cpKytTcnKygoODtWHDBvXu3VuSZDKZlJKSovr6em3btk3du3d3y7pra2tVUlIi6fJPFP7+/i6PPXTokKTLgb8z4zp8hWuBjop7E57Cvde5WSwW+2/IY2Ji1LVrV7fN3eY1t++8847Onj2rUaNG2YOt1WpVbm6uJCkzM9OhnjUtLU3Lli3Tpk2b9Pjjjys4OFjS5bIHi8WiBx54wB5sJSkiIkLp6elasGCBCgoKlJaW5pZ1N16Tv7+/AgICWj22NWOMiOvwFa4FOiruTXgK9x5s3P2+pjZ/WsJbb70lSQ6hs6ysTCaTSX379lVkZGSTMcOGDVNtba0OHDhgb9uzZ48kOZQ22AwfPtyhT0sqKytb/O/06dOunyQAAAA6hDbduT1x4oR2796tiIgIDRs2zN5eWloqSYqOjnY6ztZeWlqqoUOHOoyJiopq0t/WVlZW5tK6RowY0WKfsLAwLV68WNLlX5205qcKi8UiSQ7hvDPiOnyFa4GOinsTnsK917m1ZVVsm+7crl+/Xg0NDUpNTZWfn5+9/cKFC5JkLzn4Olu7rZ8kVVdXS5JCQkKa9A8KCpKfn5/Onz/vtrUDAADA+7TZzm1DQ4PWr18vHx8fjRs37qrmaM1uqdVqdbl/YWFhi33q6+tVWVkp6XKxe2tqgmw/hcbGxro8xoi4Dl/hWqCj4t6Ep3DvdW5ms1nFxcVtMnebhdtdu3bp888/V0JCgvr06eNwzLb7atuN/Tpbe+Od3eDgYJ05c0YXLlxQaGioQ/+amho1NDQ43dV1plevXi32MZvN9nALAAAA79BmZQnO3khm07im1hlnNbm2r53V1dranNXjAgAAoPNok3B75swZvfvuu+rZs6d+/OMfNzkeFRWliIgIHTt2TCdOnGhyfMeOHeratavDryri4+MlSTt37mzSv6ioyKEPAAAAOqc2CbcbN26UxWLRT37yE6e1qj4+Pho/frwkKTs72+Edc3l5eSotLdXYsWMdyhJSU1Pl7++v1atX6+TJk/Z2k8mklStXqkePHho9enRbnA4AAAC8RJvU3K5bt06S85IEm6lTp2r79u3avHmzKioqFBcXp/Lycm3btk2RkZHKzMx06B8VFaWMjAzNmzdPKSkpSk5Otn/8blVVlebPn++2TycDAACAd3J7uD1w4ICOHDmi2NhYDRgwoNl+gYGBWrlypZYsWaL8/Hzl5OSoZ8+eSktLU0ZGhsLDw5uMmT59uiIjI5WTk6N169bJ19dXMTExmjlzphISEtx9KgAAAPAybg+3sbGxOnz4sEt9g4ODlZWVpaysLJfnT0pKUlJS0tUuDwAAAAbW5h+/CwAAALQXwi0AAAAMg3ALAAAAwyDcAgAAwDAItwAAADAMwi0AAAAMg3ALAAAAwyDcAgAAwDAItwAAADAMwi0AAAAMg3ALAAAAwyDcAgAAwDAItwAAADAMwi0AAAAMg3ALAAAAwyDcAgAAwDAItwAAADAMwi0AAAAMg3ALAAAAwyDcAgAAwDAItwAAADAMwi0AAAAMg3ALAAAAwyDcAgAAwDAItwAAADAMwi0AAAAMg3ALAAAAwyDcAgAAwDAItwAAADAMwi0AAAAMg3ALAAAAwyDcAgAAwDAItwAAADAMwi0AAAAMg3ALAAAAwyDcAgAAwDAItwAAADAMwi0AAAAMo4u7J3znnXf05z//WSUlJbp48aKuueYaxcTE6H/+53/Ut29fez+LxaLXX39db7/9tioqKhQSEqKEhATNmjVLffr0cTr37t279eqrr6qkpEQNDQ0aMGCAfvazn2nMmDHuPg0AAAB4IbeFW6vVqieffFJr165Vnz59lJSUpODgYJ0+fVp79+5VaWmpPdw2NDToF7/4hd577z3dcMMNevDBB/Wf//xHW7du1c6dO/XnP/9Z/fr1c5h/y5YtevTRRxUYGKjk5GSFhISooKBAs2bN0okTJzRt2jR3nQoAAAC8lNvC7cqVK7V27VpNmDBBv/vd79Sli+PUdXV19q83btyo9957T0OGDNEbb7yhgIAASdJPf/pTTZs2TXPmzNGKFSvs/c+fP6+nnnpK/v7++tOf/qTvfe97kqSHH35Y48eP14svvqg777xT119/vbtOBwAAAF7ILTW3X375pV5++WVFRkbqt7/9bZNgK8mhbe3atZKkWbNm2YOtJCUmJmro0KH6xz/+odLSUnt7fn6+zp07p7Fjx9qDrSQFBwdr5syZslgsWrdunTtOBQAAAF7MLTu3O3fu1Llz55SSkiKr1ap33nlHn332mYKCghQXF6cbb7zR3re2tlYHDhxQt27d9IMf/KDJXMOHD9euXbv0z3/+U9HR0ZKkPXv2SLocfr9u2LBhkqQPPvjA5fVWVla22Ke+vt7l+QAAANAxuCXcfvzxx5Ikf39/3XPPPfr0008djqekpOiZZ56Rv7+/ysvLVV9fr+uuu05+fn5N5oqKipIkh51b29e2Y4317NlTPXv2VFlZmcvrHTFiRIt9wsLCtHjxYknSoUOH5OPj4/L8FotFknTgwAGXxxgR1+ErXAt0VNyb8BTuvc7NarW22dxuKUv44osvJEmvv/66unXrpry8PO3bt09/+tOf1K9fP23YsEELFy6UJF24cEHS5ZICZ0JCQhz6SVJ1dbXDMWdjzp8/745TAQAAgBdzy86tLX37+/vr5ZdfVkREhCRpyJAheumll/TTn/5Uq1ev1i9/+UuX52rt67dmZ7WwsLDFPvX19fbyhUGDBjnUBrfE9lNobGysy2OMiOvwFa4FOiruTXgK917nZjabVVxc3CZzuyXc2nZUY2Ji7MHW5sYbb1SfPn1UVlamTz/91N7Xthv7dc52aW27vI13c78+prldXWd69erVYh+z2exSbS4AAAA6DreUJdieX3ulsgHp8lMVrr/+evn5+amiosLpm7ZstbO2N5M1/tpZXe3Zs2d19uxZp/W4AAAA6FzcEm5vv/12SdJnn33W5JjFYlF5ebkkKTIyUl27dlVsbKwuXryoffv2NelfVFQkSbrtttvsbfHx8ZIuP5Xh63bs2CFJiouL+4ZnAQAAAG/nlnDbp08fDR8+XGVlZcrLy3M49tprr+n8+fMaMmSIrr32WknShAkTJEkvvviizGazve/OnTv1/vvv6/bbb3fYub3rrrvUo0cPbdq0SYcOHbK3V1dX65VXXpG/v7/GjRvnjlMBAACAF3PbJ5Q9+eSTmjhxombPnq133nlH/fr108GDB/WPf/xDPXv21NNPP23ve/fddys/P19///vflZKSohEjRuiLL77Qli1b1L17d/3ud79zmLt79+568sknlZmZqUmTJmns2LEKDg7W3/72N1VUVOhXv/oVn04GAAAA94Xb6667TuvWrdOiRYtUWFioXbt2qWfPnkpNTdUjjzyiyMhIe19fX18tWrRIr7/+ujZs2KCVK1cqODhYd955p2bNmqU+ffo0mT85OVlhYWF65ZVXtHnzZjU0NKh///7KzMxUUlKSu04DAAAAXsxt4VaSIiIi9Oyzz7rUNyAgQDNmzNCMGTNcnj8hIUEJCQlXuzwAAAAYnFtqbgEAAICOgHALAAAAwyDcAgAAwDAItwAAADAMwi0AAAAMg3ALAAAAwyDcAgAAwDAItwAAADAMwi0AAAAMg3ALAAAAwyDcAgAAwDAItwAAADAMwi0AAAAMg3ALAAAAwyDcAgAAwDAItwAAADAMwi0AAAAMg3ALAAAAwyDcAgAAwDAItwAAADAMwi0AAAAMg3ALAAAAwyDcAgAAwDAItwAAADAMwi0AAAAMg3ALAAAAwyDcAgAAwDAItwAAADAMwi0AAAAMg3ALAAAAwyDcAgAAwDAItwAAADAMwi0AAAAMg3ALAAAAwyDcAgAAwDAItwAAADAMwi0AAAAMg3ALAAAAw+jizsnuuOMOnThxwumxxMRELV++3KGtpqZGS5YsUX5+vkwmk8LCwjRy5EjNmjVLYWFhTufZunWrVqxYocOHD8vX11cxMTGaMWOGEhIS3HkqAAAA8EJuDbeSFBISop/97GdN2q+//nqHP1+6dEnp6ekqKSnRzTffrDFjxqi8vFy5ubnatWuXcnNzFR4e7jBm6dKlmjdvnkJDQ5WamiofHx9t2bJFU6ZM0fz585WUlOTu0wEAAIAXcXu47d69u37xi1+02G/58uUqKSlRcnKysrOz5ePjI0nKy8vT7NmzlZ2dreeff97ev6ysTAsXLlRoaKg2bNig3r17S5KmT5+ulJQUzZkzR4mJierevbu7TwkAAABewiM1t1arVbm5uZKkzMxMe7CVpLS0NEVHR2vTpk2qrq62t69fv14Wi0UPPPCAPdhKUkREhNLT03X27FkVFBS030kAAACgw3F7uDWbzXr77bf16quvavXq1Tpw4ECTPmVlZTKZTOrbt68iIyObHB82bJhqa2sdxu7Zs0fS5drdrxs+fLhDn5ZUVla2+N/p06ddmgsAAAAdh9vLEk6fPq3HHnvMoW3w4MGaN2+e+vTpI0kqLS2VJEVHRzudw9ZeWlqqoUOHOoyJiopq0t/WVlZW5tIaR4wY0WKfsLAwLV68WJJ06NAhh93lllgsFklyGuw7E67DV7gW6Ki4N+Ep3Hudm9VqbbO53RpuU1NTddttt+mGG25QYGCgSktLtXz5cm3atEmTJ0/WX//6V3Xr1k0XLlyQJAUHBzudx9Zu6yfJXqIQEhLSpH9QUJD8/Px0/vx5d54OAAAAvIxbw+0jjzzi8Ofvfe97ys7OliRt2rRJb731ltLT012erzW7pVar1eX+hYWFLfapr69XZWWlJGnQoEEKCAhweS22n0JjY2NdHmNEXIevcC3QUXFvwlO49zo3s9ms4uLiNpm7Xd5Qdu+990qS9u3bJ+mr3dfGbxhrzNbeeGfX2W6uTU1NjRoaGpzu6jrTq1evFv+75pprXDw7AAAAdBTtEm5DQ0MlXX62reRYU+uMs5pc29fO6mptbc7qcQEAANB5tEu4/de//iVJ9icjREVFKSIiQseOHXP6iWY7duxQ165dHX5VER8fL0nauXNnk/5FRUUOfQAAANA5uS3cHj16VGfPnm3SfuTIES1YsECSNHbsWEmXa2nHjx8vScrOznZ4x1xeXp5KS0s1duxYh7KE1NRU+fv7a/Xq1Tp58qS93WQyaeXKlerRo4dGjx7trtMBAACAF3LbG8ry8/P12muvKS4uTn369FFgYKCOHTumHTt2qK6uTv/93/+tH/zgB/b+U6dO1fbt27V582ZVVFQoLi5O5eXl2rZtmyIjI5WZmekwf1RUlDIyMjRv3jylpKQoOTnZ/vG7VVVVmj9/Pp9OBgAA0Mm5LdzGx8fr008/1aFDh7R//37V1tYqNDRUI0eO1P33329/Xq1NYGCgVq5cqSVLlig/P185OTnq2bOn0tLSlJGRofDw8CavMX36dEVGRionJ0fr1q2Tr6+vYmJiNHPmTCUkJLjrVAAAAOCl3BZu4+LiFBcX16oxwcHBysrKUlZWlstjkpKSlJSU1NrlAQAAoBNolzeUAQAAAO2BcAsAAADDINwCAADAMAi3AAAAMAzCLQAAAAyDcAsAAADDINwCAADAMAi3AAAAMAzCLQAAAAyDcAsAAADDcNvH7wIAgPZXVbTWaXvY8AntvBKgY2DnFgAAAIZBuAUAAIBhEG4BAABgGIRbAAAAGAbhFgAAAIZBuAUAAIBhEG4BAABgGIRbAAAAGAbhFgAAAIZBuAUAAIBhEG4BAABgGIRbAAAAGAbhFgAAAIZBuAUAAIBhEG4BAABgGIRbAAAAGAbhFgAAAIZBuAUAAIBhEG4BAABgGIRbAAAAGAbhFgAAAIZBuAUAAIBhdPH0AgAAgPtVFa112h42fEI7rwRoX+zcAgAAwDAItwAAADAMwi0AAAAMg3ALAAAAwyDcAgAAwDDaNNy+9tprGjBggAYMGKC9e/c2OV5TU6MXXnhBP/rRjxQTE6Phw4frd7/7naqqqpqdc+vWrZo4caJuueUW3XrrrfrZz36m3bt3t+VpAAAAwEu0Wbg9evSoFi1apG7dujk9funSJaWnp2vZsmUKDw/X5MmTNXjwYOXm5iotLU1ffPFFkzFLly7VrFmzVFpaqtTUVKWkpOjo0aOaMmWKtmzZ0lanAgAAAC/RJs+5raur02OPPaZBgwYpKipKf/nLX5r0Wb58uUpKSpScnKzs7Gz5+PhIkvLy8jR79mxlZ2fr+eeft/cvKyvTwoULFRoaqg0bNqh3796SpOnTpyslJUVz5sxRYmKiunfv3hanBAAAAC/QJuH2lVde0dGjR7VhwwYtW7asyXGr1arc3FxJUmZmpj3YSlJaWpqWLVumTZs26fHHH1dwcLAkaf369bJYLHrggQfswVaSIiIilJ6ergULFqigoEBpaWktrq+ysrLFPvX19S32AQDA2/DhDjA6t4fbjz/+WK+++qp++ctf6oYbbnDap6ysTCaTSX379lVkZGST48OGDdOqVat04MABDR06VJK0Z88eSVJiYmKT/sOHD9eCBQu0Z88el8LtiBEjWuwTFhamxYsXS5IOHTrkEMBbYrFYJEkHDhxweYwRcR2+wrVAR8W96f0CTCa3zFPRzvcA917nZrVa22xut9bcms1mPfbYYxowYICmTZvWbL/S0lJJUnR0tNPjtnZbv8ZfR0VFNelvaysrK2v1mgEAAGAcbt25ffHFF1VaWqp169bJz8+v2X4XLlyQJHvJwdfZ2m39JKm6ulqSFBIS0qR/UFCQ/Pz8dP78eZfWWVhYAltxoAAAIABJREFU2GKf+vp6e/nCoEGDFBAQ4NLc0lc/hcbGxro8xoi4Dl/hWqCj4t70flVnD7llnrB2vge49zo3s9ms4uLiNpnbbeF2//79euONN/TII49owIABbpmzNaUAVqvV5f69evVqsY/ZbHapNhcAAAAdh1vKEurq6vTrX/9aAwYM0M9//vMW+9t2X227sV9na2+8s+tsN9empqZGDQ0NTnd1AQAA0Hm4Zef24sWL9prYmJgYp33uv/9+SdLLL79sf6NZ45raxpzV5EZHR+vMmTMqKytTaGioQ39bra2zelwAAAB0Hm4JtwEBAbr33nudHtu7d69KS0v1X//1XwoPD1dkZKSioqIUERGhY8eO6cSJE02emLBjxw517drVoQ4nPj5e+/fv186dOzV48GCH/kVFRfY+AAAA6LzcEm6/9a1v6bnnnnN67Ne//rVKS0s1bdo0DRkyxN4+fvx4LVq0SNnZ2U0+xKG0tFTjxo1zKEtITU3V8uXLtXr1ao0bN87+rFuTyaSVK1eqR48eGj16tDtOBwAAAF6qTT7EwRVTp07V9u3btXnzZlVUVCguLk7l5eXatm2bIiMjlZmZ6dA/KipKGRkZmjdvnlJSUpScnCwfHx9t2bJFVVVVmj9/Pp9OBgAA0Ml5LNwGBgZq5cqVWrJkifLz85WTk6OePXsqLS1NGRkZCg8PbzJm+vTpioyMVE5OjtatWydfX1/FxMRo5syZSkhI8MBZAAAAoCNp83A7d+5czZ071+mx4OBgZWVlKSsry+X5kpKSlJSU5K7lAQAAwEDc+gllAAAAgCcRbgEAAGAYhFsAAAAYBuEWAAAAhkG4BQAAgGEQbgEAAGAYhFsAAAAYBuEWAAAAhuGxTygDAACuqypa6+klAF6BnVsAAAAYBju36PDWFHzitH3S6IHtvBIAANDRsXMLAAAAwyDcAgAAwDAoS4DhUMYAAEDnRbiF12ouxAIAgM6LsgQAAAAYBuEWAAAAhkG4BQAAgGEQbgEAAGAYhFsAAAAYBk9LAAAAqipa67Q9bPiEdl4J8M2wcwsAAADDINwCAADAMAi3AAAAMAzCLQAAAAyDcAsAAADD4GkJAAB0IM09tQCAa9i5BQAAgGEQbgEAAGAYhFsAAAAYBjW36DDWFHzi6SUAAAAvx84tAAAADINwCwAAAMOgLAGdRnNlD5NGD2znlQAAgLbCzi0AAAAMg3ALAAAAwyDcAgAAwDAItwAAADAMt72hzGw2a/78+SouLlZZWZnOnTun7t27q0+fPkpLS9NPf/pT+fv7O4ypqanRkiVLlJ+fL5PJpLCwMI0cOVKzZs1SWFiY09fZunWrVqxYocOHD8vX11cxMTGaMWOGEhIS3HUqAAAA8FJuC7dffvml1qxZo9jYWI0cOVJhYWE6d+6cduzYoccff1ybN2/WsmXL5Ot7ebP40qVLSk9PV0lJiW6++WaNGTNG5eXlys3N1a5du5Sbm6vw8HCH11i6dKnmzZun0NBQpaamysfHR1u2bNGUKVM0f/58JSUluet04AbvfnRGklRy0vEpBTydAAAAtBW3hduQkBDt3btXAQEBDu11dXV66KGHtGvXLm3fvl2jRo2SJC1fvlwlJSVKTk5Wdna2fHx8JEl5eXmaPXu2srOz9fzzz9vnKSsr08KFCxUaGqoNGzaod+/ekqTp06crJSVFc+bMUWJiorp37+6uUwIAAICXcVvNrY+PT5NgK0ldunSxB9ry8nJJktVqVW5uriQpMzPTHmwlKS0tTdHR0dq0aZOqq6vt7evXr5fFYtEDDzxgD7aSFBERofT0dJ09e1YFBQUurbWysrLF/06fPt36iwAAAACPavMPcWhoaNCOHTskSQMHXv51dFlZmUwmk/r27avIyMgmY4YNG6ZVq1bpwIEDGjp0qCRpz549kqTExMQm/YcPH64FCxZoz549SktLa3FNI0aMaLFPWFiYFi9eLEk6dOiQQwBvicVikSQdOHDA5TFGVF9fL0kymUwO7QcOmJ32N5nOtPmanGluPe7EPYGOinuz4wn42vdMT6too3uDe69zs1qtbTa328NtXV2dXnnlFVmtVp09e1a7d+/WZ599prS0NHtQLS0tlSRFR0c7ncPWXlpa2mRMVFRUk/62trKyMvedCNqMrRYXAADA3dwebuvr6+07ntLlcoWHHnpIjz76qL3twoULkqTg4GCnc9jabf0k2UsUQkJCmvQPCgqSn5+fzp8/79IaCwsLW+xTX1+vyspKSdKgQYOcllw0x/ZTaGxsrMtjjOjdjy5f54iICA+v5MpiY9v+DW7cE+iouDc7nqqzhzy9BAdhbXRvcO91bmazWcXFxW0yt9vDbdeuXXX48GE1NDTo1KlT2r59uxYsWKB9+/Zp2bJlTsNpc1pTCmC1Wl3u36tXrxb7mM1me7jFla0p+KTlTgAAAO2gzT7EwdfXV7169dKkSZP09NNP66OPPtLLL78s6avd18ZvGGvM1t54Z9fZbq5NTU2NGhoaWhWcAQAAYDzt8glltjeBffDBB5Ica2qdcVaTa/vaWV2trc1ZPS4AAAA6j3YJt7Z3y3fpcrkKIioqShERETp27JhOnDjRpP+OHTvUtWtXhzqc+Ph4SdLOnTub9C8qKnLoAwAAgM7JbeH2yJEjOnOm6bvgL126pLlz50q6/Mgu6XIt7fjx4yVJ2dnZDo+DyMvLU2lpqcaOHetQlpCamip/f3+tXr1aJ0+etLebTCatXLlSPXr00OjRo911OgAAAPBCbntDWUFBgZYuXaq4uDhdd911Cg4OlslkUlFRkc6ePasf/OAHmjp1qr3/1KlTtX37dm3evFkVFRWKi4tTeXm5tm3bpsjISGVmZjrMHxUVpYyMDM2bN08pKSlKTk62f/xuVVWV5s+fz6eTAQAAdHJuC7cjR47UqVOntH//fv3rX//SxYsXFRwcrP79+ys5OVn33nuvvSxBkgIDA7Vy5UotWbJE+fn5ysnJUc+ePZWWlqaMjAyFh4c3eY3p06crMjJSOTk5WrdunXx9fRUTE6OZM2cqISHBXacCAAAAL+W2cHvTTTfppptuatWY4OBgZWVlKSsry+UxSUlJSkpKau3yAAAA0Am0+cfvAt7qSs/vnTS67T/4AQAAtF67PC0BAAAAaA+EWwAAABgG4RYAAACGQc0tAABoVlXRWqftYcMntPNKANewcwsAAADDINwCAADAMChLgMuu9Ggsb2bU8wIAoDNi5xYAAACGQbgFAACAYRBuAQAAYBiEWwAAABgG4RYAAACGQbgFAACAYRBuAQAAYBiEWwAAABgG4RYAAACGQbgFAACAYRBuAQAAYBiEWwAAABgG4RYAAACGQbgFAACAYRBuAQAAYBiEWwAAABhGF08vAACAzqiqaK2nlwAYEuG2k1pT8InT9kmjB7bzSgAAANyHsgQAAAAYBuEWAAAAhkG4BQAAgGEQbgEAAGAYhFsAAAAYBk9LgIPmnqIAAADgDdi5BQAAgGEQbgEAAGAYlCUYHGUGAACgM2HnFgAAAIZBuAUAAIBhEG4BAABgGG6ruTWZTCooKFBhYaE+++wznT59WsHBwYqNjdXkyZM1dOjQJmNqamq0ZMkS5efny2QyKSwsTCNHjtSsWbMUFhbm9HW2bt2qFStW6PDhw/L19VVMTIxmzJihhIQEd50KAAAAvJTbdm5XrVql5557TuXl5UpISNCUKVMUFxennTt3asqUKXrjjTcc+l+6dEnp6elatmyZwsPDNXnyZA0ePFi5ublKS0vTF1980eQ1li5dqlmzZqm0tFSpqalKSUnR0aNHNWXKFG3ZssVdpwIAAAAv5bad29jYWP3pT3/SkCFDHNr37t2ryZMnKzs7W0lJSYqIiJAkLV++XCUlJUpOTlZ2drZ8fHwkSXl5eZo9e7ays7P1/PPP2+cpKyvTwoULFRoaqg0bNqh3796SpOnTpyslJUVz5sxRYmKiunfv7q5TAgAAgJdx287tnXfe2STYStKQIUMUHx8vi8Wi/fv3S5KsVqtyc3MlSZmZmfZgK0lpaWmKjo7Wpk2bVF1dbW9fv369LBaLHnjgAXuwlaSIiAilp6fr7NmzKigocGmtlZWVLf53+vTpq7oOAAAA8Jx2ec5tly5dHP5fVlYmk8mkvn37KjIyskn/YcOGadWqVTpw4IC9VnfPnj2SpMTExCb9hw8frgULFmjPnj1KS0trcT0jRoxosU9YWJgWL14sSTp06JBDAG+JxWKRJB04cMDlMW3FZDrjsdeur6//vzWYPLaGtnLggLlV/TvSPQE0xr3pOQFe/r2x4hveM9x7nZvVam2zuds83H7++ed6//331bVrV916662SpNLSUklSdHS00zG29tLSUnu4tY2Jiopq0t/WVlZW5r6FA1fw7kfOf2j40eDQdl4JAABorE3DrcViUVZWlsxmszIyMhQaevkf/gsXLkiSgoODnY6ztdv6SbKXKISEhDTpHxQUJD8/P50/f96ldRUWFrbYp76+XpWVlZKkQYMGKSAgwKW5pa9+Co2NjXV5TFspOem5Tyiz7dja6qw7g9jYgU7bO9I9ATTGvek5VWcPeXoJ30jYN7xnuPc6N7PZrOLi4jaZu83CbUNDgx5//HH985//1KhRozRjxoxWz9GaUgCr1epy/169erXYx2w228MtAAAAvEObfIiD1WrV7Nmz9Ze//EV33HGHFixYIF/fr17Ktvva+A1jjdnaG+/sOtvNtampqVFDQ4PTXV0AAAB0Hm7fuW1oaNATTzyh9evX64477tDChQub/Eq/cU2tM85qcqOjo3XmzBmVlZXZyxtsbLW2zupxAQCA+1UVrXXaHjZ8QjuvBHDk1p3bxsF21KhReumll5zWqkZFRSkiIkLHjh3TiRMnmhzfsWOHunbt6lCHEx8fL0nauXNnk/5FRUUOfQAAANA5uS3cNg62d955p1588UX5+/s77evj46Px48dLkrKzsx0eB5GXl6fS0lKNHTvWoSwhNTVV/v7+Wr16tU6ePGlvN5lMWrlypXr06KHRo0e763QAAADghdxWlvDyyy9r/fr16tatm/r166dXX321SZ9Ro0Zp0KBBkqSpU6dq+/bt2rx5syoqKhQXF6fy8nJt27ZNkZGRyszMdBgbFRWljIwMzZs3TykpKUpOTpaPj4+2bNmiqqoqzZ8/n08nAwAA6OTcFm5t5QUXL150GmwlKTIy0h5uAwMDtXLlSi1ZskT5+fnKyclRz549lZaWpoyMDIWHhzcZP336dEVGRionJ0fr1q2Tr6+vYmJiNHPmTCUkJLjrVLzSmgLPPfILAAAbanHhaW4Lt3PnztXcuXNbNSY4OFhZWVnKyspyeUxSUpKSkpJauzwAAAB0Am3yKDAAAADAE9r843fhXpQfdGzN/f3E9G7nhQDoMJr7NT2AtsHOLQAAAAyDcAsAAADDINwCAADAMAi3AAAAMAzCLQAAAAyDcAsAAADDINwCAADAMAi3AAAAMAzCLQAAAAyDcAsAAADDINwCAADAMAi3AAAAMAzCLQAAAAyDcAsAAADDINwCAADAMAi3AAAAMAzCLQAAAAyji6cXAAAAjK+qaK3DnwNMpsvtZw8pbPgETywJBsXOLQAAAAyDcAsAAADDINwCAADAMAi3AAAAMAzCLQAAAAyDcAsAAADDINwCAADAMAi3AAAAMAzCLQAAAAyDcAsAAADDINwCAADAMLp4egFwbk3BJ55eAtzo3Y/OSJJKTjr+vU4aPdATywEAwLDYuQUAAIBhEG4BAABgGIRbAAAAGAbhFgAAAIZBuAUAAIBhEG4BAABgGG57FNjGjRv14YcfqqSkREeOHJHFYtHvf/97paamOu1fU1OjJUuWKD8/XyaTSWFhYRo5cqRmzZqlsLAwp2O2bt2qFStW6PDhw/L19VVMTIxmzJihhIQEd50GAAAAvJjbwu3ChQt14sQJhYaG6tprr9WJEyea7Xvp0iWlp6erpKREN998s8aMGaPy8nLl5uZq165dys3NVXh4uMOYpUuXat68eQoNDVVqaqp8fHy0ZcsWTZkyRfPnz1dSUpK7TgUAgFapKlrr6SUA+D9uC7fPPvusoqKiFBkZqddee03Z2dnN9l2+fLlKSkqUnJys7Oxs+fj4SJLy8vI0e/ZsZWdn6/nnn7f3Lysr08KFCxUaGqoNGzaod+/ekqTp06crJSVFc+bMUWJiorp37+6u0wEAAO2kuR8OwoZPaOeVwAjcVnM7dOhQRUZGttjParUqNzdXkpSZmWkPtpKUlpam6Ohobdq0SdXV1fb29evXy2Kx6IEHHrAHW0mKiIhQenq6zp49q4KCAnedCgAAALxUu7+hrKysTCaTSX379nUahocNG6ba2lodOHDA3rZnzx5JUmJiYpP+w4cPd+jjisrKyhb/O336dGtPDQAAAB7mtrIEV5WWlkqSoqOjnR63tZeWlmro0KEOY6Kiopr0t7WVlZW5vIYRI0a02CcsLEyLFy+WJB06dMhhh7klFotFkhwCemuZTGeuemxHUV9fL0kymUweXonnNXctDhwwe2I5gJ07vl9BCuD7XKvZvi+eusK1q+C+NCyr1dpmc7f7zu2FCxckScHBwU6P29pt/STZSxRCQkKa9A8KCpKfn5/Onz/v7qUCAADAy7T7zq2rWrNTarVaW9W/sLCwxT719fWqrKyUJA0aNEgBAQEuz2/bAYmNjXV5zNeVnPzkqsd2FLZdyoiICA+vxPOauxaxsQM9sRzAzh3fryBVnT3k6SV4HduO7bVX+DcijPvSsMxms4qLi9tk7nYPt7bd18ZvGGvM1t54Zzc4OFhnzpzRhQsXFBoa6tC/pqZGDQ0NTnd1m9OrV68W+5jNZnu4BQAAgHdo97KExjW1zjirybV97ayu1tbmrB4XAAAAnUu779xGRUUpIiJCx44d04kTJ5o8MWHHjh3q2rWrw6/I4uPjtX//fu3cuVODBw926F9UVGTvAwBAW+LDGoCOr913bn18fDR+/HhJUnZ2tsO75fLy8lRaWqqxY8c6lCWkpqbK399fq1ev1smTJ+3tJpNJK1euVI8ePTR69Oj2OwkAAAB0SG7buc3Ly9OHH34oSTpy5Ii97YMPPpAk3XrrrUpLS5MkTZ06Vdu3b9fmzZtVUVGhuLg4lZeXa9u2bYqMjFRmZqbD3FFRUcrIyNC8efOUkpKi5ORk+8fvVlVVaf78+Xw6GQAAANwXbj/88ENt2LDBoW3fvn3at2+f/c+2cBsYGKiVK1dqyZIlys/PV05Ojnr27Km0tDRlZGQoPDy8yfzTp09XZGSkcnJytG7dOvn6+iomJkYzZ85UQkKCu04DAAAAXsxt4Xbu3LmaO3euy/2Dg4OVlZWlrKwsl8ckJSUpKSnpapbncWsKvP/RXgAAAB1du9fcAgAAAG2FcAsAAADD6LCfUAZ0Bs2Vq0wazSeXAQBwNdi5BQAAgGEQbgEAAGAYhFsAAAAYBuEWAAAAhkG4BQAAgGEQbgEAAGAYPArMzdYUfCKT6YwkqeQkn0oGAADQngi3AAB8TVXRWk8vAcBVoiwBAAAAhkG4BQAAgGEQbgEAAGAYhFsAAAAYBuEWAAAAhkG4BQAAgGHwKDCgA1pT4PwZyZNGD2znlQCA5zT3SLaw4RPaeSXwJoRbAECnxfNsAeOhLAEAAACGQbgFAACAYRBuAQAAYBiEWwAAABgGbygDABgG764HQLgFAHid1j7lgKciAJ0HZQkAAAAwDHZur1JzD9kHALgPO64AWotwCwAAvAq11bgSyhIAAABgGIRbAAAAGAbhFgAAAIZBuAUAAIBhEG4BAABgGIRbAAAAGAaPAgMAtBse4YS2xP0FiXDrkrcL/626Bja5AQAAOjrCLQBAkmd3vfgkMgDuQrgFgA6mtUGPX7kCwFe8LtwePHhQL730kvbt26fa2lr17dtXEydO1IQJE+Tj4+Pp5QFtak3BJ07bJ40e2M4rgTdwJSQHmEyX+5499I3mAToyanE7F68Kt3v37tWUKVNktVp11113KSIiQkVFRXryySd1+PBhPfnkk55eIgAP4x8xAOjcvCbc1tXV6YknnpDZbNZrr72mESNGSJIyMjI0bdo0rVmzRklJSbrttts8vFIA3qS1YfhKu5itDdDu2hFlZxUAvuI14XbPnj0qLS1VfHy8PdhKUkBAgGbNmqX77rtPa9euJdyiUzJyuYKndmKvJjASMgHA87wm3H7wwQeSpMTExCbHbrnlFoWEhNj7tKSysrLFPnV1dfav/Xyskm+DiyuVArpcrv3t0ooxRsR1+IqnrkXutoNO2+8ZcUO7rsMVZ/f8xfkBHz+nzWaz2Wl7XTP9T+14q1XzdxYNfgGSmr9uQFvpCPdec99Hmvt+1DP+p225nE7FYrHYv7ZarW6d22vC7bFjxyRJUVFRTY75+Pjo+uuv18cff6xLly4pMDDwinM13vltTr9+/fTss89KkqJDv2zVWr8bFvR/X11q1Tij4Tp8paNdi+LiYk8voalufVvV/Xhz59DKeTq9qMvX67iHl4FOqAPce639PtJsf3wjdXV16tq1q9vm85pPJqiurpYkhYSEOD1ua79w4UK7rQkAAAAdi9fs3LbEtqXtyuPACgsLW+zT0NCguro6hYeHq0uXLi4/Zuz06dO69957JUlvvfWWrrnmGknSuHHjJEnr1q1z6N9cu7vHtPex5q7DN329qx3ryTEtXYuOrKW/C297XXfMe7VztHacK/2/aR9vvjcba+/71N2v903mu5qxro5xxz14tf9GdHTtec+587U60r1mtVrtJaAt/ca9tbwm3AYHB0tqfmfWtrNr63clvXr1ct/CvsbPz09VVVX2rwMCLtcUnTt3TpLsf7Zprt3dY9r7WHPX4Zu+3tWO9eSYlq5FR9bS34W3va475r3aOVo7zpX+37SPN9+bjbX3feru1/sm813NWFfHuOMevNp/Izq69rzn3PlaHe1ec2cpQmNeU5bQt+/l+peysrImx6xWq44fP66IiAi3p38AAAB4D68Jt3FxcZKknTt3Njm2f/9+nT9/3t4HAAAAnZPXhNv4+HhFR0drz549DjWzFotFL774oiRpwgQ+gQgAAKAz85qa2y5duujZZ5/VQw89pIcfflhjxozRtddeq6KiIh05ckT33XcfH+AAAADQyflY3f3k3Db28ccfa9GiRfrwww9VW1ur6Oho3XfffZo4caLLTzRoS5WVlfbn6BYWFrbpm9c6Mq7DV7gW6Ki4N+Ep3HtoS16zc2vz/e9/X6+++qqnlwEAAIAOyGtqbgEAAICWEG4BAABgGF5XcwsAAAA0h51bAAAAGAbhFgAAAIZBuAUAAIBhEG4BAABgGIRbAAAAGAbhFgAAAIZBuAUAAIBhEG47sP/93/9VamqqbrnlFg0dOlQZGRmqqKjw9LLQhvg7R0eVk5Oj5ORk3XLLLRoyZIjS09P1r3/9y9PLQif05JNPasCAAVq9erWnl4IOinDbgX3wwQd68MEHlZeXp6VLl+rcuXOaPn266urqPL20Fh08eFAzZsxQXFycbr75Zt1zzz168803xWeGXJk3/53D2L7zne/o17/+tTZu3Kg333xT119/vaZOnaqzZ896emnoRN577z199NFHuvbaaz29FHRgfEKZFzl+/LhGjRqljRs3auDAgZ5eTrP27t2rKVOmyGq16q677lJERISKiop05MgRTZo0SU8++aSnl+g1vOXvHJ1PdXW1br31Vq1atUpxcXGeXg46gf/85z8aN26cXnvtNc2cOVMPPfSQHnjgAU8vCx1QF08vwJtt3LhRH374oUpKSnTkyBFZLBb9/ve/V2pqarNjDh48qJdeekn79u1TbW2t+vbtq4kTJ2rChAny8fG54utVV1dLknr27OnW83Cnuro6PfHEEzKbzXrttdc0YsQISVJGRoamTZumNWvWKCkpSbfddpuHV3p1+DtHR9We96bZbNbatWvVo0cP9e/fvy1OB16mPe6/3/zmN3rwwQc1YMCAtjwVGADh9htYuHChTpw4odDQUP3/9u4/pqr6j+P46yYSmjBDQxahNAiSmWWUiJFF3cFQi7gbJmuuZcMtXa3cnMxVYBmjYNnWrGTLbJjTmSm5yVpoUrcaiFButMFa/gBKUkmhxMuNe75/+L18vwgiXLn3cg/Pxz/IOZ977vv4eY+9+HDOuREREWpraxty/LVWNAsKCtTU1DTkimZvb6+Ki4u1aNEiRUZGjvapjJqamhqdPHlSycnJfcFWkoKDg/Xyyy8rNzdXu3fvDthwy5xjrPJFb9bV1SkvL0+XL1/W9OnTtW3bNn7xgiTv99+OHTt06dIlrVy50punAbMw4LHvv//eaG1tNQzDMLZu3WrEx8cbe/fuHXSs0+k00tPTjfj4eOPIkSN92x0Oh7FixQojPj7eqK2tHfS1LpfLyM/PN6xWq3Hu3LnRP5FR9O677xrx8fHG1q1bB+xzuVxGUlKS8fDDD/uhstHBnGOs8kVvdnd3GydPnjQaGhqM/Px84/HHHzfOnz/vnRNCQPFm//36669GSkqK0dLS0rctLS3NKC8v99LZINBxQ9kNWLhwoaKiooY19normpK0e/fuAa8zDEMFBQWqqanR9u3bNW3atNEp3ktOnDghSZo1a9aAfRaLRTNnzlR7e7u6u7t9XdqoYM4xVvmiN0NCQjRr1izdd999Kioq0k033aQvvvhidE4AAc2b/ffzzz+ro6ND6enpSkxMVGJiotra2vTWW29p6dKlo3siMAUuS/CR2tpaSVJqauqAffPmzVNoaGjfGDfDMLRx40ZVV1drx44dw/7B4U/ua0RDQ0MH3e/e3tXVpUmTJvmsLn8YL3OOwONJb17NYrHIMAz19PR4pUaY10j7z2q1as6cOf3GPf/887LZbMrOzvZusQhIhFsfGc6KZmNjo7q7u/tCX2FhoQ4ePKinEVBdAAAINklEQVQPP/xQISEhOnv2rKQrATEkJMR3xY8i478P57jejVRmwJxjrPKkN0tLS5WWlqbIyEhdvHhRO3fu1JkzZ5SRkeHT2hH4Rtp/YWFhCgsL6zdu4sSJuu222xQTE+OLkhFgCLc+4smK5q5duyRJzzzzTL+x17sD1Z+mTJki6cp5DMb9/+AeZ2bjZc4ReDzpzfb2dq1du1bnz5/X1KlTNWfOHH322WeKjY31TdEwDf7CB28b1+H2scceu+4dnf/vnXfeUVZWlldqGWxFs6mpySvv5U133nmnJOnUqVMD9hmGoZaWFs2YMYMfWDLPnMN8BuvNkpISf5WDcWY4f+E7fPiwr8pBABrX4TYjI0N//fXXsMfPnDnT4/caLyua8+fP10cffSS73a5Vq1b129fQ0KDOzs5+NxCY2XiZcwQeehP+RP/B28Z1uF2/fr3P3mu8rGgmJycrJiZGNTU1qq6u7guyTqdT7733niTp6aef9meJPjNe5hyBh96EP9F/8DYeBeYj7o+ntNvtA/a5VzTN8BGWQUFB2rRpk4KDg7VmzRqtW7dOJSUlstlsqqmpUW5ubsB+gMNIjZc5R+ChN+FP9B+8jXDrI1evaLqZcUXzwQcf1K5du5SamqojR46ovLxcFotFhYWFQ34il9mMpzlHYKE34U/0H7zNYriv3MaI7dmzR8eOHZMkNTc3q7GxUffff3/f402SkpKUk5PTN/7o0aNauXKlDMNQZmamIiIi9O2336q5uVm5ubkqLCz0x2lgBJhzjFX0JvyJ/sNYQri9Afn5+dq3b98192dnZ6u4uLjftsbGRr3//vs6duyYHA6HYmJilJubq+XLl4+LZ78GOuYcYxW9CX+i/zCWEG4BAABgGlxzCwAAANMg3AIAAMA0CLcAAAAwDcItAAAATINwCwAAANMg3AIAAMA0CLcAAAAwDcItAAAATINwCwAAANMg3AIAAMA0CLcAAAAwDcItAAAATINwCwAAANMg3AKAD7300ktKSEhQQUHBkOPKysqUkJCgZcuWyeVyyel0ym63a9OmTbLZbEpOTtY999yj9PR0vfHGG/rjjz9Gpb7MzEwlJCQoNTVVvb29o3JMAPAli2EYhr+LAIDx4ty5c1qyZIkuXryoTz/9VMnJyQPGnDhxQllZWXK5XNq/f7/i4uL0ww8/6LnnnpMkRUVFafbs2ZKk48eP688//1RoaKg+/vhj3XvvvR7Xdvz4ceXk5PR9X1ZWpkceecTj4wGAP7ByCwA+NH36dG3YsEGGYejVV19Vd3d3v/3u7Q6HQ2vWrFFcXJwkyWKxaPHixdqzZ48OHz6sLVu2aMuWLaqqqpLNZlNXV5fWrl2rf//91+Pa9u3bJ0mKiIiQJO3fv9/jYwGAvxBuAcDHsrKylJaWptOnT2vz5s399u3cuVN1dXVKTExUXl5e3/aUlBRt3rxZc+fO7Tf+5ptvVkFBgUJDQ9Xa2qqGhgaPaurp6dHBgwclSSUlJZowYYIOHTqkrq4uj44HAP5CuAUAP9i4caNCQ0NVXl7eF0h///13lZaWKigoSEVFRQoKChrWsUJCQhQTEyNJam9v96ieb775RhcuXNDcuXO1YMECpaSkyOFwqLKy0qPjAYC/EG4BwA9mzJih9evXy+VyacOGDerp6dFrr72mS5cuKS8vr++a2uHo7e1VW1ubJGnatGke1eO+BOGpp56SJGVnZ0v636UKABAoCLcA4Cc5OTlauHChfvvtN61YsUJ2u1133XWXVq9ePaLjVFRUqKOjQ+Hh4UpKShpxHR0dHfruu+80ceJELV68WJJktVo1ZcoU1dfX69SpUyM+JgD4C+EWAPzozTff1OTJk/XTTz9pwoQJKioqUnBw8LBf39raqrfffluS9Morr4zotW4HDhyQ0+nUokWLdOutt0q6cqlDZmamJG4sAxBYCLcA4Ed33HGHli9fLunKaunVN4wN5e+//9bq1at14cIFZWRkaNmyZR7VcPUlCW7u7ysqKsRTIwEEiuHdrQAA8JrJkyf3+zocDodDL7zwgpqamrRgwQKVlpYOGFNXV6fPP/98wPa8vDzFxsZKkpqbm/XLL79o6tSpevTRR/uNe+CBBxQdHa2WlhYdPXpU8+fPH8FZAYB/EG4BIMA4nU69+OKLqq2t1bx58/TBBx8MejnC6dOnB70hLDs7uy/cuve7XC49++yzA8b+888/feMItwACAeEWAAKIy+XSunXrVF1drdmzZ6usrEy33HLLoGNtNptsNts1j9Xb26sDBw5Ikjo7O1VfX3/NsV999ZVef/11TZo06cZOAAC8jHALAAHC/elllZWVio2N1bZt2xQWFubx8ex2u86ePavo6GhVVVVdc1xubq7q6+v19ddf68knn/T4/QDAF7ihDAACRHFxsfbu3avo6Gh98sknCg8Pv6HjVVRUSJKWLFky5LilS5dK4qkJAAIDK7cAEACqqqq0fft2SdLtt98+4GN73axWq6xW63WP19XVpUOHDkmSnnjiiSHHZmZmqqioSD/++KPOnDmjyMjIkRUPAD5EuAWAANDZ2dn375qammuOi4qKGla4rays1OXLl3X33XcrLi5uyLHh4eF66KGHVF1drS+//FKrVq0afuEA4GMWg4cXAgAAwCS45hYAAACmQbgFAACAaRBuAQAAYBqEWwAAAJgG4RYAAACmQbgFAACAaRBuAQAAYBqEWwAAAJgG4RYAAACmQbgFAACAaRBuAQAAYBqEWwAAAJgG4RYAAACmQbgFAACAaRBuAQAAYBqEWwAAAJgG4RYAAACmQbgFAACAafwHISfq6koSM/YAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "flow.HistogramView(channel = \"Y2-A\",\n", " scale = \"logicle\",\n", " yfacet = \"Dox\",\n", " huefacet = 'T').plot(ex2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It's also important to note that we can still access the underlying `pandas.Dataframe`: either by looking at the `Experiment.data` attribute, or by referencing a column directly:" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 False\n", "1 True\n", "2 False\n", "3 False\n", "4 False\n", "5 False\n", "6 True\n", "7 False\n", "8 True\n", "9 False\n", "Name: T, dtype: bool" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ex2[\"T\"].head(10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Because the data is all stored in a single `pandas.Dataframe`, we can use the `pandas` API, and indeed the rest of the SciPy stack, to ask sophisticated questions of the underlying data. For example, \"how many events of each Dox concentration were above the threshold?\"" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Dox T \n", "1.0 False 9946\n", " True 54\n", "10.0 False 5561\n", " True 4439\n", "dtype: int64" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ex2.data.groupby(['Dox', 'T']).size()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`cytoflow` can answer the same question for us using one of its statistics views. In `cytoflow`, a *statistic* is a number that summarizes a population; one of the key features\n", "of `cytoflow` is that it makes it easy to see how these summary statistics change as your experimental conditions change.\n", "\n", "Several operations add statistics to an experiment; one of the most straightforward ones is `ChannelStatisticOp`. It groups the experiment's data by the conditions specified in `by`, then applies `function` to `channel` for each group.\n", "\n", "In this case, we'll divide up the data into the subgroups `T == True & Dox == 1`; `T == True & Dox == 10`; `T == False & Dox == 1`; and `T == False & Dox == 10`. Then, we'll apply the function `len` to the `Y2-A` channel." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "ex3 = flow.ChannelStatisticOp(name = \"ByDox\",\n", " channel = \"Y2-A\",\n", " by = ['T', 'Dox'],\n", " function = len).apply(ex2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we can look at the new statistic: `Experiment.statistics` is a dictionary whose keys are tuples and whose values are the computed statistics (stored as `MultiIndex`ed `pandas.Series`). The first element in the tuple is the name of the operation that added it, and the second is defined by that operation. In this case, it's `len`, the name of the function." ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "T Dox \n", "False 1.0 9946\n", " 10.0 5561\n", "True 1.0 54\n", " 10.0 4439\n", "Name: ByDox : len, dtype: int64" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ex3.statistics[(\"ByDox\", \"len\")]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can also plot statistics using one of the various statistics views, such as `BarChartView`." ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "image/png": "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lSpVUufOnVWuXDmdPHlSX3/9tdavX6+vv/5ajz32mCQpOztbY8aM0Y4dO/Too49q0KBBunz5sjZt2qSIiAitWLFCjzzyiM31N27cqL/97W9yd3dX9+7d5eXlpS1btmjcuHGKj4/XiBEjbOoTExPVp08fxcXF6cknn1S9evV06tQpffnll9q/f7+WLVsmd3f3Evt8AADA/e/AgQOaOXOm2rRpoz59+ujSpUt3fa3ExES9+OKLOnfunFq2bKkOHTooOTlZP/zwgwYOHKjZs2erQ4cODhx9yTBUCL506ZKWLVumatWqad26dfL29rYemz9/vqZNm6bFixfrww8/lCR999132rFjh1q0aKGFCxfK1dVVktSzZ0+NGDFC7733nhYvXmy9RkpKiiZPniwXFxctX75c9erVkySNHj1affr0UVhYmLp06aIaNWpYz5k6dari4uI0YsQIvfHGG9b2GTNmaN68eVqwYIFGjx5drJ8LAAB4sERERGjq1Kn605/+VORrvffeezp37pw++eQT9erVy9p+4cIFPf/885o4caK2b98uFxeXIvdVkgy1HCI+Pl4Wi0VNmjSxCcCSrP+CuXr1qrVt5cqVkqRx48ZZA7AktW3bVm3atNH+/fsVHR1tbd+8ebOSk5PVo0cPawCWJE9PT40aNUoZGRlavXq1tT01NVXr16+Xh4eHXdAdNWqUvLy8FB4eLovFUvSbBwAAhtG0aVOHBOALFy5o69atateunU0AlqQqVapo6NChunjxoiIjI4vcV0kz1ExwQECAXFxc9L///U8pKSk2QfjHH3+UJLVu3VrSrXUxR48elYeHh5o1a2Z3rfbt22vPnj2KjIxUYGCgpFs/epBuheQ/ateunSTp4MGD1rYjR47IbDYrKChIHh4eNvVly5ZVy5YttX37dsXGxiogIOCO95aQkJDP3UtZWVn51gAAgPtfw4YNHXKdo0ePymKxKC0tTbNmzbI7/uuvv0qSzp49qzZt2jikz5JiqBDs6+ur119/XR9//LG6deumTp06ydPTUydOnFBkZKRefPFF9e/fX5IUGxurrKwsVa9eXc7O9ptd54TS3DPBOV/nFVh9fHzk4+OjmJgYu/qcEP1HOe3R0dH5huCCrMWpUKGC9anSkydPymQy5XuOIzz++OMl0g8cz2w269SpU6U9DAAGlZmZKQ8PD924cSPP42XL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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "flow.BarChartView(statistic = (\"ByDox\", \"len\"),\n", " variable = \"Dox\",\n", " huefacet = 'T').plot(ex3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Statistics are important enough that they get an entire notebook of examples; please see `Statistics.ipynb` for a more in-depth exploration.\n", "\n", "I hope this makes the semantics of the `cytoflow` package clear. This was a pretty simplistic toy analysis; for more sophisticated examples, see the other accompanying Jupyter notebooks." ] } ], "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.6.7" } }, "nbformat": 4, "nbformat_minor": 1 }