Skip to content

Instantly share code, notes, and snippets.

@mlaloux
Created August 31, 2014 13:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mlaloux/d3a38c86000a7bc31e9a to your computer and use it in GitHub Desktop.
Save mlaloux/d3a38c86000a7bc31e9a to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"metadata": {
"name": "",
"signature": "sha256:f0c1c42bc938979068b591776f3eafe16da53f373114b516ecd2b0e012671849"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "heading",
"level": 1,
"metadata": {},
"source": [
"Utilisation de GRASS GIS avec Python, R et Octave\n"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from IPython.display import Image\n",
"Image(url='http://www.portailsig.org/sites/default/files/zeropoint_logo.png')"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<img src=\"http://www.portailsig.org/sites/default/files/zeropoint_logo.png\"/>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 1,
"text": [
"<IPython.core.display.Image at 0x10288ef90>"
]
}
],
"prompt_number": 1
},
{
"cell_type": "heading",
"level": 1,
"metadata": {},
"source": [
"D\u00e9finition des variable syst\u00e8mes pour acc\u00e9der \u00e0 GRASS GIS 6.4.x \u00e0 partir de Python"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"import os\n",
"os.environ['GISBASE'] = '/Applications/GRASS-6.4.app/Contents/MacOS'\n",
"os.environ['PYTHONPATH']=\"/Applications/GRASS-6.4.app/Contents/MacOS/etc/python/\"\n",
"os.environ['LD_LIBRARY_PATH']=\"/Applications/GRASS-6.4.app/Contents/MacOS/lib\"\n",
"os.environ['GIS_LOCK'] = '$$'\n",
"os.environ['GISRC'] = '/Users/martinlaloux/.grassrc6'\n",
"import grass.script as grass\n"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 2
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"###Acc\u00e8s \u00e0 un secteur (LOCATION) et \u00e0 un jeu de donn\u00e9es (MAPSET) \n",
"simple exemple tir\u00e9 de [GRASS GIS v. 6.4.2: la nouvelle console Python (Shell Python), exemple d'utilisation simple ou avec le module Shapely](http://www.portailsig.org/content/grass-gis-v-642-la-nouvelle-console-python-shell-python-exemple-d-utilisation-simple-ou-avec)"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"gisbase = os.environ['GISBASE']\n",
"gisdb=\"/Users/martinlaloux/grassdata\"\n",
"location=\"geol\"\n",
"mapset=\"test_python\"\n",
"import grass.script.setup as gsetup\n",
"gsetup.init(gisbase, gisdb, location, mapset)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 3,
"text": [
"'/var/folders/vu/vu099NovH-KZpE5TEa83BU+++TI/-Tmp-/tmpoCupAJ'"
]
}
],
"prompt_number": 3
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" ###Extraction des coordonn\u00e9es des extr\u00e9mit\u00e9s d'une ligne"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"debligne =grass.read_command(\"v.to.db\", flags=\"p\", map=\"testgrass\", type=\"line\", option=\"start\", units=\"meters\" , quiet=True)\n",
"\n"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 4
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"debx=float(debligne.split(\"|\")[1])\n",
"deby=float(debligne.split(\"|\")[2])\n",
"debz=float(debligne.split(\"|\")[3])"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 5
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"finligne=grass.read_command(\"v.to.db\", flags=\"p\", map=\"testgrass\",type=\"line\", option=\"end\", units=\"meters\", quiet=True)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 6
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"finx=float(finligne.split(\"|\")[1])\n",
"finy=float(finligne.split(\"|\")[2])\n",
"finz=float(finligne.split(\"|\")[3])\n",
" "
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 7
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"###Transformation en g\u00e9om\u00e9trie [Shapely](http://toblerity.org/shapely/manual.html)"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from shapely.geometry import Point"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 8
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"Point1 = Point(debx,deby)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 9
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"Point2 = Point(finx,finy)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 10
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from shapely.geometry import LineString"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 11
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"line = LineString([Point1,Point2])"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 12
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%matplotlib inline"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 13
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"print line"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"LINESTRING (186139.123704173 53082.6541939769, 188199.122798505 53467.7585587325)\n"
]
}
],
"prompt_number": 14
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Affichage de la ligne avec matplotlib"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"import matplotlib.pyplot as plt \n",
"fig = plt.figure() \n",
"ax = fig.gca() \n",
"x, y = line.xy\n",
"ax.plot(x, y, color='b')"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 16,
"text": [
"[<matplotlib.lines.Line2D at 0x1068c4c90>]"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAZEAAAEACAYAAAByG0uxAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XuYXWV9L/BPmiAlwBFQRAwXPUJpKxK5NFQudqoFbZ8j\n4FMqKKYBgZ4miu3RUxuLmqE0ip5jOVxEPR4UiIixpCBKGkks+4gXTIIhwQsVIpRbegTCJQiPJmTO\nH+/azGKYJHsmM7P3zP5+nmc/s+bda69592Kxf/m97/rtl4iIiIiIiIiIiIiIiIiIiIiIiIiIiBhn\n7sUarMLyqu18rMbt+Bb2rdpfiWeqfVfhstpxDscduAsX1dp3xMKq/VbsP/JvISIi2uUe7DGgbdfa\n9jn4P9X2K5VAMZjlmFFtL8Zbqu05+oPNKfjKdvQ1IiLG0G+0uN+kAb9vqG3vgke28fq9lcDTzGSu\nwknV9gm4stpehDe12KeIiGizVoJIH5ZhJc6utc/HfZiFC2rtr1KGsho4pmqbhgdq+zxYtTWfu7/a\n3oQnvDDziYiIcWrv6ueeyhzIsQOen4svVtsvwu7V9mFKkNkVR2Bp7TXH4uvV9h14Re25uyWIRESM\nC1Na2Gdd9fNhXKfMa9xSe/7LyhwH/Lp6wA+xFgcqmcc+tdfsoz8zeRD74aGqPy/G+oGdePWrX923\ndu3aFrobERGVtThgNP/AtoazpuqfRN8ZxyuZQ71TJyrDV/BSTK62/7MSQH6uBKIncaQyvzITX6v2\nu0EZEoOTlbu9XmDt2rX6+vq6/jFv3ry296FTHjkXORc5F1t/4NXb+IzfbtvKRPZSso/mvlfjJlyL\ng/CsEulmV/u8AX+PjdiM/4rHq+fm4ArspGQuS6r2y7FAucX3UZy6He8nIiLG0LaCyD143SDtJ29h\n/3+uHoO5Da8dpP1XePs2+hERER2o1Vt8o0P09PS0uwsdI+eiX85Fv5yLsTWw/qOT9VVjfBER0YJJ\nkyYxyp/zyUQiImLYEkQiImLYEkQiImLYEkQiImLYEkQiImLYEkQiImLYEkQiImLYEkQiImLYEkQi\nIoahr49Nm9rdi/ZLEImIGKJHH+WUU/jEJ9rdk/ZLEImIGIIlSzjkEKZN4/3vb3dv2q+VRakiIrre\nL3/J3/wNN97IggW88Y3t7lFnSCYSEbENP/gBhx7Khg2sXp0AUpdMJCJiCzZu5Pzz+dzn+PSnOXlL\nKyl1sVYykXuxRlkCd3nVdj5W43ZlOdt9B7xmPzyFD9TaGrizOs4q7Fm174iFysqGt2L/ob2FiIiR\n99Of8vrXs3Ilt9+eALIlrQSRPvTgUMyo2j6J6cqqh9dj3oDX/CNuHOQ476yOcygertrPVJbFPRAX\nIvc7RETbbN7MRRdx7LGcdVaZA9l773b3qnO1Opw1cFGTDbXtXfBI7feT8HP8soXjwAn6g9AiXNpi\nnyIiRtT993PGGWUS/fvf58AD292jztdqJrIMK3F2rX0+7sMsXFC17YIPoncLx7pSGcr6cK1tGu6v\ntjfhCezRQr8iIkZEXx9XX83hh/OHf8gttySAtKqVTORorFPmMJYq8xq34NzqMVcZhjpDCR4X4mkv\nzDpOw0NKoFmEmVgwlM729vY+t93T05O1lCNiuz36KLNn86Mf8S//UgLJeNVoNDQajTH9m0Nde3ee\nMmH+qVrbfliMg/Ft/ZPsu2EzPoLLBhxnFo7AOViiBJ9blaDWDFgDZY31iBhRS5Zw5pm8/e187GPs\ntFO7ezSyxmKN9W1lIlMxWZkD2RnH4zwcgLurfU5UhqjgDbXXzqted1l1jN2VuZMd8FbcVO13gxJU\nbsXJyt1eERGjJoWDI2dbQWQvXFfb92rlw/9aHIRnsRazt3Gc31Qyjh2UgLIUn6+eu1wZ1rpLuUvr\n1CG9g4iIIfjBD5g5kyOPLIWDu+3W7h6Nb6Oa5oywDGdFxLB1Y+FgJwxnRUSMez/9ack+XvayUjiY\nuo+Rk+/OiogJa/NmLr6YN7whhYOjJZlIRExI9cLB730vdR+jJZlIREwo9cLBnp4UDo62ZCIRMWGs\nX18KB++4Y/wXDo4XyUQiYkJorjj4ildw220JIGMlmUhEjGvNwsFvfIMrr+RNb2p3j7pLMpGIGLfq\nKw6uWZMA0g7JRCJi3OnGwsFOlSASEeNKs3Bwzz1TONgJMpwVEeNCs3CwueLg4sUJIJ0gmUhEdLxm\n4eBTT2XFwU6TTCQiOlZfH1/+cn/h4He+kwDSaZKJRERHSuHg+JBMJCI6TrNwcO+9UzjY6ZKJRETH\n+OUv+eAH+frXUzg4XrSSidyLNcoSuMurtvOxGrcry9nuO+A1+ylrsX+g1nY47lBWMLyo1r4jFlbt\nt2L/obyBiJgYmoWDTz6ZwsHxpJUg0oceHIoZVdsnMR2vw/XKeup1/4gbB7R9BmfiwOrxlqr9TGVZ\n3ANxIT4xlDcQEePbxo189KOccALz55c1z7Nk7fjR6pzIwOUVN9S2d8Ejtd9Pws/xk1rb3thVfyZz\nVbUfnIArq+1FyL8/IrrET3/K61/PihWsWsWf/Vm7exRD1WomsgwrcXatfT7uwyxcULXtgg+id8Ax\npuGB2u8PVm3N5+6vtjfhCezRUu8jYlwarHDwFa9od69iOFqZWD8a67AnluJO3IJzq8dcZRjqDCV4\nXIinjcLi8L29vc9t9/T06OnpGek/ERGj7IEHSuHghg0pHBxpjUZDo9EY07851A/6ecqE+adqbfth\nMQ7Gt/VPsu+GzfgI/hk343eq596BN2A2lijB51YlqDUD1kB9fX19Q+xuRHSKvj6uuYa//mve9z7m\nzmVK7g8dVZMmTWIU/kFft63/hFMxWZkD2RnH4zwcgLurfU5U7tyiBIamedXrLqt+fxJHKvMiM3Fx\n1X6DMiR2K05W7vaKiAmkWTi4Zk0KByeabQWRvXBdbd+rcROuxUF4FmuVjGJb5uAK7KRkLkuq9sux\nQLnF91Gc2nLvI6LjffObnHlm+br2K65gp53a3aMYSaOa5oywDGdFjCP1wsEvfjF1H+0wFsNZ+dqT\niBhxKRzsHpnWiogRU19x8NJLU/fRDRJEImJE3Hkn73pXWXFw1arUfXSLDGdFxHZpFg4ec0wKB7tR\nMpGIGLYUDkYykYgYlmuu4bDD+IM/yIqD3SyZSEQMyfr1zJnD6tUpHIxkIhExBN/8Zllx8OUv54c/\nTACJZCIR0YJ64eAVV/BHf9TuHkWnSCYSEVvVLBx84olSOJgAEnXJRCJiUBs38g//wGc/m8LB2LIE\nkYh4gTvvZOZMXvKSFA7G1mU4KyKeUy8cfPe7y91XCSCxNclEIgIpHIzhSSYSESkcjGFLJhLRxVI4\nGNurlUzkXqxRlsBdXrWdj9W4XVnOtrmu+oxqv1XVa06pHaeBO2vPN9dR3xELlZUNb8X+w3kjETE0\nzcLBvfZK4WAMXysrXt2Dw7G+1rarsn46nIPpOEtZ+vZX2IyX40fKErvP4mZ8AD8ccPw5OLj6eQre\nZvAlcrOyYcQIePrpUjh4ww184Qup+5jIOmllw4Gd2FDb3gWPVNvPKAGEElCeUALIlo4DJ+DKansR\nsgZaxChZvrwUDj7+eAoHY2S0EkT6sAwrcXatfT7uwyxcUGufgR9Xj/cPONaVylDWh2tt03B/tb1J\nCTx7tNb9iGjFxo3Mm8db31pWHvzSl9htt3b3KiaCVibWj8Y6ZQ5jqTKvcQvOrR5zcSHOqPZfjtfg\nt7FEmQt5AqfhISVzWYSZWDCUzvb29j633dPTo6enZygvj+hKKRzsHo1GQ6PRGNO/OdSxsnl4Cp+q\nte2Hxcq8xkDfwgdx24D2WThCmU9Zgl5lUn2K/oA1UOZEIoZg82Y+/WnOO69kH3/5l0wa1dHx6DSd\nMCcyVZlEh51xPO7AAbV9TlSGqOCV+rOb/XGgctfVZLy0at8Bb62OAzcoQQVOVgJPRGyHBx7gzW8u\nw1bf+x6zZyeAxOjY1nDWXriutu/VuAnX4iBl0nwtZlf7HKMMb22sHn+BJ5UAtEQJIJOVYbHPV6+5\nXBnWuguPGvzOrIho0TXX8Fd/xTnn8KEPMSXVYDGKxtO/TTKcFbEV9cLBBQs44oh29yjarROGsyJi\nHBhYOJgAEmMliW7EOFYvHMyKg9EOyUQixqlm4eBjj5UhrASQaIdkIhHjzMaNzJ/PZz7DJZfw9re3\nu0fRzRJEIsaRFA5Gp8lwVsQ4sHlzyTqy4mB0mmQiER3uwQfLioNPPFEKB3/rt9rdo4h+yUQiOtg1\n15TJ82OP5bvfTQCJzpNMJKID1QsHFy9O3Ud0rmQiER0mhYMxniQTiegQKRyM8SiZSEQHWLGCww5L\n4WCMP8lEItoohYMx3iWIRLRJCgdjIshwVsQY27yZSy8thYNnnJHCwRjfWslE7lUWlnpWWWhqBs7H\nCehTFpI6HfdXz32uet1kzMfC6vfDcQV+U1lO96+q9h1xFQ6rjnUK/n24byiik6VwMCaaVjKRPvTg\nUCVIwCcxHa/D9cra65Qlbw+v9j0en1aCCXwGZypL5h6It1TtZyrB40BciE8M981EdLIUDsZE1Oqc\nyMCVsTbUtnfBI9X2M7X2nfCEksHsrazVvrx67iqcpCyZe4L+ILQIl7bYp4hxIYWDMZG1moksw0qc\nXWufj/swCxfU2mfgx9Xj/VXbNDxQ2+fBqq353P3V9iYl8OzR8juI6GA33cT06SkcjImrlSBytDI8\n9cd4D46t2s/Ffso8x4W1/ZfjNcocx0V48Qj1NWLcePpp3vtezjqLL36Riy5ip53a3auIkdfKcNa6\n6ufDuE7JNG6pPf9lZaJ8oDuxFgcoWcg+tef20Z+ZPKgEo4eq/rwY6wfrSG9v73PbPT09enp6Wuh+\nxNhasYJ3vatkHatXs/vu7e5RdItGo6HRaIzp3xw41zHQVGVifAN2xk04Dz/H3dU+5yiBZSZeqQSH\nTdhfCTYHK3d3/QDvUzKVG3GxMicyB6/FbJyqzJWcOkhf+vr6+ob+DiPGSL1w8OKLOeWUdvcout2k\nSZPY9uf8dtlWJrKXkn00971aCSTX4iBl0nytEgDgGMxVbgXeiL9QAgglWFyhTLgvVgIIXI4FuEu5\nS2uwABLR0f7t30rh4B57lLmPadO2/ZqIiWBUI9QISyYSHWfzZi67jN5e/v7vmT2bSePp/6qY0Doh\nE4mILUjhYES+9iRiWL7ylVI4eMwxKRyM7pZMJGII1q/nPe/h9ttTOBhBMpGIljULB1/2shQORjQl\nE4nYhuaKg1/7WikczIJREf2SiURsxYoVZe7jscdYsyYBJGKgZCIRg0jhYERrEkQiBkjhYETrMpwV\nUenrKysOHn00p59eVhxMAInYumQiEUrh4LvfzeOPl7qPgw5qd48ixodkItH1vvIVDjusZCAJIBFD\nk0wkulazcHDVKm68MXUfEcORTCS60tKlpXBwzz1TOBixPZKJRFd5+mn+9m+5/nq+8AWOO67dPYoY\n35KJRNdYsaLMfaxfXwoHE0Aitl8ykZjwmoWDl13GJZekcDBiJLUSRO5VVid8VlmtcAbOxwnoU1Yj\nPB334zh8HC/Cr/E3uLk6TgMvxzPV78cr67bviKtwWHWsU/Dv2/GeIp7TLBzcffcygZ66j4iR1cpw\nVh96cKgSQOCTmI7X4XrMq9ofxn/BIZilLHtbP847q+McWu0LZyrB40BciE8M651E1PT18elP9xcO\nLlmSABIxGlodzhq4vOKG2vYueKTavr3W/hNlPfUdlAxmsONQMppmEFqES1vsU8SgUjgYMXZazUSW\nYSXOrrXPx31KxnHBIK/7U9ymP4DAlViFD9fapilDYbAJT2CPFvoV8QLNFQdTOBgxNlpZwH1vrMOe\nWIpzcEvt+bk4CGfU2l6DrylzJPdUba/AQ0rmsghfUoa77sCbq+fgbmXYbP2AfvT19fW18p6iCz32\nGHPmlHmPBQv4vd9rd48i2m/SpEm09jk/bK0MZ62rfj6M65QP+HoQ+TIW137fB/+MmfoDCP1B4qnq\nNTOUIPIg9quen4IXe2EAAb29vc9t9/T06OnpaaH7MdEtXVqGr972tlI4OHVqu3sU0R6NRkOj0RjT\nv7mtCDUVk5U5kJ1xE87Dz5WMgZKZzFCCxm74v8ocx/W140zG7srcyQ64pjrW/8YcvBazcSpOqn4O\nlEwknieFgxFb1wmZyF5K9tHc92rlw/9aZQjrWaxVAgC8F69Wgkhzsvw45bbeJUoAmawMi32+ev5y\nJSO5S7lLa7AAEvE8K1aUW3cPO6wUDu6+e7t7FNGdRjVCjbBkImHjRj72sVI4mBUHI7auEzKRiI5R\nLxzMioMRnSHfnRUdL4WDEZ0rmUh0tGbh4GOPpe4johMlE4mOtXBhmTg/6qgEkIhOlUwkOs5jj5UV\nB3/4Q77xjRQORnSyZCLRUZYu5ZBDeOlLSxBJAInobMlEoiM8/TRz53LddSkcjBhPkolE2zVXHHzk\nkaw4GDHeJBOJtknhYMT4lyASbZHCwYiJIcNZMabqhYOzZqVwMGK8SyYSYyaFgxETTzKRGBMpHIyY\nmJKJxKhK4WDExJZMJEbNsmVMn85LXpLCwYiJKplIjLgUDkZ0j1YykXuxBquwvGo7H6txO76Ffav2\n47Cy2n8l/rB2nMNxh7KC4UW19h2xsGq/FfsP/W1Ep0jhYER3aWXFq3uUALC+1rarsu46ZY316TgL\nr8N/VI/X4JvYp9pvubJ87nIsxsXKkrlzcHD18xS8TdZYH3c2bSqFg5deWgoHT80ixxFt10krGw7s\nxIba9i54pNq+vdb+E+ykrKv+UiXwNDOZq3CSEkRO0L8e+yJc2mKfokP87GelcHC33Vi1KnUfEd2k\nleGsPixThqfOrrXPx32YhQsGed2f4jZsxDQ8UHvuwapN9fP+ansTnsAerXU/2qlZOHjUUfz5n6dw\nMKIbtZKJHI112BNLcSduwbnVYy4uxBm117xGCSwjOiLe29v73HZPT4+enp6RPHwMQQoHIzpPo9HQ\naDTG9G8OdaxsHp7Cp2pt+ylzHAdXv++jTLafju9XbXvjX/E71e/vwBswWxnS6lUm1afoD1gDZU6k\nQyxcyPvex5w5/N3fscMO7e5RRAymE+ZEpmKyMgeyM47HeTgAd1f7nKjcuQW74Ub8rf4AQgkMT+JI\nZV5kpjKxDjcoQ2K34mQlAEUHSuFgRAy0rSCyF66r7Xs1bsK1OAjPYq2SUVDuvnq1krE0J8uPUybe\n5+AKZbJ9sZKBwOVYoNzi+6jB78yKNlu2rAxfnXhiCSJTp7a7RxHRCUY1zRlhGc5qgxQORoxfYzGc\nla89iS1aubIUDj78MKtXJ4BExAvla0/iBVI4GBGtShCJ50nhYEQMRYazAqVw8LLLUjgYEUOTTCQ8\n9FC582r9+hQORsTQJBPpcgsXcuihvP71CSARMXTJRLpUCgcjYiQkE+lCy5ZxyCFZcTAitl8ykS5S\nLxy8/HKOP77dPYqI8S6ZSJdYuZLDD+8vHEwAiYiRkExkgkvhYESMpgSRCaxZOPjiF6dwMCJGR4az\nJqB64eDMmSkcjIjRk0xkgknhYESMpWQiE8hXv5rCwYgYW8lEJoDHHuO97y13YKVwMCLGUiuZyL1Y\noyyBu7xqOx+rcbuynO2+VfseuFlZTveSAcdp4M7qOKv0r6O+IxYqKxveiv2H/C662LJlTJ/OHnuU\nyfMEkIgYS62seHUPDsf6WtuuSqCAczAdZylrsh+Kg6vHObXX3IwP4IcDjj+n2ncOTsHbDL5EblY2\nrEnhYERsSyetbDiwExtq27soa6jD0/guftXiceAEXFltL8KbWuxT10rhYER0ilaCSB+WYSXOrrXP\nx32YhQsGec1grlSGsj5ca5uG+6vtTXhCGRaLATZt4vzz+ZM/4aMf5ZpryjBWRES7tDKxfjTWKXMY\nS5V5jVtwbvWYiwtxxjaOcxoeUjKXRZiJBUPpbG9v73PbPT09enp6hvLyce1nPyuLRf2n/1S+NHGf\nfdrdo4joNI1GQ6PRGNO/OdSxsnl4Cp+qte2Hxcq8RtMsHOH5cyK28PwS9CqT6lP0B6yBunJOpK+P\nz3ymZB69vcyZw2/kxuyIaMFYzIlsKxOZisnKHMjOOB7n4QDcXe1zojJEVTew05OxuzJ3sgPeipuq\n525QgsqtOFm52yukcDAiOt+2ItSrcF21PQVX4+O4FgfhWazFbPyi2u9e5e6tF+FxHKfMnXxbCSCT\nlWGx9ytzJzsqw1qH4lHlzqx7B+lLV2UiX/0q55zD7Nmcey477NDuHkXEeDMWmcioHnyEdUUQqRcO\nLljAjBnt7lFEjFeddItvjIGBhYMJIBHR6fK1Jx3gmWdK4eCiRXzhC6n7iIjxI5lIm61cyWGH8Ytf\nsGZNAkhEjC/JRNpk0yY+/nEuuYSLLuId72h3jyIihi5BpA1SOBgRE0WGs8ZQs3DwqKN417vKioMJ\nIBExniUTGSMPPcSZZ/LII3znO/z2b7e7RxER2y+ZyBhorjh45JF873sJIBExcSQTGUWPP14KB1es\n4OtfT91HREw8yURGybe+xSGHsPvuKRyMiIkrmcgIS+FgRHSTZCIjKIWDEdFtkomMgBQORkS3ShDZ\nTikcjIhuluGsYaoXDp52WgoHI6I7JRMZhhQORkQUrWQi92KNsgTu8qrtfKzG7cpytvtW7XvgZmU5\n3UsGHOdw3IG7cFGtfUcsrNpvxf5DfA9j6p/+KYWDERFNrax4dY8SANbX2nZVAgWcg+k4S1mT/VAc\nXD3Oqb1mOd5b/VyMi7EEc6p95+AUvE1ZInegtq5sWC8czIqDETEedNLKhgM7saG2vQseqbafxnfx\nqwH7760EnmYmcxVOqrZPwJXV9iK8qcU+jZlm4eBuu6VwMCKirpU5kT4sw7P4HD5ftc/HTCVw/P4g\nr6mbhgdqvz9YtTWfu7/a3oQnlGGxeubTFs88w4c+xLXXpnAwImIwrQSRo7EOe2Ip7sQtOLd6zMWF\nOGOU+vic3t7e57Z7enr09PSM2t+67TZmziwZyJo1Zd3ziIhO1mg0NBqNMf2bQx0rm4en8Kla237K\nHMfBtbZZOEL/nMje+Ff8TvX7O/AGzFbmRXqVSfUp+gPWQGMyJ5LCwYiYKDphTmSqMpcBO+N45Q6r\nA2r7nKjcuVU3sNPr8CSOrJ6bia9Vz92gBB04Wbnbqy1+9jOOOYZbbimFgwkgERFbt60I9SpcV21P\nwdX4OK7FQco8yVolo/hFtd+9SuB5ER7HccoQ2OG4Ajspmcv7qv13xALlrq5HlTuz7h2kL6OWifT1\n8dnP8pGPMG8e73kPv5EyzIgY58YiExnVg4+wUQki9cLBBQtS9xERE0cnDGdNaM3CwRkzUjgYETEc\nXfm1J1lxMCJiZHRdJpLCwYiIkdNVmcjXv87s2Vx+OW9+c7t7ExEx/nXVxPqvfsUvf5nCwYjoDrk7\n6/na+gWMERHjTe7OioiIjpYgEhERw5YgEhERw5YgEhERw5YgEhERw5YgEhERw5YgEhERw5YgEhER\nw5YgEhERw9ZKELkXa5TVC5dXbedjNW5XViLct7b/h3CXshDV8bX2RtW2qno0l8DdEQur19yK/Yf8\nLiIioi1aCSJ96FFWHmx+5+0nMR2vw/XK2uvwuzil+vkWXKa/5L4P76yOcygertrPVFY0PBAX4hPD\nfTPdoNFotLsLHSPnol/ORb+ci7HV6nDWwO9e2VDb3gWPVNsn4hpsVDKYu5V11bd0HDgBV1bbi/Cm\nFvvUlfI/SL+ci345F/1yLsZWq5nIMqzE2bX2+bgPpyvrrsMr8EBtnweqtqYrlaGsD9fapuH+ansT\nnkC+ZzciYhxoJYgcrQw//THeg2Or9nOxH76I/9XCcU7DwdXrj8XMoXY2IiLGt3n4wIC2/fCjantu\n9Wha4vnDWU2zcEltn9+vtqfonysZ6G4lK8ojjzzyyKO1x93abCp2rbZ3xneVO64OqO1zDhZU27+r\n3LH1IrwKa5V5kMl4abXPDrgWf1H9PgefqbZPxVdG+k1ERER7vEoJCrcr2caHqvZrcUfVvggvq73m\n75Todyeai9DurMyprK6Oc6H+SfYd8VX9t/i+clTeSUREREREdI8v4P8pWUvTDKVocRVW4Pdqzx2C\n7yvZyhplWAwOr45xFy6q7b+1QsVZ+Fn1+PMReTfbZ6TORcPQizbH87k4Tf97XYVnlXND910XWzsX\nDd11XfymUk6wBj/x/LnYbrsutnYuGsb5dXGscmdX/UQ09A9z/TFurranKMNdr61+313/3WPL9Rc6\nLlYKGSnzKZdV26fon0/ZQ5mP2a16NLfbaaTOxc04bJDjT9RzUXew508Udtt1UXew8gHQ1G3XxenK\nByfshHuUm3zovuvidFs+F6N+XYz2d2fdgscGtK3Di6vt3fBgtX28EkmbJ+0xbMbeyuR+8ytXrsJJ\n1faWChXfjJvwePVYqv9CapeROBdNQynaHO/nou6d+v9n6cbrou6dXngTSjddF+uUudbJ1c9f40nd\neV1s6Vw0jep1MWXr72NUzMV38D+VIPb6qv1A5Za0JUrK9RX8D6UYsV7A+GDVxuCFii8xeNHjNJ1n\nqOei6UrlWwEW4R+qtol6Lurerlz8dOd1UVc/F03dcF0cVbV/U6k1W6fcRfrXyofeAbrnutjWuWga\n1euiHd/ieznep6Rb/00Z+6Pc+nuM8i+sY/A2vFH5MJ2ohnoumLhFm1s6F01H4mllzHeiG8656Jbr\n4vKq/V3K0M3eyl2k/736OZEN51yM+nXRjiAyA9dV29fqH7u8H9/GejyjjGUepvxLYp/a6/fRHykf\n1D/2N0VJ9R6t2uvfLLyv50fXTjHUcwEPVT+fwpdrr5mo56LpVOX9NnXjddE08FzQfdfFUVX7s0qB\n8neVCfUHdN91Mdi5OKJ6btSvi3YEkbvxB9X2G5U7ACjjcK9VIuqUap8f4z+U8b0jlbG9mfha9Zob\nlDsJ4GTla+mbxzpeGTfcHccpKV+nGeq5GFi0+Vb98yYT9VxQrtM/8/w5gHW677pg8HPRjdfFnfqz\n852Vb73kmTILAAAAkklEQVS4U3d+Xgx2Ln5qglwX1yiR8NfKv67PUCLkD5RCxe8rdyA0nabc0noH\nLqi1N2/ZuxsX19q3Vqh4RtV+l/6T1U4jcS6GW7Q53s9FD743yHG68bro8cJzMVX3XRc74kvKf/8f\ne/7XMXXbdbGlczFRPi8iIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiKik/1/NHOhV8xE/yIAAAAA\nSUVORK5CYII=\n",
"text": [
"<matplotlib.figure.Figure at 0x1067a2a90>"
]
}
],
"prompt_number": 16
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Affichage de la ligne avec R"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"load_ext rpy2.ipython"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 17
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%%R -w 480 -h 480 -u px\n",
"library(ggplot2)\n",
"dat <- data.frame(x = rnorm(2), y = rnorm(2), \n",
" lab = sample(c('deb', 'fin'), 10, replace = TRUE))\n",
"x <- ggplot(dat, aes(x = x, y = y, color = lab)) + geom_point() + geom_line()\n",
"print(x)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAeAAAAHgCAYAAAB91L6VAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGF\nVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2h\nB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq\n/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog8\n36Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbI\nEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp\n+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd\n70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+\nKCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8\nmuwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn\n/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq8\n9S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5z\nrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl\n12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAg\nAElEQVR4Ae3dB3xb1dk/8J9sSd52bGc6cfZ0duKQskrLSqFQOmhJKKVQ0oYSWujbLEZpgTJSSgO8\nlOzR/qFpGS0tZTUvUAplxM5eznCc7Qw701uy9T/PJTK24yHL0tW5V7/7+SSWdMd5zvdIeu499+pc\nh09N4EQBClCAAhSggKkCMaaWxsIoQAEKUIACFDAEmID5RqAABShAAQpEQIAJOALoLJICFKAABSjA\nBMz3AAUoQAEKUCACAkzAEUBnkRSgAAUoQAEmYL4HKEABClCAAhEQYAKOADqLpAAFKEABCjAB8z1A\nAQpQgAIUiIAAE3AE0FkkBShAAQpQgAmY7wEKUIACFKBABASYgCOAziIpQAEKUIACTMB8D1CAAhSg\nAAUiIMAEHAF0FkkBClCAAhRw2o2gpKTE1CrFxcWhurra1DLtUJjD4YDT6YTH47FDdUytQ2xsrFFe\nbW2tqeXaoTCXywWv1wveBK79rel2u1FTU3POigkJCUhKSjrndb7QtoDtEnBZWVnbtQ7hEpmZmThx\n4gTq6upCuNXQbEq+bORLWsfY4uPjkZycbNiFprah3YrEV1VVFdqNhmhr6enpRgIx+70eaPg622Vl\nZaG0tFTLneaYmBjIzpWOO6USm3zX7d2795y3gexMMwGfwxLQC+yCDoiJC1GAAhSgAAVCK8AEHFpP\nbo0CFKAABSgQkAATcEBMXIgCFKAABSgQWgEm4NB6cmsUoAAFKECBgASYgANi4kIUoAAFKECB0Aow\nAYfWk1ujAAUoQAEKBCTABBwQExeiAAUoQAEKhFaACTi0ntwaBShAAQpQICABJuCAmLgQBShAAQpQ\nILQCTMCh9eTWKEABClCAAgEJMAEHxMSFKEABClCAAqEVYAIOrSe3RgEKUIACFAhIgAk4ICYuRAEK\nUIACFAitABNwaD25NQpQgAIUoEBAAkzAATFxIQpQgAIUoEBoBZiAQ+vJrVGAAhSwjIC3ohzVr72K\n6sJdlonZToE67VQZ1oUCFKAABQIT8BwuRvf5z8KhFvfl5+HIgEFw3nxLYCtzqZAI8Ag4JIzcCAUo\nQAFrCST8+U/wqZA3ZGQaSbhr4U5rVcAG0TIB26ARWQUKUIAC7RXwJiTgobET8PCYCUYi9jnkWJiT\nmQLsgjZTm2VRgAIU0ERg1cQL8JbXh7/93+tGRMWXX4l4TWKLljBsl4Dj481/C8XFxcHnk84cvaaY\nmBg4nU4tY3O73ZD4ItFegbSSuOkaW2xsrFEFXePT2c6hjvLkvSd/dZskJvnnb99wxrd1927M9cVi\nfvd0pPzq1yhXhXVqpUD5rMqk63uuldC1nmW7BFxVVWU6eHV1Nerq6kwvt60CXS4XamtrtYxNYhez\nSLRXW24yX75odI0tQXUdyg6frvHpbCduNTU1kM+sbpMkOUm+Ho8nrKEdP3kSdx86ghnOGAzq1Sug\n95E/ATf3npPvGU7BCfAccHBuXIsCFKCA5QQkud+zbTuu8dbgK2NGWy5+uwXMBGy3FmV9KEABCrQg\n8Nu8fCSoXoDbJuS2sARfNlPAdl3QZuKxLApQgAJWEfhTXh7WON1YNmywKeeZreISyTiZgCOpz7Ip\nQAEKmCCwdscOLHfGYXG3zkhNSTGhRBYRiAC7oANR4jIUoAAFLCpw6OhR3FtWiQfjnOiblWXRWtgz\nbB4B27NdWSsKUIACqKisxMyifbhVHWpdkMOLrnR7S/AIWLcWYTwUoAAFQiDgUz/ze3jtegzwenAD\nL7oKgWjoN8Ej4NCbcosUoAAFIi4w/9PVOBTrxMIxIyMeCwNoXoAJuHkXvkoBClDAsgLvb96M19wJ\nWNGnJ0ev0rgVmYA1bhyGRgEKUKC9AoUHDuBhTx1+1ykZ3Tp3bu/qXN5EAZ4DNhGbRVGAAhQIp8DJ\n06cxo/go7vLVYtSAAeEsitsOgQATcAgQuQkKUIACkRbwer24f/M2XKaGmbx23NhIh8PyAxBgAg4A\niYtQgAIU0F3gmdX5xn19b+cVz7o3VX18PAdcT8EHFKAABawp8FL+GnzgcmP5kIHGLUitWYvoi5oJ\nOPranDWmAAVsJLCxsBALY11Y0DkdnVJTbVQz+1eFXdD2b2PWkAIUsKnAkZISzD5Zhl+4YjAwO9um\ntbRvtZiA7du2rBkFKGBjgaqqKszaVYTv1tbgkhEjbFxT+1aNCdi+bcuaUYACNhZ4bO06ZNV68d3c\n8Taupb2rxnPA9m5f1o4CFLChwNJPVmOXOu+7eNRwOGJ4HGXVJmYCtmrLMW4KUCAqBT7aug0vueOw\nrFcPJCYkRKWBXSrNBGyXlmQ9KEAB2wvsPVSMX1Z7MDc5AVldu9q+vnavIPsu7N7CrB8FKGALgTNl\nZZhx4BCm1XowbvBgW9Qp2ivBBBzt7wDWnwIU0F6gtrYWD2zcjPPVvX2v50VX2rdXoAGyCzpQKS5H\nAQpQIEICz63OQ4XDgTvHj4tQBCw2HAJMwOFQ5TYpQAEKhEjgH+rnRqtccVg+oC/cbleItsrN6CDA\nBKxDKzAGClCAAs0IbCsqwjOOWPy+Sxoy09ObWYIvWVmA54Ct3HqMnQIUsK1AyfHjmHn8FObEAkP6\n9LFtPaO5YkzA0dz6rDsFKKClQHV1NeZs34Vveqpx+ahRWsbIoDouwATccUNugQIUoEBIBZ7IX4s0\nXx1u4b19Q+qq28Z4Dli3FmE8FKBAVAv88dPV2KTu7bs0ZyhiYlX/MyfbCjAB27ZpWTEKUMBqAp+o\nYSafd8VjaY+uSE5Oslr4jLedAuyCbicYF6cABSgQDoH9h4tx75kKPJzoRnaP7uEogtvUTIAJWLMG\nYTgUoED0CZRXVGDGnv24HV5MHDo0+gCitMZMwFHa8Kw2BSigh0CdGmbywfUbMUwNM/mdiRP1CIpR\nmCLAc8CmMLMQClCAAs0L/F4NM1mi7un76/Fjm1+Ar9pWgAnYtk3LilGAAroLvLtxE95yx2NF396I\nj4vTPVzGF2IBJuAQg3JzFKAABQIR2LlvHx6t9eGp9FR0ycwIZBUuYzMBngO2WYOyOhSggP4Cx0+d\nwoyjpfgf1GFE//76B8wIwyLABBwWVm6UAhSgQPMCHo8H924twFfUMJNXjx3T/EJ8NSoEmICjoplZ\nSQpQQBeBeXn5cPt8+CGHmdSlSSIWh6nngN977z1s2rQJqampmDx5MuLj4xtV/I033sA+dV4kLS0N\nkyZNQkZGBrZt2wZ53T9NnTrVmO9/zr8UoAAFrCLwF5V8V6t7+y4bOghOp6lfv1Yhiqo4TXsHFKn7\nWu7evRvTp0/Hhx9+iFWrVuHaa6+tx966dStOnz6N22+/3Ui6b731Fm688Ubs3LkTV1xxBYYNG2Ys\n63LxhtT1aHxAAQpYRmCd+i5b4nRjUddMpKakWCZuBho+AdMScGFhIUaPHo1YNbh4bm4uFixY0KhW\n/fr1g/yTSZLsKXWRgkwHDhxA165d8cEHHxjrNUzAe/fuxT//+U9jOflP9ihvvvnm+udmPejSpYtZ\nRbWrHIfDAZ/q6tJxilG/e5S27Natm47hQeKrq6vTMjb/kVOcpj9b0d1OetbMbtt9Bw8aw0z+JiMN\nXxg3rsX3lc6fWQm6uc9rTU1Ni/XhjNYFTEvAJ0+eRFZWlhFNQkICysvLG0Umr8kky7388suYMmWK\n8Vw+zDJJt/W8efMwZ84c+L940tPTcf755xvz5T9Z9syZM/XPzXgg3ehlZWVaJjr5opYvGrO/bAJx\nl+SbnJxsensFEpss43a7oesXS1LSZ4P0N/0MBVq3cC+ns518JirUsI9yIZRZk5Q3dc163OqKwYU5\nOS2+5+X7S/55vV6zQgu4HNkxkO+65r5fGx4UBbxBLmgImJaAJcHKTaZlkjd/SjNdMCUlJViyZAmu\nv/569OnTx1hWuqT90/79+41zyHIELZMk5XFN9ib37NljzDPzv8rKSm2TXK0a5k7HBCwf5sTEROPL\n0My2CrQsMauqqgp0cVOXkx1Q6dmQL3YdJ53tOnXqZLSr/7so3H4+9T667+NPId9m354wsdU2k+Qr\nPYRm7hwEWn+JTabm3nPNfZcHut1oX860q6B79eoFf3KU88H+o2F/A0iX89KlS3HTTTdh4MCBxsvy\nQZ4/f379kciRI0fOWc+/Pv9SgAIU0E1g0ad5OBDrxH1qmEnH2SSmW4yMJ3ICph0Bjxw5EgUFBVi4\ncKFxsdW0adOMWq9cuRI5qltG5kn38/PPP2+83rlzZ8gVz3KEK0fFslco5x+aJu7I0bFkClCAAi0L\n/GfLFrwaF4/l2T2R0OQXHy2vxTnRJOBQXVmmXqUj59XkHFF7JjkSlgTsP/fb2rr+o+zWlgnlPOkq\nl65xiVG3Sc7N6NwFLefwi4uLdWMz4pEucl27oMVNPrayw6rjpLOd7MCXlpbWnw4Ll9/uAwfxo2Ol\neDIlEaPP9ui1VZbuXdDZ2dmQC1+bTtIFnZmZ2fRlPg9AwLQjYH8s7U2+sp68MQNJvv4y+JcCFKBA\npAROqZ9Tziw+gjvVCb5Ak2+kYmW5kRUw7RxwZKvJ0ilAAQqEX0CuYL5/81Z80VODr49v+edG4Y+E\nJVhBwPQjYCugMEYKUIACwQj87+p8eNVPdqZPGB/M6lwnygSYgKOswVldClAgPAJ/W7MW76thJpcP\n7s9hJsNDbLutMgHbrklZIQpQwGyBzYW78fsYJ+Z36YR0NZY9JwoEIsBzwIEocRkKUIACLQgcU1dV\nzzp5Gvc6YzCod+8WluLLFDhXgAn4XBO+QgEKUCAggSo1ut+snYX4jrcGl44cEdA6XIgCfgEmYL8E\n/1KAAhRop8Dj6rxvl9o63JzLi67aScfFlQDPAfNtQAEKUCAIgeWfrsb2WBeWjMxBjBrDmRMF2ivA\nBNxeMS5PAQpEvcDH2wrwZ1c8lvbshiR1UxFOFAhGgAk4GDWuQwEKRK3APjV86i8ra/BoUjx6aXo/\n66htHItVnAnYYg3GcClAgcgJlJWVY8b+Q7gj1oHcIYMjFwhLtoUAL8KyRTOyEhSgQLgF5MYmD2zc\nhNHqimcOMxlu7ejYPo+Ao6OdWUsKUKCDAs+oe/ueccTgcXVvX04UCIUAE3AoFLkNClDA1gL/2rAB\n77rjsaJ/H3U7VZet68rKmSfABGyeNUuiAAUsKFCwZw9+U+fAs53TkJmRbsEaMGRdBXgOWNeWYVwU\noEDEBUpPnMCskhOY6fBhaN++EY+HAdhLgAnYXu3J2lCAAiESqKnxYE7BTlyjLrqaNGZ0iLbKzVDg\ncwEm4M8t+IgCFKBAvcBv8/KR7KvDbRNy61/jAwqEUoDngEOpyW1RgAK2EHhhdR7Wu9xYmjMEsRxm\n0hZtqmMlmIB1bBXGRAEKREwgf/sO/MEZhyU9uiAlOTlicbBg+wuwC9r+bcwaUoACAQocPHIU95VX\n4cEEF3r36BHgWlyMAsEJMAEH58a1KEABmwmUV1Rg5p59uK3Wg/OHDbNZ7VgdHQWYgHVsFcZEAQqY\nKuCrq8ND6zZgkNeD70zgvX1NxY/iwngOOIobn1WnAAU+E5iv7u17VF1sNX/MKJJQwDQBJmDTqFkQ\nBSigo8B7mzbjnzLMZJ9sxMfH6xgiY7KpABOwTRuW1aIABdoW2Ll/Px7x1mFep1R07ZzZ9gpcggIh\nFOA54BBiclMUoIB1BE6cOoWZh0twN2oxckB/6wTOSG0jwARsm6ZkRShAgUAFvF4v7ttagCu81bhm\nLG8vGKgblwutABNwaD25NQpQwAIC89RIV7E+H6ZxmEkLtJZ9Q+Q5YPu2LWtGAQo0I7Dy40/wiSsO\ny4YMhNPJr8BmiPiSSQJ895kEzWIoQIHIC/x3wwY853BiUY8MpKWmRj4gRhDVAuyCjurmZ+UpED0C\nh4+VYPq+Q3hIDTPZv1fP6Kk4a6qtABOwtk3DwChAgVAJVFZVYVZhEW51OvDl0by3b6hcuZ2OCTAB\nd8yPa1OAApoLyDCTj65Zh161Xvxk0pWaR8vwokmA54CjqbVZVwpEocBSdcXzHnWx1cJRIxATw2OO\nKHwLaFtlJmBtm4aBUYACHRX479ateEUNM7msVxYSExI6ujmuT4GQCjABh5STG6MABXQRKDp4CL+q\n9uI3KYno0bWLLmExDgrUC7A/pp6CDyhAAbsInD5zBjMPFuPHdR6MHTTILtViPWwmYLsj4EjczSQu\nLg4+NaqObpOc75KBBnSMze12G+fjItFegbSTuOkaW6y6bZ5MusYXaTsZZvIXm7fiIgdw4xcvadTc\nDocD8t6Tv7pNEpP887evTvH5z53r+p7Tyao9sdguAVepnxuYPVVXV6NOXWmp2+RyuVBbW6tlbGIl\nZpFor0DaSb5odI0tQZ3LlJ0qXeOLtN0zaqSrajgwffy4c4zEraamBvKZ1W2SJCfJ1+Px6BZa/cVr\nzb3n5HuGU3ACtkvAwTFwLQpQwA4Cf1+7Fu+oYSaXD+oPJgY7tKi968AEbO/2Ze0oEDUCW3bvxv+q\nYSbnd+2EjLS0qKk3K2pdAV6EZd22Y+QUoMBZgWOlxzH7xGncE+vAoN696UIBSwgwAVuimRgkBSjQ\nkkCVOp87Z+cufNNbg8tGjWxpMb5OAe0EmIC1axIGRAEKtEfgN/lrkVFbh1tyx7dnNS5LgYgL8Bxw\nxJuAAVCAAsEK/PHT1djmdGHJiBzEnP15VrDb4noUMFuACdhscZZHAQqERODTggK84IrHkqxuSEpK\nDMk2uREKmCnABGymNsuiAAVCIrD/8GH8oqIGv05yI7t7t5BskxuhgNkCPAdstjjLowAFOiRQXl6B\nmfsOYJoaZvK8IUM7tC2uTIFICjABR1KfZVOAAu0SqFMju/1yw0YM93rwLV501S47LqyfABOwfm3C\niChAgRYEfq/u7XvCEYNZaphJThSwugDPAVu9BRk/BaJE4J2NG/G2urfvin69ITdA4UQBqwswAVu9\nBRk/BaJAYMfevXisFngmIw2dMzKioMasYjQIsAs6GlqZdaSAhQWOnzyJGceOY4bDh5x+/SxcE4ZO\ngcYCTMCNPfiMAhTQSEBuzXfPtu24Wg0z+ZUxozWKjKFQoOMCTMAdN+QWKECBMAk8mZePBHUP3x9O\nyA1TCdwsBSInwHPAkbNnyRSgQCsCf1bJN9/pxrJhg40b1beyKGdRwJICTMCWbDYGTQF7C6zdsQNL\nVfJd3K0zUlNS7F1Z1i5qBdgFHbVNz4pTQE+BQ0eP4t6ySjwY50TfrCw9g2RUFAiBAI+AQ4DITVCA\nAqERqKisxKyifbhFHRpckMOLrkKjyq3oKsAjYF1bhnFRIMoEfHV1eHjtevRXw0xO5kVXUdb60Vld\nHgFHZ7uz1hTQTmDRp3k4FOvEwjEjtYuNAVEgHAJMwOFQ5TYpQIF2Cby/eTNelWEm+/REfHx8u9bl\nwhSwqgATsFVbjnFTwCYChQcO4GFPHZ7slIxunTvbpFasBgXaFuA54LaNuAQFKBAmgZOnT2Nm8VH8\n1FeL0QMGhKkUbpYCegowAevZLoyKArYX8Hq9uH/zNnxJDTP5tXFjbV9fVpACTQWYgJuK8DkFKGCK\nwDOr8+FTJd3BK55N8WYh+gnwHLB+bcKIKGB7gb+uWYMPXG4sHzIQTie/hmzf4KxgswJ85zfLwhcp\nQIFwCWwsLMRzMS4s6JqOTqmp4SqG26WA9gLsgta+iRggBewjcKSkBHNOnsH9rhgMzM62T8VYEwoE\nIcAEHAQaV6EABdovUFVVhdm7inCDuujqSyNGtH8DXIMCNhNgArZZg7I6FNBV4LG169C9thY386Ir\nXZuIcZkswHPAJoOzOApEo8CyT1djV6wLi0cNhyOG+/3R+B5gnc8VYAI+14SvUIACIRT4aOs2vOiK\nw9KePZCYkBDCLXNTFLC2ABOwtduP0VNAa4G9h4rxy2oPHk9OQM9uXbWOlcFRwGwB9gWZLc7yKBAl\nAmfKyjDjwCHc6fNi/ODBUVJrVpMCgQswAQduxSUpQIEABWrVxVYPbNyMceqK5+vGjQtwLS5GgegS\nYBd0dLU3a0sBUwSeUff2rXA48PPx400pj4VQwIoCTMBWbDXGTAGNBf6Zn4/33HFYPqAv3G6XxpEy\nNApEVoAJOLL+LJ0CthLYVlSExz0+/L5LBjLT021VN1aGAqEWMDUBv/fee9i0aRNS1fivkydPRnx8\nfKP6NDe/RA1d9+qrr6K8vByXXHIJxowZ02gdPqEABfQQKDl+HLNKT+HeBBeG9OmjR1CMggIaC5h2\nEVaR2jPevXs3pk+fjn79+mHVqlWNWFqa/+KLL2LSpEmYOnUq3n77bVRUVDRaj08oQIHIC1RXV2PO\n9l34mrcaV/O8b+QbhBFYQsC0I+BCdQeU0aNHIzY2Frm5uViwYEEjoJbmnz59GtlnB23v378/9u7d\ni2HDhhnrFhcX44MPPqjfjtzW7PLLL69/btaDTp06mVVUu8qJUSMO+Xw+41+7VjRhYXkfSHtlZGSY\nUFr7i5DYEhMT27+iCWvExcUZpUj76jLNfONNyKdg5qQr4Vbx6Won7zvpgZOrtHWbHOqiNflXV1en\nW2hGXBJUc59XHePVDrCFgExLwCdPnkRWVpYRRoIaDUe6lBtOzc2Xo92G9wqVD3XD9WRew+QnH65I\nfLDkDSiJTrfJn3x1jE2+aCSuSLRXIO0k8ekam79ddYlv0Xv/xvoYJ16cOAHyKZC4dImtaVuLnXxe\ndYzPCglYR7embWyl56YlYEm60k0lk8fjQUpKSiOn5ubLnn5NTU39cvI4OTm5/nmXLl1w5ZVX1j+X\nB3v27Gn0PNxPZAdAjtJ13At0uVzGF42Oscn5f7fbjVOnToW7iYLavsQnd+/RcfL3bOhgl7d9O5Yi\nFkuze6gdqjqjPXW2S0pKQpkaIMT/XaRT+0q7ykGEfD/qNklsaWlpzX5em36X6xa7zvGY1ofVq1ev\n+uQo53v9R8N+nObmy5tRvqTlqFf2XPft24fu3bv7V+FfClAgggL7Dx/B/eXVeCjRjewe/FxGsClY\ntEUFTDsCHjlyJAoKCrBw4ULjiHHatGkG2cqVK5GTk4OW5l933XVYsWIFvF6vsVzDLmeLmjNsClhe\noFydHpq1dz+mxgJfGDrK8vVhBSgQCQHTErB0Ydxwww1Gl7Ic1fqnKVOm+B82O3/QoEGQf9ItI12q\nnChAgcgK1KlzvA+u34ihqlfq2xPPj2wwLJ0CFhYwrQvab9Qw+fpfa/i3pflMvg2V+JgCkROYvzoP\nJWqHenYux3iOXCuwZDsImHYEbAcs1oEC0S7w7sZNeMMdjxV9sxGvLpLkRAEKBC/ABBy8HdekQFQJ\n7FQXQT5a68NT6anokpkZVXVnZSkQDgHTu6DDUQlukwIUCK/AcfVzsRlHS/Ez1GGEGhCHEwUo0HEB\nJuCOG3ILFLC1gFwAee/WAlzpqcZXx3Isdls3NitnqgATsKncLIwC1hOYl5cPt7riedqEXOsFz4gp\noLEAzwFr3DgMjQKRFnhJ3dt3tSsOy4YOajQsbKTjYvkUsIMAE7AdWpF1oEAYBNbt3IlFsW4s6pqJ\n1CZDx4ahOG6SAlEnwC7oqGtyVpgCbQsUHzuGe89U4JdxsejXs2fbK3AJClCg3QI8Am43GVeggL0F\nKiorMWv3HtzkAC7KGW3vyrJ2FIigAI+AI4jPoimgm4BP3arvkbXr0UeNvX5j7njdwmM8FLCVAI+A\nbdWcrAwFOiawRA0zuT/WiYVjRsKhhpvkRAEKhE+ACTh8ttwyBSwl8MGWLfirGmZyWXYWEtT9kDlR\ngALhFWACDq8vt04BSwjsPnAQD9XU4onUJPTo0sUSMTNIClhdgAnY6i3I+CnQQYHTZ85gZvERTFc9\nzmMGDuzg1rg6BSgQqABP8gQqxeUoYEMBr7rY6r5NW3CRpwZfH8/bC9qwiVkljQV4BKxx4zA0CoRb\n4NnV+fA6HLiT9/YNNzW3T4FzBJiAzyHhCxSIDoG/r12Lf6thJpcP7g+XyxUdlWYtKaCRABOwRo3B\nUChglsDmwt34X4cT87t1QnpamlnFshwKUKCBAM8BN8DgQwpEg8Cx0lLMPnka9zpjMKh372ioMutI\nAS0FmIC1bBYGRYHwCFRVV2PWzkJ8y1uDS0eOCE8h3CoFKBCQABNwQExciAL2EJibvxZdautwC4eZ\ntEeDshaWFuA5YEs3H4OnQOACf/h0NQqcLiwZmYOY2NjAV+SSFKBAWASYgMPCyo1SQC+Bj7cV4E+u\neCzt2Q1JiYl6BcdoKBClAkzAUdrwrHb0COwrLsYvK2vwSFIcenXrFj0VZ00poLkAzwFr3kAMjwId\nESgrK8fM/Ydwu8+DCUOGdGRTXJcCFAixABNwiEG5OQroIlBbW4sHNm7CKHXF8zfH896+urQL46CA\nX4AJ2C/BvxSwmcDv1b19zzhiMINjPNusZVkduwjwHLBdWpL1oEADgX9t2IBV6qKrFf37IC4ursEc\nPqQABXQRYALWpSUYBwVCJFCwZw9+U+fAs53TkJmRHqKtcjMUoECoBdgFHWpRbo8CERQoPXECs0pO\nYKbDh6F9+0YwEhZNAQq0JcAE3JYQ51PAIgI1NR7cU7ADX1X39p00ZrRFomaY0Szw8MMPY/LkyS0S\nzJ49G1OnTm1xvtVnMAFbvQUZPwXOCvw2Px9JPh+mnpdLEwpYQuD48eMoVr9T908+9f6trKz0P0VJ\nSQmOHDliPPd6vfWv2+UBE7BdWpL1iGqBP+flY73TjYdGjUAsh5mM6veCVSv/9NNPo0uXLujUqRMu\nvvhiVKsbh8i0a9cuXHTRRejVqxcWLVpk1eo1GzcvwmqWhS9SwDoCa3bswLJYNxZ374KU5GTrBM5I\nKdBAICkpCatWrYIcFV9++eXYod7XMskR8Pvvv48XXngB9957L2677Tbb7GTyCLjBG4APKWA1gYNH\njuK+sko8mOBCn6weVguf8VKgXkC6m2+88UY88sgjxmtlZWXG31GjRqFr16648vXId00AACAASURB\nVMorUaruZb19+/b6daz+gEfAVm9Bxh+1AhXqXNnMPftwi9qNPn8YL7qK2jeCDSouifWee+7BG2+8\nge7du2PcuHGQ88Eybdy40TgalqNjScRDhw61QY0/qwITsG2akhWJJoE6NczkQ2s3YBB8mHzh+dFU\nddbVhgKZmZn4+te/ju9+97vIyclBeno69qjfs8s0RI1hfumll6KmpgaPPvooYmLs03HLBGw0Mf+j\ngLUEfvfuezisLrZaMGaktQJntBRoIDBv3rz6Z3/7298g3c7JDa5jkC5pmerq6uDxeGw3qpvtEnB8\nfHx9g5r1QIb683eXmFVmIOXInqLT6dQyNrfbbezJRqK9ArETN11jezMvD3+NceFPQ/obV4wGUh8z\nl9HZzuFwQN578le3SWKSfzpexe4/6gz3Z6Jh8m3YPlK+HYdUtV0CrqqqathupjyWy+VlD023yeVy\nQe6Io2NsYiVxRaK9Amkn+aLRMbad+/fj/jOVWJDVFZ1SU7SMUVc7aXfZUZauTP9PXAJ5L5i1jCQZ\nSb5ypKfb5E/AzX0m5HuGU3AC9ulMD67+XIsClhE4ceoUZh0+hpnuGOQOG2aZuBkoBSjQvIDtjoCb\nryZfpYC1BWQUoPu2FuBSuejqosu0PK1gbWFGb7aA9EbI+7ojPXRyZC6nPHQ8pRCIJxNwIEpchgIR\nFnhqdT5iVQw/5jCTEW4JFh9KAelul1MCwU5yPl8SsFUn60ZuVXHGTYF2CrySvwYfudxYPmSgpb9s\n2lltLk4B2wswAdu+iVlBKwtsKCzE/FgXFnbJQFpqqpWrwtgpQIEmArwIqwkIn1JAF4HDx0ow52QZ\nHnDFYoAaiJ4TBShgLwEmYHu1J2tjE4FK9XO6WYVFmOKtxhdHDLdJrVgNClCgoQATcEMNPqaABgI+\n9fvoR9esQ89aL743gff21aBJGEIkBI4chuPj/6rbIR0OqvQrrriixfVmzZqFdevWtTjfrBk8B2yW\nNMuhQIACy9W9fYucLiwaNRwO9TMLThSIOoGi3Yh9Zh4camfUpwYnqf3pz4C+/QJikEFWZNSsgwcP\nNlpefvLkv2L62LFjxmAs/mUbLWjiEyZgE7FZFAXaEvjv1q14yRWHZb2ykJiQ0NbinE8Byws41uQh\n5s03Gtej7IyRfOVFhxrNL3bB74HklEbL1F31VXUbsAsavXbHHXegoKDAGObW//Omf/3rX1i4cKEx\nKqDcZemBBx4w1nniiSeM1w4dOoR//OMfxl2YGm3MhCdBJWC5Y4Xcm/Fb3/pWo4GzTYiXRVDAtgJF\nBw/hV9Ve/CYlET26drFtPVkxCjQU8A0eitrOjd/vjg3rEfvOqvrF6i68GL5RTW65mZFZP18efPTR\nR8YdlN59911sVTuy/i7oxx9/3EiwMs7097//fexXw7nKdPHFF+Puu+/GU089hWeeeca405Ixw8T/\ngkrAN910E5YtW4af//znuOaaa3DLLbfgkksusexoJCZ6sygKNCtw+swZzDxYjDudDowdNKjZZfgi\nBWwpkKKObOVfg8mX3Rt1aoxpx84dqBs0GL5JV0Ed1jZY4tyHO3fuxPjx440ZckvDtLQ0nDx5Ehs2\nbDBucygzpBtakrNMF154ofE3NzcXixcvNh6b/V/rNWohmquuugovvfQSdu3ahQsuuACPPfYYBg4c\niAcffBByOM+JAhQIXEC+FH6xaQsmeGtwneoi40SBqBdQyVa6mOXcr0+6mttIvuI1dOhQrF692qAr\nKirCKTV2eqdOnYzc9Pzzz+Pvf/+70Ws76OwO7qZNm4xlP/30U0yaNMl4bPZ/QR0B+4OUGybLXock\n4qysLJxRe/Hnn38+5JB/ypQp/sX4lwIUaEXgmdV5qHbE4H9yP9t7b2VRzqIABVoQmDhxIoYMGWJ0\nPUuSzcjIMJa87777jHyUlJQEuXPTrbfearz+f//3f3j99deNC7bkHHEkpqAS8NNPP20cssvhvfSp\nv/XWW/DvVVx77bWYMWMGE3AkWpNlWk7gzfXr8W93PFYM7Gd8OViuAgyYAhoJyLlcuWViw/sWf+1r\nX4P8q6ysRMLZCxuXL19uRC0Xasl40pGagkrAu3fvxpNPPmnsafjvE+mvwPDhw40T2v7n/EsBCjQv\nsEU+R74YPNclDRmqq4wTBSjQcYGGybfh1vzJt+FrkUy+EkdQCViOgFuaOnfuDPnHiQIUaFngWOlx\nzD5xGve4YjC4T5+WF+QcClDAtgJBJWDbarBiFDBBoEoNFDBn5y58Xd3b97LxE00okUVQQE+BWDXI\nhpyXDXaS9a08MQFbufUYuyUFfpO/Fhlw4AdfmGDJ+Bk0BUIh4PP5jOTbkQQscch2HA5HKEIyfRtM\nwKaTs8BoFnheXfG8TQ0zuWREDmIsvvceze3IundcQJKmXBjlH7EqmC3KOdzmzu0Gs61IrMMEHAl1\nlhmVAp+qIfL+nzMOS7K6IikpMSoNWGkKUOBzASbgzy34iAJhE9h/+DB+UVGDXye5kd29e9jK4YYp\nQAHrCAQ1EpZ1qsdIKRB5gfLyCszcdwA/rPPgvCFDIx8QI6AABbQQYALWohkYhF0F6tSdXH65YSOG\nez34Nke6smszs14UCEqACTgoNq5EgcAE5quLrk6oYSZnjecYz4GJcSkKfCZQp65uLlY/2ZO/gU7/\n8z//Y9yQYdq0aVizZk2gq0VsOZ4Djhg9C7a7wDsbN+JNGWayX29jvFm715f1o0CoBI5U1+CWzVtR\nVFmFfgnx+MPIHHQNYMjI1157Ddu3bzfuS5CY+PmFjh6Px/ipktOpV8rTK5pQtR63Q4EIC+zYuxeP\n1QLPZKSh89lB4SMcEoungJYCa0+fwZvHShvFtlbd2EeSr0zy946t2zG2yS0Lr+qSiS90/vyewDJC\n49GjR3HnnXeiVp36uUXdJleGTX7hhReM5/v27TOGUL766qsblRXJJ+yCjqQ+y7alwHF1k5IZx47j\n54465PTrZ8s6slIUCJWAO8aBdJez0b/EJrcflOdNl4lrssxdd92Fnj174rnnnjMSbl1dHeSfTG+/\n/TYWLVoEuS2hThOPgHVqDcZieQHp6rp323Z8RQ0zeVXuFyxfH1aAAuEWGJGcDPnXcJrSoxtuV0e9\nG86UYUxKMp4ZNgSdVJIOZpJ71suUmZmJanVOWacpuBrpVAPGQgGNBJ7My0e8GmZy2kQOM6lRszAU\niwmkq/Gh/zJ6BKpq6xAf27GOWp3Hi2YCttgbk+HqK/Bi3hrkO91YNmwwdP7Q6yvIyCjQWKCjybfx\n1vR7xgSsX5swIgsKrNu5E4vVGM+Lu3VGapOLRSxYHYZMAUsKbN261Yh7yZIlxt8LL7ywvh45OTl4\n5ZVX6p/r8KBjx/Y61IAxUCDCAofUlZf3nKnAg3FO9M3KinA0LJ4CFLCKAI+ArdJSjFNLgQp1N5dZ\nRfvwPYcPF+SM1jJGBkUBCugpwCNgPduFUVlAwKd+4vDw2vXor4aZvJHDTFqgxRgiBfQS4BGwXu3B\naCwksFgNM3ko1okFY0bC0eQ3iRaqBkOlQMQE5F6+Vr6fb0fhmIA7Ksj1o1LgP5u34G8uNcxkn55I\niI+PSgNWmgIdEXA4HB1Z3RbrMgHbohlZCTMFCg8cwEOeWjzZKRndOnc2s2iWRQEK2EiA54Bt1Jis\nSvgFTp4+jZnFR/FTXy1GDxgQ/gJZAgUoYFsBJmDbNi0rFmoBr9eL+zdvw8WeGnxt3NhQb57bowAF\nokzA1C7o9957D5s2bUJqaiomT56M+Cbnzt544w3IHSvS0tIwadIkZKi7yGzbtg3yun+aOnWqMd//\nnH8pYJbAM6vz1QjPDvzkvFyzimQ5FKCAjQVMS8BFRUXGraGmT5+ODz/8EKtWrcK1115bTysjmJxW\n3Xu33367kXTfeust3HjjjdipRhi64oorMGzYMGNZlxojlBMFzBZ4dc1afOByY/mQgdDtnqJmW7A8\nClAgNAKmJeDCwkKMHj3aGCM3NzcXCxYsaFSDfuq2bfJPJkmyp06dMh4fUBe8dO3aFR988AFkvYYJ\nuLS0FBs2bDCWk/9k/N2RI0fWPzfrQYoaetDn85lVXMDlxKifxkhcOsYmSUzaS3pDdJwkPvfZG4Cv\nUb0wz8a48Me+Wejdq1fEw/XHZQW7iGM1CUA+E0lJSYiLi2syJ/JP5apg+ee/hV7kI/o8Av8Vy829\n5/zzPl+ajwIVMC0Bn1T3SM06O0yf/O6rvLy8UYz+34LJci+//DKmTJlizJcPjEzS8PPmzcOcOXPq\nPzxya6ni4mJjvvwnX5rjxo2rf27WA12PiHROwJJ85YPbcIfKrPYKpBx/fIcOH8Fdh0vwSFoSRg4e\nHMiqYV9GYpOdKt3twg4RRAHynpPPq45JQ2KSfzon4Obec7W1tUG0BFcRgbAm4Llz5xr3X5SjUkmw\n/nsxyj1T5aix6VRSUgIZRPv6669Hnz59jNnSJe2f9u/fb5xDliNhmSShf/e73/XPNv7u2bOn0fNw\nP0lW97E8ceKElh8a+bDIh0PHD7Sc/09PT4f0Yug4SXyyM3j7+k34thpmcuLA0drEKm6SgCU+HSex\nq6qq0jE0Y+ddetf830U6BSk7zLJzJd+Puk3+noPmPq/NfZfrFr+u8YQ1Ac+ePbu+3tJVvHv3bowd\nOxZyPth/NOxfQD4US5cuxU033YReZ7v5JHEsXLgQt912m9EdeOTIEUycONG/Cv9SIKwCj61Zh+7q\noqtbzj8vrOVw4xSgQHQKhDUBNySVo+CCggIjocrFVtOmTTNmr1y5EnKbKJkne/TPP/+88XpnNcCB\nXPEsXcpyVCx7hd26dTsncTcsg48pECqBRR98iF1ye8FRwznMZKhQuR0KUKCRgEN1ZZl69VBNTU39\nxS2NImnliRwJSwIO5MIJs7ugpatcusZ17Oa1Qhd0w3P4rbwFTJ310dZteKiqBkt79kDPbl1NLTuQ\nwtgFHYhS88tIz5t0o7ILunmfll6VLujs7Gzs3bv3nEWkCzozM/Oc1/lC2wKmHQH7Q/Ffwel/Hshf\nafxAkm8g2+IyFGhNYO+hYvyqyoMnOqVomXxbi53zKEABawlwJCxrtRejDaPAmbIyzDhwCD/2eTFR\nnRbhRAEKUCCcAkzA4dTlti0jIFeLP7BxM8Z6a/CN8eb/lM0yUAyUAhQImQATcMgouSErCzz7aR7K\n1W8wZ5z9iZuV68LYKUABawiYfg7YGiyMMpoE3l6/Ae+447B8QF91gSCHOo2mtmddKRBJASbgSOqz\n7IgLbFO/SX/C58CzndORqQa44EQBClDALAF2QZslzXK0Eyg9fgKzSk9htvoUDO3bV7v4GBAFKGBv\nASZge7cva9eCgPwOdPb2nbjGU40rRo9qYSm+TAEKUCB8AkzA4bPlljUWeCJ/LdJ8dZjKe/tq3EoM\njQL2FuA5YHu3L2vXjMDK1XnYpO7tuzRnqDH4fTOL8CUKUIACYRdgAg47MQvQSSBv+3Ysd8ZhaY+u\nSE5O0ik0xkIBCkSZALugo6zBo7m6+9W9fe8vr8ZDiW5k9+gezRSsOwUooIEAj4A1aASGEH6B8ooK\nzNq7Hz9Qu5xfGMqLrsIvzhIoQIG2BHgE3JYQ51teoE4NM/nguo0Y6vXghgm5lq8PK0ABCthDgAnY\nHu3IWrQisFBddFUSG4PZuRzjuRUmzqIABUwWYBe0yeAszlyBdzduwj/d8VjRNxvxcXHmFs7SKEAB\nCrQiwATcCg5nWVtg5759eLTWh6fSU9GFNwy3dmMyegrYUIBd0DZsVFYJOH7qFGYcLcXPUIcR/fuT\nhAIUoIB2AkzA2jUJA+qogMfjwX1bC3C5Gmbyq2PHdHRzXJ8CFKBAWASYgMPCyo1GUuCpvHy4fD78\nmFc8R7IZWDYFKNCGAM8BtwHE2dYSeCV/DT51xWHZ0EFwOvn2tlbrMVoKRJcAv6Giq71tXdv1u3Zh\nQawLi7pmIjUlxdZ1ZeUoQAHrC7AL2vptyBoogeJjx3DP6XI84I5Fv549aUIBClBAewEmYO2biAG2\nJVBRWYnZhXswRV10dfHw4W0tzvkUoAAFtBBgAtaiGRhEsAK+ujo8snY9smu9+B4vugqWketRgAIR\nEOA54Aigs8jQCSxXw0zuj3ViwegRcMRwfzJ0stwSBSgQbgEm4HALc/thE/hgyxa8pIaZXJadhcSE\nhLCVww1TgAIUCIcAE3A4VLnNsAsUHTyIh2pq8URqEnp06RL28lgABShAgVALsM8u1KLcXtgFTp85\ng5mHjuAnvlqMGTgw7OWxAApQgALhEGACDocqtxk2Aa/Xi/s3bcFEdcXz18aNDVs53DAFKECBcAuw\nCzrcwtx+SAWeWZ0Pj8OBu3PHh3S73BgFKEABswWYgM0WZ3lBC7y+bj3+I8NMDu4Pl8sV9Ha4IgUo\nQAEdBJiAdWgFxtCmwObduzEPMZjfrRMy0tLaXJ4LUIACFNBdgOeAdW8hxodjpaWYfeI07o11YFDv\n3hShAAUoYAsBJmBbNKN9K1FVXY3ZOwvxTU8NLh010r4VZc0oQIGoE2ACjromt1aF5+avRefaOtw6\ngRddWavlGC0FKNCWAM8BtyXE+RETeF4NM1ngdGHJyBzExMZGLA4WTAEKUCAcAkzA4VDlNjss8ElB\nAf6fMw5Le3ZDUmJih7fHDVCAAhTQTYAJWLcWYTzYV1yMBypq8EhSHHp160YRClCAArYUsF0Cjo+P\nN72h4uLi4PP5TC+3rQJj1N2BnE6nlrG53W5IfE3b63RZGWbuP4TbnTG4ePTotqoYtvni1jS2sBXW\nzg3Hnu2O1zU+ne0cahAXee/JX90miUn++dtXp/jksyqTru85nazaE4vtEnBVVVV76h+SZavVlbp1\n6r60uk0yWEVtba2WsYmVmDVsL4n1HjXS1Sj48M3zzm80z2xb+aJpGJvZ5bdWXoK685Ps8Okan852\n4lZTUwP5zOo2SZKT5OvxeHQLzdhZlqCae89xUJzgm4tXQQdvxzVDLDBfXXR1yhGDGePHhXjL3BwF\nKEAB/QRsdwSsHzEjCkRg1YaNeNsVjxX9+0C69DlRgAIUsLsAE7DdW9gC9SvYswdzVQ/+/2amITMj\n3QIRM0QKUIACHRdgF3THDbmFDgiUnjiBWSUnMNPhw7B+/TqwJa5KAQpQwFoCTMDWai9bRSvDTN5T\nsANfUff2nTQmclc82wqVlaEABSwjwARsmaayX6D3vPkWktRVqdPOm2C/yrFGFKAABdoQ4DngNoA4\nOzwCz3/0EdY4YrFkVI6Wv3sMT625VQpQgAKfCzABf27BRyYJrNmxA4vgxCsjByFF/aaVEwUoQIFo\nFGAXdDS2egTrfPDIUdxXVolHkhMwuH//CEbCoilAAQpEVoAJOLL+UVV6RWUlZu3Zh5tra3Ax7+0b\nVW3PylKAAucKMAGfa8JXwiDgU8NOPrR2AwZ6PbhxAi+6CgMxN0kBClhMgOeALdZgVg13sRpm8rAa\n53bBmJFWrQLjpgAFKBBSASbgkHJyY80J/HvzZrzqisOKPtm8m0pzQHyNAhSISgEm4KhsdvMqvXP/\nfvzaU4d5nVLRtXOmeQWzJApQgAKaC/AcsOYNZOXwTpw6hVmHj+EuXy1GDuAVz1ZuS8ZOAQqEXoAJ\nOPSm3KIS8Hq9uH9LAS7x1ODacWNpQgEKUIACTQTYBd0EhE9DI/DU6nzI3t2d5+WGZoPcCgUoQAGb\nCTAB26xBdajO39asxUcuN5YPGQink28xHdqEMVCAAvoJ8NtRvzaxdEQbCgvxXIwTC7plIC011dJ1\nYfAUoAAFwinAc8Dh1I2ybR8+VoI5J8vwC1csBvTqFWW1Z3UpQAEKtE+ACbh9Xly6BYHKqirMKizC\nDd5qfHHE8BaW4ssUoAAFKOAXYAL2S/Bv0AIyzOSja9ahZ60X35/Ai66ChuSKFKBAVAnwHHBUNXd4\nKvuHvHwUOV1YNGo4HDHcpwuPMrdKAQrYTYAJ2G4tanJ9/rt1K/6ihplc1isLiby3r8n6LI4CFLCy\nABOwlVsvwrEXHTyEX1V78ZuURPTo2iXC0bB4ClCAAtYSYAK2VntpE+3pM2cw82Ax7oh1YOygQdrE\nxUAoQAEKWEWAJ+ys0lIaxSnDTD6waQtyvTX4xvhxGkXGUChAAQpYR4BHwNZpK20i/b0aZrLK4cDP\nc8drExMDoQAFKGA1ASZgq7VYhON9c/16vONW9/Yd2A8ulyvC0bB4ClCAAtYVYAK2btuZHvmW3bvx\npC8Gz3VJQ0anTqaXzwIpQAEK2EmA54Dt1JphrMux0uOYfeI07okFBvfpE8aSuGkKUIAC0SHABBwd\n7dyhWlZXV2POjl34mqcal40a1aFtcWUKUIACFPhMgAmY74Q2Bebmr0WGGm5yKoeZbNOKC1CAAhQI\nVIDngAOVitLl/pSXh21qmMklI3IQE6v6nzlRgAIUoEBIBJiAQ8Joz42s3l6AP8TGYUl2VyQlJdqz\nkqwVBShAgQgJsAs6QvC6F7v/8GH8orwGDye5kd29u+7hMj4KUIAClhPgEbDlmiz8AZeXV2DW3gP4\ngdo9O28IL7oKvzhLoAAFolGAR8DR2Oqt1Lmutha/Wr8Rw7we3MCLrlqR4iwKUIACHRNgAu6Yn+3W\nXrA6D8fVPX1n53KMZ9s1LitEAQpoJcAuaK2aI7LBvLNxI95wx2N5396Ii4uLbDAsnQIUoIDNBUxN\nwO+99x42bdqE1NRUTJ48GfHx8Y14ly5dipMnTxqv5eTk4KqrrkJJSQleffVVlJeX45JLLsGYMWMa\nrcMnoRHYsXcvHqsFnk5PRZfMjNBslFuhAAUoQIEWBUxLwEVFRditxhKePn06PvzwQ6xatQrXXntt\nfWA1NTU4ceIE7rrrLuO1GNUNKtOLL75oLJeRkYFnn30WgwcPRmIifxJj4ITov+Nqp2fGseP4udOB\n4f37h2ir3AwFKEABCrQmYFoCLiwsxOjRoxGrBnPIzc3FggULGsV16NAhpKSkGMm5u/rZy9ChQ435\np0+fRnZ2tvG4v0oOe9WR2rBhw4znZ9RN4ffs2WM8lv8kaXfu3Ln+uVkP5Eje5/OZVVzA5TidTtSp\nEazkX0uTR+343LttByap/Z1vXnxJS4uF/HW32220V0JCQsi3HYoNSnwOdctFHSdpV3m/0a79rSNt\nKqdX/Dv47d9C+NaQmOSftK9uk/+z0Nx7zj9Pt5itEI9pLS1dy1lZWYaJNKJ0KTecysrKjA9Gjx49\nkKdGX5Ij5i996UuN3oxy5NtwPemefuedd+o3I7fHu+222+qfm/VAutR1nOSD0daOwYy/v4ZElWce\nuPpqdXtB094OxheN7IylpaXpSKf1zoH/C9r/VzdASSLNfVHrEKe855KSktr8XEQq1kA+s5GKTcpt\n7vMqY8VzCk4grN+4c+fOhTTOyJEjjQ+kv6E8Ho9xtNsw5BEjRkD+ydRH3W3nySefxKRJkyBd0/5J\nHicnJ/ufol+/frj77rvrn8uDhkfEjWaE6YnEevTo0VaPMsNUdJublR2SWvWzopaOgF/OX4NPHDFY\nljMYpaUlbW4vlAtIr0F6ejoOqwE/dJwkvqqqKh1DM9xkx8p/vYRuQepsJwcBx48fN76XdHOTHRfZ\nQZDvR90miU16Ipv7vErPJafgBMKagGfPnl0f1YYNG4xzwGPHjjWObv1Hw/4F1qxZAzkKlgutjh07\nBumGljejdAXKUa8c/e7btw9f/vKX/avwbwcE1u3ciYWxLizq0Rmp/AB1QJKrUoACFAhOIKwJuGFI\nchRcUFCAhQsXQs7rTps2zZi9cuVKyBXPcvS7YsUK7Nq1C0eOHMH3vvc9Y/51111nvO71eo3lOvFG\n8A1Zg3pcfPQY7j1TgV/Fu9Cv52enBYLaEFeiAAUoQIGgBUxLwNKFccMNNxhdynJU65+mTJnif2gk\nZemmbvgb1EGDBkH+SbeMdKly6phARWUlZhbtxY0OHy7MGd2xjXFtClCAAhQIWuCz3/oEvXr7V2yY\nfJtbu2HybTifybehRnCPfepq6IfXrkc/NczkTbnjg9sI16IABShAgZAImHYEHJJouZEOCSxbnY+D\nsU4sHDMSDtUjwYkCFKAABSInwAQcOXtTS/7P5i142RWH5b17IqHJCGSmBsLCKEABClDAEGACjoI3\nQuGBA3jYU4vfdkpG9y7mD1QSBcSsIgUoQIF2C7Afst1k1lrhlLrifGbxUfzUV4vRAwZYK3hGSwEK\nUMDGAkzANm5cj/rp1r0bt+ACTw2uHTfWxjVl1ShAAQpYT4AJ2HptFnDE8z76GHVqmMm7z8sNeB0u\nSAEKUIAC5gjwHLA5zqaX8tradfiP040VQwc1Gk/b9EBYIAUoQAEKNCvABNwsi7Vf3FS4G087YrG4\nZ2ekq5sdtDQWtLVryegpQAEKWFuAXdDWbr9zoj9aUorZJ0/jflcMBqsbRXCiAAUoQAE9BZiA9WyX\noKKSu/fM2rUb31IXXX3p7J2lgtoQV6IABShAgbALMAGHndi8Ah5bsw7d1e0Hb53AYSbNU2dJFKAA\nBYIT4Dng4Ny0W+v/rc7DLqcLi0cNR4y6jSMnClCAAhTQW4AJWO/2CSi6j7dtwwvqiuelPXsgMSEh\noHW4EAUoQAEKRFaACTiy/h0ufe+hYvyy0oPHkhPQs1vXDm+PG6AABShAAXMEeA7YHOewlHKmrAwz\nDxzCj+o8GD94cFjK4EYpQAEKUCA8AkzA4XEN+1Zr1cVWD2zcjDHeGlzPe/uG3ZsFUIACFAi1ABNw\nqEVN2t5z6qKrcocDM3I5zKRJ5CyGAhSgQEgFeA44pJzmbOzt9RuwSu7tO6Av3G6XOYWyFApQgAIU\nCKkAE3BIOcO/sW1FRXjC58CzndORmZ4e/gJZAgUoQAEKhEWAXdBhYQ3PRkuPn8Cs0lOYrVptaN++\n4SmEW6UABShAAVMEmIBNYe54IdXV1ZizfSeu9lThitGjOr5BboECFKAALAzqZgAAEpBJREFUBSIq\nwC7oiPIHXvhv16xFKhz40cQJga/EJSlAAQpQQFsBJmBtm+bzwP6Sl4+NMtJVzlDEcpjJz2H4iAIU\noICFBZiANW+8vO3bsTTWjSU9uiA5OUnzaBkeBShAAQoEKsBzwIFKRWC5A0eO4P7yajyY4EbvHj0i\nEAGLpAAFKECBcAnwCDhcsh3cbnlFBWbu2Y/vx/hw/jBedNVBTq5OAQpQQDsBHgFr1yRAnRpm8sF1\nGzHU68GNE3jRlYZNxJAoQAEKdFiACbjDhKHfwBJ10VVJbAxm544L/ca5RQpQgAIU0EKAXdBaNMPn\nQby7aTP+roaZXNE3G/FxcZ/P4CMKUIACFLCVABOwRs25c98+POqtw1OdUtElM1OjyBgKBShAAQqE\nWoBd0KEWDXJ7x0+dwswjpfgZ6jBiQP8gt8LVKEABClDAKgJMwBq0lMfjwX1bC/BlTzW+OnaMBhEx\nBApQgAIUCLcAu6DDLRzA9p9SF1251DCT08/jvX0D4OIiFKAABWwhwAQc4Wb8mxrj+VN10dWyoYPg\ndLI5ItwcLJ4CFKCAaQL8xjeN+tyC1u/ahedinFjUPROpKSnnLsBXKEABClDAtgI8Bxyhpi0+dgz3\nnC7HA+5Y9OvZM0JRsFgKUIACFIiUABNwBOQrKisxu3APblAXXV08fHgEImCRFKAABSgQaQEmYJNb\nwFdXh0fWrkd2rRffn8CLrkzmZ3EUoAAFtBGw3TnguAiMHuV2u+Hz+QJq1MUf/hf71cVWy3PHIz4h\nIaB1gl1I7h0s/wKNLdhyglnP5VLXfTsciER7BRKvuOkcm7SpzvHpGpu85+TzquMkscXExBj/dItP\n4pJJ13bVzSvQeGyXgKurqwOte8iWq6mpQZ06sm1r+mDLFqyMdWFZ3yyVGGMQ7lglydWqGzsEEltb\nsYd6vnzZSBIJt0GwcUt8usaWmJhIuyAbVt5z8nnVsW0lycmOn4wLoNvkT8DNuem6Q6ObYXPx2C4B\nN1dJHV4rOngQD9XU4onUJPTo0kWHkBgDBShAAQpEUIAJ2AT802fOYOahI7hD9eKMGTjQhBJZBAUo\nQAEK6C7Ai7DC3EJerxf3b9qCieqK52+M5+0Fw8zNzVOAAhSwjACPgMPcVM+uzodHnU+8W110xYkC\nFKAABSjgF2AC9kuE4e/r69bj3zLM5OD+kAuiOFGAAhSgAAX8AkzAfokQ/928ezfmIQbzu3VCRlpa\niLfOzVGAAhSggNUFeA44DC14rLQUs0+cxr2xDgzq3TsMJXCTFKAABShgdQEm4BC3YJX6HfLsnYW4\nTl10demokSHeOjdHAQpQgAJ2EWACDnFLzs1fi861dZjKYSZDLMvNUYACFLCXAM8Bh7A9X1idhwKn\nC0tG5iBGjWjDiQIUoAAFKNCSABNwSzLtfP2TggL80RmHJVndkKSGCuREAQpQgAIUaE2ACbg1nQDn\n7Ss+hAcqavBIUhyyu3cLcC0uRgEKUIAC0SzAc8AdbP2TJ0/h53sPYmqtBxOGDOng1rg6BShAAQpE\niwATcAdaWu40NO3tf2GktwbfmcCRrjpAyVUpQAEKRJ0AE3AHmnyhuujqpBpmcjaveO6AIlelAAUo\nEJ0CPAccZLuv2rARb7ri8eaFE1Gn7t+p4z13g6waV6MABShAARMEeAQcBHLBnj2YWwf8JjMNPbt3\nD2ILXIUCFKAABaJdgAm4ne+A0hMnMKvkBGY6fBjWr1871+biFKAABShAgc8EmIDb8U6oqfHgnoId\nuFINMzlpzOh2rMlFKUABClCAAo0FmIAbe7T67Lf5+Ujy+fDj8ya0uhxnUoACFKAABdoS4EVYbQmd\nnf9S/hqsc7qxLGcIYjnMZIBqXIwCFKAABVoSYAJuSabB62t27MDiGBcWZ3VBSnJygzl8SAEKUIAC\nFAhOgF3QbbgdPHIU95VV4lfxLvTJ6tHG0pxNAQpQgAIUCEyAR8CtOFVUVmLWnn24SV3xfEEOL7pq\nhYqzKEABClCgnQI8Am4BzFdXh4fWbsBANcbzTbzoqgUlvkwBClCAAsEK8Ai4BbmlapjJw+piqwVj\nRrawBF+mAAUoQAEKBC/ABNyM3b83b8ZfXXFY0Scb8fHxzSzBlyhAAQpQgAIdE2ACPuu3Z9tWFKnf\n+Z6Ki8Ozg4bhd51S0LVzZsd0uTYFKEABClCgBQGeA1YwJ44dRc+//w2X7t+DP/QdiO/tLMCoAQNa\nIOPLFKAABShAgY4LMAErwx3qzkY9KitQlJKKr6ok/IOd2zouyy1QgAIUoAAFWhFgAlY4/YYMxmmX\nC7klxzBn41psSWfXcyvvGc6iAAUoQIEQCPAcsELsmt0bn3zxUtRt34ZKlxtDLrssBLTcBAUoQAEK\nUKBlASbgszbjvvhFQP5xogAFKEABCpggwC5oE5BZBAUoQAEKUKCpABNwUxE+pwAFKEABCpggwARs\nAjKLoAAFKEABCjQVYAJuKsLnFKAABShAARMEmIBNQGYRFKAABShAgaYCTMBNRficAhSgAAUoYIIA\nE7AJyCyCAhSgAAUo0FTA1N8Bv/fee9i0aRNSU1MxefLkRncaev/995GXl1cfX3JyMm6//XZs27YN\nb7zxRv3rU6dORVpaWv1zPqAABShAAQpYUcC0BFxUVITdu3dj+vTp+PDDD7Fq1Spce+219WYXX3wx\nLrjgAuP5W2+9VZ+cd+7ciSuuuALDhg0z5rnUkJGcKEABClCAAlYXMC0BFxYWYvTo0YhVN7nPzc3F\nggULGtnFxMRA/h04cACSrO+8805jvjzv2rUrPvjgA2O9hgm4uroaJ06cqN+Ow+FAw/n1M8L8wOl0\nwufzhbmU9m9e4hITnWOLRHsFIinvU11jk8+JtKmu8elsJ58H+VzU1dUF8jYwdRmJTex0nOQ9J5Ou\n7zkdzQKJybQEfPLkSWRlZRkxJSQkoLy8vNn45MhYjnj9De7/K93W8+bNw5w5cxCn7tkr0549e/DH\nP/6xfjtutxv33Xdf/XOzHsgOgo6TrslXrCQ2adtu3brpSKftjotg+T8TiYmJtGungCS49PT0dq5l\n3uI6f2ZFobnPa0VFhXlANisprAl47ty5kKPUkSNHQpKuPJbJ4/EgJSXlHMqysjIcOnQIQ4cOrZ8n\n54H90/79+41zyHIELdOQIUPwyCOP+GcbfyUpmzn16dPHiFnHPWrZW62trdVybz8+Pt74IiwuLjaz\nuQIuS+KrqqoKeHkzF5QEIkfAslOr46SznRwElJaW1n8X6eQnO1aygyDfj7pNElt2drbRQ9k0tua+\ny5suw+fNC4Q1Ac+ePbu+1A0bNhjngMeOHWt0MfuPhusXUA+2b9+O4cOHG0cf8roktYULF+K2226D\nHN0eOXIEEydObLgKH1OAAhSgAAUsKRDWBNxQRI6CCwoKjIR6+vRpTJs2zZi9cuVK5OTkGOeHJcH2\n6NGjfjXZ6xo3bhyWLFli7BVK90dzibt+BT6gAAUoQAEKWETAtAQsyfSGG25ATU2NcTTr95kyZYr/\nIa6++ur6x/4HcsQ7YcIEIwH7z/365/EvBShAAQpQwKoCpg/EIV3J7Z0keTP5tleNy1OAAhSggM4C\nDnUxh36/n9FZrElsM2fOxEMPPWRcZNZkFp+2IiC/75YBVu66665WluKs5gRef/1140roq666qrnZ\nfK0Vgd/97nf4+te/jv79+7eyFGc1FZALZH/961/j8ccfbzqLzzsgYFoXdAdi1HpVuVKW+zDtbyK5\nOltOR3Bqv4BcJavr70XbXxtz15D3nI6/WDBXof2lyXec/1cs7V+ba7QkYHoXdEuB8HUKUIACFKBA\nNAkwAUdTa7OuFKAABSigjQDPAXewKTZv3myMU80uwfZByjkl+dnZgAED2rcil8bhw4eN38o3NyoR\neVoX2LVrl/FTx6SkpNYX5NxGAl6vt36chkYz+KRDAkzAHeLjyhSgAAUoQIHgBNgFHZwb16IABShA\nAQp0SIAJuEN8XJkCFKAABSgQnAB/hhSEmwzm/vLLL9cPp9lwE//617+MG0bIa3IHpx/+8IcNZ0f9\n402bNhl3sWp4L2g/ivwueN++fUhLS8OkSZOQkZHhnxXVf+X820svvWScMx88ePA5I8adOXMGb7/9\ntjFfbmRy2WWXRbVXw8qXlJTg1VdfNe6+dskll2DMmDENZ0Ps5Fan8r6TIXG/+MUvNpofzU+2bduG\nf//735D337e//W107969EceaNWuQn59v/Azzm9/8pnHb2EYL8EmbAjwCbpOo8QJbt27F0qVLjTuq\nNJ7z2bMtW7ZA7uD005/+FLfeemtzi0Tta3KryVdeeaXZuwyJq4wRLnbyJfnWW29FrVPTir/77rvG\nl99PfvITI8nKmOoNp/fff9+Yf8cddxjz5cJATp8JvPjii8bO3NSpU42dlKa3zvvLX/5i3H3tRz/6\nkXGzGLk4kBOMz+hrr72G73//+/jGN76BP//5z41YxPE///mPcYAhO8t//etfG83nk8AEmIADc6pf\nSn6M3vAWifUz1AP5gb/c51i+AGXvkD/4b6gDyJWn3/nOdxq/ePZZv379cN111xnP5DaKp06dana5\naHyxsLDQuCmJXGkvdxPbsWNHIwa5snfEiBHGldGDBg0yEkmjBaL4iezUyW305L0no1/t3bu3XkM+\nn3Ilvrzf1q5dixtvvBHJycn186P5gbiIm9xzulevXqisrDSOhP0m8vrPfvYz4+i3qKgInTp18s/i\n33YIMAG3A0sWlS/Aln7CIN1Z8gGWf7InvWDBgnZu3d6LX3DBBfU3k29aU7lftPyTe9xK935zN+Zo\nuk60PBcT+cKTSf7KTl7DSZKv9C4cOHAAeXl53Hk5iyNHaU7n52fZmtrJ59XfBS2f1yeffNK4f3ZD\n22h93PA9Jwby2Wz6vpPX5ShYuvDl1Ain9gt8/u5s/7pRscYnn3wCOa8r05133tnqeUk5d3n33Xcb\ny8p9jWWvWo7k5PVonObOnWsMXye3opRurLYmOV8nt568/vrr0adPn7YWt+384uJiLF682KjfNddc\nY3z5Sc+LHKnJUIpNj9Lk3Kb0uHz88cdG971coxCtU8PP649//ONGw502tZMbw8gQi3KXNuldOHr0\nqPFbVzkXHI2TdDNL74pcuyLjjDccelKGP23uwOPLX/4yLr74YmM8fNkRDOZmO9Fo7a8zE7BfooW/\nX/jCFyD/ApkkgciFRDfffLPRXSMf+JSUlEBWteUys2fPDrhesqMi59Zvuukmo8sr4BVtuKDcE/uB\nBx6or9nu3buNC9fkC066+3r27Fk/Tx6sW7cOffv2Nd6n//jHP6J656Xp51USghy5ydGvXGglCcM/\nyVGdJBsZz12Si7wH4+Pj/bOj7u/kyZPr6yxd9/JdJjso/vHuG/YmyHfdP//5T9xyyy3GOuLGwYjq\n+QJ+wAQcMFXLC65evRr79+/Ht771LeODLEdxx44dw+WXX95il2vLW4uuOStXrjSuPpULi6Tb6/nn\nnzcAOnfuDLlwhhOMq5rl4jXp6pOjYDkqlunhhx82zsNlZWUZ3faSTOS2naNHjybbWQG5rmDFihXG\nDrEc2cq5yoafVzn6lQuIpAta5sm1CJw++wVHbm6ucRpNuun912f4P6/yHpOePdlplgMNuRCLCbj9\n7xyOhNV+szbXkO4auYcx35BtUnGBdgjIF11rXXxtzW9HUbZbVD6TsvPS0kS75mXkJ0jyXSb/mpvE\nTVwdDkdzs/laGwJMwG0AcTYFKEABClAgHALN79aEoyRukwIUoAAFKECBegEm4HoKPqAABShAAQqY\nJ8AEbJ41S6IABShAAQrUCzAB11PwAQXMFZCfeMiV8/PnzzcKlivpZaAX+akRJwpQwP4CvAjL/m3M\nGmos8OGHH0JuTLF9+3bjZ1fDhg2DDGDCiQIUsL8AE7D925g11FxAbgQgd5WRASM2bNgQ1YNBaN5U\nDI8CIRXgQBwh5eTGKNB+gTlz5mDAgAF4+umnmXzbz8c1KGBZAR4BW7bpGLhdBH7wgx8YXdBypx65\nnWW0jh1ul/ZkPSgQqAAvwgpUistRIAwCchejN998E6+//jouuugizJw5MwylcJMUoICOAjwC1rFV\nGFNUCMg5X7nBwmOPPQYZCP/w4cPGuNgy7nPDmwZEBQYrSYEoFGACjsJGZ5UpQAEKUCDyAuyCjnwb\nMAIKUIACFIhCASbgKGx0VpkCFKAABSIvwAQc+TZgBBSgAAUoEIUCTMBR2OisMgUoQAEKRF6ACTjy\nbcAIKEABClAgCgWYgKOw0VllClCAAhSIvAATcOTbgBFQgAIUoEAUCjABR2Gjs8oUoAAFKBB5ASbg\nyLcBI6AABShAgSgU+P+76juTKYEuOwAAAABJRU5ErkJggg==\n"
}
],
"prompt_number": 18
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Affichage de la ligne avec Octave (clone de Matlab)"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%load_ext oct2py.ipython"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 19
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%octave -i x x"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"text": [
"[[ 186139.12370417 188199.12279851]]"
]
},
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 20,
"text": [
"array([[ 186139.12370417, 188199.12279851]])"
]
}
],
"prompt_number": 20
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%octave -i y y"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"text": [
"[[ 53082.65419398 53467.75855873]]"
]
},
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 21,
"text": [
"array([[ 53082.65419398, 53467.75855873]])"
]
}
],
"prompt_number": 21
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%%octave -s 480,480 -f svg\n",
"plot(x,y);"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"svg": [
"<svg height=\"480px\" viewBox=\"0 0 230 230\" width=\"480px\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<desc>Produced by GNUPLOT 4.2 patchlevel 6 </desc>\n",
"\n",
"<defs>\n",
"\n",
"\t<circle id=\"gpDot\" r=\"0.5\" stroke-width=\"0.5\"/>\n",
"\t<path d=\"M-1,0 h2 M0,-1 v2\" id=\"gpPt0\" stroke=\"currentColor\" stroke-width=\"0.333\"/>\n",
"\t<path d=\"M-1,-1 L1,1 M1,-1 L-1,1\" id=\"gpPt1\" stroke=\"currentColor\" stroke-width=\"0.333\"/>\n",
"\t<path d=\"M-1,0 L1,0 M0,-1 L0,1 M-1,-1 L1,1 M-1,1 L1,-1\" id=\"gpPt2\" stroke=\"currentColor\" stroke-width=\"0.333\"/>\n",
"\t<rect height=\"2\" id=\"gpPt3\" stroke=\"currentColor\" stroke-width=\"0.333\" width=\"2\" x=\"-1\" y=\"-1\"/>\n",
"\t<rect fill=\"currentColor\" height=\"2\" id=\"gpPt4\" stroke=\"currentColor\" stroke-width=\"0.333\" width=\"2\" x=\"-1\" y=\"-1\"/>\n",
"\t<circle cx=\"0\" cy=\"0\" id=\"gpPt5\" r=\"1\" stroke=\"currentColor\" stroke-width=\"0.333\"/>\n",
"\t<use fill=\"currentColor\" id=\"gpPt6\" stroke=\"none\" xlink:href=\"#gpPt5\"/>\n",
"\t<path d=\"M0,-1.33 L-1.33,0.67 L1.33,0.67 z\" id=\"gpPt7\" stroke=\"currentColor\" stroke-width=\"0.333\"/>\n",
"\t<use fill=\"currentColor\" id=\"gpPt8\" stroke=\"none\" xlink:href=\"#gpPt7\"/>\n",
"\t<use id=\"gpPt9\" stroke=\"currentColor\" transform=\"rotate(180)\" xlink:href=\"#gpPt7\"/>\n",
"\t<use fill=\"currentColor\" id=\"gpPt10\" stroke=\"none\" xlink:href=\"#gpPt9\"/>\n",
"\t<use id=\"gpPt11\" stroke=\"currentColor\" transform=\"rotate(45)\" xlink:href=\"#gpPt3\"/>\n",
"\t<use fill=\"currentColor\" id=\"gpPt12\" stroke=\"none\" xlink:href=\"#gpPt11\"/>\n",
"</defs>\n",
"<g style=\"fill:none; color:white; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter\">\n",
"</g>\n",
"<g style=\"fill:none; color:white; stroke:currentColor; stroke-width:0.50; stroke-linecap:butt; stroke-linejoin:miter\">\n",
"</g>\n",
"<g style=\"fill:none; color:black; stroke:currentColor; stroke-width:0.50; stroke-linecap:butt; stroke-linejoin:miter\">\n",
"\t<path d=\"M53.2,206.4 L61.6,206.4 M216.4,206.4 L208.0,206.4 \"/>\n",
"\t<g style=\"stroke:none; fill:rgb(0,0,0); font-family:{}; font-size:10.00pt; text-anchor:end\" transform=\"translate(47.6,209.4)\">\n",
"\t\t<text><tspan>53000</tspan>\n",
"\t\t</text>\n",
"\t</g>\n",
"\t<path d=\"M53.2,167.4 L61.6,167.4 M216.4,167.4 L208.0,167.4 \"/>\n",
"\t<g style=\"stroke:none; fill:rgb(0,0,0); font-family:{}; font-size:10.00pt; text-anchor:end\" transform=\"translate(47.6,170.4)\">\n",
"\t\t<text><tspan>53100</tspan>\n",
"\t\t</text>\n",
"\t</g>\n",
"\t<path d=\"M53.2,128.3 L61.6,128.3 M216.4,128.3 L208.0,128.3 \"/>\n",
"\t<g style=\"stroke:none; fill:rgb(0,0,0); font-family:{}; font-size:10.00pt; text-anchor:end\" transform=\"translate(47.6,131.3)\">\n",
"\t\t<text><tspan>53200</tspan>\n",
"\t\t</text>\n",
"\t</g>\n",
"\t<path d=\"M53.2,89.3 L61.6,89.3 M216.4,89.3 L208.0,89.3 \"/>\n",
"\t<g style=\"stroke:none; fill:rgb(0,0,0); font-family:{}; font-size:10.00pt; text-anchor:end\" transform=\"translate(47.6,92.3)\">\n",
"\t\t<text><tspan>53300</tspan>\n",
"\t\t</text>\n",
"\t</g>\n",
"\t<path d=\"M53.2,50.2 L61.6,50.2 M216.4,50.2 L208.0,50.2 \"/>\n",
"\t<g style=\"stroke:none; fill:rgb(0,0,0); font-family:{}; font-size:10.00pt; text-anchor:end\" transform=\"translate(47.6,53.2)\">\n",
"\t\t<text><tspan>53400</tspan>\n",
"\t\t</text>\n",
"\t</g>\n",
"\t<path d=\"M53.2,11.2 L61.6,11.2 M216.4,11.2 L208.0,11.2 \"/>\n",
"\t<g style=\"stroke:none; fill:rgb(0,0,0); font-family:{}; font-size:10.00pt; text-anchor:end\" transform=\"translate(47.6,14.2)\">\n",
"\t\t<text><tspan>53500</tspan>\n",
"\t\t</text>\n",
"\t</g>\n",
"\t<path d=\"M53.2,206.4 L53.2,198.0 M53.2,11.2 L53.2,19.6 \"/>\n",
"\t<g style=\"stroke:none; fill:rgb(0,0,0); font-family:{}; font-size:10.00pt; text-anchor:middle\" transform=\"translate(53.2,221.4)\">\n",
"\t\t<text><tspan>186000</tspan>\n",
"\t\t</text>\n",
"\t</g>\n",
"\t<path d=\"M85.8,206.4 L85.8,198.0 M85.8,11.2 L85.8,19.6 \"/>\n",
"\t<g style=\"stroke:none; fill:rgb(0,0,0); font-family:{}; font-size:10.00pt; text-anchor:middle\" transform=\"translate(85.8,221.4)\">\n",
"\t\t<text><tspan>186500</tspan>\n",
"\t\t</text>\n",
"\t</g>\n",
"\t<path d=\"M118.5,206.4 L118.5,198.0 M118.5,11.2 L118.5,19.6 \"/>\n",
"\t<g style=\"stroke:none; fill:rgb(0,0,0); font-family:{}; font-size:10.00pt; text-anchor:middle\" transform=\"translate(118.5,221.4)\">\n",
"\t\t<text><tspan>187000</tspan>\n",
"\t\t</text>\n",
"\t</g>\n",
"\t<path d=\"M151.1,206.4 L151.1,198.0 M151.1,11.2 L151.1,19.6 \"/>\n",
"\t<g style=\"stroke:none; fill:rgb(0,0,0); font-family:{}; font-size:10.00pt; text-anchor:middle\" transform=\"translate(151.1,221.4)\">\n",
"\t\t<text><tspan>187500</tspan>\n",
"\t\t</text>\n",
"\t</g>\n",
"\t<path d=\"M183.8,206.4 L183.8,198.0 M183.8,11.2 L183.8,19.6 \"/>\n",
"\t<g style=\"stroke:none; fill:rgb(0,0,0); font-family:{}; font-size:10.00pt; text-anchor:middle\" transform=\"translate(183.8,221.4)\">\n",
"\t\t<text><tspan>188000</tspan>\n",
"\t\t</text>\n",
"\t</g>\n",
"\t<path d=\"M216.4,206.4 L216.4,198.0 M216.4,11.2 L216.4,19.6 \"/>\n",
"\t<g style=\"stroke:none; fill:rgb(0,0,0); font-family:{}; font-size:10.00pt; text-anchor:middle\" transform=\"translate(216.4,221.4)\">\n",
"\t\t<text><tspan>188500</tspan>\n",
"\t\t</text>\n",
"\t</g>\n",
"\t<path d=\"M53.2,11.2 L53.2,206.4 L216.4,206.4 L216.4,11.2 L53.2,11.2 Z \"/>\n",
"</g>\n",
"<g style=\"fill:none; color:red; stroke:currentColor; stroke-width:0.50; stroke-linecap:butt; stroke-linejoin:miter\">\n",
"\t<path d=\"M62.3,174.1 L196.8,23.8 \" stroke=\"rgb( 0, 0, 255)\"/>\n",
"</g>\n",
"<g style=\"fill:none; color:black; stroke:currentColor; stroke-width:0.50; stroke-linecap:butt; stroke-linejoin:miter\">\n",
"</g>\n",
"</svg>"
]
}
],
"prompt_number": 22
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"###Traitements divers avec R"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%Rpush x y"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 23
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%R lm(y~x)$coef"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 24,
"text": [
"<Matrix - Python:0x121de5c68 / R:0x122224808>\n",
"[53082.654194, NA_real_, NA_real_, 53467.758559, NA_real_, NA_real_]"
]
}
],
"prompt_number": 24
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"Xr = x - x.mean(); Yr = y - y.mean()\n",
"pente = (Yr*Yr).sum() / (Xr**2).sum()\n",
"interception = x.mean() - x.mean() * pente\n",
"(interception, pente)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 25,
"text": [
"(180627.92926224536, 0.034948039908857427)"
]
}
],
"prompt_number": 25
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%R resid(lm(y~x)); coef(lm(x~y))"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 26,
"text": [
"<Matrix - Python:0x107606b48 / R:0x10f824e60>\n",
"[186139.123704, NA_real_, NA_real_, 188199.122799, NA_real_, NA_real_]"
]
}
],
"prompt_number": 26
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"b = %R a=resid(lm(y~x))"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 27
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"print b"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
" [,1] [,2]\n",
"1 0 0\n",
"\n"
]
}
],
"prompt_number": 28
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"v1 = %R plot(x,y); print(summary(lm(y~x))); vv=mean(x)*mean(y)\n",
"print 'v1 est \u00e9gal \u00e0 :', v1\n",
"v2 = %R mean(x)*mean(y)\n",
"print 'v2 est \u00e9gal \u00e0:', v2"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"text": [
"Response Y1 :\n",
"\n",
"Call:\n",
"lm(formula = Y1 ~ x)\n",
"\n",
"Residuals:\n",
"ALL 1 residuals are 0: no residual degrees of freedom!\n",
"\n",
"Coefficients: (2 not defined because of singularities)\n",
" Estimate Std. Error t value Pr(>|t|)\n",
"(Intercept) 53083 NA NA NA\n",
"x1 NA NA NA NA\n",
"x2 NA NA NA NA\n",
"\n",
"Residual standard error: NaN on 0 degrees of freedom\n",
"\n",
"\n",
"Response Y2 :\n",
"\n",
"Call:\n",
"lm(formula = Y2 ~ x)\n",
"\n",
"Residuals:\n",
"ALL 1 residuals are 0: no residual degrees of freedom!\n",
"\n",
"Coefficients: (2 not defined because of singularities)\n",
" Estimate Std. Error t value Pr(>|t|)\n",
"(Intercept) 53468 NA NA NA\n",
"x1 NA NA NA NA\n",
"x2 NA NA NA NA\n",
"\n",
"Residual standard error: NaN on 0 degrees of freedom\n",
"\n",
"\n"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\nYII=\n"
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"v1 est égal à: [1] 9971473668\n",
"\n",
"v2 est égal à: [1] 9971473668\n",
"\n"
]
}
],
"prompt_number": 29
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment