{
"metadata": {
"name": "Notebook Overview"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Edit presentation style here\n",
""
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
"
]
},
{
"cell_type": "heading",
"level": 1,
"metadata": {},
"source": [
"An Overview of the IPython Notebook"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The IPython development team"
]
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Motivation"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Scientific and technical computing is about more than just code and data. \n",
"\n",
"It is about telling **stories** using code and data.\n",
"\n",
"These stories include other types of content:\n",
"\n",
"* Narrative text\n",
"* Images and video\n",
"* Equations\n",
"* Plots and other visualizations"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We go through different phases as we tell these stories:\n",
"\n",
"* Individual exploration\n",
"* Collaborative development\n",
"* Production execution\n",
"* Debugging\n",
"* Publication\n",
"* Presentation\n",
"* Education"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We need to tell these stories in different contexts:\n",
"\n",
"* In collaboration with colleagues\n",
"* In written publications\n",
"* In talks/presentations\n",
"* In the classroom\n",
"* In meetings\n",
"* In boardrooms\n",
"* On the internet"
]
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"What is the IPython Notebook?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"A tool for telling **stories** with computations that are:\n",
"\n",
"* Interactive\n",
"* Exploratory\n",
"* Collaborative\n",
"* Open\n",
"* Reproducible"
]
},
{
"cell_type": "heading",
"level": 3,
"metadata": {},
"source": [
"An open, JSON based document format"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from IPython.nbformat import current\n",
"with open('Notebook Overview.ipynb') as f:\n",
" nb = current.read(f,'json')"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 2
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"nb.worksheets[0].cells[0:5]"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "pyout",
"prompt_number": 6,
"text": [
"[{u'cell_type': u'markdown',\n",
" u'metadata': {},\n",
" u'source': u'Edit presentation style here\\n'},\n",
" {u'cell_type': u'markdown',\n",
" u'metadata': {},\n",
" u'source': u'
'},\n",
" {u'cell_type': u'heading',\n",
" u'level': 1,\n",
" u'metadata': {},\n",
" u'source': u'An Overview of the IPython Notebook'},\n",
" {u'cell_type': u'markdown',\n",
" u'metadata': {},\n",
" u'source': u'The IPython development team'},\n",
" {u'cell_type': u'heading',\n",
" u'level': 2,\n",
" u'metadata': {},\n",
" u'source': u'Motivation'}]"
]
}
],
"prompt_number": 6
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"These Notebook documents:\n",
"\n",
"* Are stored as files in your local directory\n",
"* Can store:\n",
" - Code\n",
" - Text (Markdown)\n",
" - Equations (LaTeX)\n",
" - Images\n",
" - Links to video\n",
" - HTML\n",
"* Can be version controlled.\n",
" - Change 1 line of code, get a 1 line diff.\n",
"* Can be viewed by anyone online without IPython installed ()\n",
"* Can be exported to HTML, Markdown, reStructured Text, LaTeX (WIP)."
]
},
{
"cell_type": "heading",
"level": 3,
"metadata": {},
"source": [
"A web-based user interface for running code"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We try to make writing code pleasant:\n",
"\n",
"* Tab completion\n",
"* Integrated help\n",
"* Syntax highlighting\n",
"* Interactive shorthands (aliases, magics)"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%pylab inline"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Welcome to pylab, a matplotlib-based Python environment [backend: module://IPython.zmq.pylab.backend_inline].\n",
"For more information, type 'help(pylab)'.\n"
]
}
],
"prompt_number": 6
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"plot(rand(100))"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "pyout",
"prompt_number": 8,
"text": [
"[]"
]
},
{
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAXgAAAD9CAYAAAC2l2x5AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJztfXmQHMWd7tejuXXMSBqhEwlGIzMz6EAgacQC0oCx0BoD\ndoBjkQPsB2LfGHZXYm30HPbyAgm/8NrheItAxvKwLF7bgL0bZv18AisZhsEhdIFAoBOEbiRmpBGa\n+673R5Lq6urMrMyqrOqq7vwiFKOurq7Ozsr66qvv98tfJizLsmBgYGBgkHXIy3QDDAwMDAyCgSF4\nAwMDgyyFIXgDAwODLIUheAMDA4MshSF4AwMDgyyFIXgDAwODLIWQ4O+9915MnDgRc+bM4e7z7W9/\nG5WVlbjqqquwf/9+7Q00MDAwMPAGIcHfc889eOmll7jvb9++Ha+//jp27tyJhx56CA899JD2BhoY\nGBgYeIOQ4K+77jqMHTuW+/62bdtwxx13YNy4cVixYgX27dunvYEGBgYGBt7gy4Pfvn07amtrL7ye\nMGECDh065LtRBgYGBgb+ke/nw5ZlwVnpIJFIMPflbTcwMDAwEMNrRRlfCr6urg579+698Lq1tRWV\nlZXc/ekNIdf/PfLIIxlvQ1T+mb4wfWH6QvzPD3wT/AsvvICzZ8/i+eefR01Nja/GGBgYGBjog9Ci\nWbFiBV577TWcOXMGF198MdatW4eBgQEAQENDAxYtWoRrr70WCxYswLhx4/Dss8+G0mgDAwMDA3ck\nLL/PALJflEj4ftzIFjQ1NaG+vj7TzYgETF8kYfoiCdMXSfjhTkPwBpHHL38JzJgB/NVfZbolBgbh\nww93mlIFBpHH008DL7+c6VYYGMQPvtIkDQyChmUBu3YBF1+c6ZYYGMQPRsEbRBpHjwLnzpG/BtHH\nL34B/Mu/ZLoVmUPUXGhD8AaRxq5dwGc+Ywg+LnjnHSCXaw5efTUQpcn8kSX4/n7g17/OdCsMMo23\n3gJuuw04eRIYGsp0awzccPo00N6e6VZkDq2twIcfZroVSUSW4PfuBb78ZeAnP8l0Swz8oLUVeOMN\n75/ftYuoonHjgFOn9LXLIBjkOsEPDAAffZTpViQRWYJvbwcqK4FHHgGamjLdGgOvePVV4H//b++f\nf+stYP58kiZ57Ji+dhkEg1wn+P5+8rQZFUSW4Ds6gOpq4PnngTvvjNZjj4E8+vuBI0e8ffb0aaC3\nl5D7jBnGh48DTp0yBG8UvATa24HRo4HPfhZ4+GHiw3Z3Z7pVBqoYGCDK24t/vmsXUe+JhCH4OKCv\nD2hry22CNxaNJDo6gDFjyP//7u/IRf7ee5ltk4E6BgbIPy/+OSV4wBC8TgRFQC0tQEkJcP58MMeP\nA4yClwRV8AAh9/Jyo+DjiP5+8teLTfPWW8CVV5L/G4LXh7/6q2BI6PRpYNYscu1GLR9cJ558kljH\nTliWIXhptLcnFTwAjBxpCD6O+LT4KA4fVv+sUfDBoLsb6OnRf9zTp8mM46Ki7L5W9+9nxwSHhogY\nPX0aGB4Ov10sRJbg7RYNAJSWZvegyVZQgldV8J98Anz8MZnkBADTpxOCz2ZlGBYGBpJPVjpx+jQw\naRK5brPZh+/pYfdffz9QXEx+/5kz4beLhcgSvN2iAQjBd3Vlrj0G3tDfD1RUqBP8228Dc+cCI0aQ\n12VlQH4+CeIZ+AONi+jGqVO5QfDd3WyCHxgACgqAKVOiY9NEluCdCt5YNPHEwABR4aoEb/ffKYxN\nowdBEXyuKHgewff3A4WFhuClwFLwhuDjh4EBEnhTJXi7/05hCF4PjEXjDyKLxhC8JJxBVmPRxBP9\n/cDMmcCJE3K58O3tpLTBli1GwQeBoSESxwhKwU+enP0EbywaDTAWTfRw4ACZWaqCgQFyHsePFw/6\nd94hBD5lCrB6NXDzzcDs2an7qBD84CDw5ptqbc0FUGI3Fo13GItGA4xFEz38/d+r1wWiqubSS8U2\nzdtvA3V15Lxv3w488QT5nB0q9Wh27QJWrlRray6AErtui8aySJB14sTsJ/ieHvYNsr/fKHhpsNIk\njUWTWXR1kenoKqCD/pJLxAR/6hQh8DzBiFRR8L296k8buYCgFHx7O8lyGjUq+wleZNEYBS8By0pX\n8Lotmj/+kZSyNZAHL7gkAlXwMgQ/ZYr4WCoE39enfjPKBQRF8NSeAXKX4HVYNG1twP/4H76al4JI\nEnxPDyEF+yO6bovmhz8EduzQd7xcgFeCLyx0J/iPPiIBOhEuugjo7JR7kuvrMwqehSAJnp6/bCd4\n3nVAxczEiUQ8Dg6qH7uzE/jzn/23kSKSBO+0ZwD9Fk13dzCBpmwGT7mIoKLg3Qg+kSAzWmV8eKPg\n2QjKg7cr+LKy7CV4y3JX8AUFJKmgpUX9+FQQ6UIkCd5pzwD6LRpD8OrwouBVPHg3ggeSJQvc0Ntr\nCJ4Fqip1j306ixXIbgXf30/qzIgIHvBu09iPoQORJHiegtdJ8F1dwUz2yGZ4VfCFhYSYebnwNAND\nhuBlfXij4NkwHrw/0CJtIosGMAQvhHOSE2AsmkzDsvjpYSLQQV9URGrSsAZ9ezupOeN8amNBheCH\nhrz5oJlEfz9J7/zbvw3m+GFYNNlM8FRkGgXvA2FYNEbBq6G/P1nvWvVzVNXwbBqZACuFCsHb/8YB\nZ84An/scmWsQ1ALjJsjqD2EQvHP+hx9EkuCDtmhooMQoeHmIBrYI9qARj+Bl7RkAqKqSW9krbgR/\n4ACweDH596MfBSc+jEXjDz09ZDwbi8YHWApep0XT1xdcPY5shch7FME+6HUQfF0dqRX/9tvi/Six\nxyVV8p/+CbjnHuAHPyA1xYMmeN3Hz5Uga3c3WV2ON5PVr4LPmSwap4IvKiKeqg5SpjcKY9HIwyvB\ny1g0MpOcKEaMIET4b/8m3i9uCr61FbjmGvJ/nkLUgSAU/OAgmaAzYQJ5XVRE/sal71XQ3U3SQHkW\njVHwEmBZNIkEUfE6lhqjdoNR8PLw2me6LRqAEPwvfykeC1S5x4Vk2tqAsWPJ/wsLgxubQRB8aysw\nbhwpVUAxZkw8Ft/+4hfVrN+eHqLgRaUKAEPwQrAsGoAEWnXYNPQYhuDlEaRFoxJkBUig9aqrgN/8\nhr9P3Cyac+cISQLxU/D2ACtFXGyazZvV2umm4Ck5T5hAzqmXJ96sJ3iWggf0BVq9BgxzGV77zP7Y\nSnPhnamLqgoeAO67D3j6af77cbNonAo+Th68PcBKEReC7+9Xu9lRD94tyDpiBClZcPq0enuynuBZ\nHjygL9BqFLw6/Ch4OmCLioCLLwY++CB1Hy8Ef+utJJvm0CH2+3Ei+L4+ctMbOZK8jpuCtwdYKeJA\n8DTRQqUvenqSCt65ALyTnL3YNKGnSTY3N6OmpgazZs3Chg0b0t7v6enB1772NcyfPx9Lly7Fb3/7\nW9+NElk0OhW8IXh56LBoAGDOHODdd1P3UQmyUhQVAXfdBTzzDPv9OBH8uXNEvScS5HXcCD6uCp72\nsaqCHzWKlLV2zsp2EvzUqeoEH3oWzerVq9HY2IjNmzfjySefxJkzZ1Le/9nPfoaRI0di165d+PnP\nf45vfOMbsJy3NkUYiyZ66O72RjxORTJnDrB7d/J1ZycZ1GVl6m1auRL4939nz1aNkwdvt2eA4Ak+\nkTAWDZDsA5W+6O4mPFRQkP45p5jxquBDI/jzn4bBlyxZghkzZmDZsmXYtm1byj5lZWXo6OjAwMAA\n2traUFpaigSVIh7BU/DGoskc6KOpnywaAJg7N1XBU3vGy5C5/HKipE6eTH+vtxcoKYmPgqcBViB4\ngi8tNUFWIDk2VC2a0lL2OXKSc1WV+rKRoRL8jh07UF1dfeF1bW0ttm7dmrLPihUrMDQ0hIqKClx7\n7bV47rnnfDeKp+B1WjT5+YbgVSAKLongZtF48d/t4KXO9vWRMRQHgncqeJY6VMXTT7Prig8MkOtI\nN8FPnJi6LQ4E79WiKSnhE7x9rN91F/D//h9w9qxam3QSfL77LmL86Ec/Qn5+Pk6dOoV3330XN998\nM44ePYo8xtpra9euvfD/+vp61NfXM48pCrLqIPiuLn6qkwEb9uCSLCyL2Cf2/OiqKkLqHR3kKc2L\n/25HSQnbhqEEr8ui6esDNm4EHnxQz/HsoB48hQ4Fv2ULGeef/WzqdqrgdY798+fJzd+ObCZ4quCd\nn3M+rU6YANx2G7nZfutb8m366KMmrF3bJN8oAYQEv3DhQqxZs+bC6z179mD58uUp+zQ3N2PlypUo\nLS1FXV0dpkyZgoMHD6Yofwo7wfNgWcSXHTUq/T1dFo1ourEBG5TgVQiTqne7/TJiBFBbC+zZQ+qu\n+FXwxcVigtel4E+dAv75n4MjeLtFU1BAbozDw+I1akUQrTqk26Lp7SXnwY4xY4IrmKYLQVs0APAP\n/wB86UvAN7+ZKnR46O8HZs2qx3e+U39h27p16+Qb6IBw+JR9Gvlqbm7GkSNHsGnTJtTV1aXs89nP\nfha///3vMTw8jA8//BBtbW1McpdFVxdRZSNGpL+n06LxYjfkMkQTPHhw2jMUdptGdZKTE8XFfIum\nrEwfwff3B2f3OC2aRIL0mx8SFhG8boumry9ZnoAiTgpeNcgqa9EAZELe9OmAbHKh7iwa13vK+vXr\n0dDQgIGBAaxatQoVFRVobGwEADQ0NODOO+/E3r17sWDBAkyYMAGPP/64rwbxAqyAfovGKHh5UAXP\nyztngZfTO3duMpPm1Cmi6L3CzaLRSfBBCYJz54CZM1O3UQJxEqcseAQ/OBiego86wXtR8HaLhpVF\nwyLnVauAJ54Abr/d/fihe/BLly7Fvn37UrY1NDRc+H9ZWZlvUreDF2AFSMc6sjQ9gSr4jg7/x8oV\n0BocKheDSMFTRaPDohEpeF0efJAK3unBA/7r0bhZNG1t3o/tBIvg47AuqxcPXtWiAYhF841vAO+8\nA8yb596mrJ7JyguwAvosmq4uY9GowqtFwxqs1KKhS/UFEWTt7dVr0fT1EU+cteSgXzgtGsB/oNVY\nNO7wquB5Fg1P0BQUAA88QFS8G3KC4IO2aEyQVR1esmh4Fs3EiSTg9NFHwSp43RYNPa5uOIOsgH+C\n562fqzvIaln+CX5gAHj4YT3tUYEXD96LggeAL3+ZnbbKalNWE7ybRaNropMheDXoDLICRMXv2EHO\nxfjx3tsVVpqkFzKQRdgKXjZN8pVX3Ne0HRggCRHOpAgVgj99Gvi//1duX53wkybJmqsgqiNTXk6y\nA2XalNVL9oVh0ZgsGnV4UfCijIA5c4D//m+i5v1MfGalSVJVmcsKnrdAuoqC/5//E3CE39LA8t8B\nNYI/e5Ycx2eFE2UEYdHwxvuoUfIEn/UKPgyLxmTRqMFLqQKRgp87lxC8H/8dYFs0g4Mkf3zkSP0E\nr1sUWBY/yJppD7672/2JmUfwJSXypXjpTM+wZx2HFWQFSB8NDrp/V9Yv2SdS8MaiyRy8PPWIHjfn\nzCEpl378d4Bt0VBPuKhI70xW+19d6Ooi8Qinhx0kwVPylTmGm6Bi+e8AeSobM0YuU40SfNiF4XSn\nSYrGeyIhp+KzXsGLgqzGoskcRHWweRCpkdpaorL9EjxLwff2EtIpLo6+RcOyZwB/BD80xM/bV7Fo\n/Ch4QN6moQSvYzlOFag+ldF+LSqSK1XghCF4uAdZzUSnzEBUB5sHkUVTWkrq0gSt4KNu0bDsGcBf\nwTFR7X5Zi4aSmRvB8xQ8IL8ua1wUPK1QmkioWzSAIXgA4Vg0Jk1SHT09ZHCrEI9bRsCVV5Jp3H7A\nUvBBErxuBc/KoAH8KXg3gpfJoqHHCFPBh03wqh48DbACannwFLIErzOLxnc1Sd0QBVl1WDRUmYwZ\nYywaFVCCpwO7tNT9M26PrE89xScHWbCyaIL04INQ8LotGhmCdyM1ep3JePBxt2hUCJ6O+7go+MgR\nvJuC7+4mHrDX1Dp7HqtR8HIYGCB9XlCgNoXeTdHwbuQq4Fk0xcXx8OAzoeCLi8n5FFWrVFHwIosm\nygq+r0+tdDLNoAG8Efzo0e4EnxNZNLwLn5ae9TvDjxcFN2CDqnee98iD7sdNFsK2aMJU8F4FCO0P\nXh58QYG7wKHKPSyLpqQkMwpepWyDDovGLaso6z14UZAV8G/TdHWRY9Ca22FProgj3JQLD7rVCAth\npUkGmUUThILnKVM7wYuOL6vg3YKssgQ/dWpmFLwqwcfNookcwYssGsB/Jg09SYkEyT92m4oddTzz\nDFl4OkjYlYtKkNVN0ehAWGmSQXnwQVk0vFnH9Jy4PSHIevC6FPy0aZlR8KNGyRO8Xeg4rwNaiI61\njgWFIXiIg6yA/0waquABPWtfZhr79wMHDwb7HdSiAaJn0YSdJhmHPHjRPA/dFo3fIOvQENln0qTM\nZNGMGiXfzyKLhj6timKDmciiiRTBDw2RTqQEzIJfi8b+mJUNgdaeHjnSefFF4PnnvX2H89FUJcga\ntEXj5sHnqkXDU/CDg3otGr9B1nPnSFtHjgxfwff1qSl4kUUjo7xzXsF3dpITLVqHUodFQ28gfhdV\niAJ6euRIbOdO4I03vH+HFwUflkXDy6LRreCDCMy3tQWTJqnDoikvDz7IevYsqSbKW1s3SKgGWZ2x\nKPvnZJR3zmfRuAVYAXJC/Fo0PB8tjpBV8L293m+McbVo8vNJEF3HIh39/eQCjbuCl7VoenqAigrv\ntWgANYLnlX0OEl4UvJtFI4JbFs3wMHnCklmcWxaRIni3ACugL8gKZI9FI3NhyBSO4sHZZ1HKohFZ\nNImEPhXf10cIPi5B1jFj3NMkRcfv7gYmTAhXwUc9yBq0RSPj46sicgTvNvnFL8Hbg6zZYNF0d8sR\nmB+Cj7JFw1J+dl9Ylw8fhIIfHiZjvrw8/T2/tWh0Kfigg6yZVvAjR+qZ6CQz1t0IXrf/DkSM4MOw\naLyq0ahCVsH7sWjc8n95CMOiofMZ7DaM3TbQlSqpmnEhg/Z2Mp5Zj+R+s2hGj2avIaviwcsQvN8g\na9wUPE/o6FDwQVwvkSL4sCwae5pk3BW8rAevU8HrKlWgA4lEuvqzE7wuiyYIBc+zZwA9E514JW1l\n0yQnTPCXBy8TOM2kgvcyk1Vk0RgF7wK3HHhAj0XjJeUvqgjDg/dj0QTtwQPp6s9uG+iyaILw4Hk5\n8IB/ghctKyebJilr0fAUvMzNNZMKXjXI6mbRuI11tyyaIK6XSBG8jII3Fk0qwsiiibJFA6QrxWxR\n8H5q0bgRvGya5OCgeLa3SMGrEHymFLzXiU5O7pC1aERZNEEo+IxXk9y5k8zGPHcO+OMfgQULxPuX\nlgKnTnn/PudM1rgreLeJYRR+FXxZGfl/1EoVAGKLRqcHP3q03AIWsghawTvPlWWpBVlLS5OCip5/\nJ0RB1oICEgMQVa2kBN/enhkFbyyaADE8DCxbRoj9wAFg0SLgK18Rf0ZnmmQ2VJSMsoLPpEUThILX\nHWTl5cADwVg0Q0MkZpGXJ5cmSQleNG5EQVZafVTU/5me6BSmRVNcTPbjfV/WKfgDB4gy+OUv5T+j\nY6JTNil4FQ/ea795DbKGZdE4FXxc0iSDCrJSK8F5ruxPVDJB1pIS9+tNZNEASYKn48cJSvCffBJ9\nD96ZReOcyepGznTh7a4udmps1in4N94Arr5a7TO6FXycCX54mAxS2Syavj5vszqjnAcPiBW8Losm\nbkFW1poH9vPhNvbpMdyK+4mCrID4CcqyoqHgVTx4PxYNILZpsi5NMtMEH/cgK70gZPPgAW8qKQ4W\njdODt2fRRDXIGrZF41TwbhaNDgUv6v/ubmIXlZTEI01SJHRkx7ookybrsmi8ELyxaJLo7pZXqD09\n5GLycnO0D+yoBllFHrwui0a3B88rNAaEQ/CyQVbRmBEFWQExwVP1DsQjTVKXgudl0mSVRXP+PHDk\nCDBvntrnjEWTRE8P8fL6+txXpurpIWTil+BNmqT/Y1FkUsHLpEnas2h4EAVZAXmCD1vB08JeMguQ\nU4gIXlZ9u1k0WUPw27cD8+erE4DOWjRxt2h6egjpJBLiXGXLIhePV4KPukWjM03y5puB999P3x6E\nBx/kTFYdCr6kxN2D92PRZFLBUzJVEXkioSNLzjlD8F7sGUD/RKe4K/iSEncS6+8n9U5Gj9aj4KNU\nqgBIJwc/WTQffgi0tKRuo/njo0bpV/A8i8aP+KD+ufMYqh68jIL3E2R1EnyYCp6SqWw/W5Z7LRod\nQdacJ3g/Cp6epGyxaOiAcyMxuxoLU8FnKk3Sj0XT3Z2uJCkx6lzjFQjWomFl0dDVnOjxZdMk3fLg\ndSh4Gkdxsxp1ob+ftI2uoeqWXdbfT/bl3SB1WTRZkUUzPAxs3Ro+wff3Jyd5ANlh0cgoeHoReu27\nONeiUSVl1rwC++O8rvHS35+02Fjw+l1DQ4TIWfaDrEUzMEBsv4ICOQWvg+Dz892tRp3o60uOTZkn\nefs1AJD2Dg0lbwyy6nv0aH6QNWuyaA4cIMHBSZPUP0tJysud3q5EgeyxaIJW8FHPotEZZO3pYS8g\nUliodwnAEyeAKVP4U/i9Ejw9V3QWqReLxn6diDz44WF3YpMleCA9GypIUAUPyD3JO7mD9i/9XGwt\nmubmZtTU1GDWrFnYsGEDc58dO3Zg4cKFqKmpQX19veuXelXvAHlMKiz05tfZA6xA/C0a+igetIKP\ng0WjI02SWngsBV9UpFfBHz0KXHIJ/32vY9MtV1tGwduPIVLw9pWzeFAh+DB9eKeCdzuv9jIFFPZz\nFNUsGtdSBatXr0ZjYyNmzJiBm266CStWrEBFRcWF9y3Lwr333ovHHnsMN954I86cOeP6pV79dwpK\nVLzpzzywFLyfgG2mEYaCHxoig9eudqJo0ehQ8AMDRJXyLBqdCv7oUWDGDP77fhU86xiyaZL260Tk\nwbsFWAF1BR8WwdsVvMyTPItv7P1L50m4YdQocu55bQpVwZ//tHTekiVLMGPGDCxbtgzbtm1L2Wfn\nzp2YO3cubrzxRgBIIX8e3ngDWLzYa5O9Z9I4Ky/G3aKhg85NwfshePsjPxDNLBpdaZL0KcBpEwTh\nwR85EgzBuy0MLWvRyCh4twAroK7gw7JoVD14pzgEUvtXdqxHyqLZsWMHqqurL7yura3F1q1bU/Z5\n+eWXkUgkcN111+GWW27Byy+/LPzC8+eBw4fVJzjZ4dVqsC/2AcS/mqSsgrdbNKo3RmdwKYoWjZ0Y\nLMu7RUOPwVPw+fnsZfC8wE3BUwJWjTXpsmhkPPi4K3hKpjKihWfR2BW831IFQVwvvqtJ9vb24u23\n38bmzZvR3d2Nz33uc3jvvfdQwvBP1q5di+PHSYB1y5Z6Kb+eBR1eMhB/BS+bRaNDwVOoBlnDnuhE\nLxIavFSxVWjfsIKs1GumF7WqPejE0aPi0th5eeSGYk9tlIGdiER58G4WTbYreKdF4zamZSwaHaUK\nysqApqYmNDU1uR9MAkKCX7hwIdasWXPh9Z49e7B8+fKUfa6++mr09fVh0qcpMQsWLEBzczNuuumm\ntOOtXbsWv/wl+YEeuR2AeNCtWkX+VVWlv+cMsmYDwZeWqnnwZ8+qfYfzphj1apJOVenFouEpeCBJ\nWDoIXqTggWRfqxK8TgUv8uD9EPzgIOEBe9ncTAZZdVg0foOs9Bj19anid926de4H5kBo0ZR9uoxL\nc3Mzjhw5gk2bNqGuri5ln8WLF+O1115Dd3c32trasGvXLlxzzTXcYx4/Dlx8sef2AhAr0ddeAw4d\nYr/nh6yiiDDy4ONi0VBicBK8ioJXIXg/GB4GTp4Epk8X7+dlfIpmHXtJk5TJohGB11/nzhG1ak8T\nzVSaJIvgh4dTZzTrsmgil0Wzfv16NDQ0YGBgAKtWrUJFRQUaGxsBAA0NDRg/fjzuueceLFiwABMm\nTMCjjz6KUYJw8vHjwMyZ/hotIqqODv4jULYp+DBmsjoHtmyQ1bLU7QWvsBMDi+BVPXhekBXQIwpO\nnSIzWN3Urw6Ct5OJrEVjP4bIg5dV8CxCc9ozQLQU/PbtwMqVwJ495LVOiyZSBL906VLs27cvZVtD\nQ0PK6/vvvx/333+/1BeeOOHPngHEqqKjg9+BLAUfZ4JXVfBu085ZcA5sWdIZHEzOTgwauhQ87Rsn\nydjJQIeCd8ugofAy09otiyY/P3ls2TRJvwqeZQuyCD5KE506OoC9e8nNePJktkVjPz9RzYMPfSbr\n8ePAtGn+juFVwbOCrHG3aFQ9+LAsmrDsGSA1yKrDg2cpeC/zAHiQ8d+9fpeKBy+bJunXg2d9T9QU\nvLONtB2vvkr+xjWLJiME79eD5w26gQFy4ngdmG0WTRhZNF5vimEFWIHUIKuTdFQtGhbJ6PbggyZ4\nUc1yL0HWILJoeAo+E2mSrL6g7XjlFfJXl0VTXEz2ZdXcib2C7+sjwZWJE/0dh+cLUuUuq+CzxaJR\nyYMPS8GHlSIJ6LVoxo4VE3y2KHjZmax0f1Y7/ARZOzqAMWNSt2UyTZJF8PPnJxU8L4tGtVQBXXib\nJUJjX2yMFliiJTq9gkfwtNNUFHycLZowZ7JSRNWi0ZUmOW4cv9gYoE/Bi+rQUHgRIKLCcLIWjfOc\n81S8HwXv/A4gXAVvP6esfu7tBa68knDJkSNyFo3seOcRfOwV/IkT/u0ZgO9jqSr4bLFoZDx4rwre\n61NP2BaNSMGrWDTjxvGLjQHZo+Blg6wA3xL1o+BZBB+liU69vaR9119PVLybRaOivrOW4HX47wB5\ntGtvT99OiV2URZOr1SR1z2R1m0KfCYvGWaYAUM+DZyl4nR68ZYVL8Lw8eNmZrEB4Cj5KaZL0t91w\nQ5LgdQRZgSwneL8ZNACZIPFpHbQUuCl4Zy2auFs0YVSTdA7sESOIj+hWjyVMBZ+XRy6Mvr7gPXi/\nBH/mDDkGb6EPO7wQvChN0j4vQTbICvAt0SAsmjAVvAzBX389CbTqCrICfAci9lk0OhU8j+ArKnLH\nopH14OlgLSlRXyyFdSHKEE+YHjyQ9G+dpFNQkLryDgCsXw88/nj6MUQWja4gq6x69/pdutIknRYN\ni+CDsGhYLTOtAAAgAElEQVTCVPCiPHi6rm9VFRE0u3frKVUA8OvRZIWC10HwZWV8i2bKFPkga7aU\nKpBV8Pn55J/qCkdeCD5MiwZI+rdO0kkk0knm4EEyFp0QBVm9rhDlRBgEryNN0mnRsJ78/Cp452ej\nqOATCWLTnDgRvEUT+ywanQTPU/CTJ0dbwT//fDL1yi9U8+ABdZvGLT2MhzAtGiCp/liq0kkyLS3s\nCyyMNEnZDBqv36U7TRLITgUvE2SlN6AbbiB/ne21f85k0UBfFo0oyKqi4DNB8H/+M/Doo/6PQ22H\nwkL5PHhAneDjZNGwFDyQfgNsbWWPEbuCt9tYOj34uFg09nMepgfvleCHhkh8QxZuQVb7YuLXX0/+\n6rRospLgOzuBCRP8H0eXgs+ERdPbCzQ1kYXH/cC+0lLYCl4mOJ0Ji0ak4O3EISL4MWNIn9pnGsbV\ng3fLg5cNsoaZRePVovnNb8gqcbKCTWaiE/1t06cDK1akT9A0efAOTJump/hUcTG5YzsHTkcHcNFF\n/KnAUbBoentJ4Oapp/wdx66yZPPggfAUfNgWDVV/fiwau+XlXAJQl4KXLTQGBFNszGuapO48eJq6\na4cfi+bkSVIm/Kc/ldtfZqKT/eb1/PNEWNrhZSYrkMVZNDpSJAFyk2AFWun0Z9Ydki6m7JyVGTbB\n9/UBf/d3wM9/7s9vtBOvbB48oF5RMi4WjT3I6lSVdpIZHATa2vgefElJerBP50SnsC0aXh48XS2K\nlVGVKQXvJ8j68cfALbcQ+1PmGM4gq8iD54GeH8tSV/BZmUWjw3+nYNk0HR3k7si6Q1IVa19gIBN5\n8L29wOWXkzoXL7zg/Tj2C8RNVQYRZI2aRWNPkxR58GfPkgtSRcHr8uDb20m/OIts8cDq554e9tOp\n/X2ZLJpEgpA8S+A4zznPg49SkLWlBfjCF4CFC4GNG933V7FoeKD9OzhI5ofkSbJp1mbR6CR4VqCV\nEjzrDtnRQbbbkZ9PrB7VhY39gCrMhgbg03VTPMF+IbtdGEEEWaOYRcMLstotrNZW0gc8gqczg50K\nXgfBU/Uua1Oy+nnVKmIX8CAbZOUd37IyW4vGj4KfOBH47neBH/yAnYRhh+xMVhFo/6oSc9Z68GEq\neCfBnztHUuDsSCTC9+Gpwrz1VuD998miAl4gq+CHh8nAyfYsGtk0ydZWkqboZtHwPHg/Fo2KPcP7\nrtZW4uPzoELwvOyRwsJUNeonD54uMOJ86tCt4CnBz54NLFtGJrOJ4LTd/BC8KjGzCH5oiFyrfgsx\nOhFbgndT8M4OPHeOpMA5EbZNQwdOQQFw773eg62yQVZ6Q6GqMVuzaGTTJFtagMpKdYtGx0Snlha1\nUtksgu/oIAFFFgYHyT/ezYhF8M7js6bk+8mDB9h9plvBt7SQBAsAWLuWELzoPMks+KFC8CpihsVP\n9HrRvQJabAleVcG3taUreCB8BW+/KJYvJ2s/eoFskNU5ULM1i0Y2TbK1lYzDwcH0805/KyvIqkPB\ns/pSBNZ3dXYCH30kPj4lCWdhOBkFzyqL6ycPHkgneJYNBHhX8JaVVPAAWfN58mRg/37+Z3R68Kpi\nhsVPQdgzQEyzaAAxwfMUPIvgw86kcfrhXh9JnRYN7zjOC0mF4C2Lnc4WRYvGniYpyqJpbSVKb9So\nVNIaHk5+Nqggqw6C7+hwJ3iKvDzyyE/tEfuarPT4zrHPemLTreAHBpJBXjsKC0lb3QrZOdHZSX6n\nfRLj7NnAu+/yP6PDg6c3UB0WTVDXS6gEz7JIvMJp0VhWMpAq68ED4Vs0dgLyM3PPrrTy88nvZ2VX\nOGt+8NQYC7296X4sEO0gKyuLxk4wLS1ksp3zIqOfy8uLtoIXWTRuAXEZi4Z1DD8ePJBO8Lx+oJP2\nVK+Jjz9O2jMUc+YA773H/4zznPKKjYkQhEWjG6ESvE5/yang+/qShaVUPfhMBFkBf0El+0XCKqhl\n/z6vCp7lxwLRTJMUWTT2fm5tZRO80/IKYqKTLoJvaWGPWbdVh2QsGhUFr5vgAe8E74xtzJ7tTvCZ\nsmh4Cj72BK8TTgVP7RlAzYMPu1yBfeD4mZrtJF+eD+/HounqSk8tBeSeeqJUi4Zn0YgIPoiJTiy7\nSwTnd9Gn1IoKQmpOuMVLZNIkWTd1P3nwgBrBewm02gOsFHPmqFk0XoOsAwPqY72kJH22vSF4B5wK\n3knwsh58mAqeznijJ9KvRWO/SHg+vJ8ga2cnm+DjGGR1s2js6td5XqLiwff0kD6dMYNt06gSPM+i\nYSl4nRaN6EanS8FfeikpPsbLhxcpeDrD1xkjcMKrgqcLb9tvmobgHRARPGuiUxQI3pljrMuioccK\nQsHbA1cUUbRoZNMkeRaNXblGNcja2UnG+NSp7ECr26pD9hWdAH8WzeAgCUy7kSAQvIJnEXxeHlBb\ny7dpREFWGidzs5S95sED6RxlCN4BVYuG58GHadE4MzzowPcyk9aptHgK3g/B+1HwmZzoxMqi6e0l\npHT+PCkVILJonCSja6KTKsE7FTYd41Om6FHwLIuGdQxq0djHqSwJAsF78CyLBuAHWmmpbXpzcvaD\n7JOJ1yArkD7+siKLRifcFLzToolCHrwzMm9fS1QVsh68H4uG58FHMYtGpprk2bNAeTlJqRNZNEFN\ndGKtYiSC82ZiJ3iWgvdi0cgoeNZKYLIkCGRGwQP8QCs9n875AhSqBO/ladWp4LMii0YnvCj4KBC8\nc+B4DbTKevCyy6+x0NkZH4tGJk2S2jOAu0UTlTRJ+9ikY5xn0bD8czt5eU2TBNLHjWyAFQhHwbMI\nnhdoddohTg7wouBVx3p5eapANRaNAyoK3rKiY9E4LwqvgVYVD153kDWKWTQyaZI0gwZwt2joOXGW\ngs2kB+/VohHlwcsoeCDdh4+agmdZNHSyk9MCtT+RAXoIXnWsl5cDn3yS2iZD8DaMGUMG/PAweS1S\n8HTAsAZVFBS8G8EPDKSXNFDJoslUkDVqaZI0gwaQz4MfHCT2BA2MZ3KiE73hihR8EGmSQDrBR0nB\n8yyaSZMIube0pG63x1QA/x68l6dVQ/AuGDGCDBI66EQKnmfPAOGWKmAFAGUsmi1bgLvvTt3mfBwP\nIovGb5pk2BZNdzf7e2UsGmeaJD0nTiKLioL3kkXjNU0SSM+F96vgeZ91EvwHHwAvvsg/dl9fcrF0\nJxIJtk3DUvBePHh7qQKj4AOA3aYRKXgRwYdZqoDlD8tYNMeOkUdy+6Om82IOOw8+ikHW9vbU4BmF\nneB5Fg0vTdJ54WVSwdMxPnYsaZ/zPIoUPC1l4ceisX9fWBbN738P/Oxn/GPTpzJeNg8r0OpU8Jny\n4J0Eb7JoHLAHWp0K3p7WxfPfgXhYNMeOkd9jDypHPQ8+Ex78J5+wbQPax7IWjZ1knBdvFBR8IsFW\n8SKCp6sO2YlQNk0SyJxFc/SoeLy6lWBmFR2TCbLK/Db6OS8EP3Ys4SVem3Qh1gTPU/AjRpATRAcG\nL0USCN+iYQUA3Sya48fJX3tgzWsWDa3YJ1r2jcJPkDUTFk1HB/vClLVoZBR8fj6J+6hWPHR+hwx4\nBA+wA62iWjSsJypePfgoBVmPHBFfHzz/nYKVC++0aLx68Hl5ZDx0d/u3aEyaJAP2hbftgx9ItWmi\nZNE4B46sRZOXJyZ42Tz4REJexcctyAqICd4+IYZl0bDy4J2P84mEd5tG10xWgB1oFSl4HsHLBlmd\nHnxUFDwvg4bi8svJqmk0GYO2XYdFA5DjdHWZIGsgGDOGreCB1AvYjeCjbtEcP06UiJPgvcxkBeQJ\nPm4zWQGxRSOr4J0Wjai2jSyGhlJXW5IBS8HT8yFr0VABI0vwvCCrTg9eVIvGqeCPHhUreDeLpryc\nXPv2ZQ51BVkBco46O2NM8M3NzaipqcGsWbOwYcMG7n47duxAfn4+/uu//ktrA0XgWTRAuoLnefCZ\nzoOXsWiOHQMWL04leJVqks7BGgbBh23RFBQkrTkndFo0gLcxQ0lNpWS2qkXDy6IZGGATPOt3qFg0\nQSv49nZy7bpZNCIFD6T78G4KnpXtxgMl+Nhm0axevRqNjY3YvHkznnzySZw5cyZtn6GhIXzrW9/C\n8uXLYXkprOIRvCArkHoBizz4TCt4N4vm/Hmi/mbP9ubBs9SSDosmalk0QHI1JieKishv+eQTUocG\n8B5kpcdTVfCq9gyQvuSefYwHZdGIgqz2/lIhQVWCp31/9Kj7WHXz4AGyBu+xY8nXTgVPF7qmcZVM\nWTShZ9Gc/1QeL1myBDNmzMCyZcuwbdu2tP02bNiAO+64AxOoPAoJKgo+CgTvJQ/++HFg+nRyQVOC\np+21DwjZLBrAv4KP4kxWgPxOnoI/dYqMAXoxe/XgAW8K3gvB06wXSjxOBa9K8M7Kjyppks4nhiCD\nrLTvjx4Fqqv9WTQAUfj2yU68c0r7Imcsmh07dqC6uvrC69raWmzdujVln5MnT+K3v/0t7r//fgBA\nQvey4AKIgqxODz4KFo2XPPjjx8ki0VOnAidOkG2sC0Q2Dx5QU/BxqQcPkN/J8+AHBlIf5UtLST/S\n4JvIotHhwasWGqOwE49MFo2KgldJk6ysBD78MPk6jCCrDMHLWDROgmeRqV20eCF41bE+cmQyhx4I\nztKUqOYsxoMPPojvf//7SCQSsCxLaNGsXbv2wv/r6+tRX1/v67tpkNWy0snIruDdLBqvNdlV4SXI\neuxYuoJnBcKCUvBxKTYG8AmebrM/YNK1V7u7ybhRsWjCUvD27yopSX2iogrespK+fpBpkk6CDyNN\n8uhRoKYG+NWvUn+nHbIKvrU1+Zp107Y/zfT2klWzZFBQ4M2iSSSSKv6ii1LHWVNTE5qamtQOyIGQ\n4BcuXIg1a9ZceL1nzx4sX748ZZ8333wTd955JwDgzJkzePHFF1FQUIBbb7017Xh2gtcBatF0dZET\nZn8Eta/qFCWLxtmO4mLxIthUwU+cSMrdDgywg2miLBrnhShbUTJOWTSA2KIBUgkeSD7lOQm+qIi0\nf3g4sx48kNrXdgU/ciRph/3plKfgOzvTZ7ECahYNXUWK3ijCKFVw5AjwpS+RmzFLMAwNkWvCzRme\nMMHdonESfNAKHuATvFP8rlu3Tv3gn0Jo0ZSVlQEgmTRHjhzBpk2bUFdXl7LPhx9+iMOHD+Pw4cO4\n4447sHHjRia5BwEaZHXaM0BqvWW3WjRRzoOnCj4/nwyEU6fYF7IoD96Lgqd9wlImcbNo6G9wPsrb\nbTw7sSUSSaKJCsFbVmoePJAeaFVNk3RaNPSGxurDggLy1ECDlUEFWZ0K/pJL+BUmz54lIs9tVSmW\nReP8jX48eC8KHkj14TOWRbN+/Xo0NDTgxhtvxAMPPICKigo0NjaisbFRf2sUQRU8i+CpRUNLBUdF\nwataNFTBA8C0aURF8Tx4nRYNT70D8lk0YVs0JSXsCzORIP3DU/AAe+IYLT8cBYump4eMVTuZ2QOt\nzc3kr3Ocq1g0tI28MJrdpgnKonF68DNm8MerjD0DyAVZ/Xjwugg+CEHk6sEvXboU+/btS9nW0NDA\n3PenP/2pnlZJggZZeQr++PFkhJsXEAqzVAEryOqWRUMVPJD04SdNYit4WYvGL8FHNYuGp+AB7wSv\nM8jqh+BZY5wGWtvagLvuAp55Jv1ci/LgneLGrY0zZwKHDgGf+1xwQVaq1nt6CPnRsc66RmRSJAFC\npN3dyTbzgqyZsmgAM5OVCRpkFSl4kXoHol2qYHiYXMDTppHXlOBZPimPdLxaNLwceCC6Fg3PgwfI\ndlmLhh6rpyc6QVanPQMkx8PKlcAddwCf/zz/8zIEz/PfKcJU8MeOkXFPg+EsguetxepEIkFu7jTQ\nyro5OQle9ublR8HbC46ZWjQMiCwaevHKELxIwf/7vwMHDmhprvJM1pYWchOjFwO9oHkevPNGMThI\nbhLOC1uHRSMiOMuKlgdP3/Oq4KPgwdvLFFBMmQJs3EisjH/+Z/HnZWay8urQUDgJPqg0yZ6epP8O\n8MerrIIHUm0a3k3bq4K3/1VBGAred5pkJlFSQk5KW5tYwfNy4AF3i+Y//oP4npdd5r+9qgre7r8D\nhODffVfeg6ff5/RUS0vJxSGCHwVPS9PmhSwfRAQ/dmzySYiCEjzrRmhfISoKCn5wMH2MT5tGBM6r\nr4otSFkFLzrnACH4Q4fI/70GWS2L/N9tohP13+k2PxYNkE7wbgpeleCjatHEmuATCaLiT55kE3xn\npzgHHnC3aNrbU+uw+4FqkNXuvwPqCp5HKkEHWTOh3gGxRbNlSzp5UYJnBRej5sF3daWP8c9/nizl\n+JnPuH9ehuDdLI+ZM4mCtyzvFk1fH/le3s2f9rsMwbe0kDbJwE7wuoOs9r8qKC9PlgI3HjwHZWVk\nhicvTdKvRdPRoY/gVYOsLAWvkkXDyzfWFWTlzWnLRAYNwM+iAdjKlBI8y3umSlJ3sTFViIKshYVA\nba3c52XSJE+fJkFNHsaOJcTc1uY9yOp2o6MEf/iwu0XT1iZ+OrcjVxV87Al+zBixgpexaNwUPK13\n4xeqFg1PwbMIiaXgeaTiN8jqrJHiRCYyaADgm98E7r1Xfn+ngreD3ngz7cHTmykryKryeZk0SdnC\nXYcOeVfwbv2Ql0f6++BBdwWv0icyCp4SvIr9RPs0qmmSsSd4NwUvY9GEpeB5QVZZD37UKNLeU6fk\nFXwQFg0gvjFmyqKZOtV9VqMdbgQvyoOPQpqkyudlLBo3BQ8kbRqvQVaZfigpIYkNlOB549VtjNoR\nxSDr2LFJgjdZNBzIKHivBG9Zej14Xi0ankXjVPAAIbH335crVeDHonELuLkRfCYsGlXYLRpnf9rT\nJFkevJcgq59iY6wsGpXPy1g0sgr+ww/Va6ZTS0+mH2j5jqlTyWuegncbo3bY0yR5Fo0fD96rRUPT\nJI1Fw0FZGRmYLH9yeJi8JyJ4EVH19ZHsBV0WDeuiUMmiAUjmxAcfyJUq8GPR+FHwmbJoVGFX8DzL\nK9MWTdAK3n4OZRQ8JXgVEszLS36XrIKfNi3ZXpFF40XB665FY/+rAuPBS+DTcjlpgz+RINuOHRN7\n8CIFT5V70EFWFsH39wNnzgCTJ6dunzqVeKCsmiM03Y8iaIuG12+ZsmhUIbJoojbRKQyLRkbB09ms\nKkFWIHlTlOmH4uKkPQMEY9HoDrIagg8IY8aQv6zBP2oUIXivFg0tVpYJi+bkSULudIEKiqlTyWBw\nKk5ab8W59iVroDqXX2PB7fFXlF4aN4tG5MFHRcF7DbLq9uC9KHjAH8HrsmhaWpJ5+DwPfnhYbfz6\nsWiKi5Mpp4bgOeApeLqttdW7RdPeTgaQTouGpRyGh4n6toPlvwOpvqQTTh+edzHZp0jzEMcgqypE\nHnzUio0FoeDtv6Ovj/SF6FoBiGV4+nSyRLcsVAi+pMSd4IeG1FJPR44kYqmzU6zg6TUqu26RHwVv\nrwlvsmg4ECl4us2Pgp82TY+CHxoi/5wn0V6a1g6W/w6ICd7pw/MCWqNHk/1EVSxz3YN3C7JGoVSB\nyufdluyjk5zcZh/n55NxOTAQrEVDc+ABtkVDU4VVZktTm0Y00Un1ycSPggeSBG+yaDgQKXh6QXgl\n+PZ2fQRPA6wsZcAKtOpQ8DyFk0iQxafPnuW3N5eyaFQtmjgpeLc8eDr2T5+Wn/ZfWUmI3q0Oux2U\n4GVU9w03AIsXJ1+zFLyKPUNBCV5UTVIl/RPwp+CB5NO0sWg4cFPwo0eLB6LoYu3oSOZVqyo2J0QD\nh6XgP/6Y7YeqKnjexVRRQYK4PORSkNUtTTIKHrxfi4a1opP9HPLGGwuVlWokCKgp+IcfBmbPTr5m\nEbxKgJXCTvC8BT+8KPhEIj1WJgu7RWMInoGyMtLBvKnobp6im4IfPTpZltgPRAOHFWhtb08+ndhx\n0UXkhsUq68ry4Hnf6UbwKkHW7m7gyiuTM1vjYtGMHJkbE51E9eDpOVRR8DNnquf0qxC8EyyLxg/B\ni9IkvRB8QYG8Z+9EeXnySdrrTUKErCD4UaPYHTx6tHutCpES7egg5E6XBvQDUVoZy6Jpb08+ndiR\nl0c8UNbF7lTwosdhHQqeksM77wC7dpH8fCA+Cp6ukHTunLgWja6JTlHNorGsaCl4J4KwaHgTnVQJ\nvqDAn/IuLydtCsrSjD3BV1TwV0CXVfAii2b06OTKUX7gpuBlCR4A/vIXoKoqfbtsFg2gl+DffJP8\n3b2b/I2LBw+Q39jaGu1aNDTDxUuQNT+f2DOsp6q8PPJvaEhNwVdViRcGYUE3wXvpD5oqqVvB6yD4\noARR7Al+6lTgrbfY740e7U7wI0aQNEVW4SxKsjosGtHUbp5FwyP4KVP4x5HJgwf8WzR2gn/rLdIm\nSvBxsWgAQhItLcEHWf1Uk2xvT1+PVRaJBDlGVxf7nNDfoqLg584F/vQntXYEYdHoVvA0TdKLReMV\n5eVEYBgFL0B5OXu7jEVDLwCWTUMVvA6LRhRkVbFoRNCl4GndENGgcyr4r341VcHHieBbW/lpkiy1\np6rg6djyQtCFhcSj9WLP2I/BI3hKbCoKPpEAZs1Sa4Od4FX9e55F48WDb20VT3QKW8GPHRusRRPr\nBT/ccNddySXZRKCD3Hli7UHWoC0aFQXPg2wePEAIfts29ntUvYsCR/YL4v33ga98BbjtNvJe3Cya\nkyeDVfBe7Rn6XWEQvIqC9wK/Cl5XFs2pU0S8OAOafvLg/Vo0H39sCN4TRP68HbxMGhpkpWu/+oEo\nyKrqwfMgmwcPiBW8zMVDL4jdu8lyhrW1ZKC2t8fPomF58G5BVhUF75fgWUtSqqCgwN2iUVHwXuDX\ng9dl0Zw4wZ6p6jeLxitMkDUE8BRZWAreadEMDZEBrTqAdeXByxA87bO33iIpkiNGAJdfDrz3Xvws\nGtYaoaIgaxwVfHc3X8F3dJDxx7M6dSCILBpVBV9RQa5jFpl6JfiSEu/nFjAEHwrcFLwMwT//fNKD\nZkHFoqEEq7pota48eJkUNEpyb74JXHUV2TZnDlkUPG4WDRBsuWC/BH/uXLAWzYkTRL17zeWWgR+C\nLyoiY8qeCOHFoikoIDE51pO0Vw9+7lzgN79Ra4cd5eWkT0wWTYDgETxV8G5pkm1tQEMD8H/+D38f\nlTx4+r2q0JUH70XBA2Sw794dP4sGUC8XHCbBDw97S5G0H0Nk0Rw/Hqz/Dvgj+EQiXcV7yYMHiE2j\nU8EnEqmF0VRBn5qMgg8QvEduu4IXefDr1wN//dfAf/93ctUYJ1Ty4L3470Cqgh8eJmVdaWkDJ0pL\nSbCJVWdbVsF3dQH79gHz5pFtlODjZtEAbIumo4NYT84nKdWJTn4JHghWwR8/Hqz/DqjVomHBSfBe\n5wWICN5LkNUvDMGHAJaCp8v1uXnwn3wC/PjHwPe/T7JIfv5z9n4qefBeCd6u4N99lzyOTpvG3jeR\n4Kt42SDrW2+Raev0gqUWTVB1NYKAiOB5VlPYFg0QPMFHWcED6bnwfgie9STttdiYXxQVkf4wBB8g\nWATf10fUW2Gh2KJ54gngC18g07f/9m+Bf/1XcnNwQiUPXoeCf/VV4Prrxfv7IfjCQuCNN5L2DD1e\naSlZ8SduCt7pwdNqiawLLz8/Wf5ZBlEgeFapaiB8Be+1L3RZNBMmsM+pVw9eB8rLDcEHCpZFY/fB\neRZNezuwYQPwne+Q19dcQx7n//KX9H3DsGjsCv6VV0jZVRF4BC9r0bS0JAOsFHPnksBr3AieRTo8\nZUVXz5K1aaJA8EB8PXhAr0XjpuANwWcZWAqe+u8A36J58kngppuAz3yGvE4kgPvuA55+On1ftzx4\nHRYNvYgGB4HmZqC+Xry/XwUPpCp4gNg0H3wQf4sGIOeFd85UUiV1ELyfICsldrcsmiARJYsmSh48\nQAjeZNEECFapAruCZ1k0lgU89hjwT/+Uuv3uu4Hf/ja5mC6FSh68HwXf20sqO06b5n7RigheRsEn\nEsAVV6RunzuX/I2Tgi8oYJdqLS7m36hUfHg/BE/7MSgFX1BAnk7DVPBeCFRnFo1R8DkGVkVJu4If\nPZqQrt1bP3uW+Jo1NamfmzCBqPrnnkvdHkaQlV5Er7zi7r8DYotGJsh62WXp+8WR4HmVEUXBr7AV\nvA6CZ9XCoe+FoeBp2qkOgveq4JcsAf7hH9K3ey02pgOG4AMGz6KhF1VREfHW7Sr7xAl+CuKKFcAf\n/pC6LYwgK1Xwr77q7r8D/iyaSZPY31FdnQxOxwGjRvHJV5eC96MKg/bg6bYwFPz58/xlK92g06L5\n4hfTt2cyyDp2rCH4QMELstpJ1unDnzzJT0GcNi09Hz6sPPiODmDLFmDpUvf9/QRZb72VxCBYbaiu\njpeC5xG8m4IPw6IJg+CLi/0dXwZFRcS29NoPdgU/NMQuL+EHmfbgDcEHCDcFD6T78CIFP358OnGG\nEWQtLga2biULMriVSQb8KXgRvvY1Yt/EATU1/LkLoiBrNmXRTJoUbJkCQC/Bd3cTRa+zzZn04CdP\nZi/PqQOuBN/c3IyamhrMmjULGzZsSHv/ueeew7x58zBv3jx85StfwcGDBwNpaJBgEbyzXIAzVfLE\nCb6CHz8+uc4iRRhB1qIiQs4y9gwQHMGvWZMefI0qRowArr2W/V4Ugqw6smjcFHzQ/juQtGi89oPd\novE7PlnIJMF//evA2rXBHNuV4FevXo3GxkZs3rwZTz75JM44GKGyshLNzc145513cNNNN+G73/1u\nMC0NECyLxh5kBdgWDU/Bjx5NLn77Md2CrLo8eEAuwAqwnzQA7xkK2QaRRVNcLLfWAOCP4EeMIEo1\nSIsmaP8d0KvggxifmfTg8/MzlCZ5/lPJumTJEsyYMQPLli3DNscqEVdffTXKPn2+uPnmm/Haa68F\n09IAIaPgWRaNqAzAuHGpKl4UZNWZRTNiBHDddXL7U4J3zrwNQiHFESIFf9VV/AVTnPBD8IkE8Pd/\n7+YOPjYAAA6kSURBVL8evP2v872wFLwf39y+6Ee2KfggIST4HTt2oLq6+sLr2tpabN26lbv/U089\nhVtuuUVf60KC20QnIN2iESl4IN2mCcOiueQS4NFH5T9LFWpHR+p2o+AJSkr4N+UbbiDpqDLwQ/AA\nKYfBytOXhVuaZFgED/hT8EFbNJkKsgYJbSs6bd68Gc8++yy2bNnC3WetzWiqr69HvdtUy5DgVqoA\nSLdoRAoeSCf4MIKso0cnyybIgvrw9u8zCp6guJgfSF2yhCxTKDqvFH4J3i8KCwm5s4KS990XDqHp\nIPggLZpMFRtjoampCU1NTVqOJST4hQsXYs2aNRde79mzB8uXL0/bb/fu3fj617+Ol156CeWCZWHW\nBhVJ8AkZBW+3aDo6yP6iFXBUFLzdg7dXsQwDlOArK5PbDMETsJZSpCgrIxk4W7e6p6RGgeB5Hq9z\nol5Q8Evw2RxkdcIpftetW+f5WEKLhnrrzc3NOHLkCDZt2oS6urqUfY4dO4bbb78dzz33HKqqqjw3\nJJOQzaKhBE9z4EVpWiwF70bwtD57UVF4eeTOTJr+flJLPi4TlYKEWxlXWZsmygQfFijBeyVPu4IP\nguBpMLurK/MErxOuWTTr169HQ0MDbrzxRjzwwAOoqKhAY2MjGhsbAQCPPvoo2tra8PWvfx3z58/H\nokWLAm+0bshm0VAP3s1/B9gKnvfoN2IEeYTu7/duz3iFk+BpmYKg86LjAFGQFTAEr4KoWzRAUuhl\n2qLRCVcPfunSpdi3b1/KtoaGhgv/f/rpp/E0q3xijFBQkL6ykUjBu/nvAMmisROn26MfDbRmmuC9\nrFafrZg1S2zDXXMNKezmRjiG4KNv0QCkj4aH/QW0owZtQdY4Q9WDl1XwBw4kX7sF46hNk2mC97Ja\nfbbizjvF748cScol/+UvpMAcD4bgk0FeHQo+SILPtidXU6oA6RYNK9Bpt2hkFLzdorEs9+g8zaTJ\nNMGbAKsaZGwaryVydaGgIPMETxdJibJFU1iYXf47YAgeQLqCty/XR+EMsqp48IODSZ+dB2rROJ8c\nggZLwRuLRh433ECqd4rgdaFpXYiCggf8EXxYFo0h+CyEU8Gz0hTtFo2qgpfJrY2KRWMUvBrq6oB9\n+9IXeKGgT2+G4PUpeEPw8jAED2DKFODYseRrZyVJwF8WjUxubSYtGnu2jwmyqqGoCFi8mCyRyEJf\nHyGOvAxeadlG8EFm0RiCz0LMn0+yIWhNFpZNQi2a/n6grc19eve4ccC5c+SYMrMdo5JFY4Ks6rj+\neoA38TDTAVYgOwg+DIvGePBZikmTkqvLA2yLpqCA7HPoECF3t1SqwkIymM+fj7aCHz+e3LCGh0lb\nf/KT5LJ7BnKYPRvgVcmOAsGXlwdXb1wFfhU8nQxoLBp5GIL/FFTFA/xA55gxwN697v47BbVpZAk+\nEwq+oIA87p44AXz+88DChcCDD4b3/dmAykpy42chCgR/5ZXpS0hmAn4IPi8vuYqWsWjkYQj+U9gJ\nnlcLhhK8m/9OQQk+yhYNQGya5cuByy8HNmzIvlzgoHHppcCRI+QpyIkoEHwiEY3SE0VF/giUVpQM\nUsFn0yxWwBD8BURBwWfCogFIkLmujtgzmQwGxhUjRxIL5NSp9PeiQPBRwQMP+FvpiwZag4oTGQWf\nxZBR8GVlJCUu2xT8734H/Nu/GXL3g8pK4MMP07cbgk/irruACRO8f54u+hFUppcJsmYxLr2UBBnP\nnhUr+P37s8uDB0gQzpC7PxiCDx4lJYTc/awMJYJR8FmMvDzy+Lhrl9iD7+tTV/BRt2gM/GPmTEPw\nQaOkhKT0jhwZTJzIEHyWg9o0PAVPU81UFXzULRoD/+Bl0hiC14fSUqClJbiJeIbgsxyU4EUKHiBB\nSRnExaIx8A+RRZNtpJEpUAUf1EQ848FnOebPB956S+zBV1TIDwK7gpch+PPnSapdtqVq5QKMBx88\nSkqA1tbgCD4bFbypB29DTQ2pSVNczM+ikfXfgVQFL2PRtLSQm4jJQ48fJk8mN2jnJJxMFxrLJhiL\nRh1GwdtQUADU1gLvvstW8OXlwMUXyx9P1aL5+GNjz8QVeXnAJZcAhw+nbjcKXh+Ctmiqqsg5zCYY\nBe/A/PnAm2+yFfytt5Jl2mShEmQtLk4qeIN4YuZMEmidPTu5zRC8PlCL5qKLgjn+//pfwRw3kzAK\n3oH588lfFsGXlMhn0NBj9PeTR3c3BW+3aAziCZYPbwheH4K2aLIRhuAdEBG8KhIJUjb4o4/kLJqu\nLj3fa5AZGIIPFkFbNNkIQ/AOzJ0LLFigL5Nl/HiyQIhMkBUwCj7OMAQfLEpKSGlrQ/DyMATvwMiR\nwI4d+o43fry8ggcMwccZhuCDRWkpqQdvLBp5GIIPGJTgZYKsgCH4OINVNtgQvD7QfjQKXh6G4APG\n+PFyaZLGook/Ro4kqbQffURed3cDO3eS9DsD/ygtJX8NwcvDEHzAGD+e/DUWTW7AbtNs3AhcfTVZ\nSMXAP6gIMhaNPEwefMCgBG8smtwAJfgrrwR++ENg06ZMtyh7YCwadRgFHzBkFbyxaLIDlOB/9COg\nvh6YMyfTLcoeUIvGKHh5GAUfMGQVfGEhyZs3BB9vVFYCL7wAbN0KNDdnujXZBaPg1WEUfMCQVfCJ\nBNnHEHy8UVkJ/P73wE03AdXVmW5NdsEQvDoMwQcMWYKn+xiCjzeqqkjRukceyXRLsg/GolGHsWgC\nhqxFA5BKlkEVUjIIB5MnA8ePAxMnZrol2Qej4NWRsCzLCuWLEgmE9FWRwsAA8ddPnzYXvYGBH5w/\nT+YZdHfn1uQxP9xpLJqAUVAALF5siogZGPhFaSkp3pdti3IECaPgDQwMYgPnilm5AD/caQjewMDA\nIMII1KJpbm5GTU0NZs2ahQ0bNjD3+fa3v43KykpcddVV2L9/v6eG5BKampoy3YTIwPRFEqYvkjB9\noQeuBL969Wo0NjZi8+bNePLJJ3HmzJmU97dv347XX38dO3fuxEMPPYSHHnoosMZmC8zgTcL0RRKm\nL5IwfaEHQoI/f/48AGDJkiWYMWMGli1bhm3btqXss23bNtxxxx0YN24cVqxYgX379gXXWgMDAwMD\naQgJfseOHai2Tcerra3F1q1bU/bZvn07amtrL7yeMGECDh06pLmZBgYGBgaq8D3RybKstABAIpFg\n7svbnotYt25dppsQGZi+SML0RRKmL/xDSPALFy7EmjVrLrzes2cPli9fnrJPXV0d9u7di5tuugkA\n0NraisrKyrRjmQwaAwMDg3AhtGjKysoAkEyaI0eOYNOmTairq0vZp66uDi+88ALOnj2L559/HjU1\nNcG11sDAwMBAGq4Wzfr169HQ0ICBgQGsWrUKFRUVaGxsBAA0NDRg0aJFuPbaa7FgwQKMGzcOzz77\nbOCNNjAwMDCQgBUwXnvtNau6utqqqqqynnjiiaC/LlI4duyYVV9fb9XW1lpLly61nnvuOcuyLKu9\nvd269dZbrYsvvti67bbbrI6Ojgy3NDwMDg5aV1xxhfWFL3zBsqzc7YvOzk7rq1/9qjVr1iyrpqbG\n2rp1a872xVNPPWVdffXV1pVXXmmtXr3asqzcGRf33HOPddFFF1mzZ8++sE302x9//HGrqqrKqqmp\nsV5//XXX4wdei8Ytjz6bUVBQgMceewx79uzBr3/9azz88MPo6OjAxo0bMX36dLz//vuYNm0afvKT\nn2S6qaHh8ccfR21t7YWAe672xSOPPILp06dj9+7d2L17N6qrq3OyL9ra2vC9730PmzZtwo4dO3Dw\n4EG8/PLLOdMX99xzD1566aWUbbzf3tLSgh//+Mf485//jI0bN2LVqlWuxw+U4GXy6LMZkyZNwhVX\nXAEAqKiowOWXX44dO3Zg+/btWLlyJYqKinDvvffmTJ+cOHECf/rTn3DfffddCLrnal9s3rwZ3/nO\nd1BcXIz8/HyUlZXlZF+UlJTAsiycP38ePT096O7uRnl5ec70xXXXXYexY8embOP99m3btmH58uWY\nPn06li5dCsuy0NHRITx+oAQvk0efK/jggw+wZ88eLFq0KKVfqqursX379gy3Lhz84z/+I374wx8i\nLy857HKxL06cOIHe3l7cf//9qKurww9+8AP09PTkZF+UlJRg48aNuOSSSzBp0iRcc801qKury8m+\noOD99m3btqUksVx22WWu/WLKBYeAjo4O/M3f/A0ee+wxjBo1KidTRv/whz/goosuwvz581N+fy72\nRW9vLw4ePIjbb78dTU1N2LNnD/7zP/8zJ/uitbUV999/P/bu3YsjR47gjTfewB/+8Iec7AsKld/u\nNrcoUIJfuHBhSvGxPXv2YPHixUF+ZeQwMDCA22+/HXfffTduu+02AKRfaEmHffv2YeHChZlsYijY\nsmULfve73+HSSy/FihUr8Morr+Duu+/Oyb6oqqrCZZddhltuuQUlJSVYsWIFXnrppZzsi+3bt2Px\n4sWoqqrC+PHj8eUvfxmvv/56TvYFBe+30zlHFPv373ftl0AJXiaPPpthWRZWrlyJ2bNn48EHH7yw\nva6uDs888wx6enrwzDPP5MRN73vf+x6OHz+Ow4cP41e/+hVuuOEG/OIXv8jJvgCAWbNmYdu2bRge\nHsYf//hH3HjjjTnZF9dddx127tyJtrY29PX14cUXX8SyZctysi8oeL990aJFePnll3Hs2DE0NTUh\nLy8Po91WEtKY8cNEU1OTVV1dbc2cOdN6/PHHg/66SOH111+3EomENW/ePOuKK66wrrjiCuvFF1/M\nmRQwHpqamqxbbrnFsqzcSYdz4sCBA1ZdXZ01b94865vf/KbV2dmZs33x05/+1FqyZIm1YMEC6+GH\nH7aGhoZypi/uvPNOa/LkyVZhYaE1bdo065lnnhH+9vXr11szZ860ampqrObmZtfjh7bgh4GBgYFB\nuDBBVgMDA4MshSF4AwMDgyyFIXgDAwODLIUheAMDA4MshSF4AwMDgyyFIXgDAwODLMX/B8bZL+f2\nJIthAAAAAElFTkSuQmCC\n",
"text": [
""
]
}
],
"prompt_number": 8
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Not just Python code though! Though cell magics (`%%`) the Notebook supports running code in other languages:\n",
"\n",
"* R\n",
"* Octave\n",
"* Cython\n",
"* Bash\n",
"* Perl\n",
"* Ruby\n",
"* etc."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%%bash\n",
"echo \"hi there\""
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"hi there\n"
]
}
],
"prompt_number": 10
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Installation"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Requires:\n",
"\n",
"* Tornado\n",
"* ZeroMQ/PyZMQ\n",
"* Recent Chrome, Firefox, Safari (WebSockets, Flexible Box Model)\n",
"* Matplotlib for plotting\n",
"* Works out of the box on EPD, Anaconda\n",
"* Optional LaTeX math support using MathJax\n",
" - Load from CDN\n",
" - Install locally (recommended)\n",
"\n",
" from IPython.external.mathjax import install_mathjax\n",
" install_mathjax()"
]
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"The Notebook server"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"* Currently a single-user web application designed to be run on your local machine\n",
"* Can be password protected and encrypted. See our [docs](http://ipython.org/ipython-doc/dev/interactive/htmlnotebook.html#running-a-public-notebook-server).\n",
"* cd to a directory where you have Notebooks and start the server.\n",
"\n",
" $ cd my_notebook_dir\n",
"$ ipython notebook\n",
"\n",
"* Use the `--script` tag to save `.py` versions of your Notebooks\n",
"* Use the `--no-browser` flag to not start a browser automatically\n"
]
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"The future"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"* Full multiuser support\n",
"* Multiple directory support\n",
"* Interactive widgets\n",
"* Improved notebook export support\n",
"* Slide show mode\n",
"* Editing of other file types"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [],
"language": "python",
"metadata": {},
"outputs": []
}
],
"metadata": {}
}
]
}