{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Importing the FORWAST database\n",
    "\n",
    "[FORWAST](http://forwast.brgm.fr/Overview.asp) is a physical MRIO table for Europe."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from brightway2 import *"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Biosphere database already present!!! No setup is needed\n"
     ]
    }
   ],
   "source": [
    "projects.set_current(\"forwast\")\n",
    "bw2setup()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We start with an export of the database from SimaPro, provided by the FORWAST team."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Extracting ecospold1 files:\n",
      "0%                          100%\n",
      "[##############################] | ETA[sec]: 0.000 | Item ID: /Users/cmutel/D\n",
      "Total time elapsed: 3.399 sec\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Title: Extracting ecospold1 files:\n",
      "  Started: 10/22/2015 01:12:28\n",
      "  Finished: 10/22/2015 01:12:31\n",
      "  Total time elapsed: 3.399 sec\n",
      "  CPU %: 87.000000\n",
      "  Memory %: 1.817799\n",
      "Extracted 277 datasets in 3.40 seconds\n",
      "Applying strategy: normalize_units\n",
      "Applying strategy: assign_only_product_as_production\n",
      "Applying strategy: clean_integer_codes\n",
      "Applying strategy: drop_unspecified_subcategories\n",
      "Applying strategy: normalize_biosphere_categories\n",
      "Applying strategy: normalize_biosphere_names\n",
      "Applying strategy: strip_biosphere_exc_locations\n",
      "Applying strategy: set_code_by_activity_hash\n",
      "Applying strategy: link_iterable_by_fields\n",
      "Applying strategy: link_technosphere_by_activity_hash\n",
      "Applied 10 strategies in 2.59 seconds\n",
      "277 datasets\n",
      "82546 exchanges\n",
      "80884 unlinked exchanges\n",
      "  Type biosphere: 16 unique unlinked exchanges\n",
      "  Type production: 277 unique unlinked exchanges\n",
      "  Type technosphere: 275 unique unlinked exchanges\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "(277, 82546, 80884)"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ei = SingleOutputEcospold1Importer(\"/Users/cmutel/Downloads/FORWAST-ecospold1\", \"forwast\")\n",
    "ei.apply_strategies()\n",
    "ei.statistics()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Major linking problems\n",
    "\n",
    "The first problem is that each process has a category, but none of the exchanges do. The IO library can't link them using its default algorithm, which includes categories when matching. Luckily, we can easily define a new strategy that doesn't include categories."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Applying strategy: link_iterable_by_fields\n",
      "277 datasets\n",
      "82546 exchanges\n",
      "4432 unlinked exchanges\n",
      "  Type biosphere: 16 unique unlinked exchanges\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "(277, 82546, 4432)"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from bw2io.strategies import link_iterable_by_fields\n",
    "import functools\n",
    "\n",
    "without_subcategories = functools.partial(link_iterable_by_fields, fields=['name', 'unit'], internal=True)\n",
    "ei.apply_strategy(without_subcategories)\n",
    "\n",
    "ei.statistics()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Biosphere flow conflicts\n",
    "\n",
    "The next problem is that there are several biosphere flows that have non-matching names or categories, when compared to our base biosphere flow list. There isn't an automatic way to fix this; rather, I used code like:\n",
    "\n",
    "    db = Database(\"biosphere3\")\n",
    "    db.search(\"natural gas\")\n",
    "    \n",
    "to find out what flows were in our reference list, and what fields needed to change so that matching could occur. We use the migrations functionality to fix only the fields we need to change."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "migration_data = {\n",
    "    'fields': ['name', 'categories', 'type', 'unit'],\n",
    "    'data': [\n",
    "        (\n",
    "            ('Aluminium', ('natural resource',), 'biosphere', 'kilogram'),\n",
    "            {\n",
    "                'categories': ('natural resource', 'in ground'),\n",
    "                'name': 'Aluminium, in ground',\n",
    "            }\n",
    "        ),\n",
    "        (\n",
    "            ('Carbon dioxide, in air', ('natural resource',), 'biosphere', 'kilogram'),\n",
    "            {\n",
    "                'categories': ('natural resource', 'in air'),\n",
    "            }\n",
    "        ),\n",
    "        (\n",
    "            ('Carbon monoxide', ('air',), 'biosphere', 'kilogram'),\n",
    "            {\n",
    "                'name': 'Carbon monoxide, fossil',\n",
    "            }\n",
    "        ),\n",
    "        (\n",
    "            ('Coal, hard', ('natural resource',), 'biosphere', 'kilogram'),\n",
    "            {\n",
    "                'categories': ('natural resource', 'in ground'),\n",
    "                'name': 'Coal, hard, unspecified, in ground',\n",
    "            }\n",
    "        ),\n",
    "        (\n",
    "            ('Gas, natural, 46.8 MJ per kg', ('natural resource',), 'biosphere', 'kilogram'),\n",
    "            {\n",
    "                'categories': ('natural resource', 'in ground'),\n",
    "                'name': 'Gas, natural, in ground',\n",
    "                'unit': 'cubic meter',\n",
    "                'multiplier': 1 / 0.8  # Approximation, density varies from 0.7/0.9 km/m3\n",
    "            }\n",
    "        ),\n",
    "        (\n",
    "            ('Sand and clay', ('natural resource',), 'biosphere', 'kilogram'),\n",
    "            {\n",
    "                'categories': ('natural resource', 'in ground'),\n",
    "                'name': 'Sand, unspecified, in ground',\n",
    "            }\n",
    "        ),\n",
    "        (\n",
    "            ('Methane', ('air',), 'biosphere', 'kilogram'),\n",
    "            {\n",
    "                'name': 'Methane, fossil',\n",
    "            }\n",
    "        ),\n",
    "        (\n",
    "            ('Nitrogen dioxide', ('air',), 'biosphere', 'kilogram'),\n",
    "            {\n",
    "                'name': 'Nitrogen oxides',\n",
    "            }\n",
    "        ),\n",
    "        (\n",
    "            ('Oil, crude', ('natural resource',), 'biosphere', 'kilogram'),\n",
    "            {\n",
    "                'name': 'Oil, crude, in ground',\n",
    "                'categories': ('natural resource', 'in ground'),\n",
    "            }\n",
    "        ),\n",
    "        (\n",
    "            ('Zinc', ('natural resource',), 'biosphere', 'kilogram'),\n",
    "            {\n",
    "                'name': 'Zinc, Zn 0.63%, in mixed ore, in ground',\n",
    "                'categories': ('natural resource', 'in ground'),\n",
    "            }\n",
    "        ),\n",
    "        (\n",
    "            ('Lead', ('natural resource',), 'biosphere', 'kilogram'),\n",
    "            {\n",
    "                'name': 'Lead, Pb 0.014%, in mixed ore, in ground',\n",
    "                'categories': ('natural resource', 'in ground'),\n",
    "            }\n",
    "        ),\n",
    "        (\n",
    "            ('Iron', ('natural resource',), 'biosphere', 'kilogram'),\n",
    "            {\n",
    "                'name': \"Iron, 46% in ore, 25% in crude ore, in ground\",\n",
    "                'categories': ('natural resource', 'in ground'),\n",
    "            }\n",
    "        ),\n",
    "        (\n",
    "            ('Copper', ('natural resource',), 'biosphere', 'kilogram'),\n",
    "            {\n",
    "                'name': \"Copper, 1.13% in sulfide, Cu 0.76% and Ni 0.76% in crude ore, in ground\",\n",
    "                'categories': ('natural resource', 'in ground'),\n",
    "            }\n",
    "        ),\n",
    "        (\n",
    "            ('Nickel', ('natural resource',), 'biosphere', 'kilogram'),\n",
    "            {\n",
    "                'name': 'Nickel, 1.98% in silicates, 1.04% in crude ore, in ground',\n",
    "                'categories': ('natural resource', 'in ground'),\n",
    "            }\n",
    "        )\n",
    "    ]\n",
    "}\n",
    "\n",
    "migration = Migration(\"simapro-forwast\")\n",
    "migration.write(\n",
    "    migration_data, \n",
    "    description=\"Migration for biosphere flows from FORWAST database, as imported into SimaPro\"\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We then apply our migration."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Applying strategy: migrate_datasets\n",
      "Applied 1 strategies in 0.00 seconds\n",
      "Applying strategy: migrate_exchanges\n",
      "Applied 1 strategies in 0.72 seconds\n",
      "Applying strategy: link_iterable_by_fields\n",
      "277 datasets\n",
      "82546 exchanges\n",
      "554 unlinked exchanges\n",
      "  Type biosphere: 2 unique unlinked exchanges\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "(277, 82546, 554)"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ei.migrate(\"simapro-forwast\")\n",
    "ei.apply_strategy(ei.strategies[-2])\n",
    "\n",
    "ei.statistics()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This is very good. Let's look at the remaining two flows:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'unit': 'kilogram', 'categories': ['natural resource'], 'loc': 0.0, 'type': 'biosphere', 'name': 'Other minerals, extracted for use', 'amount': 0.0, 'uncertainty type': 0}\n",
      "{'unit': 'kilogram', 'categories': ['natural resource'], 'loc': 0.0, 'type': 'biosphere', 'name': 'Other minerals, related unused extraction', 'amount': 0.0, 'uncertainty type': 0}\n"
     ]
    }
   ],
   "source": [
    "for x in ei.unlinked:\n",
    "    print(x)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We don't actually care about these `other minerals`, so just drop them."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Warning: This is the nuclear weapon of linking, and should only be used in extreme cases. Must be called with the keyword argument ``i_am_reckless=True``!\n"
     ]
    }
   ],
   "source": [
    "ei.drop_unlinked()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Our IO library doesn't like dropping unlinked exchanges, but we are comfortable with this, so we proceed anyway."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Applying strategy: drop_unlinked\n",
      "Applied 1 strategies in 0.02 seconds\n"
     ]
    }
   ],
   "source": [
    "ei.drop_unlinked(i_am_reckless=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "One last manipulation before writing to disk: Let's delete all exchanges with zero amounts, as this is just noise."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "277 datasets\n",
      "39194 exchanges\n",
      "0 unlinked exchanges\n",
      "  \n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "(277, 39194, 0)"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "for ds in ei.data:\n",
    "    ds['exchanges'] = [exc for exc in ds['exchanges'] if (exc['amount'] or exc['uncertainty type'] != 0)]\n",
    "    \n",
    "ei.statistics()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Removing exchanges with zero amounts and no uncertainty reduced the database size by over half. As zero is the default value for any value in our matrix, unless specified otherwise, we haven't lost any information. To prevent others from having to do the same manipulation, we write the database, and then export a Brightway2 package for easy installation in the future."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Writing activities to SQLite3 database:\n",
      "0%                          100%\n",
      "[##############################] | ETA[sec]: 0.000 \n",
      "Total time elapsed: 4.485 sec\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Title: Writing activities to SQLite3 database:\n",
      "  Started: 10/22/2015 01:12:38\n",
      "  Finished: 10/22/2015 01:12:42\n",
      "  Total time elapsed: 4.485 sec\n",
      "  CPU %: 82.800000\n",
      "  Memory %: 1.911306\n",
      "Created database: forwast\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "Brightway2 SQLiteBackend: forwast"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ei.write_database()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'/Users/cmutel/Library/Application Support/Brightway3/forwast.32da010eda2c41550eea7e9738352ed8/export/forwast32da010eda2c41550eea7e9738352ed8.ace1d2f119ec9f69e6206fb5758b4a8d.bw2package'"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "BW2Package.export_obj(Database(\"forwast\"))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Finally, let's visualize the database technosphere matrix:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "from bw2analyzer.matrix_grapher import SparseMatrixGrapher"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Warning: (almost) singular matrix! (estimated cond. number: 9.77e+12)\n"
     ]
    }
   ],
   "source": [
    "lca = LCA({Database('forwast').random(): 1})\n",
    "lca.lci()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXYAAAF2CAYAAAB6XrNlAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXd8FGX6wL+bkEAgdEHKKFUsp6tIEfBORUU9+9k979DX\nXqKInmQQsFBkAiqKsZfxPD3b785eTlRsKIqKBgs2UHhVRDoEQkiyvz+ed8mybJLdZJPdkPf7+eQD\nOzNvmdnZZ5553qcEQqEQFovFYtlxyEj1BCwWi8WSXKxgt1gslh0MK9gtFotlB8MKdovFYtnBsILd\nYrFYdjCsYLdYLJYdjGbV7SzMD3YBpgFj8gqKljXMlCwWi8VSF2rS2NsAA4AjC/ODTgPMx2KxWCx1\nJBBPgFJhfnAlcB9wY15BUUm9z8pisVgstSZeG/s+wE7Ae/U4F4vFYrEkgbg0doDC/OAgYBhwDHB6\nXkHR6vqcmMVisVhqR9xeMXkFRfOAt4EQMLIwP7hrvc3KYrFYLLUmbo09TGF+sBXwG3At8C+ruVss\nFkt6kbAfe15BUTGwM3As8ETSZ2SxWCyWOpGwxh6mMD+4L3AI8HfgwLyCos1JnJfFYrFYakmtI0/z\nCoo+Bz4APgVutH7uFovFkh7UWmMPU5gf7AYUAVcBr9kIVYvFYkktdRbsYQrzg18B8/IKis5OSocW\ni8ViqRXJTAJ2IrC4MD/4dRL7tFgsFkuCJE1jByjMDw4BjgB2A66xZhmLxWJpeJKatjevoGgu8CTQ\nH5s4zGKxWFJCUjX2SArzg6uAe4CJNnGYxWKxNBz1WWjjD0Bn4N16HMNisVgsUdSbxg7bJA47Fjg1\nr6BoTb0NZrFYLBagnkvjRSQOKweUTRxmsVgs9U+9auxhCvODucAybOIwi8ViqXcapJh1XkHRBsTe\nfhzweEOMabFYLE2VBtHYw0QkDhsJDLOJwywWiyX5NIjGHiYicdgnwETr526xWCzJp0E19jCF+cHu\nwGfA1djEYRaLxZJUUiLYw5i8Mh/mFRSdk7JJWCwWyw5Gg5piYnAC8JNNHGaxWCzJI6UaO2yTOKwf\ncHVeQdFvKZ2QxWKxNHJSrbFHJg7bFzjKLqhaLBZL3Ui5xh6JSRx2FzDZJg6zWCyW2pFyjT2KPwDd\nsInDLBaLpdaklcYOcJu777RAiAMChLYU9j2sYmOz5r8CIaAr0Az4HdgAdAJaAxuB34AcJLq1Agi3\n6QJkAStMm45AG6AYWB7V5iYgG3HBbGbarAd2Mm3C47Qw/Zabcb4F7kXMSVdq5S2IPifHdweZ/k/W\nyluXpEtlsVgsMUk3jZ1QIGNxKBBYApS1Ld3YtUV5aXOgDNhi/i1DhOqWiL9y8xd9XFmMbVsi+og8\npsL8VTdOVX2EzLaKKk4r3G96PUUtFssOSdpp7GHCicMqYGxJs+aPjZkyb1Wq52SxWCyNgbTT2MOY\nxGGdSpo1PwF4LNXzsVgslsZC2mrsYaaNG7RvZkX58AxCfweGjZ463yYOs1gslmpIe8EOMGNs/8HA\nucBa4I7RU+frFE/JYrFY0pZGIdgBZozt3x2YX5yZffXvzdvMun3CLJs4zGKxWGLQaAR7mFGTRiwE\nPrh9wiyV6rlYLBZLOpK2i6fVcFy3TauXzhjb3yYOs1gslhg0Oo0dYMbY/kMqCBy+LitnT+CqGyfO\nqbfEYY7vdgemAaOBI4FdtPJuMvtGAZu18u6pr/EtFoslURqjxs7oqfPnrsvK+T9gn9ZbNh1dmB/c\npR6HawPsA+QCPYHdI/b1BXrX49gWi8WSMI1SY4+kMD+4OgR3fZ+78+TbJ8zalOr5WCwWS6pplBp7\nFHv+0KpzN+DtVE/EYrFY0oFGr7EDjJo0YlBWRdnQVuWlxwOn3DhxzppUz8lisVhSxY6gsXP7hFnz\nWpWXvkMoVNph84ZzC/ODu0bud3z3ZMd3B6dqfhaLxdKQ7BCCHeDGiXM+61S64fRMQhPLCRx/7Q0H\ndYjYPQ4Ymaq5WSwWS0Oywwh2gLyCovVAp99y2v4FeDRi1xDgitTMymKxWBqWHcLGHs21NxwUzCkr\nPbR5qHwkMGTMlHmlqZ6TxWKxNBQ7pGAHmDZu0GBCIZVTXro+ADO9PY7uCQzRyrs58rhjZpyVCdwI\nPPbS6Me2RrM6vnsp8D3wKeACk4E/Al208h4wx5wFlGrlPd0gJxWB47sHAQO18m5t6LEtFkt6s0OZ\nYiIZM2XeRy3LS6cE4GxgeO6WkhHA32IcmoMcs3fU9lOBgwHH7O8KHAqcFHHMscBRyZ57nAwjFPrr\ntHGDDp42blAgRXOwWCxpyA6rsUdSmB/8BpiTV1B0bqrnkkymjRt0GPA6MGjMlHkfp3o+FoslPWiW\n6gk0EMcCZxfmB7/OKyjaM9WTSSKzgaGRQt3x3TbAIvO3BegF9NDK25KaKVosloam0Wnsju/eACzU\nynsiYtvfgEFAB+Bi4DxgF6Cd+Txh0KpFZYctXwiwFzA6r6AoocRhju/eATyvlTcrGedRXzi+m4m4\nd65BimjnauV5qZ2VxWJpSBqjxr47sDFqWw+gH9AFaAH0AXY1nzOBPeZ16P3JYcsXvgA8uTmj2dHT\nxg16fcyUeUsTGPcPwLw6z76e0corByameh4WiyV1NDqNPRlMGzdoDaFQYcvy0il5BUU2cZjFYtmh\n2GG9Ympgj5zyUgd4K9UTsVgslmTTJDV2gML84CBgKHACcFJeQdHaFE/JYrFYkkKjFeyO7+YCFwF3\na+VF29zjojA/2D8Ek8sCGW8SCDw9eur8JRH9nwIs0cr7KGLbgcBOWnnP1XX+9YXjuwHgMmAtlYun\n96Z2VhaLpSFJy8VTI5z6aOV9X81hewIe8IXju29r5ZUkOk5eQdH8GWP7nwH8SihUUpgffDyvoGiV\n2T0OeBf4KKKJMuMmJNgd380AetdwPji+208r79tE+o5BW6AA+AFxd+zt+O5DWnlbHN9tBbTTyvs5\n3s7CbYBWQIn5CwCtgRCwwfybA2QDxUAZkJXIOBaLJXmkq439VOA7x3d7VHWAVt48RLg8CYyv7UCj\np85fD+yUFao4mW0Thx0AXBl1+IXAIbUY5gzgW8d3naoOcHx3OPCN47sDa9H/VrTy1gAdgf2BwUDX\nCB/2yWz7oIqHKcBnwDfm7w3gfeBb8/ce4k8f/vwJEjQ1ty7nYbFYak9aauzAi8AJWnk/VXeQVl6J\n47snAsc6vvsG0A34EyLAHKA7cIBWXrVJwEZPnV9SmB+88rfmbQ4dNWnEfOAAPWHWdm208ioQ80ai\nPAecqJWnqznmPSRdwfxa9L8NUW8v5RH/vxX4T4Ld3QI8i2jt6xFX0wwkZqAC8ZcPAS2RurCrgVLS\nV2mwWHZ4Gq2NPRLHd08H+iOa6igk97qDmCVGGYEcefy1wJtaedtolaMmjRhMKHROFuXFAbh9+nWz\nqxPE4b72BU4GrtfKa/wXs55wfLcPcAEwAfgrsF4r77+pnZXFsmOSrhp7QmjlPYmYZMLcU0OT8xFN\ndi6A47tDgSI9YdZH10wc/gvwSfPyLUXTxg16fWbfw34DDkJqqnZHFiMXmnZ9gD8D5+eUl77d74Gr\n3vn2/FsbJHTf8d1OQDetvM9j7BsGfFbbReV6Yh/kuk8DjgN+B6xgt1jqgR1CsNeCToh9Hsd32yJm\nkMuBu4yWvvO0cYO+Rezp/0JsyEMQm/uewH6mn4eAzoRCnRC78l8Qs0VDMA44Hck6uRXHd9sj53MJ\nkE7eMO2QN6psrbxTUj0Zi2VHpqkK9iHAUgCtvLVmwfLrqGOOblFWek7+wpfvLtjj6CFaeR86vnsl\n4h0S5u9AFoFAbgCaIwuHDcWNxHgz0cpbbc7nywacSzz8G1iglbcsvOHzIXf0AT77bN/vfv5vn8Dy\njJJWXa57uUvXEy/4pXjs692//7XN5pz/Bn/v8/BjTuiLAY/+0GrVvps3luzb59pjlrZ6+N+7/vLI\nkJ9/+6rLhi7P3rtLV2B/Z8E/vkvZ2VksaUSTFOxaeV9Gfd5uwXLMlHnfF+YHXwRK3IUvX1mY//KV\nOipxmFbekuh2DYVW3mpkoTLWvk8beDo1Yhawox98vwK3ZZZnrMndEtq4rEV5ywwC7bLLAiVrW5Sv\naVvSLLMkq6JDRQCabWmxsjxrQ0XLdRntCNBiY3bFmnYbsza1Ks1oiayl/NLgJ2WxpCk7xOJpvDi+\n2xxZ6Hwa2A3ooJX3XnVtCvODewBPbM5odnt5RmaiicNqO88/IP7mc5Lcb2/En/71OvSxN9BaK++D\nOvRxAFASa30gWTi+eyrwunkAWixNiqbmkjYYeAyxkY8FZsY6yNjdAcgrKFqYV1C0X3lG5gzgwmnj\nBuU0wDzHAbdXd4Dju5kmeCgR8oCHazspwwTgtjr2cTNwfR37qBKzsPw4cHx9jWGxpDNNSrBr5b0L\n7GqCmy4GDo8+xmi1Kx3f/XPUrt2RHO9v1fc8EbfAETUcM4XE7ehjEbfQunAudS8HeBziklovaOX9\njqRyfqS+xrBY0pm0NMU4vjsAmA6cbBYDj0A8Uk4wofF/BY7Xyjujlv3/B3gCWIy4351kIjZxfLcZ\n4pZ3APCRVt7d4XbTxg0alFlRPjSrouykO/oeXr6pWfZkrbzZdTnXiDntBtwP/K2GQKbw8XsBe1Tl\nC+747lTEV/ymiG1nA4dr5f09CfNtiQReTURs3BchCdXuR1IONNPKqzfhXRsc330YCarK0Mo7J7Wz\nsVjqj3TV2MuQCMdwYNEW8zn8FCpl+2IbibDR9NEa2Bm4wPHdXc2+DCSKcrP528qYKfPmNa8oexfY\n2K60uHOvDb+3r8Mcoiln23OuFq28r2oI8Ckhav7IOScr/3wIuXbtqPx+MP2XULfvp77YSPrOzWJJ\nGumqsWcgScDq1X3N8d3jgaeQB8llWnn/dHy3F5IT5VitvNcAht9x7u6zL3/om/Dcem9YHjxVfzyn\nnIAbysh4bPTU+auqHCSx+eyulfdNMvoy/WUD3bXyFierz4i+2wMauEAr798R27sDa7XyNiR7zLqS\nznOzWJJJumrspyBJs6pMApYMtPKexwTOaOX902xbDLSJEOoHAwuH33HuYNPs9EW5neff3O/I5muz\nW16OBDDVGZMEbGFdk4BFcaXpMyuJfQJb3S07Rgp1w7uIGS0deR/JCGqx7NCkqx/7KuBn4nhldnz3\nfcDXyru/NgPFSvcbte19JKI07IP9PHB8eUZmWXGz7LXNy8sOmDx+yHxg8PjJc+uSTmAN4otdY8EP\nx3dfAObEUaT6IeDTiOyOCeP47ijgWOAI4EPgTvNm0xqY6/iuRkwxuyL1ZtcBfRzffU0r74jajltP\nnIm8ZWyH8YT6ALnvPtXKy2/IiVksySRdBftPwMtIbu+aeBeoNs85gOO7fwKGauVNM0nAZsfyxTaL\nghOB27Ty9He5ndsiuWLeAtZo5RUDL5hj/x5cs7TF0JU/fFAWyPCuv+7AW2+cOKe2Och/A15FHmo1\nMZftI2VjsQsy91r7rSOpeD9DsjxWANkmR84lSOqClYgp6xekItUHyLmkHVp571ezuwxZk/ge2OD4\n7k1INPFa5D5shSwSbwb+Lx2DwCyWMOks2B+LJ4lVAprVYCQv+jTgLESzjBVk0wH4G+LxoTNCFU6I\nwDnAfcAaE+R0ACIIji1qt8v6Qat/vAH4uILAZ9fecNDrj/QYthzzMIjO+Oj4bl+gPGz3NgE/IUSI\nPAr0cny3orrAGq28KQmc87mO705KVGt3fPcQ4D2tvFcc311O5YM2A+iHaL9BrbyV5vieiEb/HvBG\nZOqAdMHx3SDwm1ZerAdPNtAZeAnJvzMOKR7ym/nrDHRB3iJXO767BRH0gfMWvbNmVXar0DPOgBwk\ndfEaZKE6UyuvqJ5Py2LZjnQV7CcBjzu+20sr78dkdKiVdwuidaKV94dqjtPIDxiAP634rh3QHvkR\ng0SuPoYI4zytvLvM9i7X3nDQd8DBZv+bGJfJqCEeQvKaH2M+P4t4knQ345QgNurranOeUbRDBFJC\nmMjX2Yi/+YtaeZ8gHjCRdI/8YL6nnR3fXYzkxL+4NhOuZ15E3rYui95hHqSR51Slac/x3WeR8+sF\nBH5q1XHxLhtXbwL6IA/oFcAyxOuqZ7Imb7HES7oK9vDrb7S73nYYQVJoBHd98DZwwGNjngkL6KcR\nr5lyZGHyXGAqsOtI+HPnknUqf+HLdxbscfQBkfVSIziLbYtfHGU+748sxJ5mxqwSx3c/QvLJuzXM\nvRB4OVFtXSvvS8d3BwOfOL57PZLsrAtSBm+KVt4dju+2AxaZv81IioYcYDkQdHy3SCsvmMi4DcDh\niGvrfK28bQK1HN/tgJQTXITY2C+opp9LENNMayDQs3jF+lXZueXI+bdE3gZLgWYmLmIJEjORDfRF\n/Px/QB7ofU1fh2vlfZisE7U0bdJVsG9EfmAlsDW/+HnAhVp55Y7vHgscppU3GglvrzbfSzSO7xYi\nmttS5JX7QmM7jzxmEvClHvPME0Ro3SZAqgjR6O5E7N0ztPI2A98X5gdfCEHx1d/+b/SMsf8bNXrq\n/OWR/WrlLY36/L1xuzzenPOXWnnraziF+4BqXUEd370aKNbKuydi2wnAH7Xyrqmh/3DpQRzfnYUI\n9LaIIHrHHLIZMZm9AWSZv1eBYciDqqZzaBCMt9EZWnkXIfdQN2Ct47uPIykWTgL2AnYC7kDyxFe7\nZqOV92us7f/13XAfaxHhXq6VN9bx3RlUmrE6msNXI4vO7ZAHwlmO73bTynumDqdrsQDpK9ibIbbK\nsDvmTsAewJnmNXgv4EAArbzbHd/dy/HdIxFTxhYqPUtytfJi5Uc/EBFWP5p+mwPFju/ujCywPoto\nUhmO765HfnxPRWi+WabdUODdSO+UvIKiuTPG9l8LnJpZUXFMYX7w9byCopoSh3VBXtlzzZh7A22r\nSQL2A5IZsTp6IcIlkn3MuceNWXDcuujo+O4+JhK4i5nvSkTjbIW8yQxH1h+aO757FvCkVl5ZImMm\nA8d3TwNmIbn39zCxEbshnjttkAdVDrLA3Ac5n0uBvalm0d7x3eOAT7TyYmWTzEHui5XmLxNAK69G\n909zX+/j+G4Jch8XI5HPNX3PFst2pKtgb0+loFuplfe847tfIlrqXxCtp2fE8WOBPyIudxWI4KsA\neju+214rLzrasidwNKJRRb6Snwl4ju+208o70/Hd6Ui+kQ6I0PoYwCzqDnF89y3gSCrt5QCMnjr/\na6B/YX5wbQhunzG2vzd66vytC8GO7waQDIlhwfsg8rr+CiJwxiBCaEAV1+dexIZfpR1bKy8vxuaO\nyDWKC5NkbHOUYJ6AmI16Idf4fMTs0BtZ/F2GmGO6mM8LgAZZQOz14DXZQOaWjMxcJP/7eSY+4Slz\nyEmO794B7KWV1xPA8d3JiADO1spbb7RrjcRSbIMxqzyJ5MIviN6vlbfU8d3h4fQUiaCVd6Lju3ch\n90JX5G31OmC6ccUMaOWtMQ+o3Ih7x2LZjnQNUCpDXucjw+vDhaTD+8pj7AvvD/8/8phIwu2jw/dj\n9VuOLJTG6qum4ta7lQUyeiJCOJLLgV+Mhw1IQq+HI8apbu7xjFtdu+r6jeZjpAB2JJHzC/8/8i/W\ntobin8D/qLyOsd4Uoq/BI8CnwHJHTCnh77sqYt03wNZF55XGo6g2RF+3Csd3RyJeOcsdqe07Blhi\nlAOLJSbpqrG/g3guRPqELzHb5iA20Eg/4pmIzbwD8mMOa0y5MbR1kFfuzcCuju/OBv5itKxnkZDz\ncICSj/hwtwOud3x3DbBOK+8Ks38iYvqJSV5B0fIZY/vPDIQqhhXmB98E/pJXULTWjLPa2OVBBNLn\nZpyFwAzkraUqliCeF9Xi+O4x5lyP18orR7TBRNYjxiDmqkhmIOaLDojwOZZKj6EWSFWnnkgWyRuR\nCOIxQBetvKvMvKYhNmYf0YBXImajsAdSCaL5Z1PpofQrcq27IqazVcj33M7M5YwsWW9pbfq7DDHF\nRLMCWRsIcxuVHkkrkXTCVa0PVCD3XlWuqN+ZcT+uYn9N3IvEZbRH1jPeQq7FZYgS9gZiRloHvOX4\n7loz57bI21gpcp0ykeuUgVzHEvO5BXLNVkW0OVUrb5t1IEvjJ10Fe6SNvQLACKZwDc81iGkE45Xy\noVbe/8XbuVbeU6btfkhEZXiMpUSketVStDpcuHoo8mPbGLH/rVGTRvQZNWnEpbdPmHUXMRg9df7H\nhfnB8hAcPrdD7wvfvvnUJ+nYJ9ucX5jm5nMu4vs8r4ZTCL+VbIPju10Qc9JMc71KkbWEkJnvV8BX\n5tjzkYfkGsS/fybiodMBaKWVd49W3guO7/Z3fPcCRIAWI944/zEmgcvN0BVUask5yPe2Obxw6/ju\nNtfN/H+TOX6D+bwR+d6zkIduMSLIN0S0CX/eYvZvQoR/NlC++LzpkV4lD1Rx7SrMnP6BeFOFC5pn\nAKMQof1TFW1DyP3Q3vHdY7XyXjRtj0cEbkutvHsc3z3L8V2ACq28xx3fvcjMPwMR2gEzTjnyIGoF\n3KeVtwAxXWH6HY48RHOBO7TyKsxbRY65DuFrl4ncQ6URnzeY8Taa67kBuW/C162ZaVPu+O6hgGPm\nlmHmVmbmFvbL32iO74A8KNaa86ipTQtzTMkJv8xfUxbIzHypa7CdmeOqqDZhb7gtWnlPOb57KfKQ\nXYE8pK9AXIl3AoZo5T1YxffU5EnXJGDHAf+HVPv52eQ62QX50X8bGfTj+O5vSJj7RPO5D/BTpF3Y\n8d1uwIZIu6SxW+aEA2kmjx/SCagYP3nuSsd3d0ciLlsiVZaqXPwcNWnEJYi74863T5gV0z3T8d2M\ndqXF++25ftk7zSrKx3zUoVebzZlZ1yIeJF8imv85iHa6v/mBV3d9vkQiZ/PM556IZnY0YlvuESsI\nx9jMOyA25OWInXgR8mPpgWjP7RE7/M6ID/w1wKnIIuRGRMO9F/EueRfR6MM29hZmHiuQxd8+Ztz2\niA071px2p1LoZCE/8BLzF6DyAbgeEawtEUEeFvxZyJtZ+AGcidw323gNOb67hxnHRdIL7wzso5X3\njWkzANGQlyBrAmO08n50fNcx44SVjVKkUMhOwPlaed85vvue2ber2f4tIqRaIYux4beELGRtAvO5\nBHm7aQkM18qbY0ws/cw4U5Hi6X0BR0sK638A+UisQLE5LnJu4QdIK3P9NiAPsxzz/cRqU4DUG+hr\n2i4y/fRGHli/IW/P4TWaTcibS7OINovNWH2qaFNy1pK53y1p2SHz3Z367YYI9kWmTW/kDWI5cm9m\nI3WJf0PWy5YhazmLkQLueyJ5kA6JOJ9M5AGxBdBaSjE2WdLVxp6DfLnhN4rLEA19IXBi1LEtzLE4\nvtvGHHdh1DFvIiaESO5C3PPCPAX8y/HdfmacExBTQrWv1bdPmHU31Qh1wxlrslt9UtS2e9ApWX1a\nr+LfR5p5L0CCgK5DCliEtaiayEaERJgvEYEVFnqZVbSbAsw1D8buWnk3a0n92868jod9rrsaD6B3\ngEMjxmuOLCq+B8wzn7Mi9oX/38y0CXMfJg1DJMb7ZyGSh2cWYl772mx73Yzzjfl7D/keF8ZqY6JK\nQXzuv3F8t3PEOEHT7ydIRHAFsngdzqQ5EnFb3Q3RNPcyfWYgHkHhccJj74GYb75xpFpT+JxbmP7C\n1yL8Xbag8m0kO2J/s4j/hytz/TlinM+QB06HcCSyVt7NyAP8a2C+mdvH5vhvzDV6J+K6zUFMOF9H\ntZkX0ebj8DjIm9m+SHBdV0T490YE7Z6I8OyMRDVHtgmaY6pq06ljafHg/muWDjRt2ppxhiBKQi7y\n0BsKDDZmyp3NOCcY76C2WnnPGS+0k8z5fG7O56OI6xbLcaBJka4a+whkMXEtImjCmkE2sGjYiu9W\n9d3we7dHeg5rh2hxi5EfR3fkh/Id8hTvYbYXU2mLbI/8eK5Abqq2QPlea3++qyyQ2ezbNl3OR27U\nxVRGhGYjmsVSRBNykNfoJebfXc0xy8ycc7Xyhju++yEi1H4x/+535tIPu2eUlx9f3Kz5ec91758d\nCmScoZX3ruO7/ZFw9oMR7b23Vt6ZVVyf98zcMrXyDnV892vEtv0AYk6ZiGg+ZciPZpBWXpkJNjoO\nGIT8EO7Uyns4ot9nqIyyHQQMRAKmwq6k/0BMV39A3i6uQrSyw82cWyDa6RpzfAtzvIuUIwx/X0uR\nH+RMRKCG23Qwf5sQW3FzRFCEqLSxd0GE4Erk9T/cZpjRsE9A4gs2mO+4M6LhdjRt1lDp6ni4Vt5P\njiQ0OxKYZPaXm+tWjmjVq835dDSf/4kIk3ZaeS87vvuiOeYhrbzZJu6iHNGY5yEC6HfkXuxqtv+K\nmEi6mrkcBxyGKC49zTieVt59UV9/+K30XTPmSnNddzL9/RwxTqYZZ5M5nxxzfivMNegEjEZqw66M\nHiedMW96b1F5PiAR25sQd9RVxmw1B/n9bcCYtY7/ef7qTqUbHr5x4pw7G37mDUO62th/RITcQOQm\nDSE3cBZQtCWj2fKyQOAHRBPYCxGwvyM39wBEsP9u+mmG/AA6IRrZW+bzu8iN/0eg/Ku23X9GBM6e\niMAvQl4NOyOvvXORV8Ns5PVwf+RVMsMc8wFiM+xMpea22RxfauZfNv262UWF+cGcLYGMXXctXjmk\n45bi8CvjMiQfyypEk69ucXQ1ckMvMp9fBOZr5RU7vvs8omWvRjTTb6n0AvkQcZsLGVfNH6L6nYVo\nSW0QV9C5xowSMtvCbzgbETPSq8ZFMIQ8AIchmvVyRANra+b5tpnDMOSBshzRFNci3/Nq02drM85m\nc72aId9pyFyPcvM52/RbHDFOOHbhO9MniJArNuOHE3ptQB7O7cJtzDm8ggSrbULunc9Mm75mPmXI\nPbAvsERvm1DsNcQtd7bpL9LvP2C+n/XI/bYTIthXIA+qjlSasJqb8V8y41T1FrjaHLPO9NsSefCU\nmn4zkfs9cpwOiGBfG9XmlUbqOrkSuQb9kPv4Gy1puCMpRn7vq5Dr0QH4uFmoYh3yu9hhSUuNHbZm\nWfwB+XHbumK2AAAgAElEQVSGEC05G7H5foj8GNoimvBTiH24C6LpT0eEVC7yY1mDhPIfg7ymrUM0\nomGIHbMcsdm9gATY+Ih2Og/RTu9G6pB+gwjybmacaWZueYhP+e/IK+KftfIGOb77FRLW/5M5fi9E\noJS5C18uAz6qIDCmPCPj9dFT58cdiGKE8ltaeTfE2yZGH4OA73VEsjFjhirVNeTncaQe7P1IErBV\nZltPRPCdGF6QjGpzNPJdbW3TEDiS+qCfjkjvYPzR/2S06x7IfdQdOaefkJQCl5tj30ceBi2Rt6mv\nEU36oYj+9kAE8hLE7rsGEaYZOs4kYGYh/0zEFHGoGWdK5BuVZXsc3/0YeFzXkFLE8d084GKtvL2j\n980Y238o8MXoqfPTIlo6GaSzYG+N/EC+R4RnH0SD+xnRWHZBfpAbEbNJa7YPUAq3+QV5alfX5nJE\no/FMm18RrcBBhHG4TS5i4gmZcb5DXmcXmnFe0co7P+pczkKCdXZBFio3aOUdAzBjbP/vgLdGT51f\nXW6SpGK0yGJgWuTDwZh4VmvlHddQc6lvHN8dhwRVtTKeQji+exQSDLYvso4SRGzCnbUUwk50jI+Q\nt71JiA17axKwcCBUHH38DPwnwpXW0gDMGNs/B1H08kdPnR8ds9FoSWfB3gqxE/+ICNFeiMZ+MfK6\nn428tj+L2DwfQswILyI/1ueRV+5s5Iu7AFn4Ox3RwDYhmtFMRGPPQzxx/mj6vMiMsz8ilE8HvkBe\nc7uYca43n8OeFisQW/NJWnl7Or67BFm0/R7xVgmvE5SHQ9JnjO3fp1lF+XkBODGvoGivOK9NzCRg\njuTQeQzoGxZQjpT6W4AInufCbRwphn0VsKs2BTEcqfu6BXnAFSFvHu/GGP94xC20r1beCrOtt2lz\nlFbedr7yxvb9T6TkYYPZc8191FMr78uIbRmI99HHxkW0FfLQfZbKJGDnm2M/R8wXrRHToEbur9+R\nNY2w50iJVt5vjlTAehQJlCqM9s6pZp7fIMpHNrJwqYHrtfLujTjmNWCxlrw3FsDx3YXAv3QNqawd\nyZ10eawH7Yyx/fe5o89h40szmzXTyju5nqbaoKSrjR1EQ56GCNYKROhmI4EvQUSLboN4t4R9kDsC\ntyN2zDzErpaFaN5tEC38H6bvFeb4xYhgL0bs8+cgP+4fzGLcWsS97TjkVXytmdci5NV7IfKjvwLx\nbnmeysCqWxH7bnickmiXv9FT5/9QmB98DthQmB98Argir6CopoCRe4mdBOxzJDVxZADNsoht4SpQ\naOV95fju01QmpUIrbwmA47s5pk1V9Vc/M+cWGTq/DLjljCUfnjJ5/JCu4yfPfTpGm1uIo0JUMtGS\n3O3LqG0VVKaHWAbg+O5PZn7ht8QwdyK26gotCehuQR74xeb4dZHmLPOwmAEsiFeoG24145SZhe5b\nkIW/SHziK8TSlJhJfAFhs4kdiczoqfMX3OK7/6Zqb7JGR9pq7GEc330MudnPNp9nIcK6I2IWOQrR\n4ociC5cDEbv2LogG3wz5MWxAFk9aI4L9d0Qz7Yx84deaz+NNm5GRmqfju/OpDKA4BRFU47XynjZa\n3wfA33SMxF2OJM26GxjYsry0H7Dl2/Nv/TRif+/+q38afuRvX15m5j4rjsRhCWGCULRWXpWLRo7v\nDkGuaSutvOdqM87Y6w96qywj853p189ORj75uDFvEZ9o5f0ctb0bMDDGwlp4/75IYFGsoisxKcwP\n7gfk5BUUbdPG2O5PRx4OJQBaeW/EOf8RwCKtvOgFbYslYdLVjz2SzojmHaYbsprfHXELC4dG74zY\nvnOpXAHvYY7pHNVmF/O5E2Jj70Gl21y4zdaQfuMZ0sts64K8OfQCOju+2wJ5WPSg6jQAHagMRJkK\n3BC1/5L57XtMzCso2h8JADq/MD/YssYrkxj3AKPN2kVVFCCmo8edWhbAfqH7fs4rXffpUJu2tcWY\nVh5H/NHD29qZ/45EzqcqbWwCiRffrqrNXogZ5kFEm9/OVbEaHsD6X1uSRGMQ7CcjWlCYEPLqtTsS\njfcRorHvD+xizAknIx4vPRAhvh/isrg7shjax3weYPb3QDwiwomt+mrlheuaDkNMOQHEa+Zwrby1\nps0JwBPmlXsXbULMo9HKe8Ls/xnxU/5r1CHjkIU8EDt8b7ZPHFZXhiJvKtVFtR6PpPXtpWtfAPsA\nxNzVYBjTSm+MsDX+y7+ZReubkZiAqpKfnU1Uds44GBmrjfGAcRBPqoOQ4Jp4GYCs1VgsdSbtTTHR\nOL77MvC5Vt7Yeuj774g75f7apCQw0ZHPIELxAa28OyKOfxTYpE21Hcd3H0DMAXfXZR6F+cGBZYGM\noaWZWScBJ4yZMi8pfsaOFPE+UivvYOPv/k+tvP8ko+90wvHdXCojEdcjb3THmYjb8MLxPcDpOgn5\nzh3fvRWppVoQtT3sKnuaTsMasJZKHN+9AYlzCQd2/Qa8r5V3WyrnVVvSefG0KrZLm+r47h+RQIX2\nyOLpCMT8kquVd6cjRReWxPKvjuJnRBhEPu02IMEMnaPHNceWRHxej3jb1Im8gqKPL5tyZPvcLSWd\n2m/ZePG0cYOeGDNl3pK69otZFHYk22Ix2859RyIcmLUSMc1F133NQRbYk3X/FxOR5Mzx3b8hb3g9\nzDg7zKJcqjDrF6MQr6+OSEGcqhK91YZwhs9wvptfgHaO756nG2GyscYo2LtiUsk6vrunVt7XSH6Q\ngxC79+NIqtpuQB/Hdx9EQsrnIAE0VaKV9ybGBOL4bndgvQnWOcbx3V+BnRzf7RrW8rTyJke1H52k\nc+S5bv1bZZdv6XPR4neuBzZMGzfoyTFT5sXlJuj47m5UZkXM0cpb5Egyq5cQT563gP5RLoC7IZ47\nmVSmUfhGRyRcS2eMW+evWnklWgqhnGi2X42kC8igMgK3FWLySso6hlbehKhN45EF1J2Ra1njOI7v\n7oLEEGyI2NYByIr2pEomxk31Z12ZQjpd6QRMRrzB9kKEfDIFewfk/rgYUYDyEe+7iciaSaOiMdjY\noxkKXOH47kHAV8aT4xKk7Ftb4x9+ImLf7Kwlt/oQ5EZIhOjEYT0QG/3LdZx/XGjlPVuamdUuIFrE\nGYgPeI2Yhd6FSCKoN5BkVlmI2+XNJty9dZRQ72DaKCQCdyES+Xh0Ek+p3jCLp18BV8fY3YLKBFth\nWrJtkq5ksw9yn/ZDrnU8bo8fADdFbfOBejOVOb6bjXzPif42GhyjTLXTynteSxKwHkke4jQkavoX\nRI68qJV3E5XZOBsVjU6wa+VtMVrk+8ji5TzEy2QWUORItr27kQCieY7vZke0SYS/I5GE4XFLEW+I\n8+p+FvGhlbd5zJR5pcBlJYHMN6+/7sDPrr/uwGq9VYxP9THIAt+5SJDRFmTB9qZwv1FtVpk2T1KZ\nSOx4JMNi2mMWT8MpC6JZjQRnRX7/q5CYhnrxqY+43/YFvjCBXzVxKhIfEckY5O2zXjD39NE0Ao3U\nLIgXOb57iCO1BLYLnKsjtwMvO5JQb4Hju7Md352oG2n630a3eBoLx3dPRQKXOiJRpuEiA22Bq8wP\nfzvOmvaXXoiL2bWPjXmmwV5FHcnkeDIwId4HzvXXHTiYUOjvzUIVZQG4efzkuT/X3Co1GJ/5/bWk\nmE31XIYhkcD/iNjmIMFkY3Qt6pMmMPYuiDJwjfGksiSI47tnIGbBp5E36FsRc+yfoyOvo9pkaeX9\nK4FxFKKdd0Jkx0okAnlrAZ+LLrroaKD3vffeW1jL02kwGqONfTu08p4Gnjbh498hP9hHa2qXVVG2\ne3kgY2RFIKMAyTjYUOyNmFdupJrSepHcOHHOR5PHD/kVSYD26eTxQ14fP3luulawPxQpmZdywW5M\nT+9HbdNsn7O/PsZe2hDj7OAcigSQPUJl8fZvEdNiVRyGmODiFuxaeX4chw1DTLxWsDcwmciCVdua\nDgQ4YnVRe8RroUVNxyYTo0nEfdOFGT957lKg2+TxQ35A/PDTVWi0Ra6rxVIntPISvsfD7sfJ5t57\n7x1fH/3WB43Oxl4dWvJK9yf+1fKngf3/WvBTMlwJt8Px3aWO7ybNUyaCI3LKN6+aMbb/V/XQdzKY\ngKQ/jonjuy85vhuPhmSxWGrBDmFjT1cc3x0FvKOVNz/Zfc8Y238IodDwrFBFfyAvjsRhaYOJK9ig\nldcgHkYWS1OjSQh2R6q9LzM+77Xt41igKJwBMR0ozA/uieQmuZOoxGHGDXRzfTxULJamjuO7JwPv\n1WeMQV3YoUwx1XAXsX2cE+FRxH2wTji+m2MSh9WZvIKir/MKigYgicPOK8wPtjR+7CAFQ65PxjgW\nSypwfLedKQqTVjhS3e0xxPc9LWkqgr2Cbf2Ya8NuQLXJ/OPkeSQ6Npn0Bfp+1naXz4DlJo3w8cDf\nkjyOxdIgGOXnZ9Iw46WJbO6JKIxpyY7mFVMV4WLXdeF+pArSU3XsZzJSdHgrju+ejVQeOrM2HeYV\nFC0vzA/e5mxaddjw5V+r4JqlG2/vd8R4xKd/ck3tmzKO745FQsd3RhKFFad4ShZAK6/E8d2LkPQX\naUVhfjDLlUjwWwvzXy5H0g8cm1dQlDZpGZqKYP+K2BWHEmEtSUjwpZUXy/92I3WMgswrKPq4MD9Y\n3nHV4qE6p/3FOWWbMzY1a26FVM0UI8nbWrB9kjdLCoknFiVFhJDf62akSM8a6m4RSCpNYvG0Kgbf\ndXEG0O+jS+9ZmOq5JItrJg5vB+iMUMU/OpZufDrexGEWi2XHoanY2KviNODrwXddHE8uj0bB9Otm\nrwE6dCzdeBbwcIqnY7FYUkCT1dgd350UCIX+0LVk7QMfXXpPXP7Uju9OAXbTyotrNdzx3XnAvUnO\nGx3u+0rgBK28mIFA08YN2iezonxEBqGzgQGjp86PWcjXYrHseDQVGzuO7x4MDNPKm2o2fR4KBFYN\nXP3j/y6dclQB8Mhd416NTGV7BWKX/xjJr30DUdfLLHpuNqXvYvE60Mnx3YuRxdebWm/ZtCZEILQh\nq0VrpBh2jU/Wfg9cdc6WQMbOWzKatYlok0U1eWbGTJm3YMbY/i0roOeSnI43j5o0YvrtE2bFTBxm\nihjcBDyklbfVLLX3fVeMBr784sKZr9U0x0RxfHcg8mCKzmVe2/4mAi9o5c1LRn/pgAnk6oOkbr42\nXNWrsWKSczXXyosrBXW6MfyOc48G+sy+/KE7ajw4xTQZwY4U4jgDmOr47iBgtlbeykunHNUKMcl8\nCHwJW7MTHo8kj1oGnIW4NmWwbV6Zk5CFz5iCXStvrOO7NyP54B8FTgsRWFIRCJQjtVZvIL4kYCOQ\nItrRbdpU1+iWfkcu7FG84s2Bq3+6KyNU8ck1E4e/Mf262b/EOLQlcg3mILnYwxwPtHZ89w0kRcB6\nJAFTCXCAVt5bkZ04vnsYEmkbzzntDZzm+O4N1dQjjQuTj/004CckjXNt+zkYKanXAsm93wpZGCtF\nMgy2QxZbF9ZnVsgIDkZyu++KeDclpURiChmOXNNGKdiRJGCDgLQX7E3GFGME7NlImbS1wEytvO2S\n+ji+2w/4Bkn1+ozju4cAs4EhWnkfRh37NlCslZeWBSkc381Hcsq3OnPphwuBN4ozm19017hXE/rS\nHd8dAbyGeAFMRSpYPQx0C1eTMrVhFwDHauW95PhuoLFUXwJwfHdn5CF+LlL1aAIizFeY7Z3N3xbg\nBlOEwWJJS5rS4ulEJBtiMVJ0orPju29FHuD47nmI1joEeM5sfhsYGC3UDX+lAQtv1II7gP2MBj1i\nY0b2asxbSYK8DgxEEqzdjPjz7xdZCFor7wtgAPCKMYssqOvkGxITGr4f8mY1w/x/AFIJ6VjgQPN5\nPyTS12JJW5qMxg5bq9M/jZgYLgT6aOWdErF/DyRIZXqKphiex7nA/kjhkPOTFTRzyEyV36Zs07GD\nV/34K5A3fvLchBOHmeo1O2vlVRmF6/juUGBvrbz7q9ifD6zVyrsn0fHjnGMLpCrQzYh9+q9aeedH\n7O8FFACXaOVZd9BGgKm18CBiknKQ9ZlLktj/FYhp+j4kO+ykyPKRjY2mpLGDnG9L82822+dhX4MU\nsk0aju/uY+qzhj8PcXx3QNQxfRzfPSpiU1fErtobyDJt9q/rXL5vvfPqn3Pabwb6rG2Wc+yoSSN2\nqUU3XRFbf3WsQOzdVbGL6ae+yEIWHdsiD8fexg4fJhe5tvWSh9/x3SMc3x1hTFiJtOlbzf4zI/IA\nNUWyke+sDZLrv09dOnN8d0+THDBMNyqLuPcGWke36fXgNXv1evCaKtNRpxNNafEUZPGrJ/Il7sT2\nwuV0wHN89yVTBLtGTJKidqbWaCzygT0QUwaI98kGx3dHRizAXQyciWgiRGvDju9ORRbOTohnTlWh\nlXcfcN+oSSMCwFpCoVsmjx9y8/jJc+N+I9DKm1TzUVyKLCxvU3DY8d0Opr7qGOoxylMrbz1iTgvz\ndNT+BVR+H/XBfUit1dZIHp94uB/4L7Bd/n7zJvkvZI3osSTNsVFhfl+Dzcf3EZNZXbgKWQz9g+k/\nssze4JgtpM0QZOE/rWlSGrtW3nvIU/k/wGKkhFYkhUDPeIW64XJAV5Ox8ULg8IjPJyKFeH92fLe5\n2TYOKXxcFScg9vykcPuEWSGgz06lG/ohRcCTjYuYkrbi+O5fgWVmkfJlalFBqhExAPHCqkpAxGJ/\n5Lptg3Gp/RzYRyuvSQr1euJy4I8JtslDKpelPU3Kxh7G8d2PgEe18mbG2NcJ0Zwu18r7LI6+HODg\nRH50psjxn7Ty/p3AtJPO5PFDBmZXlA1tWV56MnB8XkFRTHc6ozE+gLg53g38irx5HGe0Y0xGyacR\nu/UXMfrYCVnb8BE3vo1aeR/Vw2nVCsd3c4EXEG+YTsBliKlmFaJ9twM6IK6PM7Xynquiq2TPqzNw\ntFbeww0xnmXHoKmZYsJsAcphqyllFPCsVt6PSFKfVYhrH47vtkFMC3cgmlgnrbz/mH3HAJ0Ihdr2\nevCaMcBDi8+bvsK0uQQojLXwaYoc/9v0cSawWCtvblWTNUU+NmvlzYrYtj+ixf0z6tgAcCXwH628\nJeat4ErggeiFwvGT535cmB+sCMGhmzKzL/nTHectX5zbaalW3utRUyiNuCYbEQG/mm3NKWVmWymx\naY4IxquAp8w1SCcqkPmXIOe4GpnzGir9xwPI+W2TDM7x3RMRe35OMheETVxAyx1FqJs1h+ZaeS+m\nei7xYh74ecCdYSUmgbbnInKmRCvvyfqYX1U0VcHeC3F37IYE3UxEBNePxpYXacvew+x/CfFx3hMx\n5YAI7y7AbiFoEYBPEdfAPRD/8SLHd9/SytsEW33ki5FMcC218r5H7M1vAVUKduTBso5tzSanIWsC\n0cEebcx8f0MeHo75/BHij78NeQVFn04bN0gBus2WTT9mVpQvNOewFa28RYi2Hclfoo5ZEeOYSIYA\nNyLnroEGvdEjMQ+/PbXyttaMNTm2T4o47H8JdHk5Yk/v5fjufVp5yVo/OBdZ/H0hSf2lmvORheuk\nCnbHd9sCrbXydDL7NfRBfj+vI1HoiXAdEgORQQPf703Kxh5BD2RR62XzFO6olfdIrAONuaCVWXDL\nNn9hTgAGEwjsFIDcxedNfz2yDZK7fSxINRjga0S4vg58ZbTpQYgWWx3Hsb2NvTkxvDq08tYCHcJm\nHq28H4BcrbzthHqYMVPmrQHa77/mpzUjf3o/u6rj6oJ5y2kHtG9o7SUGRwJfOr4bTFJ/RyAPrm5J\nFOoAfweOSWJ/qeZMqn/415ZbgTfqoV+08j5Hfv+JCnUQGTMUWaRtUJqkjR3gykmHF5YHMva4Y/xr\nh9d8tOD4bm+gbbx1RB3f/RPwjVbecvN5BKLdbQLuCQtbU/T6JK28gyPaHgbcg0S8budrbd42dq3O\nhFPFnPYFngFGGKG/leuvO3CfzIryIzJgJDBg/OS5jTo3SVU4vpuNpGl4OV2iYx3ffRN4SSvvlmqO\neRxYopWX33AzS3+uufGQm7dkZA6+bcIbB9V8tNDrwWsmAIMXnzf9uHjbOL57HRKsmPDDyThXfIxE\nLf9fou0TpamaYuhWsvat9c2ar+5/z2UzgLHzL76zRk8YY5KIG628d6M+zzLeIZuiNOivEG02kqWI\n6aV47/uuUMCmLy6cuTUnjVbeL0CsvC8xcXx3tBlngel3O/fMGyfOWTB5/JCWIdh1XVaLW66ZOHza\n9Otmx0wclo44vnsK4npabTZNrbxSxLSWTsym5qjg94GEg8p2dLqVrH0XMT0mQhGynpJom40JtglT\nivzukhonUxVNVmMH2PeevKMChB4JwN7zL76z2h+M47uDkRuhIpbXR7w4vvsosEEr7+J42+x93xWP\nAeu+uHDmJaaPfYHfjXCvbqx2wF5aee8bjfAtrbyJNY13zcThPYD3W5RvcVuXbX5jzJR5VY5jPGaa\nI6anlkgKho6IWeJTc0xPZE3hK5Noay0SebrY8d3DqaxG0xx5wK1HfkAZVD7w1iILnC2JnZzrDSTU\nv5tW3qnVzLcr0CXet64Y7YciScCqiluod8waweFULlaHr8FGZA0nA1lryUCuUzmQY7Zt0ybGQrll\nB6DJauwAK5vntkdc2+KJQHwDiaYsQ/KF1AqtvIQLTH9x4cyzojb9B3gT8ZGvjouASY7vttLKOzTe\n8aZfN/snoPu0cYMWAQcW5gcvySsoqkoDeBAJ2++LRHwei9iwT8IEXCGh/bs6vns0opkuAr5wfHcC\nosUsN39dkMCxUuB75HvpjSy4LkYerH0RoRRuszPyHe6nlTcqjtMbb+bYo6YDozHpjd9CFoFTmQSs\nP5KUbSXietoJuQ5bkOsWjrwNIAnbNlIZaRtusxPQxfHdvbTyvm7g+VvqmSYt2BG/66+18pbEcexA\nRKtMh1ecIxBNrCZmIjnK40mjG4vDW5Rtvgj4AhOhF4PTkfuoJSI4PkMSqUXGCFwKtNDKW+H47n6I\nh88mrbzfTHqFdYhQaoa4DW4yfwFEywwhWnwI0TxzEA2+LNzGLHLFwzhksS1htPLKzPyrS5dQ72jl\nfVrFdQu7agYQL52AOSaEfDcto9tYob5j0qRNMZaaKcwPHoDk0R4AXJpXUPR7iqdksVhqoKm6O1ri\nJK+g6EPgeSTHzvGF+cHaJA6zWCwNiNXYLXFRmB+UxGFiL78lr6AoKamELRZL8rEauyUuzOJpbySq\nNuk1UC0WS/KwGrslIQrzgwN+a9562KLczqcAxz025pnGXofTYtnhsBq7JSHyCoo+WZTbeQ6h0MoB\nq368rDA/uGuq52SxWLbFauy1xPHd3YFFdXAlrK7vDoh7YNyRpQ1NYX6wPRIdezXwn7yCohUpnpLF\nYjFYjb0WmGxyXyHZ6uqDu0hyBrxkk1dQtBoJTBqJBClZLJY0wWrstcSEwn+klVejjdnx3UORcmkH\nxFM82fHdPkga0hoLfcRomwt8gmjSbZDskv218uoloVdhfnCfskDGkaFAYCTQf/TU+eX1MY7FYokf\nq7HXEq281+MR6oalSH7vuFwEtfJ+qI1QN2w2Y/2IhJe/iikqUh/kFRQtCAUC74bgzd+bt55x7Q0H\nda+vsSwWS3xYjd2SFK694aAewJyWZZvHttuy6Y28gqK0XR+wWHZ0rGCvJY7vBtIll3c6cUd+cHFA\n3hIurSZxmMViqUesKaYWOL7bGlhtcqtbInig10EbX+yyT38kcZjFYkkBTT274zYceOcFf0I8Xc6d\nc9n91dmli4GpVF+ndIfE8d0LkHzmk2LtX9k89+YeG1dkVhDoOG3coP8DLhkzZZ5NHGaxNCBWsEdQ\nFsjoFQiFBmYSyqCaBUdT17KgIebk+O6ZwKysivJsYNji86bXe1mtGggCVSYC08rzAaaNG7QXcDJw\n/LRxg14bM2Xe0gaa3zY4vusAg7TynonY1hI4FXisvryFLMnFFBf5G1LYux0Q1Mp7Pon9D0YsGB+a\ncZ439YOThuO7pyFpk1dr5X2YzL6jsaaYCFZnt2q/qnlu76U57Tunei6wtQLSP5Gi2acDj/R68Jp6\nKTadADshRR1wfLdjVQeNmTLvK+AA4DZCIVWYH8xtoPlFcxbwL8d3MyO2DQN8YPfUTMlSC7oDDyO1\nCM5GfhfJ5DpgIlIc5mGkJm7SMMrEI8AtSKGWesUK9m25Y3Mg86CKQMYSx3dTXh1eK28NcqM9hBSu\n6LH4vOmlqZ0V5wJHmujYXxzfPbuqA8dMmRcCeuWUl+6FuGCmgpuBnlp5W9/ATDm4blp5NdUYtaQJ\nWnka+c6eAqYglbSSyelIQfmlQPdkF5zWytsI7IooO6cks+9YWK+YKIxmdw7wdAJ+6k0Sx3dHAq9o\n5VVrQy/MDw7YEsgYtiUz61TgmDFT5q1vmBlaLE0TK9ijcHy3OTAaeLAmgRWj7V+BH7Xy3o+xL2D6\nXQtorbw6abCmNFowbNNOd6aNG7R/CMYta97m44pAxmO3T5gVTznCesG8bVwE3KaVtylV86gJx3dH\nIEXAn0v1XCyNC7t4uj1dgRuAj4FEK7hfDbwDbCfYkRqUNwA/AN9Qd9PECcAZiK04JTi+uyeVtUhb\nauV9Z7a3BjoiaREWAIyZMu/TUZNGnA8szaooW1mYH/xvChOH/QG4HikK/m3kDsd3uwGlWnkpTWrm\n+O5ugELy8VjBbkkIa2OPQivvRyDX2GETZbBW3ugq+l0HdEBqh9bZ/10r7zpgz7r2U1vMwumXwFvA\nLOALx3ezzO4pwDygyBR/BuD2CbNWA+16blx5NvBAw864Eq28d5Hv+NsYu/8L3NvAU9oGcx2/AIqA\nlK/1WBof1hRTBY7vvgzM1cqbGLFtKtBPK+/kOPv4FFgGbNTKq/cFkxjjn4UkAdtPK6/M8d2rEE3/\nEOBToBBYAtyNPJRWJdj/CGANlRr7O2Z7N6AHom2+opUXumbi8COQrJWDehSv7P5Li7ZHFTdrMRLo\nf7PmyrMAACAASURBVPuEWSlNHOb47p+RxemByALXJq287xPs4xzE1NYfeAPYCGRr5dXKu8Lx3YOB\nBYl+J7UcaybyFtMDCCC5jTYh16IVsBK5jzsAXZB8RD8hb/y7ApmmzcZq2pQib6zFwK2IUhluswuQ\nC6wCfgUCWnlH1+tJNwCTxw/5AHhs/OS5hQ09tjXFVM2biMkkko+RGy9eXkF+IEn1h02Ab4GXqfTJ\nX4AI4JDju68AC4HfkXkmXMNUK29WFdt/AaJzxfxkxtmYV1D0xahJI1oFQhXd+xb/PqMwP1iQV1D0\nc6LjJ5Efzdw2hU1HteAb5CFW4fjuLERA1vqBpZX3dm3b1oIPEUHcyXxeCZQhqalbIr7X68z/2yNC\neiUinHcy/64026tr8x3yUHglqk075GEQbrO5Hs+1Ifkf8lbb4FiN3ZIyCvODPYF3gWsBmzjMYkkS\nVrBbUk5hfvBH5M0iL6+gqCLF07FYGj128dSSDgxHTEFFqZ6IxbIjYDV2S1pQmB88ADgYicy7OK+g\nyCYOs1hqidXYLWlBXkHRh8BLiIfEiYX5wSoTjVksluqxGrslrSjMD2YgXkQFwG15BUUbUjwli6XR\nYTV2S1phFk97AfsglZgsFkuCWI3dkpYU5gcHIOl1TwWOySsosonDLJY4sRq7JS3JKyj6BMm58xtw\nubW5WyzxYzV2S1pTmB/sgEStXg2kMnGYxdJosBq7Ja3JKyhahYSknwPcn9rZWCyNA6uxWxoFhfnB\nvYGjkLJo++UVFKU0cZjFks5YwW5pNJggptOBLGCqzS1jscTGCnZLo8IkDnsHGIdNHGaxxMQKdkuj\npDA/+BPwInC5TRxmsWyLXTy1NFYOAUqwicMslu2wGrslKZhSefcB+YlWH6otEYnDhgAX2cRhFotg\nKyjVgOO7LZAapY8iNUY7aOXNNvuGAWVaeR+lcIrV4vhuJjASeForrz7zrmQD3ZGKOQ1CXkHRh4X5\nwQ3ASSuyW5147Q0HvXrTDe8sbajxLZZ0xZpiamYA8CCSu+Qa4OaIfZORavcNjuO7WY7vtouxvVPU\npr7I/P8YZ78ZRvtOCK28X7XyhmjlNahpJK+g6MtfctoNK83MurUCRp5TcHxuQ47f2HF8t6Pju41a\nDji+29zx3TYRn1s6vtsqwT4SbpPONOovtIGJZbMKVLG9IbiJKPuy47tnAL86vts1vE0r7xugi1Ze\nvAm1RgNLHN/NStpM65mbbninAui5rEXbfbGJw+LG8d1spJj5qFTPpY7cjqSfCPME8EyCfTxZizZp\nizXF1MynwHmIdv4O8FDEvvFI0d9UcD8QXfD4NWSuyyI3auUtT6DfJ4GlWnlb6jI5x3f3BHzgFK08\nXZe+4uGmG95ZeU7B8QVtSzcOnTh+yJyHex4YKM3McrXy3qnvsRsrWnmlju8qYE6q51JHCoH/Rnye\nQuKybTKQmbQZVUOvB685EnCBoxafN71eCnfbxdM42fWhMXMC8NhP5067K9VzaQw4vtsLuBW4KMEH\nS52YPH7IgAq49oWu++6WW77ZnX3Fwy831NgWSzz0evCaA4HLgLMXnze9TgpUVVjBHif9HrhqGTDz\n2/NvvSnVc6kLju8GgH0a2hbekBTmBzsCP5YTuOrLNt1ffblbMEcr79vw/oa6Bk3hWjckju/uDXwN\ntAC6JtP7yvHdnREHgFytvK8d390FKNbKW5WsMRoSa2OPn1ZATqonkQQOBT53fHf/VE+kvsgrKFoJ\ntFuflXNuy/LNrwJFxjsozJHINQjW81T+bMbZu57H2eExgnYBcBpixpif5CH+CbwOfGEWYl8EZiZ5\njAbD2tjjpCSj2S8hWFPXfhzf/SewQSvvsiRMqza8jQicZP8wtsE8OJ4FDtHKW1SfY8UYux17HP3J\nH9b+PK1H8YouQ1Z+f3bnzRsiX03fQK7BgiSP2xuYDfxFK+9TYJYZ58s42r4NvKiVN72aY54C2gDd\ngH218prM67ZW3lLHd48E3kUEcJ1NbI7vHgg8hhR0uQJoDbTRylvn+O5Ion7vju/eCAzMqig/Cfgc\nuA5ZY5sK9F983vSN8Yzb68FrTkacH/ZbfN70TXU9j1hYwR4nFYGMJ4EPHd/ti3gRVAD3a+V9kWBX\n7wAlju/mAh4wTStvSV3m5vjuZOBlrbz3azpWK6+MevYccXx3BDAceAFIxavsRuCFL9t2f7tP8e9t\nu5Ssa7vH+mV3DLzrkjXLctq+o5X3P+rnGqxCznkZgFmAjnecV4HPajhmNpLCuFVTEuphtPJeM//d\nBCQjGE0j39darbxtcg5p5X0e4/iPEWG/xbT7DihHtPu4F0HLCWQECK0LEag3xwtrY08Qx3cPBR7K\nrCjPblFRdtU3F8x4opb9OIg3whlaeR/UcU6fA4VaeSnPV97vgasGbMrIOjEUCByklXdwqucDUJgf\n7AW89ZQzsHh58zbPLLzwtnGpnpOl6eL47laNXSuvXjR2K9hrwbRxg9oi2lnemCnz7k71fNKJfg9c\ntRh49dvzb70k1XOJZsbY/kuA57Mqyq+IJ3GY47uZWnk277ul0WEXT2vBmCnz1iKRqA+mei5pyHBk\ncSsdObhZRXkpYh+tFsd3dweKjR3WYmlUWI09QYwnxfVIxOnNWnlzazj+AmAXrbzrzGcXsRE+gjwY\nxgJ7A8O18vJqOaeHkFwwr9SmfbJxfPdU4I9aeWkV0ej47m2DVi36/cAV35cuyu08FLjornGvxrTV\nOr6bA1wF3B2Py5vju0cA5wLNETvsOqBcK++qOOc2E3hXK+/pGPtaIl4bKxD7bmutPBVPv5aqMUF0\nU4BztfLidoxwfLcZ8n3cg9jYLwdGxhvU1/+ey7b6sc+/+M568WO3i6eJ0xLxSugAOHEc3wHoHPF5\nJ2RxLxvoirhQtgW6hA9wfLc/0C6cbCwOuiLeEnXC8d0/ASVaefPM56OAJVp5XyXYVTsizieN2Hle\nh95fdy1Z9x5wUo/iFScW5gdfzSso2i5xmLF9Tkmg797IW9w6RLhnISkn4p4bct224vjuQOT++Bz5\njjOQVMUJ5/LZkTDBb/tq5T0bsa01cArwSALmsxzkPk00fUYG8n20Rrxiwt9NvOTWok1CWMGeIFp5\ncx3fPYpQaDnioVDT8QVRn/8R8XFovweuagt8/e35t0amKrga2A04IM45/Tme4+JgIrCa/2/vzuOj\nqu7H/79mkkASdhBFuYC4oHUZTS0axQXrrvVXt9oPbvUUqraOKCjMRSIqBrkDKlXHtejVtnazrXvV\nWpf6U4tQjY5aFUVQD7vsIhCSme8f50bHmGX2SSbv5+PBQ+fOnGUmc8+ce+457wNneI9vxUzZS/pK\nwgtM9mBHuJHbnFbOmKb/j4QChwPr4zBwzpSq2yfMrNuUSd6+eLxfHIbi8/WpbKzvDXy1cNwt9Slk\ncTGwudmxKcAArZzRJBnErYu4ADMz7dGEY0cBczGzzhYlk4k3JfUwgKNv/3kl4Hvxsvub/w1aSleP\nWQ/S5J+tvbYldZfc8SzwbCppUiVj7GkoizVSGo9RGs/Kxj3zgDnNjo0Djs1G5ik6FTg34fHBmOGI\nVMwHbs5ajXLE2wx71wafv4oszIm+/KPn+NWiF7ly4bNg1gg4KWbxVgtpzgN+lGnditAMYPfEA1o5\nT2JWoybVqLfgL0gQsK5tu7+k3h+PfRLHty4L2V2OmU/7Na2crZhL7oxZrj0I07P5AnhaK+eOhOem\nYMb/f+WV+6V3fGfMl/yiNJbDa0yvv8MLhqNr5kypcvzx2KGRUOAV4MRgOJpUzHrLtUcDNwAnaeV8\nWUL8oYrY9g8nzKyL/fq+SZ/hS/m78RnNPrfmU+Es174DWKqV06nDWmTKW4vxnc83k5hEa8sqV5P6\nkExSvCG124FTtXK+yEUZzUnDnp7GmM//Fs0a5HQsHHdLSpdxaagHlmKmZzY/GdZgxvpbS5POHNs6\nINUx+YKZMLPujUgoQByO3FLS7fJZU0f+dvKMBcls1vElsAwvuueEmXWfYRpnGv0ldcAHKValDviw\nndeswvxAiyzbUtrtbXLUsGPuqS3F3PjOC5kVIwQwa+rIAcASXzw2saJx+6OyzZ7ozGSMXQhg8owF\na4A+FY3bx2GmsQnRaUmPXYgEkVBg3w2lFafUl5ReAASun/5qVu6QC5FP0mMXIkEwHH2vvqT0ZV88\n/uzAbZsikVBgl0LXSYhUSY9diBZ4gcNeBK4Bng+Go8vaSSJEhyENuxBtiIQCnwGPrS+rvKKmdp4E\nBBOdggzFCNG2IzeUVmyn/VjpQnQY0mMXoh21NdWHlMRjR/Rq2DoK+EUwHM3ZXPLh903aE5gFjFs8\ndvaaXJXT2XmL6O4Cxme6UU0xkh67EO2oqZ33eq+Grc8AO231l50xa+rIITksrhwTEKylhWPiG90x\nn1P3QlekI5IeuxBJmjV1ZCmwjnh8ZmVj/e3BcDSjwGFC5Ir02IVI0uQZCxqAYRWN9VXAU4WujxCt\nkR57ng2/b9LNwFeLx86+ptB1EemJhALf/7K0+6iNZRU/BU688bqXkwocJkS+SI89/1ZigjmJTioY\njr65saziNeLxpYO2bLgiEgrkcsy9y7NcezfLtSdbrp3KxiXZrsPFlmsfVKjyUyUNe54tHjt71uKx\ns28vdD1EZm687uU3dtm64VI/8RBw4uU3HDvU2ydVZN+hwNWYnYcKZTKQrQ1tck4adiHS5E177AP8\novf2rU8Db1muLedUlmnlPAT018op5M3qPbVyagtYfkpkjF2IDEVCgX3XllWetbZbjwuGbVm754SZ\ndRI4TBSUNOwdgOXaxwKHauXckEEePwF20sqJZK9mxc9y7THAXphNx6/y9rNM2ZwpVYcQj59VFo/1\nBG6Q2DIikXclNxv4vVZOXa7Lk8vGjuEw4MwM8/gBcGQW6tLVHAecgtnAuyLdTCbMrHu9LB67Ezix\nEd8xc6ZUDc5WBUVR6IYZo98jH4XJ1ngdQ1/MKrq0aeWEslSXrqYv0A/YhQxXewbD0cXA8DlTqj4H\nHpkzpWrChJl1EjhMNO1jvE++ypMee8ewjfT2FxWZq+ebzz9bjfDhXl45v+QWoiXSY88iy7VvAqJa\nOb9NMek6YHEb+V4NbNbKubWN11wMDNbKmdbK87cAb2rl/L6F58qB3wE3aeW8nmLdOwzLtS8FBmjl\nTE8h2UpgEKYh3ppmudcBA2iK8TLihPV7blpRMWjrhvWRUOBRYJyz98ljMDNobgF+i9lIvB7YERMf\nZoJWziftlHM95uqij1bOz9Kpa7GyXPt7wI3Az7Vymm/a3vy1dwPPauU80sJzvYAHgWu1ct7JYv1K\nMefYXVo5L2cr39ZIw55dA4DeaaRbjTnRW9OP9ocJ+mBuALamrbr5gYFkMMbcQbT3GbRkFebz95H+\nFWw/798OmKBUpR/1GrR2aUW/9aPWLBoInNlz+9ahX5aVlwAlmMY8jrlSGOilSSaYVX+vnFTfY1dQ\njvlck2nTdgB6tfJcKbk5F5rOscos59simRUjRA5FQoFSYD0wY4u/LHLriOMqx3z+Om/3GbJlU2n3\n+OeVA7pXNtaXLhx3y4pC11UUDxljFyKHguFoAzAE+ME7fQb/l3hcb/OXLi2NNf73y9LyV3zx2KfA\n8hFzJx5d4KqKIiINuxA5FgxH1z2yS9UX9f6S1cevfG9JA/7Fa7r1+GKbr2RdHN+Sel/J4i3+0vWF\nrqcoHjLGLkQefNh757f9G+P1hy17a9CHvQbt1eAvWbi1pNs6fL6BDb6ScswNdCGyQhp2IXLMcu29\ngafe773LP2L4hvx4Wd0ze25aGfmw987PPrHLgeWYG2qfFriaoojIzVMhcsib5rYZWISZ2bQb8bjv\nso+fX/zKDntuqes3bHfMjJjjtXKeK2RdRfGQHrsQubcc+COwgXj86l9++D6Le+24fv/1n28NrP98\n1dt9h1T0btgqY+wia+TmqRA5pJXTACwviTUOLmvcPqIkHltR2Vi/Yll5/w1Leu7wJXFW7rF59Yph\nX61JK/iYEC2Rhj3HvN1fDmx6vN+94/fd797xsiFDDliuvYfl2vs3OzbAcu0jmx0rs1z75GzsyGO5\n9vGWa/do4/kSoNIHu5bA9/zxeI9Hhg3uFe23M68MGNHwzM77V+7+5aoeA7Z9GaitqR7cLO2elmvv\n5/3/CW2VU4ws1z7acu1+ha5HPs2aOvKwWVNHDso0HxmKyb0ZwN5Alff4TuBLTERBkV1hYDBQnXDs\nEuAay7V7aOU0xYI5BrMZ9QFANN3CLNfeCXgG+DnwQEuv8co8oL28amuqNfD32prqiTW18xq8wzcB\nA7yQzE8DF2LCERQ9L8zFs8AU4OYCVyefngB+A9iZZCI99ty7lG834mcDEucjNy4CTm927GZgv4RG\nHUyDsZ9WTtqNOoBWzkpgX0wMkEyNAmLAmwnHxgJnaeUs98p5KAvldApeNMR9ga62v8APgLT3ZWgi\ns2KE6CBqa6oPKYk1HtGrcdsRwFhv6z0hUiY9diE6iJraea/3atz2DCZI1ZmRUGBooeskOifpseeQ\n5do7YELBlmjlbLBce6cB2zZ95YdY3SV3bC50/QrFcu3emOiG5Vo5qwtdn44mEgqUAetiMGNFRd87\nbrzu5Y2Waw/SypFAYUmwXLsn4Cvw5tcFJT323PoYeBX4l+XafYHPt5Z0mw/8obDVKrgnMZ/LEm8B\nj0gQDEe3A0NWlPcZCTxhufYgQFuufU6Bq9ZZ/BH4e6ErUUhyUuXWBZge+zatnPWWa19QGmtcj4n/\n3eV4Pal/Yk68D4Ee3jzvXJZ5FvBL4DitnJh3bH/gfuA0rZyluSw/XcFwdN3V1x1ZWxprHHXJopf+\n5u466qJtJWVPF7pencT1dPG2rUu/+VzTynm82eM/gYkdYrn2lVo5WZ3GZbm2hZlxE26vwbRcezzw\nUuLMEMu1z8SM7/bQyrnFcm0FLNTKeTVLVWwAlgCvaeW8kaU829MH835iCcfKMBsp5OSK1XLtcZiN\nOxq1cu5PN58br3v5TTXz1F16NWztUb3m4yH4/D0t1x4CHN3WblrFwnLtq4AntXI+sFy7DAgBLmbD\nisO1clqbMTOILt62dek3nw+Waw8EKrRyPgOouvvSwf5uPU6J+fy25dq3a+Vkc8VhFWb+6720cVXg\nLcypwew6kzjlT2Ea9t0s174duAx4DjNskjFvCts5Xh0qgWFaOe9nI28vzx2B7lo5nycc7gXsbrl2\nScKUxwpgd8z7z7TMAPA+Jg7MEK2cD4ArMJtr9MRcGaTtuUH7VhCP73bYmo+v7Lv9K92jYetOm0vL\ng5Zr36aVU7Q3yCzX7o5pyGOWa2/CbF1oY/aR/R5wOd5USMu1+2O2C2zaXvJczN/20XbKKAECWjlJ\n703rpdlfK+et1N4RWK69L7DIOw/wFi5uBDZq5WR1BpSMsefe7cBjCY//MKB+8w+BHbPcqKOV8wTQ\nO8kbkj1ptv2XVs6PtHKqgZ20crYDB2nlhLJZxwSXA29leYz9buDhZsd68N1t0HphTvyMtj/zFii9\njWlIJgJ1lmv7MSf+4XyzKC1tWjkP4/P1KYvH+gQ2LP3lZR+/UIXZ27ZoG3UArZxtmK3ujgUe8m4c\n99LKeUor5yYgccbQbMxCsaa0Y7Rymq9naMmPgTct194zhaqdhvk775FCmqaOzNuYBXNYrj0c8yP1\nEjAnlbySIbNicsxy7aGYL+R7AFV3X7oX0FB3yR2LslzOzZgVl0OAKq2ctvZQxXLtQ4CPgJGYlW4H\nauWszWad2im/L/A9rZz/ZDHPXTFXR+8nHOsH7J1YjvdjMhp4HrgVOBDTUByolZNSMC7LtUcDr2N+\nKPbSypmX2btoXSQU2OfLku6nNvhLLgD2q6mdl5WT13Ltu4B9gF0xnb3PgK+AYZgOwGpgBWbf3J0x\ne7UuxuzfOrxZmqFemjWY4Gf9vTT1wDRMpMs5XtrPvMfDMD+2TWl8WjnHeXXbHTOrbGEb9b8FqNbK\nOSzF990NOEIr53nLtX8DdGtvk/BmaeYCpVo5FyZZ3uGYze43eo9/iLmyW93sKjNj0rAXCcu1T8es\n1OsPTPF6PMmk2wP4FWBn+wqiM/CW64/AbBI9xbtS6bBqa6oPIR4/o2/Dlr7A9cFwdFmmeVqu/VPM\n0NQOmHsDa4DtmM+kAtiACYNRgfl+bQPWYhrnAc3S9MXEl9/opSn38tmOmQ22DbOi1u/lUd8szSbM\nZIOk7yFYrn0ysGcm9x28GUelWjlJh2ywXPtczI9OhwvzIA27EJ1MJBTYDfgXcC3wQjAc7ZAze0Th\nSMMuRCcVCQWWAn8FrvQ2zRYCkJunQnRmTWPK+Zo6KjoJ6bEL0YlFQoFDgMOBowAVDEfbvGkuugbp\nsQvRiQXD0dcxq3n7Az+RwGECpMcuRFFoChyGieV9VzAc3VjgKokCkh67EEXACxxmYdYyPN7Oy0WR\nkx67EEUkEgp8H7Mb0xjguGA42mXDQ3dl0mMXoogEw9E3gf9gVoZeFQkFhhS4SqIApMcuRBGKhAID\ngUWYgGRPBsPRVQWuksgj6bELUYSC4ehqTMjiS+l6G0J3edJjF6KIRUKBfTBRDM8H9g2Go3LCdwHS\nsAtR5CKhQDVwOiYY17XBcHR5gaskckyGYoQocsFwdB5wD3AMcGwkFBhc4CqJHJMeuxBdSCQUWAb8\nBbhKAocVL+mxC9G1VGPiqP+30BURuSM9diG6GC9w2CjgaOBCCRxWfKRhz4Ph900agLl5df/isbNj\nuS7Pcu0LgaeB7pjd3P+QZLrRwNZcbu9WLLyNs08BHuiM+49GQoH9gTtXd+/5h+3+0idvvO7lrG7N\nJgpLhmLy44fAXcCgXBfk7fF5N3AScAZwr+XaZUkmnwZclau6FZkTMJ/zgEJXJB3BcPSdZRV9j9nu\nL53ti8fHREKB3oWuk8geadjzYPHY2Q8DOy4eOzvj/Snbo5WzDthZK+cBzEbNg1PYx/MU4Nxc1a2Y\naOX8DhiklfNFoeuSrhuve7keGDxo64bDgMcKXR+RPTIUI0QXFwkFqjCbdZwDHBMMR78qcJVEhqTH\nLkQXFwxH6zCBwxYBkyVwWOcnPXYhBACRUGBH4GMkcFinJw27EOJbIqHAm8BHwXD0p4Wui0iPDMUI\nIZo7F3grEgr8r9AVEemRHrsQ4ju8wGE/BnYApkngsM5FeuxCiO/wAofNxaxOlcBhnYz02IUQbYqE\nAsuBPwIhb9Ns0cFJj10I0Z6DgTJgQaErIpIjPXYhRLsiocDBmEVMPwR+JoHDOjbpsQsh2hUMR+cD\nzwG9gZ/KIqaOTXrsQoikRUKBbsBa4HrgnmA4urHAVRItkB67ECJpwXC0HhiMGZaRwGEdlPTYhRAp\nSwgcdi7wQwkc1rFIj10IkbKEwGEfASEZc+9YpMcuhEhbQuCwy4GnJHBYxyANuxAiY17gsIXBcPT/\nCl0XIUMxQojsOBeISuCwjkF67EKIrIiEAodgAocNRAKHFZT02IUQWREMR18H7gNGI4HDCkp67EKI\nrPMCh/0BsCVwWP5Jj10IkQsHA92RwGEFIT12IUROeGPuo5DAYXknPXYhRE54Y+7/AnpiAocNLXCV\nugzpsQshcioSCnQH1mACh90bDEc3FLhKRU967EKInAqGo9swgcOOAB4pcHW6BOmxCyHywgscdgRw\nDhI4LKekxy6EyAsvcNhrwEIkcFhOSY9dCJFXXuCwj4ArkMBhOSENuxCiICKhQB3wQTAcHVPouhQb\nGYoRQhTKOcC7Ejgs+6THLoQomEgoUA2cCgwCaiRwWHZIj10IUTDBcHQe4GJmy0jgsCyRHrsQokOI\nhAIrgIeQwGEZkx67EKKj+AFQAcwvdEU6O+mx54nl2t2BPwE3aeW8mmYeA4DfAVdq5byfzfqJjsFy\n7b2AOcDPtHJWF7o++RYJBQ7GBA47Fjg/GI6uTXx++H2TwsCS7f6Sx4G5wC+1cpYkvsZy7clAN62c\n2vzUOvuG3zdpf2AmcN7isbPXp5peeuz54wN6AGUZ5FECVHr/FcWpFPM37pLnZjAcnQ88jzlXxrQQ\nOKwCEw64rXOh3PvXmZViPoO0vgfSYy8Ay7VLgYFaOd+ZAWC59k7AWq2cr8cYR8yd2AeILRx3yybL\ntYdo5Xyex+oWrf3uHT8I+OLdi25rSDeP4fdNsoCli8fOzsuJNGLuxDJgwMJxt6zIR3mF0hQ4LA7X\nNvhL5k6YWZfTwGGWa/cGfFo5LZaz373jdwQ2vHvRbdtyWY9s6ZK9gg5gPLDYG55p7iPg6mbHHgMe\n8i7TP7Nc+5RcV7DY7Xfv+BJgEXBVunkMv2/STsAS4PwsVSsZIeDjEXMn+vJYZt55gcN2afD5jyY/\ngcP+BPytjeffwUSn7BRKC12BrsJy7UrgRWAF8ClwtlZOS7/+/wdEmx2bDNRjGv1zvHxaK6cH8GJJ\nLLY8Dg0xv38IZvjnC+AprZxft5YGWA68p5XT/IclKyzX7umVY2vlPJ/FfP1evquBNVo5F7eX5t2L\nbmvc797xPwXeTLfcxWNnrxx+36QxwHPp5tEWy7VnAP2AKZjhiSu74V8H8U/ivs7XJ7Nc2wEqtXLG\nJ/P6YDi6cc6UqmvWlVUecfkNx70OjL71mue25Kh6NbTd0T0f+DDVTL3x/gO0cs5NI2134CVghlbO\nk6mklYY9fxqA94G1wEKtnMdbepFWzj+aH1s47pbEWQJ/bK0Ay7WHAr/wyvkCiAFfAVWYsck+rSRt\n5JvGf4n3IzQFuF0rJ5txPLYD/8N8BlmjlROzXPt9YCPmPSTl3YtuS+lkacnisbMftlz7HMu1+wJ9\nMZ/zeszn3qiVcy+A5do/Anpq5fwphex7A70wP+rvA4c2+PyUEH81X0M/WfYpKY59T5hZV3f5DceV\nEo9/f/fNq66OhAL3BsPRjIYiLdcOAgu0cl5vOqaV0+YP/LsX3fbPNIvTmHsB6WjEnC9Jf6ebm3Ei\nawAAF2lJREFUyBh7HlmuXVUaa9zkgy2Lx85emnC8H7CTVs4HraWJQ6zRX9JTK6d5bz7xtT8Cfg/s\n2TSjwnLt4UCUeHwl8AQ+30Tg4MQvteXafTAn3SVaOX/6Og2cpJXzSnbefW5Zrr0/sFgr58uEY7sC\n21q6l5Hwmp0xO/z0au/kbiX9QcAML489MDe8VmCufnpgZm3Mt1z7fsx9lVNbyWcvYJVWzrqEY38C\nBmjlHOc9ftZ7j5ekWs/OyHLtA4CPtHK+ioQCO8Xg40aff8LCXoNefGKXA8u1ct5rI2058D2tnLoW\nnvsAeFArZ2YLafbGdHg3ABuy0bHx7qlVaeUssFzbwozlJ/3j5KUpx3QM3komjfTY88Tr0b0Rw7eo\nhPhCIHGcfBowBrOsOjFNv6Y0+GgAdrdcu6dWTn1LZXiXa32bHVsM9Bp+36RPgB7bfSXHAM9Zrv0D\nrZw3vJeVYHqHvRPTZPiW88YbilkA1Hr/mvwJ08Ce3kbyO4EAsJvl2jumMsXQu9H9X0Bp5TzQwvOn\nAK9brh3Qyvl5O9m9gBnjTRymqCSht6eVc0KydevsvEb2v5grx5ucvU/uBvQ8cfk71wzctukKYBht\nf0fHArdZrt1PK2dj4hNaOXu3kmYccCtmSOYz4BUg5SGUFpwGPGy59h7AXZjz7ZgU0rvAUMz53zex\n89IaadjzRCtnveXah/uIbwSa/2FuBB5oIc26r9PEAR+VrTXqAJZrnwjcDwS0cr7wjg0D5vt8/nVx\nM1TxInA03x5bbsBc7qU8X7Yj8IZiDgcuslz771o5Z3hPXQBsbSf55Zghqt6pzhvXyllpufYRwCTL\ntS8AdsM0xCsxvfYKzAn8qOXaM8pijV/44vG7fjP/Sf/c3fdbsqjXgC2bS7oPH/bVmh47lvcZv6q8\n9wvNirgM6Nb0wHLtxzCNmQXspZVTtJfbWjlbvb/p/7zHn1uufeSQLWvXlzY2/PT8Ja+11+A+ALzZ\nvFEHsFy7DnhIK+emZk+5wBt802P/seXa72nl7Jvh23kMOEorZ5Hl2hdjpj6n4mLM96pnMo06yFBM\nUbFcezfMl+Caph8A78bo9cA6YL5Wzndu9HmXijcAD2jlpHyDqKOwXPt0oK9WjpuDvIcC12IWh61v\n9tzPMTc5+2PmWG8ANmPG2G+1XPta4ImyWOOX/nhs7APzHvfdv/u+az7sNbBhXbfKfrtt/qIcmP3U\nhIdWtlOHsZgrskqtnBuy/R47Cy9w2I+AXYCpqQYOs1x7EvCf9oYZLdc+FBjdfMimM5CGXYgkWK79\nfcyN6+O0cj4rdH26ukgosAfwj0afrzbm878wYWadLnSdOhJp2IUQndacKVUricd/WxaPTQ2Go60O\nU3Y1nW8yrBBCfOOg0nisJzCv0BXpSKTHLoTocCKhQAnwZ+CuYDj6vLfk/w+Y+0d1zV57cAwOa/SX\nHA+cN2FmXdrrJLypvw8BNclOLUxIexNmeuY96ZbfTv59vbpNaWvaM0iPXYi0Wa7ts1z7Isu1dyx0\nXYqQDzOrqKzZ4+/M5AuGo/Mb/SUvAOXbfSXnzJo6snngsHZZrn2E5dqjE8r5TnCxEXMnfn/E3Ik/\naiOb7iTMYmqlnCMt1z4q1fp5Wq3bd14oPfb88n51fUCFVs6yZNJcO21UXyB2/fRXvzN1K8kyh1Y2\n1n8FbF447pZcLcnuUizX9mHmv88HLtTKaXVFsEid5dpDU71JPWvqyHLMtN1rgbmTZyxIOnCYN5W0\nm1bOSa0F2hsxd+LdQPXCcbccmEK+lZhzfY33+HGgRCsnp/GepMeef49gFj580koQsJY8illRmjLL\ntfcGPm3A9zZwSzp5iBZdiJnzvLc06tllufapwKeWa++ZSrrJMxZsBXYGfgj8PcVizwZO86a1fmq5\n9k9aeE0QOCzFfCPAvxMe/wQ4o5XXZo0sUMqzyoZtq+KwYktp9ymtBAFrySRMvJB0LATG+ImvAz5p\n/uSro+8+CtPgHzPqpUs65QKlAnkU2OSt0hWA5drnAZcClX94cJf1cX+3VW8P3tL3ziM/HXjFwn9t\nL43Hb/z1iGO2VDTEZ1zybty//7u7LeteX7bl0371u1x+1ooeT985cP36yp6rIr139QXPWnIe8KDl\n2rO1cpKO7jh5xoJNs6aOrGnAd0RtTfXrwOia2nntXqU2nYuWa3+OCcT3TPPXLBx3SwNmMV8qwsDX\nQ3UpnPMZkYY9z7rFG/8DbP2olSBgLbl++qsL0i1PKyeGWVrfmjXAe0CniDPdUXgxXf5a6Hp0MCsw\nK0UrGvzxDaVxNpY2+ivj+FbF8dVDfBWwNebjPcAf98VXA/XdGn3rgcrtJWz0x+Pre2wvqcesGRgN\npByrZfKMBXW1NdWlxOPf79OwZWokFLgn2cBh3mrev6RaZhv5fUgaUSEzJWPsQoiiFAkFBgEfABOA\nfwTD0TZX9hYTadiFEEUtEgpEgXeD4eg5ha5LvsjNUyFEsTt7XVnl/66dNqrLbAAvPXYhRFHyphre\nBqzdb4PeWL1mUfkO9ZsHA1OC4WhR7xkrPXYhRLGqxExPPOjdPlbpDvWbH/QeHxcJBazCVi23pMde\nIJZrl2vltBcrPJ18K7Ry2p3e5W1ksK2lmN65qltHkuznlGbe3THT4krzNb2tGOXqbxQJBVbF4YHP\negyomT3txaIMHCY99gKwXPtXwArLtdtcfpxGvmcA67ydfdp6nQ/4HLiqhecuA5Zbrl32nYRFwlvS\nvdHbji4XosBrZLBRdlfn/TiusFz7lznI/vufV/brRREHDpOGvTA2YRYLNWY53y+Bj4E2ezleL30y\n0NJc+k3AIqDRcu07LNe+MMt1pLam+obamuqJ2c43BW9j3v+SbGZqufYgy7WfwWx/NgezwYlITwPm\ne7gp2xkHw1Ed9/ndsljDb2dNHfn0rKkj+2e7jGyorakuq62pfqS2pnp0qmllgVJhrAaWtvuq1K3H\n7PHZ7vhaG7sMrQKWYeLZdCM335EyvgnulHfeDkhzcpB102f2dGfeiaqD8GG+hyltV5is2dNenD9r\n6sitwKnlDfXnREKBx4PhaEfbQCXtc1DG2DsAb7y7j1ZOl1lA0VFYrt0Lc+L0TGXneFEcIqFABbA6\nDtMa/CX3T5hZVxRhNWQopmOoRcZjC8XFRGhcbLn2wEJXRuRXMBzdAuzc4PMfSxGFiJChmI4hAjyd\nSQbehsnDtHJ+3srzfwVe1cr5zhCE5do9gZeAq7Vy/plJPQrJcu0bgJ20ci5KIdkaTCwPWysnrct+\ny7XnYjazHgKUA+diIgyO1so5PZ08WynnPsxm1gMxu97L5XYavPsgf9PK+Q1AMBzdNGdK1dXAkXOm\nVM0Hjpowsy6rs3G8m8H/Bm7UKcSJSpc07B2AVs4SMr+RtwSosFx7OnCDVs72Zs+/j5kJ05IGTPD+\n8gzrUGiLgVRj1s8H+mnl/C2VRJZr7wZcANwA9AB6Yz5DHzAG2AGz8UI2LQT2BgYVe6Puzdyagrl5\nulIrp9XAXJZr/xCowvy41gInYaaaPtxKkndpdo9rwsy6t+ZMqSqLQ9VX/m5Ta2uq76mpnZfNobkG\n4B3SCGqWDmnYOwHLtYcBjVo5be3E/izm7zkbuJ2Em06Wa1djthVrrUfaHRiOWdCRmGaBVk62Z+7k\n0jOk3pg+nUYagAMw8blvBQYBvTA99u7AmZhIh5WJCbxe2/6Yxn8jZlZUJeaH4XUvEmdbHsb8mJxo\nubavyBv3bsBlmNljy2k74uIJwMmYz/8eTLzzcszn1ZL7vTy/ZcLMugW1NdVTgPdLY40fXzzjpFee\n2uWAcq2cd9N/G4ZWTqPl2neSp0iP0rB3Dr8HNgBtbct1G7C7Vs63pm5Zrr0P8B9gJWZ6Y0vDFCWY\nHmdvL82+XppTgSczrXweRYDBwCEppLkDszlDdSoFeTHCHwGwXLsHZsuyXkCPNhro84F7MQ37Ysy0\n1N0xPwbHA8+1U+xfvHL6plLXzshb2LVzkq8NAaGEQ+e3k+TfwIO0sI6jpnbeCqBfJBSI9q/ffBXm\nx6JPUpVugxfeYIFX5q8zza890rB3DhfSfoD/CZie37do5fzPW5CzHtO4f4dWzlrLtUcBb3mP3/PS\nvJZJpQvgcpoNJ1mu/QvMJf2eTVcflmsfgvnBOgQYT+ZDJudipm9WJDbqlmsfivkxPdjbkOMhTOx7\nH+bvEcc01D2BV5Mo5xzMOVte5L31XDsW+NbVr+XaD2C2xmuKAHm2Px4//3T9xphsFKiV85Xl2odh\n4tXnnEx37CS8RuIcYHwmJ7Xl2oMx45BXNe3DmEuWa88BHtHKeTnXZbVQ9uV4VyFaOTckHN8JuBKY\nrpXzZQ7LHwRMzHU5InPeVnilidsc1tZUV8fg5E3dKoYAU2ZPezHtwGGWa5dgrqof0MpJe+OcZEmP\nvfMYAhwKnGm59pMZxHLp7+XTGzMjJGe8G2CHUripnAdibrzZiQe99QKTc124Vs6KfJRTzCzX3g/T\n4L7lPT4YWK+Vs7CV15+IuTeU0ne7pRutNbXz5k2afvQa4Il+2zYfHwkFXgiGo23d52pLKeZc+Bdm\nSCaxzoOBEVo5L6aZ93dIj70T8Tamfh84VSsnpbFv78bd9iRu0AnRYViu/RRQqZVztPe4DvifVs65\nLby2HHNTOtTStN5MJAQOu2b2tBezGtjNcu0bgUua3x/LhCxQ6kS0cj7AjBWnc0Pzv8DNWa6SELl2\nHnBWwuMTgBYDg3lXsXtibqJnW9Xnlf16k5v7TtOBQDYzlKGYTsRy7R2AiOXaE7VyUr0Jcz1mJkbR\n8YZ8/gw8qJXzVApp/oJZeboWqAHO1sr5Ko3yZwIDgL5aOWenmr6NfK/ChJq4Jlt5dkIXYW6IXw+g\nldPqPHDLtUsxMYDuxAx5ZE0wHF06afrR95fGGj+oral+Gji3pnbe2vbSWa59EbCPVs4VzY73xWzY\nvRp4TSvn7mzWV3rsnYsPM/si5b+bVs5ftXLeyH6VOox0PpcyzFRPv/f/vjTLLvX+lXk/GNlSgnS+\nmj7bZKV1fiRj9rQX5/doqH8RKOu1fct5kVBgaBLJSmk54F3TuVxGDv7GMsZeRLxGZYhWTkeLUidE\n0UgIHHbNltLu7uQZCzpc4DDpsReXMZhgVrsUuiJCFCsvcNigLaXdj6f11a0FJT32ImK5dm/geK2c\noolSJ0RHNWvqyAPLGhuOLIs3ng8cEQxHO8x2ktKwFxEvpsxYWg4CJnLMi5J5NeYG3j7A97J9U0y0\nzhuKvBp4VCvnvXyUGQkFRsbhl1tKui3H57tr8owF6c5zb5M31fknQG0yCxS7+o2ZYnMAZln9t4KA\niZZZrn0A8IlWTra2X9sZ+BXwGCauzwmWa7+tlfOfLOXfpXmhIN7EBE4bqpXzTrOXdAMuxYQLSLlh\nt1y7AvODXIqJzbTeW2TWqmA4umDW1JEaeK8B38Jrp4165vrpr34rdIc3W+cHWjlJ77HqpTlIK+d1\n79BBmPd2M9DuzC1p2ItLH8yK0qLdiDpbvCXer2PC7s7IRp5aOR/hBejy9ordCXjNcu1AC42QSIHl\n2kMwm0+fi2l8L8cEXfuaFzgsk/tLYzHROv3AZ8ArXnltmjxjwXKg/7XTRr0DHIeZe5/oNOBhy7X3\n0MpZlGRdmtLsrpXziVbOQ5hYQ0mRm6fF5S/AKK2cZU0HLNceZrn2F16QL+HxAoIdhrm6yYVrMcGm\njpRGPXPetoWHY3Y5uhk4IgfF3I9Z9n84cAowKcX0Z5U3bl84a+rI95sdfww4IoVGvSnN4Vo5n6RY\nB0DG2IueF1J2GvBrrZzllmtbmCBgV+YjCFihWa59BPATrZzxCceGYha81AO/18r5/3NU9jDgOmCC\nt4G26KC8hUTDMbtT+YFwOhuSz5o6sroB30m6sv8wwL5z6jNpBw7LhPTYi5xWzmatnJBWTtPGAv0w\n4Wp7F7Ba+TQEONhy7cTven/MZzDSez5XBnjl9GrvhaLg9sEs6z8Y8zdLa//byTMWzNOV/R8CDhm0\nZf3xkVDAymIdkyY9dvE1y7W7ATGtnPZivwvR4ViuXZlOSIhciYQCq+Nw/xv9d532QOjxrAYOa4/0\n2EWip0jhBo0QHYXl2icAGyzXHl7ouiQ4sK7f0H4UYMMamRUjqLr70grg4e6l5f/YVlJWzPFk0ma5\n9l6YjRLObysQlSiYTcDHwOZCV6RJMBxdemH4/5vbu/6r9yKhwDPAmGA4uq69dJZrX4y5ObwDMEYr\np900zUnDLpqU9G7YuqBu3M2vFLoi2WS59u6Y2QUPJhzrDfwMuEcrpz7JrHyYoFzZDPIlkuTdI/kl\nZuZXf8y88MSry03AUswG4enkPxozgvFv4BLgz1o5X2RSZ4AHQo/Pj4QC24AfbSkpO3/W1JGPTp6x\noL1YTn7Md60k3XJljF0UNcu1rwSuAQYk7Hk6GhPWdX+tnOZT01LNfxjwmexBmlte/KMlwE8xNzqv\n0MpJ6wZnK/k/ilngdBHwCWYm1WPZyv/gOy/e+6ylb/4XEx76gbYCh3kz2Sq1clpdZGi5dndv3n6L\nZIxdFLtbgMFNjTqAVs5LQL8sNOo7YRqB8zOqoWiXtzZjgFbOI8CNwK5ZLuJs4DStHO2Vk7VG3XLt\nM5ZV9Hv/kV0OrAZOxFx1tCUCvNDOa65t60npsQuRAcu1zwCe18rZUOi6iI7J64GfDPx1/MfPH1DW\n2HBUWbzxPFoJHGa59ghgoFbOq23kOcRbtNUiadhFl2a59qnAHpj5/dOzMdXTcu0g8Ha2Fz5Zrn0B\nsCbZXaK6Gi8I2FTgkVSDgFmufSZQopXTXm86Y17gsIs3lFas+uPQQ9Zu6FYZ1cr5ZzbLkJunoqs7\nGxM8bQgmKmPKMxC8G7SlQLlWztuAwiwJz/aK1p9jtjeUhr1l3YDxwEpSDwJ2mpc+5w17MBxdUFtT\nrWP4Pmjw+Zd1b9z+EiANuxBZ1BPogQnele758Ecvj90s1+6hlXNQtirXTE/vn2iZD3PllfKqaq2c\nvN4nuXv30eVAb7X4lQ3dYw1Z/5vKzVPR1V2GCSq1Dkh3GOYc4EzgMK2cWLYq1oL/A65o91VdVxxY\nA2wsdEXao5WzGBjV4POftKm0+0eTph+d0Y385mSMXXR53lCKAq7LVjgFy7VPA0ZjrgSukCBgyfP+\nHtcA24H7tHLmWa5diZktshbYBlRo5Uxsls7npfu7Vs67aZR7ECaevh/zA/GGVs4fM3ozSZg0/ejq\nkljsRGvLuuFAKBiOZhw4TIZiRJfnhVOtyXK2uwFVmNWDvQBp2JM3ABOgbTvwjHeswju2HLO6dIfm\niby1BNMzKHdn4AeYhUHLyVPPf/a0F+dFQoG1wKPA8ZFQ4IVgOJrRTkzSYxeik7BcuzvQ2FWCtOUz\nqJfl2mWAL4WVyKnm30Mrp91wB5FQ4Is4zN1QVnldTe28tPdQlTF2ITqP54D7Cl2JfPB+xFZYrv2r\nPBX5F+CRXGRsufYpwDpvlXJ7AhtKKwZgdm9KmzTsQnQeDnBPoSuRD95y+YnAP/JU5G2Y6a65MA+4\nChPLpk3BcHQZPt9vSmONv4uEAs9GQoF+6RQoQzFCCNHBREKBA4DZa8t6PNXo9z9y/fRX2wsc9i3S\nsAshRAd07bRRPYCVxONTy+Kx39bUzkt68ZwMxQghRAd0/fRXNwM7lcVjJwN/TiWt9NiFEKIDq62p\nPrCisf6o7rGG84HDWwoc1pw07EIIkQFvBs+1wF1tRVxMMU8Ls1hqulbO1kgoMBK4GFgN3NHePHcZ\nihFCFA3LtQ/ywuTmUz/MBh17pZPYcu1+lmsHmh0egWnI+4MJHAZMAy6KwTFzplQNaitPWXkqhCgK\nlmuXY6YW2pj4P3mhlbOCFlbCpiCE2Y6vb0KeL2BW4H4tGI4uAwbMmVL1HnAMcEFrGUqPXQhRFLRy\ntgLVwN2FrkuKwpjNq5N1+hZ/2SdtvUDG2IUQoshIj10IIYqMNOxCCFFkpGEXQogiIw27EEIUGWnY\nhRCiyEjDLoQQReb/AYaRlNzbQROHAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11816fc18>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Skip a bunch of very large negative numbers... ?\n",
    "lca.technosphere_matrix[lca.technosphere_matrix < 0] = 0\n",
    "SparseMatrixGrapher(lca.technosphere_matrix).magnitude_graph(width=5, height=5)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
