Skip to content

Instantly share code, notes, and snippets.

@gauravsdeshmukh
Created July 9, 2018 18:51
Show Gist options
  • Save gauravsdeshmukh/89522824e8838bd2a98a5a9c1a984081 to your computer and use it in GitHub Desktop.
Save gauravsdeshmukh/89522824e8838bd2a98a5a9c1a984081 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# BlackDeath \n",
"\n",
"### This program aims to simulate the change in a population which has been affected by a specific disease over a specfic period of time. \n",
"\n",
"### The name of the project BlackDeath is inspired by the disease of the same name that ravaged Europe in the Middle Ages. To make the simulation more interesting (and much more Medieval Age like), the geometry is modified in a such a way that healthy people and diseased people are on two sides of a river which is separated by a single narrow bridge. The program aims to see whether the disease spreads and causes devastation in the healthy population\n",
"\n",
"### The disease is characterized by three probabilities which are:\n",
" - Infection probability\n",
" - Cure probability \n",
" - Death probability"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 1. Importing the required modules"
]
},
{
"cell_type": "code",
"execution_count": 234,
"metadata": {},
"outputs": [],
"source": [
"import scipy as sci\n",
"import matplotlib.pyplot as plt\n",
"from matplotlib import colors\n",
"import matplotlib.animation as animation\n",
"from IPython.display import HTML\n",
"\n",
"%matplotlib inline"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 2. Define working parameters:\n",
" - rows= The number of rows in the initial starting population grid\n",
" - cols= The nubmer of columns in the initial starting population grid\n",
" - ratio= The number of infected people per 100 healthy people in the initial starting grid\n",
" - time= The time duration for which the simulation is to be run\n",
" - die=Probability of death (All probabilities can be varied upto the third decimal)\n",
" - infect=Probability of infection/spread\n",
" - cure=Probability of getting cured\n"
]
},
{
"cell_type": "code",
"execution_count": 199,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"#Define number of rows in the space\n",
"rows=100\n",
"#Define number of columns in the space\n",
"cols=100\n",
"#Define number of infected people initially per 100 healthy people\n",
"ratio=40\n",
"#Define the max time for which the simulation will run\n",
"time=1500\n",
"timespan=sci.arange(0,time,1) ##Do not touch this\n",
"#Define probabilities for death, infection and cure (can be varied upto third decimal)\n",
"die=0.006\n",
"infect=0.8\n",
"cure=0.3"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 3. Function Space\n",
"\n",
"All the requisite functions have been defined below."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### AddPeople\n",
"\n",
"This function adds people to the empty population grid. It can add three possible things to the grid:\n",
" - No person (0)\n",
" - Healthy person (1)\n",
" - Infected person (100)\n",
" \n",
"The numbers in brackets represent their values in the matrix"
]
},
{
"cell_type": "code",
"execution_count": 200,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def AddPeople(space,ratio):\n",
" init1=sci.zeros(100)\n",
" init2=sci.ones(100)\n",
" init3=sci.append(init1,init2)\n",
" init4=sci.array([100]*ratio)\n",
" initialize=sci.append(init3,init4)\n",
" \n",
" for i in range(1,rows-1):\n",
" for j in range(1,cols-1):\n",
" space[i,j]=sci.random.choice(initialize)\n",
" \n",
" return space"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### AddCustomPeople\n",
"\n",
"Use this module to initiliaze the population in a specific geometry."
]
},
{
"cell_type": "code",
"execution_count": 201,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def AddCustomPeople(space,ratio):\n",
" init1=sci.zeros(100)\n",
" init2=sci.ones(100)\n",
" factor=1.2 #increase factor to increase infected people in smaller region\n",
" ratio=int(factor*ratio)\n",
" init3=sci.array([100]*ratio)\n",
" temp1=sci.append(init1,init2)\n",
" init_healthy=sci.append(temp1,sci.zeros(ratio))\n",
" temp2=sci.append(init1,init3)\n",
" init_infected=sci.append(temp2,sci.zeros(100))\n",
" \n",
" #add healthy people\n",
" for i in range(1,61):\n",
" for j in range(1,cols-1):\n",
" space[i,j]=sci.random.choice(init_healthy)\n",
"\n",
" #add infected people\n",
" for i in range(71,rows-1):\n",
" for j in range(1,cols-1):\n",
" space[i,j]=sci.random.choice(init_infected)\n",
" \n",
" return space"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### ImposeBorders\n",
"\n",
"This function adds borders to the edges of the grid. Borders are represented by '0.1'. The user can add specifc geomertries in the space provided below"
]
},
{
"cell_type": "code",
"execution_count": 202,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def ImposeBorders(space):\n",
" space[0,:]=0.1\n",
" space[-1,:]=0.1\n",
" space[:,0]=0.1\n",
" space[:,-1]=0.1\n",
" #Add case specific conditions here\n",
" space[61:71,:]=0.1 #River\n",
" space[61:71,45:56]=0 #Bridge\n",
" #End case specific conditions\n",
" return space"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### AddDirections\n",
"\n",
"The directions for movement of each person are stored in a matrix which has dimensions equal to that of the population grid. The values for direction range from 0 to 7 with 0 being the north direction and every succeeding number a 45 degree move to the right."
]
},
{
"cell_type": "code",
"execution_count": 203,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def AddDirections(space):\n",
" [rows,cols]=space.shape\n",
" direction=sci.random.randint(0,8,(rows,cols))\n",
" return direction"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### CheckProbability\n",
"\n",
"This function is used to check the outcome of an event with the probability that is supplied to it as an argument. It multiplies the supplied probability by 1000. So if the probability is 0.2, it means 200 out of 1000. So an array of 200 '1's is created and an array of 800 '0's is created. These arrays are combined and an element is picked at random. If it is a '1', the event occurs, otherwise it does not."
]
},
{
"cell_type": "code",
"execution_count": 204,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def CheckProbability(prob):\n",
" proboutofthousand=int(prob*1000)\n",
" poss1=sci.ones(proboutofthousand)\n",
" poss2=sci.zeros(1000-proboutofthousand)\n",
" possibilities=sci.append(poss1,poss2)\n",
" verdict=sci.random.choice(possibilities)\n",
" if(verdict==1):\n",
" return True\n",
" else:\n",
" return False"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Move\n",
"\n",
"This function is used to move a person according to the direction vector assigned to him/her every timestep. The function checks the direction vector and then checks whether there is space to move. If yes, then the variables are swapped. If not, then the direction vector is randomly switched to the right or left by 1 and then all the conditions checked again. This is repeated 7 times and if the person cannot move, he/she remains stationary for the timestep.\n",
"The sweep direction is changed every timestep to ensure that no bias exists in any direction. "
]
},
{
"cell_type": "code",
"execution_count": 205,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def Move(prevspace,direction,timestep):\n",
" space=sci.copy(prevspace)\n",
" check=sci.zeros((space.shape[0],space.shape[1])) #zero indicates not moved\n",
" [rows,cols]=space.shape\n",
" sweep=sci.random.choice([0,1,2,3])\n",
" if(sweep==0):\n",
" irange=range(1,rows-1)\n",
" jrange=range(1,cols-1)\n",
" elif(sweep==1):\n",
" irange=range(1,rows-1)\n",
" jrange=reversed(range(1,cols-1))\n",
" elif(sweep==2):\n",
" irange=reversed(range(1,rows-1))\n",
" jrange=range(1,cols-1)\n",
" elif(sweep==3):\n",
" irange=reversed(range(1,rows-1))\n",
" jrange=reversed(range(1,cols-1))\n",
" for i in irange:\n",
" for j in jrange:\n",
" direct=direction[i,j]\n",
" if((space[i,j]==1 or space[i,j]==100) and check[i,j]==0):\n",
" count=0\n",
" shift=sci.random.choice([1,-1])\n",
" while(space[i,j]!=0):\n",
" count+=1\n",
" if(direct==0 and space[i-1,j]==0):\n",
" space[i-1,j],space[i,j]=space[i,j],space[i-1,j]\n",
" check[i-1,j]=1\n",
" elif(direct==1 and space[i-1,j+1]==0):\n",
" space[i-1,j+1],space[i,j]=space[i,j],space[i-1,j+1]\n",
" check[i-1,j+1]=1\n",
" elif(direct==2 and space[i,j+1]==0):\n",
" space[i,j+1],space[i,j]=space[i,j],space[i,j+1]\n",
" check[i,j+1]=1\n",
" elif(direct==3 and space[i+1,j+1]==0):\n",
" space[i+1,j+1],space[i,j]=space[i,j],space[i+1,j+1]\n",
" check[i+1,j+1]=1\n",
" elif(direct==4 and space[i+1,j]==0):\n",
" space[i+1,j],space[i,j]=space[i,j],space[i+1,j]\n",
" check[i+1,j]=1\n",
" elif(direct==5 and space[i+1,j-1]==0):\n",
" space[i+1,j-1],space[i,j]=space[i,j],space[i+1,j-1]\n",
" check[i+1,j-1]=1\n",
" elif(direct==6 and space[i,j-1]==0):\n",
" space[i,j-1],space[i,j]=space[i,j],space[i,j-1]\n",
" check[i,j-1]=1\n",
" elif(direct==7 and space[i-1,j-1]==0):\n",
" space[i-1,j-1],space[i,j]=space[i,j],space[i-1,j-1]\n",
" check[i-1,j-1]\n",
" else:\n",
" direct+=shift\n",
" if(direct>7):\n",
" direct=0\n",
" elif(direct<0):\n",
" direct=7\n",
" \n",
" if(count>7):\n",
" break\n",
" \n",
" return space"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### CountNeighbours\n",
"\n",
"This function checks the number of neighbours for a particular person by adding the values of all the neighbours. The floor function is used because if borders (which have a value of 0.1) are added, then their effect is removed by using the floor function. So the borders are not in any way counted as neighbours"
]
},
{
"cell_type": "code",
"execution_count": 206,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def CountNeighbours(space):\n",
" [rows,cols]=space.shape\n",
" N=sci.zeros((rows,cols))\n",
" for i in range(1,rows-1):\n",
" for j in range(1,cols-1):\n",
" N[i,j]=space[i+1,j]+space[i+1,j+1]+space[i,j+1]+space[i-1,j+1]+space[i-1,j]+space[i-1,j-1]+space[i,j-1]+space[i+1,j-1]\n",
" N=sci.floor(N)\n",
" return N"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### CheckInfected\n",
"\n",
"This function checks the number of infected neighbours that a person has. Since infected neighbours have a value of 100 and healthy neighbours have a value of 1, simply dividing the total value of sum of neighbours will give the following:\n",
" - Quotient= Number of infected people\n",
" - Remainder= Number of healthy people"
]
},
{
"cell_type": "code",
"execution_count": 207,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def CheckInfected(neighbours):\n",
" N=neighbours\n",
" infected=N//100\n",
" healthy=N%100\n",
" return [infected,healthy]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### CheckHealth\n",
"\n",
"This function checks the condition of each person and applies the appropriate probabilities by calling the CheckProbability function. For every timestep:\n",
" - A healthy person with even one infected neighbour is checked for infection\n",
" - An infected person is checked for cure and death.\n",
" - In case of death, the person's value is set to 0.\n",
" - In case of cure, the person's value is set to 1 from 100.\n",
" - In case both conditions become true, one is picked at random and above changes made.\n",
" \n",
"Also, the number of people that have died and cured in a timestep is recorded."
]
},
{
"cell_type": "code",
"execution_count": 208,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def CheckHealth(prevspace,neighbours,die,cure,infect):\n",
" space=sci.copy(prevspace)\n",
" [rows,cols]=space.shape\n",
" [infected,healthy]=CheckInfected(neighbours)\n",
" deathcount=0\n",
" healcount=0\n",
" for i in range(1,rows-1):\n",
" for j in range(1,cols-1):\n",
" if(space[i,j]==1 or space[i,j]==100):\n",
" contagion=None\n",
" death=None\n",
" heal=None\n",
" if(infected[i,j]>0 and space[i,j]!=100):\n",
" contagion=CheckProbability(infect)\n",
" \n",
" if(space[i,j]!=1 and space[i,j]==100):\n",
" death=CheckProbability(die)\n",
" heal=CheckProbability(cure)\n",
" \n",
" if(contagion==True):\n",
" space[i,j]=100\n",
" \n",
" if(death==True and heal==False):\n",
" space[i,j]=0\n",
" deathcount+=1\n",
" \n",
" if(death==False and heal==True):\n",
" space[i,j]=1\n",
" healcount+=1\n",
" \n",
" if(death==True and cure==True):\n",
" if(sci.random.choice([0,1])==0):\n",
" space[i,j]=0\n",
" deathcount+=1\n",
" else:\n",
" space[i,j]=1\n",
" healcount+=1\n",
" return [space,deathcount,healcount]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 4. Initilialization \n",
"\n",
"We initialize the population grid and make suitable adjustments"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Creating empty population grid and direction matrix"
]
},
{
"cell_type": "code",
"execution_count": 209,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"barren=sci.zeros((rows,cols))\n",
"aimless=sci.zeros((rows,cols))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Adding people and directions to empty matrices"
]
},
{
"cell_type": "code",
"execution_count": 210,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"populace=AddCustomPeople(barren,ratio)\n",
"populace=ImposeBorders(populace)\n",
"nextpop=populace"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Creating a 3D matrix to store population grids for every timestep"
]
},
{
"cell_type": "code",
"execution_count": 211,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"resultpop=sci.zeros((rows,cols,time+1))\n",
"resultpop[:,:,0]=nextpop"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Create arrays to store the number of infected, healthy, dead and cured people for each timestep"
]
},
{
"cell_type": "code",
"execution_count": 212,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"infectedpeople=sci.zeros(time)\n",
"healthypeople=sci.zeros(time)\n",
"deadpeople=sci.zeros(time)\n",
"healedpeople=sci.zeros(time)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 5. The Run\n",
"\n",
"Now that the initialization is done, the simulation is run for the number of timesteps specified. The following steps are performed in one timestep:\n",
"1. Add random directions to every person\n",
"2. Count the number of neighbours for every person\n",
"3. Check the health of the population (healthy,infected,cured,dead)\n",
"4. Store the number of healthy, infected, cured and dead people in the respective arrays\n",
"5. Move the people according to their assigned directions"
]
},
{
"cell_type": "code",
"execution_count": 213,
"metadata": {},
"outputs": [],
"source": [
"for i in range(time):\n",
" if(i%5==0): #change directions every 5 timesteps\n",
" direction=AddDirections(aimless)\n",
" neighbours=CountNeighbours(nextpop)\n",
" [alivepop,deadpop,healedpop]=CheckHealth(nextpop,neighbours,die,cure,infect)\n",
" infectedpeople[i]=sci.sum(len(nextpop[nextpop==100]))\n",
" healthypeople[i]=sci.sum(len(nextpop[nextpop==1]))\n",
" deadpeople[i]=deadpop\n",
" healedpeople[i]=healedpop\n",
" nextpop=Move(alivepop,direction,i) \n",
" resultpop[:,:,i+1]=nextpop"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Setting the final arrays for plotting"
]
},
{
"cell_type": "code",
"execution_count": 214,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"alivepeople=healthypeople+infectedpeople\n",
"totaldead=sum(deadpeople)\n",
"totalhealed=sum(healedpeople)\n",
"percentdead=totaldead*100/alivepeople[0]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 6. Plotting the results\n",
"\n",
"Three figures will be made. The first figure is a plot that includes the number of:\n",
" - Alive people\n",
" - Healthy people\n",
" - Infected people\n",
" - Dead people per timestep\n",
" - Cured people per timestep\n",
"\n",
"The second and third figure represent the initial and final population grids. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### I. Plot of Population Statistics"
]
},
{
"cell_type": "code",
"execution_count": 215,
"metadata": {
"scrolled": false
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1d42cca44a8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"#Plotting\n",
"#Results plot\n",
"fig=plt.figure(figsize=(10,10))\n",
"ax=fig.add_subplot(111)\n",
"ax.plot(timespan,healthypeople,\"g\",label=\"Healthy\")\n",
"ax.plot(timespan,deadpeople,\"k\",label=\"Dead\")\n",
"ax.plot(timespan,infectedpeople,\"r\",label=\"Infected\")\n",
"ax.plot(timespan,healedpeople,\"b\",label=\"Healed\")\n",
"ax.plot(timespan,alivepeople,\"c\",label=\"Alive\")\n",
"ax.legend(loc=\"upper right\")\n",
"ax.text(time/2,alivepeople[0]-(alivepeople[0]/8),f\"Initial population={alivepeople[0]}\\nFinal Population={alivepeople[-1]}\\nTotal Dead={totaldead}\\nTotal Healed={totalhealed}\\nInitial %infected={infectedpeople[0]*100/alivepeople[0]:.2f}\\nFinal %Dead={percentdead:.2f}\")\n",
"ax.set_xlim([0,time])\n",
"ax.set_ylim([0,alivepeople[0]])\n",
"plt.tight_layout()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### II. Plot of Initial Populace "
]
},
{
"cell_type": "code",
"execution_count": 216,
"metadata": {
"scrolled": false
},
"outputs": [
{
"data": {
"image/png": "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\njm+t9Q8j4g8bzQIAACuzm9/xBWBGl19+eTzykY+MO9zhDnHKKafEfe5zn3j961+/pzN9/OMfj7vd\n7W7fcG0YhnjBC16QqveKV7wifvInfzIiIn7/938//uZv/uZg7P73v3+sJ/+Qwtvf/va42c1uFief\nfHJ8z/d8T/zsz/7sjmvspP92H4Mf/uEfjgMHDsQLX/jCHc3y+c9/Pn7rt35rRzk7mQuOVBZfgH2g\n1hoPechD4vTTT4+PfvSj8Z73vCde9apXxaWXXvoNn3fttdfu0YTtXXfx3a3TTjstLr744rj44ovj\nTW96U/zZn/1Zs9oZn/nMZ+Kiiy6KSy65JJ72tKftKDe7+ELvLL4A+8Bb3/rWOOaYY+KJT3ziwWu3\nu93t4ilPeUq84hWviLPPPjt+8Ad/MB784AdHRMR5550X97znPePAgQNx7rnnHsz5X//rf8Wpp54a\nJ510UjzhCU+Ir371qxERceMb3zh+4Rd+IU488cS4973vHZdffnmTuT/ykY/E93//98cpp5wSp512\nWnzwgx+MiIg/+IM/iHvd615x8sknxwMf+MBv6nfRRRfFG9/4xnjGM54RJ510UnzkIx+JiIjXvOY1\nceqpp8ad7nSneOc73xkRGwvte9/73oO5973vfeOSSy4ZnemGN7xhnHTSSfGpT30qIiK+8IUvxI/9\n2I/FPe95zzj55JPjDW94Q0REXHPNNfGIRzwiDhw4EA9/+MPjmmuuST0G97///ePnfu7nvmnuBz/4\nwXHFFVfESSedFO985ztHH6vLL788HvrQh8aJJ54YJ554Ylx00UVxzjnnxEc+8pE46aST4hnPeEZE\njH/Pn/vc58ad73zneOADHxgf+tCHUl8DHCl29Tu+e25IxKZysr0yOWOxTJ/sDK3rte7V2rDD6/vB\nMGO9sVgmJztDa1O9pmIte22zz/vf//64xz3uMRr/8z//87jkkkviuOOOize/+c3x4Q9/ON797ndH\nrTXOOuuseMc73hHHH398XHjhhfFnf/Zncf3rXz+e9KQnxQUXXBCPfvSj4wtf+ELc+973juc+97nx\nzGc+M373d383fvEXfzEuuOCCOO+8876p33d/93fHa1/72oiIgwvY13zmM585+KsEj3/84+PFL35x\n3PGOd4x3vetd8aQnPSne+ta3xv3ud7/4i7/4iyilxEtf+tJ4/vOfH7/2a792sMb3fu/3xllnnRVn\nnnlmPOxhDzt4/dprr413v/vd8Yd/+IfxnOc8J/74j/84Hve4x8UrXvGKeNGLXhR/+7d/G1/60pfi\nwIEDo4/V5z73ufjwhz8cp59+ekRsLIYPeMAD4uUvf3l8/vOfj1NPPTUe+MAHxu/8zu/EscceG5dc\ncklccskl3/D4P/zhDz/sEvn0pz89Hv3oR3/T9cPN/cY3vjHOPPPMg0v7GWeccdjH6qlPfWp83/d9\nX7z+9a+Pr371q3H11VfH8573vHjf+953MHfse36jG90oXvWqV8XFF18c1157bdzjHveIU045ZfSx\n2VeGHV5fRb1Mrznrtc7L9pqr3jbs78UXoFNPfvKT40//9E/jmGOOiSc/+cnxoAc9KI477riI2FiC\n3vzmN8fJJ58cERFXX311fPjDH45LLrkk3vOe98Q973nPiNi4o/lt3/ZtERFxzDHHxJlnnhkREaec\nckr80R/9UUREPOpRj4pHPepRk7N813d91zfccR2G4WDfiy66KM4+++yDsS996UsREXHppZfGwx/+\n8Ljsssviy1/+cpxwwgnb+rr/03/6Twdn/PjHPx4REWeffXb80i/9Upx33nnx8pe/PH70R3/0sLnv\nfOc748CBA/GhD30ozjnnnLjVrW518PF64xvfePB3X7/4xS/GJz/5yXjHO94RT33qUyMi4sCBA9+w\nTF944YXbmndq7kNNPVZvfetb45WvfGVERBx11FFxs5vdLD73uc99Q/7Y9/yqq66Khz70oXHsscdG\nRMRZZ521o7nhSGPxBdgH7nrXu8brXve6gx//5m/+Znz2s5+NtbW1iIi40Y1udDBWa41nPetZ8YQn\nPOEbavzGb/xGPOYxj4lf+ZVf+ab617/+9aNsntV61FFHHfxd4e3c8R3zr//6r3Hzm9/8G5bir3nK\nU54ST3/60+Oss86Kt7/97QeX5a3c4AY3+KYZjz322HjQgx4Ub3jDG+LVr3716BvQTjvttHjTm94U\nf/u3fxv3u9/94qEPfWicdNJJUWuN173udXHnO9/5m3LKyPm1O73je7i5DzX1WG3H2Pf8RS960ejX\nAD3yO74A+8ADHvCA+OIXvxi//du/ffDav/zLvxz2c//9v//38fKXvzyuvvrqiIj41Kc+FVdccUWc\nccYZ8drXvjauuOKKiIj4x3/8x/jEJz4x2fdRj3pUvPe97/2m/9tq6Y2IuOlNbxonnHBCvOY1r4mI\njeXsr/7qryIi4p/+6Z/iNre5TUREnH/++YfNv8lNbhJXXXXVln0iIh73uMfFU5/61LjnPe958M73\nu9/97sMuoXe6053iWc96Vvzqr/5qRGw8Xr/xG78RdfNg/IsvvjgiIk4//fS44IILIiLife973zf8\n3vCFF1542MflcP22Y+qxOuOMMw5+37/61a/GP//zP3/TYzP2PT/99NPj9a9/fVxzzTVx1VVXxR/8\nwR+k5oMjhcUXYB8opcTv//7vx5/8yZ/ECSecEKeeemo85jGPObi8HerBD35wPPKRj4z73Oc+cfe7\n3z0e9rCHxVVXXRV3uctd4pd/+ZfjwQ9+cBw4cCAe9KAHxWWXXbbSuS+44IJ42cteFieeeGLc9a53\nPfjGsWEY4uyzz47TTjstbnnLWx429xGPeEScd955cfLJJx98c9uYU045JW5605vGYx/72IPXPvnJ\nT8YNb3jDw37+E5/4xHjHO94RH/vYx+LZz352fOUrX4kDBw7E3e52t3j2s58dERE/8RM/EVdffXUc\nOHAgnv/858epp56aeQi2beyx+vVf//V429veFne/+93jlFNOife///1xi1vcIu573/vG3e52t3jG\nM54x+j2/xz3uEQ9/+MPjpJNOiv/8n/9znHbaaSv9GmDpSt3ln37bUbO1tRpjZyBm/mRxJjaVMyWT\nN5UzFsv0WUW9ljOsol6m11hOplbWVK+p2FyGRCyTk52hdd5UTqZeptcQMefr8JHq05/+dNz//veP\nD37wg3G9623c03nGM54RP/IjPzL5Rje21uxXJYY2Zbasl+2TqZeJZeu1lumVyWldb+z1cm0t6vr6\nlk9Wd3wB2Nde+cpXxr3uda947nOfe3Dpjdg43svSCxxq+W9uG47QemN52Xo77ZPtlcmZypuql+nV\nOicTy8yQNdVrLJbJYXuGvR6gT49+9KPTv1vLNg0j/9269qrzWudkYy3rLWGGuXvtgju+AAB0weIL\nAEAXLL4AAHTB4gsAQBcsvgAAdMHiCwBAF5ZznNmww+tzzrBVbK9zdpPX0pCMtcxpbUjEpnJam+o1\nFpvKaT1D67xsr7kMyRgs3TDy31Oft5PYXIZkbAmGfdonWy+btwV3fAEA6MJy7vgCdOgGN7hBuz8J\nCytwgxvcIL70pS/t9RjQhMUXYA9NLhRDouBUTjaWsfR6rftk8/YBSy9HEr/qAABAFyy+AAB0YX//\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1d42cccf8d0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"#Population plot\n",
"cmap = colors.ListedColormap(['black','cyan', 'green','red'])\n",
"bounds=[0,0.09,0.99,1.1,100]\n",
"norm = colors.BoundaryNorm(bounds, cmap.N)\n",
"\n",
"fig1=plt.figure(figsize=(10,10))\n",
"ax1=fig1.add_subplot(111)\n",
"img1=ax1.imshow(populace,cmap=cmap,norm=norm)\n",
"ax1.set_title(\"Initial Populace\")\n",
"ax1.text(len(populace)/2,len(populace)/50,\"Green=Healthy,Red=Infected\",bbox={'facecolor': 'white', 'pad': 10})\n",
"plt.tight_layout()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### III. Plot of Final Populace."
]
},
{
"cell_type": "code",
"execution_count": 217,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n9773UO3+979/pgN/kcKb3/zm3PKWt8zJJ5+cH/iBH8hTnvKUhddYZP/tfg9+8id/MgcPHsxv//Zv\nL9TLVVddld/7vd9baM4ifcF+JfgC7AGttTz0oQ/NGWeckY9+9KN55zvfmVe84hW57LLLrvd11157\n7Yo6XL4bBt+dOv3003PJJZfkkksuyRve8Ia87W1vW9raQ3zmM5/JxRdfnEsvvTS//Mu/vNDcocEX\neif4AuwBb3rTm3L00Ufn537u5w6Nfc/3fE+e9KQn5aUvfWnOPvvs/OiP/mge/OAHJ0me97zn5dRT\nT83Bgwdz3nnnHZrzx3/8xznttNNy0kkn5Wd/9mfz9a9/PUly85vfPP/pP/2nnHjiibn3ve+dyy+/\nfCl9f+QjH8mP/MiP5JRTTsnpp5+e97///UmS17/+9bnXve6Vk08+OQ984AO/Zb+LL744F110UZ76\n1KfmpJNOykc+8pEkyate9aqcdtppuctd7pK3vvWtSTYC7bve9a5Dc+973/vm0ksvndnTTW9605x0\n0kn55Cc/mST50pe+lJ/+6Z/OqaeempNPPjmve93rkiTXXHNNHvGIR+TgwYM555xzcs011wz6Htz/\n/vfP05/+9G/p+8EPfnCuuOKKnHTSSXnrW98683t1+eWX52EPe1hOPPHEnHjiibn44ovzjGc8Ix/5\nyEdy0kkn5alPfWqS2f/On/3sZ+eud71rHvjAB+YDH/jAoL8D7Bc7esZ35eqqG9gFddUN7EBd8pwh\n6w0x1j7roo643tAa3+I973lP7nnPe86s//Vf/3UuvfTSHHvssXnjG9+YD33oQ3nHO96R1lrOOuus\nvOUtb8lxxx2XCy64IG9729tyoxvdKD//8z+f888/P495zGPypS99Kfe+973z7Gc/O0972tPyh3/4\nh/nP//k/5/zzz8/znve8b9nv+7//+3PhhRcmyaEA9k2f+cxnDj1K8IQnPCF/8Ad/kDvf+c55+9vf\nnp//+Z/Pm970ptzvfvfL3/zN36SUkhe96EV57nOfm9/6rd86tMYP/uAP5qyzzspDHvKQPPzhDz80\nfu211+Yd73hH/vRP/zTPetaz8ud//ud5/OMfn5e+9KV5/vOfnw9+8IP5yle+koMHD878Xn3+85/P\nhz70oZxxxhlJNoLhAx7wgLzkJS/JVVddldNOOy0PfOAD89//+3/PMccck0svvTSXXnrp9b7/55xz\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1d42cccf7f0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig2=plt.figure(figsize=(10,10))\n",
"ax2=fig2.add_subplot(111)\n",
"img2=ax2.imshow(nextpop,cmap=cmap,norm=norm)\n",
"ax2.set_title(\"Final populace\")\n",
"ax2.text(len(nextpop)/2,len(nextpop)/50,\"Green=Healthy,Red=Infected\",bbox={'facecolor': 'white', 'pad': 10})\n",
"plt.tight_layout()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 7.Animation\n",
"\n",
"We animate the transition of the population grid from the initial condition to the final condition. Ignore the immediate next plot. It is a static representation of the animation that ideally shouldn't have been displayed. To view the animation made for a specific case, go to this YouTube link: https://youtu.be/Ih1L3PIvgZY"
]
},
{
"cell_type": "code",
"execution_count": 242,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Using matplotlib backend: nbAgg\n"
]
}
],
"source": [
"%matplotlib auto"
]
},
{
"cell_type": "code",
"execution_count": 243,
"metadata": {
"scrolled": false
},
"outputs": [
{
"data": {
"application/javascript": [
"/* Put everything inside the global mpl namespace */\n",
"window.mpl = {};\n",
"\n",
"\n",
"mpl.get_websocket_type = function() {\n",
" if (typeof(WebSocket) !== 'undefined') {\n",
" return WebSocket;\n",
" } else if (typeof(MozWebSocket) !== 'undefined') {\n",
" return MozWebSocket;\n",
" } else {\n",
" alert('Your browser does not have WebSocket support.' +\n",
" 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
" 'Firefox 4 and 5 are also supported but you ' +\n",
" 'have to enable WebSockets in about:config.');\n",
" };\n",
"}\n",
"\n",
"mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n",
" this.id = figure_id;\n",
"\n",
" this.ws = websocket;\n",
"\n",
" this.supports_binary = (this.ws.binaryType != undefined);\n",
"\n",
" if (!this.supports_binary) {\n",
" var warnings = document.getElementById(\"mpl-warnings\");\n",
" if (warnings) {\n",
" warnings.style.display = 'block';\n",
" warnings.textContent = (\n",
" \"This browser does not support binary websocket messages. \" +\n",
" \"Performance may be slow.\");\n",
" }\n",
" }\n",
"\n",
" this.imageObj = new Image();\n",
"\n",
" this.context = undefined;\n",
" this.message = undefined;\n",
" this.canvas = undefined;\n",
" this.rubberband_canvas = undefined;\n",
" this.rubberband_context = undefined;\n",
" this.format_dropdown = undefined;\n",
"\n",
" this.image_mode = 'full';\n",
"\n",
" this.root = $('<div/>');\n",
" this._root_extra_style(this.root)\n",
" this.root.attr('style', 'display: inline-block');\n",
"\n",
" $(parent_element).append(this.root);\n",
"\n",
" this._init_header(this);\n",
" this._init_canvas(this);\n",
" this._init_toolbar(this);\n",
"\n",
" var fig = this;\n",
"\n",
" this.waiting = false;\n",
"\n",
" this.ws.onopen = function () {\n",
" fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n",
" fig.send_message(\"send_image_mode\", {});\n",
" if (mpl.ratio != 1) {\n",
" fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n",
" }\n",
" fig.send_message(\"refresh\", {});\n",
" }\n",
"\n",
" this.imageObj.onload = function() {\n",
" if (fig.image_mode == 'full') {\n",
" // Full images could contain transparency (where diff images\n",
" // almost always do), so we need to clear the canvas so that\n",
" // there is no ghosting.\n",
" fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
" }\n",
" fig.context.drawImage(fig.imageObj, 0, 0);\n",
" };\n",
"\n",
" this.imageObj.onunload = function() {\n",
" fig.ws.close();\n",
" }\n",
"\n",
" this.ws.onmessage = this._make_on_message_function(this);\n",
"\n",
" this.ondownload = ondownload;\n",
"}\n",
"\n",
"mpl.figure.prototype._init_header = function() {\n",
" var titlebar = $(\n",
" '<div class=\"ui-dialog-titlebar ui-widget-header ui-corner-all ' +\n",
" 'ui-helper-clearfix\"/>');\n",
" var titletext = $(\n",
" '<div class=\"ui-dialog-title\" style=\"width: 100%; ' +\n",
" 'text-align: center; padding: 3px;\"/>');\n",
" titlebar.append(titletext)\n",
" this.root.append(titlebar);\n",
" this.header = titletext[0];\n",
"}\n",
"\n",
"\n",
"\n",
"mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n",
"\n",
"}\n",
"\n",
"\n",
"mpl.figure.prototype._root_extra_style = function(canvas_div) {\n",
"\n",
"}\n",
"\n",
"mpl.figure.prototype._init_canvas = function() {\n",
" var fig = this;\n",
"\n",
" var canvas_div = $('<div/>');\n",
"\n",
" canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n",
"\n",
" function canvas_keyboard_event(event) {\n",
" return fig.key_event(event, event['data']);\n",
" }\n",
"\n",
" canvas_div.keydown('key_press', canvas_keyboard_event);\n",
" canvas_div.keyup('key_release', canvas_keyboard_event);\n",
" this.canvas_div = canvas_div\n",
" this._canvas_extra_style(canvas_div)\n",
" this.root.append(canvas_div);\n",
"\n",
" var canvas = $('<canvas/>');\n",
" canvas.addClass('mpl-canvas');\n",
" canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n",
"\n",
" this.canvas = canvas[0];\n",
" this.context = canvas[0].getContext(\"2d\");\n",
"\n",
" var backingStore = this.context.backingStorePixelRatio ||\n",
"\tthis.context.webkitBackingStorePixelRatio ||\n",
"\tthis.context.mozBackingStorePixelRatio ||\n",
"\tthis.context.msBackingStorePixelRatio ||\n",
"\tthis.context.oBackingStorePixelRatio ||\n",
"\tthis.context.backingStorePixelRatio || 1;\n",
"\n",
" mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n",
"\n",
" var rubberband = $('<canvas/>');\n",
" rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n",
"\n",
" var pass_mouse_events = true;\n",
"\n",
" canvas_div.resizable({\n",
" start: function(event, ui) {\n",
" pass_mouse_events = false;\n",
" },\n",
" resize: function(event, ui) {\n",
" fig.request_resize(ui.size.width, ui.size.height);\n",
" },\n",
" stop: function(event, ui) {\n",
" pass_mouse_events = true;\n",
" fig.request_resize(ui.size.width, ui.size.height);\n",
" },\n",
" });\n",
"\n",
" function mouse_event_fn(event) {\n",
" if (pass_mouse_events)\n",
" return fig.mouse_event(event, event['data']);\n",
" }\n",
"\n",
" rubberband.mousedown('button_press', mouse_event_fn);\n",
" rubberband.mouseup('button_release', mouse_event_fn);\n",
" // Throttle sequential mouse events to 1 every 20ms.\n",
" rubberband.mousemove('motion_notify', mouse_event_fn);\n",
"\n",
" rubberband.mouseenter('figure_enter', mouse_event_fn);\n",
" rubberband.mouseleave('figure_leave', mouse_event_fn);\n",
"\n",
" canvas_div.on(\"wheel\", function (event) {\n",
" event = event.originalEvent;\n",
" event['data'] = 'scroll'\n",
" if (event.deltaY < 0) {\n",
" event.step = 1;\n",
" } else {\n",
" event.step = -1;\n",
" }\n",
" mouse_event_fn(event);\n",
" });\n",
"\n",
" canvas_div.append(canvas);\n",
" canvas_div.append(rubberband);\n",
"\n",
" this.rubberband = rubberband;\n",
" this.rubberband_canvas = rubberband[0];\n",
" this.rubberband_context = rubberband[0].getContext(\"2d\");\n",
" this.rubberband_context.strokeStyle = \"#000000\";\n",
"\n",
" this._resize_canvas = function(width, height) {\n",
" // Keep the size of the canvas, canvas container, and rubber band\n",
" // canvas in synch.\n",
" canvas_div.css('width', width)\n",
" canvas_div.css('height', height)\n",
"\n",
" canvas.attr('width', width * mpl.ratio);\n",
" canvas.attr('height', height * mpl.ratio);\n",
" canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n",
"\n",
" rubberband.attr('width', width);\n",
" rubberband.attr('height', height);\n",
" }\n",
"\n",
" // Set the figure to an initial 600x600px, this will subsequently be updated\n",
" // upon first draw.\n",
" this._resize_canvas(600, 600);\n",
"\n",
" // Disable right mouse context menu.\n",
" $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n",
" return false;\n",
" });\n",
"\n",
" function set_focus () {\n",
" canvas.focus();\n",
" canvas_div.focus();\n",
" }\n",
"\n",
" window.setTimeout(set_focus, 100);\n",
"}\n",
"\n",
"mpl.figure.prototype._init_toolbar = function() {\n",
" var fig = this;\n",
"\n",
" var nav_element = $('<div/>')\n",
" nav_element.attr('style', 'width: 100%');\n",
" this.root.append(nav_element);\n",
"\n",
" // Define a callback function for later on.\n",
" function toolbar_event(event) {\n",
" return fig.toolbar_button_onclick(event['data']);\n",
" }\n",
" function toolbar_mouse_event(event) {\n",
" return fig.toolbar_button_onmouseover(event['data']);\n",
" }\n",
"\n",
" for(var toolbar_ind in mpl.toolbar_items) {\n",
" var name = mpl.toolbar_items[toolbar_ind][0];\n",
" var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
" var image = mpl.toolbar_items[toolbar_ind][2];\n",
" var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
"\n",
" if (!name) {\n",
" // put a spacer in here.\n",
" continue;\n",
" }\n",
" var button = $('<button/>');\n",
" button.addClass('ui-button ui-widget ui-state-default ui-corner-all ' +\n",
" 'ui-button-icon-only');\n",
" button.attr('role', 'button');\n",
" button.attr('aria-disabled', 'false');\n",
" button.click(method_name, toolbar_event);\n",
" button.mouseover(tooltip, toolbar_mouse_event);\n",
"\n",
" var icon_img = $('<span/>');\n",
" icon_img.addClass('ui-button-icon-primary ui-icon');\n",
" icon_img.addClass(image);\n",
" icon_img.addClass('ui-corner-all');\n",
"\n",
" var tooltip_span = $('<span/>');\n",
" tooltip_span.addClass('ui-button-text');\n",
" tooltip_span.html(tooltip);\n",
"\n",
" button.append(icon_img);\n",
" button.append(tooltip_span);\n",
"\n",
" nav_element.append(button);\n",
" }\n",
"\n",
" var fmt_picker_span = $('<span/>');\n",
"\n",
" var fmt_picker = $('<select/>');\n",
" fmt_picker.addClass('mpl-toolbar-option ui-widget ui-widget-content');\n",
" fmt_picker_span.append(fmt_picker);\n",
" nav_element.append(fmt_picker_span);\n",
" this.format_dropdown = fmt_picker[0];\n",
"\n",
" for (var ind in mpl.extensions) {\n",
" var fmt = mpl.extensions[ind];\n",
" var option = $(\n",
" '<option/>', {selected: fmt === mpl.default_extension}).html(fmt);\n",
" fmt_picker.append(option)\n",
" }\n",
"\n",
" // Add hover states to the ui-buttons\n",
" $( \".ui-button\" ).hover(\n",
" function() { $(this).addClass(\"ui-state-hover\");},\n",
" function() { $(this).removeClass(\"ui-state-hover\");}\n",
" );\n",
"\n",
" var status_bar = $('<span class=\"mpl-message\"/>');\n",
" nav_element.append(status_bar);\n",
" this.message = status_bar[0];\n",
"}\n",
"\n",
"mpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {\n",
" // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
" // which will in turn request a refresh of the image.\n",
" this.send_message('resize', {'width': x_pixels, 'height': y_pixels});\n",
"}\n",
"\n",
"mpl.figure.prototype.send_message = function(type, properties) {\n",
" properties['type'] = type;\n",
" properties['figure_id'] = this.id;\n",
" this.ws.send(JSON.stringify(properties));\n",
"}\n",
"\n",
"mpl.figure.prototype.send_draw_message = function() {\n",
" if (!this.waiting) {\n",
" this.waiting = true;\n",
" this.ws.send(JSON.stringify({type: \"draw\", figure_id: this.id}));\n",
" }\n",
"}\n",
"\n",
"\n",
"mpl.figure.prototype.handle_save = function(fig, msg) {\n",
" var format_dropdown = fig.format_dropdown;\n",
" var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
" fig.ondownload(fig, format);\n",
"}\n",
"\n",
"\n",
"mpl.figure.prototype.handle_resize = function(fig, msg) {\n",
" var size = msg['size'];\n",
" if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {\n",
" fig._resize_canvas(size[0], size[1]);\n",
" fig.send_message(\"refresh\", {});\n",
" };\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_rubberband = function(fig, msg) {\n",
" var x0 = msg['x0'] / mpl.ratio;\n",
" var y0 = (fig.canvas.height - msg['y0']) / mpl.ratio;\n",
" var x1 = msg['x1'] / mpl.ratio;\n",
" var y1 = (fig.canvas.height - msg['y1']) / mpl.ratio;\n",
" x0 = Math.floor(x0) + 0.5;\n",
" y0 = Math.floor(y0) + 0.5;\n",
" x1 = Math.floor(x1) + 0.5;\n",
" y1 = Math.floor(y1) + 0.5;\n",
" var min_x = Math.min(x0, x1);\n",
" var min_y = Math.min(y0, y1);\n",
" var width = Math.abs(x1 - x0);\n",
" var height = Math.abs(y1 - y0);\n",
"\n",
" fig.rubberband_context.clearRect(\n",
" 0, 0, fig.canvas.width, fig.canvas.height);\n",
"\n",
" fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_figure_label = function(fig, msg) {\n",
" // Updates the figure title.\n",
" fig.header.textContent = msg['label'];\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_cursor = function(fig, msg) {\n",
" var cursor = msg['cursor'];\n",
" switch(cursor)\n",
" {\n",
" case 0:\n",
" cursor = 'pointer';\n",
" break;\n",
" case 1:\n",
" cursor = 'default';\n",
" break;\n",
" case 2:\n",
" cursor = 'crosshair';\n",
" break;\n",
" case 3:\n",
" cursor = 'move';\n",
" break;\n",
" }\n",
" fig.rubberband_canvas.style.cursor = cursor;\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_message = function(fig, msg) {\n",
" fig.message.textContent = msg['message'];\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_draw = function(fig, msg) {\n",
" // Request the server to send over a new figure.\n",
" fig.send_draw_message();\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_image_mode = function(fig, msg) {\n",
" fig.image_mode = msg['mode'];\n",
"}\n",
"\n",
"mpl.figure.prototype.updated_canvas_event = function() {\n",
" // Called whenever the canvas gets updated.\n",
" this.send_message(\"ack\", {});\n",
"}\n",
"\n",
"// A function to construct a web socket function for onmessage handling.\n",
"// Called in the figure constructor.\n",
"mpl.figure.prototype._make_on_message_function = function(fig) {\n",
" return function socket_on_message(evt) {\n",
" if (evt.data instanceof Blob) {\n",
" /* FIXME: We get \"Resource interpreted as Image but\n",
" * transferred with MIME type text/plain:\" errors on\n",
" * Chrome. But how to set the MIME type? It doesn't seem\n",
" * to be part of the websocket stream */\n",
" evt.data.type = \"image/png\";\n",
"\n",
" /* Free the memory for the previous frames */\n",
" if (fig.imageObj.src) {\n",
" (window.URL || window.webkitURL).revokeObjectURL(\n",
" fig.imageObj.src);\n",
" }\n",
"\n",
" fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
" evt.data);\n",
" fig.updated_canvas_event();\n",
" fig.waiting = false;\n",
" return;\n",
" }\n",
" else if (typeof evt.data === 'string' && evt.data.slice(0, 21) == \"data:image/png;base64\") {\n",
" fig.imageObj.src = evt.data;\n",
" fig.updated_canvas_event();\n",
" fig.waiting = false;\n",
" return;\n",
" }\n",
"\n",
" var msg = JSON.parse(evt.data);\n",
" var msg_type = msg['type'];\n",
"\n",
" // Call the \"handle_{type}\" callback, which takes\n",
" // the figure and JSON message as its only arguments.\n",
" try {\n",
" var callback = fig[\"handle_\" + msg_type];\n",
" } catch (e) {\n",
" console.log(\"No handler for the '\" + msg_type + \"' message type: \", msg);\n",
" return;\n",
" }\n",
"\n",
" if (callback) {\n",
" try {\n",
" // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
" callback(fig, msg);\n",
" } catch (e) {\n",
" console.log(\"Exception inside the 'handler_\" + msg_type + \"' callback:\", e, e.stack, msg);\n",
" }\n",
" }\n",
" };\n",
"}\n",
"\n",
"// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
"mpl.findpos = function(e) {\n",
" //this section is from http://www.quirksmode.org/js/events_properties.html\n",
" var targ;\n",
" if (!e)\n",
" e = window.event;\n",
" if (e.target)\n",
" targ = e.target;\n",
" else if (e.srcElement)\n",
" targ = e.srcElement;\n",
" if (targ.nodeType == 3) // defeat Safari bug\n",
" targ = targ.parentNode;\n",
"\n",
" // jQuery normalizes the pageX and pageY\n",
" // pageX,Y are the mouse positions relative to the document\n",
" // offset() returns the position of the element relative to the document\n",
" var x = e.pageX - $(targ).offset().left;\n",
" var y = e.pageY - $(targ).offset().top;\n",
"\n",
" return {\"x\": x, \"y\": y};\n",
"};\n",
"\n",
"/*\n",
" * return a copy of an object with only non-object keys\n",
" * we need this to avoid circular references\n",
" * http://stackoverflow.com/a/24161582/3208463\n",
" */\n",
"function simpleKeys (original) {\n",
" return Object.keys(original).reduce(function (obj, key) {\n",
" if (typeof original[key] !== 'object')\n",
" obj[key] = original[key]\n",
" return obj;\n",
" }, {});\n",
"}\n",
"\n",
"mpl.figure.prototype.mouse_event = function(event, name) {\n",
" var canvas_pos = mpl.findpos(event)\n",
"\n",
" if (name === 'button_press')\n",
" {\n",
" this.canvas.focus();\n",
" this.canvas_div.focus();\n",
" }\n",
"\n",
" var x = canvas_pos.x * mpl.ratio;\n",
" var y = canvas_pos.y * mpl.ratio;\n",
"\n",
" this.send_message(name, {x: x, y: y, button: event.button,\n",
" step: event.step,\n",
" guiEvent: simpleKeys(event)});\n",
"\n",
" /* This prevents the web browser from automatically changing to\n",
" * the text insertion cursor when the button is pressed. We want\n",
" * to control all of the cursor setting manually through the\n",
" * 'cursor' event from matplotlib */\n",
" event.preventDefault();\n",
" return false;\n",
"}\n",
"\n",
"mpl.figure.prototype._key_event_extra = function(event, name) {\n",
" // Handle any extra behaviour associated with a key event\n",
"}\n",
"\n",
"mpl.figure.prototype.key_event = function(event, name) {\n",
"\n",
" // Prevent repeat events\n",
" if (name == 'key_press')\n",
" {\n",
" if (event.which === this._key)\n",
" return;\n",
" else\n",
" this._key = event.which;\n",
" }\n",
" if (name == 'key_release')\n",
" this._key = null;\n",
"\n",
" var value = '';\n",
" if (event.ctrlKey && event.which != 17)\n",
" value += \"ctrl+\";\n",
" if (event.altKey && event.which != 18)\n",
" value += \"alt+\";\n",
" if (event.shiftKey && event.which != 16)\n",
" value += \"shift+\";\n",
"\n",
" value += 'k';\n",
" value += event.which.toString();\n",
"\n",
" this._key_event_extra(event, name);\n",
"\n",
" this.send_message(name, {key: value,\n",
" guiEvent: simpleKeys(event)});\n",
" return false;\n",
"}\n",
"\n",
"mpl.figure.prototype.toolbar_button_onclick = function(name) {\n",
" if (name == 'download') {\n",
" this.handle_save(this, null);\n",
" } else {\n",
" this.send_message(\"toolbar_button\", {name: name});\n",
" }\n",
"};\n",
"\n",
"mpl.figure.prototype.toolbar_button_onmouseover = function(tooltip) {\n",
" this.message.textContent = tooltip;\n",
"};\n",
"mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Pan axes with left mouse, zoom with right\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
"\n",
"mpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n",
"\n",
"mpl.default_extension = \"png\";var comm_websocket_adapter = function(comm) {\n",
" // Create a \"websocket\"-like object which calls the given IPython comm\n",
" // object with the appropriate methods. Currently this is a non binary\n",
" // socket, so there is still some room for performance tuning.\n",
" var ws = {};\n",
"\n",
" ws.close = function() {\n",
" comm.close()\n",
" };\n",
" ws.send = function(m) {\n",
" //console.log('sending', m);\n",
" comm.send(m);\n",
" };\n",
" // Register the callback with on_msg.\n",
" comm.on_msg(function(msg) {\n",
" //console.log('receiving', msg['content']['data'], msg);\n",
" // Pass the mpl event to the overriden (by mpl) onmessage function.\n",
" ws.onmessage(msg['content']['data'])\n",
" });\n",
" return ws;\n",
"}\n",
"\n",
"mpl.mpl_figure_comm = function(comm, msg) {\n",
" // This is the function which gets called when the mpl process\n",
" // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
"\n",
" var id = msg.content.data.id;\n",
" // Get hold of the div created by the display call when the Comm\n",
" // socket was opened in Python.\n",
" var element = $(\"#\" + id);\n",
" var ws_proxy = comm_websocket_adapter(comm)\n",
"\n",
" function ondownload(figure, format) {\n",
" window.open(figure.imageObj.src);\n",
" }\n",
"\n",
" var fig = new mpl.figure(id, ws_proxy,\n",
" ondownload,\n",
" element.get(0));\n",
"\n",
" // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
" // web socket which is closed, not our websocket->open comm proxy.\n",
" ws_proxy.onopen();\n",
"\n",
" fig.parent_element = element.get(0);\n",
" fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
" if (!fig.cell_info) {\n",
" console.error(\"Failed to find cell for figure\", id, fig);\n",
" return;\n",
" }\n",
"\n",
" var output_index = fig.cell_info[2]\n",
" var cell = fig.cell_info[0];\n",
"\n",
"};\n",
"\n",
"mpl.figure.prototype.handle_close = function(fig, msg) {\n",
" var width = fig.canvas.width/mpl.ratio\n",
" fig.root.unbind('remove')\n",
"\n",
" // Update the output cell to use the data from the current canvas.\n",
" fig.push_to_output();\n",
" var dataURL = fig.canvas.toDataURL();\n",
" // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
" // the notebook keyboard shortcuts fail.\n",
" IPython.keyboard_manager.enable()\n",
" $(fig.parent_element).html('<img src=\"' + dataURL + '\" width=\"' + width + '\">');\n",
" fig.close_ws(fig, msg);\n",
"}\n",
"\n",
"mpl.figure.prototype.close_ws = function(fig, msg){\n",
" fig.send_message('closing', msg);\n",
" // fig.ws.close()\n",
"}\n",
"\n",
"mpl.figure.prototype.push_to_output = function(remove_interactive) {\n",
" // Turn the data on the canvas into data in the output cell.\n",
" var width = this.canvas.width/mpl.ratio\n",
" var dataURL = this.canvas.toDataURL();\n",
" this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
"}\n",
"\n",
"mpl.figure.prototype.updated_canvas_event = function() {\n",
" // Tell IPython that the notebook contents must change.\n",
" IPython.notebook.set_dirty(true);\n",
" this.send_message(\"ack\", {});\n",
" var fig = this;\n",
" // Wait a second, then push the new image to the DOM so\n",
" // that it is saved nicely (might be nice to debounce this).\n",
" setTimeout(function () { fig.push_to_output() }, 1000);\n",
"}\n",
"\n",
"mpl.figure.prototype._init_toolbar = function() {\n",
" var fig = this;\n",
"\n",
" var nav_element = $('<div/>')\n",
" nav_element.attr('style', 'width: 100%');\n",
" this.root.append(nav_element);\n",
"\n",
" // Define a callback function for later on.\n",
" function toolbar_event(event) {\n",
" return fig.toolbar_button_onclick(event['data']);\n",
" }\n",
" function toolbar_mouse_event(event) {\n",
" return fig.toolbar_button_onmouseover(event['data']);\n",
" }\n",
"\n",
" for(var toolbar_ind in mpl.toolbar_items){\n",
" var name = mpl.toolbar_items[toolbar_ind][0];\n",
" var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
" var image = mpl.toolbar_items[toolbar_ind][2];\n",
" var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
"\n",
" if (!name) { continue; };\n",
"\n",
" var button = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></button>');\n",
" button.click(method_name, toolbar_event);\n",
" button.mouseover(tooltip, toolbar_mouse_event);\n",
" nav_element.append(button);\n",
" }\n",
"\n",
" // Add the status bar.\n",
" var status_bar = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n",
" nav_element.append(status_bar);\n",
" this.message = status_bar[0];\n",
"\n",
" // Add the close button to the window.\n",
" var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n",
" var button = $('<button class=\"btn btn-mini btn-primary\" href=\"#\" title=\"Stop Interaction\"><i class=\"fa fa-power-off icon-remove icon-large\"></i></button>');\n",
" button.click(function (evt) { fig.handle_close(fig, {}); } );\n",
" button.mouseover('Stop Interaction', toolbar_mouse_event);\n",
" buttongrp.append(button);\n",
" var titlebar = this.root.find($('.ui-dialog-titlebar'));\n",
" titlebar.prepend(buttongrp);\n",
"}\n",
"\n",
"mpl.figure.prototype._root_extra_style = function(el){\n",
" var fig = this\n",
" el.on(\"remove\", function(){\n",
"\tfig.close_ws(fig, {});\n",
" });\n",
"}\n",
"\n",
"mpl.figure.prototype._canvas_extra_style = function(el){\n",
" // this is important to make the div 'focusable\n",
" el.attr('tabindex', 0)\n",
" // reach out to IPython and tell the keyboard manager to turn it's self\n",
" // off when our div gets focus\n",
"\n",
" // location in version 3\n",
" if (IPython.notebook.keyboard_manager) {\n",
" IPython.notebook.keyboard_manager.register_events(el);\n",
" }\n",
" else {\n",
" // location in version 2\n",
" IPython.keyboard_manager.register_events(el);\n",
" }\n",
"\n",
"}\n",
"\n",
"mpl.figure.prototype._key_event_extra = function(event, name) {\n",
" var manager = IPython.notebook.keyboard_manager;\n",
" if (!manager)\n",
" manager = IPython.keyboard_manager;\n",
"\n",
" // Check for shift+enter\n",
" if (event.shiftKey && event.which == 13) {\n",
" this.canvas_div.blur();\n",
" event.shiftKey = false;\n",
" // Send a \"J\" for go to next cell\n",
" event.which = 74;\n",
" event.keyCode = 74;\n",
" manager.command_mode();\n",
" manager.handle_keydown(event);\n",
" }\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_save = function(fig, msg) {\n",
" fig.ondownload(fig, null);\n",
"}\n",
"\n",
"\n",
"mpl.find_output_cell = function(html_output) {\n",
" // Return the cell and output element which can be found *uniquely* in the notebook.\n",
" // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n",
" // IPython event is triggered only after the cells have been serialised, which for\n",
" // our purposes (turning an active figure into a static one), is too late.\n",
" var cells = IPython.notebook.get_cells();\n",
" var ncells = cells.length;\n",
" for (var i=0; i<ncells; i++) {\n",
" var cell = cells[i];\n",
" if (cell.cell_type === 'code'){\n",
" for (var j=0; j<cell.output_area.outputs.length; j++) {\n",
" var data = cell.output_area.outputs[j];\n",
" if (data.data) {\n",
" // IPython >= 3 moved mimebundle to data attribute of output\n",
" data = data.data;\n",
" }\n",
" if (data['text/html'] == html_output) {\n",
" return [cell, data, j];\n",
" }\n",
" }\n",
" }\n",
" }\n",
"}\n",
"\n",
"// Register the function which deals with the matplotlib target/channel.\n",
"// The kernel may be null if the page has been refreshed.\n",
"if (IPython.notebook.kernel != null) {\n",
" IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n",
"}\n"
],
"text/plain": [
"<IPython.core.display.Javascript object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAtAAAALQCAYAAAC5V0ecAAAgAElEQVR4Xu2dXehvW1fXx86KqBS1AqU8mQhCKAbPKZFeECIUKegijUJDS56LSKwINW+ezoUoBJEUKiKSQeBLWkEodWUZpORRVBLsIjySeFG+4E0o0ol19m+fs/c+a/3X/I6XucZa63PgID5nzDHn/Iwx5/r81/79f/uZ8Q8EIAABCEAAAhCAAAQgMEzg2XAkgRCAAAQgAAEIQAACEICAIdA0AQQgAAEIQAACEIAABAQCCLQAi1AIQAACEIAABCAAAQgg0PQABCAAAQhAAAIQgAAEBAIItACLUAhAAAIQgAAEIAABCCDQ9AAEIAABCEAAAhCAAAQEAgi0AItQCEAAAhCAAAQgAAEIIND0AAQgAAEIQAACEIAABAQCCLQAi1AIQAACEIAABCAAAQgg0PQABCAAAQhAAAIQgAAEBAIItACLUAhAAAIQgAAEIAABCCDQ9AAEIAABCEAAAhCAAAQEAgi0AItQCEAAAhCAAAQgAAEIIND0AAQgAAEIQAACEIAABAQCCLQAi1AIQAACEIAABCAAAQgg0PQABCAAAQhAAAIQgAAEBAIItACLUAhAAAIQgAAEIAABCCDQ9AAEIAABCEAAAhCAAAQEAgi0AItQCEAAAhCAAAQgAAEIIND0AAQgAAEIQAACEIAABAQCCLQAi1AIQAACEIAABCAAAQgg0PQABCAAAQhAAAIQgAAEBAIItACLUAhAAAIQgAAEIAABCCDQ9AAEIAABCEAAAhCAAAQEAgi0AItQCEAAAhCAAAQgAAEIIND0AAQgAAEIQAACEIAABAQCCLQAi1AIQAACEIAABCAAAQgg0PQABCAAAQhAAAIQgAAEBAIItACLUAhAAAIQgAAEIAABCCDQ9AAEIAABCEAAAhCAAAQEAgi0AItQCEAAAhCAAAQgAAEIIND0AAQgAAEIQAACEIAABAQCCLQAi1AIQAACEIAABCAAAQgg0PQABCAAAQhAAAIQgAAEBAIItACLUAhAAAIQgAAEIAABCCDQ9AAEIAABCEAAAhCAAAQEAgi0AItQCEAAAhCAAAQgAAEIIND0AAQgAAEIQAACEIAABAQCCLQAi1AIQAACEIAABCAAAQgg0PQABCAAAQhAAAIQgAAEBAIItACLUAhAAAIQgAAEIAABCCDQ9AAEIAABCEAAAhCAAAQEAgi0AItQCEAAAhCAAAQgAAEIIND0AAQgAAEIQAACEIAABAQCCLQAi1AIQAACEIAABCAAAQgg0PQABCAAAQhAAAIQgAAEBAIItACLUAhAAAIQgAAEIAABCCDQ9AAEIAABCEAAAhCAAAQEAgi0AItQCEAAAhCAAAQgAAEIIND0AAQgAAEIQAACEIAABAQCCLQAi1AIQAACEIAABCAAAQgg0PQABCAAAQhAAAIQgAAEBAIItACLUAhAAAIQgAAEIAABCCDQ9AAEIAABCEAAAhCAAAQEAgi0AItQCEAAAhCAAAQgAAEIIND0AAQgAAEIQAACEIAABAQCCLQAi1AIQAACEIAABCAAAQgg0PQABCAAAQhAAAIQgAAEBAIItACLUAhAAAIQgAAEIAABCCDQ9AAEIAABCEAAAhCAAAQEAgi0AItQCEAAAhCAAAQgAAEIIND0AAQgAAEIQAACEIAABAQCCLQAi1AIQAACEIAABCAAAQgg0PQABCAAAQhAAAIQgAAEBAIItACLUAhAAAIQgAAEIAABCCDQ9AAEIAABCEAAAhCAAAQEAgi0AItQCEAAAhCAAAQgAAEIIND0AAQgAAEIQAACEIAABAQCCLQAi1AIQAACEIAABCAAAQgg0PQABCAAAQhAAAIQgAAEBAIItACLUAhAAAIQgAAEIAABCCDQ9AAEIAABCEAAAhCAAAQEAgi0AItQCEAAAhCAAAQgAAEIIND0AAQgAAEIQAACEIAABAQCCLQAi1AIQAACEIAABCAAAQgg0PQABCAAAQhAAAIQgAAEBAIItACLUAhAAAIQgAAEIAABCCDQ9AAEIAABCEAAAhCAAAQEAgi0AItQCEAAAhCAAAQgAAEIIND0AAQgAAEIQAACEIAABAQCCLQAi1AIQAACEIAABCAAAQgg0PQABCAAAQhAAAIQgAAEBAIItACLUAhAAAIQgAAEIAABCCDQ9AAEIAABCEAAAhCAAAQEAgi0AEsM/SIz+xYz+zgz+04z+2ZxPOEQgAAEIAABCEAAAg0JINA1RVmk+X+Y2V8ws/9lZv/NzP6amf3c6nR/4A+8a5/+6TUrISsEIAABCEAAAhBYI/D22//HzP4QcHQCCLTObGTE55vZPzKzL3wE/8PH//2m1cEf+ci79hM/MZKXGAhAAAIQgAAEIJBD4Nmzt83szZxk98qCQNfU+6+Y2fIRjq96pP9yM/s8M/s7CHQNcLJCAAIQgAAEICASQKBFYB+EI9BudE8O/JLH2+eXBfpPmdlXvzTqo2a2/Gv2xhsfsXfeqVkJWSEAAQhAAAIQgMAaAQTa3RcItBvdkwP5CEcNV7JCAAIQgAAEIJBFAIF2k0Sg3eieHPg7H79E+OfN7Jcev0T4183sv6+OWvsM9DNKU1MaskIAAhCAQAmB5Td/1v7Z+t9LFkHSTQLvvvvh/4RAuxsGS3Oj2x34xWb2Tx9fY/ddZvaNmyMQ6F2YBEAAAhCAQHMCCHTvAiHQqfVBoFNxOpMh0E5wDIMABCAAgTYEEOg2pVhdCAKdWh8EOhWnMxkC7QTHMAhAAAIQaEMAgW5TCgS6vhQIdD3j/RkQ6H1GREAAAhCAQG8CCHTv+vAGOrU+CHQqTmcyBNoJjmEQgAAEINCGAALdphS8ga4vBQJdz3h/hiqBXrvM+G3o/XpMiFj5XejNWZVDquRdm3Bzriv00ugeZkvA6Lqq+lK5E5TYqvVG81bV9+g6RrlkjFfYKrEZa1vLEa1ZxfitvWacPd5Ap3aS8mxOnZhkLxFAoG/XDoroKodUyYtAm5nyAMx4gFU8xKOnR9mXEhtdV9X4KnFTeqlqb0fnVdgqsVX7itasYjwCXVXt9LzKszl9chI+CCDQt2sFRXSVQ6rkRaAR6Pd6QJFiJbbrqa4St6hMdeWlrEthq8Qqa1BiozWrGI9AKxU8NFZ5Nh+60EtPjkBfurxrm1NEVzmkSl4EGoFGoF86BdEfDqIydYVbUJFiJbaKTbRmFeMR6Kpqp+dVns3pk5OQN9B37QFFdJVDquRFoBFoBBqBTr2DFSlWYlMXuVNz5QcpBLqqMqfIqzybT7GhUy4y+gY64yJSLgIldmZBRteVwUvZ1+i6lJwJsWuynXIhNN1vArJpKbZ+EEqpT2AXl15XRd/OvmsCtU0ZmrHfijqkbC6YpGpfSl5+iTBYxFeHH30fp27mtMkQ6JzSjV4kGZe8suLRdSk5E2IR6ASIRSkuLaoFzFJ4VZzT2XdNAVspZcZ+K+ogbaIouGpfSl4EOrW4CHQqTmcyBNoJ7rVhoxdJxiWvrHh0XUrOhFgEOgFiUYoUISxY26XXVXFOZ981BTWXUmbst6IO0iaKgqv2peRFoFOLi0Cn4nQmQ6Cd4BDoCDgEOkKvduylRbUAXQovRURG95AhlKNzdYjL2G9FHbqy2eKlrFfhhUArZHdjEehdRBMCEOgcyKMXScYlr6x4dF1KzoRYBDoBYlGKFCEsWNul11VxTmffNQU1l1Jm7LeiDtImioKr9qXkRaBTi4tAp+J0JkOgneB4Ax0Bh0BH6NWOvbSoFqBL4aWIyOgeMoRydK4OcRn7rahDVza8ge5QGfcaEGg3usSBawL91kZpMg7c2tIvemmVSWKw/CkP/GAdu7IJomX4EwTOVPOyM0KH1BGoEmhlxVXPSGUNXWN5A51aGQQ6FaczGQLtBLc/rKswlMmB8INQVzb7VSXCS+BMNS87I154jNsngEDvMzoyAoFOpY9Ap+J0JkOgneD2h3UVhjI5QKD3m+LGEV3Pw1pJys7IjetfvnUEuhxxaAIEOoTv9cEIdCpOZzIE2gluf1hXYSiTAwR6vyluHNH1PCDQF2lKBLp3IRHo1Pog0Kk4nckQaCe4/WFdhQGB3q8dEfkEup4HBDq/1odkRKAPwT48KQI9jGokEIEeoVQdo3wLh/CGsXrZqfkzLt7UBe0km1iHLdke3a5yyBWxV2JH16rGKWwUDuo6usVv1mZi33Zjcsh6znavzYQEm5m0n8+FQKcyv9MzJRVcajIE2uxsl+lEEVEkca0vlUOuSLESm3peXkqmsFE4VK13Vl4EehZpxw/ayxC+KeJ8d36TlgotA4EO4Xt98J2eKangUpMh0Oe7TBFoQ6BTb4HUZAh0Kk5/srO9GPDvVB8JG51ZdAQCHSX4yngEOhWnMxkCjUA/0TrKW1beQG+DvNNlh0A77+LsYUjiNlHYZHfbfj4Eep+REHGnZ4qAZXIoAo1AI9CuQ6f8cHGnyw6BdrVT/iAkEYHO7yp/RgTaz25l5J2eKangUpMh0Ag0Au06Ugj0OjYE2tVO+YMQaAQ6v6v8GRFoPzsEOpVdXjJFoPNm9Wea+Plf/yIfI5Vf1lFi1xZW9LCUvnqsQW1W11u0rrBAK+tS+kOJDTd5LEGY4db0Redh9RfwTsQ7Vq17jh6+UxY89MJ2kyDQqQeIN9CpOJ3JEGgnuIFhymWqxCLQm/CHH3ZR3su3Mg20wIuQ1csOgY4zRKCFLiTUQ2D4TkGgn8aLQHvab3MMAp2K05kMgXaCGximSJoSi0Aj0E+1X7SXBlo7KyT8QwgCnVUK8mwQQKCTWgOBTgL5PA0CnYrTmQyBdoIbGKaIjBKLQCPQCPTTB5CPcAxcUISMEECgRygNxCDQA5DGQxDocVZ1kQh0HVtFipVYBBqBRqAR6Lqbi8wvEUCgk9oBgU4CyRvoVJChZFGBrnrTE9pU48GKKCuxCVuWfmEwYb7RFFPXpXwueXQDStyVz9PRbIU6VH20pCqvsDVCIXAMAQQ6lTtvoFNxOpMh0E5wzmGKFCuxzuW8PGyqqArrnbquoyUPgRY6oy60SnSr8taRIDMEkggg0EkgeQOdCjKUDIEO4ZMHK1KsxMoL+fCAqaIqrHfquhBooTJi6NFsheVWiW5VXmFrhELgGAIIdCp33kCn4nQmQ6Cd4JzDFClWYp3L4Q30a+COljzeQCd0cjxFlehW5Y3vmAwQKCaAQKcCRqBTcTqTIdBOcM5hihQrsc7lINAIdELrjKU4+oeTsVW+F1UlulV5ha0RCoFjCCDQqdwR6FSczmQItBOcc5gixUqsczkINAKd0DpjKRDoMjEfKwBREDiQAAKdCh+BTsXpTBYVaOe03mFTPw/rXeSLcVFhUP44X4mt2NeSc2UNW2/clMN/qppH2SaMh1cCxCukmHknbPGK3oFKHTrsV1nv3WIR6NSKK8/Q1IlJ9hIBBLquHaIPD+WBoMRGdyzMhUBHYevjEWid2SVHCOe0bP/RO1BZWIf9Kuu9WywCnVpxBDoVpzMZAu0ENzAs+vBQHghK7MDSnwwR5kKgo7D18Qi0zuySI4RzWrb/6B2oLKzDfpX13i0WgU6tOAKditOZDIF2ghsYFn14KA8EJXZg6Qh0FNJx4xHo49i3mnnmnbC18egdqADtsF9lvXeLRaBTK45Ap+J0JkOgneAGhkUfHsoDQYkdWDoCHYV03HgE+jj2rWaeeScg0K1K33IxCHRqWRDoVJzOZFGB7nBJK1uPSq0yV1GsIkhKbMlyi/oj46Mh0f0qbIdjE3gNz7XxdW2bF/Pg2dmszeD4aF1SxifUIWUdJDkXgaY9rtwJEnBlvwi0hHYvGIHeIzTjvyPQq98eMQO9dw7lMlRivevJelutzI9Ab9NSaq7Ern3LivTNK8rDVmmGilgEuoLq9XM27XHpnCtVUvaLQCtkd2MR6F1EEwIQaAS6ss2KRASBRqAr23b1h4Vlwq1+Ll0MyU9DQBHKiZtCoCfCnjQVAj0J9JPTINCneygql6ESW9KOCPR7WIfrkMBreC5lXVvyuLJePsJRcpJIegYCCPT285Q30KkdjECn4nQmQ6ARaGfrDA1LEMK1eXgDzRvoof7zBhX1rXc5jDsJAQQagZ7Uqgj0JNClb6A77IE1nI9A0wfN+UAOrjhBCLd+aBlcgZVd+DN7KTqXUofoXKOFmR2nMJi9tpnzFdS3w4uFTYS8gU7trrL7NHWVV08WfQN9dT7sr4ZAwcOjZqEXyZogLQj0xmeglc9FK3W46hlRGFzk+K1uo6C+CPSVG+bVvSHQHWqNQHeowv3WUPDwuB9EYccJ0oJAI9BCx22HJvRiyjqOTlJwByLQRxd13vwI9DzW2zMh0B2qcL81FDw87gdR2HGCtCDQCLTQcQj0HqyCOxCB3oN+nf+OQHeoJQLdoQr3W0PBw+N+EIUdI9ACrCdCo32r1CE6V86O87MoDPJn75OxoL4IdJ/yVq8Ega4mPJIfgR6hREw2gYKHR/YSL5UvQVp4A80b6JQzkdCLKes4OknBHYhAH13UefMj0PNYb8+kCHTBge+AQPrLEZRfGJq5uQs8lFIu/9H6jMYV1lAR0mdXPXuFfIdTn4ntBc75cF2eCFS+6zxjvg/lSKhDeA9n6tsFIN/CkdqKCHQqTmcyBFr7HugG4rVa6YQL3dlBacMQ6G2UCHRam3040ZlE5ALnPKOSYfmMLiKhDuE9nKlvEehox31oPAKdjtSREIFGoB1tUzEEgUagK/pqN+eZRCRB3HZ5nCAgLJ/RPSbUIbyHM/UtAh3tOAQ6nWBGQgQagc7oo4QcCDQCndBGeooziUiCuOmA+o0Iy2d0Swl1CO/hTH2LQEc7DoFOJ5iREIFGoDP6KCEHAo1AJ7SRnuJMIpIgbjqgfiPC8hndUkIdwns4U98i0NGOQ6DTCWYkVAQ6Yz5y1BBQLvSN2HdX/veZn71NEegauvOyCnVUeCmx8zb7xExnkgOhZi3YXmARYflsyqDtOc3ocX6JMLXr+Ax0Kk5nMgTaCa7ZMOWCQ6CbFe+l5Qh1VB62SmwLOAh0izJ0XQQCPbkywr20uTIEOrVoCHQqTmcyBNoJrtkw5YJDoJsVD4H+UEEQ6L492mBlCPTkIijPl62lIdCpRUOgU3E6kyHQTnDNhikXHALdrHgINALdtyU7rgyBnlwV5fmCQE8pDgI9BfPOJAh0hyrE16BccAh0nHdVBqGOyscylNiqrUl5eQMt4bpbMAI9ueLCvbS5Mt5ApxYNgU7F6UyGQDvBNRumXHAIdLPi8QaaN9B9W7LjyhDoyVVRni+8gZ5SHAR6CuaD3kCf6Q3SzDpkXEQT11v1oKrKO4xG+SFiOCmB7QmM3kuzz+nourYAR8e3L9yrCzz8/qjipfTd2WrOG+jUrkGgU3E6k1W9gT7b4Xbik4cpF6ScPH9A1YOqKu8wAQR6GNWlAkfvpdnndHRdCPR7BA6/P6oOhdJ30Z6p2gNvoKeQRaCnYOYNdAfM769BuSAbLLzqQVWVdxgZAj2M6lKBo9Ix+5yOrguBRqBf9EC0Z2YfbN5ApxJHoFNxOpPxBtoJzjls9oPZucwXw6pEtyrv8HYR6GFUlwoclY7Z53R0XQg0Ao1AX+pK8m4GgfaSyxyHQGfS3M81+8G8v6InI6pEtyrv8HYR6GFUlwocFdXZ53R0XQg0Ao1AX+pK8m4GgfaSyxxXJdCZazwqV/ShNnPdsx/4wb0dLtDB9b83XOkPJTZjbZEcJ+ulyFZLxx5dc+pYWl6SbxDY6ruPrdz6z569bWZvwlIngEDrzPJHINDbTI9+ACrVPtnDEoHeEHCl5lWxJ+ulKgzhvEffH9QxXEISOAgg0A5o+hAEWmeWPwKBRqDzu2o3IwKNQO82ydkDEOizV5D1ewgg0B5q8hgEWkZWMACBRqAL2movJQKNQO/1yOn/OwJ9+hKyAQcBBNoBTR+CQOvM8kcg0Ah0flftZkSgEejdJjl7AAJ99gqyfg8BBNpDTR6DQMvICgYg0Ah0QVvtpUSgEei9Hjn9f0egT19CNuAggEA7oOlDEGidWf6ImQJd9UstRz+olqp0WEN+d5Tt6xICXcF7ds6tM7m2DiV25j6uevaiDKvuW2VdM2uTsd+j1yvs4V3hPLaQLf4iFeXk7Ma2qOnuKq8egEDnVHjmxZuz4rEsRftCoMfwl0cJD+HVHxLLFzgwQVGPDszcO0SQsbKNzKxNxn6PXq+wBwS6rGtPkRiB7lAmBDqnCjMv3pwVj2Up2hcCPYa/PAqBLkd82ASCjJWtsej+WF1vxn6PXq+wBwS6rGtPkRiB7lAmBDqnCjMv3pwVj2Up2hcCPYa/PAqBLkd82ASCjJWtsej+QKDNEOiyrj1FYgS6Q5kQ6JwqzHxQ5Kx4LEvRvhDoMfzlUQh0OeLDJkCgn6OP9rgyXim2creuxCLQCuzrxSLQHWo6U6Az9qtcOtH5Zs5VsVb14RFdQ9PxZbJ+pv5oWpvTLYua9yiZUgclNri7tbtmK+VUAZrIYBMhv0QY7K5Xh0/tn9SVXykZAr1dzQ6XzmivdXjbNLrWyXEI9GTgV57uTHcCddh+A130VhmBfqLpEOjUE4lAp+J0JkOgEWhn65xlGAJ9lkqdYJ0IdI8iKXVQYoO7Q6AR6GALDQ9HoIdRFQYi0Ah0YXt1SI1Ad6jCRdYwUcYuQqxmG0odlNjgahFoBDrYQsPDEehhVIWBCDQCXdheHVIj0B2qcJE1TJSxixCr2YZSByU2uFoEGoEOttDwcAR6GFVh4MkEukyGKhBPvLgrlv9eTuWzgkps2YI/nPhUPTORizrVKscr9LgK4iTxWzK3+uBVfodCiVVYKb2kxCprILaOAJ+BTmWLQKfidCZDoJ3gBoZd4ZJXpFiJHcCXFYJA55BEoHM4zsqCQM8izTxDBBDoIUyjQQj0KKnKOAS6ji4CXcdWyIxAC7CeCEWgczjOyoJAzyLNPEMEEOghTKNBCPQoqco4BLqOLgJdx1bIjEALsBDoHFgNsiDQDYrAEj4ggECndgMCnYrTmQyBdoIbGIZAD0CqD0GgcxjzBjqH46wsCPQs0swzRACBHsI0GoRAj5KqjEOg6+gi0HVshcwItACLN9A5sBpkQaAbFIEl8Aa6qAcQ6CKwUtqTCfTa3i4rSFW/7S41yEpw13VF9zV7/BV+wFKYdd1vh3V1WINSy8HYy97Ng/t/KqziK++kH5oS9iCl4A20hGsvGIHeIzTjvyPQMyj75ugqql3X5aN83KiLStMm0K777bCuDmsoOAkI9DZUBNrMnj1728zeLGi9y6dEoDuUGIHuUIX1NXQV1a7r6lvJ8fo2/SrAFLRdJbHDujqsIaXIryZBoBHo9wnwBjr1hCHQqTidyRBoJ7gJw7qKatd1TShJ6hQXlSbeQDu65KK9gEAj0Ai04z4YGIJAD0AqD0GgyxG7J+gqql3X5QZ90MCLShMC7eini/YCAo1AI9CO+2BgCAI9AKk8pEqgz/RAUIRQiS0v3ksTdF1XBoOKXroyL4X53dhW7FfhfeHY0c/0zn7wHy7xCXfN4XvI6Fs+wpFB8f0cs89R6uIvkwyBNlMuOCV2ZpN0XVcGgwrpuTIvhfnd2FbsV+F94VgEeqO4CXcNAn3hg+PcGgLtBJc6DIFGoFMbqiBZhfQkPNQKdjo/5d3YVux3ftVazohAI9BPNiZvoFPPLQKditOZDIFGoJ2tM21YhfQg0M/Ldze2FfuddhB6T4RAI9AI9LwzikDPY709EwKNQHfow6fWUCE9CDQC/aLntnqh+7lotj4EGoFGoOcdSgTaz/rTzOxfmtmnmNn/M7PvMLNvMbNPNrPvNbNPN7NfMLMvNbNfe3IaBBqB9vfhnJEIdB3nu7Gt2G9ddU6VGYFGoBHoeUcWgfaz/lQzW/79STP7eDNb/jafv2xmX2Fmv2pm32xmX29mn2RmX3eIQK9NOvOt38Zc7wpvm2jQugdCyUcH/OfpkJGjwrEs7hniN7dGM++qhJ3N/CWz6F8XHR2fgGs7BefMpHtJKQafgVZo7cbiJ7uIhgP+nZn988e/X2Bmv/wQ7B8xs89CoD8ggEAP95T2kFmihR9OEGjTHlQ82BMaV0iBQG/CigpwdLxQRT2Uc6bdSwphBFqhtRuLQO8iGgpYPq7xn83ss83sF83sE18atXx8Y3kLvf1P1Uc41mac+VDiDfRQ87iCMurIg0p7UMHL1aruQRk97p5cH8gbaJ3Z6gjOmXYvKdgRaIXWbiwCvYtoN+D3m9l/MrNvNLMfNLNfHxToj5rZ8q/ZG298xN5559WJnhWVZuZDCYHebR53QEYdeVBpDyp4udvVNTCjx10T+wYh0D5uHxrFOdPuJQU7Aq3Q2o0tsrTdea8S8LvM7N+b2X8ws3/y2NTPmxkf4VhgINB1fZ4hFzyotAcVvOr6eS1zRo9PXDECnQSbc6bdSwp2BFqhtRuLQO8i2gxY2H334xcG/+5LUf/YzH7lpV8iXL6V42ufnGbmRzi2FhK8tFYfHkUPwKmf3yvag7/tHCOvsAfHtoeGKH2vxA5NTtBTBKRzHv3sf9G9uLm/M/XShe8P6YeeFQ7S7/N0qDkCnXrpItB+nH/GzH7UzH728TV2S6ZvMLMfN7PvWz6Y8fg89Jc8JHt7JgRaqoL0YJUyrwRf4eFxhT1E65ghSB0egFUcGuaVzjkCXVfBC98fCPTy9ULPlm8Qe7Ouga6bGYHuUFsEWqqC9GCVMiPQUVynG69IsRJ7OhD9FiydcwS6roAI9HO2vIGu67GTZkagOxQOgZaqID1YpcwIdBTX6cYrUqzEng5EvwVL5xyBrisgAo1A13XXqTMj0B3Kh0BLVZAerFJmBDqK63TjFSlWYk8Hot+CpXOOQNcVEIFGoOu669SZEegO5UOgpSpID1YpMwIdxXW68YoUK7GnA9FvwdI5R6DrCohAI9B13XXqzAh0h/J1EGiFw+BnwTKaS/olD2UPxJ6KgCRTTXeW8tfzVkj8hQWpaStMXRvowcYAACAASURBVJZyhyqx0iYq+lZawHqwsl8lNmFpNSn4Fo5UrhmOk7qgWyZDoDfLfolL65ZNnbtpBPrBs0JEEOjcZm2WTblDlVhpmxV9Ky0AgX6PAAKd0DUfpECgU3E6kyHQCLSzde4yDIFGoO/S69n7VKRYiZXWiUBLuMqCEehUtAh0Kk5nMgQagXa2zl2GIdAI9F16PXufihQrsdI6EWgJV1kwAp2KFoFOxelMhkAj0M7WucswBBqBvkuvZ+9TkWIlVlonAi3hKgtGoFPRItCpOJ3JTibQZZfsCr6Zczmrx7BkAlNr3vTBnoyUdFcjEPzcuvQDaXCuq6Cfei9VQUOgU8ki0Kk4nckQaN5AO1vnisOmPqgQ6Cu20PX3FJRaBFpvkan3kr68sREI9BinwSgEehBUaRgCjUCXNti5kk99UCHQ52oOVvucAAI9vROm3ktVu0OgU8ki0Kk4nckQaATa2TpXHDb1QYVAX7GFrr8nBHp6jafeS1W7Q6BTySLQqTidyRBoBNrZOlccNvVBhUBfsYWuvycEenqNp95LVbtDoFPJItCpOJ3JEGgE2tk6Vxw29UGFQF+xha6/JwR6eo2n3ktVu0OgU8ki0Kk4nclOJtDOXbqGlVxawYePayOzBiGE8R/GtvpjLbPSS0reWf1yxDzRHlXGK7FHsGg2Z/S+lX45cWPvw2vIOHsrOTb3MNhLGQzW0Ejr2uqrj61kefbsbTN7s1krnmI5CHSHMiHQcelR6qhcvEreDrGDl3yHpc5eQ/jBjEDnlCzao8p4JTZnd6fOMnxGBPldQhXRGF6Dco8LsZKoKgIe7AxpXQh0kPbYcKWvxzISpRNAoBFovWvWRyAM8V5S3hQLD+bNb07Iqv1Z8kR7VBmvxJ6FX+E6h+UVgX5OAIEu7Mb+qRHoDjVCoOPSo9RRkR4lb4dYhCHeSwh0bSdHe1QZr8TW7voU2RFoM+lNLwJ9ir6uWiQCXUVWyYtAx6VH4Y1AK7QuEzssBwh0bc2jUquMV2Jrd32K7MNnhDfQvIE+RUfXLhKBruU7lj0q0B2EUHhQbf2EPwZL+zzdas4MXsJ+R/fVOu5M+82ob+ti3GRxGT/IHI3qbr2Ysd+j75qNPby78r9XCVT0B5ntN1L8EmHmlVBV/8w1Xj8XAi3VONy0V7jkJWIJwUc/1JQtZNRXmY/YGgIIdA3XyqwZZ+/ouwaBruyQS+UOu8ilaBy1GQRaIh9u2itc8hKxhOCjH2rKFjLqq8xHbA0BBLqGa2XWjLN39F2DQFd2yKVyh13kUjSO2gwCLZEPN+0VLnmJWELw0Q81ZQsZ9VXmI7aGAAJdw7Uya8bZO/quQaArO+RSucMucikaR20GgZbIh5v2Cpe8RCwh+OiHmrKFjPoq8xFbQwCBruFamTXj7B191yDQlR1yqdxhF7kUjaM2sybQb22URnmorOxH+luSMi7Do5i+mDd6GV+BwdE1SJhf6tut+aK9ENxH9OuxgtPPH87ZacFc+uU35fkixCq/FKfETgV88P2Rslf+Ku8UjC+SINCpOJ3JEGgnuIFh0UsPCRiAXB+CQNczTp+Bs5OOdDfhCnMEepfaWED0WTI2S20UAp3KF4FOxelMhkA7wQ0Mi156SMAA5PoQBLqecfoMnJ10pLsJEehdRO6A6LPEPXHiQAQ6EWbCV+qmruauyRDouspHLz0koK42QmYEWoDVJZSzM78SCHQd8+izpG5l45kR6HFWA5G8gR6AVB6CQNchjl56SEBdbYTMCLQAq0soZ2d+JRDoOubRZ0ndysYzI9DjrAYiEegBSOUhCHQd4uilhwTU1UbIjEALsLqEcnbmVwKBrmMefZbUrWw8MwI9zmogEoEegFQeEv0au4QFTv3NZ+UiUmITOHwoRVcJ6LquBeDRNavog4vk3PpBZG17qw+HmX23NdfaYpXYaC0TGEy9b6P7LRp/u2+lKeIopUWgJVx7wQj0HqEZ/x2BXpeuDjKW8LAsaaGu6+pQsxLg10iKQCfUMeHsIdBmCHRCL6opEGiV2JPxCHQqTmcyBBqBVlsn4SGuTjkczxvoYVSzAxHoBOIJZw+BRqATOlFPgUDrzJ4YgUCn4nQmQ6ARaLV1Eh7i6pTD8Qj0MKrZgQh0AvGEs4dAI9AJnainQKB1Zgh0KrP8ZAg0Aq12VcJDXJ1yOB6BHkY1OxCBTiCecPYQaAQ6oRP1FAi0zgyBTmWWn6yBQK9uKuFBkQ+rScaDJTEsQk0whpcRrUN0vLCBlG8SEeYj9FwEyj4TPLHHM4iP3m388bmDNgLtgLY9hB5MxelMhkA7wR047OCH0uhDZiF06UMerUN0vNCCCLQA64ahCPTzoo/ebZe+16r6H4FOJUsPpuJ0JkOgneAOHDZRvNZ2OfqQQaB3emRiHRHoA8/rCaZGoBHo8jZFoFMRI9CpOJ3JEGgnuAOHTRQvBPqJOkfrEB0vtCACLcC6YSgCjUCXtz0CnYoYgU7F6UyGQDvBHThsongh0Aj0gZ3O1JMIINAIdHmrIdCpiBHoVJzOZAi0E9yBwxDoA+G/NHW0DtHxAgXeQAuwbhiKQCPQ5W2PQKciRqBTcTqTdRVo53YOGzZRhg7b41knpjZa5aq+AYc6aHWIRifUUfrKO+obrdj2+ChbZbwSu7birb772Eo3PXv2tpm9WQfuupkR6A61RaBzqhC9dHJWQZbRC33rkoeg9r3oCi/OiEIrHotAxxl2yRA9O8p4JXb0vl3iEOjUbkKgU3E6kyHQTnCvDYteOjmrIMvohY5Aa2+7lugoM87I3POJQM/lXTlb9Owo45XY0fsWgU7vDgQ6HakjIQLtgLYyJHrp5KyCLKMXelQGr0w6QbxW8XBG5nZNQh35CMfckm3OFj07yngldvS+RaDTGwmBTkfqSIhAO6Ah0DnQJmWJPhAmLbPNNAnihUA3qGZCHRHoBnVclhC9w5TxSiwCfViDINCHoX9p4iKBVi7ekr+YI+HhEb60OtQ3ehlG95BRh+galPFH84qudfnb1Fb2wGX7AFtR37P1uNJjK7Ezv9Fl5lxBLLXDR//EbDSudrXr2fkWjlTq3OmpOJ3JEOhtcBUPW2eZ3MOO3sPZ5OJoXkqhN9gi0E9ArKjv2Xpc6TEEOkgrafioGI/GJS1LSoNAS7j2ghHoPUIz/jsCjUBX9tnZ5KJCsKr4ItA62Yr6nq3HdWqvjJj5VnjmXEEstcNHxXg0rna1vIGewBeBngB5dwoEGoHebZJAwNnkokKwAvieHIpA62Qr6nu2HtepIdBBZuHho2I8GhdekCMBb6Ad0LaHINCpOJ3JEGgE2tk6Q8POJhcVgjUEyhGEQOvQKup7th7XqSHQQWbh4aNiPBoXXpAjAQLtgIZAp0JLT4ZAI9DpTfVSwrPJRYVgVfFFoHWyFfU9W4/r1BDoILPw8FExHo0LL8iRAIF2QEOgU6GlJ5so0Mrat/54YvQbO073xxsVD/YN4MrnCpVvU1HqS2z8q6mUOnbgXdZLFWdHEREltqoQUQY3+yFA+kuBOtS3qm9m5kWgU2mfznFSd98lGQLdoxLRB6CwC0W8yqRHWO9lQ4M1V+rYgWFZLwU5rrJRpEmJrSpElAECvV2ZDvWt6puZeRHoVNoIdCpOZzIE2gkueVj0ASgsRxGvMukR1nvZ0GDNlTp2YFjWS0GOCPQTf037VeVR2ZcS2+GgdV0DAp1aGQQ6FaczGQLtBJc8rEICNpaoiFeZ9CTjO2W6YM2VOnbgU9ZLQY4INAL95PlAoHOuDwQ6h+MjCwKditOZDIF2gkseViEBCHRykZLTBWuOQD/qEeSIQCPQCHTy3baWDoFOhYxAp+J0JlsT6Lc2StPgJ/GZv0Q4OtdCnmZ29h/DXiVQ9VnUjLwrOfhbD5MaePSHgIw6Bpfc9Qc3aV0NOAbLcL7hCHRqzXCOVJzOZAj0JjgE2tlTDPMTqHqwZ+RFoP113RuJQO8R2v3vCPQuomMDEOhU/gh0Kk5nMgQagXa2DsMKCGSI7tqyMvIi0AUFf6REoMNsEegwwtoECHQqXwQ6FaczGQKNQDtbh2EFBDJEF4EuKExxSgQ6DBiBDiOsTYBAp/JFoFNxOpMh0Ai0s3UYVkAAgS6AeoKUCHS4SAh0GGFtAgQ6lS8CnYrTmQyBRqCdrcOwAgIIdAHUE6REoMNFQqDDCGsTINCpfBHoVJzOZEVfYyetZvThYWZl3yW7smBlruHYKkESgEsPGiHvJUIHP+e7tVcuNbELlPOgxIrLIHyDgHA3RxmGf2m7qD+G7/YtAEXrivJOGa/0BwKdgvxFEp41qTidyRBo6Q30VtMOX7INLlME+omzgkA7LxLnMOU8KLHO5TDsNQKKIAXhIdBBgEcMV/oDgU6tEAKditOZDIFGoB8EOJDrf6HE2ncd8wbaed+8PkyRYiU2aXm3T6MIUhAWAh0EeMRwpT8Q6NQK8bxOxelMhkAj0Aj0Bz3AG2jnReIcpkixEutcDsN4A/16Dwz/6eJW81y5bxHow64MBPow9C9NjEAj0Ag0An3UXaTIhRJ71H6uNq8iSMG98wY6CPCI4Up/8AY6tUIIdCpOZ7KgQG9+nlY5WM6lHzEs/Pnhk0lA+KG2USTprc5Fe2kVzcn6I3wGt/a7lliJDS9sPEH4TlimGu3xov5Q9qDErlGMjt+sTBEbzulGfyp9u8R+bKXyz569bWZvjp82Il8QQKA79AICLVUhfPnPvOSlna0HI9AJEJUUJ+sPZWuSiCDQ41K9JTJCcZR7TYlFoIUidA5V7qWtWAQ6tcIIdCpOZzIEWgIXfXisvmlKeABKmxCCEWgBVkao8qDKmO/oHMpbZSV24r7Cd4LyJq+oP5Q9KLEI9MRGrJxK6TsEurIS7+dGoKdg3pkEgZaqEH14INDPcfMRjo22Ux5UUuc2DVakWImduN3wnYBAv1etsBDMPDsz55rYy5tTKftFoKdULHxepqzy6pMg0FKFww9L5SKSVlYTzBvoGq4pD6rJSyuZTpFiJbZksetJw3cCAo1AT+xX11TKcwuBdiFWByHQKrGK+KBAK0tKedAoExJ7LgKKICmxXSmM/uJYxvqVB2B0vplzRdd64fHSfZtQM+lPlS7MfXhrM8//8KIKA/kWjlS4CHQqTmcyBNoJjmHpBBQpVmLTF5qUcOYDNEGQhnc9c67hRd0vEIFuXvOZ578DCgQ6tQoIdCpOZzIE2gmOYekEFClWYtMXmpRw5gN0ptTOnCupFFdMg0A3r+rM898BBQKdWgUEOhWnMxkC7QTHsHQCihQrsekLTUo48wE6U2pnzpVUiiumQaCbV3Xm+e+AAoFOrQICnYrTmQyBdoJjWDoBRYqV2PSFJiWc+QCdKbUz50oqxRXTINDNqzrz/HdAgUCnVgGBTsXpTIZAO8ExLJ2AIsVKbPpCkxLOfIDOlNqZcyWV4oppEOjmVZ15/jugQKBTq4BAp+J0JosKtPKwVGKd23l/WMJcym+VD8cq61IkUYkV2A7vS8jZIlSpQ4sFn2gRsH2vWJc9OydqxaqlSj+cVC1iLW/ns4dAp3YCAp2K05kMgd4EpzwAh2OVC06RYiVWaJXhfQk5W4QqdWix4BMtArYI9Ina1bNUBNpBDYF2QNsegkCn4nQmQ6AR6CdaB4F2nqs7D0OgEeiL9z8C7SgwAu2AhkCnQktPhkAj0Aj0BwSK3uSnn9vOCRFoBLpzfyasDYF2QESgHdAQ6FRo6ckQaAQagUagMy8WBBqBzuynhrkQaEdREGgHNAQ6FVp6sqhApy8oKeEVHuIZezj4N73bPmiS2iw9jfIGXIndWmi0P6Lj0wE+EmacncG10eODoF6ETayNuLL18K49nrK5iUkQ6FTYfAY6FaczGQLtBDdhWMaD5uDLH7kQ+0SRYiUWgX5OIIPZayzp8aQeL6iNuDIEOgXYRhIEOpUuAp2K05kMgXaCmzAMgZ4AudkUikQosQg0At2l1TPutZl7OfglxMytls6FQKfiRaBTcTqTIdBOcBOGZTxoDr78eTsn9okixUosAo1Ai61YFp5xr5UtbiXxwXfozK2WzoVAp+JFoFNxOpMh0E5wE4ZlPGgOvvwRaLFPFClWYhFoBFpsxbLwjHutbHEIdBlaBDoVLQKditOZDIF2gpswLONBg0BPKFTiFIoUK7EINAKd2KahVBn3WmgB4uCD71BxtX3DEejU2iDQqTidya4q0E4chw2ruqSr8h4GKmnijIf4FdgqEj66XyVnUjlJM4+A8qdKZX8R02gvzsPSYqbN2nTghUCn9ggCnYrTmQyBdoJLHlZ1wVXlTd7+9HQItP5GdrSXEOjp7TxzQgR6Jm1tLgRa43XmaAS6Q/UQ6A5VWP96rQwRGZWeHhTmrQKBRqDnddulZkKg+5YTge5bm+yVIdDZRD35EGgPtfwxVaJblTefwNyMCDQCPbfjLjMbAt23lAh039pkrwyBzibqyYdAe6jlj6kS3aq8+QTmZkSgEei5HXeZ2RDovqVEoPvWJntlCHQ2UU++qEBniIhn3YxxE9i6ZNcSrh1S5QEqLZJeknCVBVfVgR/mykq2+jcsCh8Bk850VX8odIp6qeyXHpW9dYzNqDm/RJhaWQQ6FaczGQLtBHfeYQj0eWs3ZeUZD8u1hRZJzxQm3ScJskWgnxcYgd5o9Iw7AYFOvUUQ6FSczmQItBPceYch0Oet3ZSVZzwsEegppXp/EgR6/RexxSog0Ai02DKHhSPQh6F/aWIEukMVpq4BgZ6K+3yTIdDXqBkf4ZDriEAj0HLTHDQAgT4I/CvTItAdqjB1DQj0VNznmwyBvkbNEGi5jgg0Ai03zUEDEOg4+I8zs58ws18ys79oZn/MzL7HzD7ZzH7SzL7czH7ryWkQ6HgVTpYBgT5ZwWYvF4GeTTw+Hx/h4CMc8S7azpBxJ/AZ6NQKIdBxnH/fzN40s094CPT3mdkPPiT6283sp83s20oFOr6H62YIPtS2wPCW5ImWGX3rNhrXpTuLeqnL9rLXIf1SXPbkWfmUHlVis9Y3I0+GuK2tU8jb4r69wvlHoFNPDAIdw/lHzOy7zewbzWwR6b9kZv/bzD7FzH7bzD7fnv9M/oUIdAy0e3TRpdfiQndDKR44KhKjccXLHU5f1EvD858sEIE+WcG2liuIrrRjIW+L+/YK5x+Bllp0LxiB3iP09H//12b2TWb28Wb2D8zsK8zsx8zsMx/DPs3MftjMPhuBjoF2jy669Fpc6G4oxQNHxXg0rni5w+mLeml4/pMFItAnKxgC/XTBrnD+EejUQ4lA+3Eun3f+YjP722b2BQ+B/koz+6+vCfQPmdnnrEzzUTNb/jV7442P2DvvvBryjNL4S/PSyKJLD4F+ojqjYjwal9IICUmKeilhZS1TINAty6IvSnhTLCUX8ra4b69w/hFoqUX3grG0PULb/31587z8guDyUY3f8/gM9L95fFyDj3D4ueaOLLr0WlzouaTyso2K8Whc3spimYp6KbaovqMR6L61kVYmiG5V3hb37RXOPwItteheMAK9R2jsv794A728lf5+M/uBl36J8GfM7FufTLP2LRxvbZTmbNIxxq9FVItLugWJwUUoD9YrPHwGsSxhUi+tsHl3g+3wha3URtgXoRqBjB8iVntJeA5s9dLaTtb6S9rDhftO+eakUbZaNyVEI9AJED9IMXwfp856vWQvC/RnvPQ1dj9lZl9mZr+JQPcvuiQ9/bdTv0LlYYlA2+Zli0DX9+pBM0jyubFGBPqg4r02LQLdow6dVoFAd6gGb6A7VEF7a9hixQcvAoHeLID0wxgCfXAj102PQD/YCm/M66oRy4xAx/hdcTQC3aGqCHSHKiDQahUQaARa7ZmbxSPQCPSLlm8hW3yEI/UGalHT1B2dMRkC3aJq0lvDFis+eBEINAJ9cAt2nx6BRqAR6O6n1L8+BNrPLm9k9K/yzlvJcZkUGdta5cTP2UqyPXFdxxXw+jMrNVdi25KL/rG7cKajv+iWwnDiOVU+DtD1IR3dQ8YPFyl1P3kS6a7hDXRqtbuezdRNtk+GQD//+xrX/lEe4gc/AJVfEtvcb/tmve8ClQeVEtuWqHL2lLMrfOZ7LW3ZQ+vg+2OrD8r2G2w8BDoIMGm4dNcg0EnUn6fpejZTN9k+GQKNQLdvUhaoPKiU2LZkEejteylYtKh8BqdPGR7dA2+gU8qg/e4OAp0D/ZEFgU7F6UyGQCPQztZh2DwCihQrsfN2IM6EQCPQT7QMAi2ep6Jw6a5BoFOrgECn4nQmQ6ARaGfrMGweAeVBpcTO24E4EwKNQCPQ4qGZHy7dNQh0aoEQ6FSczmQINALtbB2GzSOgPKiU2Hk7EGdCoBFoBFo8NPPDpbsGgU4tEAKditOZTBHoib/o4tzNfYdl/CLkfen12fkV6th4D9IDv09XnHclyjND+AVPRR6iNY+OTymewnFtQmW8EqtsDoFWaO3GKmdgNxkBTgIItBNcs2GNpaUZqd7LuUIdG++hhQz17sDc1SkyhkBvs1c4ItC5Pdw0GwLdoTAIdIcqxNfQWFrim7tRhivUsfEeEOjJZ0kRPwQagZ7cnmeeDoHuUD0EukMV4mtoLC3xzd0owxXq2HgPCPTks4RA5wBXOPIGOod58ywIdIcCIdAdqhBfQ2NpiW/uRhmuUMfGe0CgJ58lRfx4A80b6MnteebpEOgO1UOg51YhQS4uIQHKg3VuhWpm26r767ONxj21SoHtai8l9GgNRLJCwEFAOA9r2cP3rXKmlVgHiqEh0R9ktvbwsRWSz569bWZvDq2LoFcIINAdGgKBnluFBDkJX+hzd7w+W/Ch1mEL0hpGH4yjcQi0hJ/gGxMI3jXh+1Y500psVUkR6CqyqXkR6FSczmQItBOccxgC/Rxc8KHmpH/csNEH42gcAn1cLZn5XASCdw0Cbfbuxr20KnG8gZ5yPhDoKZh3JkGg51YBgUagVflVO1QQBj7CocIl/nQEhPOwtjcEGoHu2PMIdIeqINBzq4BAI9AI9Nwzx2z3JoBAa/XnIxwar4OiEeiDwL8yLQI9twoINAKNQM89c8x2bwIItFZ/BFrjdVA0An0QeLdAR9ebII/RJYTHX2EPYQgkgEBzAlc4p4r4KbHR0lWxnbmHKIObjV/7GMuCQJI4/irv1K6R2KfOTLIPCChvoKPcqi7e6LqU8VfYg7JfYiFwRgJXOKeKUCqx0XpWsZ25hyiDm41HoPsVHIHuUBMEWqtC1cNDWwXREIDAUwSucE4VoVRio51TxXbmHqIMbjYege5XcAS6Q00QaK0KVQ8PbRVEQwACCPQHBGbKZ9UdOHMPnB6JAAIt4ZoSjEBPwbwzCQKtVaHq4aGtgmgIQACBRqA5BVMIINBTMEuTINASrqLgmQJdtIXVv5RDmWtLipUcFbGTZT38facVDDJyXuHNVvQ34zc4XqLm0fpGx2f06GiOyXfC6LKIOx8BSYqVvtuK5a/yTm0SBDoVpzMZAr3+t+I5caYOUy6thIkvIVNrHM4kSFt1RKC3Ozxa3+j4hLM3nGLynTC8LgJPRwCBPl3JXlkwAt2hfgg0Av3oQwS6w4HcWAMCjUAvBBDoxof0XEtDoM9Vr9dXi0B3qB8CjUAj0B1O4tNrQKARaAS6/zk90QoR6BMVa2WpCHSH+iHQCDQC3eEkItDeKkQ/ghEd7123ZxxvoD3UGLNCAIE+d1sg0B3qh0Aj0Ah0h5OIQHurEBXg6Hjvuj3jEGgPNcYg0JfrAQS6Q0m7CvTZHhRNH8IzP9dcNVdV3qnHr2l/TGVw1clm3lXKNwYpsRm1GZ1vNM7Mtt6Sri13qlDMrHlGbTrk4K/yTq3C1H5PXfmVkiHQOdVsKkgz5bNqrqq8OYUfzNK0PwZXT9hTBGbKlCCf4a/3VKs+urbROARarUDveAQ6tT4IdCpOZzIE2gnutWFNBWmmfFbNVZU3p/CDWZr2x+DqCUOg93tgVIxH4xDofeZnikCgU6uFQKfidCZDoJ3gEOjXwVWJblXenMIPZkGgB0GdMIw30M+LNirGo3EI9AkPwxNLRqBT64lAp+J0JkOgneAQaARaaB0EWoB1slAEGoF+0bLCDwcn6/L4chHoOMOXMiDQqTidyaoEOioMMx9KTnSHDVth8+4Gr2dKHZTYwzbPxC4CnCcXNgadh4DyC4dbuyqREuXsKQKuxK5sePNr7JS8SiwCnXqYSno1dYV3SIZAn6/KCPT5anb0ipWH+NFrZX4IOAgg0Bo0BFrj1S0age5QEQS6QxW0NSDQGi+i+Sug6YHLE0CgtRIj0BqvbtEIdIeKINAdqqCtAYHWeBGNQNMDlyeAQGslRqA1Xt2iEegOFUGgO1RBWwMCrfEiGoGmBy5PAIHWSoxAa7y6RSPQHSqCQHeogrYGBFrjRTQCTQ9cngACrZUYgdZ4dYtGoDtUpEqgO+yNNdQQ2PiFtLVvAln9FpDl+11XcnAhJJWLb1NJAkmaVQIX/oXU8HfOX+HsVe2Bb+FIvVB4XqbidCZDoJ3gbjwMge5d/KoHYO9ds7pZBBDobdJXOHtVe0CgU08oAp2K05kMgXaCu/EwBLp38asegL13zepmEUCgEWhPryHQHmqbYxDoVJzOZAi0E9yNhyHQvYuPQPeuz9lXh0Aj0J4eRqA91BDoVGrZyRDobKLXz4dA964xAt27PmdfHQKNQHt6GIH2UEOgU6llJzuZQId/ySObn5rvwg+fNRSbv+mtcrt7fJUUR/NGxwt1pZcEWGKoxPZmd5iIsmf4xHO6CQCBTu0NPsKRitOZDIF2gnMOu9nDR3owO5HeYljVAzCaNzpeKB69JMASQyW2N7vDRJQ9wyeeUwR6Tgsg0HM4Pz0LAj23Cjd7+EgP5rmVONdsVQ/AaN7oeKEK9JIASwyV2N7sDhNR9gyfeE4R6DktgEDP4YxAd+D8Yg03e/hID+ZOdeq2lqoHYDRvdLzAmV4S3HWGBwAAIABJREFUYImhEtub3WEiyp7hE88pAj2nBRDoOZwR6A6cEehXqsDhF5uy6gEYzRsdL2CQJE/IS6iZxBaBPl/LTDynCPSc9uAZOoczAt2B8wnWcPpf0CxiLMlF0RpIuy15a2wu8XCZKD1lPR7cQ8a6uNcKbw+lvvwSYWohLnHHpRI5IhmfgT6Cess5edCslyXjId6y4Cdb1FYdEOh4Ict6XBGslW1krIt7Ld4fmxmU+iLQqYVAoFNxOpMh0E5w1xvGgwaB7tzVCLSZbX18Ili4DFFdXYIiWAh0sIoHDFfqi0CnFgiBTsXpTIZAO8FdbxgCjUB37moEGoF+0Z+KPHCvFZ5qBLoQ7tOplTNw2CIvPzECffkSj26QBw0CPdorR8Qh0Ag0An3EyXtiTgT6sIIg0Iehf2liBLpDFVqsAYFGoFs04sYiEGgEGoFudkIR6MMKgkAfhv4EAn3Vr0ra2Ne7K//71gFRRFeJXWvH6PiUFlcu6ZQJX0ui9KISW7HWJafyOVmF7WjezgxG95BRG4Vtxnyv5Uj5XPPMPRw9l3p2Cmq2mTLKZmX82jNnmX/1uZNxpvkMdGrHINCpOJ3Jur6BzjiwTiSlwxBoHW/04aHP+OoIpReV2Oi6tsYrkqiwHc3bmcHoHjJqo7DNmA+BHqfYoUfHV7v+Q7HSywi0QvsUsQh0hzIh0HOrgEDrvA8Wkc03usq6lIedTmhM+NfyVuyhg5x0XcPEPuAN9BMHqUN/KOdcOaeD55w30EoB+sUi0B1qgkDPrQICrfOOPjz0GceEVFnXRHHiIxxPfIzl6DpMnB+BRqDfJ8Ab6OhToN14BLpDSRDouVVAoHXeiqjq2fdHKG+rlNj9mX0RiqQpbEfzdmYwugcf+f0fvCbOj0Aj0Ah0xkHumQOB7lCXKoFWHswrHFIu/yDfil+g67CvTSzBmgVx9x0+UQhv900TRVVvfc6K9vx62q69RG2SGuBs9zW/RJhU+OdpEOhUnM5kCPQmOARa/EYHZwu2H4ZAty/RqDze6aGDQJ+ubbUFI9Aar4tF3+ku61s6BBqBfkHgbBfyrFOFQM8inTYPbznNEOi0duqZ6Gz3NW+gU/sIgU7F6UyGQCPQCPTThweBdl4uxw1DoBHo47pv0swI9CTQPadBoDvUBYFGoBFoBLrDXZS4BgQagU5sp56pEOiedZm0KgR6Eugnp0GgEWgEGoHucBclrgGBRqAT26lnKgS6Z10mrQqBngS6VKAn/vH2so/VX+w720VSUfeMOsAxXJlNcYPtOluhb8s+00ttpL4vq4O0ig8HX+GHpql7EM5esDTPh/MZ6BSML5Ig0Kk4ncmib6AnH0IEeqPOGXVAJJyH6INhCLSIUOjbMnGj76WildVBWgUCHcS1/teDL0mrvqscgQ6X7OUECHQqTmcyBNoJrtkwQUQ2V45IhIuKQIsIhb4tEzf6XipaWR2kVSDQQVwIdBjgsQkQ6GP5P58dge5QhfgaBBFBoOO4tzIg0CJboW/LxA2BlopWVgdpFQh0EBcCHQZ4bAIE+lj+CHQH/llrEEQEgc6CLjzEkbR16ELflokbtZEORFkdpFUIZy+Yd+ZwPgM9k/a550KgO9Qv+ga6wx5W1pBxEUX/JsLo+OloZ4rEzLmmgzzRhMrnHUdrpuTcQHW6s3Oikh++VOGHprK1Vq1h9Ixs/EL81n7XZEk5I0psGXM+A52KFoFOxelMhkBvgoteOtHxzor6hwmXv3+Sx8iZc4UXe+EEiuyO1kzJiUBfuLk2tlYlrwrJqjWMnhEE+nm1nj1728zeVEpH7AMdIBoQQKAR6BcEhMs/3Lkz5wov9sIJFNkdrZmSE4G+cHMh0O8R2DgP0Y/CKC9olNiyhuQNdCpa3kCn4nQmQ6ARaATaeXguMEyRXQT6AgVvsIWqt7/K1qrWMHpGeAPNG2ilX1diEeggwJThCDQCjUCnHKVTJkGgT1m2Uy+6Sl4VKFVrQKC3q8AbaKVDd2MR6F1EEwIQaAQagZ5w0JpOgUA3LcyFl1UlrwqyqjUg0Ai00oeBWAQ6AC9t6BUEeuXSelcQA6URo59bU+rW4ZtElPWuxSq8tuYa/Q30ZbxSy+jepPHCg1XKS/DxBKpk7Pid3W8FwXM687PG0bt1+l3JG+jU8zS9fqmrv0oyBFqSLuXSijY4Av38kCHQV7lsLroPBPo6hUWg62qJQKeyjfpF6mJumwyBRqALm1/5gYM30IWFIHUdAQS6ju3szAh0HXEEOpUtAp2K05kMgUagna0zMgyBflAKPphHWBNzEAEE+iDwBdMGzykf4XiiJgh0asMi0Kk4nckQaATa2TojwxBoBHqkT04dg0CfunyvLB6BrqslAp3KFoFOxelMtibQb22URvjFPOdqWg2b+TahauNX2EOYTfChGJ6/Q4ILS164x+mPug6Nsm3Qt6v91WBddUUryoxAp4JFoFNxOpMh0Jvgwg9mZ0kyh11hD2Ee0Yd4eAENElz4gR/ucfqjrkGjbBv0LQKd1B4IdBLI52kQ6FSczmQINALtbJ3TDIs+xE+z0ScW2kBEqjAi0FVkE/JGz16DvkWgE/pgSYFAJ4FEoFNBhpIh0Ah0qIFOMDj6ED/BFneX2EBEdtfoDECgneBmDIuevQZ9i0AnNQoCnQQSgU4FGUqGQCPQoQY6weDoQ/wEW9xdYgMR2V2jMwCBdoKbMSx69hr0LQKd1CgIdBJIBDoVZCgZAo1AhxroBIOjD/ETbHF3iQ1EZHeNzgAE2gluxrDo2WvQtwh0UqMg0EkgEehUkKFkVV9jp1ycSuzoZpWLV4kdnX/5yNdKbNUH/zP+1kKrqIPASwotqpm0BoKtqmdmnp3blbHqnG+dydcBj8Y1LkzKfbu2vyib6HiRuXROEWiR7tPhVS6RusjLJ0Og1yVgKXzwMpIul2CjpVzoVQ/W4N5WhyPQFVT1nEU9M/Ps6Js++Yiimg3fl8F7tQP9lPsWgTZ79uxtM3uzQ03PtgYEukPFEGgE+kUfVj1YK/ocga6gqucs6hkEWi/F8IiimiHQCV8tFv3hIjp+uImeB0rnlDfQIl3eQKcCK0mGQCPQCHTJ0bpF0iIZkx7MtwCduMmimiHQCPTSpZtvRhHoxEOc0Gupq7lrMgQagUag73r64/sukjEEOl6azQxFNUOgE6Qm+gY5Ol5sO+mcItAiXd5ApwIrSVYl0CWLnZtUuhzmLm3ebMrDVrm8q/KOkomudXSeI+Kq2CrMovtW9hCdi/FlLxEktDer+ZmeLymf+UagpeOwF8xnoPcIzfjvCPQm5TNdcGWtojzUFMGqyjsKIrrW0XmOiKtiqzCL7lvZQ3QuxiPQB/TAmZ4vCPQBDbIzJQLdoSYINAL9VB8qIqMIVlXe0TMVXevoPEfEVbFVmEX3rewhOhfjEegDegCBXj4wzbdweFsPgfaSyxyHQCPQCPTTJ2qmOGacbUU+lb0psdF9KHuIzsV4BPqAHkCgEehI2yHQEXpmn2hm32lmn/34Npm/aWY/b2bfa2afbma/YGZfama/9uQ0CDQCjUAj0CN3EQI9QumcMVu1peZl9USgEehIcyHQEXpm321mP/qQ6N9tZr/XzL7BzH7VzL7ZzL7ezD7JzL6uVKA7XLxrG8y4+FdyKJ8FU/4K2HeF9UoHR8g7/Fv0sb6tHX2mN5dnWutW1Yr2oMiFEru6DWUPSmxtp18ve/Su6vAsEvoj3LfRDijitfmM5JcIoxV7ZbzkAakznz/ZJ5jZT5vZZ7z2XebLG+gvMLNfNrNPNbMfMbPPQqCdBUegneAOHCY8wA5c5fOpz7RWBPo6NTu88TcWgEBvf4dyRc0Q6Aqq03Ii0H7Uf8LMvsPMfs7MPtfMlr8O82vM7Jfs+Uc7XvyzfHxjeQu9/U/0IxxFh9CP5jFSuYwFOeANdLgytQnOJKVnWqtwRjL+JEN5O6fErm5DqYMSW9vp18uu3NlKHZS8UarCusJ9W7HWrR/shbl4Ay3ACoQi0H54y98d/2Nm9qfN7MfN7FvM7DfM7KsHBfqjZrb8a/bGGx+xd955dSXPhNIg0O+xWyPGRzj8De4eKTzA3HNkDTzTWhHo5wSuULOs/s3Oo4iuUgclb3RPwroQaD4DHWk3wdIi01xy7Kc8BHr5ZcHlnz/7+MzzZ/IRjgeRjEuTj3Cc7/AID7DDN3emtSLQCHT1gVHubOXsKHmjexTWhUAj0JF2Q6Aj9J7/AuFXPb55Yzm2v++R7lde+iXCTzazr31yGj7CsY0HgY516BGjhQfYEct7Zc4zrRWBRqCrD4wiusrZUfJG9yisC4FGoCPthkBH6Jktn4NevsZu+QaO/2lmX2lmv8PMvm/5YIaZ/aKZfcnjWzm2Z1oT6Ni6GA0BCBxJQPkI1pHrXObO+AjY2m/3H70v5ocABPYJ8Bep7DPaiECg3egSByLQiTBJBYEGBBDoBkVgCRCAwC4BBHoX0VYAAu1GlzgQgU6ESSoINCCAQDcoAkuAAAR2CSDQu4gQaDeiCQMR6AmQmQICEwkg0BNhMxUEIOAmgED70blHMjCPAAKdx5JMEOhAAIHuUAXWAAEI7BFAoPcIbf53PsLhRpc4EIFOhEkqCDQg8NbK1TrzmwiqEGzt4WNbf3VD1ULICwEIpBBAoN0YEWg3usSBCHQiTFJBoAEBBLpBEVgCBCCwSwCB3kW0FYBAu9ElDkSgE2GSCgINCCDQDYrAEiAAgV0CCPQuIgTajWjCQAR6AmSmgMBEAgj0RNhMBQEIuAkg0H507pEMzCOAQOexJBMEOhBAoDtUgTVAAAJ7BBDoPUKb/52PcLjRJQ5EoBNhkgoCDQgg0A2KwBIgAIFdAgj0LqKtAATajS5xIAKdCJNUEGhA4ERfY7f1/RnSw4G/yrtB07EECDgIINAOaM+HSHekexYGPk0AgaZDIHAtAgj0terJbiBwVQIItLuyCLQbXeJABDoRJqkg0IAAAt2gCCwBAhDYJYBA7yLaCkCg3egSByLQiTBJBYEGBBDoBkVgCRCAwC4BBHoXEQLtRjRhIAI9ATJTQGAiAQR6ImymggAE3AQQaD8690gG5hFAoPNYkgkCHQisCfTWX4N9or/ie/MXDvklwg5dxxogoBNAoHVmjxF8hMONLnEgAp0Ik1QQaEAAgW5QBJYAAQjsEkCgdxFtBSDQbnSJAxHoRJikgkADAgh0gyKwBAhAYJcAAr2LCIF2I5owEIGeAJkpIDCRAAI9ETZTQQACbgIItB+deyQD8wgg0HksyQSBDgQQ6A5VYA0QgMAeAQR6j9Dmf+cjHG50iQMR6ESYpIJAAwIIdIMisAQIQGCXAAK9i2grAIF2o0sciEAnwiQVBBoQuKhAb5LlWzgaNB1LgICDAALtgPZ8CALtRpc4EIFOhEkqCDQggEA3KAJLgAAEdgkg0LuIeAPtRjRhIAI9ATJTQGAiAQR6ImymggAE3AQQaD8690gG5hFAoPNYkgkCHQgg0B2qwBogAIE9Agj0HqHN/85HONzoEgci0IkwSQWBBgQQ6AZFYAkQgMAuAQR6F9FWAALtRpc4EIFOhEkqCDQg8NbK1drgr+xe+6u4Ux4C/BJhg6ZjCRBwEECgHdCeD0m5O92zM/A5AQSaToDAtQgg0NeqJ7uBwFUJINDuyiLQbnSJAxHoRJikgkADAgh0gyKwBAhAYJcAAr2LaCsAgXajSxyIQCfCJBUEGhBAoBsUgSVAAAK7BBDoXUQItBvRhIEI9ATITAGBiQQQ6ImwmQoCEHATQKD96NwjGZhHAIHOY0kmCHQgsPYtHAnrGv0lwLW4ZXrpjxzXfulx6xch+SXChOqSAgIHEECg3dCl+9Q9CwOfJoBA0yEQuBYBBPpa9WQ3ELgqAQTaXVkE2o0ucSACnQiTVBBoQACBblAElgABCOwSQKB3EW0FINBudIkDEehEmKSCQAMCCHSDIrAECEBglwACvYsIgXYjmjAQgZ4AmSkgMJEAAj0RNlNBAAJuAgi0H517JAPzCCDQeSzJBIEOBBDoDlVgDRCAwB4BBHqP0OZ/5yMcbnSJAxHoRJikgkADAmsCvfUNFsG/4nvrGzfWKJRd+HwLR4OmYwkQcBBAoB3Qng8pu0/dK7rjQAT6jlVnz1cmgEBfubrsDQLXIYBAu2uJQLvRJQ5EoBNhkgoCDQgg0A2KwBIgAIFdAgj0LqKtAATajS5xIAKdCJNUEGhAAIFuUASWAAEI7BJAoHcRIdBuRBMGItATIDMFBCYSQKAnwmYqCEDATQCB9qNzj2RgHgEEOo8lmSDQgUDRt3CUbE35JUb+Ku+SEpAUAocRQKDd6PkIhxtd4kAEOhEmqSDQgAAC3aAILAECENglgEDvItoKQKDd6BIHItCJMEkFgQYEEOgGRWAJEIDALgEEehcRAu1GNGEgAj0BMlNAYCIBBHoibKaCAATcBBBoPzr3SAbmEUCg81iSCQIdCCDQHarAGiAAgT0CCPQeoc3/zkc43OgSByLQiTBJBYEGBBDoBkVgCRCAwC4BBHoX0VYAAu1GlzgQgU6ESSoINCDw1srVqnzbRYMtSEvgr/KWcBEMgTYEEGh3KRBoN7rEgQh0IkxSQaABAQS6QRFYAgQgsEsAgd5FxBtoN6IJAxHoCZCZAgITCSDQE2EzFQQg4CaAQPvRuUcyMI8AAp3HkkwQ6EAAge5QBdYAAQjsEUCg9wht/nc+wuFGlzgQgU6ESSoINCCAQDcoAkuAAAR2CSDQu4i2AhBoN7rEgWsC3fm3+Nd+GerKvyC1VuqrMtiq493qm3i8SQWBIQLK2VNihyY/ICi6h+j4qi0rd6USm7HetV/2RaDdZBFoN7rEgQh0IsxJqRDoSaCZBgI3IaAIoRLbFV90D9HxVVwUKVZiM9aLQGdQfD8HAp2K05kMgXaCO3AYAn0gfKaGwAUJKEKoxHZFFd1DdHwVF0WKldiM9SLQGRQR6FSK0WQIdJTg/PEI9HzmzAiBKxNQhFCJ7cosuofo+CouihQrsRnrRaAzKCLQqRSjyRDoKMH54xHo+cyZEQJXJqAIoRLblVl0D9HxVVwUKVZiM9aLQGdQRKBTKUaTIdBRgvPHI9DzmTMjBK5MQBFCJbYrs+geouOruChSrMRmrBeBzqCIQKdSjCY7m0BH97s2vsNl2FWKlUtWia2o41bOrmxnMlDm6nAelPUqsRW9AK/nFYiyjY5X+oDY+QQQ6FTm/BJhKk5nMgR6/eLfeiA4Me8O6/rwUKRYid0FkhjQlW3iFlNTIYQaTngh0FrH3DMagU6tOwKditOZDIFGoJ9qHUWKlVhnu7qGIdAaNoQQXi8IKGdHiV0jHB2vVY3o2QQQ6FTiCHQqTmcyBBqBRqCdh+eiwxBorbDw4g201jH3jEagU+uOQKfidCZDoBFoBNp5eC46DCHUCgsvBFrrmHtGI9CpdUegU3E6k1UJdNUfx1XldeIrHZbxYFZ4KbH8EWxp6S+ZPNpfl4RyoU1R3wsVs2ArCHQqVAQ6FaczGQLtBDdhGAI9ATJTTCOAYE1DfchE1PcQ7KeZFIFOLRUCnYrTmQyBdoKbMAyBngCZKaYRQLCmoT5kIup7CPbTTIpAp5YKgU7F6UyGQDvBTRiGQE+AzBTTCCBY01AfMhH1PQT7aSZFoFNLhUCn4nQmQ6Cd4CYMQ6AnQGaKaQQQrGmoD5mI+h6C/TSTItCppUKgU3E6kyHQTnAThiHQEyAzxTQCCNY01IdMRH0PwX6aSRHo1FIh0Kk4ncmqBNq5nN1hFZd0hqjuLrw44Ap7KEY0Jb1Sh63YtYUqsdHx0bmmgL7BJBV3XSW20b4ZjatcK7nnf30rAp3adQh0Kk5nMgR6/kXiLNWTwxRxq5ifnM8JKHVQREKJRaCv0Y0I9DXq2HUXyl2VsQcEOoPi+zkQ6FSczmQItCY9Tszlw2ZfhuUbOukESh0UKVZiEeiTNs9ry0agr1HHrrtQ7qqMPSDQGRQR6FSK0WQINAId7SHGf0BAeSgpUqzEItDX6EgE+hp17LoL5a7K2AMCnUERgU6lGE2GQCPQ0R5iPAJND+QTQKDzmZLRd1dlcEOgMygi0KkUo8mqBFp5Y6bERvd71fFVbxOiD/GqdV21juyrN4HoedjaXVXe3jRZXUcCVb2IQKdWm89Ap+J0JkOgneCaDasS1ehlWrWuZvhZzk0IRM8DAn2TRjnxNqt6HIFObQoEOhWnMxkC7QTXbFiVqEYv06p1NcPPcm5CIHoeEOibNMqJt1nV4wh0alMg0Kk4nckQaCe4ZsOqRDV6mVatqxl+lnMTAtHzgEDfpFFOvM2qHkegU5sCgU7F6UyGQDvBNRtWJarRy7RqXc3ws5ybEIieBwT6Jo1y4m1W9TgCndoUCHQqTmeyKoF2Luf9YcovFiqx0XXNHN9VPpV1KbEz2d5tLuowv+KKiCix83fCjBCIE0Cg4wxfyoBAp+J0JkOgneAmDOsqPcq6lNgJSG87BXWYX3pFipXY+TthRgjECSDQcYYIdCrDeDIEOs6wKkNX6VHWpcRWcSTvNb7r/Gx1VKRYiT0bB9YLgYUAAp3aB7yBTsXpTIZAO8FNGNZVPpV1KbETkN52Cuowv/SKFCux83fCjBCIE0Cg4wx5A53KMJ4MgY4zrMrQVXqUdSmxVRzJyxvoI3pAkWIl9oi9MCcEogQQ6CjBV8bzBjoVpzMZAu0EN2FYV/lU1qXETkB62ymow/zSK1KsxM7fCTNCIE4AgY4z5A10KsN4sq4CHd8ZGbYIIFM5vYH05HCMZqmoQ9czMntdFWyj9e4wfnYdOuw5ugYEOkqQN9CpBDOSIdAZFM+Vg8s/p17IRQ7HaJaKOnQ9I7PXVcE2Wu8O42fXocOeo2tAoKMEEehUghnJEOgMiufKweWfUy/kIodjNEtFHbqekdnrqmAbrXeH8bPr0GHP0TUg0FGCCHQqwYxkCHQGxXPl4PLPqRdykcMxmqWiDl3PyOx1VbCN1rvD+Nl16LDn6BoQ6ChBBDqVYEYyBDqD4rlycPnn1Au5yOEYzVJRh65nZPa6KthG691h/Ow6dNhzdA0IdJQgAp1KMCNZlUBz8WZUhxwQuDYBROTa9a3a3RWeL1fYw1p9t870x979cPSzZ2+b2ZtVbXLlvHyNXYfqItAdqsAaIHBPAgj0Pese3fUV5PMKe0Cgo53sHo9Au9ElDkSgE2GSCgIQkAgg0BIugh8EriCfV9gDAn3YkUSgD0P/0sQIdIcqsAYI3JMAAn3Pukd3fQX5vMIeEOhoJ7vHI9BudIkDEehEmKSCAAQkAgi0hItg3kC37wE+Az2lRAj0FMw7kyDQHarAGiBwTwII9D3rHt31Fd7eXmEPvIGOdrJ7PALtRpc4cE2g3xJKs/UAjC5RebB2vYi6ritaG8Zfh8DRPaqc85nUlXstI1bJMZPD3eY6+jzM5D377PE1dqnVFSwtdV6SvUwAga7rhztdxnUUyVxJ4Ogenf0QH2WpCG1GrJJjdA/E6QSOPg/6iv0jZp89BNpfq5WRCHQqTmcyBNoJbmDYnS7jARyENCRwdI/OfoiPlkAR2oxYJcfoHojTCRx9HvQV+0fMPnsItL9WCHQqu7xkCHQey9cz3ekyrqNI5koCR/fo7If4KEtFaDNilRyjeyBOJ3D0edBX7B8x++wh0P5aIdCp7JZkf8/MvsrMlr/e52fN7CvN7FPN7HvM7JPN7CfN7MvN7LeenBmBTi/M+wnvdBnXUSRzJYGje3T2Q3yUpSK0GbFKjtE9EKcTOPo86Cv2j5h99hBof60Q6FR2f9jM/ouZ/XEz+79m9n1m9kNm9sVm9oMPif52M/tpM/s2WaCf8ema1GqNJLvTxT3C4+WYrmyOXtfsB6Bat7PEH13Hs3DKWucV+lbZgxKbxTiSp+o8INCRqnxoLJbmx7kI9I+Z2eea2W+Y2b81s39mZv/KzD7FzH7bzD7fzJaj8IUItB/0tJFVl9a0DRRO1JXN0es624O5sEVCqY+uY2jxJxx8hb5V9qDEdihn1XlAoFOri0DHcH6NmX3j4w30fzSz5f9fpPozH2k/zcx+2Mw+G4GOgZ4yuurSmrL44km6sjl6XWd7MBe3iTv90XV0L/ykA6/Qt8oelNgOJa06Dwh0anURaD/OTzKzHzCzv2pmv25m3//4/z/2mkAvH+v4nJVpPmpmy79mb7zxEXvnnVdD+AiHvzLekVWXlnc9ncZ1ZXP0us72YO7UUy+v5eg6duVSta4r9K2yByW2irmSt+o8INBKFXZjEehdRJsBX2JmX2Rmf+sR8TceH9lY/nc+wuHnetzIqkvruB3lzdyVzdHrOtuDOa8jcjMdXcfc3fTPdoW+VfagxHaoXtV5QKBTq4tA+3F+npl9l5n9ycdHOP6Fmf2Emf25x5vo5Zs4ll8i/Bkz+9Ynp6n6q7z9e7vnyKpL6wo0u7I5el1nezB37cWj69iVS9W6rtC3yh6U2CrmSt6q84BAK1XYjUWgdxE9GfDW4yMcyy8M/tTjK+2WXy588TV2y//2ZWb2m7JAb/1V3lsXQWwfNaNnX1pVl04FndlsontQ+k6Jja6L8fcj0PWcd13XzA5Rzr4SO3MPW3ON1jfjbh+dS+WCQKvEnoxHoFNxOpMp3wN9pksn4yJRkFZdOsoaRmNnsxldl/LwyIiNrovx9yPQ9Zx3XdfMDlGeT0rszD0o95pSc2W/Sl6FDQKt0NqNRaB3EU0IQKBzIFddOjmrezULAl1BlZx3IND1nHdd18yeiErizLWqc43WN+NuH51L3QMCrRLjDXQqsYpkCHQO1apLJ2d1CHQFR3Lej0DXc951XTM7BIF+/jc/rP0TZaOM36o5Ap16GngDnYrTmQyBdoJ7bdiZHmAZl2wOtbEsyuWtxI7NThQEPiDQ9Zx3XdfM3lHOvhI7cw9bc43WN+NuH51L5YJAq8R4A51KrCLZVQU6ehFVsCZnHwIZDxplN1W6zMO4AAAdXElEQVQPJWUNFbGKiCixylu0aN4KLlU5M/pW4aXERvccPSMZbKJ7uML4aB22GCDQqd3BG+hUnM5kCPT2H3s5kTLsBARmP2yrHkpHo1YES4lFoNcrm9G3Sh2U2GgvRs9IBpvoHq4wPloHBHpKFyDQUzDvTIJAI9Ad+nD2GmY/bKseSrO5vT6fIlhKLAKNQC8ElJ6ZfaaPPntV81fdVbyBTq0YAp2K05kMgdYuaSdmhjUjMPthW/VQOhprhuCM7mF2zUbXNTMug8HMmilsomckg42y3qvGRuvAG+gpnYFAT8HMG+hXCFRdDh1qyRrGCcx+2F6172bK2OyajXfTvMgMBjNrppCJnpEMNsp6rxobrQMCPaUzEOgpmBFoBLpDozVbw+yHbdVD6WisM2Vsds2OZrs2fwaDmTVTGEbPSAYbZb1XjY3WAYGe0hkI9BTMDoF+tlGaqoPVgQNrGCdwtwcV+33eG4p4jXfTeqQylxJbsa6Z80fX33m88nxRmCuxQT7vroxvIToKAyVW4cVnoBVau7Et+mp3lVcPWPsMNAJ99arH9odQzhfKWMW00R3qqzzElViNxIejFcmLznW38QpbpeZKbJA5Av0EQAQ62F2vDkegU3E6kyHQTnA3HtZBsGbiZ7/zf2BQpEeJjfaNInnRue42XmGr1FyJDTJHoBHoYAsND0egh1EVBiLQhXAvmhqhnC+UM1upQ30V6VFioxwVyYvOdbfxClul5kpskDkCjUAHW2h4OAI9jKowEIEuhHvR1B0EayZa9jv/BwZFepTYaN8okhed627jFbZKzZXYIHMEGoEOttDwcAR6GFVh4N2+B7oQZXrqKnGLPlCU8VWxCmzlwazknRl7hT0czWuZX+nHmeu901xV99pEhmuivDU9ovMgw2egUzuUvkrF6UyGQDvBTRhW9aCJSoQyvipWwX8F+bzCHpSaRWOrzk50XYzf/iFGuSsO5ohAOwqAQDugbQ9BoFNxOpMh0E5wE4ZVSUD0QaWMr4pV8F9BPq+wB6Vm0diqsxNdF+MR6Lv2AAKdWnkEOhWnMxkC7QQ3YViVBChSu7ZNZXxVrIL/CvJ5hT0oNYvGVp2d6LoYj0DftQcQ6NTKI9CpOJ3JEGgnuAnDqiRAkVoEekKhB6ZAoAcgvRRSdXa0VRCt3B/Re2kibT7C4YCNQDugbQ9BoFNxOpMp38LhnOK2w5Cea5QeGcupI+chzvHKvXiz/mj7jR1Klyo1Q6AVsruxCPQuogkBCHQdZOVyqVsFmaMEriwtUTbKeM6DQms99sq9eLP+QKDN7Nmzt83szfjBuF8GBLpDzRHouirc7IFQB/LgzFeWlploOQ9x2lfuxZv1BwKNQEcuBAQ6Qi9rLAKdRfLDeW72QKgDeXDmK0vLTLSchzjtK/fizfoDgUagIxcCAh2hlzUWgc4iiUDXkTw285WlZSbZmwlSCdor9+LN+gOBRqAjdwQCHaGXNRaBziKJQNeRPDbzlaVlJtmbCVIJ2iv34s36A4FGoCN3BAIdoZc1lq+xyyI5lufKD8AxAkRdncDsHlfES4m9ep3Y3xCBS4ju0E6Lg/gWjlTACHQqTmcyBNoJzjlstlw4l8kwCLgJzO5xRYqVWDcABl6JAAKdVE0EOgnk8zQIdCpOZzIE2gnOOWy2XDiXyTAIuAnM7nFFipVYNwAGXokAAp1UTQQ6CSQCnQoylAyBDuGTB8+WC3mBDIBAkMDsHlekWIkNYmD4NQgg0El1RKCTQCLQqSBDyRDoED558Gy5kBfIAAgECczucUWKldggBoZfgwACnVRHBDoJJAKdCjKUjG/hCOG71OAt8Xl9k6NxneHMlrzOLEbre4W6n6kOTde6JpTLUqd+JnPmD0JHz7XAjZ69mXvY6lsEOvVETz1vqSu/UjIE+krVjO1l9JIejYutpnY0Ar3NFza1vXfy7Ah0gtBu9UDV2UOgT37qPrx8BLpDSRHoDlXosYZRMR6N67Gr9VVUPag673l0bbAZJXXLOAQagXY1Pm+gXdi2BiHQqTidyRBoJ7gLDhsV49G4zoiQRN5Ad+7PxmtDoBFoV3si0C5sCHQqtuRkCHQy0BOnGxXj0bjOKBBoBLpzfzZeGwKNQLvaE4F2YUOgU7ElJ0Ogk4GeON2oGI/GdUaBQCPQnfuz8doQaATa1Z4ItAsbAp2KLTlZV4HuKjhd15XcFqRLJtDhl3iSt9Qm3Z3Y3u3+yfhhPSNHm2bfWYiy14xYJQcCndpFfAY6FaczGQKtgbvbA0yjQ/QWgTtJ3uwuuBPbu90/iqApZ292j86aT+GVEavkQKBTuwCBTsXpTIZAa+Du9gDT6BCtPMSVhw9ktwkg0PHvCe7aXxlnJCNHVz6vr0vZa0askgOBTu0iBDoVpzMZAq2BQ6A1XkQ/J3AnyZtd8zuxvdv9owia8sPr7B6dNZ/CKyNWyYFAp3YBAp2K05kMgdbA3e0BptEhWnmIKw8fyPIGeusHsaf+97P3TcYZychxFo7KXjNilRwIdGoXIdCpOJ3JqgS66q1QVV4nvtJhyuWkiH1GbHTjd6pjlJX6BvtMbDN6UTkna7U4E6+MXhJyrH3jBg/uJ76FQ+nFo/tOOXtCz2yGItAZFN/PwTlMxelMhkA7wU0YFr2MO4vX0Q+PCeVLnULhpcSmLtKRTHmIK7HKUs7ES9lXQiwCvQExoxeP7ruMPSg9hkArtHZjEehdRBMCEOgJkJ1TINBOcBccpjxsldijUSkPcSVW2deZeCn7SohFoBHohDZ6ngKBTkO5JEKgU3E6kyHQTnAThiHQEyCfZApF8pTYo7evSLESq+zrTLyUfSXEItAIdEIbIdBpED9IhEAXQJVTItAysmkDEOhpqNtPpEieEnv0xhUpVmKVfZ2Jl7KvhFgEGoFOaCMEOg0iAl2AMpASgQ7AKx6KQBcDPlF6RfKU2KMRKFKsxCr7OhMvZV8JsQg0Ap3QRgh0GkQEugBlIKUi0DxoAqAfQzOkOLoKRCRKkPFHEKjq2yP2cuScwj1+CYEW9hsuy8y5woudnIDPQKcC5yMcqTidyRBoJzjnMATaCY5htyeAQOe0gCB5CLSIXGArZj5/OAKdWkMEOhWnMxkC7QTnHIZAO8Ex7PYEEOicFhAkD4EWkQtsxcznD0egU2uIQKfidCZDoJ3gnMMQaCc4ht2eAAKd0wKC5CHQInKBrZj5/OEIdGoNEehUnM5kCLQTnHMYAu0Ex7DbE0Cgc1pAkDwEWkQusBUznz8cgU6tIQKditOZTBFo5xSHDDvbwzZ68Sr7VWIPKR6TtiRQ0aPKD5QtoUxelMJLiZ28jeHpNvbw7sr/fjqhiJ6nYYhNAhHo1EKcrt9Td98lGQLdoxLRy1SRYiW2Bx1W0YFARY9eQfJm1kbhpcTO3IMyFwKt0Oodi0Cn1geBTsXpTIZAO8ElD6uQk2WJSt4rPHCTy0K6lwgovbQGLjqeYqyf5y0uVzjPCPR1uh6BTq0lAp2K05kMgXaCSx4WlQvlrbISm7xN0p2YQEWPXkHyZpZU4aXEztyDMhcCrdDqHYtAp9YHgU7F6UyGQDvBJQ+rkBPeQCcX6ebpKnr0CpI3sy0UXkrszD0ocyHQCq3esQh0an0Q6FSczmRXFWgnjtRhUeFQFtPhrfLM/SpsusbCq64yHc5D3e6umbnoPFzim0RGK670vfIDVkZeBHq0ikNxCPQQpuIgBLoOcNEDYXXBygVXteOZ+63aw8y88Kqj3eE81O3umpmLzgMCLf4uzFp3KedpKxaBTj23CHQqTmcyBNoJbmBY0QMBgR5gf4aQmf1xBh6Za1Qe+JnzkstPoOg8INAItL8p+45EoDvUBoGuq0LRAwGBrivZ1Mwz+2PqxhpMhkA3KIK4hKLzgEAj0GInniIcge5QJgS6rgpFDwQEuq5kUzPP7I+pG2swGQLdoAjiEorOAwKNQIudeIpwBLpDmRDouioUPRAQ6LqSTc08sz+mbqzBZAh0gyKISyg6Dwg0Ai124inCEegOZVIEOnrBKQ81JbYDx7U1ZPyWc9e9nWld0b49016XtXbdr3Ieqs7TKJvoWs/WM6z3OYHR/oCXToBfItSZPTECgU7F6UyGQDvBDQxTHsJK7MDUhLxE4G4Pxa77jfa4Ml75AbwrLw7xfAL0Qh1zBDqVLQKditOZDIF2ghsYlvHAH5iGkB0Cd3sodt2vch54A82xPoJA17NzBIvsORHoVKIIdCpOZzIE2gluYJgiDErswNSE8Ab6lR7o0F/RNSjjeQPNFeAhgEB7qI2NQaDHOA1GIdCDoErDEOg6vBkP/LrV3Sfz3R6KXfernAfeQN/nfHbaadez04mRdy0ItJfc6jgEOhWnM5ki0M4pbjGs4uJVhEOJjRZEmUuJja5LGa+8odzKW1FzZQ9VsRlsRtem9IcSOzq/GldV84q8M+uociyIX/u2jWUaRTRKvrFjZh1mzqXWEIFWiT0Zr/R16sQke4kAAp3TDjMfgNG3c9EdKyKjxEbXpYzPeNBU1FzZQ1VsBpvRtSn9ocSOzq/GVdW8Iu/MOqocC+IR6I1vEVlYdzg7CHRq1yPQqTidyRBoJ7jXhs18ACLQ8ZplyEVFzeM7i2fIYDO6CuXBrsSOzq/GVdW8Iu/MOqocC+IRaAS6oK3apkSgO5QGgc6pwswHIAIdr1mGXFTUPL6zeIYMNqOrUKRYiR2dX42rqnlF3pl1VDkWxCPQCHRBW7VNiUB3KA0CnVOFmQ9ABDpeswy5qKh5fGfxDBlsRlehSLESOzq/GldV84q8M+uociyIR6AR6IK2apsSge5QGgQ6pwozH4AIdLxmGXJRUfP4zuIZMtiMrkKRYiV2dH41rqrmFXln1lHlWBCPQCPQBW3VNiUC3aE0UYGuuqSr8irMKx5qyvwZsVfYQwaHjjmitVHOiBLbgdVMNh3223UNyg8tSmzBftsKdMFe5ZTR8yRPuDKAXyLMoPh+DgQ6FaczGQK9Da7DpeMs6/vDrrCHKIOu46O1UaRYie3AayabDvvtugZFipXYgv0i0E9AjZ6njHoh0BkUEehUitFkCDQCHe0hxvsIRB9qihQrsb7d5I6aySZ35dfKpkixEltACYFGoAvaqm1K3kB3KA0CjUB36MM7rmGmJCLQzzvsYMk7XZsrvJTYAhAINAJd0FZtUyLQHUqDQCPQHfrwjmtAoOvO3tl+YOja/4oUK7EF+0WgEeiCtmqbEoHuUJqoQHfYQ1RElD0oDwklVlkDsXUElJopsXUrnpd55jmbtytmeooANac/sgjwGegsku/lQaBTcTqTIdAaOEWalFhtFURXEVBqpsRWrXdmXmRqJu0ec1HzHnW4wioQ6NQqItCpOJ3JEGgNnCJNSqy2CqKrCCg1U2Kr1jszLzI1k3aPuah5jzpcYRUIdGoVEehUnM5kCLQGTpEmJVZbBdFVBJSaKbFV652ZF5maSbvHXNS8Rx2usAoEOrWKCHQqTmcyBFoDp0iTEqutgugqAkrNlNiq9c7Mi0zNpN1jLmreow5XWAUCnVpFBDoVpzMZAq2BU6RJidVWQXQVAaVmSmzVemfmRaZm0u4xFzXvUYcrrAKBTq0iAp2K05msg0ArIqLEriFRxkdjZ453lr/VsC1eCsfRmkdztgI3aTFXlamr7mtSW5xxmoyvvDvVvmf2+Nbd+rEV6s+evW1mb56KZZPFItAdCoFAb1dBkazoBRUd36GXomtAoKMEa8dftUevuq/abjh1dgS68C8VQqCnnA0EegrmnUkQaAS6Qx8ua0Cgu1RifR1XFc2r7qt3Nx26OgQagT60ARMmR6ATIIZTINAIdLiJkhIg0Ekgi9JcVTSvuq+iNrhCWgQagT57HyPQHSqIQCPQHfqQN9BdqqCdB+VjTl13iEB3rUzZuhBoBLqsuSYlRqAngX5ympkCrTxsldgOHKNr4CEeJZgznjrkcIxmoQ5Rgj3GR+tY9adSPeiMr6KC4+xnLN/CMV7vgUgEegBSeQgCXY54aILoBTk0CUG7BKjDLqIpAdRhCubySaJ1RKCfl6iCIwJd3v6VEyDQlXRHcyPQo6Rq46IXZO3q7pOdOvSoNXXoUYfoKqJ1RKAR6GgPXnQ8At2hsAh0hyrE3zD02MX5VxF94J+fQI8dUIcedYiuIlpHBBqBjvbgRccj0B0Ki0B3qAIC3aMK1IE6dCFwjXUg0Dl1rODIRzhyanNQFgT6IPCvTItAd6gC4tajCtSBOnQhcI11VIjfQma2/B1djQqOsxnyS4SpXYRAp+J0JlsTaGcqhkEAAhCAAAQgAIEhAvxV3kOY1oIQaDe6xIEIdCJMUkEAAhCAAAQgMEQAgR7ChEC7MRUPRKCLAZMeAhCAAAQgAIEPEUCg3U3BG2g3usSBCHQiTFJBAAIQgAAEIDBEAIEewsQbaDem4oEIdDFg0kMAAhCAAAQgwBvovB7gDXQey0im/21m7zwS/EEz+z+RZIydToCaTUcempB6hfAdMpiaHYI9NCk1C+GbNviPmtkfmjbbhSZCoPsV8yfM7M1+y2JFTxCgZudqD+p1rnotq6Vm1Ox8BFjxpQkg0P3Ky4OiX032VkTN9gj1+u/Uq1c9RlZDzUYo9YqhZr3qwWqSCSDQyUAT0nHpJECcnIKaTQYenI56BQEeMJyaHQA9OCU1CwJkeG8CCHS/+nzUzL6j37JY0RMEqNm52oN6natey2qpGTU7HwFWfGkCCPSly8vmIAABCEAAAhCAAASyCSDQ2UTJBwEIQAACEIAABCBwaQIIdJ/yfpGZfYuZfZyZfaeZfXOfpbGSB4FPM7N/aWafYmb/7/FRm6Vmn2xm32tmn25mv2BmX2pmvwa1VgSWc7V8JvOXzOwvmtkfM7PvedTuJ83sy83st1qt+N6L+cTHPfjZZvaumf1NM/t5zlnbpvh7ZvZVj1r9rJl9pZl9Kmesbb1YWAIBBDoBYkKK5eH+P8zsL5jZ/zKz/2Zmf83Mfi4hNynyCCwPhOXfRbg+3szeNrO/bGZfYWa/+vih5+vN7JPM7OvypiVTAoG///h6yE94CPT3mdkPPh7w325mP21m35YwDylyCHy3mf3oQ6J/t5n9XjP7Bs5ZDtzkLH/YzP6Lmf1xM/u/ZracrR8ysy/mjCWTJl0rAgh0j3J8vpn9IzP7wsdy/uHj/35Tj+Wxig0C/87M/vnj3y8ws19+CPaPmNlnQa0NgT9iZouQfaOZLSL9l8xs+cuLlj9J+G0ze/38tVn4TRey/JCz/EDzGY83mi8wLG+gOWf9mmIR6B8zs881s98ws39rZv/MzP4VZ6xfsVhRHgEEOo9lJNNfMbPlIxzLH4Et/yx/nPx5ZvZ3IkkZW0pg+bjGfzaz5Y+Yf9HMlj9yfvHP8vGN5S00//Qg8K/NbPlhdPlTg3/w+BOD5YH/mY/lLR/N+eFHLXus+N6r+BOPj0ctfwK3SNnyJz1f8/j4DeesZ28s9Vl+QF3eQP/HR704Yz1rxaqSCCDQSSCDab7k8fb5ZYH+U2b21cG8DK8h8PvN7D89HhjLxwB+HYGuAZ2Qdfm88/JHyX/78fZyEejl85n/9TWBXv7I+XMS5iNFnMDyN7Eu8vWnzezHH78bsrzZXO5DBDrONzvD8rLgB8zsrz7uwu9//P8f44xloyZfJwIIdI9q8BGOHnUYWcXvMrN/b2b/wcz+yWMAf7Q8Qu6YmOXN8/InOstHNX6PmS0fD/g3jx9Y+QjHMTXZm3WpyyLQy5/yLP/8WTNbfrdg+RMDPsKxR2/+f19eAC1/gvq3HlP/jcfHopb/nTM2vx7MOIkAAj0J9M40v/PxS4R//vHHlMsvEf51M/vvPZbHKh4ElvOyfJZ2+YXBv/sSlX9sZr/y0i8RLt/K8bVQa0dgka/lDfTyVvrFW7LlmziWXyL8GTP71nYrvu+Cll8gXP5EbvnhdPn9kN/3QME569cTy8cNv8vM/uTjIxz/4vGNN3/u8SaaM9avZqwogQACnQAxKcXyx8z/9PE1dstltHyejH96Efgzj28GWL6mafkau+Wf5ZsBlj9mXn7z/I3H56GXNy+LZPNPLwIvC/TyC2ovvsbup8zsy8zsN3st99arWT4HvXyd5/INHP/z8bGb38E5a9sTbz0+wrH8Sc9ynpYffpZfLuSMtS0ZC4sSQKCjBBkPAQhAAAIQgAAEIHArAgj0rcrNZiEAAQhAAAIQgAAEogQQ6ChBxkMAAhCAAAQgAAEI3IoAAn2rcrNZCEAAAhCAAAQgAIEoAQQ6SpDxEIAABCAAAQhAAAK3IoBA36rcbBYCEIAABCAAAQhAIEoAgY4SZDwEIAABCEAAAhCAwK0IINC3KjebhQAEIAABCEAAAhCIEkCgowQZDwEIQAACEIAABCBwKwII9K3KzWYhAAEIQAACEIAABKIEEOgoQcZDAAIQgAAEIAABCNyKAAJ9q3KzWQhAAAIQgAAEIACBKAEEOkqQ8RCAAAQgAAEIQAACtyKAQN+q3GwWAhCAAAQgAAEIQCBKAIGOEmQ8BCAAAQhAAAIQgMCtCCDQtyo3m4UABCAAAQhAAAIQiBJAoKMEGQ8BCEAAAhCAAAQgcCsCCPStys1mIQABCEAAAhCAAASiBBDoKEHGQwACEIAABCAAAQjcigACfatys1kIQAACEIAABCAAgSgBBDpKkPEQgAAEIAABCEAAArcigEDfqtxsFgIQgAAEIAABCEAgSgCBjhJkPAQgAAEIQAACEIDArQgg0LcqN5uFAAQgAAEIQAACEIgSQKCjBBkPAQhAAAIQgAAEIHArAgj0rcrNZiEAAQhAAAIQgAAEogQQ6ChBxkMAAhCAAAQgAAEI3IoAAn2rcrNZCEAAAhCAAAQgAIEoAQQ6SpDxEIAABCAAAQhAAAK3IoBA36rcbBYCEIAABCAAAQhAIEoAgY4SZDwEIAABCEAAAhCAwK0IINC3KjebhQAEIAABCEAAAhCIEkCgowQZDwEIQAACEIAABCBwKwII9K3KzWYhAAEIQAACEIAABKIEEOgoQcZDAAIQgAAEIAABCNyKAAJ9q3KzWQhAAAIQgAAEIACBKAEEOkqQ8RCAAAQgAAEIQAACtyKAQN+q3GwWAhCAAAQgAAEIQCBKAIGOEmQ8BCAAAQhAAAIQgMCtCCDQtyo3m4UABCAAAQhAAAIQiBJAoKMEGQ8BCEAAAhCAAAQgcCsCCPStys1mIQABCEAAAhCAAASiBBDoKEHGQwACEIAABCAAAQjcigACfatys1kIQAACEIAABCAAgSgBBDpKkPEQgAAEIAABCEAAArcigEDfqtxsFgIQgAAEIAABCEAgSgCBjhJkPAQgAAEIQAACEIDArQgg0LcqN5uFAAQgAAEIQAACEIgSQKCjBBkPAQhAAAIQgAAEIHArAgj0rcrNZiEAAQhAAAIQgAAEogQQ6ChBxkMAAhCAAAQgAAEI3IoAAn2rcrNZCEAAAhCAAAQgAIEoAQQ6SpDxEIAABCAAAQhAAAK3IoBA36rcbBYCEIAABCAAAQhAIEoAgY4SZDwEIAABCEAAAhCAwK0IINC3KjebhQAEIAABCEAAAhCIEkCgowQZDwEIQAACEIAABCBwKwII9K3KzWYhAAEIQAACEIAABKIEEOgoQcZDAAIQgAAEIAABCNyKAAJ9q3KzWQhAAAIQgAAEIACBKAEEOkqQ8RCAAAQgAAEIQAACtyKAQN+q3GwWAhCAAAQgAAEIQCBKAIGOEmQ8BCAAAQhAAAIQgMCtCCDQtyo3m4UABCAAAQhAAAIQiBJAoKMEGQ8BCEAAAhCAAAQgcCsCCPStys1mIQABCEAAAhCAAASiBBDoKEHGQwACEIAABCAAAQjcigACfatys1kIQAACEIAABCAAgSgBBDpKkPEQgAAEIAABCEAAArcigEDfqtxsFgIQgAAEIAABCEAgSgCBjhJkPAQgAAEIQAACEIDArQgg0LcqN5uFAAQgAAEIQAACEIgSQKCjBBkPAQhAAAIQgAAEIHArAgj0rcrNZiEAAQhAAAIQgAAEogQQ6ChBxkMAAhCAAAQgAAEI3IrA/wdG1dHegbAyCQAAAABJRU5ErkJggg==\" width=\"720\">"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"imresult=[]\n",
"fig4=plt.figure(figsize=(10,10))\n",
"for i in range(time+1):\n",
" im=plt.imshow(resultpop[:,:,i],cmap=cmap,norm=norm,animated=True)\n",
" imresult.append([im])\n",
" \n",
"ani = animation.ArtistAnimation(fig4,imresult, interval=80, blit=True)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Save the animation\n",
"\n",
"It has been commented out. To enable, just uncomment the three statements. The video will be saved as an mp4 video file."
]
},
{
"cell_type": "code",
"execution_count": 250,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# Writer = animation.writers['ffmpeg']\n",
"# writer = Writer(fps=15, metadata=dict(artist='Gaurav Deshmukh'), bitrate=1800)"
]
},
{
"cell_type": "code",
"execution_count": 251,
"metadata": {},
"outputs": [],
"source": [
"# ani.save(\"BlackDeathAnimation.mp4\",writer=writer)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.3"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment