From 43a93a875db2fbd450e2df157fc77265b2b2ec30 Mon Sep 17 00:00:00 2001 From: Peter Norvig Date: Sat, 28 Apr 2018 22:59:58 -0700 Subject: [PATCH] Add files via upload --- ipynb/WWW.ipynb | 189 ++++++++++++++++++++++++++++-------------------- 1 file changed, 111 insertions(+), 78 deletions(-) diff --git a/ipynb/WWW.ipynb b/ipynb/WWW.ipynb index eaec1e4..b83d92c 100644 --- a/ipynb/WWW.ipynb +++ b/ipynb/WWW.ipynb @@ -10,7 +10,7 @@ "\n", "\"It's tough to make predictions, especially [about](https://en.wikiquote.org/wiki/Yogi_Berra) [the](https://en.wikiquote.org/wiki/Niels_Bohr) future.\" That's true for the **NBA basketball playoffs**, where there is a wide range of opinion about the Warriors and Cavs, the teams that met in the finals each of the last three years. The Las Vegas oddsmakers have the Warriors as co-favorites at 35% chance to win the title, while [538](https://fivethirtyeight.com/features/the-nba-playoffs-sleepers-favorites-and-best-first-round-matchups/), using their ELO rating, give the Warriors only a 4% chance. That 9-fold difference underscores that rational people can use different models with different assumptions and come to different conclusions. Here are some models you might choose:\n", "\n", - "1. **Holistic**: I just feel that the Warriors have about a 1/3 chance of winning it all.\n", + "1. **Holistic**: I just feel that the Warriors have about a 1 in 5 chance of winning it all.\n", "2. **Game by Game**: I think the Warriors have an 75% chance of winning each game in the first round, then 65% for each game in the second round, but only 45% against the Rockets, then 55% if they make it to the finals. From that I'll calculate their overall chance.\n", "3. **Point by Point**: The Warriors have a per-game average point differential of +5.8; I'll compare that to the other teams and caclulate their overall chance.\n", "4. **Play by Play**: Use [detailed statistics](https://www.basketball-reference.com/play-index/plus/shot_finder.cgi) to [model](https://danvatterott.com/blog/2016/06/16/creating-videos-of-nba-action-with-sportsvu-data/) the game shot-by-shot, or even pass-by-pass. That's too complex for me.\n", @@ -38,6 +38,8 @@ "metadata": {}, "outputs": [], "source": [ + "%matplotlib inline\n", + "import matplotlib.pyplot as plt\n", "from statistics import mean\n", "from random import gauss\n", "\n", @@ -54,7 +56,7 @@ { "data": { "text/plain": [ - "0.61163" + "0.61325" ] }, "execution_count": 2, @@ -70,43 +72,14 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "The model says the Raptors have a 61% chance of beating the Sixers in a game. We can make a table of point differentials and game win percentages:" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0 point differential = 50% win game\n", - "1 point differential = 54% win game\n", - "2 point differential = 58% win game\n", - "3 point differential = 61% win game\n", - "4 point differential = 65% win game\n", - "5 point differential = 68% win game\n", - "6 point differential = 72% win game\n", - "7 point differential = 75% win game\n", - "8 point differential = 78% win game\n", - "9 point differential = 80% win game\n" - ] - } - ], - "source": [ - "pct = '{:4.0%}'.format \n", - "\n", - "for diff in range(10):\n", - " print(diff, 'point differential =', pct(simulate(diff)), 'win game')" + "The model says the Raptors have a 61% chance of beating the Sixers in a single game. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "This agrees very well with the \"Differential vs. Win Percentage\" [chart](http://a.espncdn.com/combiner/i?img=%2Fphoto%2F2018%2F0408%2F180408_differential.png&w=1140&cquality=40) on [this page](http://www.espn.com/nba/story/_/id/23071005/kevin-pelton-weekly-mailbag-including-nba-all-offensive-teams).\n", + "\n", "\n", "# Game by Game Model\n", "\n", @@ -117,7 +90,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -134,12 +107,12 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "We can extend the table:" + "We can make a table:" ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "metadata": {}, "outputs": [ { @@ -148,7 +121,7 @@ "text": [ "0 point differential = 50% win game = 50% win series\n", "1 point differential = 54% win game = 58% win series\n", - "2 point differential = 57% win game = 66% win series\n", + "2 point differential = 58% win game = 67% win series\n", "3 point differential = 61% win game = 73% win series\n", "4 point differential = 65% win game = 80% win series\n", "5 point differential = 68% win game = 85% win series\n", @@ -161,23 +134,23 @@ ], "source": [ "for diff in range(10):\n", - " game = simulate(diff)\n", - " series = win_series(game)\n", - " print(diff, 'point differential =', pct(game), 'win game =', pct(series), 'win series')" + " g = simulate(diff)\n", + " print('{} point differential = {:4.0%} win game = {:4.0%} win series'.format(\n", + " diff, g, win_series(g)))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "For example, a team with a 3 point net differential has a 61% chance of winning each game in a series, and a 73% chance of winning the series. \n", + "With a zero point differential obnviously you're at 50% win percententage; with a 3 point differential you're at 61% to win a game, and 73% to win the series. This agrees very well with the \"Differential vs. Win Percentage\" [chart](http://a.espncdn.com/combiner/i?img=%2Fphoto%2F2018%2F0408%2F180408_differential.png&w=1140&cquality=40) on [this page](http://www.espn.com/nba/story/_/id/23071005/kevin-pelton-weekly-mailbag-including-nba-all-offensive-teams). \n", "\n", "What happens if some games in a series have already been played? The following function prints a table where each row tells a team's current win-loss record, each column is the game win percentage, and each entry in the table is the series win percentage." ] }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 5, "metadata": {}, "outputs": [ { @@ -210,6 +183,8 @@ } ], "source": [ + "pct = '{:4.0%}'.format \n", + "\n", "def series_table(pcts=[p/100 for p in range(15, 90, 5)]):\n", " print('W-L | Game Win Percentage')\n", " print(' | ' + ' '.join(map(pct, pcts)))\n", @@ -226,7 +201,67 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "For example, if our team with a 60% win percentage loses the first game of the series, then check the \"0-1\" row and the \"60%\" column to see that it still has a 54% chance of winning the series. " + "For example, if our team with a 60% game win percentage loses the first game of the series, check the \"0-1\" row and the \"60%\" column to see that it still has a 54% chance of winning the series. \n", + "\n", + "We can also do plots:" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "diff = [d/10 for d in range(100)]\n", + "game = [simulate(d) for d in diff]\n", + "series = [win_series(p) for p in game]" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAEKCAYAAADpfBXhAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xd4FFX3wPHvCb1JAJEOQRCkSJVeFURAEBQL2Ij6Q0EQsCKvCnZFBeEVlSJFBIldlCY1hPZShFAE6SXSW+hSkvv7426ySwyk7WZ2N+fzPPuQmZ2dObm7nNw9c+eOGGNQSikVXEKcDkAppZT3aXJXSqkgpMldKaWCkCZ3pZQKQprclVIqCGlyV0qpIKTJ3Y+IyEARGZPJx/xCRF71WO4lIgdF5JSIFBKRJiKy1bV8d2bGlpyk8aaw7UIRecLXMaWXE++3ykKMMfrw8gPYDZwDTgEHgAlAXi8fYzAwKZVxnASOA0uApwG5yvbZXdtX91g3D+jjUDt2BxZn4PULgScyKdZswGmgnse6h4H4ZNZt9sLxJgAXXJ+xo8AcoLIT71MKMb7ldBxZ9aE9d98wwF3GmOuAOsCtwGsOxlEQKAd8AAwAxl1l++JALmCzx7pywKb0HFxEsqXndZ67wP4Ofs8YEwcsA5p7rG6Gbcuk6xZ56bBDXJ+x0sBhbDJNEy+8R8pPaXL3HQEwxhwAZgHVAUSkhIhME5FjrnLH/yW+QGSwiHzt+rmciMSLyGMiskdEDovIf1zP3Qn8B3hQRE6LyNpUxHHaGDMdeBDoLiJVXfuaICJvichNwF+u15wQkXkish24EZjuKsvkEJHrRORLEdkvIjEi8raIiGtf3UVkiYgME5Gj2G8XiMgTIrLJ9TvPEpGyHr9zvIg87WqL4yIy0rX+ZuALoJHrdzzuGa/r51AR+c3VNsdcP5dK8Y2x78E5EQn1WFdbRI6ISDYRqSAikSIS69r31JT26bKYfyfyIUCLJOuiXMdM1fudEmPMP8A3uD9jIiKviMh21+8UkfC7ehznCRHZA8x3rW8qIktF5ITr+I+51ucUkY9d6w6IyOciksv1XAvXZ+B5ETkkIvtEJNz1XA/st5SXXZ+daa71A1xxnRKRjSLS2eM9CBGRoa6Yd4hIb1esIa7nr/rZU/+myd3HRKQM0B5Y41r1LbAX20u+H3hPRFp6vCRpT7UJcBPQGhgkIpWNMb8D7wHfGmMKGGNqpzYeY8wq4G9skvFcvw2o5losaIxpbYyp6Ir1LmPMdcaYS8BXwEVs0q8N3AH8n8euGgDbgRuAd0WkE/AK0Bkoik2ASZPlXUBdoCbwgIi0Mcb8BfQElrt+x8LJ/DohwHigDFAWW1IamYo2OIDtZXfxWN0N+M7VA38b+N0YE4rtFX+a0j5dorDvFyJyPZAX+A6o77Guimu7xHCS7ONf73dKBxWR/NhEmvAZ6wvcjX2PSwIngM+TvKw5cDNwp+uP7UxgBHA9UAuIdm03BKgI1HD9WwoY5LGf4kAB13H+D/hMRAoaY8YCU4APXZ+dTq7ttwNNXN843gQmi0gx13NPAXe6jlUH+5nxbJ+UPnvKk9N1oWB8ALuwtdDjrp8/xZY7SgOX8Ki/Y5P0eNfPiXV0bDkkDijhse0K4IGk26YQx+3JrF8ODHT9nFgX9ThmSHL7wCbsf4BcHs93BRa4fu4O7E5yrJnA4x7LIcBZoIxrOR5o5PH8t8DLHvuLSrK/q9ZxsUnpmMfyVWvuwJPAfI/lvdikAzaJjAJKpfF9z4X9A3MLNjF97Vq/zGPdDo/tU/1+J3OsCcB512dsP/ALEOZ6bhNwm8e2JbBJMcTjOOU8nn8F+PEqxzkDlPdYbgTsdP3cwvVeen5eDgH1U3qvPLZfC3R0/Twf6OHxXKuEzyNQ7FqfPX38+5Ed5SudjDELPVeISEnguDHmnMfqPdhe69Uc8vj5HJDfC7GVwiaFtCoH5AAOJFRiXI+9HtvEJPOaESIy1LWcUEcv5bFtun5HEckDDMf29kJd+84vImJc//uv4Ufgv65e481AnDFmqeu5l4B3gJWuctAwY0yK9WxjzAURWYlNejdiv6UALPVYF3WVlydIS1t8ZIwZlMz6csDPIhLvWhZsp6KYxzZ/e/xcBtiRdCciUhT77eMPj+pHiGt/CY4ZY+I9lq8Zs6vc8xwQ5lqVD/ttAWzv3/Pz4/lzWVL+7CkPmtx9J7la4H6gsIjkM8acda0rC+xLx/7TdaJRROph/xMtTmnbZMRge09FrpE8k67fC7xjjElt3fpa+0rqRWwJo54x5oiI1MSWJlI8EWuMiRWROdjeXxUgwuO5w9gSASLSBJgnIouMMTtTEXNC3T0MGOux7hGgPP8uj/jCXuw3luVJnxCRcq4fPdsnBlfpKImj2GRdzdhSVlpd8R64yj9jsN8qlrvWrcX9f+UA9tttgrIeP6fms6c8aM09Exlj/sZ+RX9fRHKJSA1seeDrq7zkWieLDgFhqT2hJCIFRKQDtt79tTHmaiNgrro/Y8xB7JC7T1z7ExG5UUSaX+01wGjgP+I+gVtQRO5LTczY37G0iOS4yvP5saWJUyJSGHgjlftNMBV4DFt7/yZhpYjcJ+4Ts7HY0lH8v1+erCjgNmzZKWHU0VKgJfacwrV67t46OTgaey6nLNgeuFx5jULS40wBWrl+72wiUlhEarqS6FhguKsXj4iUEpE2qYzjEPbbSoJ82HY86jp5+jiuk8Au3wH9RKSk6wTwywlPpPOzl6VpcveNa/UsumF7cPuxpYHXk5ZvrrEfz+Xvsf9Jj4nI6msc7zcROYntzQ0EPgaudWHPtY4JNhnmxNZ1j7viKH7VnRnzC3YIZoSIxALrgbapPN4C4E/goIgcTmb3w7Flg6PYP5ozU4g9qV+xPf8DxpgNHuvrAStE5BS2lt3XGLMbwDXCo9s19rkMuA74X2IQxhwDjgCHjDH/Kn9cI95rxX+t50YA04A5rvd+GVf2zK94rTEmBnvS/0Xse7oWe1ITbD1+O/A/1/s3B6iUyrjGAdXEjoL6yfXHbhi2bQ5iT+Av8dh+rGv/64E/gBnAZY+yT5o+e1mdpPQNR0TGAR2wH8waV9nmv0A77MmVcGNMdHLbKaVUaolIW+ALY0x5p2MJRKnpuU/AnrBKloi0AyoYY27CXv04ykuxKaWyEBHJLSLtXKWhUtjRRD85HVegSjG5G2OWYMfJXk0nYJJr2xVAQY9xq0oplVqCHft+HFuW+RPXhXAq7bwxWsZzSBvYkR+luHJIl1JKXZMx5jzJj9pR6aAnVJVSKgh5o+e+D3sRRILSXGXctojo+FSllEoHY0yahsqmtueecDVYcn7FDlFCRBoCscaYq5ZknL4k118egwcPdjwGf3loW2hbaFtc+5EeKfbcReQb7AUYRURkL/YER06bp80YY8xMEWkvdgbBs8Dj6Yoki9m9e7fTIfgNbQs3bQs3bYuMSTG5G2MeSsU2fbwTjlJKKW/QE6oOCQ8PdzoEv6Ft4aZt4aZtkTEpXqHq1YOlarI+pZRSnkQE46MTqj4VFhaGiOgjAB5hYWFef/8jIyO9vs9ApW3hpm2RMX4x5e+ePXvSfUZYZS7Ru5op5VOXLsHGjVCtGuTMmf79+EVZxvWVI9PiUOmn75VS3mMM7N0LS5fC8uWwahVs2ADly8P06ZDwRTk9ZRlN7ipN9L1SKvXi42HnToiJsY+//4YjR+DoUfvvxo22p96kCTRuDPXrQ506kD/Jvaw0uSuf88V7FRkZScuWLb26z0ClbeEWiG0RHw/79sHixTB7Nvz+O+TObXvgpUvbxw03QNGicP31ULky3HgjpFTtTE9y94uae1ZToEABNmzY4JOTk6kRExNDtWrVOHnypNbQlUoDY2D3boiOhq1bbQ/82DHbC9+1y/bSCxa0PfB27eDNN22JxQnac0+FJUuWMGDAAP7880+yZ89OlSpVGD58OHXrXuu+1pmnZ8+ehISE8Pnn9vacly9fJjQ0lO7du/PZZ59dsW7BggXUr5/+iff8/b1SyhuMgS1bYMkSm7B377aPTZtsyaR2bbj5Ztv7TniULw8VKkC+fN6PR3vuPnD69Gk6duzI6NGjuf/++7l48SKLFy8mV65cad5XXFwc2bJl83qMzZs35/33309cXr16NWXLlmXxYvc9sFetWoWI+M0fJKX8ydGj9kTm+vWwciUsWGBHqrRoAZUqQfv2UK6cTehFizodber4xTh3f7Z161ZEhAceeAARIVeuXLRu3Zrq1d339R0/fjxVq1alSJEitGvXjr179yY+l9CjrlSpEpUqVUpct3PnTgAuXrzIiy++SLly5ShRogTPPPMMFy5cAODYsWN07NiRQoUKUaRIEVq0aJFsjM2bN2fz5s0cP34cgMWLF9O1a1fOnj2buG7JkiU0atSIbNmysWfPHkJCQoiPt7emvO222xg0aBBNmzbluuuuo23btomvyww6ntlN28LNV21x4QJERsKQIXDvvbYOXrEiDBpkSy23325Hr+zeDZMmwWuvwSOPQLNmgZPYQZN7iipVqkS2bNkIDw9n9uzZxMbGXvH8tGnT+OCDD/jll184cuQIzZo1o1u3bv/aZuXKlWzatAm4cqz4gAED2L59O+vXr2f79u3s27ePt956C4ChQ4dSpkwZjh07xuHDh3nvvfeSjbF06dJX9NSjoqJo3rw5jRs3/te6BElr7VOnTuWrr77iyJEjXLhwgY8//jg9zaWU3zHGJu2RI6FDB5ugBwyAgwfh/vshKgpOnLAnQT/7DJ58MnUnOf1eJk9baZJztfVXbpPxR3r99ddf5vHHHzdlypQxOXLkMHfffbc5fPiwMcaYdu3amfHjxyduGxcXZ/LmzWv27t1rjDFGRExkZOQV+xMRs2PHDmOMMfny5TM7d+5MfG7ZsmWmfPnyxhhjBg0aZDp37my2b9+eYozh4eHm+eefN/Hx8eaGG24w58+fN6NGjUpcV6hQIRMVFWWMMWb37t0mJCTExMXFGWOMadmypXn33XcT9/X555+bdu3aJXuc1LxXSjnlzBlj/vrLmHnzjJkwwZgnnzSmbFljSpUyJjzcmIgIY44edTrKtHP9v0tTvg2Ynrs30nt6Va5cmfHjx7N37142btzI/v376d+/P2Cvru3Xrx+FCxemcOHCFClSBBFh3z73/UpKly6d7H6PHDnCuXPnqFu3buLr27Vrx7FjxwB46aWXqFChAm3atKFixYoMGTLkqjE2b96cqKgoNmzYQIUKFcidOzdNmzZl0aJFbNiwgX/++YcGDRpc9fXFixdP/Dlv3rycOXMmTW2klJPOnoWXXoJixWzv/J13YN48qFHDDkmMiYEJE+DBB6FIEaejzRwBk9z9RaVKlQgPD2fjxo0AlClThtGjR3P8+HGOHz/OiRMnOHPmDA0bNkx8zdWGG15//fXkzZuXP//8M/H1sbGxnDx5EoD8+fPz8ccfs2PHDn799VeGDRvGwoULk91X8+bNiY6OZsaMGTRr1gyAatWqERMTw4wZM6hXrx45M3Itsw9pndlN28IttW0xc6a9VP/AATuyZds2WLgQJk+Gvn2hSpUgKLGkgyb3FGzZsoVhw4Yl9sRjYmKYOnUqjRo1AuwwxPfeey+xnn7y5El++OGHVO1bROjRowf9+/fnyJEjAOzbt485c+YAMGPGDHbs2AHYsfHZs2cnJCT5t6xChQoUK1aMESNGJCZ3gAYNGjBixIgr6u2ADmdUASU+3l7duXixPcn5n/9A585w0002gY8da5P5DTc4Han/0OSeggIFCrBixQoaNGhAgQIFaNy4MTVq1Eg84di5c2deeeUVunbtSmhoKDVq1GD27NmJr0+u1+65bsiQIVSsWJGGDRsSGhpKmzZt2Lp1KwDbtm2jdevWFChQgCZNmtC7d++rjpgB23s/duwYTZo0SVzXrFkzjhw58q/k7hmD0xcyBdpViL6kbWGdOwcXL7bk1VftKJV8+aBePXj5ZVtmyZ3bjmCZNg02b4Y77nA6Yv+jFzGpNNH3SvnKpUu2Tv7NN/Dbb7Ze3qIFNG8ODRtCgQJOR+ic9FzEpD135TitM7sFe1vEx9te+aVLdpBDbCx8+y08+iiUKAFvvQUNGtirQ996K5K337a98qyc2NNLr1BVSvlUbKydQGvGDFtSOXXKJvf4eMiTx1401KEDvPcelCnjft3mzc7FHAy0LKPSRN8rlVrGwJdfwsCBtqzSvr19JMyXFxdn//XBjBxBR+eWUUr5hX374P/+z86WuGiRHaqYlCZ139Kau3JcsNeZ0yIQ2yI+HrZvh59/tjXz+++HWrWgUSN7d6HkEntqBGJb+BPtuSul0iw6GsaPt7eF27gRChe2o1tuuQXuucdOynXjjU5HmbVpzV2lib5XWdf58/DTT3ZyrZgYeOopO1SxRg0IDXU6uuCmNXellFfFxdma+ZQptuxy6632QqIOHSC7Zg+/pjX3LGbJkiVUqVLF6TCuoLVVN39qi7/+ssn8+eehalV7M4s5c+xl/5mR2P2pLQKRJvdUioiIoGHDhuTPn5/ixYvTqFEjvvjiC6fDom3btnz00UeJy/v37yckJCTZdYcPH6Zp06Zs1gHE6hqMsfX0Zs2gZ09YuxZeeAFKlXI6MpUWmtxTYejQoTz33HMMGDCAQ4cOcfDgQUaNGsWyZcu4dOmSo7ElTPWbICoqiipVqvxrXaVKlbjBT2dV0vlU3Jxoi7lzoVs3eOwxO3yxfXv45BN7t6Knn3ZuRkX9XGSMJvcUnDp1isGDB/PFF19wzz33kM9199uaNWvy9ddfkyNHDgBmzpxJnTp1KFiwIOXKlePNN99M3EfCbe0mTpxI2bJlKVKkCKNHj2b16tXUrFmTwoUL8+yzz15x3Gvdus9T8+bNWbp0aeLy4sWL6d+/P6tXr75iXcLEYYsWLaKMx2WA5cuXZ+jQodSsWZNChQrRrVs3Ll68mMFWU4Hg8mV49VUID4fbboNWraB+fbjvPnsf0fQOYVR+Iq1398jIgwzcickps2fPNjly5Ei8a9HVLFq0yGzcuNEYY8yGDRtM8eLFzbRp04wx9s5HImJ69eplLly4YObOnWty585t7rnnHnP06FGzb98+c8MNNyTeKemXX34xN910k9myZYuJi4sz7777rmncuHGyx71w4YLJkyePiY6ONsYYU716dbNr1y7TtGnTK9Z9/fXXxhhjIiMjTZkyZRJfHxYWZho0aGAOHjxoTpw4YapUqWJGjx591d/TF+/VwoULvb7PQJVZbbF7tzFNmhjTpo0xhw5lyiHTTD8XbqTjTkwBc75b3sz4d0MzOO1D+I4ePcr1119/xTzqTZo0YdOmTVy4cIE5c+bQtGnTK6bUrV69Ol27dmXRokXcfffdNn4RBg0aRM6cOWndujX58uWjW7duFHHdFqZZs2asXbuWZs2aMXr0aAYOHJh4Q+1XXnmFd999l5iYmCt63QA5c+akQYMGREVFUbZsWU6dOkVYWBhNmzZNXLdp06ZrThXcr18/ihUrBkDHjh2Jjo5Oczsp/2eMvYnFF1/Y2RcHDLAjX65yiwAV4AImuacnMXtDkSJFOHr0KPHx8YkJPqEMUrZsWeLj4wFYsWIFAwcOZOPGjVy8eJGLFy9y//33X7Evz5p3njx5EhNqwnLCre0Sbt33wgsvAPbbVcKt+5Imd3DX3cuVK5c4l3vTpk2ZMGEC5cqVo2zZssm+LoFnHHnz5uXAgQOpbyAv0Nqqmy/a4vJlO5Tx/fchRw7o1QvGjYPrrvP6obxKPxcZo3+zU9CoUSNy5crFtGnT/vWc8biY5+GHH6Zz587s27eP2NhYnn766XRf7JOaW/d5SkjuUVFRiXdhatKkCUuXLiUqKupfN+pQWcOlS3bUS+XKMHGi7bGvXw/PPOP/iV1lnCb3FBQsWJBBgwbxzDPP8OOPP3LmzBmMMURHR3Pu3LnE7c6cOUOhQoXIkSMHK1eu5JtvvrliP2lJ9Gm9dV+jRo2IjY1lypQpick9NDSUokWLMnnyZL9P7jqe2c0bbWEM/PqrnQrg66/tjaEXLrQnTQPpXqL6uciYgCnLOOmll16idOnSfPjhh3Tv3p18+fJx44038uGHH9K4cWMAPv/8c55//nn69OlDixYtePDBB4mNjU3cR9Jb2V1ruXPnzpw9e5auXbuyd+9eChYsyB133MF9992XbHx58+albt26bN26lerVqyeub9asGaNGjbpmcnf6FnsqYy5dshcWXbhga+eXL9vpAQ4fhmHDoF27wEroyntSNbeMiLQFhmN7+uOMMUOSPB8KjAcqAOeBJ4wxm5LZj0nueDpfSeDQ98o/GGOnA3jlFbj+eihe3E4VEB9vpwZ48kmdHiCYpGdumRSTu4iEAFuBVsB+YBXQ1Rjzl8c2HwKnjTFvi0hl4DNjTOtk9qXJPcDpe+W85cvhpZfg9Gn46CNo08bpiJSv+eoeqvWBbcaYPcaYS0AE0CnJNlWBBQDGmC1AmIgUTUsgKuvS2qrbtdpi61Z7gdEDD9ie+Zo1wZ3Y9XORMalJ7qWAGI/lv13rPK0D7gUQkfpAWaC0NwJUKqs7cAB694bGje1EXlu3wuOP652M1LV5qyr3ATBCRNYAG4C1QFxyG4aHhxPmuoliaGgotWrV8lIIKrMl9KwSxiPrsneWE/z2WyQRETB7dku6d4dx4yIpWBDy5PGveH21nLDOX+LJzOXIyEgmTpwIkJgv0yo1NfeGwBvGmLau5Vewl8IOucZrdgG3GGPOJFmvNfcAp++V7+zaBVOnwrZt9rFpE9x7LwweDNe4Bk1lAb6qua8CKopIORHJCXQFfk1y4IIiksP1cw9gUdLErtTVaG3V3qquaVNYtSqSxo3hnXfsfOpffpl1E7t+LjImxbKMMSZORPoAc3APhdwsIk/bp80YoArwlYjEA38CT6YliHLlyul46wBRrlw5p0MIOqtX2+GLn3wCJUqAXnWvvMEv7qGqVFa1eDF06QJjx0KnpGPQlHLxVVlGKZUBxtgrRz3t3g3du9uhjZMna2JX3qfJ3SFaT3QL5raIj7d3OcqfH+rWtePTn37a/hwWZk+ceo5VD+a2SCtti4zRC5SV8qE33oC//7Zj1bdsgehoOHoUNm8GP73roQoSWnNXykciImDgQFixQhO5yhifzC3jTZrcVVaxcqUdATNvHtSo4XQ0KtDpCdUAovVEt2Boi8OHoV8/uOMOKFcObr/djlFPa2IPhrbwFm2LjNGau1IZdOKEPSnaqBG88AJUqmQTvM79opykZRmlMuD0aZvYGza0N8fQa/GUL2jNXalMdP483HUXVKgAY8ZoYle+ozX3AKL1RLdAa4s9e+Ctt6BqVShZEkaN8l5iD7S28CVti4zR5K5UKu3fDx07Qp06cOgQ/PCDvQG11taVP9KyjFKp8PvvEB4Ozzxjb3GXO7fTEamsJD1lGR0to9Q1nD9vp9+dONHOta4zNqpAoWUZh2g90c3f2sIYWLUKevWCUqXsTTPWrMmcxO5vbeEkbYuM0Z67Uh7i4uxEX3/8AU88AevWZd2bZajApjV3pVyMgb594c8/YdYsyJXL6YiUsrTmrlQGfPwxREbaG2hoYleBTmvuDtF6ops/tMXUqfDpp7bHHhrqXBz+0Bb+QtsiYzS5qyxv4kR47jmYORNKl3Y6GqW8Q2vuKssyxg5znDDB9tgrV3Y6IqWSpzV3pVLpn3/sydM1a2DZMihe3OmIlPIuLcs4ROuJbpnZFhs22HnXS5e2U/VGRvpXYtfPhZu2RcZocldZwsmT0KkTtGsHBQvai5S+/97euFqpYKQ1dxX0tm+3E361agWffAI5cjgdkVJpo1P+KpXEvHnQpImtr48cqYldZR2a3B2i9UQ3b7bFpUvw66/Qu7e9icbjj9sx7L16ee0QPqWfCzdti4zR5K6CxsmTtqb+7rsQFgY//wx799qbVSsVKC7HX2bK+ilcuHwhQ/vRmrsKCnv3Qvv2cNttMHy43kBDBZ6EpP521NuULViWSfdMovR19qo6HeeusqQ1a+Duu+HFF+0wR72XqQok8SaeiI0RDI4cTKkCpfjy7i9pGdYyw/vVsoxDtJ7olpG2mD0b2raF//4X+vcP/MSunwu3YG8LYwwzts6g9uja/HfFfxndYTSR4ZFeSeygPXcVwCZMgIED4ZdfoHFjp6NR6toOnjnI0r1LiT4YzYbDG1h3aB15c+Tlvdvf4+7KdyNe7plozV0FjJMn4eBBe3PqWbPg2291Thjl39YfWs/IlSNZtGcRh88epkmZJtQpUYcaxWpQo1gNKhauSIikXEDRmrsKWu+9Z0fBlCoFxYpB+fI6J4zyX7H/xDJ44WCmbpzKC41eoHe93lS/oTrZQjLvTL/W3B0S7PXEtEipLebNsxcgbdsGW7fam2lMmhSciV0/F26B1hbGGDYd2cSHSz+kymdV+OfyP2zqvYkBTQdQs3jNTE3soD135ef27YNHH4UpU6BkSaejUcqKN/FsP76drce2svXYVjYd2cTcnXMBaFexHb91+41bS97qaIypqrmLSFtgOLanP84YMyTJ89cBk4GyQDZgqDFmYjL70Zq7SrVLl+wFSHfeCa+95nQ0SsHWY1v5et3XTN4wmXgTT9WiValUuBKVr6/MbWG3cfP1N3v9xCikr+aeYnIXkRBgK9AK2A+sAroaY/7y2GYgcJ0xZqCIXA9sAYoZYy4n2Zcmd5Vqzz8PmzfDjBkQogVE5YCYkzFE7YliacxSluxdwpFzR+hWvRuP1niUWsVr+SSRJ8dXE4fVB7YZY/YYYy4BEUCnJNsYoIDr5wLAsaSJXV0p0OqJvpRcW3z8sR3DPnly1krs+rlwc7ItlsUso1NEJ2qPrs1Pf/1ExcIVGdtxLDHPxTDszmHULlE70xJ7eqWm5l4KiPFY/hub8D2NBH4Vkf1AfuBB74SnsqKJE+0J1CVLoEgRp6NRWcXx88eZvnU6X675kr9P/c2LjV8koksEeXLkcTq0dElNWaYLcKcx5inX8iNAfWNM3yTbNDbGvCAiFYC5QA1jzJkk+9KyjLqCMba2HhJiH7/9Bj172jsk6fh15WvHzh3j2z+/5cfNP7J6/2rEO5QCAAAgAElEQVRalW9F1+pdubfKvWQP8Z/xJr4a574Pe6I0QWnXOk+PA+8DGGN2iMgu4GZgddKdhYeHExYWBkBoaCi1atWiZcuWgPtrmC4H93KLFi1ZswaGDYtk0SI4eNA+HxcXSb58EBnZksqV/SdeXQ6u5abNm/Lblt8YOnUo0Qej6XhnR/rW70uuv3ORO3tuWlZzPt7IyEgmTpwIkJgv0yo1Pfds2BOkrYADwEqgmzFms8c2nwGHjTFvikgxbFKvaYw5nmRf2nN3iYyMTHxTs5Lz56FNG3ulaZcucN99cPp0JLfd1hKwPXk/L2X6VFb9XCTH221x7tI5JkZPZOjyoRTLV4wedXrQpWoXrst1ndeO4Ss+6bkbY+JEpA8wB/dQyM0i8rR92owB3gEmish618teTprYlYqPh/BwKFcOoqLcSdzzvFlWTuzKNw6cPsCo1aMY9ccoGpVuxKTOk2hStonTYfmczi2jMs0bb8CcObBgAeTO7XQ0KpgdOXuEdYfWMSF6AjO3zaRb9W48W/9ZqhSt4nRo6aJzyyi/FRFhR8GsWKGJXfnG9uPb6T2zN2sPrOVi3EWq3VCNLlW68Fn7zwjNHep0eJkuC40g9i+RnrWIIBQXB8uXw/vv2ytM+/Sx9zYtVuzf2wZ7W6SFtoVbWtpi/aH1tJjYgrYV2rL26bWcGHCCpU8s5flGz2fJxA7ac1c+YAw8/DCsW2fvadq7NzRrBoUKOR2ZCkbLY5bT+dvOjGg7gq7Vuzodjt/QmrvyurfftlMGREZqCUb5xj+X/2HVvlUs2rOIEStG8FXnr2h/U3unw/IZrbkrx/34I4wdq7V15T2X4i6xYt8K1h1cx/pD61l3aB0bDm+gatGqNCvbjNkPz6ZuybpOh+l3tOfukGAcz7x2rR3DPns21E3D/7VgbIv00rawLsdfZvjU4Wy9bis///UzZa4rw60lb6VGsRrccsMt1C1Zl/w58zsdZqbRnrtyzMWL8MADdk6YtCR2pTydv3SeCdET+GjZR+SMyUmPe3uwqscqwkLDnA4t4GjPXXnF8OF2DPvMmU5HogLRwTMHGb92PJ+u/JR6JesxsOlAGpVp5HRYfsMn87l7kyb34HTihJ3ka+FCqFbN6WiUP9tydAs7TuwgVzY7j8vhs4eZuG4iUXui6FKlC/0a9OOWYrc4Habf0eQeQIKptvrii3D6NIwenb7XB1NbZFQwtsWJ8yeI2BjBV+u+Ys/JPdQsVpOLcRe5EHeBvDny0q16Nx6o9sC/aujB2BbppTV3lel27oQJE+DPP52ORPmjuTvm8vBPD9MyrCWDWgyiTYU2fjWVbjDTnrtKN2Oga1eoXh1ef93paJQ/McYwcuVI3lvyHt/e9y3NyzV3OqSApmUZ5VPGwLBh8P33cOiQfZQpA2vWQL58Tken/IExht2xu/lgyQcs+3sZv3b9lfKFyjsdVsDz1T1UlQ8E2hwisbHQuTP88AN89BHMnw+HD8OWLRlP7IHWFr4UaG1x+Oxhpm+dzqCFg2g7uS1FPypKswnNuBx/mWVPLMtQYg+0tvA3WvxSKVq71t5Uo0MH22vPmdPpiJSTEsaij1gxgkNnDlG/VH3ql6rPM/We4daSt1KyQEmnQ1RoWUalYN48eOgh+PRTeFBve56lHT9/nLF/jGX4iuHUK1mPAU0G0KhMI0JECwC+pqNllFdNmwY9esBPP0HTpk5Ho5xgjGHJ3iWMWTOG37b8RodKHZjzyBwdix4A9E+uQ/y9nvjNN/D00zBrlu8Tu7+3RWbyp7Y4cPoALb9qyVPTn6JO8Tps77udyfdOzrTE7k9tEYi0567+ZeFCe2HS/Pl6xWlWFbUnim4/dqNn3Z682vxVLb0EIK25qyv88w/UqAFDh0LHjk5HozJDzMkYftr8Ezmy5SBXtlzsObmH0X+MZlLnSdxZ8U6nw1NozV15wXvv2eSuiT1rmLVtFo9Pe5z2N7UnV7ZcXIi7QDbJxor/W6EzMQY47bk7xB/nzdi0CVq0gOhoKFUq847rj23hlMxqi7j4OAZHDmZi9ES+6fKNX15Bqp8LN+25q3SLj7cnUN94I3MTu8pcZy+eJWJjBCNXjaRwnsL88dQfFMufzF3LVcDTnnsWde4cvPkm7NsHcXFw/DicPAlLl0K2bE5Hp7xt14ldDFs+jCkbptCsXDOervs0bSu21ROlAUJ77ipVDhyAu++GChXgrrsgJMQm9JYtNbEHm81HNvP+kveZsW0GT9V5inU911GmYBmnw1KZQP9sO8SpMbxr10KDBnaemKlT4dFH4eGH7eyOxYs7EpKOZ/bgrbbYdmwb3X7sRsuvWlK5SGV29N3B+63fD6jErp+LjNGeexayYoWdH+aLL+xcMSrwGWPYeHgjF+IuECIhxMXHMXbNWH7+62eea/gcYzuOzVI3klZuWnPPIo4fhzp14L//tSUZFdiMMfy+43feiHyDQ2cPUSRPEeJNPPEmnnYV2/Fyk5cplKeQ02EqL9H53FWy4uOhUyd7n9OPP3Y6GpURxhjm7pzLG5FvEPtPLINbDOb+avfridEgp/O5B5DMrCcOHQrHjsH772faIdNEa6tuV2sLYwzTt06n4biG9J/dnz71+7Ch1wYerP5g0CZ2/VxkjNbcg9zSpTa5r1oFOXI4HY1Kq8vxl/lh0w98uPRD4kwcrzV7jS5VuwRtQlfeo2WZIHbyJNSsCSNH2hOpyv/Fm3gOnD7AnpN7WLlvJSNWjKBswbK81Pgl2t/UXpN6FqU1d3WF7t0hTx4YNcrpSFRKLly+QP/Z/ZkQPYHQ3KGEhYZR+frK9Lq1Fw1LN3Q6POUwvYgpgPh63owffoBly+w8Mf4uq88hcuD0Abp814Vi+YvxQ/0f6NBGv2aBfi4ySr/jBaH9+6F3b5g8OeM3r1a+tXTvUuqNrUe7iu348YEfdUy68hotywSRAwdg8WIYMQLuuMNOAqacd+zcMbYd30alIpUonKcwcfFxzNg2g+H/G85fR/9iVIdR3F1ZLz5QV+ezmruItAWGY3v644wxQ5I8/yLwMGCAHEAV4HpjTGyS7TS5+0BUFDzxBJw4AU2awG23QZ8+OjrGH+yO3U2rSa0okLMAu2J3kStbLnJmy0nJAiXp37A/91W9j5zZcjodpvJz6UnuGGOu+cAm9O1AOWzijgZuvsb2HYB5V3nOKGvhwoVe2c/27cYUK2bMtGnGxMV5ZZeZzltt4W+2HN1iyn5S1oxcMdIYY0x8fLzZf2q/2XR4k4mPj0/2NcHaFumhbeHmyp0p5mvPR2pOqNYHthlj9rj+gkQAnYC/rrJ9N2Bqmv7CqHQ5dcreMen113VKAX9ijGH9ofW0/6Y9b9/2Nk/UfgKwva8SBUpQokAJhyNUWUGKZRkR6QLcaYx5yrX8CFDfGNM3mW3zAH8DFUySkozreZPS8VTqxMXZhF6uHHz+udPRqLUH1jIochC7Tuxi78m9hEgIX9z1Bd1u6eZ0aCoI+MNQyI7AkuQSu/Kul1+2N7MeMcLpSNQ3G76h3+x+vHv7uzQs3ZCyBctSMFdBRNJWIlXKm1KT3PcBZT2WS7vWJacrKZRkwsPDCQsLAyA0NJRatWoljmVNmEsiKyx7zpuR1tfv2NGSX3+FoUMjWbrUP36fjCwnrPOXeFK7PH/BfMb8MYbVuVYz/7H5HN98nOObj1OjZY107z86Opr+/fv7xe/n9PLw4cOzdH6YOHEiQGK+TKvUlGWyAVuAVsABYCXQzRizOcl2BYGdQGljzPmr7EvLMi6R6bxAIyrKzsUeFQU33+z9uJyQ3rZwwtmLZ1mwawGzts9i5raZVCpSiYj7Iiicp7BX9h9IbeFr2hZuvh4KOQL3UMgPRORp7BncMa5tumNr8w9dYz+a3DNg1y5o3Bi++gratHE6mqzl3KVzfLL8E4b9bxg1i9WkXcV2tLupHdWKVtPyi/I5nVsmiF24APXqQY8e8OyzTkeTdfxz+R+mbpjKoMhBNCrdiPdbvU+FwhWcDktlMTqfewDxrDenxgcfwI032ouTgk1a28LX9p3axyfLP6Ht5LYU/agokzdM5vv7v+e7+7/zeWL3t7ZwkrZFxujEYQFg61b49FN7c2utAPjWvJ3zeOSnR+hQqQM96vQg4r4IQnOHOh2WUmmmZRk/Zwy0bm3nY3/uOaejCV7GGIYtH8bHyz9mapeptAxr6XRISiXyh3HuysumTLE3t9Y6u+8cPXeUPjP7sO34Nlb83wrKFiyb8ouU8nNac3dIauqJR4/Ciy/CmDGQPYj/DDtVW4038Yz9YyxVP6tKifwlWPL4EscTu9aZ3bQtMiaIU0ZgO3jQDnfs0cOOklHes//0fubvnM/nqz9HEOY8OodaxWs5HZZSXqU1dz+0e7ets4eHw6uv6klUbzh94TTDlg/ju03fceD0AW4vfzv33HwP3W7ppvclVX5Pa+4BLi4OVq6EBx6AAQOCc9hjZrscf5nxa8fzRuQb3F7+diZ2mkidEnXIFpLN6dCU8ilN7g5JuLT6/Hn46CNYtAhWr4aiRWHIEHjoqtf5Bh9vXmZ+Ke4SS2OWEn0wmvWH1hO1J4oyBcvwW7ffqFuyrleO4Ut6yb2btkXGaHJ30P790LkzlC0LL7wA9evD9dc7HVVgMsYwfet0Xpz7IgVyFqB+qfo0KNWAZ+o9Q90SdXWKAJXlaM3dIWvWQKdO8PTTWlfPqPWH1vP878+z//R+hrYZStuKbTWZq6CiNfcAYIyd+Oull2DUKOjSxemIAtehM4d4bcFr/Lr1VwY1H8RTdZ8iRza9caxSoOPcM9Xhw3DvvTB0KLz/fqQmdpfUjGe+cPkCy2OWM2vbLCI2RjB44WCqfV6N63Jdx5Y+W+hdv3dQJHYd2+2mbZEx2nPPJHPmQPfu8NhjEBEBy5c7HVHg2H96P/d+ey9nL52lVIFSFMxdkGL5irH8yeXcVOQmp8NTyi9pzT0THDsGVarYpH777U5HE1hW7VvFvd/dS8+6PflPs/9oLV1lSTqfu5/q29eOYf/sM6cjCRzGGL5a9xUvzX2JLzt+SaebOzkdklKO0fnc/dDmzTB1Krz55pXrtZ7olrQt9p/eT6eITgxdPpSF3RdmqcSunws3bYuM0Zq7j73wAvznPzp+PTnxJp7tx7ez5sAazC6DiLDl6BZeX/g6PW/tyff3f0+u7LmcDlOpgKRlGR+aNQv694cNGyBnTqej8Q+X4i4xdPlQZm2fxdoDaymStwjlCpYDwGAokLMAb932FnVK1HE4UqX8h45z9yMnTtibawwdqok9wbZj23j4p4cpmq8orzd/ndrFa1MkbxGnw1IqKGnN3QfWrIG6de3dk+66K/ltsko90RjDwTMHGbV6FI3HNya8VjjTu02n9Y2tExN7VmmL1NC2cNO2yBjtuXvZuHHwyit2ZMwDDzgdjTPiTTyfrviUSesnse3YNnJlz0Xt4rVZFL6IqkWrOh2eUlmC1ty96NNPbVL/+Wc7rj0r+vvU34T/Es75y+f5sPWHVC1alUJ5CjkdllIBTce5O2j/fqhRA5YuhcqVnY7GGT9t/oleM3rxbP1neaXpK2QP0S+GSnmDjnN30Asv2BkeU5vYg62eOHn9ZJ6d9SzTu03nteavpSmxB1tbZIS2hZu2RcZo18oL5s+3c8WMG+d0JM6I2BjBy3NfZt5j87SmrpSf0LJMBl28CDVrwgcf2PnZs5ofN/1I75m9mfvoXG4pdovT4SgVlHSceyYzBt5+G268Ee6+2+lofC/6YDQjV45k5b6VnL54mjMXzyAIvz/yuyZ2pfyM1tzTaeVKaNoUZsywI2TSOllhoNQT4008P23+ieYTmtNxakcqFKrApHsmMf+x+Wx6ZhN/P/83tUvUztAxAqUtMoO2hZu2RcZozz2NTp+G3r1tnf2dd+z87NmyOR2V9xljmLV9Fq8ueJVsko0BTQbQ+ebOQXFDDKWyAq25p8Hhw9C+PdSuDZ98AvnzOx2Rb2w/vp3wX8I58c8J3rntHTrf3FnnUVfKQToU0od277ZlmPbtYcyY4E3sy2KW0XR8Ux6o9gDre67nnir3aGJXKgBpck+FzZuhWTPo0wfeeivt9fXk+GM98bs/v6NTRCcmdJpA3wZ9yRaSOfUmf2wLp2hbuGlbZIzW3FNw7JidAOzNN+GJJ5yOxjuMMUTtiWLMmjEcP38cYwwX4y6y7fg25j06j5rFazodolIqg7Tmfg2XLsGdd8Ktt8KHHzodTcbFxcfx/abv+XjZx5y+eJpn6z/LjYVuRBBEhLol6lI0X1Gnw1RKJaFzy3jZs8/Cjh3w22+BPyJmT+weHvvlMS5cvsCrzV7lrkp3ESJalVMqEPjshKqItBWRv0Rkq4gMuMo2LUVkrYhsFJGFaQnCH40dC3Pn2vuf+iKxZ1Y90RjD5PWTqTe2HnfddBdLn1hKx8od/Sqxa23VTdvCTdsiY1KsuYtICDASaAXsB1aJyDRjzF8e2xQEPgPaGGP2iUhA3zF0/HgYPBgiI6FgQaejSb9TF07Rc3pP1h1ax5xH51CreC2nQ1JKZZIUyzIi0hAYbIxp51p+BTDGmCEe2/QCShhjBqWwL78vy4wcaevr8+ZBpUpOR5N+aw6s4cEfHqRV+VZ8cucn5MmRx+mQlFLp5Ku5ZUoBMR7LfwP1k2xTCcjhKsfkB/5rjPk6LYH4gyFDbDkmKgrCwpyOJm3i4uPYf3o/e07uYcneJQxdPpRP231K1+pdnQ5NKeUAbw2FzA7UAW4H8gHLRWS5MWZ70g3Dw8MJc2XO0NBQatWqRcuWLQF3jc2J5S++gJEjI/nkEwgL8/3xPOuJGdnfmYtnmHVpFuPWjiPfvnwUz1+cOo3rsOyJZezbsI/IyEi/aN9rLSdtE6fjcXI5Ojqa/v37+008Ti4PHz7cb/JDZi9HRkYyceJEgMR8mWbGmGs+gIbAbI/lV4ABSbYZgC3dJCx/CXRJZl/GH82da0yxYsZs25Z5x1y4cGGGXh8fH2++Wf+NKfFxCfPUr0+Zo2ePeicwB2S0LYKJtoWbtoWbK3emmK89H6mpuWcDtmBPqB4AVgLdjDGbPba5GfgUaAvkAlYADxpjNiXZl0npeJlt61Z79em334LrD6jf23J0C31m9eHw2cOMumsUjco0cjokpZQP+WQopDEmDugDzAH+BCKMMZtF5GkRecq1zV/A78B64H/AmKSJ3R+dOAEdO8K77wZGYj9/6TyvL3idJuOb0L5ie1b3WK2JXSmVrCx7EdPly3YSsGrV7AyPmc2zFp4a6w6uo8t3Xahbsi7D2gyj1HWlfBdcJktrWwQzbQs3bQs3vRNTGrz4IoSEwEcfOR1JyiI2RvDsrGd19ItSKtWyZM993Dg7ln3FCggNdTqaq7scf5lX57/Kd5u+4+cHf9aLkJTKorTnngpLlsDAgbB4sf8m9nOXzjFh7QSGLh9KpSKVWNVjFdfnDeiLfpVSmcx/JhjJBJGR0KULTJoElSs7HUskYO9RujxmOVPWT+HDpR/Se0Zvyo8oz5ydc/j6nq+Z/cjsoE/snuPdszptCzdti4zJMj33SZNsnX3qVGjVyuloIPZ8LB8u/ZDRf4wmb468VL+hOqUKlKJi4Yos7L6QqkWrOh2iUiqABX3NPT7e3j3pq69gxgyo6mDOPHvxLDO2zeDbP79lwa4FdL65M71u7UW9kvX0VnZKqavS+dw9GGPnYX/9dbjuOvjhByhWLFMO/S8XLl/ghTkv8PX6r2lUuhEPVHuAe26+h0J5CjkTkFIqoOgNsl3WrYNGjeC11+Dtt+1EYE4l9qPnjnLH13dw4MwBdvTdwexHZvNE7SdYt2KdMwH5Ia2tumlbuGlbZEzQJXdj7L1OH3wQoqPh7ru9c0Pr9NhydAsNv2xI4zKN+f7+74P+xKhSyn8EXVlmxgw71DE62l6klNmMMaw9uJavor9iyoYpDGk9hCfrPJn5gSilgkaWH+duDLz5pq2zO5HYZ2ydwcD5Azl98TSP1XiMlT1WcmOhGzM/EKVUlhdUZZnZs+HcOTuWPTPFm3gGLxxMzxk9+eiOj9jRdwdv3vbmNRO71hPdtC3ctC3ctC0yJmh67k712mP/ieXhnx7m9IXTrO6xmmL5HTpzq5RSHoKm5j5nDvTrBxs3QrZsPjlEot2xu5mzYw5zd85l/s75PFrjUT5u8zE5suXw7YGVUllSlh3nvnMn3HsvvPwyPPSQ13cP2NLLzG0zGbFiBNEHo7mzwp3cceMdtL6xdVBNv6uU8j9Zbpz72bN2LHv9+nboY1cfzIYbb+KZGD2RyiMr80bkG3Sv2Z19z+9j8r2T6V6re7oTu9YT3bQt3LQt3LQtMiZga+7/+x/cfz80b26HPZYu7f1jLItZRr/Z/cgekp3xd4+nadmmOk2AUiogBGRZZtEim9jHjbO3yfO2P/b/wZClQ1j+93I+aPUBD93ykCZ1pZRjssQ499mz4dFH7Q2tb7/de/s1xjB963SGLh/KzhM76dugLxM6TSBfznzeO4hSSmWSgKq5z5gBjz0G06Z5N7Evj1lOk/FNeH3h6zxV9yl29N3Bi41f9Gli13qim7aFm7aFm7ZFxgRMz33rVggPh+nToUED7+xz14ldvDL/FZbFLOPd29/lkRqPECIB9fdOKaWSFRA19/PnoWFD6NkTevXKeBynLpzivcXvMXbNWPo16MeLjV8kb468Gd+xUkr5QNDW3Pv0gWrVbHLPiDMXzzBp3STejnqbthXbsqHXBkoWKOmdIJVSyo/4fQ1i4kRYtgzGjEnf1L3GGNYcWEPP6T0p80kZ5uyYw4yHZjCh0wRHE7vWE920Ldy0Ldy0LTLGb3vu8fEwfDh88AEsXAj586f+tQfPHOTHTT8StTeKqD1R5M6emydqPcHGXhv1alKlVJbglzX3o0ehe3c4dsze0Lp8+dQfY/ORzdw5+U5ahrWkVflWNC/XnLDQMB2nrpQKWEFRc1+xAu67z84R8847kCMNc3Gt3r+aDt904MM7PuSxmo/5LkillPJzflVz//VX6NABPvsMhgxJW2JfsGsB7ae0Z3SH0QGR2LWe6KZt4aZt4aZtkTF+03MfNQreegtmzoR69VLe/vyl88zcNjNx6t0LcReIuC+C28t78eompZQKUH5Rcx8+HD7/HGbNggoVrr2PA6cP8PmqzxmzZgw1i9WkXcV23FHhDqoVraZ1daVUUArI+dxPn7YnTP/3P6hY8eqvPXbuGK8teI2IPyN4qPpD9GvYj0pFKvk4YqWUcl5Azuf+5ZfQqtXVE3u8iWfsH2Op+nlVsodkZ0ffHXx212cBn9i1nuimbeGmbeGmbZExjtbcL12CTz6Bn37693MHzxzkh00/MH7teHJnz83sh2dTu0TtzA9SKaUCkKNlmcmTYfx4WLDALp+/dJ7v/vyOiesmEn0wmg6VOvBgtQdpf1N7ndBLKZVlBVTN3RioVctegXpzw12MWDGCyesnU79Uff6vzv/R/qb25M6eO9NiU0opf+WzmruItBWRv0Rkq4gMSOb5FiISKyJrXI/XUtrnnDl2ioGStdfTeHxj8mTPw+qnVjPz4ZncW+XeoE/sWk9007Zw07Zw07bImBSTu4iEACOBO4FqQDcRuTmZTaOMMXVcj3eutc/9++Htt+HBfutpO+VOht85nPdbv09YaFh6foeAFB0d7XQIfkPbwk3bwk3bImNS03OvD2wzxuwxxlwCIoBOyWyXqq8MLVrY6XtvqLGez2LvZETbETxY/cE0hBwcYmNjnQ7Bb2hbuGlbuGlbZExqRsuUAmI8lv/GJvykGolINLAPeMkYsym5nYV0eYyKD//F/ONbGNtuLA9UeyDNQSullLo2bw2F/AMoa4w5JyLtgF+AZAeiP9qsJTdf35Mq11ehUJ5CXjp84Nm9e7fTIfgNbQs3bQs3bYuMSXG0jIg0BN4wxrR1Lb8CGGPMkGu8ZhdQ1xhzPMn6zBuao5RSQcQXU/6uAiqKSDngANAV6Oa5gYgUM8Yccv1cH/tH43jSHaU1OKWUUumTYnI3xsSJSB9gDvYE7DhjzGYRedo+bcYA94lIL+AScB7IemdIlVLKj2TqRUxKKaUyR6Zd05/ShVBZhYiUFpEFIvKniGwQkb5Ox+QkEQlxXfj2q9OxOE1ECorI9yKy2fX5aOB0TE4QkedEZKOIrBeRKSKS0+mYMpOIjBORQyKy3mNdIRGZIyJbROR3ESmY0n4yJbmn4UKorOAy8LwxphrQCOidhdsCoB+Q7LDZLGgEMNMYUwWoCWx2OJ5MJyIlgWeBOsaYGtjScVdno8p0E7C50tMrwDxjTGVgATAwpZ1kVs89tRdCBT1jzEFjTLTr5zPY/8ClnI3KGSJSGmgPfOl0LE4TkeuAZsaYCQDGmMvGmFMOh+WUbEA+EckO5AX2OxxPpjLGLAFOJFndCfjK9fNXQOeU9pNZyT25C6GyZELzJCJhQC1ghbOROOYT4CVAT/xAeeCoiExwlanGiEgep4PKbMaY/cBQYC/2gshYY8w8Z6PyCzckjEg0xhwEbkjpBTqPrkNEJD/wA9DP1YPPUkTkLuCQ61uMkMrpK4JYdqAO8Jkxpg5wDvtVPEsRkVBsL7UcUBLILyIPORuVX0qxQ5RZyX0fUNZjubRrXZbk+rr5A/C1MWaa0/E4pAlwt4jsBKYCt4nIJIdjctLfQIwxZrVr+Qdsss9qWgM7jTHHjTFxwE9AY4dj8geHRKQYgIgUBw6n9ILMSu6JF0K5znx3BbLy6IjxwCZjzAinA3GKMeY/xpiyxpgbsZ+HBcaYx5yOyymur9wxIpIwbUcrsuaJ5r1AQxHJLfaO963IgieW+fe32V+BcNfP3YEUO4WZcpu9q10IlRnH9jci0gR4GNggImuxX6/+Y4yZ7Wxkyg/0BaaISA5gJ/C4w/FkOmPMShH5AViLvShyLTDG2agyl4h8A7QEiojIXmAw8I5qyzQAAABLSURBVAHwvYg8AewBUpxxUS9iUkqpIKQnVJVSKghpcldKqSCkyV0ppYKQJnellApCmtyVUioIaXJXSqkgpMldKaWCkCZ3pZQKQv8PIEY0iXjD1OUAAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.plot(diff, series, label='Series Win')\n", + "plt.plot(diff, game, label='Game Win')\n", + "plt.legend(loc='best');\n", + "plt.grid()\n", + "plt.title('Point Differential vs. Win Percentage');" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "P = [p/100 for p in range(100)]\n", + "plt.plot(P, [win_series(p) for p in P])\n", + "plt.grid()\n", + "plt.title('Game Win Percentage vs. Series Win Percentage');" ] }, { @@ -240,7 +275,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ @@ -263,7 +298,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 10, "metadata": {}, "outputs": [ { @@ -287,7 +322,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 11, "metadata": {}, "outputs": [ { @@ -320,17 +355,17 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Rockets vs Wolves 89%; through here: 89%\n", + "Rockets vs Wolves 88%; through here: 88%\n", "Rockets vs Jazz 78%; through here: 69%\n", "Rockets vs Warriors 69%; through here: 48%\n", - "Rockets vs Raptors 58%; through here: 28%\n" + "Rockets vs Raptors 57%; through here: 27%\n" ] } ], @@ -344,17 +379,17 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Warriors vs Spurs 72%; through here: 72%\n", - "Warriors vs Blazers 74%; through here: 54%\n", - "Warriors vs Rockets 31%; through here: 16%\n", - "Warriors vs Raptors 38%; through here: 6%\n" + "Warriors vs Spurs 73%; through here: 73%\n", + "Warriors vs Blazers 75%; through here: 55%\n", + "Warriors vs Rockets 31%; through here: 17%\n", + "Warriors vs Raptors 37%; through here: 6%\n" ] } ], @@ -379,7 +414,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 14, "metadata": {}, "outputs": [], "source": [ @@ -393,7 +428,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 15, "metadata": {}, "outputs": [ { @@ -468,7 +503,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 16, "metadata": { "scrolled": true }, @@ -494,7 +529,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 17, "metadata": {}, "outputs": [ { @@ -518,7 +553,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 18, "metadata": {}, "outputs": [ { @@ -562,7 +597,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 19, "metadata": {}, "outputs": [ { @@ -593,7 +628,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 20, "metadata": {}, "outputs": [ { @@ -617,7 +652,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 21, "metadata": {}, "outputs": [ { @@ -660,7 +695,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 22, "metadata": {}, "outputs": [ { @@ -684,7 +719,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 23, "metadata": {}, "outputs": [ { @@ -708,7 +743,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 24, "metadata": {}, "outputs": [ { @@ -732,7 +767,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 25, "metadata": {}, "outputs": [ { @@ -776,7 +811,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 26, "metadata": {}, "outputs": [ { @@ -811,7 +846,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 27, "metadata": {}, "outputs": [ { @@ -835,7 +870,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 28, "metadata": {}, "outputs": [ { @@ -859,7 +894,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 29, "metadata": {}, "outputs": [ { @@ -883,9 +918,7 @@ }, { "cell_type": "markdown", - "metadata": { - "collapsed": true - }, + "metadata": {}, "source": [ "# The 2016 Finals\n", "\n", @@ -896,7 +929,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 30, "metadata": {}, "outputs": [ { @@ -943,16 +976,16 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "0.966301733" + "0.968211263722248" ] }, - "execution_count": 29, + "execution_count": 31, "metadata": {}, "output_type": "execute_result" } @@ -982,5 +1015,5 @@ } }, "nbformat": 4, - "nbformat_minor": 1 + "nbformat_minor": 2 }