{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "You can find the source for `wmfdata` at https://github.com/neilpquinn/wmfdata\n" ] } ], "source": [ "import pandas as pd\n", "from wmfdata import charting, hive\n", "import numpy as np" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "ename": "AttributeError", "evalue": "module 'matplotlib' has no attribute 'style'", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mcharting\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mset_mpl_style\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;32m~/venv/lib/python3.5/site-packages/wmfdata/charting.py\u001b[0m in \u001b[0;36mset_mpl_style\u001b[0;34m()\u001b[0m\n\u001b[1;32m 12\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 13\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mset_mpl_style\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 14\u001b[0;31m \u001b[0mmpl\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstyle\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0muse\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmpl_style\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 15\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 16\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mM_str\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpos\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mAttributeError\u001b[0m: module 'matplotlib' has no attribute 'style'" ] } ], "source": [ "charting.set_mpl_style()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Window opens" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "window_opens = hive.run(\"\"\"\n", "select\n", " to_date(dt) as date,\n", " event.action as action,\n", " count(*) as events\n", "from event.visualeditorfeatureuse\n", "where\n", " year = 2019 and month = 7 and\n", " event.action like \"window-open%\"\n", "group by \n", " to_date(dt),\n", " event.action\n", "\"\"\")" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "window_opens = (\n", " window_opens\n", " .pivot_table(index=\"date\", columns=\"action\")\n", ")" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1gAAAG3CAYAAACpEvTWAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzs3Xd4VGX6//H3k54QEgIEUukSJLTQEamCFKWogIhgRwV3ddnVn7qiYFnLVxdxBQQsoICK2EBQkZKACKFJ7zWBhB5qElLP748UkxBIApNMyud1XXMNOXPPOfdMTsLceZ7z3MayLEREREREROTGOdg7ARERERERkfJCBZaIiIiIiIiNqMASERERERGxERVYIiIiIiIiNqICS0RERERExEZUYImIiIiIiNiICiwREREREREbUYElIiIiIiJiIyqwREREREREbMTJ3gmUBlWqVLEaNGhg7zREiI+Pp1KlSnY5dnRcAucTU2jg64m7i6NdcpDSwZ7noUhOOheltNC5KAAbN248bVmWb0FxKrCAmjVrsmHDBnunIUJERARdu3Yt8eOeupjELW8vwyPNom2ILzMeblviOUjpYa/zUCQvnYtSWuhcFABjTFRh4jRFUESYt/EIKWkWg1oFEb7nFJuiz9o7JREREZEySQWWSAWXlm7x5dpoOtSrxvj+ofh4ODNx6T57pyUiIiJSJqnAEqngVu47xdGziQxvXxtPVyce71yfFXtPsTFKo1giIiIiRaUCS6SCmxMZRXVPV3o2rgnAAx1qU7WSCxOX7rVzZiIiIiJljwoskQos5lwiy3efZGibYFycMn4dVHJ14onO9fh932k2RsXZOUMRERGRskUFlkgF9vW6aCxgaNvgXNtHdKhNdU8X3l+ia7FEREREikLLtItUUClp6Xy9/gjdQ2oQ5OOR6zEPFyee6Fyf//y8i3WH4mhbt6qdshQRKVsuXLjAyZMnSUlJsXcqYkPe3t7s2rXL3mlIMXF2dqZGjRp4eXnZZH8qsEQqqCU7T3DqYhLD29fO9/Hh7WszbeVB3l+yl68eb1/C2YmIlD0XLlzgxIkTBAYG4u7ujjHG3imJjVy8eJHKlSvbOw0pBpZlkZiYSExMDIBNiixNERSpoGZHRhFYxZ3ODfNvSO7u4siTXeqx5uAZIg+eKeHsRETKnpMnTxIYGIiHh4eKK5EywhiDh4cHgYGBnDx50ib7VIElUgEdOHWJ1QfOMKxdLRwdrv4hYHj72vhWduX9JVpRUESkICkpKbi7u9s7DRG5Du7u7jab2qsCS6QC+nJtNM6OhiGtg68Z5+bsyOiu9Vl7KI7VB06XUHYiImWXRq5EyiZb/uyqwBKpYC6npPHtxqP0CvXDt7JrgfH3ta1FTS9XJi7Zh2VZJZChiIiISNmlAkukglm49RjnE1O4v13+i1vklTGK1YB1h+NYfUDXYomIiIhciwoskQpmdmQUDWp40r5e4Zdev7dNMH5ebry/ZK9GsUREKpinn36aO++8095pFNrEiRP5/vvv7Z3GFerUqcNDDz1ks/3NnDkTYwyHDx+22T7Lm2PHjuHh4cG6detK9LgqsEQqkO0x59l85Bz3t6tVpLnGbs6OPNWtPhuizrJqv67FEhGpKA4cOMDUqVMZP368vVMptNJaYP3www+8/PLL9k6jQvH392fkyJE899xzJXpcFVgiFcictdG4OTtwd8ugIj93SJtgArw1iiUiUpFMnDiR5s2b07p1a3unUuaFhYVRv359e6dR4TzxxBOsXLmyREexVGCJVBAXL6cwf3MM/ZsH4O3uXOTnuzo5MrpbA/6MPseKvaeKIUMRESlNkpKSmD17NsOGDbvisVOnTvHkk08SGBiIq6srjRo1Yvr06dmPr1+/HmMMCxYsuOK5o0ePxtfXN9eS2NOnT6d58+a4ublRvXp1Hn30UeLi4nI9zxjD2LFj+d///kfdunWpXLkyXbp0YceOHdkxderUISoqijlz5mCMwRiTPS1v79693HXXXdSoUQM3Nzdq1arF4MGDSU1NLdL70q9fP3r06JH9tWVZ+Pr64urqSkJCQvb2+++/nzZt2uTKLecUwawpfpGRkdx///14eXkREBDA008/zeXLl3Md8+DBg9xxxx14eHjg6+vLM888Q1JS0hW5paSkMHbsWOrUqYOLiwt16tRh7Nixud7rpk2b8thjj2V/ff78eZycnAgKyv3H144dOzJ48OAC3489e/Zw1113UaVKFdzd3Wnfvj2//vprrpjx48djjGHbtm1069YNDw8P/P39eeWVV0hPT88VW9C5VdT3rnHjxjRt2pRPPvmkwNdiKyqwRCqIHzfFkJCcVujFLfIzpHUwgVXceX+pVhQUESnvIiMjOXfuHJ06dcq1/cKFC9x66638/PPPjB8/nkWLFtGvXz9GjRrFhx9+CECbNm0ICQlh9uzZuZ6bnJzM3LlzGTp0KM7OGX/se+GFF3jqqafo0aMHCxYs4N133+XXX3+lT58+pKWl5Xr+7NmzWbRoER988AEzZswgOjqaAQMGZBdJP/zwA35+fvTq1Ys1a9awZs2a7Gl5d9xxBzExMXz00UcsXryYt99+G1dX1ys+4BekW7durF69OrvA2bp1K2fOnMEYw6pVq7LjwsPD6d69e4H7GzFiBPXr1+f7779n1KhRTJ48mbfeeivXe9azZ082bdrE5MmTmTlzJocOHeKNN964Yl8PPvggb7/9Ng888AALFy7koYce4p133uHBBx/Mlf/y5cuzv46IiMDFxYWYmBj27s3oe3np0iXWr19fYP6xsbHceuutbNmyhUmTJvHNN99QpUoV7rjjDn755Zcr4gcOHEiPHj348ccfGTZsGK+//jqvvfZa9uOFObeK8t5l6dy5M4sXL77ma7ElpxI7kojYjWVZzI6MpmmgN82Dq1z3flycHHiqWwP+/cM2IvacolujGjbMUkSk/Hn1px3sjL1g1xwaB3gxrl9okZ8XGRmJMYZmzZrl2v7BBx8QFRXFtm3buOmmmwDo0aMH586d49VXX2XUqFE4OTkxYsQI3njjDc6fP4+3tzcAP//8M3FxcYwYMQKAw4cP8+677zJu3DheeeWV7GM0bNiQW2+9lZ9++omBAwdmb3d2dmbhwoXZxRnA4MGDWbduHbfccgthYWG4urpSvXp12rdvnx1z+vRp9u/fz/z58+nfv3/29vxG5wrSrVs3EhMTiYyMpEuXLoSHh9OkSRNq1qxJeHg4t99+O7t37+bYsWN069atwP0NGzaMV199Nft9XLt2LV999VX2ts8//5yDBw+yZs2a7NfUp08fmjZtmms/27dv56uvvmLcuHHZ18zdfvvtODk58fLLL/PCCy/QrFkzunXrxocffkhUVBS1a9cmPDycHj16sGvXLsLDw2nYsCGrVq0iJSWlwPwnTJjA2bNnWbNmDQ0aNACgb9++NG7cmJdeeok+ffrkih85ciQvvPBCdm4XLlzgv//9L//4xz+oUqVKoc+twr53WcLCwpg8eTKxsbEEBAQU+D25URrBEqkANkadZc+Ji9zfrtYN72tQqyCCfNx5f6muxRIRKc9iY2Px8vLCxcUl1/Zff/2Vdu3aUbduXVJTU7NvvXr14syZM+zcuROA4cOHk5SUxLx587KfO2vWLEJCQmjbti0AS5YsIT09nfvvvz/Xvtq1a0flypVZuXJlrmP37NkzV3GVVWRER0df87VUq1aNevXq8cILL/Dxxx+zb9++635fmjdvTtWqVbNHgZYvX0737t3p3r17rm3Ozs7ceuutBe7vjjvuyPV106ZNc72eNWvWEBwcnKtgdHBwYMiQIbmel/VeDR8+PNf2rK9XrFgBQNeuXXFwcCgwf39/fxo1agRAWlparu9P1qjfypUrad++fXZxBeDo6Mh9993H5s2buXAh9x8X8uY8dOhQLl26xPbt24HCn1uFfe+y+Pr6AhnndEnQCJZIBTA7MorKbk70b3Hjf7VxcXLg790b8Px321i++yS33VzTBhmKiJRP1zNyVFpcvnwZV9crG9KfPHmS/fv35yp0cjpzJqNnYu3atencuTOzZs3iscce49y5cyxatCjXSnonT54EyPUBPb99ZalaNXeLkaz88l53k5cxhiVLljB+/HhefPFFzpw5Q926dXnuuecYNWrUNZ+bl4ODQ/bI1SuvvMLKlSt59NFHqVmzJi+//DIXLlwgPDycNm3a4OnpWeD+8ntNOa+vOnbsGDVrXvl/bd5tWdes+fv759ru5+eX63EfHx+aN29OeHg4/fr1Y/v27XTr1g0/Pz+eeeYZIGN6Y87Rq9tuuy27QAOyR8ni4uIICwu7Ijc/Pz8sy+Ls2bN4eXldNeesr2NiYoDCn1tZCnrvsri7uwOQmJiY735tTQWWSDkXF5/Mz9uOM6xdLTxcbPMjf3fLICaHH2Di0n10b1SjSEu+i4hI2VCtWjXOnTuX7/YaNWrwwQcf5Pu8kJCQ7H+PGDGCkSNHEhUVxeLFi0lOTs41wlKtWjUAfvvtN3x8fPI9lq3Uq1ePL774Asuysq8ZGj16NHXq1LliKltBunXrxrPPPsuqVau4dOkSXbp0wdPTEw8PD1asWEFERARPPPGETfL29/fPtZBHlhMnTuT6OqvYOH78eK7VCo8fP57r8az8v/nmG8LDw6lWrRrNmjXD39+fkydP8scff7Bp06Zc+U+bNo2LFy9mf501za5q1arZ+8/p+PHjGGOu+J6eOHGCevXqXfEaAgMDgaKdW0WRVVxWr179up5fVJoiKFLOzdtwhOS0dIbZYHpgFmdHB/7WvQHbYs6zdNdJm+1XRERKj0aNGpGcnMzRo0dzbe/duze7d++mVq1atG7d+opb5cqVs2MHDx6Mq6src+bMYdasWXTq1Inatf9abKlnz544ODgQHR2d777q1q1b5LxdXV2vOVJhjKFFixZMmDABIHt6WlF0796d5ORkXn/9dcLCwqhSpQpOTk507tyZDz74gNOnTxfq+qvC6NChA0eOHCEyMjJ7W3p6Ot98802uuM6dOwPw9ddf59o+Z84cIGNqYM78jx49yrRp0+jatSvGGGrUqEFoaCjjxo0jLS0tV/4hISG5vi9ZBVaXLl2IjIzM1ew4LS2NuXPnEhYWlmv0Crgi56+//hpPT8/sqZ5FObeK4tChQ7i4uFzX+XQ9NIIlUo6lp1t8uS6atnWr0rDm9f1Supq7wwKZHL6fiUv30uNmjWKJiJQ3WR/Y161bl2sJ7zFjxjB37lw6derEmDFjCAkJIT4+nt27d/P7778zf/787FgvLy8GDBjA5MmTOXbsGB9//HGuY9SvX5/nn3+ev/3tb+zZs4cuXbrg5ubGkSNHWLJkCY899liRC5XGjRvz+++/s3DhQvz8/KhevToXLlzgmWee4d5776VBgwakpaUxc+ZMnJyccq2UV6dOHerUqUNERMQ1jxEaGkqNGjVYtmxZria2WSNbrq6udOzYsUh5X03WyoB33303b775JjVq1GDq1KlXXN/UpEkT7rvvPsaPH09qaiq33HILa9as4fXXX+e+++7LtShGp06dcHR0ZNmyZUyePDlX/pMmTaJWrVqF6tk1ZswYZs6cSc+ePXn11Vfx8vJiypQp7N27l0WLFl0R//HHH5Oenk6bNm1YvHgxn3zyCePHj89eBKUo51ZRrF27ljZt2uDm5nZdzy8qjWCJlGOr9p8m6kyCTRa3yMvJ0YG/d7+JHbEX+G3niYKfICIiZUqdOnVo27YtP/30U67t3t7erF69mr59+/LOO+/Qq1cvHnnkEebPn59vMTRixAhiY2NxdXVl0KBBVzz+5ptvMn36dFauXMmQIUMYMGAA77zzDj4+PtkryRXFW2+9RUhICEOGDKFNmzaMHz8ePz8/atWqxYQJE+jfvz/33XcfsbGxLFy4kFatWmU/Nz4+PvuapYJkjQjlLNCy/t2+fXubfZh3cXFhyZIltGjRgtGjR/Pggw9St25dxo4de0XszJkzef755/nss8/o27cvn376Kc8//zyff/55rjgvL6/s151f/oUtagMCAli1ahWhoaGMGjWKQYMGERcXx6JFi+jdu/cV8fPnz2fJkiX079+f2bNnM3bs2FzX5BX13CqMxMREli1bxtChQ6/r+dfFsqxr3oBBwHdAFJAI7AHeAirniKkDWFe5VcmzPzfgXeBY5v7WAJ3zOa4D8CJwGLgMbAHuuUqOI4HdQFJmfk8W9Lpy3ho2bGiJlAbh4eE23d/Iz9dbLV/7zbqckmrT/WZJSU2zur4bbvV6f4WVlpZeLMeoSHbGnreGTF1tTQ7fZ9c8bH0eilyvsnYu7ty5094p2NyMGTMsLy8vKz4+3t6pFLs9e/ZYgLV27dorHrtw4YIdMio/xo0bZwFWSkpKiR/766+/tjw9Pa1z584VGFvQzzCwwSpEbVGYEaxngTTg30Bv4CNgFLDEGJP3+W8BHfLcLuaJ+TSzIHoFuDOz0FpsjGmRJ+51YDwwCegDRALzjDF9cwYZY0YC08goAnsD84ApxpiiLQkjUs4cO5/Ist0nGdImGFcnx2I5RsYoVgN2H7/I4h1XXuQqhZOSls7/lu2j/6RVrD0Ux7QVB7mcklbwE0VEitnw4cMJCAhgypQp9k6l2K1YsYKePXtmLyEv5cM777zDc889lz0NsSQUpsDqZ1nWEMuy5liWtcKyrInA00A7oGue2IOWZUXmuWV/SjDGNAeGAWMsy/rYsqxlwBAgGngtR1wNMgq7ty3Les+yrHDLsp4AwoG3c8Q5Af8BZlmW9VJm3FhgJvC6MSb/NR6lVDl+/jIvfr+V7THn7Z1KufL1uiOkWxbD2tp+emBO/ZsHUK96JSYu3Ud6uvpiFdXO2AsMnPwHE5bspU8Tfz4Y2oLziSks0+IhIlIKODk5MWPGDDw8POydSrEbOXIkv/32m73TEBs6fvw4AwYM4Nlnny3R4xZYYFmWdSqfzesz7wOLeLz+QAowN8f+U4GvgV7GmKxmC70AF2B2nufPBpoaY7KWAOkA+OYTNwuoBhTc3U3sKuvD5VfrjnDf9EjWH46zd0rlQkpaOl+vj6ZLQ1+Cqxbvf4pOjg480+Mm9py4yC/bNYpVWClp6XywNGPU6sSFy0wd3or/3RfGnc0C8Pd249uNR+ydoogIkHE90ejRo+2dhpRh48ePx7IsnJxKdn09Pz8/xo0bV+J/ILjeRS66ZN7vyrP9LWNMqjHmvDFmgTGmaZ7HQ4FDlmUl5Nm+g4yCqkGOuCRgfz5xAI1zxAHkXV8zb5yUQuF7TjJ46mqMgRkPtcG3sisjPl3Lir351fRSFMt2neTEhSTub1e74GAbuLNZAA1qePLBsr0axSqEnbEXGDDpD95fupc7mvmzZEwXejfJuKja0cFwd8tAVuw9xckL126cKSIiIqVPkctIY0wgGdP5llqWtSFzcxIZ10H9BpwCGpFxzdZqY0xby7KyCrGqwNl8dhuX4/Gs+3OZF5MVFEc++8wbl9/reBx4HMDX17fA5TjFtsKjU5i1K5kgTwfGhBnM8Z38o6nFexvgkRnreLK5K238Kl4XgUuXLtnkXPxwfSJV3QyOJ3YScTLv30GKRw//VKZuSeLducto51/xvneFkZpusfBgCj8dSKGSs+HvYa60qnmeLetX54oLTk0n3YL3vl1J33ouJZ6nrc5DkRtV1s5Fb2/vXM1YpfxIS0vT97YCuHz5sk1+5xTpU5AxxhOYD6QCD2dttyzrGPBkjtDfjTG/kjGS9BIwnFLGsqzpwHSAkJAQK2fzNSk+6ekW7yzezec7D9ItxJcPh7XE0/Wv07BL5xQembmej7acpe5NjRjUKugaeyt/IiIiuNFz8fDpeHb8GsE/ezake7eiL297vTqlWyw7tpIlx+DZezvj6KC+WDntiD3Ps/O2sutYAgNbBDCuXyg+la5ePH0bvZo/z6XwTpfOJd5jzBbnoYgtlLVzcdeuXdfdCFVKt4sXL+p7WwG4ubkRFhZ2w/sp9BRBY4w78BNQD+hlWdbRa8VblnUEWAW0ybH5LOCTT3jWSFNcjrgq5spPFfnFkc8+88ZJKXA5JY2/f7WJaSsOMrx9LT5+oHWu4grA292ZWY+2pWOD6jw7bwsz/zhkp2zLri/XRePkYBjaJrhEj+voYHimx03sP3mJhVtjS/TYpVlyajrvL9nLgEl/cOpiEtNHtGLi0LBrFlcAg1oFsf/kJbYc1eIvIiIiZUmhCqzM1fi+BVoDfS3L2laEY+Sc5rcDqGuMyXulWWMgmb+uudoBuAJ5W0hnXVO1M0cc/HUt1tXixM7OXEpi2MeR/Lz9GC/1vZnXBzTByTH/08/DxYlPHmxNr9CajP9pJ5OW7+PK2aKSn8spaczbcITbQ2tSw6tkupXn1LeJPyE1K/PBsn2k6VosdsSeZ8DkP/hg2T76NQ9g6T87c3to4RpY3tHMHzdnBy12ISIiUsYUWGBl9rqaA3QHBlqWFVmYHRtjapGxit+6HJt/ApyBwTninIB7gd8sy0rK3PwrGasN3p9nt8OB7ZZlZQ1rrAFOXyUuDvijMLlK8Tpw6hJ3TVnNjtgLTBnWkpGd6xU45cnVyZHJw1pyd1gg7/22l7d/2a0iqxB+2X6MswkpJba4RV4OmaNYB0/Fs2BLjF1yKA2SU9OZkDlqdfpSEh8/0Jr3721BFY/CX09V2c2ZPk38WbA5Vj2xREREypDCXIM1mYyC6D9AvDGmfY7HjlqWddQY818yirU1ZCxyEQK8CKRnPg8Ay7I2GWPmAhMzR8UOkdG0uC45iiTLsk4aYyYALxpjLgJ/klGEdSdjqfesuBRjzMtkNBaOAZZmxjwC/N2yrOQivRtic2sPnuHxWRtxcjB89Xh7WtbKb4Zo/pwcHXhvcHMquToxbeVBLial8vqAJrq25xpmR0ZTr3olbqlfzW459A71o5FfZf63bD/9mgVcdaSyvNoec55n521h9/GL3B0WyCv9GhepsMppUKsgftgUw5KdJ+jXPMDGmYqIiEhxKMwnnz6Z9y+RUUDlvD2W+dgOMkarslYSHE/G6FE7y7L25Nnfw8AM4A1gERAM9LYs6888cS9lxjwDLAY6AkMsy1qYM8iyrKlkFGlDMuPuA/5mWdbkQrw2KUbzN8cw4tN1VPN04YfRHYtUXGVxcDC8NiCU0V3r8+XaaMbM3UxKWnoxZFv27Tp2gY1RZxnWrlaJL4qQk4OD4R89buLQ6Xjmb64412Ilp6Yz4bc9DJj8B2fik/nkgdZMKOKoVV4d6lUjwNuNbzde85JXEZFic+TIEQYNGoS3tzdeXl7cfffdREdH2zstkVKtwBEsy7LqFCLmM+CzwhzQsqxE4J+Zt2vFpZFRYL1RiH1OI6O4k1LAsiwmLd/Pf5fspV3dqkwb0eqGPmQaY/h/vRtR2c2Zd37dTXxSKpPvb4mbs6MNsy775qyNwsXJoVSsvHh7Yz8a+3vx4fJ9DGhR/kexth09z3PfZo5atQzklTuvf9QqJwcHwz2tgpgcvp/j5y/j513y19WJSMWVkJBA9+7dcXV15fPPP8cYw9ixY+nWrRtbt26lUqVK9k5RpFQq3596pMSlpKXz/77dyn+X7OWusEC+eLStTT5oAozqWp/XBzZh+Z6TPDxjPZeSUm2y3/LgUlIqP/wZw53N/G32ft+IrFGsw2cS+GFT+b0WKyk1jf/+toeBU/4gLj6ZTx9szYQhNzZqldegVkGkW5Tr91FESqePP/6YgwcP8uOPPzJw4EAGDBjAggULiIqKYto0/V1b5GpUYInNnE9M4aEZ65i38ShP33YTE4Y0x9XJtqNMI9rX5v0hLVh3OI7hn6zlXIIus4OM6ZjxyWkMb2+fxS3y07NxTZoEevHh8v3lclrntqPn6f/hH3y4fD8DWwSyZEwXbru5ps2PU7taJdrWqcq8jUe00IuIlKgFCxbQvn17GjRokL2tbt26dOzYkfnz59sxM5HSTQWW2MTRswkMnrqatQfjeG9wc/7Zs2GxXQc0MCyQj+5vyc7YCwydHsnJi5eL5ThlhWVZzI6MprG/F2HBVeydTjZjDP+4rSHRcQn88Gf5GX1JSk3jvcUZo1bnEpP57KHW/HdIc7w9nIvtmINaBXHwVDybjpwrtmOIiOS1Y8cOmjRpcsX20NBQdu5UJxyRqynMKoIi17T16Dke/XwDl1PS+OKRttzSoHqxH/P2UD9mPNyGkV9sYMjUNcx+rB1BPnnbq1UMm46cY9exC/znriZ2XdwiP7fdXINmQd58GL6Pu1oG4lzGr8XaevQcz87bwt4TlxjUKoiX72hcrIVVlr7N/Bm3YAffbjx6XYvFiIgd/fICHC9K+9Bi4NcU+rxd5KfFxcXh43Pl75yqVaty9uxZW2QmUi6V7U87YndLdp7g3mmRuDo58P2oW0qkuMrSsUF1Zj3ajrj4ZAZPXcOBU5dK7NilyezIKDxdnRjQItDeqVzBmIxrsY7EJfJdGV4JLyk1jXcX7+auKas5n5jCjIfa8N7g4h21ysnT1Yk+Tfz4aYt6YomIiJR2GsGyk/R0i4SUNOKTUklLt/D3dit1ow8FmfHHIV5buJNmgd588mAbfCu7lngOrWr78PXjHXjgs7UMmbqGLx5tS2iAd4nnYS/nEpJZuPUYQ1oH4elaOn+cu4XUoHlwFT5cvp+7Wwbh4lS2/q5zxajVnY3xdi+ZwiqnQa2D+H5TDIt3HC+VxbSIXMV1jByVFj4+PvmOVF1tZEtEMpTOT2SljGVZJKWmcykplYSkNOKTU4lPSiU+OaNAik9KJSE5LePx5FTik9Ly35bjscQ8f4VuUMOTgS0CGNAikOCqpXuqW1q6xRuLdjLjj8P0Cq3JxHvDcHex35LpjQO8+OaJDgz/ZC1Dp0cy8+E2tKpd1W75lKRvNx4lOTW9VC1ukVfWKNbDM9Yzb+MR7m9XenPNKSk1jQ+W7mPayoP4eroy46E2dGtUw275tK9bjcAq7ny78agKLBEpEaGhoezYseOK7Tt37qRx48Z2yEikbFCBBZxJtHj6q02ZRVOOwiizGIpPTiW9kIt3OToYKrk4UsnVKePm4oiHixMBVVyo5OqYa5unqxMero4kp6bzy/bjvPfqPROhAAAgAElEQVTbXt77bS+tavswsEUAdzQLoGol+y+5nVNCcirPfL2ZJTtP8Oitdfl335txdLD/yFs9X0/mjbqF4Z+sZfgn6/j4gdbcelPJTVe0B8uymLM2mta1fWjk52XvdK6pa0NfWgRXYfLy/QxqFWTz1SVtbfORczw3bwv7Tl5iSOsgXrrDPqNWOWX1xPpw+T6OnU/E39vdrvmISPnXv39/nn32WQ4ePEi9evUAOHz4MH/88Qdvv112R+ZEipsKLCAh1WLr0XPZRU/VSi4EV/W4ohDydHXCw8UpRwGVVTBlFFMeLo64Ojlc11S/hzvW5ejZBBZsieXHTTG8PH8Hr/60ky4NfRkQFkjPm2vadZQI4OTFyzz2+Qa2x5zntQGhPNChjl3zySuwijvfPNGBEZ+u5ZGZ6/lwWBi9Qv3snVaxWX3gDIdOx/P0bQ0KDrYzYwz/7NmQBz5bxzcbjjKilI64JSan8b/l+5i24gA1vdyY+XAbuobYb9Qqr0Etg/jfsn18/2cMT3Ur/d93ESnbRo4cyaRJkxgwYABvvPEGxhhefvllgoODeeKJJ+ydnkippQILCK7sQMRz3eydBkE+Hozu2oBRXeqz69hF5m+OYcGWWJbtPkklF0d6hfoxMCyQW+pXw6mEV2Pbe+IiD89YT1x8Mh8/0LpY+v3Ygm9lV+Y+3oGHZq5j9Jw/eXdQM+5uGWTvtIrF7MgofDyc6dPE396pFEqnm6rTqrYPU8L3M6R16RrFOp+QwhdrDjNj9WHi4pMZ0jqIsXc2xsvNvqNWedWq5kG7ulX5duNRRnetX+au2xSRsqVSpUosX76cMWPGMGLECCzL4rbbbmPixIl4enraOz2RUksFVilkjKFxgBeNA7x4vncj1h6KY/7mGBZtO8b3m2Ko7ulKv+b+DGwRSLMg72L/kPXH/tM8OXsj7s6OzHuyA00CS/ciEt4ezsx+tB0jv9jAP7/ZQnxSKiNK2WjbjTpx4TK/ZU7TdHMuPYXKtRhjGNOjIcM/Xcvc9UdKxQjoiQuX+XTVIeZERhGfnMZtjWowulv9Un0N36BWQTz37Vb+jD5bqvMUkfKhVq1afPfdd/ZOQ6RMUYFVyjk4GDrUr0aH+tUY3z+UiD0n+XFTLHMio5nxx2HqVa/EgBaBDAwLoHa1SjY//rwNR3jx+23U9/Xks4fbEFilbFz3UcnVic8easPfvtzEy/N3cDEpldFdy8+Uqrnrj5CWbjGsbS17p1IkHRtUo00dHyaH72dI62C7FYeHT8czbeUBvtsYQ2p6Ov2aB/Bkl/rc7F+6r2UD6Nv0r55YKrBERERKHxVYZYibsyO9m/jTu4k/5xNT+HX7MX7cFMvEZXt5f+leWgRXYWCLAO5sHkB1zxtbMt2yLCYs2cuHy/fT6abqTL6/ZambLlUQN2dHPhrekmfnbeH/ft3DhcRUnu8dUuanVaWmpfPVumg63VSdOtVtX1QXp6xRrGGfrOXrddE81LFuiR5/e8x5pq44wM/bjuHk6MCQNkE83qk+taqV7pU7c6rk6kSfJv4s3HKMV+4Mtfu1mSIiIpKbCqwyytvdmXvb1OLeNrU4dj6RBZtj+XFzLON/2snri3Zxa4Pq3BUWSM/GNalUxP5ISalpPP/tVn7cHMvQNsG8PrAJziV8zZetODs68P6QFni6OjF1xQEuJaXwWv8mOJSClQ+vV/ieUxw7f5lx/ULtncp16VC/Gm3rVmVKxAGGtq1V7KNYlmWx9lAcH0UcYMXeU3i6OvF45/o8cmsdalR2K9ZjF5fBrYP47s+jLN5xnIFhWrJdRESkNFGBVQ74e7vzRJf6PNGlPnuOX+THzTEs2BzLP+Zuxt3ZkdtDazKwRSC33lS9wELpXEIyj8/ayLpDcTzXK6RcXEjv4GB4Y2ATPN2cmLbiIJcup/Lu4OZltmicszaKml6u9Li59KxuVxRZo1j3fRzJnLXRPHpr8YxipadbLN99kikR+/kz+hzVPV14rlcIw9vXtvuS6zeqbZ2qBFfN6ImlAktERKR0UYFVzoT4Veb53o147vYQNkSd5cfNMSzaeoz5m2OpVsmFO5v5MyAskLDgKlcUTlFn4nl45nqOxiXyv/vC6N88wE6vwvaMMbzY52a83Jx5d/Ee4pPT+PC+sDKzQESWI3EJrNh7iqe731TiK0naUof61WhfryofRRxgWNtaNp3mlpqWzk9bY5kacZA9Jy4S5OPO6wNCGWzHa75szcHBcE/LID5Yto+Yc4ll5tpIERGRiqDsfkKTa3JwMLStW5U372rK+pd6MH1EK9rXq8bX649w95TVdH0vggm/7eHAqUsAbIw6y11TVhMXn8ycke3KVXGV01PdGvDagNCMRsmfryc+KdXeKRXJnLXROBjDfWVscYv8jOnRkNOXkpizNsom+7ucksasNYfp+l4EY+ZuwcLi/XubE/5sV0Z0qFNuiqss97QMwrLghz+P2jsVEcnBsix7pyAi18GWP7sawaoAXJwcuD3Uj9tD/bh4OYVftx9n/uZYPgzfz/+W76dJoBf7TlzC39uNGQ+3pW4ZWzihqB7oUIdKLk489+0WRny6lhkPtcXbo/RPGUtKTWPehiPc1qgGft5l89qhnNrVq0bHBtWYuuIAw9rVwsPl+n4dXbicwqw1Ucz44xCnLyXTslYVxvcLpXujGmX6WruCBFf1oEO9any78ShPdWtQ5qfyipQHzs7OJCYm4uFRdhbOEZEMiYmJODvb5vOgRrAqmMpuzgxuHczsx9oR+eJtjL3jZhyNoWOD6nw/umO5L66y3NMqiCn3t2J7zAWGfhzJqYtJ9k6pQL9uP86Z+GSGt69t71RsJmMUK5nZkUUfxTp58TJv/7Kbjm8t593FewgN8Obrx9vz3ahb6NG4ZrkurrIMahXE4TMJbIg6a+9URASoUaMGMTExJCQkaCRLpIywLIuEhARiYmKoUcM217drBKsCq+nlxmOd6vFYp3r2TsUuejfx49OHWvP4Fxu5d9oaZj3WrlRfyzJnbTS1q3lwa4Pq9k7FZlrXqUqnm6ozbcVBhrevXahRrOgzCUz//QDfbDhKalo6fZr6M6pL/VLfALs49Gnqxyvzt/PthqO0qaOeWCL25uWV0UsvNjaWlJQUO2cjtnT58mXc3Mr+7BHJn7OzMzVr1sz+Gb5RKrCkQut0ky+zHm3LwzPWM2DSKl7sczN3hQWWutGPvScusu5QHC/2aVTqcrtR/+jRkHs+Ws0Xa6J4skv9q8btPn6BjyIOsHDrMRyN4Z5WgTzeuX6FGXXNj4eLE32b+rNo2zHG9W983dMsRcR2vLy8bPYhTUqPiIgIwsLC7J2GlBGaIigVXus6VZk3qgNBPh78a94WBk1dzfaY8/ZOK5c5kVG4ODowuHWwvVOxuVa1fejc0JfpKw/mu+jIhsNxPDJzPb0n/s7SnSd49Na6/P58N966u1mFLq6yDGoVxKWkVH7dftzeqYiIiAgqsEQAaOTnxfejbuH/BjUj6kwC/Sat4t8/bONsfLK9UyMhOZXv/4yhb1M/qlZysXc6xWJMj5uIi0/m8zWHgYz50OG7TzJ46moGTV3Dpuiz/LNnQ/54oTv/7nszNb00TSNL27pVqVXVg283ajVBERGR0kDzSUQyOTgYhrQOpleoHxOX7uWLNVEs2nqMZ3uFMKxtLRztNDVvweZYLiallqvFLfIKq+VD15CMUayald34ZNUhdh27QIC3G+P6NebeNsGa/nYVxhgGtQpiwpK9HD2bQJCPVi8TERGxJ41gieTh7e7MuH6h/Px0J272r8zLP26n34erWH84zi75zFkbTUjNyrSq7WOX45eUf/RoyLmEFP41bwvJqWm8O6gZEc914+GOdVVcFeDuloEAfP9njJ0zERERERVYIlcR4leZr0a2Z9KwMM4mJDN46hrGzN3MyQuXSyyHLUfOsS3mPMPb1yr3fY5aBFfh/+5pxtThrVgypguDWwfj4qRfUYUR5OPBLfUzemJpaWgRERH70qcXkWswxnBnswCW/asLT3Wrz6Ktx+j2XgTTVhwgOTW92I8/Z20UHi6ODAwLLPZjlQZD2gTTu4lfuVspsSQMbh1EdFwC6w7ZZ6RVREREMqjAEikEDxcnnuvViN/GdKZdvWq89ctuen+wkpV7TxXbMc8npLBgSywDWgRS2c02ncWl/OoV6oenq5MWuxAREbEzFVgiRVCneiU+e6gNnz3UmrR0iwc+W8cTszZwJC7B5sf67s+jXE5J5/52tWy+byl/PFycuCOzJ1Z+y92LiIhIyVCBJXIdujeqyeJ/dOa5XiGs3HuaHhNWMHHpXi6npNlk/5ZlMWdtFC2Cq9Ak0Nsm+5Tyb1DrIBKS09QTS0RExI5UYIlcJzdnR57q1oBl/+pCz8Y1mbh0Hz0mrODX7cdveKGByINxHDgVX66XZhfba13bhzrVPJi38Yi9UxEREamwVGCJ3KCAKu5MGtaSL0e2o5KLE0/O3sgDn61j/8lL173POWuj8HZ35s5m/jbMVMq7rJ5YkQfjimXaqoiIiBRMBZaIjdxSvzqLnr6Vcf0as/nIOXpPXMmbP+/iUhGvhzl1MYnFO44zqFUQbs6OxZStlFd3tQzCmIxr+ERERKTkqcASsSEnRwce7liX8Ge7cnfLQKavPEj39yL4YVPh+xN9s+EIKWkWw7S4hVyHwCrudKxfne/+PEp6unpiiYiIlDQVWCLFoLqnK/83qDk/jL4FP283xszdwuCpa9gRe/6az0u3LL5cG80t9atR39ezhLKV8mZw6yCOxCWyVj2xRERESpwKLJFiFFbLhx9Hd+Ttu5ty8HQ8/T5cxdgft3EuITnf+K2n0og5l6jFLeSG3N7Yj8rqiSUiImIXKrBEipmDg2Fo21qE/6srD3Sow5dro+n2XgRz1kaRlmcKV/iRVHwru9KzcU07ZSvlgbuLI3c29+eX7eqJJSIiUtJUYImUEG8PZ8b3D2XR0524qWZlXvphOwMmr2JjVMY0rqNnE9h6Ko2hbYJxdtSPptyYQa0yemL9vO2YvVMRERGpUJzsnYBIRXOzvxdzH2/Pgi2xvPnzLu75aA13twzEPXPFwKFttbiF3LiWtXyoV70S8zYeZXDrYHunIyIiUmGowBKxA2MMA1oE0uPmmkwK388nvx8kJc2iha8jgVXc7Z2elAPGGO5pFcS7i/cQdSae2tUq2TslERGRCkHzkETsqJKrE8/3bsTif3RmWLta3NPQxd4pSTlyd8vAzJ5YMfZORUREpMJQgSVSCtTz9eTNu5oSXFk/kmI7/t7u3NqgOt9tVE8sERGRkqJPcyIi5digVkHEnEsk8uAZe6ciIiJSIajAEhEpx3qF+lHZTT2xRERESooKLBGRcszN2ZF+zQP4efsxLl5OsXc6IiIi5Z4KLBGRcm5QqyAup6Tzy7bj9k5FRESk3FOBJSJSzoUFV6GebyVNExQRESkBKrBERMo5YwyDWwWz7nAch0/H2zsdERGRck0FlohIBXBXWCAOBr77U6NYIiIixUkFlohIBeDn7Uanm3zVE0tERKSYqcASEakgBrUKIvb8ZdaoJ5aIiEixUYElIlJB9GxcEy83J+ZtOGLvVERERMotFVgiIhWEm7Mj/VsE8OuO41xQTywREZFioQJLRKQCGdQqmMsp6fy89Zi9UxERESmXVGCJiFQgzYO8aVDDUz2xREREiokKLBGRCiSjJ1YQG6LOcvDUJXunIyIiUu4UWGAZYwYZY74zxkQZYxKNMXuMMW8ZYyrnifMxxnxijDltjIk3xiw1xjTNZ39uxph3jTHHMve3xhjTOZ84B2PMi8aYw8aYy8aYLcaYe66S40hjzG5jTFJmfk8W5U0QEalI1BNLRESk+BRmBOtZIA34N9Ab+AgYBSwxxjgAGGMM8FPm438H7gGcgXBjTFCe/X0KjAReAe4EjgGLjTEt8sS9DowHJgF9gEhgnjGmb84gY8xIYBrwXebx5wFTjDGjCvHaREQqnBpebnRp6Mv3f8aQpp5YIiIiNuVUiJh+lmWdyvH1CmNMHPA50BVYDvQHOgLdLcsKBzDGrAEOAf8PeDpzW3NgGPCIZVkzMretAHYAr2XuB2NMDTIKu7cty3ov87jhxpgGwNvAz5lxTsB/gFmWZb2UIy4AeN0Y84llWVoqS0Qkj0Gtgnnqyz9ZfeA0nW7ytXc6IiIi5UaBI1h5iqss6zPvAzPv+wOxWcVV5vPOkzGqNSDH8/oDKcDcHHGpwNdAL2OMa+bmXoALMDvPcWcDTY0xdTO/7gD45hM3C6gG3FrQ6xMRqYh6NK6Bt7sz8zZomqCIiIgtXe8iF10y73dl3ocC2/OJ2wHUMsZ45og7ZFlWQj5xLkCDHHFJwP584gAa54gjn2PnjRMRkRxcnRwZ0CKAxTuOcz5RA/0iIiK2UuQCyxgTSMZ0vqWWZW3I3FwVOJtPeFzmvU8h46rmuD9nWVbeiwPyiyOffeaNExGRPAa1CiIpNZ1F6oklIiJiM4W5Bitb5kjUfCAVeLhYMiohxpjHgccBfH19iYiIsG9CIsClS5d0LkqJsSyLQE/DZ+E7CEg8mL1d56GUFjoXpbTQuShFUegCyxjjTsY1VfWALpZl5Zy4f5a/RqlyyjvCdBaofY24uBxxVYwxJs8oVn5xZB772DXirmBZ1nRgOkBISIjVtWvXq4WKlJiIiAh0LkpJetDxAG/+vJugxq1pUCNjNrfOQyktdC5KaaFzUYqiUFMEjTHOwLdAa6CvZVnb8oTs4K/roXJqDERblnUpR1xdY4xHPnHJ/HXN1Q7AFaifTxzAzhxx5HPsvHEiIpKPgWGBODoY9cQSERGxkcI0GnYA5gDdgYGWZUXmE7YACDTGdMnxPC+gX+ZjWX4ioz/W4BxxTsC9wG+WZSVlbv6VjNUG789znOHAdsuyDmV+vQY4fZW4OOCPgl6fiEhFVqOyG10b+vL9n0fVE0tERMQGCjNFcDIZBdF/gHhjTPscjx3NnCq4gIxiZ7Yx5jkypu69CBjg/7KCLcvaZIyZC0zMHBU7REbT4rrkKJIsyzppjJkAvGiMuQj8SUYR1p3MXlmZcSnGmJfJaCwcAyzNjHkE+LtlWclFejdERCqgQa2CWLb7JKv2n6ZLQ/XEEhERuRGFKbD6ZN6/lHnL6VVgvGVZ6caYO4H3gCmAGxkFVzfLso7kec7DZBRrbwBVgC1Ab8uy/swT9xJwCXgG8AP2AEMsy1qYM8iyrKnGGAv4F/AcEA38zbKsKYV4bSIiFV73m2tQxcOZeRuOqMASERG5QQUWWJZl1SnMjizLiiNj5OiRAuISgX9m3q4Vl0ZGEfZGIY49DZhWmDxFRCQ3VydHBrYI5Mt10ZxPUE8sERGRG3G9jYZFRKQcGdQqiOTUdH7aGmvvVERERMo0FVgiIkJogBeN/Crz7UatJigiInIjVGCJiAjGGAa1CmLzkXPEXkq3dzoiIiJllgosEREBMnpiOTkYVsWk2jsVERGRMksFloiIAFDd05WuITVYHZtKappGsURERK6HCiwREck2oEUA55IstsWct3cqIiIiZZIKLBERyRbiVxmAI2cT7ZyJiIhI2aQCS0REsgVWcQfg6NkEO2ciIiJSNqnAEhGRbJVcnajsDEc1giUiInJdVGCJiEgu1d0dVGCJiIhcJxVYIiKSSzV3oymCIiIi10kFloiI5FLd3YGYs4lYlmXvVERERMocFVgiIpJLdXdDUmo6py4l2TsVERGRMkcFloiI5FLd3QBa6EJEROR6qMASEZFcfN0z/mtQgSUiIlJ0KrBERCSXatkjWFroQkREpKhUYImISC5uToaqlVw0giUiInIdVGCJiMgVgnzcVWCJiIhcBxVYIiJyhYwCS1MERUREikoFloiIXCHIx0O9sERERK6DCiwREblCkI+7emGJiIhcBxVYIiJyhSAfd0BLtYuIiBSVCiwREblCkI8HoAJLRESkqFRgiYjIFf4awdJCFyIiIkWhAktERK7g4eJENfXCEhERKTIVWCIiki/1whIRESk6FVgiIpKvIB8PjsZpiqCIiEhRqMASEZF8Bfm4c/RcIunp6oUlIiJSWCqwREQkX0E+7iSnpnNavbBEREQKTQWWiIjkK2up9iO6DktERKTQVGCJiEi+tFS7iIhI0anAEhGRfAVmF1gawRIRESksFVgiIpIv9cISEREpOhVYIiJyVRm9sDRFUEREpLBUYImIyFUF+XgQoxEsERGRQlOBJSIiV6VeWCIiIkWjAktERK5KvbBERESKRgWWiIhclXphiYiIFI0KLBERuSr1whIRESkaFVgiInJV6oUlIiJSNCqwRETkqtQLS0REpGhUYImIyDWpF5aIiEjhqcASEZFrUi8sERGRwlOBJSIi16ReWCIiIoWnAktERK4pqKqHemGJiIgUkgosERG5pqyl2tULS0REpGAqsERE5JqC1QtLRESk0FRgiYjINQVW8QDUC0tERKQwVGCJiMg1ubs4Ut3TRSNYIiIihaACS0REChTo46ERLBERkUJQgSUiIgXKaDasAktERKQgKrBERKRAQT7uxJxVLywREZGCqMASEZECBfl4kJyWzin1whIREbkmFVgiIlKgIC3VLiIiUigqsEREpEB/9cLSdVgiIiLXogJLREQKpF5YIiIihaMCS0RECqReWCIiIoVTqALLGBNkjPnQGLPGGJNgjLGMMXXyibOucmuRJ87BGPOiMeawMeayMWaLMeaeqxx7pDFmtzEmyRizxxjz5FXiBhpjNmXuL8oYM9YY41iY1yciIgVTLywREZGCFXYEqwEwBDgL/F5A7EygQ57b3jwxrwPjgUlAHyASmGeM6ZszyBgzEpgGfAf0BuYBU4wxo/LE9cqMWZ+5vw+AscCbhXx9IiJSAPXCEhERKZhTIeNWWpZVE8AY8xhw+zViYyzLirzag8aYGsCzwNuWZb2XuTncGNMAeBv4OTPOCfgPMMuyrJdyxAUArxtjPrEsKyVz+9vAKsuyHs8R5wmMNca8b1nW8UK+ThERuYogH3eW7DhBerqFg4OxdzoiIiKlUqFGsCzLSrfhMXsBLsDsPNtnA02NMXUzv+4A+OYTNwuoBtwKYIwJBlpcJc6ZjBEtERG5QeqFJSIiUrDiWORiVOb1UgnGmOXGmE55Hg8FkoD9ebbvyLxvnCMOYPv1xFmWdQhIyBEnIiI3QL2wRERECmbrAms2MBroATxOxkjTcmNM1xwxVYFzlmVZeZ4bl+PxnPdnrzMua1vVfLaLiEgRqReWiIhIwQp7DVahWJY1IseXvxtj5pMxsvQGmVP6SgtjzONkFIH4+voSERFh34REgEuXLulcFLu72nmYlJbxd7GVG3fgfW5fCWclFZF+J0ppoXNRisKmBVZelmVdNMYsAh7NsfksUMUYY/KMYmWNNMXliAPwAY4VMi4vnxxxeXObDkwHCAkJsbp27XrtFyNSAiIiItC5KPZ2rfOw+poluPjUpGvXZiWblFRI+p0opYXORSmKkmo0nLOQ2gG4AvXzxGRdK7UzRxz8dY1VkeIy+3R55IgTEZEbpF5YJeDSKfj5/8GPT0FyvL2zERGRIirWAssY4wXcCazLsflXIAW4P0/4cGB75uIUAGuA01eJiwP+ALAsKxrYcpW4FOCXG3sVIiKSJVi9sIpPSiL8/l/4Xxis/wS2fAkz74BLJ+2dmYiIFEGhpwgaYwZl/rNV5n0fY8wp4JRlWSuMMc8CIUA4EAvUJqPflR85ih/Lsk4aYyYALxpjLgJ/AvcC3YH+OeJSjDEvk9FYOAZYmhnzCPB3y7KSc6T3b2ChMWYa8BUQRkaj4Q/UA0tExHaCfDz4Tb2wbCs9HbZ9A8tehwtHIeQO6PkqnN4H3z4Cn9wG938LviH2zlRERAqhKNdgzcvz9ZTM+xVAV2APcFfmzRu4QMYo06OWZa3L89yXgEvAM2QUYHuAIZZlLcwZZFnWVGOMBfwLeA6IBv5mWdaUPHE/ZxaA44CHgBPAm2Q0KhYRERsJ8nEnOS2dkxeT8PN2s3c6Zd+h3+G3l+DYFvBvAXdNhbqZ3U2q3wQPL4Iv74VPe8LQr6BOR/vmKyIiBSp0gWVZ1jX/VGlZ1k/AT4XcVxoZKwu+UYjYacC0QsR9D3xfmOOLiMj1ydkLSwXWDTi1F5a8Ant/Aa8guPtjaDIIHPLM3A9sBY8thTmDYdZAGPgRNB2U/z5FRKRUKKlFLkREpBwI8vEA1Avrul06BYv+BVPaw+FVcNs4+PsGaDbkyuIqi08deGQxBLWB7x6F3yfAFa0kRUSktCjWZdpFRKR8yTmCJUWQkgiRU+D39yElAVo/Al2eB0/fwj3foyqM+AF+HA3LXoVzUdD3v+Co/8ZFREob/WYWEZFCc3N2pLqnq0awCis9HbbNg2WvZS5g0Rd6vAq+DYu+LyfXjKmEVWrBqglwPgYGzwDXyrbPW0RErpumCIqISJEEaan2wjn0O3zcDX54HCpVgwcXwn1fXV9xlcXBAXqMgzsnwoHlMKMvXDhmu5xLi4vHYd5DtF07Gg6ttHc2IiJFogJLRESKJKPA0hTBqzq1F766Dz6/E+JPw13TYWTEX6sD2kLrh2HYXIg7CJ/0gBM7bbdve0pPh/WfwqQ2sPtnHNJT4PN+8MvzkKxzTuzg4gnY8jUBMb/A/mVw5gCkJhf8PKnQNEVQRESKJMjHg8U7jqsXVl7xpyHiLdgwA5w94LZXoP1ocHYvnuPd1BMe/hnmDIHPesG9s6Be1+I5Vkk4uQt+egaOrIW6neHOiazbvI/OScth7VTYvxQGToXgNvbOVMqztBQ4si7jfNu/BI5vA6AhwL6pmUEGvALBpzZUqZ2xEE3Of3vWvPqiNVIhqMASEZEiCfJxJyXNUi+sLCmJEPlRxup+KQkZo0tdXij8AhY3wr/5X8u4z74H+k+CFvcV/3FtKeUy/P4erJqYcT3ZwDUnr8kAACAASURBVKnQfCgYQ7rjkf/f3n2HV1aVix//vkmmZJiWgSnMZKhD7wIK0kZEBaWKogj2K7arYr1ixe7Pjh1ErwUL6vUiqIjiZQApziB1ht4n02CYzvRk/f5YJ5MzIcmcJCc5ycn38zz72ck+a++9TrJyct6zygsv/wrs/Qr447vhJy+Fo86HmR/Nc9KkclgxvxBQXQuPXg8bV0NNHUw/Iq/0OeMEbrnrAY7ce2peYGb5E7D88fz1o7Ng9cKtr1c7Is+VbCgEXON33vrr+vH9/xzVrwywJEndYi6sgpYWmPv7vIDFyvm9W8CiN8ZPh7deA5e/Hq54B6x4Eo77CMQg6F187Aa46nxY9ggcdDa89At5vlp7ux0H77wJrvlYXuDjob/lpMxTDuj/Omvw27Qenrw5D/l7+Fp4+v58fGwjHHAmzDgh96KOHLfllA0PLCsk+u4g2fem9fk1YPkTsPyxrYOwpjmwfuXW5UeO6yDw2iV/PW46DBvCr6tVwgBLktQtxbmwDtulsnWpmMf/Cdd8HBbdmXuRTv9+fkNWKSPHwTm/z0PsZn0xv8E75SKoHVa5OnVl7TL42yfhzsvym8vXXwG7v6jrc0aOg9O+B3ufAle9Fy55Ecz8Lzjq/S5Xr2175pG2gOrxG3Nvc+1w2PkoOOT1ecjtDnv27IOJYSNhhz3y1pF1y3PA1b7366n74MFroHlDUeGAMTs+t/dr/M4wZgqMngTDRw+OD1CGMF+RJEndMqRzYS19CP7+KXjgL/nT7jMugQNePTDmW9QNz4He+J3g+i/DqgVw1s+3+hS+4lLKy9b/9QJYvwKOfj8c+xEYPqr0a+x1Iky/NSds/r/Pw/1/gTMu7v+eQw1sG5/NH4Q8fC089PfcswQwYTc45FyY8ZLcIzV8u76vS31D3qYe/NzHWlpgzeKiAOzxtq8fuwFWLQTaJRavq8+B1ujJhX3R19u1O95Xc0D7SvPm/Nqwbvlzt9YcgvUNla7lNhlgSZK6ZUjmwnp2Kcz6Mtz2k/5ZwKKnIuBFF+Qg66r3wk9OgnN+B+OmVbpmsOwx+PMH8vLy0w7LPWxT9u/ZtUZNyDnA9jk5B1oXH5PnyrzgHQMj2FX/SykP9WudS/XEzdC8Mf+97nosHPlu2P142H73Std0azU1MHZq3nY+8rmPb94AK5tywLXmKVizpLAvfP3MI/DkLbD2mY6vP2JsUeDVGnxNLOwnw3YT2/Z1w8v3vDZv6DhI6nJbARtWdX3dZ5fCiV8qXz37iAGWJKnbhkwurE3r8gp2N34jfyJ+6Jtg5gX9s4BFbxxyTn7D9ts3wKUvhtf9FnY8sDJ1ad4Et3wvB6g1dXDSV+Hwt0JNbe+vvf+ZsPPROZi85gK4/89w+vfy0CpVv/Ur86IUD1+bh/+tasrHJ+4Dzz8vz6Xa6cjBPaepbkQOCrcVGDZvgmef3jr4erbo6zVPw5J58Mh1sGFlx9eob+i8J2z0JKgZ1nnv0roVz+1t6kzUtvXq1TfA6Cn5d1Z8bKttfN5f87H8IdfR78/1GcAMsCRJ3dbYUM/cBZ38k64G7Rew2PMkeMlnYOJela5Z6XZ/Ebzlr3mFwf8+Cc76WX7D2Z8W/BuufB8suQf2PhlO+kr5e9PGTIazfwN3/hKu/ij84Ch42RfgeW90nkpvbFgNi+6GRXflN8vDRuVAZdgoqBvZwff1RduoPL+p3D//lpbclloDqvn/gpbNuZdmt+PguA/D7i/OC78MNbXD2nrCtmXT+nbBVwdB2YLb8r6rQKl2RO5Nrm+AkePzPLEdD24LiDrbRozpWds45kNw9+Vw83fgpZ/r/vn9yABLktRtVZULK6U8z+GZh/Icq2cehsdvym/kphyYF1bY7bhK17JnJu9XWMb9rLyd8i143hv6/r4bVuf5Uf+6OE/Mf81lsM8pfXe/iDyvZtdj83LuV70P7rsKTv1OaW84h7oNa3K+p4V35IVbFt6R/xbaz/3plug6CKurb/d9u6CtuMymdfDodTmoevapfPkpB8IL35sXp2g8fOAu6DIQDRuZhxGP32nbZTesaQvCWja3BVT1Df0/RHqHGbnXes6Pc7qGjlYcHSAMsCRJ3TYoc2FtfDYHT0tbA6nW/SOw6dm2csO2ywsmnHExHHDW4J/TM3YqvOVq+O0b4cr35An0x3+i73p3Hrg6z4tatRAO/w948Sf7b6GN8TvB6/8Icy7Ni5F8/wh4+dfyQiT2ZmUbny0EU3e2BVRPP8CWYGrMjjD1ENj/VXk/9eD8+9u0Nvd8bFoLm9fnoGfL1nqsizKbi77euDbPGdq0rl35LnpL6hvyHKoZL8n7MZP75cc15I0YnbeBMnftmA/BPb+HW7+X58IOUAZYkqRuG7C5sFpa8jyM5wRRD+dV9baIPIxo+z1g5xfC9jMKyyzvmd9gVtub8RFj4HWX50UmbvxazpV12nfLm6x31SK4+iNw35UwaV949c9g+uHlu36pamrgBefBjBfD/74D/vC23Jt18jdhux36vz6VtHEtLJmbA6nWgGrpA5Ba8uOjJ+cgar8z8tCuqQfnHseO1I2Avu6wSCkvjtA+QIuAiXuXZ96eBrdJe8O+p8G/LoEXvmfArihogCVJ6raK58LasLotcFr6YNvXzzySPylvNWJsDp52OSYPL9m+kKtmwm4DbwXAvlY7DE75dp4n8X+fg9WL4DW/6P0blJYW+Pd/w7UX5jfHL/5UHrpV6SFb2++e56Dd/B247gvwvZvzyoX7nFzZevWVTetg8dyth/k9fX9bMLXdpBxM7Xtq3u94MIzdsbJ1bi+iMERwAH1oo4Hn2A/DvVfkIcgzP1rp2nTIAEuS1G39kgurpTn3tLQPopY+lPPGtIqavGrc9nvAbjPbeqO23yOvNFVtvVG9EQHHfigPpbviXfDjl+Vl3Bt27tn1nrovz3ea/y/Y9bjcSzRQhhJB7vE4+nzY46Xwv2+Hy8+Bg86GE7+cJ+IPVpvW5xXhFt6ee6YW3Zl/F6k5Pz5qhxxE7X1y7pWaekh19sxqaJqyP+z1Crj1+zldxsixla7RcxhgSZK6beSwWiaO6aNcWLN/lCcxL3sUmje0Ha9vyEHTjBdvHURN2LW8Q92GggPPym+4Lz8HLj0BzvltfhNeqk3r81DDf34rDz88/Ydw0GsH7hv4yfvCf/wj1/mGr+WlvU/7bm5LA93mDVsP82sNplo258dHbZ9/d3ue2DZnauy0gfu7kMrhuA/DJX+G2ZfkD40GGAMsSVKPNDbUM78verBuuigPL3vB2/OcqNZAagCvGDUo7XoMvOVvhWXcXw6v+m/Y68Rtn/fYDXDV+bDskdwb9NIvDI7fTd1weNHHciDyv++Ay14Jh70VXvLZPIl/IFi3IgdTi+7OC1EsvgeeLgqm6ifkAOqolxbmTB0C4xoNpjT0TD0k90zf8r2cYHyg/A0XGGBJknqksWEUdzetKO9FVy3Keade9iU48l3lvbaea9LeeRn3X50FvzkbXv7VvPJfR9Yug799Eu68DBp2hddfkXNtDTbTngdvvz4vI3/L9+CRf8DpP8iLnfSXlGBlU1sQtfjuvK14sq3M6Mkw5QDY44S2OVPjdzKYklod+xH48Qk5+fBR7610bbZigCVJ6pHGhnr+OncRzS2J2nLlwmqak/fTn1+e62nbxkyGN/0Z/ueteXn15U/ACZ9pW54+Jbjnd/DXj8L6lXD0B+C4jwzuRUKG1edkxHu/Aq54Z+7BO/LdcPwny7/AQvOmPIewNZhadFfer2/9cCLykNdph8Ghb875naYc4DLk0rZMPxx2exHc/O38wdDwUZWu0RYGWJKkHmnLhbWeHceV6c1202yoHZ7fYKr/jBgNr/llXmb95m/nXsTTf5hXGvzzB+CR/8sBwCkX5Qnm1WLnF8I7bso5s275Ljz0dzjjh7mXqyfWr8qLT2zplbonz5dqnUtYNzIvYb/f6bmNTzkwfz/AhjdJg8ZxH4H/Pglu/xkc8c5K12YLAyxJUo8UL9VevgDrtjwUykUr+l9tHbzi63lFwb9/Cp5+MC80UlMHJ30VDn9rdeYhGjEaTv5G7s3643/mRT+O/VBOaFo3vONzUoLVi9uG9rX2Ti17tK1M/QTY8cA8l7C1V2r7GfnnLKk8dn4h7Hx0nrt76JsHzBL//pVLknqkeKn2w3eZ0PsLbt6YV0rrbA6Q+l4EHPU+GDc9L+M+48Vw0ldg3LRK16zvzXgxvOuWPBTy+v8HD1wNZ1wME/fK6QGKh/ctvgfWLm07t2HXHEAd9LocVE05wGXRpf5y3Efg56fCHb+A57+t0rUBDLAkST00bXwhwFpWpqXal9wDm9dD42HluZ56bv9X5hxKnfXgVKv68XmI4N4nw5/Oh4uPzT14rcmra4fDpH3yaoutvVKT9x+QeXikIWPXY2H6C3LaiOe9cUC8bhlgSZJ6pOy5sJpuy/tGF7gYEAbAm5SK2edk2OmInDMragrzpQ7IaQOG8s9FGogi8oqCvzwT7vo1HPrGStfIAEuS1HONDfU0rShTLqz5s3OC1KEwHE0D33Y7wElfrnQtJJVixotzOoMbvw4Hvy7nUqygmoreXZI0qDU2jCpjD9ZshwdKkrovAo77L1jxRE4rUWEGWJKkHmtsqGfhinU0t6TeXWj1kpxk1eGBkqSe2PPEPJT3hq9BS3NFq2KAJUnqseJcWL3SmmC48fDeV0qSNPREwLEfhmWPwNw/VLQqBliSpB4rzoXVK02zoWYY7HhQGWolSRqS9j4FJu4DN34NWloqVg0DLElSjxXnwuqVpttycDVAkkRKkgahmpqcKPzp++G+KytXjYrdWZI06JUlF1bzJlhwu8MDJUm9t98ZsP0ecMNXK9aLZYAlSeqxsuTCWjIvJ3KdboAlSeqlmtrci7VkLjx4dWWqUJG7SpKqRq9zYW1Z4MIVBCVJZbD/q6BhV7j+K5B6ucptDxhgSZJ6pde5sObPhtFTYFxj+SolSRq6auvgmA/Aojvhob/3++0NsCRJvdLrXFhNc/LwwIjyVkySNHQd+FoYtxPc0P+9WAZYkqRe6VUurDVPw/LHHB4oSSqvuuFw9Pn5Q7xHZ/XrrQ2wJEm90qtcWCYYliT1lUPOhTFT81ysfmSAJUnqlemFXFjzl/VgoYumOVBTB1MPLnOtJElDXt2I3Iv15M3w+D/77bYGWJKkXpnamgurpz1YUw6AYfVlrpUkScDz3gDbTerXXiwDLElSr4wcVsukMSNoWt7NHqzmzbDg386/kiT1nWH1cNR74bHr4cl/9cstDbAkSb3W2FDf/R6sp+6FTWthugGWJKkPHfYWGLV9XlGwHxhgSZJ6rUe5sJpmF04+rPwVkiSp1fDt4Mj/hIevzSMn+pgBliSp13qUC2v+nDwufvzOfVcxSZIAnv82GDkerv9qn9/KAEuS1GuNDaPY3JJYsqobubCa5uThgSYYliT1tRFj4Ih3wYNXw6K7+/RWBliSpF5rbOjmSoLPPgPLHnF4oCSp/7zg7TBiLNzQt71YBliSpF5rC7BKXElwwW2FE13gQpLUT+rH5yDrvithyb19dhsDLElSr3U7F9b82RC1MPWQPqyVJEntHPEuGD4abvxan93CAEuS1GvdzoXVNBum7A/DR/VtxSRJKjZqAhz+HzD3D/D0g31yCwMsSVJZlJwLq6UZFtzu8EBJUmUc+Z9QNxJu/HqfXN4AS5JUFiXnwnrqPti4xgTDkqTKGD0xJx++53ew7NGyX94AS5JUFiXnwjLBsCSp0o56L9TUwY3fKPulDbAkSWVRci6spttg1A7QsGv/VEySpPbGTIFD3wh3/RpWPFnWSxtgSZLKouRcWPNnQ+PhJhiWJFXWUe8DAv75zbJe1gBLklQWJeXCWrsMnnkIph/eT7WSJKkT4xrhkHPhjstg1cKyXbakACsiGiPiOxFxS0SsjYgUEbt0UG5kRHw1IhZFxLpC+WM7KFcTERdExOMRsT4i7oqIMzu599si4v6I2BARD0TEOzopd3pE3FG43hMR8YmIqC3l+UmSeq+kXFgL/p33riAoSRoIjn4/pBa46aKyXbLUHqwZwFnAcuDGLsr9GHgb8CngZGARcE1EHNyu3OeAC4HvAicBtwK/i4iXFxeKiLcBFwP/A5wI/A74fkS8s125lxXKzClc7yLgE8AXS3x+kqReKikX1vzZEDUmGJYkDQwNO8OBr4V//xRWLynLJUsNsG5IKU1OKb2cHOQ8R0QcBLwOeH9K6UcppX+Qg7Ingc8WlZsEfAj4ckrpayml61JKbweuA75cVK4O+ALwi5TSxwvlPgH8FPhcRAwruv2XgX+mlM4rlPsGObh6f0RMKfE5SpJ6aZu5sJpmw+T9YMTo/quUJEldOeYD0LwRbv52WS5XUoCVUmopodipwCbg8qLzNgO/AV4WESMKh18GDAcua3f+ZcABEdG6rNSRwMQOyv0C2B44GiAipgMHd1JuGLlHS5LUD7rMhdXSDE3/dnigJGlg2X53OODVcNtP4Nmlvb5cORe52A94LKXUfmzIPHJANaOo3Abg4Q7KAexbVA5gbk/KpZQeA9YWlZMk9bEuc2E9/QBsXJ1XEJQkaSA55kOwaR3c8t1eX6quDNVpNYE8R6u9ZUWPt+5XpJTa//ftqBwdXLPUcq3HJnRwnIg4DzgPYOLEicyaNaujYlK/WrNmjW1RFdebdrj26U1sbklccc11bF+/9Wd4Oy78G3sB/1qYWLeiZ9fX0OJrogYK2+LQsO/Eo5hwyw+4NR3K5mFjenydcgZYg0pK6RLgEoC99torzZw5s7IVkoBZs2ZhW1Sl9aYd1j70ND+dN5vGvQ7iBbttv/WDf/wd1E/gBSedbQ4slcTXRA0UtsUhYp+J8IMXcnTdPTDzYz2+TDmHCC4HGjo43tqDtKyo3PiI5/x37agcHVyz1HKtx5Z1cFyS1AcaG0YBnSzVPn+OCYYlSQPX5P1g75Ph1h/C+pU9vkw5A6x5wK4RMard8X2BjbTNuZoHjAB276AcwL1F5aBtjlW3yhXydI0qKidJ6mNTx48EOgiw1q2ApQ+YYFiSNLAd+2HYsBL+dUmPL1HOAOsq8qp9r249UFhq/TXA31JKGwqH/0pebfCcduefC8wtLE4BcAuwtJNyy4CbAFJKTwJ3dVJuE3B1z5+SJKk7RtTVMnlsB7mwFtyW9y5wIUkayKYeDHueCLd+Dzas7tElSp6DFRGvKnx5aGF/UkQ8DTydUro+pXRHRFwOfKuQo+ox4J3ArhQFPymlpyLiG8AFEbEauJ0chB1PXuq9tdymiPgkObHwAuDaQpm3AO9JKW0sqt7HgD9FxMXAr4FDyImGL0opLS71OUqSeq/Dpdrnz8kJhqcd2vFJkiQNFMd+BC49HuZcCke/v9und2eRi/YJhr9f2F8PzCx8/WZycuDPA+PJPUsnppRub3fux4E1wPuAKcADwFkppT8VF0op/TAiEvBB4MPkpMX/mVL6frtyfykEgJ8G3gQsISca/kI3np8kqQwaG+q5/cl2C7s2zYFJ+8KInq/KJElSv2g8FHY/Hm7+Ljz/PBi+XbdOL3mIYEopOtlmFpVZl1L6QEppSkppZErpBSmlWR1cqzml9PmU0s4ppREppQNTSr/v5L4Xp5T2LJTbo31wVVTuDymlgwrldkopfTal1Fzq85MklUdjQz2LVqxnc3MhR31LCzTdBo2HVbZikiSV6rj/grVL4d8/7fap5ZyDJUkSjQ2j2NySWLK6MPV26YN5wnDj8ytbMUmSSrXTEbDLMXDTRTkBcTcYYEmSyqqxoR6ApmWFhS6a5uT9dAMsSdIgctxHYM0SuP0X3TrNAEuSVFbPyYXVNBtGjocJ7bNzSJI0gO1yDOx0JNz0Ldi8YdvlCwywJEll9ZxcWK0Jhmv8lyNJGkQicl6sVQvgzl+WfJr/7SRJZbVVLqz1K+Hp+x0eKEkanHY/PqcYufGbJZ9igCVJKrstubAW/BtIriAoSRqcIvKKgiufLPkUAyxJUtk1NtTTtGJtHh5ImGBYkjR47fFS2PGgkosbYEmSyq41F1ZL02yYuDeMHFfpKkmS1DMRcMKFJRc3wJIklV1jwyiaW5ph/m0w/fBKV0eSpN7Z/fiSixpgSZLKrrGhnl1jMTUbVphgWJI0pBhgSZLKrrFhFM+reajwjT1YkqShwwBLklR2U8eP5HnxEOtrx8AOe1a6OpIk9RsDLElS2Y2oq+XwYY/weP0+JhiWJA0p/teTJJXfhtXsluYzlz0qXRNJkvqVAZYkqfwW/JtaWrh54+6VrokkSf3KAEuSVH5NcwD4vzU7sbm5pcKVkSSp/xhgSZLKb/4cVo7ejRUto1i8an2layNJUr8xwJIklVdK0DSHdZMPBaBp+boKV0iSpP5jgCVJKq9lj8K6ZdTtlBMMG2BJkoYSAyxJUnnNnw3A2D2OJAKalq+tcIUkSeo/BliSpPJqmg0jxjJ8yn5MHjPSHixJ0pBigCVJKq+mOTDteVBTQ2NDvT1YkqQhxQBLklQ+G9bAknnQmOdf5QDLHixJ0tBhgCVJKp+Ft0NqgemtAdYoFq1cby4sSdKQYYAlSSqfQoJhpuUl2hsb6mluSebCkiQNGQZYkqTymT8Htt8DRk0Acg8WuFS7JGnoMMCSJJVHIcFw6/BAyD1YYIAlSRo6DLAkSeWx/DFYuxQaD9tyaMfxI82FJUkaUgywJEnlMb8w/6qxrQdrRF2tubAkSUOKAZYkqTya5sDw0TBpn60OmwtLkjSUGGBJksqjaXYhwXDtVofNhSVJGkoMsCRJvbfxWVg8d6vhga3MhSVJGkoMsCRJvbfwTkjN0Hj4cx4yF5YkaSgxwJIk9V7T7LzvMMDKubDmL3OYoCSp+hlgSZJ6b/4cmLA7bLf9cx5qy4XlQheSpOpngCVJ6p3WBMMd9F5BcS4se7AkSdXPAEuS1DsrnoBnn4LpHQdYI+pqmTLWXFiSpKHBAEuS1DsdJBhuz1xYkqShwgBLktQ7TXNg2HYwad9OizQ2jLIHS5I0JBhgSZJ6pzXBcG1dp0UaG+pZvMpcWJKk6meAJUnquU3rYPE9nS5w0ao1F9ailebCkiRVNwMsSVLPLbwTWjaXEGDlXFgOE5QkVTsDLElSz3WRYLiYubAkSUOFAZYkqeea5kDDLjB6YpfFdhxXby4sSdKQYIAlSeqZlPIS7V0sz95qeF2NubAkSUOCAZYkqWdWzoc1i2H6tgMsMBeWJGloMMCSJPVMU2uC4cNKKm4uLEnSUGCAJUnqmflzoK4eJu9fUnFzYUmShgIDLElSz2xJMDyspOLmwpIkDQUGWJKk7tu0HhbdXfLwQDAXliRpaDDAkiR136K7oGVTSSsItjIXliRpKDDAkiR1X4kJhouZC0uSNBQYYEmSuq9pDozfCcZMLvkUc2FJkoYCAyxJUveVmGC4PXNhSZKqnQGWJKl7VjbB6oUlJxguZi4sSVK1M8CSJHVPNxMMF2tsqGfRynVsMheWJKlKGWBJkrpn/hyoGwmTD+j2qY0N9bQkWGwuLElSlSprgBURMyMidbCtaFeuISIujYilEfFsRFwbEc/5Tx0RIyPiqxGxKCLWRcQtEXFsB+VqIuKCiHg8ItZHxF0RcWY5n5skqaBpDux4MNQN7/aprbmw5jsPS5JUpfqqB+u9wJFF2wmtD0REAFcBJwLvAc4EhgHXRURju+v8GHgb8CngZGARcE1EHNyu3OeAC4HvAicBtwK/i4iXl/VZSdJQt3kDLLoTppe+PHux6SYbliRVubo+uu59KaVbO3nsVOAo4PiU0nUAEXEL8BjwEXJwRkQcBLwOeEtK6b8Lx64H5gGfLVyHiJgEfAj4ckrpa4V7XBcRM4AvA38p/9OTpCFq0d3QvLFHKwgCTBk3khpzYUmSqlgl5mCdCixsDa4AUkoryb1ap7Urtwm4vKjcZuA3wMsiYkTh8MuA4cBl7e5zGXBAROxa9mcgSUPVlgUuetaD1ZYLyyGCkqTq1FcB1i8jojkinomIX0XETkWP7QfM7eCcecBOETG6qNxjKaX2/4XnkQOqGUXlNgAPd1AOYN+ePglJUjtNs2HcdBi7Y48v4VLtkqRqVu4hgiuBrwPXA6uAQ4CPAbdExCEppaeACcDjHZy7rLBvANYUyi3votyEov2KlFLaRrmtRMR5wHkAEydOZNasWV09L6lfrFmzxraoiuuqHR7x8I2sGrs39/aindZt3MADy5pt69omXxM1UNgW1R1lDbBSSncAdxQduj4ibgBmk+dWfaKc9+uNlNIlwCUAe+21V5o5c2ZlKyQBs2bNwraoSuu0Ha5aCLOWMvJ5r2DSkR08XqLbNz7Ardc9zFHHHMuwWrOFqHO+JmqgsC2qO/r8P1tK6XbgQaB1wP5yci9VexOKHi+l3LKicuMLqxN2VU6S1But86+m92yBi1aNDaPMhSVJqlr9+dFh6xC+eeR5U+3tCzyZUlpTVG7XiBjVQbmNtM25mgeMAHbvoBzAvb2ptCSpYP5sqB0BUw7s1WUaG+rz5VzoQpJUhfo8wIqIw4C9yMMEAa4EpkXEcUVlxgKnFB5rdRU5P9ari8rVAa8B/pZS2lA4/FfyaoPntLv1ucDclNJj5Xs2kjSENd0GOx7UowTDxRrNhSVJqmJlnYMVEb8k57O6HVhBXuTiAmAB8O1CsSuBW4DLIuLD5CF+FwABfKX1WimlOyLicuBbETGscN13ArtSFEyllJ6KiG8AF0TE6sK9XwMcTyFXliSplzZvhIV3wPPf1utLmQtLklTNyr2K4FzgbOA9wChgMfAH4NMppaUAKaWWiDgZ+BrwfWAkOeB6UUppfrvrvRn4AvB5YDxwF3BiYV5XsY+TVx58HzAFeAA4K6X0pzI/P0kamhbfA80boPGwXl/KXFiSpGpW7lUEvwR8qYRyy4C3FLauyq0DPlDYuirXTA7CRs6+VgAAFOhJREFUPl9yZSVJpduSYLh3C1y0MheWJKlauT6uJGnbmmbD2GkwblpZLtfYUM8CAyxJUhUywJIkbdv8OWUZHtiqsaGeRSvXsam5pWzXlCRpIDDAkiR1bfViWPlk2YYHgrmwJEnVywBLktS1MiUYLmYuLElStTLAkiR1rWkO1AzrdYLhYltyYS1zHpYkqboYYEmSujZ/Tk4wPGxk2S7ZlgvLHixJUnUxwJIkda55U04wXMbhgVCcC8seLElSdTHAkiR1bslc2LyurCsItjIXliSpGhlgSZI6N7+8CYaLNTbUO0RQklR1DLAkSZ1rmg2jp8C4xrJfunHCKBavWs/GzebCkiRVDwMsSVLnmubA9MMhouyXbmyoNxeWJKnqGGBJkjq25mlY/nifDA+EtlxYDhOUJFUTAyxJUseaZud94+F9cvnprbmwXOhCklRFDLAkSR1rmgM1dTD14D65vLmwJEnVyABLktSx+XNgyoEwrL5PLj+stoYdx9XbgyVJqioGWJKk52reDAtv77Phga2mNRhgSZKqiwGWJOm5npoHm9bC9L5Z4KKVubAkSdXGAEuS9Fzz+3aBi1aNDebCkiRVFwMsSdJzNd0G202C8Tv16W3MhSVJqjYGWJKk52qanYcH9kGC4WLmwpIkVRsDLEnSVoZtXAnLHu3z4YFgLixJUvUxwJIkbWXsqgfzF/0QYJkLS5JUbQywJElbGbvqfohamHpIn9/LXFiSpGpjgCVJ2srYVQ/AlP1h+Kh+uZ+5sCRJ1cQAS5LUpqWZsasegsa+zX9VzFxYkqRqYoAlSWqz6C5qW9b3eYLhYo0No1hkLixJUpUwwJIkZWuehj+8jc2128Gux/XbbRsb6kkJFq10mKAkafAzwJIkwfqVcNkrYeUC7j7wkzBmcr/dui0XlgGWJGnwq6t0BSRJFbZxLfzqtfDUfXD2b1i1oH//NbTlwnIeliRp8LMHS5KGss0b4XdvhCdvgVdeDHuc0O9VaMuFZQ+WJGnwswdLkoaqlma44h3w0N/glItg/zMrUg1zYUmSqok9WJI0FKUEf/kQzP0fOOEzcOibKlodl2qXJFULAyxJGor+8Vm47Sdw1Plw9PmVrg2NDaPswZIkVQUDLEkaam66CP75DTj0zXDChZWuDZB7sBabC0uSVAUMsCRpKPn3T+Hvn4L9Xgmv+DpEVLpGgLmwJEnVwwBLkoaKuX+Aq86HGS+BMy6GmtpK12iLxi1LtRtgSZIGNwMsSRoKHroW/nAe7HQEnPVzqBte6RptpS3ZsAtdSJIGNwMsSap2T94Kl58Lk/aGs38Dw0dVukbPseO4kdTWhD1YkqRBzwBLkqrZ4nvgl2fBuGlw7v9C/fhK16hDdbU1TBk70gBLkjToGWBJUrV65hH4xRkwYjS8/goYPbHSNeqSubAkSdXAAEuSqtHKBfDz0yC15OBq/PRK12ibzIUlSaoGBliSVG2efQZ+cTqsWwHn/gEm7lnpGpXEXFiSpGpggCVJ1WT9KrjslbDiSXjd5TD14ErXqGTmwpIkVQMDLEmqFpvWwa/PhiVz81LsuxxV6Rp1i7mwJEnVoK7SFZAklUHzJvjdm+GJm+DMS2HPl1W6Rt1mLixJUjUwwJKkwa6lBf74bnjwanjF1+GAV1W6Rj1iLixJUjVwiKAkDWYpwdUfgbsvh+M/CYf/R6Vr1GOtubDmL7MHS5I0eBlgSdJgdt0XYc6P4IXvgWM+WOna9FrOhWUPliRp8DLAkqTB6pbvwQ1fgUNeDy/5HERUuka9Zi4sSdJgZ4AlSYPR7b+Aaz4G+54Gp1xUFcEV5B6sJavXs2Fzc6WrIklSjxhgSdJgc++VcNV7Yffj4ZU/gpraSteobLbkwlqxvtJVkSSpRwywJGkweeQ6+J+3wrTD4DWXQd2ISteorMyFJUka7AywJGmwmD8HfnMO7LAnnPNbGL5dpWtUdubCkiQNdgZYkjQYLJkHv3wVjJ4E5/4B6hsqXaM+YS4sSdJgZ4AlSQPdskfhF2fAsHp4wx9hzORK16jP1NXWsOO4kdy7aBXLn91Y6epIktRtdZWugCSpC6sWwc9Ph+ZN8OaroWHnSteoz+01eQz/uP8pDvnc35k6biT7TRvHflPHsv/Ucew3bSxTxo4kqmTVRElS9amaACsipgPfBF4CBHAtcH5K6cmKVkySemrtMvjF6bD2GXjjlTBp70rXqF9853WHcMeTK5i7YCXzFq5i7sKVXHvfElLKj2+/3XD2nTqW/aaOY/9peb/zhFHU1Bh0SZIqryoCrIgYBfwfsAF4I5CAzwPXRcSBKaVnK1k/Seq2DavznKtlj8G5v4dph1a6Rv1m1PA6jpqxA0fN2GHLsWc3bOa+RatywFUIvH78z0fZ1JyjrtEj6th3x7HsVwi49ps6lhmTRjOs1pHwkqT+VRUBFvA2YDdgr5TSwwARcTfwEPB24BsVrJskdc+m9fCb18HCO/NS7LseW+kaVdx2I+o4bJcJHLbLhC3HNmxu5qEla5i3cCVzF6xi3sKV/Gb2fNZtehyA4XU17D1lzJaAa/9p49h7yhhGDquevGGSpIGnWgKsU4FbW4MrgJTSYxFxE3AaBliSBovmzTnP1WM3wBkXw94vr3SNBqwRdbXsP20c+08bx2sOz8eaWxKPLV2zVU/Xn+9eyK9n59HitTXB7hO3Y/+p49i3EHTtO3UsY0cOq+AzkSRVk2oJsPYD/tjB8XnAq/u5LpKqQUsLtGyC5o15gYnmjf3w9SZYtQAW3gEnfQUOem2lfwqDTm1NMGPSGGZMGsNpB08DIKVE0/J1zFuYe7nmLVzFPx9eyh/uWLDlvJ23H8V+U9uGF+6z41hG1m3d05VIW3+/9beFMh0ca1ew4zKdP6eIPLE4fx3ElmOFo9F5mfxwtH3d7lin57iIiCT1WLUEWBOA5R0cXwZsM1nM6DWPwhenlb1SUncd3bwZbq6WP8tBKrXkYKdlc99cv6YOaodD7bDCvoOvT/x/8IK39839h6CIYPqEUUyfMIoT95+y5fhTq9czb+Eq7i0EXnMXrOIv9yyuYE0Hnm3FWaWEYdsK1rp6dERtYt7MEm4iSQPIkH0nFxHnAecVvt0QH184t5L1kQp2AJZWuhKqtOuBd1ayArZDDRQ7xOdtixoQfF0UQEm5UqolwFpOxz1VnfVskVK6BLgEICJuSykd1nfVk0pjW9RAYDvUQGFb1EBhW1R3VMv6tfPI87Da2xe4t5/rIkmSJGmIqpYA60rgiIjYrfVAROwCHFV4TJIkSZL6XLUEWD8CHgf+GBGnRcSp5FUF5wMXl3D+JX1YN6k7bIsaCGyHGihsixoobIsqWbRfPnawioidgG8CLyEvSvQP4PyU0uOVrJckSZKkoaNqAixJkiRJqrSyDxGMiFdFxP9ExBMRsS4iHoiIL0XEmHblGiLi0ohYGhHPRsS1EXFAB9f7YkT8LSKeiYgUEW/q5L6jIuKbEbEgIjZExD0RcU436l0TERdExOMRsT4i7oqIM9uVmVmoQ2fbEeW4T6HcG4t+jikiflrqc1FmW+z9fYrKNkTEtyLiycJzarJNlsZ2uM37fCAiroqIRYVzLuyk3CkR8auIeDAiWiJiVqnPRZltcZv3KaktFsrWR8SFEfFQ4TktiYg/RcTwUp/XUGZb7PIee0bERRFxd0SsKbTHKyPioA7K+l5xoEoplXUDbgV+C5wDHAecD6woHK8plAngn0ATcDZwIjnxy1Kgsd31VgM3Aj8DEvCmTu77V2Al8B7gpcAPC+XPLbHeXwA2AB8CXkSeu9UCvLyozFjgiA62ecAioLYc9ymU+ztwJ3Bp4Xn9tNy/q2rfbItla4sNhevOBd4AHAu8FvhOpX/Hg2GzHW7zPvcB/wJ+UKjfhZ2U+zF5VdifA08Csyr9ux1sm22xbG1xGDALeAJ4R+E18czC86qv9O95MGy2xS7v8Z/A3cAHC/c4A7gFWAcc2q6s7xUH6Fb+C8LEDo69odCAjy98f1rh+xcVlRkHLAO+3e7c1j+0GZ390QBHd/QY8CdgYQmNeVLhD+Yz7Y7/A7h7G+fuXPjj+moJP5uS79P6vAtfN/lHY1usYFv8IfmNxNhK/04H42Y73ObPp/X51NH1m9ri18R/YoBlW6xcW/wosAqYXunf6WDdbItdlt2BwhSeds97OfDzjp534WvfKw6grexDBFNKT3dweE5hP62wPxVYmFK6rui8lcBV5D+o4uu1lHDb1u7Wq9sd/yuwY9HjnXkZMBy4rN3xy4ADImLXLs59PflTlp+VUM+S71Pi81YXbIu9v09EbEf+p3dpSmlVCddVO7bDrpX6WudrYu/ZFrvWjTb2LuB3KaX5JZZXO7bFzqWUlqZCxFR0bCXwIG0/m9bjvi4OUP21TPtxhf19hf1+5OFG7c0DdoqI0d28fnNhv7Hd8Q2F/f7bOH+/QtmHO6gP5ITFnXkDcHtKqaPnU877qDxsi927z6FAPbAkIn5fGCu/JiKu2MY/E3XNdqiBwrbYDZFXLJ4OPBoRP4qIVYW5OP+IiIPLdZ8hyrbYiYiYUKjffdsqq4GhzwOsiJgGfBa4NqV0W+HwBHJXZ3vLCvuGbt7mgcK+/acPRxbdrysTgBXtPzEoqk+H50fEkcAelPjpWE/vo/KwLfboPlML+6+R/zmdCpwHHALMaj8hWdtmO9RAYVvskdbXxP8CdiPPRz0bmEh+TdypzPcbEmyL2/Qdcg/Yt3pxDfWjur68eOHThT8Cm4E39+Gt/kaO6r8dEW8A7gdeSX7RgzzulYioYeugsqWX3atvBDYBvyo+2Af3US/ZFnt8n9ZzHwVe2/qPJSIeIU9GPpc8IVwlsB2W7T7qJdtij+/Teu5a4JSU0trCdW8j92y8mxx8qUS2xa7vExEXAK8D3ppSat97pgGqz3qwIqKePE52N+BlKaWmooeX0/EnDxOKHi9ZSmkz8CrgWeBm8qcJXwAuKBRZVNj/hNzIW7efFN1vfEREJ/VZ1u44ETECOAv4c0ppabuHy3Yf9Z5tsVf3eaaw/0fxp3YppX+RJ3kf0r4+6pjtsMP7qAJsi71qi62viTe1BlcAhflY9+NrYrfYFrtuixHxDuCLwCdSSr5uDiJ90oMVEcOA3wOHAS9JKd3Trsg88vKY7e0LPJlSWtPde6aU7gUOjohdgO3IkwFfWXj4psL+QuC7Rae1NvZ5wAhgd7YeW9s6nvbeDm55KvkPv6Mu33LeR71gW+z1febRNXshSmA77PQ+6me2xV63xUfJy2V3xtfEEtkWu26LEfF64PvA11NKX+j4GWnAKveyhOResd+SX4Be3EmZ08lLZR5XdGws+ZOhDnPr0MXSm52UH0bOiXBNCWUnkSc9frrd8WuBezo550/A08Cwbvxsun2fwuMuvdmDzbZYnvuQV3a6m6JlY8lj1hN5yELFf9cDebMdlvxz6nJp7HZlXaa9Zz9j22Jp9dvWMu2/A5YA2xUd24m8AMLnKv17HgybbXGb9zqDPGTykm6c43vFAbT1RQ/W94BXk7tdn22Xsbop5e7fK8lJ0y6LiA+Tu10vIE/g+0rxxSLiOPLk0SmFQ4dFxBqAlNLvi8pdQM7Vs5D8Qvfuwv6obVU4pfRURHwDuCAiVgO3A68Bjid/+rCViJhEXq7zBymlTdu6fk/uExH70vapSD2wc0S8qvD99anjJU61Ndtiee7zUeAa4PcRcSn5Z/AF8nCYX6FtsR12ISIOA3ahbcj6vkWvdX9JbXNcdgYOLxzfHmgpKjcnpfREd+47RNkWu1BqWwQ+DcwG/hwRXwdGFo6tYOseCXXOttiJiDgW+DVwF/DTdj+bDSmlO4rK+l5xoCp3xAY8Tv70oKPtwqJyE8jjTZeRJ4v+Aziog+vN6ux67cp9HniM/AnSEnJ3bMlJAIFa4BPkP7wN5E/sX9VJ2fcX6nBoqdfv7n3IXced/RxnVjoyHwybbbGs9zmJ3JO1nvzp4c+ByZX+HQ+GzXa4zfv8tIufzy5F5d7URbk3Vfr3PBg222J52mKh7POB6wo/n5XAFcCMSv+OB8tmW+zyHhd28bN5vBtlZ1b69zyUtyj8giRJkiRJvdRfiYYlSZIkqeoZYEmSJElSmRhgSZIkSVKZGGBJkiRJUpkYYEmSJElSmRhgSZIkSVKZGGBJkoaMiJgVEbO6ec7MiLgwIvyfKUnaJv9ZSJLUtZnAp/F/piSpBP6zkCRJkqQyMcCSJFWliHhtRNwfERsiYl5EnNHu8ZER8c2ImBsRayJicURcFRF7F5W5kNx7BbApIlJEpKLHR0XE/4uIxyJiY2H/cYcTStLQVVfpCkiSVG4RcQLwK+DPwAeBicBFwDDggUKxEcAY4PPAImAC8C7glojYJ6W0GLgUaATeChwNNBfdow64BtgX+BxwD3AE8MnCtT7Yp09SkjQgRUpp26UkSRpEIuImoAHYP6XUUjh2BHALcH1KaWYH59SSg64lwKdSSt8sHL+Q3Is1LKW0uaj864GfA8ellG4oOv7xQvnGlNJTffIEJUkDlkMYJElVpRAoHQ78vjW4Akgp3Qo83q7sWRHxr4hYAWwGngVGA3uVcKsTgSeAmyOirnUD/kbuKTuiHM9HkjS4OERQklRtdiAHOEs6eGzLsYg4Bbgc+BnwGWAp0AL8BRhZwn0mATsDmzp5fPvSqyxJqhYGWJKkarOUHPRM7uCxyeReJ4DXAg+nlN7U+mBEDCPPnyrFM8BjwFmdPP54ideRJFURAyxJUlVJKTVHxBzgVRFxYdEcrBcAu9AWYI0iDwss9nqgtt2xDYV9PbC66PhfgTOBNSml+8v3DCRJg5kBliSpGn2aPBfqioi4mLyK4GeAxUVl/gqcHhHfBP4EHAa8B1jR7lr3FvYfjIirgeaU0m3AL4E3A/+IiK8DdwHDgd2BU4HTU0pr++LJSZIGLlcRlCRVpYg4G7iQ3Gv1MPAJ4H0AKaWZhVxVnwXeAowH5gDnA/8LzGodOlhYNOPbwKvJ87sipRSFx0YCHyUPN9yVvEjGI+Tl4T9fvOqgJGloMMCSJEmSpDJxmXZJkiRJKhMDLEmSJEkqEwMsSZIkSSoTAyxJkiRJKhMDLEmSJEkqEwMsSZIkSSoTAyxJkiRJKhMDLEmSJEkqEwMsSZIkSSqT/w8xF7eV6JkevAAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "old_window_opens = window_opens.iloc[:, 0]\n", "new_window_opens = window_opens.iloc[:, 1:].sum(axis=1)\n", "pd.concat([old_window_opens, new_window_opens], axis=1).plot()" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [], "source": [ "window_opens_by_platform_r = hive.run(\"\"\"\n", "select\n", " to_date(eas.dt) as date,\n", " eas.event.platform,\n", " vefu.event.action as action,\n", " count(*) as events\n", "from event.visualeditorfeatureuse vefu\n", "inner join event.editattemptstep eas\n", "on \n", " vefu.event.editingsessionid = eas.event.editing_session_id and\n", " eas.event.action = \"init\" and\n", " vefu.event.action like \"window-open%\" and\n", " vefu.year = 2019 and vefu.month = 7 and\n", " eas.year = 2019 and eas.month = 7\n", "group by \n", " to_date(eas.dt),\n", " eas.event.platform,\n", " vefu.event.action\n", "\"\"\")" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
events
actionwindow-openwindow-open-from-commandwindow-open-from-contextwindow-open-from-sequencewindow-open-from-toolwindow-open-from-trigger
platformdesktopphonedesktopphonedesktopphonedesktopphonedesktopphonedesktopphone
date
2019-07-01690215800000000000
2019-07-02718516730000000000
2019-07-03723418510000000000
2019-07-047225140300000000000
2019-07-056225129240000000000
2019-07-065260121870000000000
2019-07-075994159770000000000
2019-07-086920119160000000000
2019-07-096889125260000000000
2019-07-107162141581052009000
2019-07-1157841032815056126597303147467450
2019-07-122420254430898370922931020473028520
2019-07-1312384404889303417024519654160471
2019-07-1472267390881397825837120113873660
2019-07-1520315375996311518636618183464550
2019-07-1601330400968286918134025633998632
2019-07-1700472409950296614327718623273821
2019-07-18003523211060296921626424273439450
2019-07-1900612331947285224639126383344541
2019-07-2000220367797336212239617614014652
2019-07-2100302398939348517232520393802710
2019-07-22002763421121379113226922583084970
2019-07-23005053421165316127721723762960951
2019-07-24004993579933039188316244133021060
2019-07-25003102887452342139148151423271130
\n", "
" ], "text/plain": [ " events \\\n", "action window-open window-open-from-command \n", "platform desktop phone desktop phone \n", "date \n", "2019-07-01 6902 1580 0 0 \n", "2019-07-02 7185 1673 0 0 \n", "2019-07-03 7234 1851 0 0 \n", "2019-07-04 7225 14030 0 0 \n", "2019-07-05 6225 12924 0 0 \n", "2019-07-06 5260 12187 0 0 \n", "2019-07-07 5994 15977 0 0 \n", "2019-07-08 6920 11916 0 0 \n", "2019-07-09 6889 12526 0 0 \n", "2019-07-10 7162 14158 1 0 \n", "2019-07-11 5784 10328 150 56 \n", "2019-07-12 24 20 254 430 \n", "2019-07-13 1 2 384 404 \n", "2019-07-14 7 2 267 390 \n", "2019-07-15 2 0 315 375 \n", "2019-07-16 0 1 330 400 \n", "2019-07-17 0 0 472 409 \n", "2019-07-18 0 0 352 321 \n", "2019-07-19 0 0 612 331 \n", "2019-07-20 0 0 220 367 \n", "2019-07-21 0 0 302 398 \n", "2019-07-22 0 0 276 342 \n", "2019-07-23 0 0 505 342 \n", "2019-07-24 0 0 499 357 \n", "2019-07-25 0 0 310 288 \n", "\n", " \\\n", "action window-open-from-context window-open-from-sequence \n", "platform desktop phone desktop phone \n", "date \n", "2019-07-01 0 0 0 0 \n", "2019-07-02 0 0 0 0 \n", "2019-07-03 0 0 0 0 \n", "2019-07-04 0 0 0 0 \n", "2019-07-05 0 0 0 0 \n", "2019-07-06 0 0 0 0 \n", "2019-07-07 0 0 0 0 \n", "2019-07-08 0 0 0 0 \n", "2019-07-09 0 0 0 0 \n", "2019-07-10 5 2 0 0 \n", "2019-07-11 126 597 30 31 \n", "2019-07-12 898 3709 229 310 \n", "2019-07-13 889 3034 170 245 \n", "2019-07-14 881 3978 258 371 \n", "2019-07-15 996 3115 186 366 \n", "2019-07-16 968 2869 181 340 \n", "2019-07-17 950 2966 143 277 \n", "2019-07-18 1060 2969 216 264 \n", "2019-07-19 947 2852 246 391 \n", "2019-07-20 797 3362 122 396 \n", "2019-07-21 939 3485 172 325 \n", "2019-07-22 1121 3791 132 269 \n", "2019-07-23 1165 3161 277 217 \n", "2019-07-24 993 3039 188 316 \n", "2019-07-25 745 2342 139 148 \n", "\n", " \n", "action window-open-from-tool window-open-from-trigger \n", "platform desktop phone desktop phone \n", "date \n", "2019-07-01 0 0 0 0 \n", "2019-07-02 0 0 0 0 \n", "2019-07-03 0 0 0 0 \n", "2019-07-04 0 0 0 0 \n", "2019-07-05 0 0 0 0 \n", "2019-07-06 0 0 0 0 \n", "2019-07-07 0 0 0 0 \n", "2019-07-08 0 0 0 0 \n", "2019-07-09 0 0 0 0 \n", "2019-07-10 9 0 0 0 \n", "2019-07-11 474 674 5 0 \n", "2019-07-12 2047 3028 52 0 \n", "2019-07-13 1965 4160 47 1 \n", "2019-07-14 2011 3873 66 0 \n", "2019-07-15 1818 3464 55 0 \n", "2019-07-16 2563 3998 63 2 \n", "2019-07-17 1862 3273 82 1 \n", "2019-07-18 2427 3439 45 0 \n", "2019-07-19 2638 3344 54 1 \n", "2019-07-20 1761 4014 65 2 \n", "2019-07-21 2039 3802 71 0 \n", "2019-07-22 2258 3084 97 0 \n", "2019-07-23 2376 2960 95 1 \n", "2019-07-24 2441 3302 106 0 \n", "2019-07-25 1514 2327 113 0 " ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(\n", " window_opens_by_platform_r\n", " .pivot_table(index=\"date\", columns=[\"action\", \"platform\"])\n", " .fillna(0)\n", " .applymap(int)\n", ")" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [], "source": [ "window_opens_by_feature_r = hive.run(\"\"\"\n", "select\n", " to_date(dt) as date,\n", " event.feature as feature,\n", " count(*) as events\n", "from event.visualeditorfeatureuse\n", "where\n", " year = 2019 and month = 7 and\n", " event.action like \"window-open%\"\n", "group by \n", " to_date(dt),\n", " event.feature\n", "\"\"\")" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
events
featuremwSavelinktransclusioncitoidcitemediareferencemetawikitextLinkgallery...scoremwPremwLanguageVariant-twowaymwLanguageVariant-disabledchemDialogsyntaxhighlightInspectorflowMentioncommandHelpchemInspectorwikitextswitchconfirm
date
2019-07-017894.06920.04939.02168.0539.0438.0197.0129.084.078.0...1.00.00.00.00.00.00.00.00.00.0
2019-07-027713.07281.04644.02246.0723.0477.0277.0100.038.074.0...0.01.00.00.00.00.00.01.00.00.0
2019-07-037561.06992.04514.02191.0459.0421.0272.0135.034.059.0...1.00.01.00.01.00.00.02.00.00.0
2019-07-047926.07794.05204.02253.0500.0377.0305.0116.068.077.0...0.00.00.00.01.00.01.01.00.00.0
2019-07-057535.06606.04970.02106.0578.0276.0278.095.031.064.0...3.00.00.01.00.00.04.00.01.00.0
2019-07-067371.06125.04755.01866.0443.0249.0255.091.028.054.0...2.01.00.00.00.00.00.00.00.00.0
2019-07-079337.07922.05869.02288.0580.0417.0233.0106.039.058.0...1.00.00.00.00.00.00.02.00.00.0
2019-07-087505.06539.04678.02074.0529.0309.0277.0117.029.068.0...2.00.00.00.00.00.01.02.00.01.0
2019-07-097517.07534.04748.02206.0436.0396.0281.096.034.070.0...0.00.00.00.00.00.02.02.00.00.0
2019-07-108200.07977.04687.02354.0574.0415.0289.096.075.055.0...1.00.00.00.00.00.03.01.00.00.0
2019-07-116151.07314.04615.01727.0480.0355.0314.0111.061.097.0...3.02.00.00.02.00.01.02.00.00.0
2019-07-1220.07194.05082.0105.044.0339.0246.071.0105.078.0...1.00.01.00.02.00.02.02.00.00.0
2019-07-132.07679.04836.00.00.0324.0248.042.020.085.0...0.00.00.05.00.00.01.00.00.00.0
2019-07-142.08326.05280.00.00.0329.0298.053.096.054.0...0.00.00.00.00.00.04.02.00.00.0
2019-07-151.06888.04655.00.00.0356.0360.092.038.059.0...2.00.00.00.00.00.01.00.00.00.0
2019-07-162.08552.04519.00.00.0350.0260.076.053.063.0...1.00.00.00.00.04.00.03.00.00.0
2019-07-170.06950.04397.00.00.0420.0309.067.037.076.0...2.00.00.00.00.00.02.02.00.00.0
2019-07-180.07431.04587.00.00.0265.0323.071.036.062.0...0.01.00.00.00.00.02.00.00.00.0
2019-07-190.07815.04476.00.00.0458.0241.098.018.055.0...2.00.00.00.01.00.01.05.00.00.0
2019-07-200.07653.04534.00.00.0291.0382.055.056.093.0...0.00.00.00.00.00.00.02.00.00.0
2019-07-210.07541.05390.00.00.0270.0307.076.040.089.0...2.00.00.00.00.00.08.00.00.00.0
2019-07-220.07179.05286.00.00.0326.0328.081.074.098.0...0.00.00.00.01.00.00.02.00.00.0
2019-07-230.07646.04786.00.00.0297.0251.064.062.095.0...0.00.00.00.00.00.02.02.00.00.0
2019-07-240.07544.04849.00.00.0400.0244.0101.054.063.0...0.05.01.00.01.00.00.01.03.00.0
2019-07-250.07508.04820.00.00.0352.0262.077.049.094.0...0.00.00.00.00.00.01.00.01.00.0
2019-07-260.07660.04353.00.00.0331.0224.061.045.058.0...14.00.00.00.01.00.04.01.00.00.0
2019-07-270.07818.04863.00.00.0347.0258.039.011.068.0...1.03.00.00.00.00.00.02.00.00.0
2019-07-280.07573.04782.00.00.0300.0265.070.023.070.0...5.00.00.00.01.00.02.01.01.00.0
2019-07-290.04958.03017.00.00.0255.0200.063.081.044.0...0.00.00.00.00.00.00.00.00.00.0
\n", "

29 rows × 38 columns

\n", "
" ], "text/plain": [ " events \\\n", "feature mwSave link transclusion citoid cite media reference \n", "date \n", "2019-07-01 7894.0 6920.0 4939.0 2168.0 539.0 438.0 197.0 \n", "2019-07-02 7713.0 7281.0 4644.0 2246.0 723.0 477.0 277.0 \n", "2019-07-03 7561.0 6992.0 4514.0 2191.0 459.0 421.0 272.0 \n", "2019-07-04 7926.0 7794.0 5204.0 2253.0 500.0 377.0 305.0 \n", "2019-07-05 7535.0 6606.0 4970.0 2106.0 578.0 276.0 278.0 \n", "2019-07-06 7371.0 6125.0 4755.0 1866.0 443.0 249.0 255.0 \n", "2019-07-07 9337.0 7922.0 5869.0 2288.0 580.0 417.0 233.0 \n", "2019-07-08 7505.0 6539.0 4678.0 2074.0 529.0 309.0 277.0 \n", "2019-07-09 7517.0 7534.0 4748.0 2206.0 436.0 396.0 281.0 \n", "2019-07-10 8200.0 7977.0 4687.0 2354.0 574.0 415.0 289.0 \n", "2019-07-11 6151.0 7314.0 4615.0 1727.0 480.0 355.0 314.0 \n", "2019-07-12 20.0 7194.0 5082.0 105.0 44.0 339.0 246.0 \n", "2019-07-13 2.0 7679.0 4836.0 0.0 0.0 324.0 248.0 \n", "2019-07-14 2.0 8326.0 5280.0 0.0 0.0 329.0 298.0 \n", "2019-07-15 1.0 6888.0 4655.0 0.0 0.0 356.0 360.0 \n", "2019-07-16 2.0 8552.0 4519.0 0.0 0.0 350.0 260.0 \n", "2019-07-17 0.0 6950.0 4397.0 0.0 0.0 420.0 309.0 \n", "2019-07-18 0.0 7431.0 4587.0 0.0 0.0 265.0 323.0 \n", "2019-07-19 0.0 7815.0 4476.0 0.0 0.0 458.0 241.0 \n", "2019-07-20 0.0 7653.0 4534.0 0.0 0.0 291.0 382.0 \n", "2019-07-21 0.0 7541.0 5390.0 0.0 0.0 270.0 307.0 \n", "2019-07-22 0.0 7179.0 5286.0 0.0 0.0 326.0 328.0 \n", "2019-07-23 0.0 7646.0 4786.0 0.0 0.0 297.0 251.0 \n", "2019-07-24 0.0 7544.0 4849.0 0.0 0.0 400.0 244.0 \n", "2019-07-25 0.0 7508.0 4820.0 0.0 0.0 352.0 262.0 \n", "2019-07-26 0.0 7660.0 4353.0 0.0 0.0 331.0 224.0 \n", "2019-07-27 0.0 7818.0 4863.0 0.0 0.0 347.0 258.0 \n", "2019-07-28 0.0 7573.0 4782.0 0.0 0.0 300.0 265.0 \n", "2019-07-29 0.0 4958.0 3017.0 0.0 0.0 255.0 200.0 \n", "\n", " ... \\\n", "feature meta wikitextLink gallery ... score mwPre \n", "date ... \n", "2019-07-01 129.0 84.0 78.0 ... 1.0 0.0 \n", "2019-07-02 100.0 38.0 74.0 ... 0.0 1.0 \n", "2019-07-03 135.0 34.0 59.0 ... 1.0 0.0 \n", "2019-07-04 116.0 68.0 77.0 ... 0.0 0.0 \n", "2019-07-05 95.0 31.0 64.0 ... 3.0 0.0 \n", "2019-07-06 91.0 28.0 54.0 ... 2.0 1.0 \n", "2019-07-07 106.0 39.0 58.0 ... 1.0 0.0 \n", "2019-07-08 117.0 29.0 68.0 ... 2.0 0.0 \n", "2019-07-09 96.0 34.0 70.0 ... 0.0 0.0 \n", "2019-07-10 96.0 75.0 55.0 ... 1.0 0.0 \n", "2019-07-11 111.0 61.0 97.0 ... 3.0 2.0 \n", "2019-07-12 71.0 105.0 78.0 ... 1.0 0.0 \n", "2019-07-13 42.0 20.0 85.0 ... 0.0 0.0 \n", "2019-07-14 53.0 96.0 54.0 ... 0.0 0.0 \n", "2019-07-15 92.0 38.0 59.0 ... 2.0 0.0 \n", "2019-07-16 76.0 53.0 63.0 ... 1.0 0.0 \n", "2019-07-17 67.0 37.0 76.0 ... 2.0 0.0 \n", "2019-07-18 71.0 36.0 62.0 ... 0.0 1.0 \n", "2019-07-19 98.0 18.0 55.0 ... 2.0 0.0 \n", "2019-07-20 55.0 56.0 93.0 ... 0.0 0.0 \n", "2019-07-21 76.0 40.0 89.0 ... 2.0 0.0 \n", "2019-07-22 81.0 74.0 98.0 ... 0.0 0.0 \n", "2019-07-23 64.0 62.0 95.0 ... 0.0 0.0 \n", "2019-07-24 101.0 54.0 63.0 ... 0.0 5.0 \n", "2019-07-25 77.0 49.0 94.0 ... 0.0 0.0 \n", "2019-07-26 61.0 45.0 58.0 ... 14.0 0.0 \n", "2019-07-27 39.0 11.0 68.0 ... 1.0 3.0 \n", "2019-07-28 70.0 23.0 70.0 ... 5.0 0.0 \n", "2019-07-29 63.0 81.0 44.0 ... 0.0 0.0 \n", "\n", " \\\n", "feature mwLanguageVariant-twoway mwLanguageVariant-disabled chemDialog \n", "date \n", "2019-07-01 0.0 0.0 0.0 \n", "2019-07-02 0.0 0.0 0.0 \n", "2019-07-03 1.0 0.0 1.0 \n", "2019-07-04 0.0 0.0 1.0 \n", "2019-07-05 0.0 1.0 0.0 \n", "2019-07-06 0.0 0.0 0.0 \n", "2019-07-07 0.0 0.0 0.0 \n", "2019-07-08 0.0 0.0 0.0 \n", "2019-07-09 0.0 0.0 0.0 \n", "2019-07-10 0.0 0.0 0.0 \n", "2019-07-11 0.0 0.0 2.0 \n", "2019-07-12 1.0 0.0 2.0 \n", "2019-07-13 0.0 5.0 0.0 \n", "2019-07-14 0.0 0.0 0.0 \n", "2019-07-15 0.0 0.0 0.0 \n", "2019-07-16 0.0 0.0 0.0 \n", "2019-07-17 0.0 0.0 0.0 \n", "2019-07-18 0.0 0.0 0.0 \n", "2019-07-19 0.0 0.0 1.0 \n", "2019-07-20 0.0 0.0 0.0 \n", "2019-07-21 0.0 0.0 0.0 \n", "2019-07-22 0.0 0.0 1.0 \n", "2019-07-23 0.0 0.0 0.0 \n", "2019-07-24 1.0 0.0 1.0 \n", "2019-07-25 0.0 0.0 0.0 \n", "2019-07-26 0.0 0.0 1.0 \n", "2019-07-27 0.0 0.0 0.0 \n", "2019-07-28 0.0 0.0 1.0 \n", "2019-07-29 0.0 0.0 0.0 \n", "\n", " \\\n", "feature syntaxhighlightInspector flowMention commandHelp chemInspector \n", "date \n", "2019-07-01 0.0 0.0 0.0 0.0 \n", "2019-07-02 0.0 0.0 1.0 0.0 \n", "2019-07-03 0.0 0.0 2.0 0.0 \n", "2019-07-04 0.0 1.0 1.0 0.0 \n", "2019-07-05 0.0 4.0 0.0 1.0 \n", "2019-07-06 0.0 0.0 0.0 0.0 \n", "2019-07-07 0.0 0.0 2.0 0.0 \n", "2019-07-08 0.0 1.0 2.0 0.0 \n", "2019-07-09 0.0 2.0 2.0 0.0 \n", "2019-07-10 0.0 3.0 1.0 0.0 \n", "2019-07-11 0.0 1.0 2.0 0.0 \n", "2019-07-12 0.0 2.0 2.0 0.0 \n", "2019-07-13 0.0 1.0 0.0 0.0 \n", "2019-07-14 0.0 4.0 2.0 0.0 \n", "2019-07-15 0.0 1.0 0.0 0.0 \n", "2019-07-16 4.0 0.0 3.0 0.0 \n", "2019-07-17 0.0 2.0 2.0 0.0 \n", "2019-07-18 0.0 2.0 0.0 0.0 \n", "2019-07-19 0.0 1.0 5.0 0.0 \n", "2019-07-20 0.0 0.0 2.0 0.0 \n", "2019-07-21 0.0 8.0 0.0 0.0 \n", "2019-07-22 0.0 0.0 2.0 0.0 \n", "2019-07-23 0.0 2.0 2.0 0.0 \n", "2019-07-24 0.0 0.0 1.0 3.0 \n", "2019-07-25 0.0 1.0 0.0 1.0 \n", "2019-07-26 0.0 4.0 1.0 0.0 \n", "2019-07-27 0.0 0.0 2.0 0.0 \n", "2019-07-28 0.0 2.0 1.0 1.0 \n", "2019-07-29 0.0 0.0 0.0 0.0 \n", "\n", " \n", "feature wikitextswitchconfirm \n", "date \n", "2019-07-01 0.0 \n", "2019-07-02 0.0 \n", "2019-07-03 0.0 \n", "2019-07-04 0.0 \n", "2019-07-05 0.0 \n", "2019-07-06 0.0 \n", "2019-07-07 0.0 \n", "2019-07-08 1.0 \n", "2019-07-09 0.0 \n", "2019-07-10 0.0 \n", "2019-07-11 0.0 \n", "2019-07-12 0.0 \n", "2019-07-13 0.0 \n", "2019-07-14 0.0 \n", "2019-07-15 0.0 \n", "2019-07-16 0.0 \n", "2019-07-17 0.0 \n", "2019-07-18 0.0 \n", "2019-07-19 0.0 \n", "2019-07-20 0.0 \n", "2019-07-21 0.0 \n", "2019-07-22 0.0 \n", "2019-07-23 0.0 \n", "2019-07-24 0.0 \n", "2019-07-25 0.0 \n", "2019-07-26 0.0 \n", "2019-07-27 0.0 \n", "2019-07-28 0.0 \n", "2019-07-29 0.0 \n", "\n", "[29 rows x 38 columns]" ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ "window_opens_by_feature_r.pivot_table(index=\"date\", columns=[\"feature\"]).fillna(0).sort_values(\"2019-07-01\", axis=1, ascending=False)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Dialog events" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [], "source": [ "dialog_events = hive.run(\"\"\"\n", "select\n", " to_date(dt) as date,\n", " event.action as action,\n", " count(*) as events\n", "from event.visualeditorfeatureuse\n", "where\n", " year = 2019 and month = 7 and\n", " event.action like \"dialog%\"\n", "group by \n", " to_date(dt),\n", " event.action\n", "\"\"\").pivot_table(index=\"date\", columns=\"action\")" ] }, { "cell_type": "code", "execution_count": 60, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
events
actiondialog-abortdialog-convertdialog-donedialog-remove
date
2019-07-1013.00.032.00.0
2019-07-11769.03.01146.00.0
2019-07-123486.019.05161.02.0
2019-07-133584.010.05863.08.0
2019-07-143863.010.06232.012.0
2019-07-153693.012.05087.014.0
2019-07-164079.014.06487.031.0
2019-07-173639.05.05188.019.0
2019-07-184050.07.05485.08.0
2019-07-193789.08.05806.031.0
2019-07-203518.05.05812.031.0
2019-07-213984.07.05576.013.0
2019-07-223845.05.05390.06.0
2019-07-233795.08.05833.06.0
2019-07-243868.010.05786.08.0
2019-07-252466.06.03983.07.0
\n", "
" ], "text/plain": [ " events \n", "action dialog-abort dialog-convert dialog-done dialog-remove\n", "date \n", "2019-07-10 13.0 0.0 32.0 0.0\n", "2019-07-11 769.0 3.0 1146.0 0.0\n", "2019-07-12 3486.0 19.0 5161.0 2.0\n", "2019-07-13 3584.0 10.0 5863.0 8.0\n", "2019-07-14 3863.0 10.0 6232.0 12.0\n", "2019-07-15 3693.0 12.0 5087.0 14.0\n", "2019-07-16 4079.0 14.0 6487.0 31.0\n", "2019-07-17 3639.0 5.0 5188.0 19.0\n", "2019-07-18 4050.0 7.0 5485.0 8.0\n", "2019-07-19 3789.0 8.0 5806.0 31.0\n", "2019-07-20 3518.0 5.0 5812.0 31.0\n", "2019-07-21 3984.0 7.0 5576.0 13.0\n", "2019-07-22 3845.0 5.0 5390.0 6.0\n", "2019-07-23 3795.0 8.0 5833.0 6.0\n", "2019-07-24 3868.0 10.0 5786.0 8.0\n", "2019-07-25 2466.0 6.0 3983.0 7.0" ] }, "execution_count": 60, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dialog_events.fillna(0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Context events" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "context_events = hive.run(\"\"\"\n", "select\n", " to_date(dt) as date,\n", " event.action as action,\n", " count(*) as events\n", "from event_sanitized.visualeditorfeatureuse\n", "where\n", " year = 2019 and (month = 07 OR month = 08) and\n", " event.action like \"context%\"\n", "group by \n", " to_date(dt),\n", " event.action\n", "\"\"\").pivot_table(index=\"date\", columns=\"action\")" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
events
actioncontext-clearcontext-closecontext-deletecontext-labelcontext-show
date
2019-07-107.00.015.00.0126.0
2019-07-11253.00.0309.010.013726.0
2019-07-121251.00.01937.097.075965.0
2019-07-132233.00.02223.047.075380.0
2019-07-14873.00.01277.089.082460.0
2019-07-151129.00.01639.091.074844.0
2019-07-161632.00.02456.0118.082762.0
2019-07-17810.00.01381.071.069179.0
2019-07-181368.00.01337.093.074481.0
2019-07-191091.00.01167.085.073857.0
2019-07-201109.00.01243.091.076822.0
2019-07-21895.00.01397.074.076003.0
2019-07-221460.00.01256.0101.076706.0
2019-07-231455.00.01138.087.081642.0
2019-07-24935.00.0948.089.076595.0
2019-07-25859.00.01040.0102.072893.0
2019-07-26962.00.01047.054.072568.0
2019-07-271103.00.01295.048.074801.0
2019-07-281144.00.01441.0164.076470.0
2019-07-29782.00.01216.0112.071016.0
2019-07-30740.00.01174.0136.071626.0
2019-07-311160.02.01411.0140.077262.0
2019-08-011217.0390.01074.0133.066899.0
2019-08-022001.03112.01797.0551.046889.0
2019-08-03818.03096.01117.0459.045742.0
2019-08-041282.03279.01141.0422.044869.0
2019-08-051253.03110.01230.0488.049102.0
2019-08-061069.03107.01226.0456.045270.0
2019-08-071349.03181.01459.0453.050204.0
2019-08-081554.03138.01316.0432.050587.0
2019-08-091039.03236.01241.0484.049373.0
2019-08-101271.03584.01347.0465.049176.0
2019-08-112031.03464.01380.0525.049951.0
2019-08-121094.03325.01405.0465.053112.0
2019-08-13874.03407.01273.0498.050593.0
2019-08-14955.03136.01226.0571.051949.0
2019-08-151094.03062.01371.0618.048107.0
2019-08-161005.03374.01308.0560.051285.0
2019-08-171629.03506.01639.0594.049344.0
2019-08-181506.03152.01631.0521.050439.0
2019-08-19901.03331.01239.0588.056112.0
2019-08-201538.03223.01597.0612.062515.0
2019-08-211767.03302.01461.0433.057943.0
2019-08-221250.03185.01362.0507.046665.0
2019-08-231404.03086.01428.0556.047525.0
2019-08-241142.02931.01330.0449.045865.0
2019-08-251802.03215.01770.0657.057749.0
2019-08-261626.03086.01748.0566.058447.0
2019-08-271731.02872.01697.0601.054594.0
2019-08-281278.03185.01427.0653.049909.0
2019-08-291124.03273.01247.0516.054358.0
2019-08-301206.03317.01136.0554.046776.0
2019-08-311138.03119.01289.0544.049414.0
\n", "
" ], "text/plain": [ " events \\\n", "action context-clear context-close context-delete context-label \n", "date \n", "2019-07-10 7.0 0.0 15.0 0.0 \n", "2019-07-11 253.0 0.0 309.0 10.0 \n", "2019-07-12 1251.0 0.0 1937.0 97.0 \n", "2019-07-13 2233.0 0.0 2223.0 47.0 \n", "2019-07-14 873.0 0.0 1277.0 89.0 \n", "2019-07-15 1129.0 0.0 1639.0 91.0 \n", "2019-07-16 1632.0 0.0 2456.0 118.0 \n", "2019-07-17 810.0 0.0 1381.0 71.0 \n", "2019-07-18 1368.0 0.0 1337.0 93.0 \n", "2019-07-19 1091.0 0.0 1167.0 85.0 \n", "2019-07-20 1109.0 0.0 1243.0 91.0 \n", "2019-07-21 895.0 0.0 1397.0 74.0 \n", "2019-07-22 1460.0 0.0 1256.0 101.0 \n", "2019-07-23 1455.0 0.0 1138.0 87.0 \n", "2019-07-24 935.0 0.0 948.0 89.0 \n", "2019-07-25 859.0 0.0 1040.0 102.0 \n", "2019-07-26 962.0 0.0 1047.0 54.0 \n", "2019-07-27 1103.0 0.0 1295.0 48.0 \n", "2019-07-28 1144.0 0.0 1441.0 164.0 \n", "2019-07-29 782.0 0.0 1216.0 112.0 \n", "2019-07-30 740.0 0.0 1174.0 136.0 \n", "2019-07-31 1160.0 2.0 1411.0 140.0 \n", "2019-08-01 1217.0 390.0 1074.0 133.0 \n", "2019-08-02 2001.0 3112.0 1797.0 551.0 \n", "2019-08-03 818.0 3096.0 1117.0 459.0 \n", "2019-08-04 1282.0 3279.0 1141.0 422.0 \n", "2019-08-05 1253.0 3110.0 1230.0 488.0 \n", "2019-08-06 1069.0 3107.0 1226.0 456.0 \n", "2019-08-07 1349.0 3181.0 1459.0 453.0 \n", "2019-08-08 1554.0 3138.0 1316.0 432.0 \n", "2019-08-09 1039.0 3236.0 1241.0 484.0 \n", "2019-08-10 1271.0 3584.0 1347.0 465.0 \n", "2019-08-11 2031.0 3464.0 1380.0 525.0 \n", "2019-08-12 1094.0 3325.0 1405.0 465.0 \n", "2019-08-13 874.0 3407.0 1273.0 498.0 \n", "2019-08-14 955.0 3136.0 1226.0 571.0 \n", "2019-08-15 1094.0 3062.0 1371.0 618.0 \n", "2019-08-16 1005.0 3374.0 1308.0 560.0 \n", "2019-08-17 1629.0 3506.0 1639.0 594.0 \n", "2019-08-18 1506.0 3152.0 1631.0 521.0 \n", "2019-08-19 901.0 3331.0 1239.0 588.0 \n", "2019-08-20 1538.0 3223.0 1597.0 612.0 \n", "2019-08-21 1767.0 3302.0 1461.0 433.0 \n", "2019-08-22 1250.0 3185.0 1362.0 507.0 \n", "2019-08-23 1404.0 3086.0 1428.0 556.0 \n", "2019-08-24 1142.0 2931.0 1330.0 449.0 \n", "2019-08-25 1802.0 3215.0 1770.0 657.0 \n", "2019-08-26 1626.0 3086.0 1748.0 566.0 \n", "2019-08-27 1731.0 2872.0 1697.0 601.0 \n", "2019-08-28 1278.0 3185.0 1427.0 653.0 \n", "2019-08-29 1124.0 3273.0 1247.0 516.0 \n", "2019-08-30 1206.0 3317.0 1136.0 554.0 \n", "2019-08-31 1138.0 3119.0 1289.0 544.0 \n", "\n", " \n", "action context-show \n", "date \n", "2019-07-10 126.0 \n", "2019-07-11 13726.0 \n", "2019-07-12 75965.0 \n", "2019-07-13 75380.0 \n", "2019-07-14 82460.0 \n", "2019-07-15 74844.0 \n", "2019-07-16 82762.0 \n", "2019-07-17 69179.0 \n", "2019-07-18 74481.0 \n", "2019-07-19 73857.0 \n", "2019-07-20 76822.0 \n", "2019-07-21 76003.0 \n", "2019-07-22 76706.0 \n", "2019-07-23 81642.0 \n", "2019-07-24 76595.0 \n", "2019-07-25 72893.0 \n", "2019-07-26 72568.0 \n", "2019-07-27 74801.0 \n", "2019-07-28 76470.0 \n", "2019-07-29 71016.0 \n", "2019-07-30 71626.0 \n", "2019-07-31 77262.0 \n", "2019-08-01 66899.0 \n", "2019-08-02 46889.0 \n", "2019-08-03 45742.0 \n", "2019-08-04 44869.0 \n", "2019-08-05 49102.0 \n", "2019-08-06 45270.0 \n", "2019-08-07 50204.0 \n", "2019-08-08 50587.0 \n", "2019-08-09 49373.0 \n", "2019-08-10 49176.0 \n", "2019-08-11 49951.0 \n", "2019-08-12 53112.0 \n", "2019-08-13 50593.0 \n", "2019-08-14 51949.0 \n", "2019-08-15 48107.0 \n", "2019-08-16 51285.0 \n", "2019-08-17 49344.0 \n", "2019-08-18 50439.0 \n", "2019-08-19 56112.0 \n", "2019-08-20 62515.0 \n", "2019-08-21 57943.0 \n", "2019-08-22 46665.0 \n", "2019-08-23 47525.0 \n", "2019-08-24 45865.0 \n", "2019-08-25 57749.0 \n", "2019-08-26 58447.0 \n", "2019-08-27 54594.0 \n", "2019-08-28 49909.0 \n", "2019-08-29 54358.0 \n", "2019-08-30 46776.0 \n", "2019-08-31 49414.0 " ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "context_events.fillna(0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Link events" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [], "source": [ "link_events = hive.run(\"\"\"\n", "select\n", " to_date(dt) as date,\n", " event.action as action,\n", " count(*) as events\n", "from event.visualeditorfeatureuse\n", "where\n", " year = 2019 and month = 7 and\n", " event.feature like \"link%\"\n", "group by \n", " to_date(dt),\n", " event.action\n", "\"\"\").pivot_table(index=\"date\", columns=\"action\")" ] }, { "cell_type": "code", "execution_count": 58, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
events
actionclearcontext-clearcontext-deletecontext-labelcontext-showdialog-abortdialog-convertdialog-doneexternal-link-inputpanel-switchsearch-pages-choosesearch-pages-inputshowwindow-openwindow-open-from-commandwindow-open-from-contextwindow-open-from-sequencewindow-open-from-tool
date
2019-07-01677.00.00.00.00.00.00.00.00.00.00.00.0213.06943.00.00.00.00.0
2019-07-021130.00.00.00.00.00.00.00.00.00.00.00.0210.07301.00.00.00.00.0
2019-07-03720.00.00.00.00.00.00.00.00.00.00.00.0192.07017.00.00.00.00.0
2019-07-04774.00.00.00.00.00.00.00.00.00.00.00.0198.07820.00.00.00.00.0
2019-07-052313.00.00.00.00.00.00.00.00.00.00.00.0166.06617.00.00.00.00.0
2019-07-062064.00.00.00.00.00.00.00.00.00.00.00.0110.06146.00.00.00.00.0
2019-07-071361.00.00.00.00.00.00.00.00.00.00.00.0137.07942.00.00.00.00.0
2019-07-084319.00.00.00.00.00.00.00.00.00.00.00.0166.06562.00.00.00.00.0
2019-07-091063.00.00.00.00.00.00.00.00.00.00.00.0198.07569.00.00.00.00.0
2019-07-10742.07.00.00.065.013.00.031.08.025.022.07.0217.07943.00.029.00.016.0
2019-07-11603.0251.03.010.08866.0321.03.01110.056.0240.0913.0725.0188.05857.099.0112.033.01229.0
2019-07-123.01184.013.097.046162.01652.019.05001.0405.01240.03981.03242.0150.0278.051.0883.0386.05596.0
2019-07-131.02207.021.047.047943.01620.010.05782.0823.01677.04151.03489.0153.04.0149.0487.0371.06668.0
2019-07-140.0832.030.089.055025.01878.010.06084.0358.01253.04966.03950.0133.01.087.01226.0535.06477.0
2019-07-150.01105.029.091.044237.01634.012.05001.0326.01102.03975.03303.0204.01.070.0582.0465.05770.0
2019-07-160.01571.038.0118.053534.01918.014.06375.0827.01652.04796.03850.0173.00.0156.0654.0437.07305.0
2019-07-170.0779.027.071.041620.01607.05.05084.0812.01714.03710.02859.0214.00.0226.0712.0378.05634.0
2019-07-180.01358.022.093.045015.01796.07.05393.0386.01207.04391.03314.0208.00.0106.0580.0402.06343.0
2019-07-190.01062.015.085.047188.01858.08.05721.0306.01105.04734.03537.0166.00.0377.0524.0469.06445.0
2019-07-200.0987.025.091.050089.01730.05.05682.0257.0983.04769.03878.0128.00.067.0711.0533.06342.0
2019-07-210.0859.029.074.048378.01798.07.05461.0405.01238.04452.03559.0168.00.063.0544.0374.06560.0
2019-07-220.01306.018.0101.047572.01691.05.05246.0330.01200.04240.03484.0203.00.066.01056.0336.05721.0
2019-07-230.01404.046.087.053679.01628.08.05703.0329.01219.04513.03748.0222.00.0224.01000.0481.05941.0
2019-07-240.0905.027.089.044663.01679.010.05618.0341.01171.04580.03352.0182.00.0273.0712.0399.06160.0
2019-07-250.0851.025.0102.048511.01626.013.05626.0350.01181.04617.03426.0177.00.0119.0720.0348.06321.0
2019-07-260.0947.014.054.046103.01864.09.05472.0372.01173.04459.03622.0175.00.062.0799.0409.06390.0
2019-07-270.01094.034.048.046628.01689.08.05847.0351.01126.04875.03775.0160.00.0147.0576.0308.06787.0
2019-07-280.01108.023.0164.046689.01749.05.05567.0327.01079.04601.03564.0152.00.0174.0723.0403.06273.0
2019-07-290.0535.015.080.028606.01071.07.03712.0242.0746.02994.02290.0130.00.068.0429.0242.04219.0
\n", "
" ], "text/plain": [ " events \\\n", "action clear context-clear context-delete context-label context-show \n", "date \n", "2019-07-01 677.0 0.0 0.0 0.0 0.0 \n", "2019-07-02 1130.0 0.0 0.0 0.0 0.0 \n", "2019-07-03 720.0 0.0 0.0 0.0 0.0 \n", "2019-07-04 774.0 0.0 0.0 0.0 0.0 \n", "2019-07-05 2313.0 0.0 0.0 0.0 0.0 \n", "2019-07-06 2064.0 0.0 0.0 0.0 0.0 \n", "2019-07-07 1361.0 0.0 0.0 0.0 0.0 \n", "2019-07-08 4319.0 0.0 0.0 0.0 0.0 \n", "2019-07-09 1063.0 0.0 0.0 0.0 0.0 \n", "2019-07-10 742.0 7.0 0.0 0.0 65.0 \n", "2019-07-11 603.0 251.0 3.0 10.0 8866.0 \n", "2019-07-12 3.0 1184.0 13.0 97.0 46162.0 \n", "2019-07-13 1.0 2207.0 21.0 47.0 47943.0 \n", "2019-07-14 0.0 832.0 30.0 89.0 55025.0 \n", "2019-07-15 0.0 1105.0 29.0 91.0 44237.0 \n", "2019-07-16 0.0 1571.0 38.0 118.0 53534.0 \n", "2019-07-17 0.0 779.0 27.0 71.0 41620.0 \n", "2019-07-18 0.0 1358.0 22.0 93.0 45015.0 \n", "2019-07-19 0.0 1062.0 15.0 85.0 47188.0 \n", "2019-07-20 0.0 987.0 25.0 91.0 50089.0 \n", "2019-07-21 0.0 859.0 29.0 74.0 48378.0 \n", "2019-07-22 0.0 1306.0 18.0 101.0 47572.0 \n", "2019-07-23 0.0 1404.0 46.0 87.0 53679.0 \n", "2019-07-24 0.0 905.0 27.0 89.0 44663.0 \n", "2019-07-25 0.0 851.0 25.0 102.0 48511.0 \n", "2019-07-26 0.0 947.0 14.0 54.0 46103.0 \n", "2019-07-27 0.0 1094.0 34.0 48.0 46628.0 \n", "2019-07-28 0.0 1108.0 23.0 164.0 46689.0 \n", "2019-07-29 0.0 535.0 15.0 80.0 28606.0 \n", "\n", " \\\n", "action dialog-abort dialog-convert dialog-done external-link-input \n", "date \n", "2019-07-01 0.0 0.0 0.0 0.0 \n", "2019-07-02 0.0 0.0 0.0 0.0 \n", "2019-07-03 0.0 0.0 0.0 0.0 \n", "2019-07-04 0.0 0.0 0.0 0.0 \n", "2019-07-05 0.0 0.0 0.0 0.0 \n", "2019-07-06 0.0 0.0 0.0 0.0 \n", "2019-07-07 0.0 0.0 0.0 0.0 \n", "2019-07-08 0.0 0.0 0.0 0.0 \n", "2019-07-09 0.0 0.0 0.0 0.0 \n", "2019-07-10 13.0 0.0 31.0 8.0 \n", "2019-07-11 321.0 3.0 1110.0 56.0 \n", "2019-07-12 1652.0 19.0 5001.0 405.0 \n", "2019-07-13 1620.0 10.0 5782.0 823.0 \n", "2019-07-14 1878.0 10.0 6084.0 358.0 \n", "2019-07-15 1634.0 12.0 5001.0 326.0 \n", "2019-07-16 1918.0 14.0 6375.0 827.0 \n", "2019-07-17 1607.0 5.0 5084.0 812.0 \n", "2019-07-18 1796.0 7.0 5393.0 386.0 \n", "2019-07-19 1858.0 8.0 5721.0 306.0 \n", "2019-07-20 1730.0 5.0 5682.0 257.0 \n", "2019-07-21 1798.0 7.0 5461.0 405.0 \n", "2019-07-22 1691.0 5.0 5246.0 330.0 \n", "2019-07-23 1628.0 8.0 5703.0 329.0 \n", "2019-07-24 1679.0 10.0 5618.0 341.0 \n", "2019-07-25 1626.0 13.0 5626.0 350.0 \n", "2019-07-26 1864.0 9.0 5472.0 372.0 \n", "2019-07-27 1689.0 8.0 5847.0 351.0 \n", "2019-07-28 1749.0 5.0 5567.0 327.0 \n", "2019-07-29 1071.0 7.0 3712.0 242.0 \n", "\n", " \\\n", "action panel-switch search-pages-choose search-pages-input show \n", "date \n", "2019-07-01 0.0 0.0 0.0 213.0 \n", "2019-07-02 0.0 0.0 0.0 210.0 \n", "2019-07-03 0.0 0.0 0.0 192.0 \n", "2019-07-04 0.0 0.0 0.0 198.0 \n", "2019-07-05 0.0 0.0 0.0 166.0 \n", "2019-07-06 0.0 0.0 0.0 110.0 \n", "2019-07-07 0.0 0.0 0.0 137.0 \n", "2019-07-08 0.0 0.0 0.0 166.0 \n", "2019-07-09 0.0 0.0 0.0 198.0 \n", "2019-07-10 25.0 22.0 7.0 217.0 \n", "2019-07-11 240.0 913.0 725.0 188.0 \n", "2019-07-12 1240.0 3981.0 3242.0 150.0 \n", "2019-07-13 1677.0 4151.0 3489.0 153.0 \n", "2019-07-14 1253.0 4966.0 3950.0 133.0 \n", "2019-07-15 1102.0 3975.0 3303.0 204.0 \n", "2019-07-16 1652.0 4796.0 3850.0 173.0 \n", "2019-07-17 1714.0 3710.0 2859.0 214.0 \n", "2019-07-18 1207.0 4391.0 3314.0 208.0 \n", "2019-07-19 1105.0 4734.0 3537.0 166.0 \n", "2019-07-20 983.0 4769.0 3878.0 128.0 \n", "2019-07-21 1238.0 4452.0 3559.0 168.0 \n", "2019-07-22 1200.0 4240.0 3484.0 203.0 \n", "2019-07-23 1219.0 4513.0 3748.0 222.0 \n", "2019-07-24 1171.0 4580.0 3352.0 182.0 \n", "2019-07-25 1181.0 4617.0 3426.0 177.0 \n", "2019-07-26 1173.0 4459.0 3622.0 175.0 \n", "2019-07-27 1126.0 4875.0 3775.0 160.0 \n", "2019-07-28 1079.0 4601.0 3564.0 152.0 \n", "2019-07-29 746.0 2994.0 2290.0 130.0 \n", "\n", " \\\n", "action window-open window-open-from-command window-open-from-context \n", "date \n", "2019-07-01 6943.0 0.0 0.0 \n", "2019-07-02 7301.0 0.0 0.0 \n", "2019-07-03 7017.0 0.0 0.0 \n", "2019-07-04 7820.0 0.0 0.0 \n", "2019-07-05 6617.0 0.0 0.0 \n", "2019-07-06 6146.0 0.0 0.0 \n", "2019-07-07 7942.0 0.0 0.0 \n", "2019-07-08 6562.0 0.0 0.0 \n", "2019-07-09 7569.0 0.0 0.0 \n", "2019-07-10 7943.0 0.0 29.0 \n", "2019-07-11 5857.0 99.0 112.0 \n", "2019-07-12 278.0 51.0 883.0 \n", "2019-07-13 4.0 149.0 487.0 \n", "2019-07-14 1.0 87.0 1226.0 \n", "2019-07-15 1.0 70.0 582.0 \n", "2019-07-16 0.0 156.0 654.0 \n", "2019-07-17 0.0 226.0 712.0 \n", "2019-07-18 0.0 106.0 580.0 \n", "2019-07-19 0.0 377.0 524.0 \n", "2019-07-20 0.0 67.0 711.0 \n", "2019-07-21 0.0 63.0 544.0 \n", "2019-07-22 0.0 66.0 1056.0 \n", "2019-07-23 0.0 224.0 1000.0 \n", "2019-07-24 0.0 273.0 712.0 \n", "2019-07-25 0.0 119.0 720.0 \n", "2019-07-26 0.0 62.0 799.0 \n", "2019-07-27 0.0 147.0 576.0 \n", "2019-07-28 0.0 174.0 723.0 \n", "2019-07-29 0.0 68.0 429.0 \n", "\n", " \n", "action window-open-from-sequence window-open-from-tool \n", "date \n", "2019-07-01 0.0 0.0 \n", "2019-07-02 0.0 0.0 \n", "2019-07-03 0.0 0.0 \n", "2019-07-04 0.0 0.0 \n", "2019-07-05 0.0 0.0 \n", "2019-07-06 0.0 0.0 \n", "2019-07-07 0.0 0.0 \n", "2019-07-08 0.0 0.0 \n", "2019-07-09 0.0 0.0 \n", "2019-07-10 0.0 16.0 \n", "2019-07-11 33.0 1229.0 \n", "2019-07-12 386.0 5596.0 \n", "2019-07-13 371.0 6668.0 \n", "2019-07-14 535.0 6477.0 \n", "2019-07-15 465.0 5770.0 \n", "2019-07-16 437.0 7305.0 \n", "2019-07-17 378.0 5634.0 \n", "2019-07-18 402.0 6343.0 \n", "2019-07-19 469.0 6445.0 \n", "2019-07-20 533.0 6342.0 \n", "2019-07-21 374.0 6560.0 \n", "2019-07-22 336.0 5721.0 \n", "2019-07-23 481.0 5941.0 \n", "2019-07-24 399.0 6160.0 \n", "2019-07-25 348.0 6321.0 \n", "2019-07-26 409.0 6390.0 \n", "2019-07-27 308.0 6787.0 \n", "2019-07-28 403.0 6273.0 \n", "2019-07-29 242.0 4219.0 " ] }, "execution_count": 58, "metadata": {}, "output_type": "execute_result" } ], "source": [ "link_events.fillna(0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Citoid events" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [], "source": [ "citoid_events = hive.run(\"\"\"\n", "select\n", " to_date(dt) as date,\n", " event.action as action,\n", " count(*) as events\n", "from event.visualeditorfeatureuse\n", "where\n", " year = 2019 and month = 7 and\n", " event.feature = \"citoid\"\n", "group by \n", " to_date(dt),\n", " event.action\n", "\"\"\").pivot_table(index=\"date\", columns=\"action\")" ] }, { "cell_type": "code", "execution_count": 57, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
events
actionautomatic-generateautomatic-insertdialog-abortmanual-choosepanel-switchreuse-choosewindow-open
date
2019-07-010.00.00.00.00.00.02168.0
2019-07-020.00.00.00.00.00.02246.0
2019-07-030.00.00.00.00.00.02191.0
2019-07-040.00.00.00.00.00.02253.0
2019-07-050.00.00.00.00.00.02106.0
2019-07-060.00.00.00.00.00.01866.0
2019-07-070.00.00.00.00.00.02288.0
2019-07-080.00.00.00.00.00.02074.0
2019-07-090.00.00.00.00.00.02206.0
2019-07-100.00.00.00.00.00.02354.0
2019-07-11225.0170.0423.055.0293.040.01727.0
2019-07-12801.0631.01763.0331.01336.090.0105.0
2019-07-13786.0662.01917.0407.01434.0112.00.0
2019-07-14726.0606.01889.0368.01421.0116.00.0
2019-07-15782.0645.01993.0510.01436.0105.00.0
2019-07-16954.0812.02100.0380.01660.0165.00.0
2019-07-17873.0728.01967.0320.01501.0132.00.0
2019-07-18988.0850.02194.0464.01692.0118.00.0
2019-07-19762.0638.01882.0389.01439.0147.00.0
2019-07-20715.0615.01691.0332.01230.080.00.0
2019-07-21932.0795.02101.0427.01585.0104.00.0
2019-07-221044.0859.02091.0343.01730.0136.00.0
2019-07-23951.0807.02096.0394.01572.0155.00.0
2019-07-24992.0872.02115.0378.01564.0144.00.0
2019-07-25811.0681.01912.0416.01401.0147.00.0
2019-07-26945.0776.01975.0382.01528.0135.00.0
2019-07-27811.0722.01919.0372.01517.0123.00.0
2019-07-28786.0683.01997.0495.01586.0138.00.0
2019-07-29591.0484.01369.0321.01004.073.00.0
\n", "
" ], "text/plain": [ " events \\\n", "action automatic-generate automatic-insert dialog-abort manual-choose \n", "date \n", "2019-07-01 0.0 0.0 0.0 0.0 \n", "2019-07-02 0.0 0.0 0.0 0.0 \n", "2019-07-03 0.0 0.0 0.0 0.0 \n", "2019-07-04 0.0 0.0 0.0 0.0 \n", "2019-07-05 0.0 0.0 0.0 0.0 \n", "2019-07-06 0.0 0.0 0.0 0.0 \n", "2019-07-07 0.0 0.0 0.0 0.0 \n", "2019-07-08 0.0 0.0 0.0 0.0 \n", "2019-07-09 0.0 0.0 0.0 0.0 \n", "2019-07-10 0.0 0.0 0.0 0.0 \n", "2019-07-11 225.0 170.0 423.0 55.0 \n", "2019-07-12 801.0 631.0 1763.0 331.0 \n", "2019-07-13 786.0 662.0 1917.0 407.0 \n", "2019-07-14 726.0 606.0 1889.0 368.0 \n", "2019-07-15 782.0 645.0 1993.0 510.0 \n", "2019-07-16 954.0 812.0 2100.0 380.0 \n", "2019-07-17 873.0 728.0 1967.0 320.0 \n", "2019-07-18 988.0 850.0 2194.0 464.0 \n", "2019-07-19 762.0 638.0 1882.0 389.0 \n", "2019-07-20 715.0 615.0 1691.0 332.0 \n", "2019-07-21 932.0 795.0 2101.0 427.0 \n", "2019-07-22 1044.0 859.0 2091.0 343.0 \n", "2019-07-23 951.0 807.0 2096.0 394.0 \n", "2019-07-24 992.0 872.0 2115.0 378.0 \n", "2019-07-25 811.0 681.0 1912.0 416.0 \n", "2019-07-26 945.0 776.0 1975.0 382.0 \n", "2019-07-27 811.0 722.0 1919.0 372.0 \n", "2019-07-28 786.0 683.0 1997.0 495.0 \n", "2019-07-29 591.0 484.0 1369.0 321.0 \n", "\n", " \n", "action panel-switch reuse-choose window-open \n", "date \n", "2019-07-01 0.0 0.0 2168.0 \n", "2019-07-02 0.0 0.0 2246.0 \n", "2019-07-03 0.0 0.0 2191.0 \n", "2019-07-04 0.0 0.0 2253.0 \n", "2019-07-05 0.0 0.0 2106.0 \n", "2019-07-06 0.0 0.0 1866.0 \n", "2019-07-07 0.0 0.0 2288.0 \n", "2019-07-08 0.0 0.0 2074.0 \n", "2019-07-09 0.0 0.0 2206.0 \n", "2019-07-10 0.0 0.0 2354.0 \n", "2019-07-11 293.0 40.0 1727.0 \n", "2019-07-12 1336.0 90.0 105.0 \n", "2019-07-13 1434.0 112.0 0.0 \n", "2019-07-14 1421.0 116.0 0.0 \n", "2019-07-15 1436.0 105.0 0.0 \n", "2019-07-16 1660.0 165.0 0.0 \n", "2019-07-17 1501.0 132.0 0.0 \n", "2019-07-18 1692.0 118.0 0.0 \n", "2019-07-19 1439.0 147.0 0.0 \n", "2019-07-20 1230.0 80.0 0.0 \n", "2019-07-21 1585.0 104.0 0.0 \n", "2019-07-22 1730.0 136.0 0.0 \n", "2019-07-23 1572.0 155.0 0.0 \n", "2019-07-24 1564.0 144.0 0.0 \n", "2019-07-25 1401.0 147.0 0.0 \n", "2019-07-26 1528.0 135.0 0.0 \n", "2019-07-27 1517.0 123.0 0.0 \n", "2019-07-28 1586.0 138.0 0.0 \n", "2019-07-29 1004.0 73.0 0.0 " ] }, "execution_count": 57, "metadata": {}, "output_type": "execute_result" } ], "source": [ "citoid_events.fillna(0)" ] }, { "cell_type": "code", "execution_count": 61, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "date\n", "2019-07-01 2168.0\n", "2019-07-02 2246.0\n", "2019-07-03 2191.0\n", "2019-07-04 2253.0\n", "2019-07-05 2106.0\n", "2019-07-06 1866.0\n", "2019-07-07 2288.0\n", "2019-07-08 2074.0\n", "2019-07-09 2206.0\n", "2019-07-10 2354.0\n", "2019-07-11 2933.0\n", "2019-07-12 5057.0\n", "2019-07-13 5318.0\n", "2019-07-14 5126.0\n", "2019-07-15 5471.0\n", "2019-07-16 6071.0\n", "2019-07-17 5521.0\n", "2019-07-18 6306.0\n", "2019-07-19 5257.0\n", "2019-07-20 4663.0\n", "2019-07-21 5944.0\n", "2019-07-22 6203.0\n", "2019-07-23 5975.0\n", "2019-07-24 6065.0\n", "2019-07-25 5368.0\n", "2019-07-26 5741.0\n", "2019-07-27 5464.0\n", "2019-07-28 5685.0\n", "2019-07-29 3842.0\n", "dtype: float64" ] }, "execution_count": 61, "metadata": {}, "output_type": "execute_result" } ], "source": [ "_57.sum(axis=1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Cite events" ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [], "source": [ "cite_events = hive.run(\"\"\"\n", "select\n", " to_date(dt) as date,\n", " event.action as action,\n", " count(*) as events\n", "from event.visualeditorfeatureuse\n", "where\n", " year = 2019 and month = 7 and\n", " event.feature = \"cite\"\n", "group by \n", " to_date(dt),\n", " event.action\n", "\"\"\").pivot_table(index=\"date\", columns=\"action\")" ] }, { "cell_type": "code", "execution_count": 56, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
events
actionmanual-template-inputwindow-open
date
2019-07-010.0539.0
2019-07-020.0723.0
2019-07-030.0459.0
2019-07-040.0500.0
2019-07-050.0578.0
2019-07-060.0443.0
2019-07-070.0580.0
2019-07-080.0529.0
2019-07-090.0436.0
2019-07-100.0574.0
2019-07-110.0480.0
2019-07-120.044.0
2019-07-25192.00.0
2019-07-26324.00.0
2019-07-27276.00.0
2019-07-28431.00.0
2019-07-29240.00.0
\n", "
" ], "text/plain": [ " events \n", "action manual-template-input window-open\n", "date \n", "2019-07-01 0.0 539.0\n", "2019-07-02 0.0 723.0\n", "2019-07-03 0.0 459.0\n", "2019-07-04 0.0 500.0\n", "2019-07-05 0.0 578.0\n", "2019-07-06 0.0 443.0\n", "2019-07-07 0.0 580.0\n", "2019-07-08 0.0 529.0\n", "2019-07-09 0.0 436.0\n", "2019-07-10 0.0 574.0\n", "2019-07-11 0.0 480.0\n", "2019-07-12 0.0 44.0\n", "2019-07-25 192.0 0.0\n", "2019-07-26 324.0 0.0\n", "2019-07-27 276.0 0.0\n", "2019-07-28 431.0 0.0\n", "2019-07-29 240.0 0.0" ] }, "execution_count": 56, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cite_events.fillna(0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Reference events" ] }, { "cell_type": "code", "execution_count": 53, "metadata": {}, "outputs": [], "source": [ "reference_events = hive.run(\"\"\"\n", "select\n", " to_date(dt) as date,\n", " event.action as action,\n", " count(*) as events\n", "from event.visualeditorfeatureuse\n", "where\n", " year = 2019 and month = 7 and\n", " event.feature = \"reference\"\n", "group by \n", " to_date(dt),\n", " event.action\n", "\"\"\").pivot_table(index=\"date\", columns=\"action\")" ] }, { "cell_type": "code", "execution_count": 55, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
events
actioncontext-deletecontext-showinputreuse-choosewindow-openwindow-open-from-commandwindow-open-from-contextwindow-open-from-sequencewindow-open-from-tool
date
2019-07-010.00.00.00.0197.00.00.00.00.0
2019-07-020.00.00.00.0277.00.00.00.00.0
2019-07-030.00.00.00.0272.00.00.00.00.0
2019-07-040.00.00.00.0305.00.00.00.00.0
2019-07-050.00.00.00.0278.00.00.00.00.0
2019-07-060.00.00.00.0255.00.00.00.00.0
2019-07-070.00.00.00.0233.00.00.00.00.0
2019-07-080.00.00.00.0277.00.00.00.00.0
2019-07-090.00.00.00.0281.00.00.00.00.0
2019-07-100.00.00.00.0289.00.00.00.00.0
2019-07-1116.0140.015.00.0273.016.09.00.016.0
2019-07-12157.0836.0154.01.02.090.0111.00.043.0
2019-07-13425.01279.0156.00.00.0104.0102.00.042.0
2019-07-14117.0913.0198.04.00.092.0118.03.085.0
2019-07-15206.01138.0250.02.00.0175.0130.00.055.0
2019-07-16441.01089.0153.04.00.096.0117.00.047.0
2019-07-17190.0976.0214.02.00.088.0154.00.067.0
2019-07-18161.01126.0217.07.00.0106.0133.00.084.0
2019-07-19107.0802.0153.011.00.091.080.02.068.0
2019-07-20157.01312.0228.01.00.0120.0219.00.043.0
2019-07-21105.01031.0206.01.00.0126.0143.00.038.0
2019-07-22145.01259.0208.01.00.0141.0138.00.049.0
2019-07-23141.0895.0173.04.00.093.0105.00.053.0
2019-07-2468.0851.0137.017.00.0104.099.00.041.0
2019-07-2587.0776.0162.03.00.0122.0102.00.038.0
2019-07-26100.0853.0148.03.00.0101.078.00.045.0
2019-07-27101.0926.0171.01.00.0127.0102.00.029.0
2019-07-28135.0970.0164.04.00.0126.084.00.055.0
2019-07-2973.0619.0153.00.00.0109.077.00.025.0
\n", "
" ], "text/plain": [ " events \\\n", "action context-delete context-show input reuse-choose window-open \n", "date \n", "2019-07-01 0.0 0.0 0.0 0.0 197.0 \n", "2019-07-02 0.0 0.0 0.0 0.0 277.0 \n", "2019-07-03 0.0 0.0 0.0 0.0 272.0 \n", "2019-07-04 0.0 0.0 0.0 0.0 305.0 \n", "2019-07-05 0.0 0.0 0.0 0.0 278.0 \n", "2019-07-06 0.0 0.0 0.0 0.0 255.0 \n", "2019-07-07 0.0 0.0 0.0 0.0 233.0 \n", "2019-07-08 0.0 0.0 0.0 0.0 277.0 \n", "2019-07-09 0.0 0.0 0.0 0.0 281.0 \n", "2019-07-10 0.0 0.0 0.0 0.0 289.0 \n", "2019-07-11 16.0 140.0 15.0 0.0 273.0 \n", "2019-07-12 157.0 836.0 154.0 1.0 2.0 \n", "2019-07-13 425.0 1279.0 156.0 0.0 0.0 \n", "2019-07-14 117.0 913.0 198.0 4.0 0.0 \n", "2019-07-15 206.0 1138.0 250.0 2.0 0.0 \n", "2019-07-16 441.0 1089.0 153.0 4.0 0.0 \n", "2019-07-17 190.0 976.0 214.0 2.0 0.0 \n", "2019-07-18 161.0 1126.0 217.0 7.0 0.0 \n", "2019-07-19 107.0 802.0 153.0 11.0 0.0 \n", "2019-07-20 157.0 1312.0 228.0 1.0 0.0 \n", "2019-07-21 105.0 1031.0 206.0 1.0 0.0 \n", "2019-07-22 145.0 1259.0 208.0 1.0 0.0 \n", "2019-07-23 141.0 895.0 173.0 4.0 0.0 \n", "2019-07-24 68.0 851.0 137.0 17.0 0.0 \n", "2019-07-25 87.0 776.0 162.0 3.0 0.0 \n", "2019-07-26 100.0 853.0 148.0 3.0 0.0 \n", "2019-07-27 101.0 926.0 171.0 1.0 0.0 \n", "2019-07-28 135.0 970.0 164.0 4.0 0.0 \n", "2019-07-29 73.0 619.0 153.0 0.0 0.0 \n", "\n", " \\\n", "action window-open-from-command window-open-from-context \n", "date \n", "2019-07-01 0.0 0.0 \n", "2019-07-02 0.0 0.0 \n", "2019-07-03 0.0 0.0 \n", "2019-07-04 0.0 0.0 \n", "2019-07-05 0.0 0.0 \n", "2019-07-06 0.0 0.0 \n", "2019-07-07 0.0 0.0 \n", "2019-07-08 0.0 0.0 \n", "2019-07-09 0.0 0.0 \n", "2019-07-10 0.0 0.0 \n", "2019-07-11 16.0 9.0 \n", "2019-07-12 90.0 111.0 \n", "2019-07-13 104.0 102.0 \n", "2019-07-14 92.0 118.0 \n", "2019-07-15 175.0 130.0 \n", "2019-07-16 96.0 117.0 \n", "2019-07-17 88.0 154.0 \n", "2019-07-18 106.0 133.0 \n", "2019-07-19 91.0 80.0 \n", "2019-07-20 120.0 219.0 \n", "2019-07-21 126.0 143.0 \n", "2019-07-22 141.0 138.0 \n", "2019-07-23 93.0 105.0 \n", "2019-07-24 104.0 99.0 \n", "2019-07-25 122.0 102.0 \n", "2019-07-26 101.0 78.0 \n", "2019-07-27 127.0 102.0 \n", "2019-07-28 126.0 84.0 \n", "2019-07-29 109.0 77.0 \n", "\n", " \n", "action window-open-from-sequence window-open-from-tool \n", "date \n", "2019-07-01 0.0 0.0 \n", "2019-07-02 0.0 0.0 \n", "2019-07-03 0.0 0.0 \n", "2019-07-04 0.0 0.0 \n", "2019-07-05 0.0 0.0 \n", "2019-07-06 0.0 0.0 \n", "2019-07-07 0.0 0.0 \n", "2019-07-08 0.0 0.0 \n", "2019-07-09 0.0 0.0 \n", "2019-07-10 0.0 0.0 \n", "2019-07-11 0.0 16.0 \n", "2019-07-12 0.0 43.0 \n", "2019-07-13 0.0 42.0 \n", "2019-07-14 3.0 85.0 \n", "2019-07-15 0.0 55.0 \n", "2019-07-16 0.0 47.0 \n", "2019-07-17 0.0 67.0 \n", "2019-07-18 0.0 84.0 \n", "2019-07-19 2.0 68.0 \n", "2019-07-20 0.0 43.0 \n", "2019-07-21 0.0 38.0 \n", "2019-07-22 0.0 49.0 \n", "2019-07-23 0.0 53.0 \n", "2019-07-24 0.0 41.0 \n", "2019-07-25 0.0 38.0 \n", "2019-07-26 0.0 45.0 \n", "2019-07-27 0.0 29.0 \n", "2019-07-28 0.0 55.0 \n", "2019-07-29 0.0 25.0 " ] }, "execution_count": 55, "metadata": {}, "output_type": "execute_result" } ], "source": [ "reference_events.fillna(0)" ] }, { "cell_type": "code", "execution_count": 62, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "date\n", "2019-07-01 197.0\n", "2019-07-02 277.0\n", "2019-07-03 272.0\n", "2019-07-04 305.0\n", "2019-07-05 278.0\n", "2019-07-06 255.0\n", "2019-07-07 233.0\n", "2019-07-08 277.0\n", "2019-07-09 281.0\n", "2019-07-10 289.0\n", "2019-07-11 485.0\n", "2019-07-12 1394.0\n", "2019-07-13 2108.0\n", "2019-07-14 1530.0\n", "2019-07-15 1956.0\n", "2019-07-16 1947.0\n", "2019-07-17 1691.0\n", "2019-07-18 1834.0\n", "2019-07-19 1314.0\n", "2019-07-20 2080.0\n", "2019-07-21 1650.0\n", "2019-07-22 1941.0\n", "2019-07-23 1464.0\n", "2019-07-24 1317.0\n", "2019-07-25 1290.0\n", "2019-07-26 1328.0\n", "2019-07-27 1457.0\n", "2019-07-28 1538.0\n", "2019-07-29 1056.0\n", "dtype: float64" ] }, "execution_count": 62, "metadata": {}, "output_type": "execute_result" } ], "source": [ "_55.sum(axis=1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Context item closes " ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "context_item_closes = hive.run(\"\"\"\n", "select\n", " to_date(dt) as date,\n", " event.action as action,\n", " event.feature as feature,\n", " count(*) as events\n", "from event.visualeditorfeatureuse\n", "where\n", " year = 2019 and ((month = 7 and day > 24) or month = 8) and\n", " event.action like \"context-close%\"\n", "group by \n", " to_date(dt),\n", " event.action,\n", " event.feature\n", "\"\"\")" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "context_item_closes = (\n", " context_item_closes\n", " .pivot_table(index=\"date\", columns= [\"action\", \"feature\"])\n", ")" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
events
actioncontext-close
featurecite-Literaturcite-Webseitecite-anycite-bookcite-journalcite-newscite-online-bookcite-online-newscite-webcite-מאמר...link/mwNumberedExternalmathmergeCellsmwGallerymwLanguageVariantmwMediareferencereferencesListtransclusionundefined
date
2019-07-31NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN...NaNNaN2.0NaNNaNNaNNaNNaNNaNNaN
2019-08-01NaNNaNNaN1.01.04.0NaNNaN11.0NaN...7.0NaN9.0NaNNaN2.07.03.0216.0NaN
2019-08-02NaN6.01.016.03.015.0NaN1.0110.0NaN...19.0NaN102.010.0NaN45.077.049.01628.0NaN
2019-08-03NaN10.0NaN10.06.016.0NaNNaN100.0NaN...7.0NaN109.021.0NaN53.060.048.01653.0NaN
2019-08-04NaN2.0NaN27.09.022.0NaNNaN115.0NaN...9.0NaN91.012.0NaN71.075.042.01610.0NaN
\n", "

5 rows × 25 columns

\n", "
" ], "text/plain": [ " events \\\n", "action context-close \n", "feature cite-Literatur cite-Webseite cite-any cite-book cite-journal \n", "date \n", "2019-07-31 NaN NaN NaN NaN NaN \n", "2019-08-01 NaN NaN NaN 1.0 1.0 \n", "2019-08-02 NaN 6.0 1.0 16.0 3.0 \n", "2019-08-03 NaN 10.0 NaN 10.0 6.0 \n", "2019-08-04 NaN 2.0 NaN 27.0 9.0 \n", "\n", " \\\n", "action \n", "feature cite-news cite-online-book cite-online-news cite-web cite-מאמר \n", "date \n", "2019-07-31 NaN NaN NaN NaN NaN \n", "2019-08-01 4.0 NaN NaN 11.0 NaN \n", "2019-08-02 15.0 NaN 1.0 110.0 NaN \n", "2019-08-03 16.0 NaN NaN 100.0 NaN \n", "2019-08-04 22.0 NaN NaN 115.0 NaN \n", "\n", " ... \\\n", "action ... \n", "feature ... link/mwNumberedExternal math mergeCells mwGallery \n", "date ... \n", "2019-07-31 ... NaN NaN 2.0 NaN \n", "2019-08-01 ... 7.0 NaN 9.0 NaN \n", "2019-08-02 ... 19.0 NaN 102.0 10.0 \n", "2019-08-03 ... 7.0 NaN 109.0 21.0 \n", "2019-08-04 ... 9.0 NaN 91.0 12.0 \n", "\n", " \\\n", "action \n", "feature mwLanguageVariant mwMedia reference referencesList transclusion \n", "date \n", "2019-07-31 NaN NaN NaN NaN NaN \n", "2019-08-01 NaN 2.0 7.0 3.0 216.0 \n", "2019-08-02 NaN 45.0 77.0 49.0 1628.0 \n", "2019-08-03 NaN 53.0 60.0 48.0 1653.0 \n", "2019-08-04 NaN 71.0 75.0 42.0 1610.0 \n", "\n", " \n", "action \n", "feature undefined \n", "date \n", "2019-07-31 NaN \n", "2019-08-01 NaN \n", "2019-08-02 NaN \n", "2019-08-03 NaN \n", "2019-08-04 NaN \n", "\n", "[5 rows x 25 columns]" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "context_item_closes.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Context item closes by day" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "date\n", "2019-07-31 2.0\n", "2019-08-01 390.0\n", "2019-08-02 3112.0\n", "2019-08-03 3096.0\n", "2019-08-04 3279.0\n", "2019-08-05 3110.0\n", "2019-08-06 3107.0\n", "2019-08-07 3181.0\n", "2019-08-08 3138.0\n", "2019-08-09 3236.0\n", "2019-08-10 3584.0\n", "2019-08-11 3464.0\n", "2019-08-12 3325.0\n", "2019-08-13 3407.0\n", "2019-08-14 3136.0\n", "2019-08-15 3062.0\n", "2019-08-16 3374.0\n", "2019-08-17 3506.0\n", "2019-08-18 3152.0\n", "2019-08-19 3331.0\n", "2019-08-20 3223.0\n", "2019-08-21 1873.0\n", "dtype: float64" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "context_item_closes.sum(axis = 1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Events start recording at the end of July as expected and then increase to about 3000 events per day" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Context item close events by feature" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/plain": [ " action feature \n", "events context-close transclusion 32470.0\n", " link/internal 19600.0\n", " mergeCells 2794.0\n", " cite-web 2154.0\n", " reference 1566.0\n", " mwMedia 1215.0\n", " link 1156.0\n", " referencesList 1068.0\n", " comment 395.0\n", " link/mwNumberedExternal 343.0\n", " cite-book 301.0\n", " cite-news 282.0\n", " cite-journal 239.0\n", " mwGallery 217.0\n", " cite-Webseite 110.0\n", " language 76.0\n", " cite-any 43.0\n", " math 18.0\n", " cite-Literatur 10.0\n", " mwLanguageVariant 8.0\n", " undefined 8.0\n", " link/mwMagic 7.0\n", " cite-online-book 5.0\n", " cite-online-news 2.0\n", " cite-מאמר 1.0\n", "dtype: float64" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "context_item_closes.sum(axis = 0).sort_values(ascending = False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Text Field Actions/Link Label Editing\n", "\n", "**Additional Instrumentation**\n", "Event logged when a contributor types text into the \"Text\" field within \"Wikipedia\" or \"External site\" panel/tab.\n", "\n", "**Deploy Date**\n", "September 3, 2019" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "How events are logged:\n", "* In Wikipedia tab, event is logged as “mf.schemaVisualEditorFeatureUse {feature: \"link\", action: \"label-input\", editingSessionId: \"3ebbdab6654964ecf400\"}”\n", "* In External site tab, event is logged as “mf.schemaVisualEditorFeatureUse {feature: \"link\", action: \"label-input\", editingSessionId: \"2d4716ebc90b683d2bfd\"}”\n" ] }, { "cell_type": "code", "execution_count": 67, "metadata": {}, "outputs": [], "source": [ "label_input_events = hive.run(\"\"\"\n", "select\n", " to_date(dt) as date,\n", " event.action as action,\n", " event.feature as feature,\n", " count(*) as events\n", "from event.visualeditorfeatureuse\n", "where\n", " year = 2019 and month = 9 and\n", " event.action like \"label-input%\"\n", "group by \n", " to_date(dt),\n", " event.action,\n", " event.feature\n", "\"\"\")" ] }, { "cell_type": "code", "execution_count": 69, "metadata": {}, "outputs": [], "source": [ "label_input_events = (\n", " label_input_events\n", " .pivot_table(index=\"date\", columns= [\"action\", \"feature\"])\n", ")" ] }, { "cell_type": "code", "execution_count": 70, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
events
actionlabel-input
featurelink
date
2019-09-1120
2019-09-1245
2019-09-1336
2019-09-1448
2019-09-1535
2019-09-16278
2019-09-17628
2019-09-18584
2019-09-19532
2019-09-20603
2019-09-21669
2019-09-22648
2019-09-23357
\n", "
" ], "text/plain": [ " events\n", "action label-input\n", "feature link\n", "date \n", "2019-09-11 20\n", "2019-09-12 45\n", "2019-09-13 36\n", "2019-09-14 48\n", "2019-09-15 35\n", "2019-09-16 278\n", "2019-09-17 628\n", "2019-09-18 584\n", "2019-09-19 532\n", "2019-09-20 603\n", "2019-09-21 669\n", "2019-09-22 648\n", "2019-09-23 357" ] }, "execution_count": 70, "metadata": {}, "output_type": "execute_result" } ], "source": [ "label_input_events.head(20)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Events started appearing around September 11th. All events are recorded for links as expected. Starting on September 16th, the number of events increases to 278." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Label input event total" ] }, { "cell_type": "code", "execution_count": 71, "metadata": {}, "outputs": [ { "data": { "text/plain": [ " action feature\n", "events label-input link 4483\n", "dtype: int64" ] }, "execution_count": 71, "metadata": {}, "output_type": "execute_result" } ], "source": [ "label_input_events.sum(axis = 0).sort_values(ascending = False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As of September 23rd, a total of 4483 label-input events have been logged since deployment date." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Label input by platform" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "label_input_events_by_platform = hive.run(\"\"\"\n", "select\n", " to_date(eas.dt) as date,\n", " eas.event.platform,\n", " vefu.event.action as action,\n", " count(*) as events\n", "from event.visualeditorfeatureuse vefu\n", "inner join event.editattemptstep eas\n", "on \n", " vefu.event.editingsessionid = eas.event.editing_session_id and\n", " vefu.event.action like \"label-input%\" and\n", " vefu.year = 2019 and vefu.month = 9 and\n", " eas.year = 2019 and eas.month = 9\n", "group by \n", " to_date(eas.dt),\n", " eas.event.platform,\n", " vefu.event.action\n", "\"\"\")" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
dateplatformactionevents
02019-09-11phonelabel-input43
12019-09-12phonelabel-input157
22019-09-13phonelabel-input89
32019-09-14phonelabel-input124
42019-09-15phonelabel-input121
\n", "
" ], "text/plain": [ " date platform action events\n", "0 2019-09-11 phone label-input 43\n", "1 2019-09-12 phone label-input 157\n", "2 2019-09-13 phone label-input 89\n", "3 2019-09-14 phone label-input 124\n", "4 2019-09-15 phone label-input 121" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "label_input_events_by_platform.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Confirmed events are recorded only for mobile for this feature." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Label input by wiki" ] }, { "cell_type": "code", "execution_count": 65, "metadata": {}, "outputs": [], "source": [ "label_input_events_by_wiki = hive.run(\"\"\"\n", "select\n", " wiki,\n", " count(*) as events\n", "from event.visualeditorfeatureuse\n", "where\n", " year = 2019 and ((month = 8 and day > 24) or month = 9) and\n", " event.action like \"label-input%\"\n", "group by \n", " wiki\n", "ORDER BY events DESC LIMIT 50\n", "\"\"\")" ] }, { "cell_type": "code", "execution_count": 66, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
wikievents
0enwiki1368
1eswiki326
2ptwiki246
3fawiki211
4commonswiki188
5arwiki156
6itwiki150
7frwiki140
8idwiki137
9jawiki120
\n", "
" ], "text/plain": [ " wiki events\n", "0 enwiki 1368\n", "1 eswiki 326\n", "2 ptwiki 246\n", "3 fawiki 211\n", "4 commonswiki 188\n", "5 arwiki 156\n", "6 itwiki 150\n", "7 frwiki 140\n", "8 idwiki 137\n", "9 jawiki 120" ] }, "execution_count": 66, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Top 10 wikis with label input events recorded. \n", "label_input_events_by_wiki.head(10)" ] } ], "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.5.3" } }, "nbformat": 4, "nbformat_minor": 4 }