From 6ed2f7019c23935556277591ce0647c96813dd98 Mon Sep 17 00:00:00 2001
From: HarshaRani <ranishashi@gmail.com>
Date: Fri, 14 Apr 2017 18:48:02 +0530
Subject: [PATCH] Squashed 'moose-examples/' changes from 7318878..69062d9

69062d9 For crossComptSimpleReac a temp fix so that segfault doesn't occur, rest cleanup
729f216 deleted unwanted files and added new files
045aa11 Fixed assert by Upi
2b16c59 Deleted temp files.
3881f8a khali khali
97599aa Fixed docstring on example.

git-subtree-dir: moose-examples
git-subtree-split: 69062d9340a032a32f316eed69f914e486c19171
---
 docs/source/install/index.rst~            | 207 -----
 docs/source/install/moose_quickstart.rst~ |   0
 genesis/Kholodenko_tosbml.xml             | 902 ++++++++++++++++++++++
 snippets/RandSpikeStats.py                |   2 -
 snippets/analogStimTable.py               |   1 +
 snippets/analogStimTable.py~              |  95 ---
 snippets/crossComptNeuroMesh.py.png       | Bin 0 -> 43382 bytes
 snippets/crossComptSimpleReac.py          | 168 ++--
 snippets/cspaceSteadyState.py             | 128 +--
 snippets/diffSpinyNeuron.py               |   2 -
 snippets/funcInputToPools.py              |  35 +-
 snippets/function.py~                     | 200 -----
 snippets/intfire.py                       |  22 +-
 snippets/loadKineticModel.py              |   2 +-
 snippets/loadSbmlmodel.py                 |   2 +-
 snippets/reacDiffBranchingNeuron.py       |   9 +
 snippets/scaleVolumes.py                  |   6 +
 snippets/vclamp.py~                       | 137 ----
 18 files changed, 1095 insertions(+), 823 deletions(-)
 delete mode 100644 docs/source/install/index.rst~
 delete mode 100644 docs/source/install/moose_quickstart.rst~
 create mode 100644 genesis/Kholodenko_tosbml.xml
 delete mode 100644 snippets/analogStimTable.py~
 create mode 100644 snippets/crossComptNeuroMesh.py.png
 delete mode 100644 snippets/function.py~
 delete mode 100644 snippets/vclamp.py~

diff --git a/docs/source/install/index.rst~ b/docs/source/install/index.rst~
deleted file mode 100644
index 5eb7a17d..00000000
--- a/docs/source/install/index.rst~
+++ /dev/null
@@ -1,207 +0,0 @@
-Installation
-============
-
-Use pre-built packages
-----------------------
-
-Linux
-^^^^^
-
-We recommend that you use our repositories hosted at `Open Build Service
-<http://build.opensuse.org>`_.  We have packages for the following distributions
-
-- Debian 7.0, 8.0
-- Ubuntu 12.04, 14.04, 15.04, 15.10, 16.04 
-- CentOS 6, 7 
-- Fedora 20, 21, 22, 23
-- OpenSUSE 13.1, 13.2, Factory ARM, Leap 42.1, Tumbleweed
-- SLE 12, 12 SP1
-- RHEL 7
-- Scientific Linux 7
-  
-Visit `this page
-<https://software.opensuse.org/download.html?project=home:moose&package=moose>`_
-pick you distribution and follow instructions.
-
-.. note:: 
-    ``moogli`` (tool to visualize network activity) is not available for CentOS-6. 
-
-.. raw:: html
-    <iframe
-    src="http://software.opensuse.org/download/package.iframe?project=moose&package=moose"></iframe>
-
-.. todo:: Packages for gentoo, Arch Linux
-
-
-Mac OSX
-^^^^^^
-
-Download the ``dmg`` file from `here <https://github.com/BhallaLab/moose/releases/download/ghevar_3.0.2/Moose_3.0.2_OSX.dmg>`_.
-
-Alternatively, you can use ``homebrew`` to install ``moose``
-::
-    $ brew install homebrew/science/moose
-
-
-Windows/Cygwin
-^^^^^^^^^^^^^^
-
-Building MOOSE 
---------------
-
-In case your distribution is not listed on `our repository page
-<https://software.opensuse.org/download.html?project=home:moose&package=moose>`_
-, or if you want to build the lastest development code, read on.
-
-First, you need to get the source code. You can use ``git`` (clone the 
-repository) or download snapshot of github repo by clicking on `this link
-<https://github.com/BhallaLab/moose/archive/master.zip>`_.::
-    $ git clone https://github.com/BhallaLab/moose
-
-Or,
-::
-    $ wget https://github.com/BhallaLab/moose/archive/master.zip
-    $ unzip master.zip
-
-If you don't want lasest snapshot of ``MOOSE``, you can download other released
-versions from here `https://github.com/BhallaLab/moose/releases`.
-
-Install dependencies
-~~~~~~~~~~~~~~~~~~~
-
-Next, you need to install required dependencies. Depending on your OS, names of 
-following packages may vary.
-
-- cmake (version 2.8 or higher)
-- gsl-1.16 or higher `download <ftp://ftp.gnu.org/gnu/gsl/>`_.
-- libhdf5 development package e.g. `libhdf5-serial-dev` or `libhdf5-devel`
-- python development package e.g. `python-dev` or `python-devel`
-- numpy e.g. `python-numpy` or `numpy`
-
-Most of the dependencies can be installed using package manager.
-
-On ``Debian/Ubuntu`` 
-::
-    $ sudo apt-get install libhdf5-dev cmake libgsl0-dev libpython-dev python-numpy 
-
-.. note::
-    Ubuntu 12.04 does not have required version of ``gsl`` (required 1.16 or
-    higher, available 1.15). On Ubuntu 16.04, package name is ``libgsl-dev``. 
-
-On ``CentOS/Fedora/RHEL/Scientific Linux``  
-::
-    $ sudo yum install hdf5-devel cmake libgsl-dev python-devel python-numpy
-
-On ``OpenSUSE``  
-::
-    $ sudo zypper install hdf5-devel cmake libgsl-dev python-devel python-numpy 
-
-Now use `cmake` to build moose
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-.. codeblock:: bash
-    $ cd /to/moose/source/code
-    $ mkdir _build
-    $ cd _build 
-    $ cmake  ..
-    $ make 
-    $ ctest --output-on-failure  # optional
-
-This will build pyMOOSE (MOOSE's python extention), `ctest` will run few tests to
-check if build process was successful.
-
-.. note::
-    To install MOOSE into non-standard directory, pass additional argument
-    `-DCMAKE_INSTALL_PREFIX=path/to/install/dir` to cmake 
-    ::
-        $ cmake -DCMAKE_INSTALL_PREFIC=$HOME/.local .. 
-
-    To use different version of python 
-    ::
-        $ cmake -DPYTHON_EXECUTABLE=/opt/python3/bin/python3 ..
-
-After that installation is pretty easy 
-::
-    $ sudo make install
-
-If everything went fine, you should be able to import moose in python shell.
-
-.. code-block:: python
-    import moose
-
-
-Graphical User Interface (GUI)
-------------------------------
-
-You can get the source of ``moose-gui`` from `here
-<https://github.com/BhallaLab/moose-gui>`_. You can download it either by
-clicking on `this link <https://github.com/BhallaLab/moose-gui/archive/master.zip>`_ 
-or by using ``git`` ::
-    $ git clone https://github.com/BhallaLab/moose-gui
-
-To be able to launch ``moose-gui``, you need to install some more packages
-
-- matplotlib 
-- python-qt4
-
-On ``Ubuntu/Debian``, these can be installed with
-::
-    $ sudo apt-get install python-matplotlib python-qt4
-
-On ``CentOS/Fedora/RHEL``
-::
-    $ sudo yum install python-matplotlib python-qt4 
-
-Now you can fire up the GUI
-::
-    $ cd /to/moose-gui
-    $ python mgui.py 
-
-.. note:: 
-    If you have installed ``moose`` package, then GUI is launched by
-    running following commnad::
-        $ moose
-
-Building moogli 
----------------
-
-``moogli`` is subproject of ``MOOSE`` for visualizing models. More details can
-be found `here <http://moose.ncbs.res.in/moogli>`_.
-
-`Moogli` is part of `moose` package. Building moogli can be tricky because of 
-multiple depednecies it has.
-
-
-To get the latest source code of ``moogli``, click on `this link <https://github.com/BhallaLab/moogli/archive/master.zip>`_.
-
-Moogli depends on ``OpenSceneGraph`` (version 3.2.0 or higher) which may not 
-be easily available for your operating system.
-For this reason, we distribute required ``OpenSceneGraph`` with ``moogli``
-source code.
-
-Depending on distribution of your operating system, you would need following
-packages to be installed.
-
-On ``Ubuntu/Debian``
-::
-    $ sudo apt-get install python-qt4-dev python-qt4-gl python-sip-dev libqt4-dev 
-
-On ``Fedora/CentOS/RHEL``
-::
-    $ sudo yum install sip-devel PyQt4-devel qt4-devel libjpeg-devel PyQt4 
-
-On ``openSUSE``
-::
-    $ sudo zypper install python-sip python-qt4-devel libqt4-devel python-qt4
-
-After this, building and installing ``moogli`` should be as simple as
-::
-    $ cd /path/to/moogli
-    $ mkdir _build
-    $ cd _build
-    $ cmake ..
-    $ make 
-    $ sudo make install
-
-If you run into troubles, please report it on our `github repository
-<https://github.com/BhallaLab/moose/issues>`_.
diff --git a/docs/source/install/moose_quickstart.rst~ b/docs/source/install/moose_quickstart.rst~
deleted file mode 100644
index e69de29b..00000000
diff --git a/genesis/Kholodenko_tosbml.xml b/genesis/Kholodenko_tosbml.xml
new file mode 100644
index 00000000..01fff65d
--- /dev/null
+++ b/genesis/Kholodenko_tosbml.xml
@@ -0,0 +1,902 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml xmlns:moose="http://www.moose.ncbs.res.in" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:addedPrefix="http://www.sbml.org/sbml/level3/version1" level="3" version="1">
+  <model id="Kholodenko_tosbml" substanceUnits="substance" timeUnits="second" extentUnits="substance">
+    <notes>
+      <body xmlns="http://www.w3.org/1999/xhtml">
+ 	 	This is the oscillatory MAPK model from Kholodenko 2000 Eur J. Biochem 267:1583-1588 The original model is formulated in terms of idealized Michaelis-Menten enzymes and the enzyme-substrate complex concentrations are therefore assumed negligible. The current implementation of the model uses explicit enzyme reactions involving substrates and is therefore an approximation to the Kholodenko model. The approximation is greatly improved if the enzyme is flagged as Available which is an option in Kinetikit. This flag means that the enzyme protein concentration is not reduced even when it is involved in a complex. However, the substrate protein continues to participate in enzyme-substrate complexes and its concentration is therefore affected. Overall, this model works almost the same as the Kholodenko model but the peak MAPK-PP amplitudes are a little reduced and the period of oscillations is about 10% longer. If the enzymes are not flagged as Available then the oscillations commence only when the Km for enzyme 1 is set to 0.1 uM.
+	 </body>
+    </notes>
+    <annotation>
+      <moose:ModelAnnotation>
+        <moose:runTime> 6000.0 </moose:runTime>
+        <moose:solver/>
+        <moose:simdt>0.005 </moose:simdt>
+        <moose:plotdt> 10.0 </moose:plotdt>
+        <moose:plots> /kinetics/Ras_dash_MKKKK; /kinetics/MKKK_dash_P; /kinetics/MKK_dash_PP; /kinetics/MAPK_dash_PP</moose:plots>
+      </moose:ModelAnnotation>
+    </annotation>
+    <listOfUnitDefinitions>
+      <unitDefinition id="volume">
+        <listOfUnits>
+          <unit kind="litre" exponent="1" scale="0" multiplier="1"/>
+        </listOfUnits>
+      </unitDefinition>
+      <unitDefinition id="substance">
+        <listOfUnits>
+          <unit kind="mole" exponent="1" scale="-3" multiplier="1"/>
+        </listOfUnits>
+      </unitDefinition>
+      <unitDefinition id="litre_per_mmole_per_second">
+        <listOfUnits>
+          <unit kind="litre" exponent="1" scale="0" multiplier="1"/>
+          <unit kind="mole" exponent="-1" scale="-3" multiplier="1"/>
+          <unit kind="second" exponent="-1" scale="0" multiplier="1"/>
+        </listOfUnits>
+      </unitDefinition>
+      <unitDefinition id="per_second">
+        <listOfUnits>
+          <unit kind="second" exponent="-1" scale="0" multiplier="1"/>
+        </listOfUnits>
+      </unitDefinition>
+    </listOfUnitDefinitions>
+    <listOfCompartments>
+      <compartment id="kinetics_481_0_" name="kinetics" spatialDimensions="3" size="1.66666666666667e-18" units="volume" constant="true"/>
+    </listOfCompartments>
+    <listOfSpecies>
+      <species id="MAPK_489_0_" name="MAPK" compartment="kinetics_481_0_" initialConcentration="0.0003" substanceUnits="substance" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false">
+        <notes>
+          <body xmlns="http://www.w3.org/1999/xhtml">
+ 	 	The total concn. of MAPK is 300nM from Kholodenko, 2000.
+	 </body>
+        </notes>
+        <annotation>
+          <moose:ModelAnnotation>
+            <moose:Group>MAPK</moose:Group>
+            <moose:xCord>-8.0</moose:xCord>
+            <moose:yCord>-7.0</moose:yCord>
+            <moose:bgColor>35</moose:bgColor>
+            <moose:textColor>yellow</moose:textColor>
+          </moose:ModelAnnotation>
+        </annotation>
+      </species>
+      <species id="MKKK_491_0_" name="MKKK" compartment="kinetics_481_0_" initialConcentration="0.0001" substanceUnits="substance" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false">
+        <notes>
+          <body xmlns="http://www.w3.org/1999/xhtml">
+ 	 	The total concn. of MKKK is 100nM from Kholodenko, 2000
+	 </body>
+        </notes>
+        <annotation>
+          <moose:ModelAnnotation>
+            <moose:Group>MAPK</moose:Group>
+            <moose:xCord>-8.0</moose:xCord>
+            <moose:yCord>5.0</moose:yCord>
+            <moose:bgColor>16</moose:bgColor>
+            <moose:textColor>yellow</moose:textColor>
+          </moose:ModelAnnotation>
+        </annotation>
+      </species>
+      <species id="MKK_493_0_" name="MKK" compartment="kinetics_481_0_" initialConcentration="0.0003" substanceUnits="substance" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false">
+        <notes>
+          <body xmlns="http://www.w3.org/1999/xhtml">
+ 	 	The total concn. of MKK is 300nM from Kholodenko,2000
+	 </body>
+        </notes>
+        <annotation>
+          <moose:ModelAnnotation>
+            <moose:Group>MAPK</moose:Group>
+            <moose:xCord>-8.0</moose:xCord>
+            <moose:yCord>-1.0</moose:yCord>
+            <moose:bgColor>60</moose:bgColor>
+            <moose:textColor>yellow</moose:textColor>
+          </moose:ModelAnnotation>
+        </annotation>
+      </species>
+      <species id="int1_495_0_" name="int1" compartment="kinetics_481_0_" initialConcentration="1e-06" substanceUnits="substance" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false">
+        <notes>
+          <body xmlns="http://www.w3.org/1999/xhtml">
+ 	 	This is the intermediate enzyme which catalyses the dephosphorylation of MKKK-P to MKKK. The concentration is set to 1 nM based on from Kholodenko, 2000
+	 </body>
+        </notes>
+        <annotation>
+          <moose:ModelAnnotation>
+            <moose:Group>MAPK</moose:Group>
+            <moose:xCord>-4.0</moose:xCord>
+            <moose:yCord>4.0</moose:yCord>
+            <moose:bgColor>30</moose:bgColor>
+            <moose:textColor>yellow</moose:textColor>
+          </moose:ModelAnnotation>
+        </annotation>
+      </species>
+      <species id="MKKK_dash_P_499_0_" name="MKKK_dash_P" compartment="kinetics_481_0_" initialConcentration="0" substanceUnits="substance" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false">
+        <notes>
+          <body xmlns="http://www.w3.org/1999/xhtml">
+ 	 	This is the phosphorylated form of MKKK which converts MKK to MKK-P and then to MKK-PP from Kholodenko, 2000.
+	 </body>
+        </notes>
+        <annotation>
+          <moose:ModelAnnotation>
+            <moose:Group>MAPK</moose:Group>
+            <moose:xCord>0.0</moose:xCord>
+            <moose:yCord>5.0</moose:yCord>
+            <moose:bgColor>51</moose:bgColor>
+            <moose:textColor>yellow</moose:textColor>
+          </moose:ModelAnnotation>
+        </annotation>
+      </species>
+      <species id="int3_505_0_" name="int3" compartment="kinetics_481_0_" initialConcentration="1e-06" substanceUnits="substance" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false">
+        <notes>
+          <body xmlns="http://www.w3.org/1999/xhtml">
+ 	 	This intermediate enzyme catalyses the dephosphorylation of MKK-P to MKK. The concentration is 1nM from Kholodenko, 2000
+	 </body>
+        </notes>
+        <annotation>
+          <moose:ModelAnnotation>
+            <moose:Group>MAPK</moose:Group>
+            <moose:xCord>-4.0</moose:xCord>
+            <moose:yCord>-2.0</moose:yCord>
+            <moose:bgColor>blue</moose:bgColor>
+            <moose:textColor>yellow</moose:textColor>
+          </moose:ModelAnnotation>
+        </annotation>
+      </species>
+      <species id="int5_509_0_" name="int5" compartment="kinetics_481_0_" initialConcentration="1e-06" substanceUnits="substance" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false">
+        <notes>
+          <body xmlns="http://www.w3.org/1999/xhtml">
+ 	 	This catalyses the conversion of MAPK-P to MAPK. The concenration is 1nM. from Kholodenko, 2000
+	 </body>
+        </notes>
+        <annotation>
+          <moose:ModelAnnotation>
+            <moose:Group>MAPK</moose:Group>
+            <moose:xCord>-4.0</moose:xCord>
+            <moose:yCord>-8.0</moose:yCord>
+            <moose:bgColor>1</moose:bgColor>
+            <moose:textColor>yellow</moose:textColor>
+          </moose:ModelAnnotation>
+        </annotation>
+      </species>
+      <species id="MKK_dash_P_513_0_" name="MKK_dash_P" compartment="kinetics_481_0_" initialConcentration="0" substanceUnits="substance" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false">
+        <notes>
+          <body xmlns="http://www.w3.org/1999/xhtml">
+ 	 	This is the single phoshorylated form of MKK. from Kholodenko, 2000.
+	 </body>
+        </notes>
+        <annotation>
+          <moose:ModelAnnotation>
+            <moose:Group>MAPK</moose:Group>
+            <moose:xCord>0.0</moose:xCord>
+            <moose:yCord>-1.0</moose:yCord>
+            <moose:bgColor>5</moose:bgColor>
+            <moose:textColor>yellow</moose:textColor>
+          </moose:ModelAnnotation>
+        </annotation>
+      </species>
+      <species id="MAPK_dash_P_515_0_" name="MAPK_dash_P" compartment="kinetics_481_0_" initialConcentration="0" substanceUnits="substance" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false">
+        <notes>
+          <body xmlns="http://www.w3.org/1999/xhtml">
+ 	 	This is the single phopshorylated form of MAPK from Kholodenko, 2000.
+	 </body>
+        </notes>
+        <annotation>
+          <moose:ModelAnnotation>
+            <moose:Group>MAPK</moose:Group>
+            <moose:xCord>0.0</moose:xCord>
+            <moose:yCord>-7.0</moose:yCord>
+            <moose:bgColor>55</moose:bgColor>
+            <moose:textColor>yellow</moose:textColor>
+          </moose:ModelAnnotation>
+        </annotation>
+      </species>
+      <species id="int2_517_0_" name="int2" compartment="kinetics_481_0_" initialConcentration="1e-06" substanceUnits="substance" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false">
+        <notes>
+          <body xmlns="http://www.w3.org/1999/xhtml">
+ 	 	This intermediate enzyme which catalyses the dephosphorylation of MKK-PP to MKK-P. The concentration is 1nM. from Kholodenko, 2000
+	 </body>
+        </notes>
+        <annotation>
+          <moose:ModelAnnotation>
+            <moose:Group>MAPK</moose:Group>
+            <moose:xCord>4.0</moose:xCord>
+            <moose:yCord>-2.0</moose:yCord>
+            <moose:bgColor>2</moose:bgColor>
+            <moose:textColor>yellow</moose:textColor>
+          </moose:ModelAnnotation>
+        </annotation>
+      </species>
+      <species id="int4_521_0_" name="int4" compartment="kinetics_481_0_" initialConcentration="1e-06" substanceUnits="substance" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false">
+        <notes>
+          <body xmlns="http://www.w3.org/1999/xhtml">
+ 	 	This intermediate enzyme catalyses the dephosphorylation of MAPK-PP to MAPK-P. The concentration is 1nM. from Kholodenko, 2000
+	 </body>
+        </notes>
+        <annotation>
+          <moose:ModelAnnotation>
+            <moose:Group>MAPK</moose:Group>
+            <moose:xCord>4.0</moose:xCord>
+            <moose:yCord>-8.0</moose:yCord>
+            <moose:bgColor>17</moose:bgColor>
+            <moose:textColor>yellow</moose:textColor>
+          </moose:ModelAnnotation>
+        </annotation>
+      </species>
+      <species id="Ras_dash_MKKKK_525_0_" name="Ras_dash_MKKKK" compartment="kinetics_481_0_" initialConcentration="1e-06" substanceUnits="substance" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false">
+        <notes>
+          <body xmlns="http://www.w3.org/1999/xhtml">
+ 	 	The concn. of Ras-MKKKK* is set to 1 nM implicitly from Kholodenko, 2000
+	 </body>
+        </notes>
+        <annotation>
+          <moose:ModelAnnotation>
+            <moose:Group>MAPK</moose:Group>
+            <moose:xCord>6.0</moose:xCord>
+            <moose:yCord>8.0</moose:yCord>
+            <moose:bgColor>11</moose:bgColor>
+            <moose:textColor>yellow</moose:textColor>
+          </moose:ModelAnnotation>
+        </annotation>
+      </species>
+      <species id="inactiveRas_dash_MKKK_529_0_" name="inactiveRas_dash_MKKK" compartment="kinetics_481_0_" initialConcentration="0" substanceUnits="substance" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false">
+        <notes>
+          <body xmlns="http://www.w3.org/1999/xhtml">
+ 	 	This is the inactive form of Ras-MKKK. Based on the reaction scheme from Kholodenko 2000, this is equivalent to a binding of the MAPK-PP to the Ras. The amount of Ras in the model is small enough that negligible amounts of MAPK are involved in this reaction. So it is a fair approximation to the negative feedback mechanism from Kholodenko, 2000.
+	 </body>
+        </notes>
+        <annotation>
+          <moose:ModelAnnotation>
+            <moose:Group>MAPK</moose:Group>
+            <moose:xCord>11.0</moose:xCord>
+            <moose:yCord>8.0</moose:yCord>
+            <moose:bgColor>30</moose:bgColor>
+            <moose:textColor>yellow</moose:textColor>
+          </moose:ModelAnnotation>
+        </annotation>
+      </species>
+      <species id="MKK_dash_PP_533_0_" name="MKK_dash_PP" compartment="kinetics_481_0_" initialConcentration="0" substanceUnits="substance" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false">
+        <notes>
+          <body xmlns="http://www.w3.org/1999/xhtml">
+ 	 	This is the double phosphorylated and active form of MKK from Kholodenko, 2000
+	 </body>
+        </notes>
+        <annotation>
+          <moose:ModelAnnotation>
+            <moose:Group>MAPK</moose:Group>
+            <moose:xCord>8.0</moose:xCord>
+            <moose:yCord>-1.0</moose:yCord>
+            <moose:bgColor>0</moose:bgColor>
+            <moose:textColor>yellow</moose:textColor>
+          </moose:ModelAnnotation>
+        </annotation>
+      </species>
+      <species id="MAPK_dash_PP_539_0_" name="MAPK_dash_PP" compartment="kinetics_481_0_" initialConcentration="0" substanceUnits="substance" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false">
+        <notes>
+          <body xmlns="http://www.w3.org/1999/xhtml">
+ 	 	This is the double phosphorylated and active form of MAPK. from Kholodenko, 2000.
+	 </body>
+        </notes>
+        <annotation>
+          <moose:ModelAnnotation>
+            <moose:Group>MAPK</moose:Group>
+            <moose:xCord>8.0</moose:xCord>
+            <moose:yCord>-7.0</moose:yCord>
+            <moose:bgColor>58</moose:bgColor>
+            <moose:textColor>yellow</moose:textColor>
+          </moose:ModelAnnotation>
+        </annotation>
+      </species>
+    </listOfSpecies>
+    <listOfReactions>
+      <reaction id="Neg_feedback_531_0_" name="Neg_feedback" reversible="true" fast="false">
+        <notes>
+          <body xmlns="http://www.w3.org/1999/xhtml">
+ 	 	From Kholodenko, 2000 Eur J Biochem 267 the Kd is 9 nM. We use a rather fast Kf of 1/sec/uM so that equilibrium is maintained.
+	 </body>
+        </notes>
+        <annotation>
+          <moose:ModelAnnotation>
+            <moose:Group>MAPK</moose:Group>
+            <moose:xCord>11.0</moose:xCord>
+            <moose:yCord>2.0</moose:yCord>
+            <moose:bgColor>white</moose:bgColor>
+            <moose:textColor>yellow</moose:textColor>
+          </moose:ModelAnnotation>
+        </annotation>
+        <listOfReactants>
+          <speciesReference species="MAPK_dash_PP_539_0_" stoichiometry="1" constant="false"/>
+          <speciesReference species="Ras_dash_MKKKK_525_0_" stoichiometry="1" constant="false"/>
+        </listOfReactants>
+        <listOfProducts>
+          <speciesReference species="inactiveRas_dash_MKKK_529_0_" stoichiometry="1" constant="false"/>
+        </listOfProducts>
+        <kineticLaw>
+          <notes>
+            <body xmlns="http://www.w3.org/1999/xhtml">
+		kinetics_481_0_ * Neg_feedback_531_0__Kf * MAPK_dash_PP_539_0_*Ras_dash_MKKKK_525_0_-kinetics_481_0_ * Neg_feedback_531_0__Kb * inactiveRas_dash_MKKK_529_0_
+ 	 </body>
+          </notes>
+          <math xmlns="http://www.w3.org/1998/Math/MathML">
+            <apply>
+              <minus/>
+              <apply>
+                <times/>
+                <ci> kinetics_481_0_ </ci>
+                <ci> Neg_feedback_531_0__Kf </ci>
+                <ci> MAPK_dash_PP_539_0_ </ci>
+                <ci> Ras_dash_MKKKK_525_0_ </ci>
+              </apply>
+              <apply>
+                <times/>
+                <ci> kinetics_481_0_ </ci>
+                <ci> Neg_feedback_531_0__Kb </ci>
+                <ci> inactiveRas_dash_MKKK_529_0_ </ci>
+              </apply>
+            </apply>
+          </math>
+          <listOfLocalParameters>
+            <localParameter id="Neg_feedback_531_0__Kf" value="1000" units="litre_per_mmole_per_second"/>
+            <localParameter id="Neg_feedback_531_0__Kb" value="0.009" units="per_second"/>
+          </listOfLocalParameters>
+        </kineticLaw>
+      </reaction>
+      <reaction id="_2_497_0_" name="2" reversible="true" fast="false">
+        <notes>
+          <body xmlns="http://www.w3.org/1999/xhtml">
+ 	 	Km is 8nM and Vmax is 0.25nM.s-1 from Kholodenko, 2000.
+	 </body>
+        </notes>
+        <annotation>
+          <moose:EnzymaticReaction>
+            <moose:Group>MAPK</moose:Group>
+            <moose:xCord>-4.0</moose:xCord>
+            <moose:yCord>5.0</moose:yCord>
+            <moose:bgColor>red</moose:bgColor>
+            <moose:textColor>30</moose:textColor>
+          </moose:EnzymaticReaction>
+        </annotation>
+        <listOfReactants>
+          <speciesReference species="MKKK_dash_P_499_0_" stoichiometry="1" constant="false"/>
+        </listOfReactants>
+        <listOfProducts>
+          <speciesReference species="MKKK_491_0_" stoichiometry="1" constant="false"/>
+        </listOfProducts>
+        <listOfModifiers>
+          <modifierSpeciesReference species="int1_495_0_"/>
+        </listOfModifiers>
+        <kineticLaw>
+          <notes>
+            <body xmlns="http://www.w3.org/1999/xhtml">
+		kcat *MKKK_dash_P_499_0_*int1_495_0_/(kinetics_481_0_ * (Km+MKKK_dash_P_499_0_))
+ 	 </body>
+          </notes>
+          <math xmlns="http://www.w3.org/1998/Math/MathML">
+            <apply>
+              <divide/>
+              <apply>
+                <times/>
+                <ci> kcat </ci>
+                <ci> MKKK_dash_P_499_0_ </ci>
+                <ci> int1_495_0_ </ci>
+              </apply>
+              <apply>
+                <times/>
+                <ci> kinetics_481_0_ </ci>
+                <apply>
+                  <plus/>
+                  <ci> Km </ci>
+                  <ci> MKKK_dash_P_499_0_ </ci>
+                </apply>
+              </apply>
+            </apply>
+          </math>
+          <listOfLocalParameters>
+            <localParameter id="Km" value="8e-06" units="substance"/>
+            <localParameter id="kcat" value="0.25" units="per_second"/>
+          </listOfLocalParameters>
+        </kineticLaw>
+      </reaction>
+      <reaction id="_3_501_0_" name="3" reversible="true" fast="false">
+        <notes>
+          <body xmlns="http://www.w3.org/1999/xhtml">
+ 	 	Km is 15 nM and Vmax is 0.025s-1 from Kholodenko, 2000
+	 </body>
+        </notes>
+        <annotation>
+          <moose:EnzymaticReaction>
+            <moose:Group>MAPK</moose:Group>
+            <moose:xCord>-4.0</moose:xCord>
+            <moose:yCord>2.0</moose:yCord>
+            <moose:bgColor>red</moose:bgColor>
+            <moose:textColor>51</moose:textColor>
+          </moose:EnzymaticReaction>
+        </annotation>
+        <listOfReactants>
+          <speciesReference species="MKK_493_0_" stoichiometry="1" constant="false"/>
+        </listOfReactants>
+        <listOfProducts>
+          <speciesReference species="MKK_dash_P_513_0_" stoichiometry="1" constant="false"/>
+        </listOfProducts>
+        <listOfModifiers>
+          <modifierSpeciesReference species="MKKK_dash_P_499_0_"/>
+        </listOfModifiers>
+        <kineticLaw>
+          <notes>
+            <body xmlns="http://www.w3.org/1999/xhtml">
+		kcat *MKK_493_0_*MKKK_dash_P_499_0_/(kinetics_481_0_ * (Km+MKK_493_0_))
+ 	 </body>
+          </notes>
+          <math xmlns="http://www.w3.org/1998/Math/MathML">
+            <apply>
+              <divide/>
+              <apply>
+                <times/>
+                <ci> kcat </ci>
+                <ci> MKK_493_0_ </ci>
+                <ci> MKKK_dash_P_499_0_ </ci>
+              </apply>
+              <apply>
+                <times/>
+                <ci> kinetics_481_0_ </ci>
+                <apply>
+                  <plus/>
+                  <ci> Km </ci>
+                  <ci> MKK_493_0_ </ci>
+                </apply>
+              </apply>
+            </apply>
+          </math>
+          <listOfLocalParameters>
+            <localParameter id="Km" value="1.500006000024e-05" units="substance"/>
+            <localParameter id="kcat" value="0.025" units="per_second"/>
+          </listOfLocalParameters>
+        </kineticLaw>
+      </reaction>
+      <reaction id="_4_503_0_" name="4" reversible="true" fast="false">
+        <notes>
+          <body xmlns="http://www.w3.org/1999/xhtml">
+ 	 	Km is 15nM and Vmax is 0.025s-1 from Kholodenko, 2000.
+	 </body>
+        </notes>
+        <annotation>
+          <moose:EnzymaticReaction>
+            <moose:Group>MAPK</moose:Group>
+            <moose:xCord>4.0</moose:xCord>
+            <moose:yCord>2.0</moose:yCord>
+            <moose:bgColor>red</moose:bgColor>
+            <moose:textColor>51</moose:textColor>
+          </moose:EnzymaticReaction>
+        </annotation>
+        <listOfReactants>
+          <speciesReference species="MKK_dash_P_513_0_" stoichiometry="1" constant="false"/>
+        </listOfReactants>
+        <listOfProducts>
+          <speciesReference species="MKK_dash_PP_533_0_" stoichiometry="1" constant="false"/>
+        </listOfProducts>
+        <listOfModifiers>
+          <modifierSpeciesReference species="MKKK_dash_P_499_0_"/>
+        </listOfModifiers>
+        <kineticLaw>
+          <notes>
+            <body xmlns="http://www.w3.org/1999/xhtml">
+		kcat *MKK_dash_P_513_0_*MKKK_dash_P_499_0_/(kinetics_481_0_ * (Km+MKK_dash_P_513_0_))
+ 	 </body>
+          </notes>
+          <math xmlns="http://www.w3.org/1998/Math/MathML">
+            <apply>
+              <divide/>
+              <apply>
+                <times/>
+                <ci> kcat </ci>
+                <ci> MKK_dash_P_513_0_ </ci>
+                <ci> MKKK_dash_P_499_0_ </ci>
+              </apply>
+              <apply>
+                <times/>
+                <ci> kinetics_481_0_ </ci>
+                <apply>
+                  <plus/>
+                  <ci> Km </ci>
+                  <ci> MKK_dash_P_513_0_ </ci>
+                </apply>
+              </apply>
+            </apply>
+          </math>
+          <listOfLocalParameters>
+            <localParameter id="Km" value="1.500006000024e-05" units="substance"/>
+            <localParameter id="kcat" value="0.025" units="per_second"/>
+          </listOfLocalParameters>
+        </kineticLaw>
+      </reaction>
+      <reaction id="_6_507_0_" name="6" reversible="true" fast="false">
+        <notes>
+          <body xmlns="http://www.w3.org/1999/xhtml">
+ 	 	The Km is 15nM and the Vmax is 0.75nM.s-1 from Kholodenko 2000.
+	 </body>
+        </notes>
+        <annotation>
+          <moose:EnzymaticReaction>
+            <moose:Group>MAPK</moose:Group>
+            <moose:xCord>-4.0</moose:xCord>
+            <moose:yCord>-1.0</moose:yCord>
+            <moose:bgColor>red</moose:bgColor>
+            <moose:textColor>blue</moose:textColor>
+          </moose:EnzymaticReaction>
+        </annotation>
+        <listOfReactants>
+          <speciesReference species="MKK_dash_P_513_0_" stoichiometry="1" constant="false"/>
+        </listOfReactants>
+        <listOfProducts>
+          <speciesReference species="MKK_493_0_" stoichiometry="1" constant="false"/>
+        </listOfProducts>
+        <listOfModifiers>
+          <modifierSpeciesReference species="int3_505_0_"/>
+        </listOfModifiers>
+        <kineticLaw>
+          <notes>
+            <body xmlns="http://www.w3.org/1999/xhtml">
+		kcat *MKK_dash_P_513_0_*int3_505_0_/(kinetics_481_0_ * (Km+MKK_dash_P_513_0_))
+ 	 </body>
+          </notes>
+          <math xmlns="http://www.w3.org/1998/Math/MathML">
+            <apply>
+              <divide/>
+              <apply>
+                <times/>
+                <ci> kcat </ci>
+                <ci> MKK_dash_P_513_0_ </ci>
+                <ci> int3_505_0_ </ci>
+              </apply>
+              <apply>
+                <times/>
+                <ci> kinetics_481_0_ </ci>
+                <apply>
+                  <plus/>
+                  <ci> Km </ci>
+                  <ci> MKK_dash_P_513_0_ </ci>
+                </apply>
+              </apply>
+            </apply>
+          </math>
+          <listOfLocalParameters>
+            <localParameter id="Km" value="1.5e-05" units="substance"/>
+            <localParameter id="kcat" value="0.75" units="per_second"/>
+          </listOfLocalParameters>
+        </kineticLaw>
+      </reaction>
+      <reaction id="_10_511_0_" name="10" reversible="true" fast="false">
+        <notes>
+          <body xmlns="http://www.w3.org/1999/xhtml">
+ 	 	The Km is 15nM and Vmax is 0.5nM.s-1 from Kholodenko, 2000
+	 </body>
+        </notes>
+        <annotation>
+          <moose:EnzymaticReaction>
+            <moose:Group>MAPK</moose:Group>
+            <moose:xCord>-4.0</moose:xCord>
+            <moose:yCord>-7.0</moose:yCord>
+            <moose:bgColor>red</moose:bgColor>
+            <moose:textColor>1</moose:textColor>
+          </moose:EnzymaticReaction>
+        </annotation>
+        <listOfReactants>
+          <speciesReference species="MAPK_dash_P_515_0_" stoichiometry="1" constant="false"/>
+        </listOfReactants>
+        <listOfProducts>
+          <speciesReference species="MAPK_489_0_" stoichiometry="1" constant="false"/>
+        </listOfProducts>
+        <listOfModifiers>
+          <modifierSpeciesReference species="int5_509_0_"/>
+        </listOfModifiers>
+        <kineticLaw>
+          <notes>
+            <body xmlns="http://www.w3.org/1999/xhtml">
+		kcat *MAPK_dash_P_515_0_*int5_509_0_/(kinetics_481_0_ * (Km+MAPK_dash_P_515_0_))
+ 	 </body>
+          </notes>
+          <math xmlns="http://www.w3.org/1998/Math/MathML">
+            <apply>
+              <divide/>
+              <apply>
+                <times/>
+                <ci> kcat </ci>
+                <ci> MAPK_dash_P_515_0_ </ci>
+                <ci> int5_509_0_ </ci>
+              </apply>
+              <apply>
+                <times/>
+                <ci> kinetics_481_0_ </ci>
+                <apply>
+                  <plus/>
+                  <ci> Km </ci>
+                  <ci> MAPK_dash_P_515_0_ </ci>
+                </apply>
+              </apply>
+            </apply>
+          </math>
+          <listOfLocalParameters>
+            <localParameter id="Km" value="1.49997000059999e-05" units="substance"/>
+            <localParameter id="kcat" value="0.5" units="per_second"/>
+          </listOfLocalParameters>
+        </kineticLaw>
+      </reaction>
+      <reaction id="_5_519_0_" name="5" reversible="true" fast="false">
+        <notes>
+          <body xmlns="http://www.w3.org/1999/xhtml">
+ 	 	The Km is 15nM and Vmax is 0.75nM.s-1 from Kholodenko, 2000
+	 </body>
+        </notes>
+        <annotation>
+          <moose:EnzymaticReaction>
+            <moose:Group>MAPK</moose:Group>
+            <moose:xCord>4.0</moose:xCord>
+            <moose:yCord>-1.0</moose:yCord>
+            <moose:bgColor>red</moose:bgColor>
+            <moose:textColor>2</moose:textColor>
+          </moose:EnzymaticReaction>
+        </annotation>
+        <listOfReactants>
+          <speciesReference species="MKK_dash_PP_533_0_" stoichiometry="1" constant="false"/>
+        </listOfReactants>
+        <listOfProducts>
+          <speciesReference species="MKK_dash_P_513_0_" stoichiometry="1" constant="false"/>
+        </listOfProducts>
+        <listOfModifiers>
+          <modifierSpeciesReference species="int2_517_0_"/>
+        </listOfModifiers>
+        <kineticLaw>
+          <notes>
+            <body xmlns="http://www.w3.org/1999/xhtml">
+		kcat *MKK_dash_PP_533_0_*int2_517_0_/(kinetics_481_0_ * (Km+MKK_dash_PP_533_0_))
+ 	 </body>
+          </notes>
+          <math xmlns="http://www.w3.org/1998/Math/MathML">
+            <apply>
+              <divide/>
+              <apply>
+                <times/>
+                <ci> kcat </ci>
+                <ci> MKK_dash_PP_533_0_ </ci>
+                <ci> int2_517_0_ </ci>
+              </apply>
+              <apply>
+                <times/>
+                <ci> kinetics_481_0_ </ci>
+                <apply>
+                  <plus/>
+                  <ci> Km </ci>
+                  <ci> MKK_dash_PP_533_0_ </ci>
+                </apply>
+              </apply>
+            </apply>
+          </math>
+          <listOfLocalParameters>
+            <localParameter id="Km" value="1.5e-05" units="substance"/>
+            <localParameter id="kcat" value="0.75" units="per_second"/>
+          </listOfLocalParameters>
+        </kineticLaw>
+      </reaction>
+      <reaction id="_9_523_0_" name="9" reversible="true" fast="false">
+        <notes>
+          <body xmlns="http://www.w3.org/1999/xhtml">
+ 	 	The Km is 15nM and Vmax is 0.5nM.s-1 from Kholodenko, 2000
+	 </body>
+        </notes>
+        <annotation>
+          <moose:EnzymaticReaction>
+            <moose:Group>MAPK</moose:Group>
+            <moose:xCord>4.0</moose:xCord>
+            <moose:yCord>-7.0</moose:yCord>
+            <moose:bgColor>red</moose:bgColor>
+            <moose:textColor>17</moose:textColor>
+          </moose:EnzymaticReaction>
+        </annotation>
+        <listOfReactants>
+          <speciesReference species="MAPK_dash_PP_539_0_" stoichiometry="1" constant="false"/>
+        </listOfReactants>
+        <listOfProducts>
+          <speciesReference species="MAPK_dash_P_515_0_" stoichiometry="1" constant="false"/>
+        </listOfProducts>
+        <listOfModifiers>
+          <modifierSpeciesReference species="int4_521_0_"/>
+        </listOfModifiers>
+        <kineticLaw>
+          <notes>
+            <body xmlns="http://www.w3.org/1999/xhtml">
+		kcat *MAPK_dash_PP_539_0_*int4_521_0_/(kinetics_481_0_ * (Km+MAPK_dash_PP_539_0_))
+ 	 </body>
+          </notes>
+          <math xmlns="http://www.w3.org/1998/Math/MathML">
+            <apply>
+              <divide/>
+              <apply>
+                <times/>
+                <ci> kcat </ci>
+                <ci> MAPK_dash_PP_539_0_ </ci>
+                <ci> int4_521_0_ </ci>
+              </apply>
+              <apply>
+                <times/>
+                <ci> kinetics_481_0_ </ci>
+                <apply>
+                  <plus/>
+                  <ci> Km </ci>
+                  <ci> MAPK_dash_PP_539_0_ </ci>
+                </apply>
+              </apply>
+            </apply>
+          </math>
+          <listOfLocalParameters>
+            <localParameter id="Km" value="1.49997000059999e-05" units="substance"/>
+            <localParameter id="kcat" value="0.5" units="per_second"/>
+          </listOfLocalParameters>
+        </kineticLaw>
+      </reaction>
+      <reaction id="_1_527_0_" name="1" reversible="true" fast="false">
+        <notes>
+          <body xmlns="http://www.w3.org/1999/xhtml">
+ 	 	The Km is 10nM and Vmax is 2.5nM sec^-1. We assume that there is 1 nM of the Ras-MKKKK. From Kholodenko, 2000. If the enzymes are not flagged as Available, then this Km should be set to 0.1 to obtain oscillations.
+	 </body>
+        </notes>
+        <annotation>
+          <moose:EnzymaticReaction>
+            <moose:Group>MAPK</moose:Group>
+            <moose:xCord>-4.0</moose:xCord>
+            <moose:yCord>8.0</moose:yCord>
+            <moose:bgColor>red</moose:bgColor>
+            <moose:textColor>11</moose:textColor>
+          </moose:EnzymaticReaction>
+        </annotation>
+        <listOfReactants>
+          <speciesReference species="MKKK_491_0_" stoichiometry="1" constant="false"/>
+        </listOfReactants>
+        <listOfProducts>
+          <speciesReference species="MKKK_dash_P_499_0_" stoichiometry="1" constant="false"/>
+        </listOfProducts>
+        <listOfModifiers>
+          <modifierSpeciesReference species="Ras_dash_MKKKK_525_0_"/>
+        </listOfModifiers>
+        <kineticLaw>
+          <notes>
+            <body xmlns="http://www.w3.org/1999/xhtml">
+		kcat *MKKK_491_0_*Ras_dash_MKKKK_525_0_/(kinetics_481_0_ * (Km+MKKK_491_0_))
+ 	 </body>
+          </notes>
+          <math xmlns="http://www.w3.org/1998/Math/MathML">
+            <apply>
+              <divide/>
+              <apply>
+                <times/>
+                <ci> kcat </ci>
+                <ci> MKKK_491_0_ </ci>
+                <ci> Ras_dash_MKKKK_525_0_ </ci>
+              </apply>
+              <apply>
+                <times/>
+                <ci> kinetics_481_0_ </ci>
+                <apply>
+                  <plus/>
+                  <ci> Km </ci>
+                  <ci> MKKK_491_0_ </ci>
+                </apply>
+              </apply>
+            </apply>
+          </math>
+          <listOfLocalParameters>
+            <localParameter id="Km" value="1e-05" units="substance"/>
+            <localParameter id="kcat" value="2.5" units="per_second"/>
+          </listOfLocalParameters>
+        </kineticLaw>
+      </reaction>
+      <reaction id="_7_535_0_" name="7" reversible="true" fast="false">
+        <notes>
+          <body xmlns="http://www.w3.org/1999/xhtml">
+ 	 	The Km is 15nM which is 0.015uM Vmax is 0.025s-1 from Kholodenko, 2000.
+	 </body>
+        </notes>
+        <annotation>
+          <moose:EnzymaticReaction>
+            <moose:Group>MAPK</moose:Group>
+            <moose:xCord>-4.0</moose:xCord>
+            <moose:yCord>-4.0</moose:yCord>
+            <moose:bgColor>red</moose:bgColor>
+            <moose:textColor>0</moose:textColor>
+          </moose:EnzymaticReaction>
+        </annotation>
+        <listOfReactants>
+          <speciesReference species="MAPK_489_0_" stoichiometry="1" constant="false"/>
+        </listOfReactants>
+        <listOfProducts>
+          <speciesReference species="MAPK_dash_P_515_0_" stoichiometry="1" constant="false"/>
+        </listOfProducts>
+        <listOfModifiers>
+          <modifierSpeciesReference species="MKK_dash_PP_533_0_"/>
+        </listOfModifiers>
+        <kineticLaw>
+          <notes>
+            <body xmlns="http://www.w3.org/1999/xhtml">
+		kcat *MAPK_489_0_*MKK_dash_PP_533_0_/(kinetics_481_0_ * (Km+MAPK_489_0_))
+ 	 </body>
+          </notes>
+          <math xmlns="http://www.w3.org/1998/Math/MathML">
+            <apply>
+              <divide/>
+              <apply>
+                <times/>
+                <ci> kcat </ci>
+                <ci> MAPK_489_0_ </ci>
+                <ci> MKK_dash_PP_533_0_ </ci>
+              </apply>
+              <apply>
+                <times/>
+                <ci> kinetics_481_0_ </ci>
+                <apply>
+                  <plus/>
+                  <ci> Km </ci>
+                  <ci> MAPK_489_0_ </ci>
+                </apply>
+              </apply>
+            </apply>
+          </math>
+          <listOfLocalParameters>
+            <localParameter id="Km" value="1.500006000024e-05" units="substance"/>
+            <localParameter id="kcat" value="0.025" units="per_second"/>
+          </listOfLocalParameters>
+        </kineticLaw>
+      </reaction>
+      <reaction id="_8_537_0_" name="8" reversible="true" fast="false">
+        <notes>
+          <body xmlns="http://www.w3.org/1999/xhtml">
+ 	 	The Km is 15nM which is 0.015uM and Vmax is 0.025s-1 from Kholodenko, 2000
+	 </body>
+        </notes>
+        <annotation>
+          <moose:EnzymaticReaction>
+            <moose:Group>MAPK</moose:Group>
+            <moose:xCord>4.0</moose:xCord>
+            <moose:yCord>-4.0</moose:yCord>
+            <moose:bgColor>red</moose:bgColor>
+            <moose:textColor>0</moose:textColor>
+          </moose:EnzymaticReaction>
+        </annotation>
+        <listOfReactants>
+          <speciesReference species="MAPK_dash_P_515_0_" stoichiometry="1" constant="false"/>
+        </listOfReactants>
+        <listOfProducts>
+          <speciesReference species="MAPK_dash_PP_539_0_" stoichiometry="1" constant="false"/>
+        </listOfProducts>
+        <listOfModifiers>
+          <modifierSpeciesReference species="MKK_dash_PP_533_0_"/>
+        </listOfModifiers>
+        <kineticLaw>
+          <notes>
+            <body xmlns="http://www.w3.org/1999/xhtml">
+		kcat *MAPK_dash_P_515_0_*MKK_dash_PP_533_0_/(kinetics_481_0_ * (Km+MAPK_dash_P_515_0_))
+ 	 </body>
+          </notes>
+          <math xmlns="http://www.w3.org/1998/Math/MathML">
+            <apply>
+              <divide/>
+              <apply>
+                <times/>
+                <ci> kcat </ci>
+                <ci> MAPK_dash_P_515_0_ </ci>
+                <ci> MKK_dash_PP_533_0_ </ci>
+              </apply>
+              <apply>
+                <times/>
+                <ci> kinetics_481_0_ </ci>
+                <apply>
+                  <plus/>
+                  <ci> Km </ci>
+                  <ci> MAPK_dash_P_515_0_ </ci>
+                </apply>
+              </apply>
+            </apply>
+          </math>
+          <listOfLocalParameters>
+            <localParameter id="Km" value="1.500006000024e-05" units="substance"/>
+            <localParameter id="kcat" value="0.025" units="per_second"/>
+          </listOfLocalParameters>
+        </kineticLaw>
+      </reaction>
+    </listOfReactions>
+  </model>
+</sbml>
diff --git a/snippets/RandSpikeStats.py b/snippets/RandSpikeStats.py
index 05f935d3..dfe288f9 100644
--- a/snippets/RandSpikeStats.py
+++ b/snippets/RandSpikeStats.py
@@ -102,8 +102,6 @@ def main():
         moose.setClock( i, dt )
     moose.useClock( 8, '/plot#', 'process' )
     '''
-
-
 # Run the 'main' if this script is executed standalone.
 if __name__ == '__main__':
         main()
diff --git a/snippets/analogStimTable.py b/snippets/analogStimTable.py
index 09c852d6..006f47f8 100644
--- a/snippets/analogStimTable.py
+++ b/snippets/analogStimTable.py
@@ -91,5 +91,6 @@ for plotting.
 if __name__ == '__main__':
     main()
 
+
 #
 # stimtable.py ends here
diff --git a/snippets/analogStimTable.py~ b/snippets/analogStimTable.py~
deleted file mode 100644
index f1cf3c6c..00000000
--- a/snippets/analogStimTable.py~
+++ /dev/null
@@ -1,95 +0,0 @@
-# analogStimTable.py ---
-#
-# Filename: analogStimTable.py
-# Description:
-# Author: Upi Bhalla
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License as
-# published by the Free Software Foundation; either version 3, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; see the file COPYING.  If not, write to
-# the Free Software Foundation, Inc., 51 Franklin Street, Fifth
-# Floor, Boston, MA 02110-1301, USA.
-#
-
-import numpy as np
-import pylab
-import moose
-from moose import utils
-
-def analogStimTable():
-    simtime = 150
-    simdt = 0.1
-    model = moose.Neutral('/model')
-    data = moose.Neutral('/data')
-    # This is the stimulus generator
-    stimtable = moose.StimulusTable('/model/stim')
-    a = moose.BufPool( '/model/a' )
-    b = moose.Pool( '/model/b' )
-    reac = moose.Reac( '/model/reac' )
-    reac.Kf = 0.1
-    reac.Kb = 0.1
-    moose.connect( stimtable, 'output', a, 'setConcInit' )
-    moose.connect( reac, 'sub', a, 'reac' )
-    moose.connect( reac, 'prd', b, 'reac' )
-    aPlot = moose.Table('/data/aPlot')
-    moose.connect(aPlot, 'requestOut', a, 'getConc')
-    bPlot = moose.Table('/data/bPlot')
-    moose.connect(bPlot, 'requestOut', b, 'getConc')
-    moose.setClock( stimtable.tick, simdt )
-    moose.setClock( a.tick, simdt )
-    moose.setClock( aPlot.tick, simdt )
-
-    ####################################################
-    # Here we set up the stimulus table. It is half a sine-wave.
-    stim = [ np.sin(0.01 * float(i) ) for i in range( 314 )]
-    stimtable.vector = stim
-    stimtable.stepSize = 0 # This forces use of current time as x value
-
-    # The table will interpolate its contents over the time start to stop:
-    # At values less than startTime, it emits the first value in table
-    stimtable.startTime = 5
-    # At values more than stopTime, it emits the last value in table
-    stimtable.stopTime = 60
-    stimtable.doLoop = 1 # Enable repeat playbacks.
-    stimtable.loopTime = 10 + simtime / 2.0 # Repeat playback over this time
-
-    moose.reinit()
-    moose.start(simtime)
-    t = [ x * simdt for x in range( len( aPlot.vector ) )]
-    pylab.plot( t, aPlot.vector, label='Stimulus waveform' )
-    pylab.plot( t, bPlot.vector, label='Reaction product b' )
-    pylab.legend()
-    pylab.show()
-
-def main():
-    """
-Example of using a StimulusTable as an analog signal source in
-a reaction system. It could be used similarly to give other
-analog inputs to a model, such as a current or voltage clamp signal.
-
-This demo creates a StimulusTable and assigns it half a sine wave.
-Then we assign the start time and period over which to emit the wave.
-The output of the StimTable is sent to a pool **a**, which participates
-in a trivial reaction::
-
-    table ----> a <===> b
-
-The output of **a** and **b** are recorded in a regular table
-for plotting.
-    """
-    analogStimTable()
-
-if __name__ == '__main__':
-    main
-
-#
-# stimtable.py ends here
diff --git a/snippets/crossComptNeuroMesh.py.png b/snippets/crossComptNeuroMesh.py.png
new file mode 100644
index 0000000000000000000000000000000000000000..130c8446d0a064cbdff9f09228c633b6d1a2e6f0
GIT binary patch
literal 43382
zcmeFZXH-;cw=Re%22|K8$QA@dK?MYqC`A;NoFqyH0m(ruax?%6l9PbsSU`~^XF;;$
zoIya6WDv<c7vTQRckk)$`{VZLJI**Ys`f5fwcaq_IiH!=dud6b^Z2CrI5;@xMT8&8
z;NYAn!NEB$clsp!rO=F31^##9rGSXsX?QuD)_Dj2K4UJd^b!Y$Pz(7SOXf>5z`?nO
zBl75hoXw}7L-wBnEr<4(H$Ju4f2U4+_U!iP6`35|T<*Vq(B||HP|x}0X%4lSaD)xV
z_y%9`;X>JjS3GRX?jn;Z?jYKIZ<EZ86Z+Ql_3LZ6^;*_b+%KC{%lXnnUuhBEDJrf~
z-?rnW=+Uk<Dr4!<bF)n=Ufgvk*KjuoON3=1uW)mPqQh@E(YG$x96R`4p>P`ZguFEA
zPpBV$%Ou8SI{em)|BB@Bo3U%f*~4#n0;70`-&ClUa1Xw@VE_8>;SOo?-?aO$#wZJ-
zBslg1c_!g`CIbpH%m>GO`wFi^fg2&E`V4cc=joDGBe<5>;_!pT(9|>?O?&X0zz<hg
z1nCvhuB~O?!)00vGa1Ok6c#F#@6MaCS^ex44LQD6r1bf@!I#%~L5#<zEgib=`7YVk
z@>fogAFmEKE5l?sOw#w~nUK8-@w#9W)8j?Xr7&LWlYzd%pOK2ejD7Y#_NoPS@*?lz
z-@?C3j%QxFj6L=LERC%XNl8iR)NosG{Z7-qHn!^h>TL@b4i`wV3q>X2`@e7hkAFTI
zu7F<c;2X~Ip{?~fVlP2@HNkR{_m5cZ)}}>6UOmJ)0tw<Ar(HYpm*4IMF;=k;+s!cu
zFdgB7v`BSx`pDj|d{QneW7pJ~@?nQn3CBr#jTl)1|04jpPyOMa9l9`N>hI!^cviF8
z|1yrS9=0WA)_M0yGU-Qi#K5Gsct__%eZV9dwLWj=T<k-42uITtxEaSxr<x;_bM*bP
z`_dRo*JMQetH!2R?!f>_!?sfqrd~%sH9Dbwe6W`H*S-0^&q6J{+i6Za<CK)<JBbqE
z=y5NO*=DZApKoRlH%&nCibPbrgM0L2YDSszRD^XTW7+TTyve5zE{~38>GKqsEPt<7
z&NU1Q3lFDPL-Yj>4u2Bx1%pbyY1c;C22WEIpGKA2`BXIL!9|>iXQDTX60)+MBz>~*
zC|mY2lPe-RxZ=XtHs*R<InOvWm`Nj@M8n|;0|SHZMnZ={ZeAW85q|yr!tZfbqwYIh
zot=RZM*8~F4<A0v=sI^WrL1f~SXfv?^ZdR&!_W5>XHVsr4xz5N#dJvVl@2+2US?>I
zeeAh59p^I}>&ZB~w0!pRoz~yW<Mzek2Xi-|JB_oRH<3zwyc;7x9Fy^v&6rDi(JWnr
z<F7v5DWH0vUKCc0sZ?%cv)LLw_@Y)m8HL>FLVian`;jw{a6P|#S7IRFETne4?aZxD
z(PmDo;YBMA^z>>JTUT(Irr+O+l;);TWF-yKu|zYd<ca&Ezu=Kf*WK{x^b?}!8`GYf
zn`5(Gncz(&Mh4cDV$o~vT&|_e_}q*Vt8ypoIYsFZT}$b#s<At(*fltqHegzeZKsK)
zq*{9Yy!jKxdc;xDf5QBJ4thq0L9IxR!2KZ^hiPY>-wk?IDrCfpg>I}$Qk*v`<)`Y+
zfVMzd*|m<SJvo?0&e74)HRYl6!%;kw!Gh(7Jd9B-8|E~~O)d+f)bT%ll$9@hyeD(F
zceSP1xtB&nJwvfa-5#ruu8JY1SGb#dVMy>$G4k_u4&IS}HoxALnlRiOV!ZmJX{%n!
zDONAiR!}9+_z839o#Or7jgiGo&&s?b=AU-2`H)qaB&wR9RJz*Cg__Ul=xlF~tq-_m
z)DTFUlAa#iIN4s~MP@nTxIr5sxv}G_rE;XM*B*Y+Ttq9&S32)+I2&y&3@K;pyib&h
zQn%6oepo18EW?*~+iOsoIn>n^6?s}!CpoVYNQARvha6jYHdOKG1e}GAlsesPa-6rn
zL6~yZv&Vg#lZ_!pz}mzq_`6q*ggiMpltr&$Zhh8MV<$GfWJR<ol1D{0NwTXGBWt-i
z8KPLkz4q{EY0<Hg_s34~Z2$bcHF1j%gB)D>-g*YHXZ0E!d2&`(R{LZO<+C<BgvvP5
zFZ4dWaErA45lXPwIJN4idVY%w^?!(QLTA{KC}Dw$*y`^oQ<#y_ymYj~QQuMX`v9rN
zum1=02tCH+yy*#emD=6iZM6|$*{y^EI?zkYk8DmdIb-f=*VHX;7<DE;3F9z}JXbZ{
ztvv#W35OzKX=#b?DuCKu>sYVl+smrTBII6jk>s2t!oxjw{tELWMb#Is!}g1%1hu@s
zN8g|}Cjy91pODkg$XImRDE6owpRcKYcCRUnO>BLA9sdL_YBErEt@R<H<?l~M-Dz!{
zQ=j65sbl;5m65qXI({y1oWN=2IABB<Ml`X_?p9BEx0>~k{Hv6$8k78?M9@+**^P`H
zvQj(=aQL%Ad|Q6$rN8=*^I8E_P~#t15a1tj+!#_WLSx*{U5OQAEPO=Bw`1PdtFgBd
zf*^opzd_Q>{@&vLT0qp!BYMU3&UldkU~w7tU$0J4w3hD<lpB2i`rdA({+8ux6Ngc~
zKTR0BiE=S%*^(>M^xpPj4@3T7?5!vVnWRX&6wqUxot<**>7Y>cA}oW?RkgM!h*<(N
zPh<0k+hOROms8CY_EI=#sh2N5GZs!<?CR>Gy-HvN*X*`tlIYbgZ;@S^rb$)IV5bR%
z{~l^>%6=*5E!mDS^N-=|CMjrIM?=sji6e^~WMpKG&HK|re9RG&Nt-ofX6Vh|2)I4J
z`#0-|^Zssop(>-EHyKCsRZffe(3UBQ4%Q|)I$Z@t#c;sz7k%UVK-4e-_o|Ya#BkB6
zb5(cU2`Nn_Lzxqdf5NeGAyZ0mFF%?Y9QWZfMO`IW{c?)(4w*e@tx!0|=Zqor5yd+z
zjZHBR-NV}SbI=Pz)+21C>KV4X>pdI2_PA)bkqGgZ<27E1RbzKsxL3tL=jC;CuYO}`
zA~P##E16A6{l<Syvq+V3HO8G{c7?NOn|H;D@ErQUZjUIK3|2u@tw{S5A#$3e4%(y+
z%v6-Ky397MSG8KrkCv#6sGW&hsFk`K#OF=|FYC=j?e8SD&*VIBiNtPgZMEkV?sC1O
zo`J#JujqY>F~6S%Ohzl4IGx+0J{L}+wlonSMHeBNKX7l}NMkz;lu4WqZ~x@@{>~KN
zTzr6J`_fpI*c7PvMDfsA&<xW-it2vUyW^Dm(kd$9iINe@zkY)nQ_IcG-P&Dr)<A8v
zi!m8&|C*mSEc%(<NJQYi4v-Sq%mYjGcyzr8Xf@Ea4}3E>8KMzP4N9<<!d@KMRrdZ>
zMlUirrDopkpV?D8$%|)Pj@$2TPFb#ZDH=^S1QpHa4WJiGH)dT))O|Z<<g~TpV%zi+
z#2)dDrK1t2sUl`}HZ`L=lE;3nQDaZWhkHesw&V(zRT{MsN0zr0Q856xWxL3&nV#~!
z++RQY;^xweB}vrKev+seYI#M)IS}41ur$_67agS(H5@IKl2_s=cZK<We<563&u~_I
z`QzIYR75wziV|V0A{hX(GyM@W3(7L4);;C;plA1esUyrQ&*)AOa{at}o`U=7TsL-Z
zWjRz_kT)u0X!Cnvu2GL6h*N_Ov+mReWicSWF7p-J(qS2iTah-;`tJMG#sLBaE--cT
zS^a#<88PWR&Qum@IoCb&fu*^1z^oiAN7uE$>8Ty%v^8VZv!A(mrnTc@-`g;2_Ki);
z+H(|f(YJc(ThwG_<2Yab2#g57tMxj);5$BWrK8=1pAf6#)|z@D`%l*jBNxx=X9&ir
z+t0Is?d#l;u2zf&5uf`JZpP?UKef8m*W#22%MvgvS$0!aQL%*kXTN(gb)V-LjGmpH
z#V-TR<uWV_2zSH#zJNcvfi_8hqRvluBRsKBYgArEMWuWG^UEno1oJ=wI>5*goeB>R
z&(-{bTRr~5Re;K*FZ(gah{NYHSbz~2+zBtHBJI-!eJHSnFQ;Zf)PCj+0~{Iv91q!<
zAm{`JCReF*PrBO5rUQT|d0ClSv6bcKPA$3hCs6rHb|#OR%6>na*`%52)%FSMnCbLn
zDof6AT2D=QVOGAImuEJ@=w21WWB*IPH&ZL2wzI3t@@WSsV-<ycK=oy-aStB`UPZ+g
zB}K(s9juM%`%i{1MJKT>8h5{Sy|lGcl$xQ0U9PI#Xn5&E$yfH%Ua&1xFA}r8P%M>E
z`it}xNfAQYfx?$bml>4f1EhGBLe%XrmzmTD7u@q6U5`;QEqsh%Z&z<`GGK<``fOLx
zdbbLqQJ$nKVEsoHGg|3^neVUt<l`~>_VJ#7{8`3==&IFl4zupwEbUx}O^ZnjPBq)f
zAl(RM-YBVnTT<N(LG;BXrjCxK3RvYXEU6FYkB_Ea+nHtSShE>I=ihI@>PX*QoudEy
z+^k~xR?r?`o~R6F70ee&L}@LQ?>j}<&0-LNT>~MQ2{TIfYn+tfjWX*==nD0&6sl;h
z0oLm3NlUM@v~SGRszPx)_iDL|$hece!y%_yA|2)ZmE~j563OGAR&L6mUQ#ghQS)wc
zQ#eOzUS1yBbY-HR6hxb`e8*yUZ=<}2SW&f2kL@@P&ehppi<ejIO4TBzZU*?rlXF=K
z`%ChycM?SPOj=mls`=D*jCGcHU)2{KkACnbP%<e<G@*a@#Y-@!BD$Zhg|;{dZVcOJ
zq!%xs$Q{?({L|7iDEF4!i<WE1<TW%jNbP&ntm|1Nnm%#LdU<()p%BLFSVREA33JGj
zvg%7?62Gsz6Oi|(Cw||p&LX!|ogXeO{#p3TvDv!@b=AAQ<qPFH&oMjY)=NKgB~wLd
zohS!Ke$5ZiyuTti&3+jx^xhzhJklB!p{u3%WZ8Kd@JT(R8@!pj(&s?@{nxff_SNBB
z4Xuetlo!7Nx=gIw6<ZRK3@?h`yKfIlqOsX*1mWTNcCe?ND|%QQx6t#wSr5(1HWS&6
zd!qp{f)ig!hOuH;8R7g8jSGUhwl$YAr?I~kvQRihQM&mf95LjSW|wBuZdTpx92`_t
z=m48O8DvX#)1l1xXMe5{4Tkj>xEKo8{?gz0RGk$k<im&;z_T2QGu<D?W<=y!-5<eZ
zRS;>>K<lV_VT&GBvJ``TnkC@B9)dU%#dM5`k;2q=yUMbO;(i13-EQZ}&@%}k6l>%5
z7NX-|uup7k=jzm7jIioANLUpMzT;Ol)=Cqi+K!#OA0bI@|1--!4I_M(gs~I;D5Fef
zq5+yeVZn=UXN*v}+^H0FnMRQ_U?VBG@WFSKVws$lJrh<NgBfJGDSAl2+-NUEd>q7E
z%GPacs9^-(22^m^{TH#+sU7o`XPG*y2>H^u77F5WWXFFrg|Gko+%j7<mp%uE6#ta6
zvNEgLF!#`lTJnUKa3bx;3Av-eD<fPly>R@}D-zy7tV;f@8<}Y<CMhzd#d&Wvh!Onu
z=pLeCJEy(XD5I^lnFR7<o?nFZ)K(~Kz%9bquKob4!L*%gu_SJ_g--)?V1JoovAW~B
zyla)#kVPXy1n=<pvi{ER$k1Uq6_wQet&IJ4LZ_wUu=Sb2mn~i3xuzgU2YQPU%Xd>`
zW5l_<3@q^jRRo%rR%C1R4WVeUm|K+=8wbanH`jtM&>lQ*B`d6MW3U0lKfrZQlfeWc
z{*K1ZcapGs+HQ;`OO@^S!BzlbJXBP-O&}#BTL<e_X|5-uXT3)w12mx&c+BbsKjGle
zz(a;LAFdc08FjP?QDPGlZz9rRH~Q*SL-%$Vm$m84R6m(%!Gn4o8Bl?3tuYT9aWmf7
zO5r%%N6_bcwdeXuBhwrhknu>o#ht=V*dM(yWF1nrfqP0|)b&lC{f4PT1WKO3J#Nhl
zh+2`}43?1N{`N=@7^g{(JuicdBJM~Sw{7-S0-<~o(M99Iy(zPTv6Eh89Flzdn=Rm1
z$D>i$DgrL?qzJ1p*b(2#9OvI0!!~i({oXB<tV$mE^5BbZl<zwZp*tjW$HhDDkUuuf
zS25~I??NUD4!-R5_dNly{IY(03+*svU;%v#7P}(QMUgkE2k~fK&ys*qmTsun0U$*c
z(wG2BR}I*?4e)2JE5k`Xf5=LuI18-kOw*#7n@yoCLdDjL2sE$5Q3YE%h;&Q(A({%I
zb0cH1ILsfl`%{n2d2c7%@(aNao?}a6A4u6m5mETr_t_E%MITT<eJSeqTUb=w%NCw|
z#QS>jk!SN3?V1sn^+G35+_I4&U%&YiC%JduXFZ>0&Z(=2?u0Pbv_-^gHluF+%C~32
zSPlFQ4GkL>j=~Q<-Gm^yIJ-}lt&_S^6*r!S{NV3w+wKKQCMG6kzkmpa-IyzhO}U9T
z0TWu~-cLJN%lbE#7PS47X1uePmn2Rg_qR@=4D)WE)XwC<WkQSH``Mpk5D@9KWe|aG
z7YSlKgZu<18eGfPOH$l1Hr(m@taKvE`KA%U3@SH8ibh|br4|93wG6Q{7@lVGgE7Pe
zA)uM%hwcPj$xq_8%FGXja3T21<^d8{0A);Hugq#W)1H9%EmsNL*-ZzN9e6Y3Qx)pR
z%%{0VHYJN|H7vX2i@;jgDl$I0{esN{aGM|=<iI;}D(K*kI1cD$2ooN@)~Nsg2%i(2
z0Xxy7Y%PHaQ&y(#RIYJD@I&k7R8&TSScpOq>lzCZ$2@pt>bG5Q`grdlg^v(ol_FLU
z=)>tQMU5`-`VtzM%1aJIDu)3B;&pI$^nqnkFqk&P$UzLpp>nVlk+_1#q2KGWciYc5
zEPQ*fNV`V(i>43nBr=pLV-n@g=&AWiMv;_^jK#LOFMEID9X?^<31=>C?G>deijCK9
zOv{$7wTt=3w>U1m<k>3uyWpSS{fUdX=jP<pjhVOByHY@i2H6O|Gts$UHc9dc;0g-+
zgFV56pg(c?NvqMc14A7GNSa*Wo$7=oLNHDJKe+ADvCqGKq{<(_BG3w+j9&5f2*@YC
zoa^2PTCW2tMaR~7lc(-)M(sZV4?vQ4Q%4Qm_IT@eEnj*Bm-Q@AOI||4OCjy)lNshV
zpQAXZi^p~iM_CN`aO$g5Ej?f_t%E8wtn;NpEq}eV?q%i>2QnA+CvW2Z7IA4n^`xS&
zWFG7OU(Kdu9AmufX#k!DYO!RMRj2MR&Irk-2(J99tpD7>ANM%S^%Mz?vQ^9v7RrKd
zlVK0<N(fP>6S25|b-o6{{It)_{#t({l5n8w!B|A(+-hO4uSXXwD0rb8)Mjv{l_<A+
zYjgBkC`8)9K*+IK{!UPfpwlaUejlD+A1lW)sSN-mNO|mX5Wf*%t+d4u$(Z5bOyiTQ
z-@YgDxoXu-YdWizq9ezkLsTn-+UqK(j9!#u9)<0MUm4wngWrz2oGvlvM@(r@I+EPW
zUm=JBE>C}^)*I$faXh-iCF%PhQBI>CMiCh`HMQbxa2IsKo*O7rAB@4DkmYvB^zJT*
z`QJ{nW>n(bOY(|@K)*Hmfq(o^v2}j285ns$g%m7yer@^l^ClSy35mW!H@A~)tgLIs
zF~~@*gpaRZ5NTH|TM5Efd`4KkA?pt+9SK2LIg5#jX@tDRzqV9)3^5JCS+E0hYhWnf
zYF^okf=5|BBfq1T2>=O#_lr#zk)wznL8ya7$REeGiH5W<!szhRqO}onHkCA`&w`h3
zicinAx7H#g09+?gw~3)}`mJ?fR78++m<^`^xfH<WRCA?Au+wGFWW@Jmg%CvXc!1F$
z2$WEMGfgF55_l_sTFv|m9xMwqY&zJya*kkS^dP>K4l@RvH~s0>n17;KklRCS*u}E#
zbZWpr{eQ<szZ*ic;O%q)Ut7W+=O8E)0A_+7-?kDc#qyk*Lt<CNxKy0&FL<GyU*ko|
zr!K{}i)K<hJg=p;`+t%NIIRIkLjK>WM<mZ$WYU!)U-bLCC)=~Hr@?1M@;!*r8YF&`
zUX2vtLLC10#qD^}&QFW2u)Mo7QbvOXFSe?goMOJbIW<=}71>c@yP9LSZpgDW9T&uS
zC`SAjVdNR`aOEJ}4fZUnVdrg;b_kj!Kt9S~tkTuc#6%t<j;^T(Iv7V2@)Grn8)7oW
z(y2v7%8Vgmz`qxD4*?|S;i#+WCWJr}sUEuNgDD4x48f6P3j3e;7*q?Sk$5=nEB*wr
z!?Aq71`47(#@s2>gXk5JltVk1eQK!vh(!k>zU{six~EqTx5WtxzY&Ztsfd@&oG4hm
zCAiu8fSPt-`J?Bs`E;aSh7gDT_f3IXk^^IEWwKGMgM<&E$I|GRE$}(hXF8IMz!fCt
zwdzh&0<}fU)zjJ<?dImDo<WApc-NebjST~@pQ<3et|<>Rt}hAXBk}^_1EYL}o?E=j
z@7s4H@YMfgNJ<3{R{E>!$>(bDVpz2*-{Q-^Evt-OpAJTX68oSRh<s`xMhF3%ARX-T
zfri2{za3q5c4%d2(MgdcwdD5KKeYfL&&?2ccibo*=|b#1h-J<E8Zhetry&VZf&bbl
zx%zY>MmEV10#o2d!*)KS!IYZiDBtu#jP0G(md5#;T!*u{pOnEz4?ys9?dv5exuS!d
z5Dt=1I=qbY-}(Cg9B{4%B6&8*VaThgMZEqJ?ale)?;*Q6Y!KsN$wTy4(0i@UI}6t3
z9cwck>j_MbBITP+W)O7Dg~%ER61F|zP(lL#vWZd2GaX7XN-q?INWd0i$)lWqgz70|
z(jBmn%dd~^?@X0SY_cxCf16&uw<Q{KXlJ$3AW{JSUB-hqCuh7khFj}zMco0%L95Em
z0A$TW5QO@`(8h^=TXA+M+j33;qFav3o*HrwAHIRS$(7wH=e;B($^uSMZu{iXk}};$
zifE!*=z~OOf>li0z!#tq0e>pEXRZs_Dd$-=zT*#;sF|fKmgmB?luYC=-dcXRTDW0#
zyE7!?aB1gGoKT+*hGiK*4imM%v)b4!70UeBe+|-o*p7<12<zuF*nGo4anTv{vhkbv
zlU-dw?wZ?fS~rA5ZwLxgNG+B!BAa({{Lkd>lfz2A9b}HUN=L@b(RL#%lV@3-c5Fms
zZr(5%qB9x310Kl6TrflXS*E8N8@t2f=E7C())enxp{(d+HiDy(Sy_`~Vq$&{{s-{{
zpU^av-6U+GY}*v@!5M<G5pt;g-{U@F{x>B*^<t-%?Goa=v%Q-i#o0g1bUdEb6rRwd
z{<&;no+!Y9cV?-Ii}0(UcVJ2iZ)fA73A6hb;OXS2m(6WceEYT#c#_(5P``9bvNJ_K
z74iGkY{p!-I+J+2w0k@r#lIL&i@T9XJ3pvI@s7CMwD%hJDOKrySzybeqqw|$kL)c%
zzCrxv1HRzj7lPG77-v@lY&k{5Ya1+l3Bjd|{og+OtxX&wgGrY6ueSSAbwBw?+vlw%
zJdkI}ZMo8=nBY#CC-B+vJbC|mXMGhxfNJ`%v*W>-qj6M#Yn!`Hy8ut!K9Hdm4YA-i
z-59P&VR`=+LU80#5e~Dob4J|id!N?V)ubZQu(~|=4(_G%syKUG;qGnnmme(AUs<tu
zYg}QdLS4_bkn*RmLbU?<^b}=p`P{E0Jyh&=gs(_i&$w63_NHKiB)PN3?`@XkXbaW8
z>g~^MkJ_U)8ByQ+SX7jLJnO;@YM-PH4a$RAtR9czIh>G8Vs$96MCU!xMKPER^)GkU
zPetXIK}65FIXzL5;7Vnu$ic5sVEL~xM@f;gHK0(JysUUFEt*K@j8JNOpWG>jZLe8<
zz0lnpc<|G6k4~spP+hy|SL5~B+xuf;ZmN#ZtKO~kb`RqA?L`&YJDw>iMUg1m-(w2q
z2Pf+?1UCGxOO=*{_EqLbVRvK3@40EYs*_7ZI7|{7^f4Rsq_5PTBkKklYgJK)r2g3f
z59HZ1&*Tr_V}Mb3*D>C;)EB#({kKm&Q^^x<3{lY-UtXC?%UHCV)iGh1dw(F41Prh^
zoQvl~Yp-gPli!oTBqWSu0>U}OAZ1AW@rvN)ODi_Zm3KGN4v%6DsmG!raPP{JSD}wU
z%hYOHa2nKldmqp0(Fmci|5oIz@#dr@kEO-e)2ZPHsP7V4k?|3Sz@t$YPYwj|(k(0Q
zn-Rfzrt>zl6E9noG*nbJysc3QV^zhGC{CTzvbPSFH3a01uHAHKPkz$f7Mhp$OY7<K
zuQ0amd34bZCs!C_;o^Ks%CNHuLSUDNl&?r!Jd#uVy}6oEsApmArzp`^-<7ThukG(e
z<(PyY@VKQV@c7&ucJyFXnr2{U5{MAEgV<V%e{5a;XxxooiV8z*t~5fd4cv)IpDXNX
zbC>{k^5+s+2S&u22Hdm7;8TmABIy0oLHv3a$GHKHzXnQ_l*<OU!i0a4FItKHbNI1)
zX}1ne)147WmUkH_Okspj7(&M0Ns^|0*LOEtx^Z{hvNrC;NZX!P;IoNy+ckQ{J(f8b
zlUXwM&Ou&&Md&)doFcud3Rc(zn{u)zC7nH%zd}OuVBFGo6=y44ewYheT6Vu^7a{kl
zpM+pCis0+sp0&YvB+1&hf%56@bqfO8g<yYEcNtT6f72ux#*lW#5E;|_c2gf_(|l&r
zjBI#QL}gQyuc((>sF#a7ORwNjI}0~!3a9f6N18u^cbV{`y%a;d)EoFc-M6`u1-mTS
zQpgl;<-410AoM>;;B*|<<+yoa{Dm87<7*uQBW9%giPPRKDV9?dkFE3R@{;81gB557
z`U6cp=`Q)yzpD-OtPPa9sdIDOBL0#^e1Juwtc9M8g>J`+4!l`bt|-YTXs?jE?YL1n
zGv12wlf9-#r#UgnK`mA0NUkPQ93QA6TJ%Y@C_<Fv4SRmExlN#@ebDmL2P)0uA!F<G
zi>r-mum@@Uw-alpCeOJ}o^hQxFErsLM=PzCplKOYY02i%serLF$5vYAT5Rrq+eOY-
z`T`v9(gn^z)5o)O#F&i5&qmK>4RRL@pA4j5hHcy~OOk)ztw5tP5a=x!^gg%#U3HMy
zSJ*>C(nX7Scwe%3p61&WA<}3PKiTwrf{l44=~9Y!etihb1c$}Sl*I~}E#5iVV^x78
zz68&C_Dk@o!Utjk2QYz+n4IF?`X354^H~Hwif#i*X+3(DS+=_k+qlffAJA)_b(_F<
zo1lAZT$b`~$Bz!rD1|s3E2AR~EFn+-RQ`t0U44eH2v2D8kLTm!OuKVCMV;&+>=@nB
za<poaYiM0i!x|3d3T5$NJr)g~#3o={>$?-hx#@0P&K1b(9F}BH2(W;+E}Vkwicb5=
z1oO&sI0XYdmSurk;ZLS@8XGlE_u;xtG?J@ExK-iz`I`z+X@2(3X~cf0#qZ0e@BtP&
z=R=%5>EKka_>p;*uz~m-yc@~$iuw>fR#c>wQ%jIm%T1XzBuc>qGs!RrUAwlqYrKfW
z(yj_1#?a9BjbgS~Cttx%!r6ei$yFI{1ATiVRc!IE+eN95mx1!i%0Y%EvUJ^v#&=ST
zxf30(r#LV(vIP0coZ;*^!^t92$n5Idl$rR!&MVD9P_PUw5cAb3!nn`@6TsjbH2C97
zSGYy}tj<fWAarpcZCYdSa=}@ua7DLT<q(D`gllLQ&kFCkTzwV&=~${~6FGi88Ld_J
zW1=*yOmd>AUlA!@iqXUw!8FM{{)+yTK!Z3~IzJaMjmty-4%){8rjG@>+TYFc7CvXE
z&#lhxzaVBPB_@|OWKT4rjc0<%W7mx}Y4{r3a5J`{R=XkLy9_g9!p50C{0QS=V^Px^
zH!}Q!Tk0A@JR73eiJDa&s9XyPDgP@QFWY~__jS!Hqd~=HssvSUnbzmn+8^2Md`k$|
z2d>-c+Bi1YJ2Y(WFz+5S8h^vj@2x4k0B>{QVd-A{zLZp=WbfOmidapF+?_E)+e&$b
ziXR&)8fxjon+HXDcBheY8axUg*5vNE2e}k8@90EIiy2jTnG$3Y`@bvHbzhW7Hjzqw
z#=sz&lSfBvB45-rtHW}!t+M9Sz0jG0tC+W+LJO{j1`dYCs|u#HRtE>y*42eH)|pXH
zNaWM{-X*G=B)W}fqEL7FZd&xbW|G(QPt~UEfI~^`6h>-!#`pAB?ap>QcC=6OJc(=Z
z`;Em(tYshfm@l^$z0O%VA)+*lOmd#+o^Wo-m|@`?EqYb@lP1Qmf%q<O_#ynp?|MH%
z=I*rg-RUl^hb8_gH0Kw)jGlj%xvrH$6Ws0nR0g{osNDa|BVRefcqUIF0S=*N002mb
z`WbV;y->`@KsaTZiH5|9`osx#nH5q4Tdxl#g&%eVmCIDc_dZZLt4PMErgzr=;7Ieu
z{+(AyV9~GNJ}=!bf4ZOBR2QG@nhp<zQBiVFQb|wJr<SA=zH6I1-RL%H>2!YS1>vW|
znQXeO(z2)fQ?M>gB<aB{f731MtZs+0LvdcK6jJ<r*Tsfg#xnO|SC<nxt#gJ(%j~m&
z@9!OGb&THM>LQh*yX-~R*B<*QO`=afH9L!4_tKL||0k0HXK0B7ZjgsCpDAR1?}+Nd
zr&3|O5#{H{5f#K2k|U58-_>-P&crFYJ+O^`?Ec@J?ty5oAX-zW(HHb{R`lb`$`8VO
zjIi}T)@jS7q<@?PjKP~EaGiMncGBn3L<Rx<Q&}3b+t<xv0-COz4z|uFE@w7@y1>yJ
z2NA>48d&4&2T5+{2!!$1w%9%^(T3h}Gp5~5{X3h+-_Y|`puUl83RWKTH2lL;BU&An
zfO`f}lI%k4RMzaY@b>Ww?h&pJ7i$b}Y=~;CixLBrBzi}-BJ^^eo%gonmGe3@W_zRR
z4{K(m8|Gzd)IKsRD+gfz&Q^*rey*j)4&b48_nKl||4s!NLA@ezaCssy$kSnI;1N1o
z0r~F4Q`P1sBhgJ$apC82aC%Q7ES^d1Q;SMT`9zu?9j}?8p3z$!EH0X5BgycBUdM>R
z&A2}P+44t!6KuoR{y;Aw-LC^6>2g#$Vzm?BZca2%Pd4048+!bb*7if7Lt&0XA@E2V
zZsFUVLWNBhH{AM9xP_l~3U`Zoe-%1rb_jYJebyahq}QRp>efSFHARok-o!8VJUMat
z<OKdntQX;Rtxb5RRIR)P`3Js!c!Bd5Vb8D9`Q^1{J}^=KZar`id0&^R8MjA2U?j)*
z#!F|YwXkkjWzhu4+|f#=3GO@voPALww;Joq5GH*4f)5?JnJjyEit2T`xYqjT&(mgN
zo6)Mx0O7U54H05MJ78%Ct<^UUqI;_1uS%$#E2Xc64Gfg#X;l2!|Eojry!*o$fm<qx
z_jNnx<eSI+#^|lGH-QS##5wa3jE0uko0VFyQoxXvx7RIB-H1Tg0u@oZN(c&+;0!<^
zq+Z@tQQ4MuKT%^);%k14FSOX3@5vAv*#BKA_pASwA~z=Qk&MavK;mqg0FPVWMQQp2
zMRMxj<<}1;1vL4+ulLLC)_Hm5OrckNNnarMW}t&Em5Sh=gTN~Xg;&OsdvcPm)a)O!
zNhz$%v*>o3IlME70~j$4VW!B>El#dAvCOu0Y}hX84m0L0Ct7Q~aIS$I-UJQgXX;7L
zG?If3eUKW^BtN(o{TYGrEg|jx+c-FmP%=l^07*T|Cbpj2MEJC%UJ6B5K|DQw%|H8W
zgD)hXp=!3znD?ksPUU)Pw?JKYSmx_IeLBoj=7gsx%%kgx;w2J-*%F&N;os!so}(Cr
zP>hP~3e!4bbwOec;bQfA@e@r+lZ^?JExHqpdc=3*@F%PqqgrTv>*`0k%RHL`f<Czs
z7vN>Le_4A!Nt3|Cs5@w?%VVlrLUDz{C--Lf2!4MWTi=ew$>SE6x%w&}*k0Ev6woR>
z4o7jp_Km!Sn}FIW<LUuZr-@TI=eT!92v3<n8P3-5Mp@E@8-mGLEVg|T&L-Sor22>N
z1jE&?Qj4bD;@*pAWKEVoD1R53AJpT?({IP`|2`A=9rL!m{^N&7sTTF@p)(%?y&L@A
zH-^4%49Z3Ial5hUc7{vUhk(3FHHI|OX~J@pv9xi5>aQ--E<M<$jbo;^R#^GlpU>Jn
zqsbf<_@X%ISAnh#emLdtk_5KCZ!YDT#rpSj&Nf^+Q%`)Zo;(NDH~1x!dyJ0rP0aCA
z#!hpa9|0JXA#Zgxr=~^_srN;aJrFLWQv>(9LI@!jRlVYUL%SWjZR;%Jhk3y^qS)nl
ztD7>05>Jn*s4!!m!oi?0HYkh^D#n-@*ft@Kx#J$^=O^?!ENPPLK7N5oy-mUS0_@Jb
z4CSHn*P>*uQ3mmuJuUXEp>`JAHqHBPqPKj%&LGYpKQ;5F%8R08Ax;gg@#9fa_$MaL
zZB3rTJ3E(+H;I24)%P0Y0hld8f)J(bX|g{+LD(U93<v7S&3&D=2S$*>tyZXdi-8Xm
zn8FdPiOm=HQiEb6@{SB?46;UqncGj%h+Ee(o48w>-YP3dAWvMT-dF}BC;pr+#Q{Yp
zgi?MQz`$tD&S=d@mG76y&QnJskf$o@q)Sw%M|8JiWojIM0xZv{AY2jJOzm<B!tBZX
z(o=<J1e(XByT@f}K#+5-{%+bVY1npP-sLrjnu$%9=5LPfs()_z`SApS&;-F-tOQ}v
zrA%V8V%5?Wvy(W#m!M?agv;t@D-!10p3gV>`tHI(bpXz(FO&WPRCB$Jw6ss}+bIaC
z8Fx3wa^?o3`hH0gdnL$tB&0Fs+1$iDf;W4NDvFLp7tgq%W}@Ni1oL+bvNN_8XKYs#
zZiVxO__v7DYbJu~XTkqSi)W#<`7*I9_j1sVJ&Lf`Bj529rwQwv1>GFztM%K8r~52;
zqvXK01O%l!VbZKA-R#oUr0|Jx7T=9)L1%6@uSJN13<v!R;!#%fxjlvukv23oPCICU
zxc}91u==J5qex6;+h^45GqIZq`h(Ic&&=u+em(<`qhZF#)CIHpizbaTvpk`_6m)|u
zfQ2k%;9aBk(;?$w2br=@xr{0m;`GruJI`an87S$+N!YO07#Q%r9|#`f>ZrO|jkbx4
z=5LP(V^?y)<4&CL7C6Rv`~fHKgTmJ_0z%=$Ifb}ienl9oVH*{=r>rjJ9GfOV3iBZ`
z(xL6clUTmLyBNfX1W2c)Yt@YX*NvnK%-61V1Tu&II;KKL^LQK}6l)Nx;z>q99pI4|
z;E@FIB&H-Q`1#BgK~-<GT!Y{w^D`iE;fI2f&9^0m@g<w_JI_UrvCx#a<4>@-Ml)de
z%Ov&&c^@c;6ZLl4RwyW^&R<LN`aw=$<o+b8t0{QHHi+;yO}UhJw1ziWk^&!p;GdX0
z=LUwsBzRN!u7sv3(`EU6CyrG-xDHt+sP1)~QyFP5-`_4bg5okm0|P&5DDM-IF)~UW
zG|d;7ch2^uMvCFs*d{$o*$)F_)@KpJ)6TC-tLe_#W_*~HJsE<rKI)%8A7Cu2pS+Ql
zVw)N$<odv_>fmAL6nz<tu_#7WhV}-PZkiXNs^B;Le&C~3;3kpHZ*PgS>t~<SV;h58
zp3Y^@7oSwgzH5>baQ-jQr#y8Me`TA7SR{}OmNuLM6us(Xbo>O~8;dQlGCzIEgmb-p
zNAFtiuC&SiOL4MXSEvPn&|pvm{hs7m`<EXRZGF8y|E<q%(jWgMPSBF`hrbwO8&ut>
zTA9MW!l2ktAwwOz42k3C?_pOsb`SK_jH`XI41Q0H29-Ur1r#dWL3D(D+1)j#L~dXL
z{p3&~*+qT8CWRjd3qjlRQfbg?iq&TX;y!;d{w59AcDzE(Xx@~I=&m?kc6W;9P>}U~
z9h<?1%`|dB31`sW(HbknMSb{2*+Ge(C;7f6p4#?Vx3QZaxpdh{k^JvzIF|F2ysAhm
z$<^&0%PLlhA*bzmJIJK2LE)<*BqoT{{(^<_n@txTLTUfdW{hQbbsmR~SSp(zs5s2V
zMxQ)uq$FLWWKdDBzo3=``wfg7FXn@vZ>U(E$)m}J>dE@*$)?)LdzbJ(ir`%p*=)+m
z?R(Yk>P5(mKXGY=?EMM|$L4s1btc|9A*y#QlYDRt7Ls~YI;(Vx8};XYQ%B{phvR~9
zfS^zrt-fh>?**L<2jJR-^m;h(MnS#IH>)Y6x(o`MB_g>CapjTFP-a|n&$9r4JB|B>
z_7iq$mPZJxa$Wwue}AwjU2smKM@_q{L2UJUuc(@_>y4;DKdCxD&wA~zll8TGeD)g@
zQ7?D*U+mb<bF<X8zN@2}GOmj`{hm|K?JjK~k*vgKEUPjB<~A|sWm>O0f!ZQ*GMo~w
zOq{G#_~9MT2?o+fC@JSR)Fi8NOY>XS3r0+%$as5n?Jc&=KPPQ$uLoP#7;JJ%HIBUK
zSN@VHXM{Jvck2VHrJip*ZKowFNTVN<_PC$6o^M7JFFZG_iK&Tp(P)s}5c|AXI(u`o
zZe}V(=^f|J*}AHI=e!T<v#oE8)arjMnnf6X$$K*K7e13JhkKQuZWq|II5-m=it5!j
zmB^^hsurl;;MrZlQ!z{lbU^WZ*5nEeODW%D^O=v5H%@9vniaQ8X--sP>1%!-KMP)3
zGnZ_TU*z?S4?4C<QNdDz9y{c;D;=&u#w4Qb&Qn)5Ia^fd``SAuLV|DZJ7+xSy0sZm
z)_LqS0rCCCx{^ifVGOQ85Bt6P8S~piJt|kq%1AueH8^*7srj5aclM_O+i+6#U#d!B
ztT2mJ4AM4ZMMx$W3SC&q4??sn#8Ofi%?EQu-?*spR0~W8yA-mNXjH-^BYER4C1I6}
zo%KwKc>*|n7}lNhJoZ?8=8+|HV(FV~l_{=ti?Z|W%4SA1-|0_#L)iTE6y^Pv2Bsm}
z{hXI8e9nw7*;Jlmg0F8z{N6}oPt{o!vsNuw3^WUqEt~04$kDaQcI+URKI{?I)K=60
z`mOVSIosn^+)tP1ESl&1BP#+GkWwzYZ%sT9dWU8pH0Nw;U%M<*ps^l$I5dSdf$kyg
zN`tUpxsb<B&~-kclw5f^3<&}6eS58eY0k|gt{?~2hstyQ8aG$&;vY7zj>;U&6ZB}*
zb*|=qM0?+7MaEvqC@VV7^^!c({U^!;Ki&9lt*{^c+&6>sYPSs|A0K8~w}r)Ac;$(M
zL$o?&kms1@2{Ofl_$cJ5iT-JkJ-Q927vJ@OEpTv*T`T`-k^Lv-7V}S0$I<q2Dim)2
z)70{R`fzo@Pz#08Yl%#eN$|kM#YIDPSTfX8dHDEnkb{p0uWM)VnRFVV`6t(Gg!lZ_
z`_hdeOg%^eIkan~Lh8!H)02h#Fl}`$AY=xojuJ92$^JBA&kIRNNmE3F=nSCx*l@U{
zFh=KKKpds4%Cmhdi`ioSFryq+nT`Cuc?JLVgNrU=aZ8n!Tra-A{XRY}A18Re<H_Mo
z%uj&fA3u6@n~hB#l2k0@hdIw{msm>7)na2~*C3gu4^^M|1O)8l2O$`oYnNO}(v{HY
z9HasYikgz0_xBVXopp5LJ&0)iC)I6i3M#9rUeX=T?D78n6LE3zVEbAhN{+yjh4o`-
zR7B##Yy0oKy_-v5hV<XVzkl0wVO12NcSJ^5SeTLKAc8%*@>{u!=Wf;6K6Z<Vx^J;_
zhPsCg<3ej}@F?#CR7gOnmbAWpGBkUpLcKk0<J@^NcGked{OvV*guXy8q^%8dbx<pN
zz0n97+h%5F-24yuQs?oQtMPk;(1-uNrt<N>2m>A-ZYJ^nc4^a5v9QR#e&dFGqWG1~
z?QQz|_n$(a9t-)Q1RpT9O073J8#Kj~LN5ul!@17(WMnKYnOA@P`qBI3#F-r>m*P<+
zcdjv8<a0{%7Lj^gFx1M<%w?2!L;JuwB;ltc?HAgh$O#Q?doxhr;KR(!EG~57LxP`D
z(w|y@amx4RB;0f6x40LP56;iG!2a3hV*+?5PtHO=O@l?b_2MwfW+@t47xiu*l}sog
zvq2?s3bdWBEY)q*K>||DKgVQ%{ZiH;(HI4QDMZA@<+7etGZyW)lz#pCb<q2OC2`C}
z)Dw?a>_L-)DGJw@-kXvy9eB6np3BwR&ji+$tB0R2J;@8NU@<Z!Hp^n^-$g}58yt2=
zUcY`VSA;fLpKiNRyL!y_@lcVagb<DeUJGjQObge+=P{HG5fc&VpiWx+<w}yBU^U;5
zh>xJ4U@)gTv_Se%L*{ukHtG@)Q9RV$&O+U3Velnn*)FMP@bP1pvN_#5X3${-uS(3S
zJ%|k<!H#s&F{%~m3=^I|-v!mbIe<3M#Q5gSA;;fITN227>*h9Fw!I)*?zD?unGlhO
z+Pr)B?rlNQGpk<n)rNx<G>)%cCTuC#-#-?>X$I==<Yi?1A$gk!MOIXe9*4REr{iB3
zO`+&~*4MGVzTV@*2f0vY-HFA;jL}g|Nd2~;?_3k2zI6+!J2C7^2@(ywO+`pZ_*h6N
z+#7G=-G2_9S2YL+HlZ%FD_xBXDKemwj&|`NVM>SQP9vzhO^iEM_zbfBD@#k#nwrrw
zw_U`r>ZQsQ6ciyP-5DBYC<+T4mXc8!sMzd;Th{xHGBALlVJv#y09HYMelftJ9m_Z&
zD7&>}q#pxiIeYug9dVZD-!vo1jg4kIF(`|PcP9z1CX=!mPD5ubDW6jbDZ6npQ~8bz
zY>I>Yg86$$XeX-{TG;&_b4LV(2KESRLmGQ>tQXY*oxY(TU8~)JZ9s2>uV@G(777Z&
zypK=3gMOy<Sm%6bq^Xi7ouJNRt<;73+(c+)puc%j5c&_AN=Aw-=e`A8<>7uRciLVQ
z81(%`nl&iwHu}9ZmN<^XX#IOhE9j0Ab7N^>Ad!5EoCuU1cS6b8d79%ELUDp#=%vvI
zyHG-%7>C381Nsy~;01^s+uQpz0%h5NrmoOMyaVWqxy{b50EA*CKUL`R>lowb|9heG
zUHx5tymzR)kx>Ny^l9l_!!Gn_#j)e>T?XY#Y+l&fW^v;FT8BC3plG-QDr|mRpEvfJ
z8gP`h`J#)Id%*Fl<#<53zp{Tk)Psb+!^5egx+VEZ+QET)07p|yGD+6JzyP5<Qm5(&
z)eZ>ZW}fnU|K46KC%$q8lcimof}Uvy0&vn@zb-I5JWQurkSXx+VJ_4WcKG=|{B1^8
zApY!GES-D`x^4GawTEsQ0ZyjRyLYD(5)+v_PUm%IXz(FDo&FOuGng0SH5iR@CpXz+
zoHt-ND9i4F_Dx+BzOObytGYU2psIMaC&@vV2b5AJLzgE~{0VrXi@L7*0kLINKPM;O
zc7&Epr1|0Xn>P}*$5c(h<D4DH&mf@WO@j_70qD8>1iTRk6=4921#;m1BV835PMg(e
zqH9837+E39+0Oc%WuzcDGxIJKxrse=I~TK*O@+@?AP!YsOoblww6wIVmN@)-B;@4S
zwm2apFbQTy%FAc&^LyV`$xCYpW}p|rKYu<*hqx3eG6hM~VkRAB2B{>ytLcK&z68<9
zi-Kwnp@!;QN&j5Sp~gnBW5<r&)W+pZG#{%p>`9M+F2a=0dMyn-Jw0gZg1<nFn4#;X
z8+a4s#&2>D7?m1fHr5MgaYhB&+S)>U0GVLZ781K#>p{W6iErPY0D~ih6J!h7KSJcE
zS<gaypi(0U5Cs~~W}#u@9{Hs@V(9fmpD6g79wyP!(n8vSo@r}$K{58XZKTE&fTT0}
z!SOdUI5-@J(9GuH?X4gu7YKHQILs%ns``nWhesZou#x!y6J=CYRfCz<p!*alOGXOu
z0T_#*E#%zI6BgaTJWz=H4DZyb#@gCi^womDT}f1Lva-rSp?wrQvmpt@GX+=%P`C{w
zGy%#!TR&C>BaavW83U;i^|vH7fTN?vfQYVaY;as5G!F&;8i_yw-Q}VGV;!(k*R~W;
z6U>hEu6#2MVn)@c>vKJd7?}k0+Vm5oF9OUL%t=CuZ|_d_dSql|fd3omxzGZBNMvNB
zVSf(hl^lPw4T35$0(h=(-zEd~pk*ke#)mTFhLE>D)HElKQ=PgGeV`ra)4f8Xq8`xy
zlL!^0av~xkDGJyyb*QhoLtlo&g^`YVz4v>ZP^6oA+IdeDN@GNYg{2EECdF%xt0qES
z_ZAe?Sz?^o?_VWINJ=6T#w!?xuo~;jAL1s^2nDR72#tX9Ns{F2GaW)u2+ToFSVvrH
zztIh)wTTCChFkE>D5De^i<XM&0q`1~LfS_tijD<U@c`=I*~kewUH-B8D_alS*#B#L
z1pl8IWQPO)zj{*^+5oaL&;Tf(AWDpP;>0wRv^{~wIwDF+=QjKC@$s%~T`{nnQuNzm
zLDvObym;|k{6XmkP60DM69>EHtla!SzSQwk1f5Vhx(-Y-2d&43y_qrJzkg>Q$=9wW
zK#&p8I*iY`3_9$OBNg+|hua3Ybbjyf;T|}QKg>}Pk{wi<HDguo^4U7|cQ#~XWaKb1
zG+^1tLR(HCHT0D{M(XjQPgpKf^MOcvnd7!xp@lBuBWc%qH?99X+;T`2EbG_5yF2{;
zfq*tNV!_E!l^CiULJbA9lAxS>DqYXMWH_`@_^qUEs60Va-{$32XEW^drA8iRqSyTC
z$$Wn<lbsn>IX4ITp#TmU^R*A__*5^0HTLe^J84716p*W%BA|T(sp07rKVvs8(<_LB
zmI9l%vFpR($`rrrqHtEc|6K>Dt=uCdN5z8^SU915V0?|@KX~u}A0MBY{5a>k%Cr9Q
z)6@D$;k$OthbQ}cyDW<&OzNusfq{YOwiXdlQFtVabX)9Wrp<$K?AB*zM!&q_ymV0E
z>@p_}rX@Uo!>_%u=5|T+^z`&MBdAYTQcr!F6}z*$yAH;+`r2xqabGN01ORqZ{*)U4
z(ujG?yZ2igY%T_&Y`xmVH{qSuFEk{aHH!pZ3w)S#*?lZ1Xb5cyiP|`v-g@K<Z>J7F
z&!B~Twk-}g2=!=8SDQ%P)b!ubn9&YVBuKy9<vUNKdo-MRR^w|Nw|~(xGD^1a?eEC*
z34yUdbn#ibKDd_My(6`TCjH9mXJ)kTocfs|>~~!-%JN$NQd(8SQVH^b=k&OB7iaw^
z&|0{60hC`yl2j@TkN6vx8C8?Pa>nS?`}fh6h`+plb=FddscD2=qkhUCw9>&Laek<5
z^kRS(MeqorOG_H;qt1dC<KLj?e4)W%WIlf+9dv)=z<>%cg2Li(DIzzHkXs04DO)Lu
zw6vRD+w2G{Hz}KelpMUSxo0J`c~w_e>u#4)QBf%a!xALcD^22u$a>;4u&z#p&XNxf
zpdn8OFW)y$$MEvoiY3h)^B1}1CHqZK_{MbH+=J*7*A)M4&!FnPG7YupCRBt!J4J#S
zV(j5eU8(jz{RVd!uM;cC(X?e7+|Jw%s_<YQPH>4#Coy(XGcB^tv#aD$;ogS~ZE@O_
zWKh&xI&*=}KIEp!M;+9meAZDBshe|MSieD(&mlQLVD={*Fo6RLiID8#!pQN{D%c*3
zt|^QBmN$~uE_)#$Y`4)k;{MCZqYaKegKJ`rbHBPmb6AjTN8tt+&nGrt7=mc!1j$n^
zJHMX46g2kj?on8w09>BIZWpdo`g-3bv0IKoN0hB_y<IYz7Zzv~t4w2buY}@YXW=nR
zuLq#{#3Pw9rkabyXmPm|EWm>o30zXKFZfl3zjmfG&`VZa=#UuT*Wu+Wv?fK{^~_+e
zEVH0*&VQJ>e{f3$9!&9Tt7kFeYv-e;0aOe6@S#GZxUdcTAWubwIS=gm!j?5WJLwMt
zae&DBvW_+%>qqMcbnh1qAKhdA23#N!6S~|duGfiK4XUV*wq9{Qb_ti-*3KqHqtq!Z
z-z1VC>FS?|${>(;^mXlP$^iGOhb-UqJ{}#DDUK_N`GaNL>aNn~))K?_l?<*J9BtEO
z?$H?Dj?X);8|cxAV+?yHSx4j=MLn@Owts{A_9HJ-gZTGkH^YtwONX${64UX8tI=i`
z%i6lDR3wfF(*wTh?~vv$u2gZ&D_+}LpZ*yMLT~%u$7kZENO_VtRetF2zu)~cy%9{W
zT6u{|>UQfbX|uiGiGOY)h3P~7nkGwrw{;=xGM~izq)UHD)&okv;Da71_YG)$eLu&U
zbpfHi%MNg9!H0{-Xx40&#_g<ki$ys@o}muPlX2>90%h<c&2~z>qd3zyILgibaO%N@
z1`^r~Q?_D*9iMSa-rbU;<Ge<8yTm2+Z;PJ4=DD(@UgkHm9YwWtjsrc3b49ykiW}zF
z`ulqV|HXc)c&;SA=N~SR#+nG_8O$^%fSYu%ywvC=-0ZOh3+vPueKmF_^G5%6;R`hT
zOsj#jv9Ih{zG&a^;^3wVVjx{#XSyg?*X<_{waY1uj+R}3i_df|ock&TsY8z@!%(iA
z%HHswy%wB<y^_A|Ij7hspu4_BnDIwi8Q%bbP7X&7lXlwpKFj;6|1WNL5rfsGw~c@C
zNqwhrp>%UR{LktRE<ACOa)~TkHE4Pl6?21D=npRJgD9xFAG0R#g&uIOx#4?9^w~KJ
z^da{kxt+eZzBM;*X-2<{jy)pks55M-$DnTL;Y6Tp2G+6Zh~Jm^fY@_r*;nDLnPdDC
zs(eq}CCQnOWLlMf3~$f{*yol8lZMxxY0e)m0Wyr9BwD7A{o-}Xs6Wx5-`*kPXd-?h
z^@{WMiC<XgW;Nt8(rm#UI-uz_xWx_c_lfE1VvSDsa);y*@4e?oY+~wDdDi^ZtvMb{
z`>O=DXX~ergwEWaNZsY^Z`(}+n~pI==$v-96_3uy+z76DuBCK{5qp9Qp&EF!wgNVM
zri#ZUJf*}#ca$}Dez|s&Kh^s)k0;C%1007Dd{1geyFl}29u;IB5boKa9~skgBjw$*
zrKv}3U%>zp!FXALP2BR$tYI%l)x<v_QZWxS1(WDLYfAO)-OT+{3?rq3M-Vzl0Q`7d
zS<x6<+&F{{DYF&1(tPgE(jlJCPhfukD(TR(9QOTOrL%cVe_%8p&UV5#F`r#N)dS1Q
zZCdazeNbTn({bvHd*17JLKi2Rg_$04rRkf>#wH|K@jnG*G}g-0OYQ2bs>Wke!Q?n8
zGev1B)+3*RDkUN&NzlgB9<fvfBu)wo;h6=7(1wq4-YcoBtfW?2O=7Gb8PVX|U6Tzq
z8ZNOdyuzVD+VSi|b7GYIT9~Kjql1GTwL^kxX<${(_1-g@d;-2YbeX>B+px2<L!K!2
z4XdAbf#~meEeSVTIz~~cE_+dVvlK(r#e=)^Y9P)F502niLoqUCYsEKQrc0eFb7(%|
z8e`y$zTmL1l<4Sdwzjqy<GyU<IYums?qdx*B|EHTT{b{;)kZ4@mLr~3(H6Urogf*3
z0=q;3vZgd5@R*}+6|>R=Fp`i)4hVGI{d9M6PCEBZScq9VOeV=-W<*OVMcLtZu%t{H
zSdy5Ij!rP;L3b>S1CK*u)2=y(^w7KcPf~)>aY^9TZ5zYPo7kxMS6(N>4g-uXz$;@#
zuCA`M*RJtHQB3joZ6wwjFYI?`1Hx3q6cmvG%PaBy35Ka=!Wxe=-YfX@^T=I~emf(K
z%&e&baXau;>n#@H@pNwO*Eo>jpvzTPM@Mzt5xOI#k@z}w1Espbp2rW<@YJyvRcwX3
zI){8!k;j<ZdmXG|#77G}UFaIKUSJ9j8xxg~fRurkxKO>K=!wAAclLt%$~&yPTN@ci
z+CY;lZRz!Ybc&I9YIRMGs6RNVNk~FN$cJJU9^7GCJkJix!9uGh(xGbDord9c-1_(-
zis^BuPb(;EqQdJksT687?p0cU&iBC>-umK*hV#y{JGD{f*3RZCwCX!R43mbMIvFAq
zbV}Lr!#3mRcj3`+qEb?dn=6wCPnM`A(FiOrFCWu*us1#rZ8pl~33*XDU6tf#yRwvp
z{v6eLe5Tt}RAVWNoA5LW3##|_2C{`-{c?tJ4>Zop3^bTbPEG3lSxLn?riy3|m2%AP
ztqr3}sY^$eMFl%({5L7Xa`MM#30srRgl1YX5C2f+EC7R6)#4RKXESG>jjoqR@T__8
z_s6@Qv)FDkgN5!w<)W9EBLJKL(Bh|9GRL}i6+JUrSLv5ZYK}ZYR2K)Y%CmLHq31p^
zCn^@KmD05)v7@<sGXQ98A8lTrWXs+ZE-l_u!*XRdAHm5A11KIsTY%LRm7?^mI}33y
zXQqyX_nHQnCM$n25i&IuIJ@Oh_N8-lmuVeA-sVNXq1wS0tK^9G5p?2`DJS1;`ZFpy
zGAikdmeWHr)0fxP+7<r=Qgw=;7`W?31~fVrq7u#ae=983g8Dwx>zk1M^A*ZXZWSn<
zTkCdK*c1Af)^KqEeOFgilS_(d4W7^6uN<Ll9S1UE+DGSmrI)t6pY4;Swpcru{uvP$
zS*InY?eRQazU<fR(-GYE?SGcZ4a@WaN5C#)$R73L*IPFyp3eVxjq<i)!Ka#GE`<ON
z$!?D!`agt`iUY#D-&^0N&yh*CW0+0&mlD0!f)EWlcVa>bo8^jF)THh>2_WGY>H`c|
zp@u0b3kye^!d~p3bKD!43cJ8p^?z~p)?rb$Py8r~i2^Dj3IY}&ty0p8A`Q~bib$t)
zEg-fCNOvhqH|)}&BBFF7EGZHTEJ()^XC8dN=Ul&Y{ySb5ull<CJa^1J_so1|KJ&kK
zBLA4=Q84q|^U9y&(moe56W)sccU@d+1L$)p1rgU<&rG{b?oubHNd9lxJdkChhD*>w
zxk31y<k|dbfsX&}emW@kO^uyftE-O1QL8iS`7<Q+NL<i9hJ7ayPSGC|-oYJz`k_u)
z@pCKfZ~55%?^%Kkv2;^~S_OS}EhJPeY-MFB{ePoTLH@0rLYmV;4KKGf-51PnKP&d%
zHFP8B>xqJAOjxfB>%cruD}wrf?_&r(?$7_c^w{BFeqdhwaShW1qnpWaC8LwCQ%Ppu
z0r`9$?pW4$TXa2hRK-}c1^U1(*YN*+^B#OtcA26DxqmyXKVohAZvF3tUz?oC$aoxo
zzgU^gr(e^T8>*_z5|kK{3!I<M{z&CZnA0URUzpvRA{{u;*&?KH_b#2Uep$gEhv;3}
zeJ8-d5F}`u_3FK?9XCQ0DrdG2l?!F;5!XE2-7{349h7%W>?(H&i%_k~5%Y!w0m+|z
z>wC50o*G*OHbQ=F>YqP3Np)>)9JP&+5i{K(Qc|fEE*PtxYrMMy`?LOI>pem7=V+y?
z95eb_t^vDk{}oKC&bmTGs8wI2h+E`*SzU!)tsxaNGvmfAoq%_3N=2{5M-ZU!ad}Q$
zXjty=+4hv25!P$6C^U;w{B_|3t<$azjC&}*moH=mtYjr5%9ly|Z@ME0+wGyL7Rqm*
z$nS;2p2>cAInz)y)1+aKw^Tl&Vos%Yd{UGjyQ8sc(5;TR0$?3^Y_@3@Bx_`bx)?V8
z4C`!@R9IZ>OjGKN73l2F?6u-!X3l(S!p^T@H8jvz@4A1b_}v9%WaKy>4@tzDj@-Ie
zFzNczomC#4JL?L&yL~HTOx5G6pl6iZa@-$$x%;J}xH+LO3K@*0`s|jB{5x!fW8D$J
z_Ant=F)8<Q&*ZsS&sHo*WZr)}ON!s0iUAv(2Hsy)x?7{<?5q#u6~q0XLp5R8*Sh?&
zcbuZb6ljG--}>z3^aO0?0&B!E2h{_#ryk|bSq<uVuIXBz--SxKD3m;>mJTMN&e#@h
zGo)uVVr13s*MmZy?{{&^ScGh}mx?iz3Edt0l9qvUb>5aTB{(?h%2oTaxzKBHbGP_f
z)U>81sBV~#$+yY6-TkZZcQrz<q~Kiz$|q!ZyNhFyLo*bJmFNXRIW#`JI$1~|k<MrC
zxIg|urk8Y&zLq<6mObqxmMSzw>Mj?oEkq5w-^<c$nn;?Dlq$8bn<{^YXGqT|yB_7c
zt-xWZH`CLkhh1AA>740NixWgj>kgxOvO3?K?)2S@6ZP1CFqma0e%PYWrU^N>pS<ZV
zPIozIGEx(&-8z56PBrDFQT4iJ_0~?dUWtinkWXHKyQlp6;8mqWn_MgX!mk4q!p8nC
zjV8o_&gh$+iQ?sP`w;CT1=vqJIoS_izvg&oVdQo3Tf=B=4n6+9E8FRdzGuNq6{lP6
zZvB=}zUEQ<cMa!5ZPpr2#T<E#yGTC2<5Mm%xFuGO*_R8G7W;EQAK=G2oT>Q8SdQxL
zB8}<_mygDZ@3GbSu0(_2-(cBh*Kr-DJ=sZqllnTl0DB+bld)M&@r~qFFUO4ne)FI|
zW0%F3-e6gl2<f>oX8Y4NAP0G1L+@2<<i@VdWOsgk))~a8R%-V^g@X&?AOUrBv(to6
zGq>|UwWcKqM6v|<k!5<h5#sDq6GSoTiJ_BiQE<*ghMsOY6S~>E*!NHVCb-fc)F+!m
z=Bu?iw3P>NEwQR_76=-lsg3oV)~cn_TZ^BAJs&U9I8I_|XgIZT@?UpIn3pFoadt%%
z1<98(RhTWuA9Vf0O+5f77`0MPKg-CyI&GY*v$bVyEvU)l<W^p}YW$jdwIiRI-BYQA
za64*}$n7$HiQABaIK)ZG#05H`C!cr7B?^wM^KKO(9GS77*eh@=FvaE=8D^}RYakOh
z`tP$p<0c|KrY_n2N}u%KYpujuwCtMV2)DJha5+%)xk6g#&EiF&ti3EYmwFdgL$0RL
z>}%GgW1v|z&(L5<^Tm_EZo*l;@v%eKuz&UI5bt!MNN{Ew9lFGG!K&+NUTasE-s)<L
zQ12a*D-rSqbEM`98&Z>e1rv~rJF-W}94SQI<S7~C@um9GihX%$G^TN&(!<x(yH|SC
zDB|eS7-ig|gTm2RE4i*TxuaA%c-h)rJqoJGSiuMhlA^qd(0|WD0vVrbcC@UzWtWyh
zdvn9+g#;6(V?De)IdKX(@<$`J@WQq(w<ih+vVCdpPc46(vaU3-$-x%oIhjL+KW2S6
zOgZVlfqe)7fn&H?g1Ha5D*t)}c;UK>FdFGWE91ePwxu!3&O`4uXgiALo1C|{EyZuI
z-^C=V2rv=`JUrwQMC7b{Wf=rzU1sG~B)Nw?v#|%~rd9vj*m5L9VFX+};$HH>Vpq6P
zJhbeOMLH-eu|IP4F4pMOZm$L~>2AEa6@MY^s$s3?YL5CvH)7E%eC=ASMqd2c)0c_;
zCL)Z;`dvB-=2)LeFPG)78<yXWK`FWz`ph^s3zb&$Sft+K%i3Z3BF8s`+d}g=e5%_>
z1gH!n_b(zE$?~+B3Ut=A=aGkec7?fGV?D9mrTM^4pfwgjt^Bx3i&_i)&>rifFz$0P
zy|1svP9(_sEH96=w4CquWu@3_Q2RaPk>36BrNG=Uf&bqYj9vl18oNOh$~2LgJ^NWM
z%tqIBXT1Ma8%LI9_$zPm`wO=2ZO#|_7T2Q^J>>@q>*yVPmr@}CL+$wypubjoATj(M
zsedE;0Fj?3BORaADqZ1@)t7!-T1vPt%u}ITa)seO$79_W65E^ix}F*|b#>7@)EYlu
znTS$*c2G?xS|dAhWwAj`FP88EdCq<W>q$d@ac^T@7#jwoV0$xJLKH09VVj+_twZY_
zCMdDAP5fkB&>v5#*WFnWSj|<^0)~P%=lL-X?MPOY$kzCq|K{cp2&<I+R0Jb|PF<bN
z<+i8gh*l2I{?AHA+;x)w{Jw=PD?F7~naZM&vuQ+0ufryym2s(h@l|-d&3}6qhdk(l
zK;yt~LF>rwvO)s?19wk%tKR3u-8J%FE?XsGHF6u@om1mA(}Vck@&u-`ZS@KDbeN?H
zOvfh-4Vz;6zP*J6lN?xX-UN2m&L1J5yVAPOPk<9ro-jF+xU@d~Ec)om_%5@OOrwWp
zmh3_;FR}ls3z4IG=^e0k^zwy-KlwMF(OWQ{rp>XVnQr#hiCqQ8X<dJg*BI64{c=fx
z_<XmSGJ~x|NxyUIplV*c3x~Os|El7926I}}z1Q-uspFLQ74!xjL{8Lv_6$A$-n9+_
zCWhWePO_mC?sV;;^9mZ}?xxtSvWQ);KecIBClWg`n9||UwR!BMms0E#TNm$nVM6=m
zE`VF%7aiCfd#*F#-FXQvXU6>xhvw%K?t3U-9+BEAYKWrXIG-9>tZ(JkY1b9vsQojv
z^H-tPqJYJRl`lto9Y_brQ+G&8|JJ8e27;IP0A6|0nr`|kEw7!3Qle&aZM2p|k=je|
z6PbkOw0UgjEOUK;zEkz?#yw90i}j>_{ku+e72Wmyp*%o_VolVujvIjMjaV9|95xlf
zp(AhYncJas*iNl0Mv2z<`mpmgJ_<S<MSitcE;$uwB*=>J{C(Woiwk+kC2ds*TKxI*
z1Yv>&*hdW#D*lX(r2u-OP$L9>F!1SWKr+d@bKF@F4*)Rpaum%}GM{-W$eHLu2`=rj
zzC0}#rl(qK7Wc6<bMtk}YTYigqRcI}8xQGkedDP49u!ft@l}LS=w@%($MbI$ktodn
zCsZOAq;S$=q|oFwurQ>Rl<*^%FthjHXFwyB$*L4PJ>BuCoKe*LJrg%b3NRu3Ay|qi
z)u_Re)%dJf_mr0h&6B1j_M_&qW`_^Swn^G2%-r^=LJnU~R`1&+QP=2y(twj0o0x2j
z;>`yv4FO~FYqn-gM})jL93Y(wp^rvjYaN~FNFKv11X_m5g!1UyueZ0du~*E0-N=O0
zLCYnKRL#qh?Xd|fwY;|j=uTw?SDu@UKdTNNPBl-$;sk1zgGxNHU<{mP;<3e>{gdTi
z0HWOzPH0saR#8ysg2X(?ePpBM(z&th1L$*im4_2h;oK;_GWouQpRm}F8)L{@^#~@Z
z^|{hdVqvX(K+7(>z{7aU8J`Y<O6lXHcK=0*S1G?o(Mlb)T1#x_J!)N3PGny{W3E>@
zXnL*9bpY$O22ghf7-ef_N4hQy=K{O+1=-0fG_105g1Y(_(B6vaKi9phy;lkMlCr>y
zq1fXx;1g=&XJlUh12ECMGj>V<U9mbi^z?Oi;inRhVgfiIa5plXH7d*c_U*o$8j>aE
z3CV?zAqFJ^oWOPsj)6m!KoO8@YfecYt!%<z#AFo9D5#J2CruafGIf1hrGay=@9mvK
ze#VES6f3MgP$W%pJcP;p&OpHzXA$K2h)p$G6R(_UkIK|wx9q;&Wogq;H<rRqOt*Mc
z_sr9Cvx|OtD7wim&P9KCSS{bEbB)+3!z?H2rkDN#XL)sJ<I}%^ez5n5q4KNB2ez@$
zRQMHOr11YBiKOML|7UP%ejvGTW@jB!cH447epW-gEFNzA4Xts_AEh5&q4^X^%5z=c
za5NJWUr^$@?jCaDo;r1Nk~`fTj~Ij^!LWMwE_A-U!C4Asa0vx*sQ)AJ^KHJ!Q%%53
zk)VuE^*0A1oURPViN>Y!uXEYQX;`mcyLOH3s!`?hqnNwTQ-`ZDk=#n@g#zGUN5xg=
zIKFHm{A5v?38wL#?rKfqXcuaCE~#qh>f)%baE&;}Rq!s~tR<CIDd%^#slv~(8wp5s
z@Q2X<E1<<4SjNH2%R2<j<9Y>;o`r^m@hvO>s{Qoo)0tm|pT0QveIbNzt(PjdGDr?P
z)0Zyl{58?r{p*OtW(8vU?;llWx&flG^!I~^8}3NI?{0Z`EC<$#MZoGBx1p7I9kO?R
zO&|XS!yvB;n09sclM5jj#sNuHK%KM?^Cn23^#D!pdq>Mz0?Ad7O`{B;bvKaM*x%a4
z1_WZ|U&w`}a@y3tn8jA*VtOTTT5_3kRyRI9^Vyv>?+RHGd|gNX1eOuJGVH+|v{$B)
zxaF7>`_;Pr#V7j_1|ab64k=q9ipO(%v0(xXaR{0r&^qL)^Z*~(HM!CepGwI0;<mT9
zcbOm5g$xcY$OT#f<kPHmqmeE&G!-;<!3{X1U6zAtEujL~yf%>`gTH3TLNvK?3&BD-
z-A-+PNPt^eGdor4Woi&31_)3eKTch7{%22JQUNdyQVGH#zwZ6}laNnhzKNXnTO)L5
z&U^%Lo<mqz7g9?4klYapT8{IIK8&xZqgoRqSe5w`zU3Z1e8f^IU%<+!rhGoQ9HlO(
zd=rX}9d4(d<Ibr&S3^>+m^cTvf2Nft;W>4x)083`lBek>28h<Y$)1npmb2yb!%SyO
zn1RvVB!A@EL{L5-1(N08#xIQyMbf<Z`5OGdB=B(|=E=sm8b)3##><%V7P6IPkV9M+
zeA6WL^Brr2t4oI<L{i-~$*5!@es|pGe0pA?p$piTU4=l^?~+TySZWsmc5fnDE9>E1
z&v8n``PjcVKZ8wP_8Lt}T_1_sU1o-2f-cLyylsNsS|=)bx{C~(x~F#@41|?5IHzu>
zKcFOx2V+Kj!scsH^n!{Nt6J<Ldh&|=3HyOFM_K?$>!6*+*jG@0gllE*k7i3`Br)yD
zrMD$%RTEZAkZ4KBQo4LZPHv^wnk*Qx)oZbu-jHqPJnHwKQsBH^^~l$E+n92NNi4d@
z(8C~C4O=qymU3U6`*s?2WPgg8b*Y9R$FL9HbNA}iTuJiMA=XvGRpOxKKW+Z!ItA~q
z5g16w6}7$Hw6IGIh{gTUE?`A|S^I1?s~+_?vE+Sxps`jy{KJF5BHU^a6E~cagqe-@
zdk}R<>p~o}J3+~R{i}&Xq`mCQg9jDU?+SX{7F$v4iYh4~sUgR%C(cNvc6TS6ptGr;
zBGr4c^2H&`r6=qXMp@b_Rz33X0>a{z{|Vb?Q<#?hCmDtMcXB&hG0Oh4?P-n-wsV!L
zh)FT_{#ESq>_u1`Nl8h<Pqy5#HL%ad>eK?xAr|iTrkZEPKf~0a4xWQLe!MeBH)p<a
z%8t`B4mp6-J?;=VTWjZQO6n+IaY{3p@HH|5)2?%}1xQ$Wy(@VPQ}OntT7KXeD<4C|
zrw?MaYxOfc`0JyFcZ!+fF><zSmW|)ptwf45*RBz7GBz<?q{>ucKwMW!1|*aOC(dyq
z6&U=_&?x;AW$OoHhrJ+LW$n`U;WF6KX<eTWgI$YA@q(vs`qlK{jMi=u1Y#GC5uXrQ
zosnCf)J?zbO5_M+w5CO=NZRH`@1F^8e;5qEX9*DRf)y2`e2~uCL4n-X$FW#MYc?Y>
zz%vVMWD%dqGJ?*UTH#0jrypI4#z(*O=H!DYow3>R{3pw!S+F>gAXv;k*C`nrXL#a}
z+yrLVjfXcA9+!CcIrhY;$&4(JhMl=c<pfr6e6lw@rx-1}Sgp%;hTIfRoVziKK=^kO
zAwWpFARy17`c>pD6|OheOlW7Ro0mhsEN4E(CHPeXrMBLKSQw0YvftU$#tCy}79oEK
z>@G9cH1lj|jUm0~-y-WmDyfm{LZrmj551v@1$z-n$1l0kcA5rlx2wI|n&6r|k0`8K
zX3~%|m)FutIFt87z2fim4kH;MD}zpIQ0vy)Kz{U}<{*<hYg7=Y`YAP(1yh4oV!O+;
zwDec4TU>Q3Z{2N6bkn{k=Ib5OMeY1V2wey?*Vv;h2lz9k4ucM|91{7rLS@2mG8*y>
zbLJhL0viQ8+f;UPs5C`0ramTmKAI;NaR}9v5zeyFC9L*gAi}UXo?Db{d~bH^4-H`u
zs6miJQ3ffVzZx=B!M`f5XlkKd;!f>1F2)wjO4*8($q5W+r&z|NvDd{Ii^NtRJ|f>H
z2IrEU+sI}IG6WG<1VU}Kd;h#;KL*gi;upm%Z1d^Gbe5L+5{`J>d7Z_$GV*3`CS`_t
z|56?9U$;`}Wa=uMYwJ>n*qL6r8WJGc6mZP}r?xvg>MXOp$Yn&Ng#gg?iWXL1S}d$d
zKEiYTxAuKLrs$N2;GFK^aW744M{Wdzh7g(%V~e;(K9s`QP!=<b>*-bNW$9~IknAky
z4RE4Jq~ga-$i&~fbu0A(U#i_u>erV_>35mBmvE5-1NPZly~Jz;fElNzx1Jr#O*1JE
z{wR%@1>#<*hfiFyw`Ug{)LW&cttSK_qcVU%^yWw(O2KRWR^<upv!gW0$5UuZ)(WvA
zE^FaZX|Jw(x|FnHiW{%@L6FSYSj`|FJ5&gf1!8HgFp5!B&o@$77s;ddI{~?2dyos9
zrK@h${@MA=A97?1C)tFoe;D55pQ%*M5-5+X8Qj4Tbmr4NT`Yg!C$vdo+(xjkhDO|y
zG_YBk{*01#`)lRr4Y|OZc$BYPlCNFvyyI<9ZW3d&6WJl$53H8M;xt7HN~ES<aM&0{
zp9x}#4x02iNRIK@N#)j06|hbnePm5CiMgegB+>bbGG_}}F^87xRUc|wVp$-HA?_Ki
z?C+gn_A_>CvcsOgw9CMD!|8cet+pZP?g&qb9%ue_;CoYw)2o|XUx<1|6;ZP#U$Lyr
ze(iqjEol*tPG@;!;WiJwq+7~=e-bWAB<65k(18(@OGWQo79+VUVrkOv3|VOU=2x5}
z>Re;v3}`OfG_#IIOZk^Pc`Gm|aYc%PqDTv!i)zc-&#lwGKlXBa7PQ%juepx6!N+8k
zyMg6y?{RA*Sy@7wn!l=UU}L%-?BhrL>k|ZathKqV{%~oV-YV7+BaqJvgA>ygdHVI=
z;5;B9Xer;aE9XmJAVZw8|DN?iYh890)oO4pDZZKf_yxafiU%$ne4+ZJfI?Yz(dsZK
z6_#!aFL&1~w-ih4L1BrxSS-$}XW$C=Vaz*?l#J`oDXt$2*S+(EiSIy6nA6%qaDB|J
z5Q0N!*us=YZ*i}Y*KN*<!1yR^AJx?zb#R7q6-uTjr3WHv70TPDW>Vak)r@tGGhX)=
znwrMwqP*7S1Lzd0J>}Mi*i6mjOGoT__a65mHA;TPP%16KD9OWZ@B@+&D4L3#hx}$s
zh@$wFFa_U_Q+<;8HElpvuDz!>(KC_4WYjR}EU%s>YhS}o9O2!Wmg#)WEKkEGzq2K$
zB6gWk<m`+pA^^vrA6|({e%0fe4QQd0!gTzrj?I%CpIc*W15SHPLt=l-cG`;eRQE>K
z`#9r_LYjyatA9U4ut0nj{G^h{FIOV+WhM8@V|G@1^5svQlcl9iVPZjsd+O3(DUu1^
ztZ<9LK3q*rN}S%AZ0Jk{p&VikYYTRL(eozGq>p%k?U!SERn|98;7bn!8JV%ahxKg7
zC!iOM##X1P2nCC^#<SZFLOU6F<{gAse$Bj|!m^Etkmw~Pe#ZF*vZh}GPn4|XVdVpr
zdVHHn)P`$~rdxm7*;1J3#Y9|g**h9k>kZTxR?PAcdbC@vtV0|_MS`7C;^KcRa0^yI
zlDFnM<@rm7j&d0?{!~_q>o@fzOv=xVROoD)Zqk#MbkIB4eCye_x$w~Ki9fQnTM^EG
zlXa(k{yr-Hiw<UjRz{s8yQ~r6FFg0dul~TgOKbu>gu%W*M_j74h)aneBptVF9cJch
zi|b|7O&^?cavAq$z;13#KBT7Jy>hihYJGW1p&=-yz3SuFoCCkG+59H2R(46D0WST>
zf;!xV$(y!bRNtHOedT)bv##=Mb-q_^?eiqpS&TKR(_BWPt3Z;ft3*59a=arjg^9^Z
z9=IOF@(kD^PAtA%;IX~f$l3CEeQ#$3IsfZORbGkHAtMV(8+>y!(C)Kyb9a9_aPYqH
zC+GDam8+ZU5`9Veq+&tlk(?0Tpl+AtysoXQv-iZsx>-c=V!z9*qe{#ISFrgp57FJ%
zEl2MVI%F_ylGLl$k^6?9{2ARqux55MU6<Da<*KZor?kjbmxec@CCgr-0#jSUTVi`o
zfj*Wcd7C5wF1rye-AI1doRzua&XB8}ofri8u=g?X&xeZ>wWlZIe7*ZBGT?SuWWYw=
zsxy5mu{SPvUp>&u{`GW<JryYp=WAX$sT`MG{nATdZKANku{A=k!aUQ4DaJbP%9YgY
z{7AF5$ROsZ-9>5$eGwWYBR$vnYkd>FT5}E~S;@&Qz&uO(kYr!uUZf*Fa3Q@eQ{TzH
zr`O)TXPaR%JEKY#l|a&@+!=qkV>*t~P&GU~bNQo0Vd3QInLd=zSRZQlO8qz4^$}h;
zxHN2Me2`VJJqxSwx^}lGXH3B4L59ph{s3rhqIA!$v%;&_vi?2oOv0eP+wQXR>aL;v
z&URf=c5=?8?tAy|g@!gSB)JXW9P3lyjrnUmsfgNu41^a5`gDf@Bmvh}th3XdspjdK
zAwypB##A@9-OGQtVuIUtuhrEMzo)lT8?mP%?t{O#&RwqJbz=RM=bPJ6-5P|v%4R)O
zLy(;BR#*%r1SEO4x9XU6mJuN5*kw2gXdr<Xbp@gQs;ul8WK^{#&FDVrx9c_NYdzfS
zF|$tcsTjjDlx#Om<Sh3vrKZWd4YTjeqRb|v*tQ`Um?=X|_!y9i+Ljt9=li#1B4?4u
z=2x?tn#x5Po|_3FyW7E16TnnCcN2MZV!~1mE@?2YY04n)ZX0DMUy|6Tk4qmPQlAbC
z3H^PdRyqE|WNU=yYAAFiYW#U~LPio|{d|1;Wx$6hVR;4dk${WE3Mx4|R9>m7m;O%B
zr}I(3*A^Q#nR98|MH!&?h88$yg>);{bG@*O)8COtN5peMn7-uEGv}q$l{R1b@$WGW
z#k>_ins<RT1__;WxIaZUuzf)GR68ygW#9WHMvxm3H-@Gn{=)V9)vn{#1CrLYOf?(E
z-2K(}uc9tyKIIMWLhbEnM`%aA_Kdd3`K3b`u*OL4_2+D2y~{mF<NEe;+9+-eMh>-C
zvC_!NdJ&22wm$}u#t*yKd0*IW)CR3~>DnzCzSXYdl07xLq?PY0LgD8lGWNWeC3|*+
zhE_j!9xd5d8mE;`pEf>+g~_FYALzTMzm>Fi^UE%yo2+4_JROQ_XDO-^XDhaa_znEf
z?PP!lA8F)k2yOG4qwXh@2RPifuxiz)CbhWjANBXfeEe=r29%`n8-bor!+rLCE<~VW
znP-eYvU4fWi)eWMIc-VQBTTCnPotxFI@^3$DKA`EC2~Sl3*6iqdh|1=k=YP|YHA>l
zh{p_7dc>d3Nb$Au6?a)x7ug;)uJ-7Pn~CXGr>-F--|`L1WS|?&sINSiJz&TPZ^^81
z6$lvSHMl-875Bk<>B;i+xIkaDkd$(wjoEABK>ZwI4kRCdwW@^e21GZn><aA1K&q^H
zYK`DuYd!ZaDMp{a1-lE4dtG_khFifNdnrt{#1!VLb#hzDa`EoE`%d4!$)a|$z(xmj
zH@23{{rB;o6QR(Y#qu*5!T&__*YyB8J`!>kGQJeq?!G(!r4UGk1EF(A5_&D>LD0qi
zl@ssJUxo|7ch75<n(CN3&enRoFfg{-5;tiVlkH!0kdi2(Aw*rHD@0wc+n-Q;PyBv~
z#?wOGja}5<Ez=PRc8<mz7xx~`wD;$~#My#`&2;=;$g-f@=(;hGR_%pRigS-YZE*!;
z?3PJt;^qvW$kOO(?h22PBN*z=ab}4;iMExFUy^}63%$F_GHn+rS08p596vsp8{8&t
z?xQ{b>oRoXoV5KAEXiZ&o}znnE-fw<nyyh@Jhu7<-sZO)6!E!3klVn5i4Y?ujI3Yo
z^cxF9p-~a!Cqg4~I@i$N5>C43boJ|%&!W^8j~CunnEv37jpS3xe43fU#1mUrl=_TZ
zDMna5D<`}+CuG>GE!=A%V$d$r*Oza3_8n*HahlZd@Q1-jV)`)-Cd>QnB^I&M^>hlB
zmVo+vxp1-l8Equ3)mZDx*ix57iH#+4VXoIav*?&Ks`#wgqel7fzrBYunu{rT2=G0M
z4Cj`A{3nEPcq*I26?h{=Tqss$VJ@u<OqO%!k5!%GZ`oyWT*(NJVQ)#~Zizl!vUuP_
z5FK;htf*1n*Mt*T&{dB8Jb^?BE%l?&8}pfZ4=)y#@%l|~iEpj$p7o|9%?n16Yr+Y@
zwc0rm6-PGrI{>q>@i6!-gd8o7Rf!xq$a_es*!Qj2UKL<hoo{KxT*>2Q4x1kK^y<Uw
zl{uvh_b&%EW;OArHl4EH5U9dC=tk0lL}P#9R_dXP5xjx0@s$0_*F%q@jI0`AAreGi
zdzQfJ<i7fxZ32c;J3lGvho*MSR`t3+-wm=U4K>}5ZZ+;QC){|t@s-0`svaSp&NC_O
zJ89FgK7G?mb4|3&^<2pXkMU*)wl%XAb<5R69KVSj6n4(wC9C{%Ceym_VemOPF8#>x
zp=A|b?cpP{3){QvVBxi=)XUUc>$UPLHN~WHXh&$x>8F&sRp-`M(#^hXGkRFUr$^(Z
z(k-x)*Aecc-YtZ&&v^YlvWUyF{gQgkDmRTEdK1G-reE}Jy|NtHaqDe&b?Wn%gxweU
zU`hj2X6~0QVk2T}0eEU)M4}-_PMDM1cEFL;EAo1KZow!gf~1wzXoxwGNzRWMIg40E
zD8eRf{rzt*Jfn}js(X#0mgF~GwX$3`TR!(A{H*2RZ5qEoW?pEJa+Z#6rUUHO?zb0=
z7{S8uPt&cvU$Z8_&a1MuF+NH~btn6_`qKvszMD1Y7W8shydtN6#9V#%_Du(iIB!P;
zI<H$3o!41lSNEqNdWQzkz7UDcZ!b`gdys3$nIK`?dw@Y=@WmsO@6ny5`7zR97Mud@
z{O?UaYwy1czyOf&mMwL`S8{{=P<xgQzPFb~A8WI4tGaYuJa@2G4Fg3TV2IM9^V*SD
z!7DWu{tTxuaroCygyQVMPH13`yJ53#SIjHW)4Wa3_kdosw?y|Oa4^3hd#2rRXY^&V
z<q~hm;S;HZt`_~et(D`uWCspuVzSk&sq#9Cs+&sYnoPG={-!(P?F>ISK4V>r%{X4o
zW+9b-d?uv(YWF?q8?<L-lYFeqe9=p9*<ZdiL+$Odl2!hdQh!A~r3x81r<{=~1@wL*
z>Xfy6_g|hn_*E*LuknRmHQTiLR?NG`fRe`}6x{eqMb5R{_9VewxzO;0cp_yj578yF
zD6H6Yaaw;vRxX59MNs-yz}Q0n_=#GH&HJ9KnwdqNT;7uI1t5ffrIug)IN$pM?u0vC
zz{GBwk?~>JN8fWg<zeulJ0Gq!T$|l`)`$Ekgf7W1msss_<POxzbFSxiBaQ~Q{*b84
z`YY79*ZaQYmAg3y&M9*#%=EQ|<L&s+5fN~)b#ATJEJ0Jdo*pytf<Xg_3ZX6tD$2_q
zBeo%mP7pY=ZR<!2arMFJN+(uj$>P~8pIRbXtjn?4cm1X5%dP3pGJ55{7_E6!=BEBs
zlW8TCU#1ogHCTBEFVgpA>bBrO0g%bvzpH_c|L)BENx36IO3bq)E8{vU8v2{2<yRRD
z6xGxD*$!Gr6=ZRsEGC7`HyqU62xkV8kgL!Zu0ncKq&5^-3uXtACL~DT8g7!G(C`iG
z@{{!4MYCiUr6LWky;$<R9{7p41{&C6D8xk%?SR!{HporylgQoU-b3jYh2sUZ$18*T
z%9zHTRePmpk_M7=AB{mBH@*14+2BU`;_JKL18a)h3q1&LubDoH?gzYftI_WO>qBG*
zUW4bvx{36sfc8{e$@Y+x&0T5Xf`#_n(6y_oh{;deTce6~EivP5HJg0sAWpw>$<1>0
zOOKwDL!cI;4o1>vO-4>FeOkHV#<Emk>qT4nUW?V~?&sLgUzIe%V_F2f%iy%9wGjn*
zMf=NC2O#rmy%w{%j6v-*&IP{@cXT{>ui)~%)Mmw9WNl7;2XFQoRPtJH+T_JbY{@n@
zjX!-rM(L<SMXAV;@ywFkW$KM6i=6a?w4U#i>Rv{pbQhUkf_>ax+8$|R@0y(9?@9~j
zNejbpmyidh?>pbTKiw$%<I<rMLR7Eql?n)5=pAY4$&eo{ap=3h80=*+7&BkB(Bm~n
zsHt*1xB$nw#04@bXM?xf38-0o)m>fb!9YjGf7em5C~wXQgZz{(OvilEb9<5?bjZt-
z*u}xc8~#M906I%YhZ@h+u%kUL-nz)brVwTD_}yzfH*v`N+>a5Q(m;i#UZqy7I9`m0
zUCz>yb))g;ajxcLFl7sEF4619k9-X@r_2ZTgzJ)$D1eCQh3w*emco*zp~+_6ay*pt
zTR^@379<Yy14Bs#@0_awq>Ts-UfP*=ySsgy%vl30j=jvC0e9z5f=r_NL3Z6^e6LyL
z-m1Q(@3oD7<;Ivdm{(3e;F579om%U$^W!%%LCa|sdIQC5H;&;8?+sv^=w7g}%99^G
z^6C-!QF+LeZeTq?cBir<1I&>1=&_d%<dl_>-WL2%f8U2{b}Q(}gLDEGfWIQpQy8m~
z)$q%{{3t5sN!YQwCc2THZ0lN}<6>j^dhotQe^Q0E2i$Ew4dY3PiTZo-AWMk)$c14w
z5+66V=iP(rH|fg7?R>tu`}d>&T8-XWrn|w^(}S2~f32sK)fawUuHH;@-YOCPPT)_`
z-rF^Mw!OQ9CcZyu_7aZvi(`CM?KbJk32JtBd1~tFSSbD0BUNW^l2cneS)X@7{Q=xY
zMKU6YNdQGpcIic9R%6Lk``5UOBOkfh6#Kosi-TyH!>&n-e(I6L)*^NlD40gMrVjXR
zCTc)MReAW(FXLZ0=eg+PUtEcy5_^N)m98-|tcE;J2HsW2YqwUzc*-snIL|&fe}wGL
zn;Ui6CZqY89X3!FT`?JJy#j3sGd_Mqiq>72gl64p)g1#RyGPDk$kZ1L_8at-G^X<t
zyexQ2>nh&^t0xaenY}^(RbBqI7KX>dI3tOMY1>8Ka-m(0GydTxs_y>!T=I<mgUB5S
zb#St?vY(Zt@c&uVJeT|aWajs{08L#>vzH$J1#OZ-_8|tv4@BJC-3+|FACdLK1;!qk
z0Lf%uOhUoa4~5!kODLE)fR>h)zD!Tq%4X)CB8_xmoduG{haMi~A3q*67y1xOe$0(c
zLD@=Xm<p`sA%+*WqJ>H_0l}WZ1o{z87=#yj!EWY`z$IJ1E$8{VoPwaVoaPtCUTYhT
z^FwJ674F4`H=_=&&Jj+0-db72daXxxcEvElN}c#?h&6fiiY_*{px~iB(9=J7e_oYy
z?x0`LC2<Ku!Xlxfqz`joC!JH-+HKbkow!%-I<e3RcEf;!&GSk7xcuLZkL5z^95b}l
zcvqDO*(XF$k7mM8beB4zkiVAwD0{dqdo1mj4q~ZTWo3m@UAz%|e=91G0R!ax6eq~@
zyDHrt5qg^X<~v{B0ZJcdckm{{?Y+kt8e3a?fqw%b4uJCWS!f5@3H{y$pn?~IGh_qd
zp!)eaoWdWN22o6x+Ug_Aaj$@vqNY9ZtGFK80=rwWna`2QvB(q`@*(Af8qY)5DH~I^
zByMwj%-a}85%;rVIrksLHqevSa=m<wQ(_o#zO^OxN%=WO+${;S`u9<xA3wF6EMyW_
zG%Q}3zFdDg;~<&e-v^^FA6yV|&Oo|LB4r*NJUm)ZhL5z+M*31f{e%b-#VO)afVVU%
zHg|s;rXgSJ$K{T*G$<X@Dv&{)jrG*t<*6>7Vr1kMo);JFJe`>+CtiI(2hQtEM7M%?
zm}i!`nu@7Q<8Ry0u{0-h^%<|Zj~PGc{26aQYW(ut%y<WSTl2nNMActmsXv4os_a9Z
zIn&ypf>=gpbH-jKkCj`HS%`zxGk_{Vq0XT*c~8`KM@gfsP#qEruEymHAwsVw9%?;~
z6e61i->*8<Gt(=5emL}86l*}kut-p&JmIe~jlajiLa_Vpz4o5?_V%-rh)ZZu5!@9h
zBC4pU8PBTQ3vO~NB0i(}z6Z!Gj{d$f9v+tXDSjnhWSvg?-0W!P^8sJ0TB>-FQxAKY
z^s=9)Q)dkr62&D3F68DY>(-p&>gd)@D5@%MuV8UDG2U@FO>26tx~(;DFZvw?;YY~l
zQ*%E~)4WG7zFZl5ZC3g5%HOII{^jqDc0&heW6^Kl=5WJ=TN#jMf?w}QX-GYP7TrYb
zd>cw5;=J|nk+8`O_I2+}JK<iIv*wZbD5j`+%Fp1#M}&MBqpaIjuz51KxpDKfVn@dm
zRlSWq$MqXuqS#J~dTNNcHg_Yq7y8M7sp+$+@87_67c{7FzKL-%|2cMSz71T_uh3wa
zjEvE*YfR(8<5#!N@bQaSJ0~=h*_Ki?QaJx<4$+&iSX8wYE|gyIUJMFK6y}H`Qrs?8
zcTWF&imN8Bg4J0wYJ+Fy%!st%IGVVTv9Y{(_3C*p1$iX_7NOGJaT|RRC)OJ$MSa8y
zYzF>VYacn1>nPIFTnNzPiZkj|Wa2!hrDa-bdYr(|_^KbEe>YAc<Z*Il#Qc&neoQ^a
z(xNYAm1zn$)X3Y?w-`DuqUD{_TD1C2E8)6u%66xBKZOAgKhLdJ20u(gI;VJRIP$fI
zq}&}G&8IWE_BqvsT*XIp(v>^?fVa^a-<he-x&dfH4vXvW7y0O=)c#V_0L!TfIXgFE
z+w5RJoj(S%>0kbeVm9~y*(uyHAaJ`AcAM+<@vPrn0;x?Ojs)krYJ1fc(y*`{Y+U?3
zE~4rwCA#Elq4|?zB4U!DQJ<;T_r~!7yMUl3__NPk7}4y7>@yefx(OyCoFZ35boP$5
z$HMX`3r-k}ML+qP_wfp9V*<5Ja-I9Iw5-I=b<$e_BO~R1yirX}F*BR!anEe3)$DzO
zsDhka^L28v<iM*4&)i*_u{RI<UgXWhwqsQrv@19un35lcVT;g?O%G#Xb17O$T~b(%
zK)K?=CucurlEdO@8(Ai{Y9wYZ>n(;XA|rx<u^tP!N&FN2#3hK31HW|z5e>3~1%3|P
zcwI*)FTi>!>{?XQizkU>&FT~sitJn~SZbyf+djH*IkUA`-(!*SHvTtM+@~x_eY-FF
zP07d((IUcR!S^v<br}1dKD$#h6Ji$j>|C5H*d}tkzOs!f_?qAWXy|BVaJXq!kITMO
zhIy*xiU^DJR}QgPgq2>aKV-*tpXG;f;a|_VQRgit6B~+ByqKM?#*?qSD#Vese76Nb
z>{NVc=vF=>qpg3wa)S5e==6kWi-FaiL{};Qv&?M=_rQk(rdqg{tW{gDFFf8<GREV;
zhdy|);N#L2+DN(?jZOB1tlJp%iF6GOqbCEj>CRjW(aM_fL{3ReXx5Q~l!(nE|6ciI
zhN!gL((2|ajLBW$vGb^_l!pKBtK$>Sf6otjOgL;XncGYgBUUrBLY0%&4nLBXHp6$h
z&4lL@Ghv)3c9Vq1MR64syKMzrG@c#@3%=b)E!ueb7ruB=q2TRJJoBaR5ZN8l_r0Hp
z8T~{z5>(Gwx(n&e-<r(~>n2<?%ZhZ;Ig|;`^#r{MWXzdjpZI9a7122KX!n7HyxT+~
zZyuMHr6xgGl9%<$1K3(tvVeE_Jwd_m*Ky<UFlHCr8h)(=`6I)HS!<bZXELz3A3r8r
zxR%ZFYSJ%x$(HkX6rMgM62}`byfruYTHXbqF_Zc?XV1`Tx}7>lr|oN4{Ox=1NKl}_
zo;QSC&LC>a&&*LIesb}9bm}=&6AZH?OQSxbo+FQI?TGO(@f{!BR;qHQZ%cXdxCDt=
zXW(d9q9!CFv?8)nv%Ynk2fN_sov81a;o{l0mkvEHJY9&L71?@x<?&et%bDmm(IO<P
zNDK24kfW-X#g`*l>c2&YCJu}A<>aiqd}Q7l?P?-#naR$=GFeZSD6v<Ole0MPAcDRd
z&2}hT_wi$ItS`Pc|0avbfVPaxa_0fEX)@#-lMRri*I6>zzgM>DnH|98%4?hEp32F|
zQZ(%`<;dmGwA9RO%-S9>CyAp?dnSJsaV#Ip*eeIPizAzZ&&5UeQyrA?9nev{|Ni6E
zj|?_mGuO?--7523!}+p$alWW~ES;w>)Z8`D2xo^5ox50DeGXnB(8QNGxha9Fe%aP*
zKtRDVv%HniWtJ8@73<P7pElz3?#;22U$*NC!0W5b``thC(6HDL_4a+vP|%wjciG62
zrT0hvHQH2{_0qdHTJkpX?UMP8niG_@joD4r&vag9f2}k$GR%87^O?9b<G65>wuiO`
zm;Ket2Bt&NL{W{V&7;t);Hb9U8!)ZZ+b+I;`%2ZAb~vAWNUQ7u&KF<Y)`ik03JZQc
zJw_DO7X5nqX)E#jx%7z@9Ao5FcjH9UO*3=Mp*^24+c<$%4i3c)P1NFCe#SAIK5Uyh
z2d9#uo|Tc}!{XY!ikra!g0I-N-@Ui-#;aesVzu6bZR@gA9C}DHs3)AX5xscGldSaw
zB0Xd!v9jsMJ@mZN^wi4-c{IzjH3(TNuO275VzN6KB4N0i6Im3$w2R&I#)b1HT`~BQ
z>_N@pijpk;M|gGZ%53tjtf3xkP_gOJog@{*yU|@^V&+L*W8qznM^^f5`gHrA*3>z6
zdnp@|tk#6NWbWXLi3JxOAKadhb^a0aN0?Whij#HpeA}v3;w)-=z0XbYP6&$(Rv{?M
z%D#{zThUN+;zT_MN3#MY2PfJEZM#=tR+&dEx<zwvYu)3WudgBTmC=XxETKn%H*#*e
z+#^=t#K-hnYF^13HjvhPdh&GpO7jbeueS8`xB?1JGeXNpnDf`5E@S@?5blT6n4g0<
zJi~j<%IxZt=u%?e0%|*W@#0jG;jnEKUUSML(L{{IP;Fajwd!HkS3a1hhussl!y7I<
z6$pNcx3jNJM@vY3d6aSCgKm+xZBv#Ps^p%QqBv>0b$O+ynvq4J!)5-21zzoiE&Eq)
z>4C^AhH5YH+VJ00eaAAQpHDhoD-|EwW!gmOpDLOtG2Ifw;v>6=eXjkE@!}%{+=K&Z
z{V0wRr$D8Ry~tB~5qIHv*F@x}tvR14e7AYPgl(Kp(*z#3Z5_qk<n-P)&!k)_X`(tZ
zzs<?E$u4O<87;U{#29HQda;PnoOBS!7|POb{=De>+E3#coFe|>lv@?o!qZ(+6?$nQ
zOekady;5ZByi;`Bl26dpzZ=$hsx#Gm_cnv+ZOM>z`|JT>$num}j9KlTtI2vowjm1D
zvLirh#g5dr)s|@a-opq_ZP2yVhJ9ZXnuw3IQK0H~4Yv`^df-ch&kLEMOlH3`&030H
zqe<;9%uiXSpD70JMg`np=tQJG4+@PN!EKWc1{ZUe&K2(r<0b^B62t`^@GN){h7w&n
zr{R7l@dgjcI!8J4;N?~P@T_OUWO?L-1jA?oW57gYlUGnvcW-|j^k&C37k2jhv=v5H
zexLHpTc`{oh>~=DNa(4}fdlBoww2wByM0TN!xExABj-)!5`9e$G>F=&x2};SD(9{7
zi9{%Msm}j0&Jr_P-{rhPbnBKp_p=W-<oM%-2NmoOZlb_e*yblYKEG{SXw<o>q;2;X
z6~1pujC4BDM<#G*x8ZiHYAZVaLLBC^&z@6G@i<n4q_;bz>ytD^D7CscRcmOS1Oi}%
z>e?Ipj?1M_D$Hx_r9NIIB8Hqvk=t;~)~gkl89Z}A6JO0#$loK)aN4<zmx>d=cT-{+
ziqUzyv4<rRYund%G1auOYEE2A!h+FwB}<{nUrq`5U$ecMLM8brvjVHJ&(M*nZ$v-=
z428RzG-!`Z;r<lQRt%Tp81Q|A%ThOAO&V0P^jXb6RTBR$5jWs@P+&w+S|uaR&u4E3
zH&@(OWW7p4RZe29j2en<bzRnvUQ}-@$0_D;$!V^7KWLHIYg=B!2MU+E`i}mZm9TIA
zpyip(Js^P0Bla_q%HT0(GL&;l&ki%G#u>=I%3Z8hoY$Xc4H{PR`EPH_#!!w`?%d9H
z*Om$OD_0q6bL36db$iRBbS&p?x-gpSuG)jHCe4VZ*No3(%~~f}`?k2=!;`h&)D^HI
z`*MHuFquX1;QVJgs~+!uEi`Xm)~u=iYPENhFW#5ic+YlELc0mIJ*hdOP(trn7`b->
z_xtyZPY8UnJuACyZ$dZGR^@hgy8@10PhrDg_81L9CwA!<qUi&*3~h&7jkL_HR2E16
zT^cSCOG^Wwf~u-E?cIXkfh#x5Bd}ioUH<3K8lSxZbuoNM$TO0d{fqqap=hBWq6se~
z;Bj{fz>dBX{j@wa^bAy(W|sXb2?!v^3y`(}CmF(HFq4aA-`~BxiDVXKT1Q5oXJ`NE
zW}v7zM4Yx5ac%j1Ja-$fs%mxwAw2O53IJPbz;DJ15=7OZs%fG*=GE-)$EXaK$@lq&
zdY<!b0YQ;x&M3YO7GmLP?f&^w&CKjkt$9+qq4we--KS4k{T{C&+0A|rp}URWxguMd
zTeP&Bkk&McOLv#z-gDe?uDcvzD);uSTDtNxm&YH&BPXrdu65^GpHq25`^DZDzDs8O
zK3|N?ArfyZmAUPWV!wXF#W;oi@L`wISuaS!lb;#vZ;q9hUy4W+M-!D34z9b*{Na52
zmNoe?4v-eWD4C#(UBMH)*<|<6Fg2sZ%pJUkN6qi!r4%PxJOp4l+1Xjkmb%H0#tziB
z(b#N8MMp316(fPxJ2KF0Ie91}FA~7wAZDTZuC;t|Vi?<OqDw^hHB5S(%z>^>MTdyk
z86Y=&hR@7=p@qD#eHeD&SUD{JUt_|L(}Z6))q|K;vEuMrtob9z3WV|*7sBJl=$mQE
zDnc%LvAm<;GzFhW@@B}sGQen)pH{ZK&xY)Ba9mTgTDH0~KQBKv!9Zk2Ur2p@cFNj~
zXf=@N7tpVbe8n#o1c*PtHtz5+<WE6xA|=vS*!joVy#|V_S24|s?3_*A&yOCp^OBc3
z7*K*tj4T#<YTrq)!E^nou}?aV-L_UCtyqpMhJ>(|&2-d-FM>zMB%V4y)ME1Tkna9F
z9)b5E0?}w11IYS7FG@eEcFT93e82E(!yU37)OpJ9Z%qnejH(q0{as>K(+)3Y*ua|u
zE&lrRiDOO>On=auXP7oOY&#?F)%@v=U8yk7m9H<f(IkM#<sf0#)I6>;JIcfBa&a;8
zH8SFXXLP4nl@r5p_EE0$D=+mSR2HMx(=!<zeZH8?dvCXMg}^#EgV&zvY7lch|HU53
z93{JResq?*J?Ixs_mocq6^$M7*BIyK=H&VGu0uLIBn9=f=mGVjBKNuds=-sxsoqbJ
zgI5Kj$`EkZhBv(nXxWWE4>>37Y%&#FR_arKWa$hpNlU+U{m10?0$MGfdc2Pl)HpP$
zGmDz7$;c=?KO$FN-q}}cHy|u*X2_k+S7NeX&6Lc2<?q4PPap^*dy#^6;es|dR(o?N
zZQq7^oV_WupJF)uu&ZYDU~ljK-Y2tf&{H0gds=uL3#kaJuP8gGlHy#-u3S}$7H~{G
zUi#qu4gB%rDNF*$RLO|Yow1!FE4#(yEub=uY)R3!rTUO#42Wi4nUv@BWg0t5re+cS
z{SO~H0UtgI`5F6=l=au#Hi<BKg%*ZWPEMFY6HE*rCV=ObwOwKFx&4n%L90&(DjYZD
zP#??-mbf($z}sAtD2{>r@&+cpRj3p5_O@t10PTN=r2C;JOD<~RM5)BCPGg%;aVZP}
zN|0-oXbAv%=H%?7hVbETU}~pon+O%O4VBpV91eJ#z54qAzF=0L^-9)JdQmNT#gnTR
z{{*KTBI$K-5d4>#qT>9lC*(6TWZwlwAd>b|CAEo%FQ7^0!K;0|6A;Nv2>f5ZD9KX|
z^*qj*B{ngTfZ?I=8`6Eqsb!;3cITp}THfx@t;F|`(J=*x3&#quj_OrtKqbpcFg?o<
zy41OzwsT|AObapEz~AA8&oR8F+B}$N+LWrEo(d4%Om+)b9+W%q7)punXC;!IvVmA%
zsf|7opf8d2Tvj3!w>8I|ZGdX3Jv3y0TmF&#NjSL=EW=^gg!#JyV5gNYc%U!NULNxD
zAbC5Sz4JMB><3O3mhMmcVoa6-pA!Te$aCG0#sMOl;Zba+Ph|TH*$jQFJw82lcFvGF
zzCXwT3P^&Hi-<5|%-dX6Y6rE<?~ttPu)8%2MSd;g0s9{!6FBXj(gJ-XBRG|Q09%sU
z-Dk(kVR%3-s<_`Qn{3no@NVc{35i$7%g=FvvWqGz#_VnJ5+>s?g9bl~{x{wB#8d8<
zuhnd;c}~!(uMxv;@nQ7s1upkZcf2sze^>G*^ynE55093i-CLrwtfyFZt&g({t=Uu}
zgevHS?TZXq2^B!!Lr~4{)Fzi-ZFVjx>2^o+Tm__xNl0{m+SgEIW3N7+xa-zuh*S*0
z7DD4<^wtZ{`};4s6o1<N@^qrFQN_9ulkUGIn>u>>kpKM0fMb>WANjm_@8rH5k@*!s
z$NT;N_y6xtFCTF7@F2)VctivS3S|P%-;{z%G^>o)|DJjZa`FP9jR}8C44+J}#8w7U
zjs`@Mvq&dqXxA<!&Y!F_T6@^}?BMLQY}rUhh(j&;F*YPb423in{Y9ppyPH!0{H<F6
zd7<ZGJ)KLBrZxd+!9(#xs?}4^K8#bpoxWbyhkWtV)iIx=r<6h1uS5G_4d5TLt6Kc-
zw<|hdc26egVh3B2_nD6&|0aG2^3Fcl3{_|f3ky5mK4>2^IA|aT2q#|Z=6+2fnV%l=
zoXyQmc{#bvo&`cvTbty_y?s?gmZ5$><EY<X;K~eoNPXZo@4I*JN`M#kAvO6ik$D&A
zYl92>b5Z@vh($6DKBcCm^$G`MCntZdtWAUZ8B;T}864j3#MXu%?lC}5DNF|)j2!Zj
z@yp13-3bc1!pEn6;lhO!rX&8)a5eCj^YlZc)v{fw=p)8_sJD_0eRcAJ+H5>LD;HI3
z1gt#b_T&3oJ!$|H>&L3T#+%}Cj5BwWiTc24oTeD_adUaf8aSPXcOk}Z4Rp354x@ft
zO%!9t{;kJJ047vfRT6Wu^D5*=cGpT>wpJ`xiFj>bh3^8==j?K)sWYzopY;=be!<A1
zBsBDl_|lK7p3wG4<Ke^P`1p%Ee_u<UjQ+3n`zfpa&TJrC$2fzWm=A718UfIO>NYku
zssYh1zz`|G#EVs(O1%A43aMf0?CPRrX3hs@$l2%A633R_Jd3oP7vI~O%}2%!V1X8p
z0v8n*yWnk0p`ESxlyUc+F6^K6%35aVJ`Ws%jV&#dU#~yw?dT+-fnXEqk`o#l8vfx!
zGH^3bW1@^Ge!qD(Y5jAj#-{(4;nRBBnNCc=85$Y^n_o9}cGqj8K%$m1o=rkEWiK`4
zCjsZF9DzW9CwoFcJv~}tM7IuZir6OuC6)-^I1_qBmD{jF1K6^9xl0E>0@fqoZUpyX
zUfFL7Zd8pyo7nRE-OV=NEbG3!STT<xV8?bzd_c`_=(Mm2vZyvOF|h?*xwG7cJ!FC<
zcgqCr1~Z_f%L*ttrz}_Qj0>zAt(QW@h4^Z>`pf{9(^~YS5)6O03AL*xH0bdB6%}LF
z;S=Ykb4!Oi-D;K@H8nL8UWbq?^$n8Hz(5a7y`k3#6H%yM;AKXTMWi1JH88qvo)>9<
z0wh|V1Wc5MrY0s+JzZYy)1Km2x8561$O923Wqc8r*Y5V_fgOMzi;9biY@(Vp7s`?L
zKDN4%)c~s7qg-6D;_iPRc>z`RT?W4PGu-7<D)F~fvljr<aRn-8G;lAMZs|OWwD?&)
zud1nOO3f@Wm?&T!DGoys6%rECsXMHf%Cb%ZerDVBE=$SHKVe^(Slc=D9BW5_7@lkN
zBp?vS29aC<SCAM(Jw5t%-_;&%JYarzFYva<E-fwDG!@M?FnQ&uHY_IyY(tZYKpfQJ
zv9Pkv0HycI>DuuiQRhEDP9q%Nl!>Aaqjv%?@O{TmIg21tgs|WDfHHb6XqQ~B=h&8>
zp58ap^y9}vEv-o4L+ze1Ijr}QWxb+-*LPEamX;Q(S(&3+mXa;%V2FET)V>cD72nUp
z;dn$%V?oPZK4M~Gf>4=9M@ReZrlwwlV!<P(Rd=kdW|Cw!TIqd2p;+jb+G#2)2VD&M
zjQ?J&+yn}TUd#;`Ua?yYPCTbLU=e4FfMOn6e%yI}l-dq^^I&cYW_=4dy7&7j0OP#2
zx3_ou_v0n6A_o@`E?{^XLd|-B{K$16Iv4j`X{YwxxCa?vaowS$oyw7&Jm`rvU%ThS
z2>dqyLn5L(?7gfczWulEE~C&X3U6~tNl>^Y+uPol)YR^o^_7XKsXi||V6`o7J1m7^
zS@%}z>FKFhZWWD)j?OsB<euE~{TTB8S)M2b5Z-h<NMwd)Nx~K;hx8N_=GTEK3`E{A
zR@f=ctR)r$?6D~1g!@3w>THnc{IP-PXOmVxcO)KvI|l!2uhakV3FQ6&D()edKEo|I
zGI_wpe%QA8PR3u@*84BO6+AVMOal_ik#+$2wYwEXMR4(6OYYfTE3NIJLwTpbD@42R
z9q?}@y3RJo@FDcY&;Wo(4p9WqyJ2OeOJ%mOfk}O&27OOVKH0^4r9%e6j-C5WqX<At
zuj%bwHSD{GMzk6SCubMZFCJ3j$mqe|c%Y!9l*`w{bN%|?dHZRDHgM7DjzvTcE;He5
zXOSisz<>_O<wZj;A~sh-IT;h{mCp=&D7iyWS<Oc6$e%uanuCKQ^obdNg#iyjI1WfP
zw%7N7R3^qZQ5gEU<U#$mAEKOR3F%3_X-aV*Eomixe3D=hLF-{btQYj>Srwx%K_#sW
zGg@P0<GWCJLIPv_GxE!y-FpAlT@AD-NxAph3Mh;nD~As3>^GXAyl^XZ*a?1NK|Sg1
z1PcEfcIffS`5Ka4OQN_w^gSrDt6uF*4y3hsJ2^b-wLY&2z%(K;AP(+LGd<Z@AcaP1
zOC`5Dg8e0YlG*i^D$&4$Ps!sycl@v)4h{(kB$?l;J40`M6_D-g|JSzPUJE>LciX>)
zMuA7x**_G4m7wojt5D#%y1$Ow{}a3b+<BIhnwrYG=j@_&#pS@w@xUX_uiOrgja|DR
zI5{q5UA6{zNrKpxLguqqCsp4w-kc3Q868yn0}tQpN#GaH*ambc@Ya|Mz>T*|r+_C8
zg39pJ^z>}t!k=I7%J)~>)v+wN2y`VVdF@ik1a60C{M#+AKkf3%E5I%I(e(!$xPf8&
z9(eFE@KTX*ZJp@NX}u~dfnHy0pP<kJ%&cuW3pjxr_EVNGS#m>v@0Uq`53<YO_<pCj
zA6WkV{l5SI-Rd)Q%kO2nySUt7=ac#HEi@$L2Jl$_jlkXNnZPUc>bC<=479BVp1=(%
z3ikr9M+o?%;jq}``@H|a`!Um_r={Kpru1*XWA)wwPus3I4Lpt7>EmJs-mG_f<E8^Q
zQG?9l{5GL6E&JWyIAGb?FJ*el&(Ck$eBep{zxRH>w^_dKN20Zo(xH9t_x%Rxe17H5
z@4vv(VY}|>P0M{|Ch13QIZ+2Jf#0^v*WKvr>Di+0J4>WXo)z4#y1@<HX#M}sbNk!V
zQf~rJT;49O6Oo`FvEhK8uI|>{+3(lLvI6V5B|CQ9m<LRKb0<zrba!{Z4b0Wsfwx;+
zZAi}B|F`V+!-5;XzrW{yVPE%Whb{0-L~B#it9`w_TY=kv^Y{P%_xpMA4~NO7-{-x*
zyL<cF0t;YCoi+8%n>U~TCIcNi>Hd3D-#Hc+&jIV~X9bO7nJ53o1q3A21Ml_Qw7c|m
zn!Bs(P2dsbTjp22TKU<sW`QTL#07b2-<M0?Z-Fa$Zg6sPmI0Td`~_YzQ{l|KK=&2U
zmhb29{;QY!zW?~obGHm5w%tA81Zn*OFU&qH1--b6LmSa78D))z2B>*DQ0d^me9_)_
UwuJ`me?dJkPgg&ebxsLQ0ACtkGynhq

literal 0
HcmV?d00001

diff --git a/snippets/crossComptSimpleReac.py b/snippets/crossComptSimpleReac.py
index ddfea60b..e3fffe80 100644
--- a/snippets/crossComptSimpleReac.py
+++ b/snippets/crossComptSimpleReac.py
@@ -11,84 +11,84 @@
 
 import math
 import matplotlib.pyplot as plt
-import numpy
+import numpy as np
 import moose
 
 def makeModel():
-                # create container for model
-                model = moose.Neutral( 'model' )
-                compt0 = moose.CubeMesh( '/model/compt0' )
-                compt0.volume = 1e-15
-                compt1 = moose.CubeMesh( '/model/compt1' )
-                compt1.volume = 1e-16
-                compt2 = moose.CubeMesh( '/model/compt2' )
-                compt2.volume = 1e-17
-
-                # Position containers so that they abut each other, with
-                # compt1 in the middle.
-                side = compt1.dy
-                compt0.y1 += side
-                compt0.y0 += side
-                compt2.x1 += side
-                compt2.x0 += side
-                print(('Volumes = ', compt0.volume, compt1.volume, compt2.volume))
-
-                # create molecules and reactions
-                a = moose.Pool( '/model/compt0/a' )
-                b = moose.Pool( '/model/compt1/b' )
-                c = moose.Pool( '/model/compt2/c' )
-                reac0 = moose.Reac( '/model/compt1/reac0' )
-                reac1 = moose.Reac( '/model/compt1/reac1' )
-
-                # connect them up for reactions
-                moose.connect( reac0, 'sub', a, 'reac' )
-                moose.connect( reac0, 'prd', b, 'reac' )
-                moose.connect( reac1, 'sub', b, 'reac' )
-                moose.connect( reac1, 'prd', c, 'reac' )
-
-                # Assign parameters
-                a.concInit = 1
-                b.concInit = 12.1
-                c.concInit = 1
-                reac0.Kf = 0.1
-                reac0.Kb = 0.1
-                reac1.Kf = 0.1
-                reac1.Kb = 0.1
-
-                # Create the output tables
-                graphs = moose.Neutral( '/model/graphs' )
-                outputA = moose.Table2 ( '/model/graphs/concA' )
-                outputB = moose.Table2 ( '/model/graphs/concB' )
-                outputC = moose.Table2 ( '/model/graphs/concC' )
-
-                # connect up the tables
-                moose.connect( outputA, 'requestOut', a, 'getConc' );
-                moose.connect( outputB, 'requestOut', b, 'getConc' );
-                moose.connect( outputC, 'requestOut', c, 'getConc' );
-
-                # Build the solvers. No need for diffusion in this version.
-                ksolve0 = moose.Ksolve( '/model/compt0/ksolve0' )
-                ksolve1 = moose.Ksolve( '/model/compt1/ksolve1' )
-                ksolve2 = moose.Ksolve( '/model/compt2/ksolve2' )
-                stoich0 = moose.Stoich( '/model/compt0/stoich0' )
-                stoich1 = moose.Stoich( '/model/compt1/stoich1' )
-                stoich2 = moose.Stoich( '/model/compt2/stoich2' )
-
-                # Configure solvers
-                stoich0.compartment = compt0
-                stoich1.compartment = compt1
-                stoich2.compartment = compt2
-                stoich0.ksolve = ksolve0
-                stoich1.ksolve = ksolve1
-                stoich2.ksolve = ksolve2
-                stoich0.path = '/model/compt0/#'
-                stoich1.path = '/model/compt1/#'
-                stoich2.path = '/model/compt2/#'
-                stoich1.buildXreacs( stoich0 )
-                stoich1.buildXreacs( stoich2 )
-                stoich0.filterXreacs()
-                stoich1.filterXreacs()
-                stoich2.filterXreacs()
+    # create container for model
+    model = moose.Neutral( 'model' )
+    compt0 = moose.CubeMesh( '/model/compt0' )
+    compt0.volume = 1e-15
+    compt1 = moose.CubeMesh( '/model/compt1' )
+    compt1.volume = 1e-16
+    compt2 = moose.CubeMesh( '/model/compt2' )
+    compt2.volume = 1e-17
+
+    # Position containers so that they abut each other, with
+    # compt1 in the middle.
+    side = compt1.dy
+    compt0.y1 += side
+    compt0.y0 += side
+    compt2.x1 += side
+    compt2.x0 += side
+    print(('Volumes = ', compt0.volume, compt1.volume, compt2.volume))
+
+    # create molecules and reactions
+    a = moose.Pool( '/model/compt0/a' )
+    b = moose.Pool( '/model/compt1/b' )
+    c = moose.Pool( '/model/compt2/c' )
+    reac0 = moose.Reac( '/model/compt1/reac0' )
+    reac1 = moose.Reac( '/model/compt1/reac1' )
+
+    # connect them up for reactions
+    moose.connect( reac0, 'sub', a, 'reac' )
+    moose.connect( reac0, 'prd', b, 'reac' )
+    moose.connect( reac1, 'sub', b, 'reac' )
+    moose.connect( reac1, 'prd', c, 'reac' )
+
+    # Assign parameters
+    a.concInit = 1
+    b.concInit = 12.1
+    c.concInit = 1
+    reac0.Kf = 0.1
+    reac0.Kb = 0.1
+    reac1.Kf = 0.1
+    reac1.Kb = 0.1
+
+    # Create the output tables
+    graphs = moose.Neutral( '/model/graphs' )
+    outputA = moose.Table2 ( '/model/graphs/concA' )
+    outputB = moose.Table2 ( '/model/graphs/concB' )
+    outputC = moose.Table2 ( '/model/graphs/concC' )
+
+    # connect up the tables
+    moose.connect( outputA, 'requestOut', a, 'getConc' );
+    moose.connect( outputB, 'requestOut', b, 'getConc' );
+    moose.connect( outputC, 'requestOut', c, 'getConc' );
+
+    # Build the solvers. No need for diffusion in this version.
+    ksolve0 = moose.Ksolve( '/model/compt0/ksolve0' )
+    ksolve1 = moose.Ksolve( '/model/compt1/ksolve1' )
+    ksolve2 = moose.Ksolve( '/model/compt2/ksolve2' )
+    stoich0 = moose.Stoich( '/model/compt0/stoich0' )
+    stoich1 = moose.Stoich( '/model/compt1/stoich1' )
+    stoich2 = moose.Stoich( '/model/compt2/stoich2' )
+
+    # Configure solvers
+    stoich0.compartment = compt0
+    stoich1.compartment = compt1
+    stoich2.compartment = compt2
+    stoich0.ksolve = ksolve0
+    stoich1.ksolve = ksolve1
+    stoich2.ksolve = ksolve2
+    stoich0.path = '/model/compt0/#'
+    stoich1.path = '/model/compt1/#'
+    stoich2.path = '/model/compt2/#'
+    stoich1.buildXreacs( stoich0 )
+    stoich1.buildXreacs( stoich2 )
+    stoich0.filterXreacs()
+    stoich1.filterXreacs()
+    stoich2.filterXreacs()
 
 
 
@@ -142,13 +142,17 @@ def main():
 
     # FIXME: Plotting causes seg-fault.
     ## Iterate through all plots, dump their contents to data.plot.
-    #for x in moose.wildcardFind( '/model/graphs/conc#' ):
-    #    t = numpy.linspace( 0, runtime, x.vector.size ) # sec
-    #    plt.plot( t, x.vector, label=x.name )
-    #plt.legend()
-    #plt.show()
-    #quit()
-
+    ### Temp fix, if try to save and plot the graph doesn't give seg fault
+    for x in moose.wildcardFind( '/model/graphs/conc#' ):
+        t = np.arange( 0, x.vector.size, 1) # sec
+        graphpath = x.name+".csv"
+        #t = np.linspace( 0, runtime,x.vector.size) # sec
+        f = open(graphpath, "w")
+        np.savetxt(graphpath, np.vstack((t*plotdt,x.vector)))
+        plt.plot( t, x.vector, label=x.name )
+    plt.legend()
+    plt.show()
+    quit()
 # Run the 'main' if this script is executed standalone.
 if __name__ == '__main__':
         main()
diff --git a/snippets/cspaceSteadyState.py b/snippets/cspaceSteadyState.py
index 13b8ae8a..713e157b 100644
--- a/snippets/cspaceSteadyState.py
+++ b/snippets/cspaceSteadyState.py
@@ -13,28 +13,28 @@ import numpy
 import moose
 
 def displayPlots():
-                for x in moose.wildcardFind( '/model/graphs/#' ):
-                        t = numpy.arange( 0, x.vector.size, 1 ) #sec
-                        pylab.plot( t, x.vector, label=x.name )
-                pylab.legend()
-                pylab.show()
+    for x in moose.wildcardFind( '/model/graphs/#' ):
+        t = numpy.arange( 0, x.vector.size, 1 ) #sec
+        pylab.plot( t, x.vector, label=x.name )
+    pylab.legend()
+    pylab.show()
 
 def getState( ksolve, state ):
-                state.randomInit()
-                moose.start( 0.1 ) # Run the model for 2 seconds.
-                state.settle()
-                '''
-                scale = 1.0 / ( 1e-15 * 6.022e23 )
-                for x in ksolve.nVec[0]:
-                        print x * scale,
-                # print ksolve.nVec[0]
-                print state.nIter, state.status, state.stateType, state.nNegEigenvalues, state.nPosEigenvalues, state.solutionStatus
-                 '''
-                moose.start( 20.0 ) # Run model for 10 seconds, just for display
+    state.randomInit()
+    moose.start( 0.1 ) # Run the model for 2 seconds.
+    state.settle()
+    '''
+    scale = 1.0 / ( 1e-15 * 6.022e23 )
+    for x in ksolve.nVec[0]:
+            print x * scale,
+    # print ksolve.nVec[0]
+    print state.nIter, state.status, state.stateType, state.nNegEigenvalues, state.nPosEigenvalues, state.solutionStatus
+    '''
+    moose.start( 20.0 ) # Run model for 10 seconds, just for display
 
 
 def main():
-                """
+    """
     This example sets up the kinetic solver and steady-state finder, on
     a bistable model.
     It looks for the fixed points 100 times, as follows:
@@ -71,53 +71,53 @@ def main():
     this algorithm!
     You may wish to sample concentration space logarithmically rather than
     linearly.
-                """
-                # The wildcard uses # for single level, and ## for recursive.
-                #compartment = makeModel()
-                moose.loadModel( '../genesis/M1719.cspace', '/model', 'ee' )
-                compartment = moose.element( 'model/kinetics' )
-                compartment.name = 'compartment'
-                ksolve = moose.Ksolve( '/model/compartment/ksolve' )
-                stoich = moose.Stoich( '/model/compartment/stoich' )
-                stoich.compartment = compartment
-                stoich.ksolve = ksolve
-                #ksolve.stoich = stoich
-                stoich.path = "/model/compartment/##"
-                state = moose.SteadyState( '/model/compartment/state' )
-
-                moose.reinit()
-                state.stoich = stoich
-                #state.showMatrices()
-                state.convergenceCriterion = 1e-7
-
-                moose.le( '/model/graphs' )
-                a = moose.element( '/model/compartment/a' )
-                b = moose.element( '/model/compartment/b' )
-                c = moose.element( '/model/compartment/c' )
-
-                for i in range( 0, 100 ):
-                        getState( ksolve, state )
-
-                moose.start( 100.0 ) # Run the model for 100 seconds.
-
-                b = moose.element( '/model/compartment/b' )
-                c = moose.element( '/model/compartment/c' )
-
-                # move most molecules over to b
-                b.conc = b.conc + c.conc * 0.95
-                c.conc = c.conc * 0.05
-                moose.start( 100.0 ) # Run the model for 100 seconds.
-
-                # move most molecules back to a
-                c.conc = c.conc + b.conc * 0.95
-                b.conc = b.conc * 0.05
-                moose.start( 100.0 ) # Run the model for 100 seconds.
-
-                # Iterate through all plots, dump their contents to data.plot.
-                displayPlots()
-
-                quit()
+    """
+    # The wildcard uses # for single level, and ## for recursive.
+    #compartment = makeModel()
+    moose.loadModel( '../genesis/M1719.cspace', '/model', 'ee' )
+    compartment = moose.element( 'model/kinetics' )
+    compartment.name = 'compartment'
+    ksolve = moose.Ksolve( '/model/compartment/ksolve' )
+    stoich = moose.Stoich( '/model/compartment/stoich' )
+    stoich.compartment = compartment
+    stoich.ksolve = ksolve
+    #ksolve.stoich = stoich
+    stoich.path = "/model/compartment/##"
+    state = moose.SteadyState( '/model/compartment/state' )
+
+    moose.reinit()
+    state.stoich = stoich
+    #state.showMatrices()
+    state.convergenceCriterion = 1e-7
+
+    moose.le( '/model/graphs' )
+    a = moose.element( '/model/compartment/a' )
+    b = moose.element( '/model/compartment/b' )
+    c = moose.element( '/model/compartment/c' )
+
+    for i in range( 0, 100 ):
+        getState( ksolve, state )
+
+    moose.start( 100.0 ) # Run the model for 100 seconds.
+
+    b = moose.element( '/model/compartment/b' )
+    c = moose.element( '/model/compartment/c' )
+
+    # move most molecules over to b
+    b.conc = b.conc + c.conc * 0.95
+    c.conc = c.conc * 0.05
+    moose.start( 100.0 ) # Run the model for 100 seconds.
+
+    # move most molecules back to a
+    c.conc = c.conc + b.conc * 0.95
+    b.conc = b.conc * 0.05
+    moose.start( 100.0 ) # Run the model for 100 seconds.
+
+    # Iterate through all plots, dump their contents to data.plot.
+    displayPlots()
+
+    quit()
 
 # Run the 'main' if this script is executed standalone.
 if __name__ == '__main__':
-        main()
+    main()
diff --git a/snippets/diffSpinyNeuron.py b/snippets/diffSpinyNeuron.py
index b1502b7f..54d42330 100644
--- a/snippets/diffSpinyNeuron.py
+++ b/snippets/diffSpinyNeuron.py
@@ -267,8 +267,6 @@ def main():
         moose.setClock( i, chemdt ) # for the chem objects
     moose.setClock( 10, diffdt ) # for the diffusion
     moose.setClock( 18, plotdt ) # for the output tables.
-    '''
-    '''
     moose.reinit()
     for i in numpy.arange( 0, runtime, animationdt ):
         moose.start( animationdt )
diff --git a/snippets/funcInputToPools.py b/snippets/funcInputToPools.py
index 2ca3f4c0..b6f8f0b3 100644
--- a/snippets/funcInputToPools.py
+++ b/snippets/funcInputToPools.py
@@ -65,9 +65,6 @@ def makeModel():
     stoich.compartment = compartment
     stoich.ksolve = gsolve
     stoich.path = '/model/compartment/##'
-    '''
-    '''
-
     # We need a finer timestep than the default 0.1 seconds,
     # in order to get numerical accuracy.
     for i in range (10, 19 ):
@@ -75,27 +72,27 @@ def makeModel():
 
 def main():
     """
-    This example describes the special (and discouraged) use case where
-    functions provide input to a reaction system. Here we have two functions of
-    time which control the pool # and pool rate of change, respectively::
+This example describes the special (and discouraged) use case where
+functions provide input to a reaction system. Here we have two functions of
+time which control the pool # and pool rate of change, respectively::
 
-    number of molecules of a = 1 + sin(t)
-    rate of change of number of molecules of b = 10 * cos(t)
+number of molecules of a = 1 + sin(t)
+rate of change of number of molecules of b = 10 * cos(t)
 
-    In the stochastic case one must set a special flag *useClockedUpdate*
-    in order to achieve clock-triggered updates from the functions. This is
-    needed because the functions do not have reaction events to trigger them,
-    and even if there were reaction events they might not be frequent enough to
-    track the periodic updates. The use of this flag slows down the calculations,
-    so try to use a table to control a pool instead.
+In the stochastic case one must set a special flag *useClockedUpdate*
+in order to achieve clock-triggered updates from the functions. This is
+needed because the functions do not have reaction events to trigger them,
+and even if there were reaction events they might not be frequent enough to
+track the periodic updates. The use of this flag slows down the calculations,
+so try to use a table to control a pool instead.
 
-    To run in stochastic mode::
+To run in stochastic mode::
 
-        ''python funcInputToPools''
+    ''python funcInputToPools''
 
-    To run in deterministic mode::
+To run in deterministic mode::
 
-        ''python funcInputToPools false''
+    ''python funcInputToPools false''
 
     """
 
@@ -120,4 +117,4 @@ def main():
 
 # Run the 'main' if this script is executed standalone.
 if __name__ == '__main__':
-        main()
+    main()
\ No newline at end of file
diff --git a/snippets/function.py~ b/snippets/function.py~
deleted file mode 100644
index 8b574ea0..00000000
--- a/snippets/function.py~
+++ /dev/null
@@ -1,200 +0,0 @@
-# function.py ---
-#
-# Filename: function.py
-# Description:
-# Author: Subhasis Ray
-# Maintainer:
-# Created: Tue Sep  9 17:59:50 2014 (+0530)
-# Version:
-# Last-Updated: Sun Dec 20 00:02:50 2015 (-0500)
-#           By: subha
-#     Update #: 4
-# URL:
-# Keywords:
-# Compatibility:
-#
-#
-
-# Commentary:
-#
-#
-#
-#
-
-# Change log:
-#
-#
-#
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License as
-# published by the Free Software Foundation; either version 3, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; see the file COPYING.  If not, write to
-# the Free Software Foundation, Inc., 51 Franklin Street, Fifth
-# Floor, Boston, MA 02110-1301, USA.
-#
-#
-
-# Code:
-
-import numpy as np
-import sys
-import matplotlib.pyplot as plt
-
-import moose
-
-simtime = 1.0
-
-def example():
-    demo = moose.Neutral('/model')
-    function = moose.Function('/model/function')
-    function.c['c0'] = 1.0
-    function.c['c1'] = 2.0
-    function.x.num = 1
-    function.expr = 'c0 * exp(c1*x0) * cos(y0) + sin(t)'
-    # mode 0 - evaluate function value, derivative and rate
-    # mode 1 - just evaluate function value,
-    # mode 2 - evaluate derivative,
-    # mode 3 - evaluate rate
-    function.mode = 0
-    function.independent = 'y0'
-    nsteps = 1000
-    xarr = np.linspace(0.0, 1.0, nsteps)
-    # Stimulus tables allow you to store sequences of numbers which
-    # are delivered via the 'output' message at each time step. This
-    # is a placeholder and in real scenario you will be using any
-    # sourceFinfo that sends out a double value.
-    input_x = moose.StimulusTable('/xtab')
-    input_x.vector = xarr
-    input_x.startTime = 0.0
-    input_x.stepPosition = xarr[0]
-    input_x.stopTime = simtime
-    moose.connect(input_x, 'output', function.x[0], 'input')
-
-    yarr = np.linspace(-np.pi, np.pi, nsteps)
-    input_y = moose.StimulusTable('/ytab')
-    input_y.vector = yarr
-    input_y.startTime = 0.0
-    input_y.stepPosition = yarr[0]
-    input_y.stopTime = simtime
-    moose.connect(function, 'requestOut', input_y, 'getOutputValue')
-
-    # data recording
-    result = moose.Table('/ztab')
-    moose.connect(result, 'requestOut', function, 'getValue')
-    derivative = moose.Table('/zprime')
-    moose.connect(derivative, 'requestOut', function, 'getDerivative')
-    rate = moose.Table('/dz_by_dt')
-    moose.connect(rate, 'requestOut', function, 'getRate')
-    x_rec = moose.Table('/xrec')
-    moose.connect(x_rec, 'requestOut', input_x, 'getOutputValue')
-    y_rec = moose.Table('/yrec')
-    moose.connect(y_rec, 'requestOut', input_y, 'getOutputValue')
-
-    dt =  simtime/nsteps
-    for ii in range(32):
-        moose.setClock(ii, dt)
-    moose.reinit()
-    moose.start(simtime)
-
-    # Uncomment the following lines and the import matplotlib.pyplot as plt on top
-    # of this file to display the plot.
-    plt.subplot(3,1,1)
-    plt.plot(x_rec.vector, result.vector, 'r-', label='z = {}'.format(function.expr))
-    z = function.c['c0'] * np.exp(function.c['c1'] * xarr) * np.cos(yarr) + np.sin(np.arange(len(xarr)) * dt)
-    plt.plot(xarr, z, 'b--', label='numpy computed')
-    plt.xlabel('x')
-    plt.ylabel('z')
-    plt.legend()
-
-    plt.subplot(3,1,2)
-    plt.plot(y_rec.vector, derivative.vector, 'r-', label='dz/dy0')
-    # derivatives computed by putting x values in the analytical formula
-    dzdy = function.c['c0'] * np.exp(function.c['c1'] * xarr) * (- np.sin(yarr))
-    plt.plot(yarr, dzdy, 'b--', label='numpy computed')
-    plt.xlabel('y')
-    plt.ylabel('dz/dy')
-    plt.legend()
-
-    plt.subplot(3,1,3)
-    # *** BEWARE *** The first two entries are spurious. Entry 0 is
-    # *** from reinit sending out the defaults. Entry 2 is because
-    # *** there is no lastValue for computing real forward difference.
-    plt.plot(np.arange(2, len(rate.vector), 1) * dt, rate.vector[2:], 'r-', label='dz/dt')
-    dzdt = np.diff(z)/dt
-    plt.plot(np.arange(0, len(dzdt), 1.0) * dt, dzdt, 'b--', label='numpy computed')
-    plt.xlabel('t')
-    plt.ylabel('dz/dt')
-    plt.legend()
-    plt.tight_layout()
-    plt.show()
-
-def main():
-    """
-        Function objects can be used to evaluate expressions with arbitrary
-        number of variables and constants. We can assign expression of the
-        form::
-
-            f(c_, c1, ..., cM, x0, x1, ..., xN, y0,..., yP )
-
-        where `ci`'s are constants and `xi`'s and `yi`'s are variables.
-
-        The constants must be defined before setting the expression and
-        variables are connected via messages. The constants can have any
-        name, but the variable names must be of the form x{i} or y{i}
-        where i is increasing integer starting from 0.
-
-        The `xi`'s are field elements and you have to set their number
-        first (function.x.num = N). Then you can connect any source field
-        sending out double to the 'input' destination field of the
-        `x[i]`.
-
-        The `yi`'s are useful when the required variable is a value field
-        and is not available as a source field. In that case you connect
-        the `requestOut` source field of the function element to the
-        `get{Field}` destination field on the target element. The `yi`'s
-        are automatically added on connecting. Thus, if you call::
-
-           moose.connect(function, 'requestOut', a, 'getSomeField')
-           moose.connect(function, 'requestOut', b, 'getSomeField')
-
-        then ``a.someField`` will be assigned to ``y0`` and
-        ``b.someField`` will be assigned to ``y1``.
-
-        In this example we evaluate the expression: ``z = c0 * exp(c1 *
-        x0) * cos(y0)``
-
-        with x0 ranging from -1 to +1 and y0 ranging from -pi to
-        +pi. These values are stored in two stimulus tables called xtab
-        and ytab respectively, so that at each timestep the next values of
-        x0 and y0 are assigned to the function.
-
-        Along with the value of the expression itself we also compute its
-        derivative with respect to y0 and its derivative with respect to
-        time (rate). The former uses a five-point stencil for the
-        numerical differentiation and has a glitch at y=0. The latter uses
-        backward difference divided by dt.
-
-        Unlike Func class, the number of variables and constants are
-        unlimited in Function and you can set all the variables via
-        messages.
-
-    """
-    example()
-
-if __name__ == '__main__':
-    main()
-
-
-
-
-#
-# function.py ends here
diff --git a/snippets/intfire.py b/snippets/intfire.py
index bfd6c808..7cd93d3c 100644
--- a/snippets/intfire.py
+++ b/snippets/intfire.py
@@ -49,9 +49,8 @@ import moose
 
 def connect_two_intfires():
     """
-Connect two IntFire neurons so that spike events in one gets
-transmitted to synapse of the other.
-
+    Connect two IntFire neurons so that spike events in one gets
+    transmitted to synapse of the other.
     """
     if1 = moose.IntFire('if1')
     if2 = moose.IntFire('if2')
@@ -64,12 +63,11 @@ transmitted to synapse of the other.
 
 def connect_spikegen():
     """
-Connect a SpikeGen object to an IntFire neuron such that spike
-events in spikegen get transmitted to the synapse of the IntFire
-neuron.
-
-if3 = moose.IntFire('if3')
+    Connect a SpikeGen object to an IntFire neuron such that spike
+    events in spikegen get transmitted to the synapse of the IntFire
+    neuron.
     """
+    if3 = moose.IntFire('if3')
     sf3 = moose.SimpleSynHandler( 'if3/sh' )
     moose.connect( sf3, 'activationOut', if3, 'activation' )
     sf3.synapse.num = 1
@@ -79,8 +77,7 @@ if3 = moose.IntFire('if3')
 
 def setup_synapse():
     """
-Create an intfire object and create two synapses on it.
-
+    Create an intfire object and create two synapses on it.
     """
     if4 = moose.IntFire('if4')
     sf4 = moose.SimpleSynHandler( 'if4/sh' )
@@ -96,9 +93,8 @@ Create an intfire object and create two synapses on it.
 
 def main():
     """
-Demonstrates connection between 2 IntFire neurons to observe
-spike generation.
-
+    Demonstrates connection between 2 IntFire neurons to observe
+    spike generation.
     """
     connect_two_intfires()
     connect_spikegen()
diff --git a/snippets/loadKineticModel.py b/snippets/loadKineticModel.py
index f5addb08..ad71c67a 100644
--- a/snippets/loadKineticModel.py
+++ b/snippets/loadKineticModel.py
@@ -54,7 +54,7 @@ def main():
     This example illustrates loading, running, and saving a kinetic
     model defined in kkit format. It uses a default kkit model but
     you can specify another using the command line
-        ``python filename runtime solver``.
+	    ``python filename runtime solver``.
     We use the gsl solver here.
     The model already defines a couple of plots and sets the runtime 20 secs.
 
diff --git a/snippets/loadSbmlmodel.py b/snippets/loadSbmlmodel.py
index 744c7239..6288215d 100644
--- a/snippets/loadSbmlmodel.py
+++ b/snippets/loadSbmlmodel.py
@@ -43,7 +43,7 @@ import pylab
 
 import moose
 from moose.SBML import *
-from moose.chemUtil.add_Delete_ChemicalSolver import *
+#from moose.chemUtil.add_Delete_ChemicalSolver import *
 
 def main():
     """
diff --git a/snippets/reacDiffBranchingNeuron.py b/snippets/reacDiffBranchingNeuron.py
index 53206070..ac4de982 100644
--- a/snippets/reacDiffBranchingNeuron.py
+++ b/snippets/reacDiffBranchingNeuron.py
@@ -120,12 +120,21 @@ def makeChemModel( compt ):
     """
 This function sets up a simple oscillatory chemical system within
 the script. The reaction system is::
+<<<<<<< HEAD
 
     s ---a---> a  // s goes to a, catalyzed by a.
     s ---a---> b  // s goes to b, catalyzed by a.
     a ---b---> s  // a goes to s, catalyzed by b.
     b -------> s  // b is degraded irreversibly to s.
 
+=======
+
+    s ---a---> a  // s goes to a, catalyzed by a.
+    s ---a---> b  // s goes to b, catalyzed by a.
+    a ---b---> s  // a goes to s, catalyzed by b.
+    b -------> s  // b is degraded irreversibly to s.
+
+>>>>>>> 0e491aa41584cf7a66c0e242374d8ee61660eb7b
 in sum, **a** has a positive feedback onto itself and also forms **b**.
 **b** has a negative feedback onto **a**.
 Finally, the diffusion constant for **a** is 1/10 that of **b**.
diff --git a/snippets/scaleVolumes.py b/snippets/scaleVolumes.py
index 35c7ce76..965a8562 100644
--- a/snippets/scaleVolumes.py
+++ b/snippets/scaleVolumes.py
@@ -155,8 +155,14 @@ def main():
         # Iterate through all plots, dump their contents to data.plot.
         displayPlots()
         pylab.show( block=False )
+<<<<<<< HEAD
+        print(('vol = ', vol, 'hit 0 to go to next plot'))
+        eval(str(input()))
+
+=======
         print( 'vol = %f ' % vol )
         response = input( "Press enter to go to next plot... " ) 
+>>>>>>> 0e491aa41584cf7a66c0e242374d8ee61660eb7b
     quit()
 
 # Run the 'main' if this script is executed standalone.
diff --git a/snippets/vclamp.py~ b/snippets/vclamp.py~
deleted file mode 100644
index 3ebd20ce..00000000
--- a/snippets/vclamp.py~
+++ /dev/null
@@ -1,137 +0,0 @@
-# vclamp.py ---
-#
-# Filename: vclamp.py
-# Description:
-# Author:Subhasis Ray
-# Maintainer:
-# Created: Sat Feb  2 19:16:54 2013 (+0530)
-# Version:
-# Last-Updated: Tue Jun 11 17:35:20 2013 (+0530)
-#           By: subha
-#     Update #: 178
-# URL:
-# Keywords:
-# Compatibility:
-#
-#
-
-# Commentary:
-#
-#
-#
-#
-
-# Change log:
-#
-#
-#
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License as
-# published by the Free Software Foundation; either version 3, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; see the file COPYING.  If not, write to
-# the Free Software Foundation, Inc., 51 Franklin Street, Fifth
-# Floor, Boston, MA 02110-1301, USA.
-#
-#
-
-# Code:
-
-import sys
-sys.path.append('../../python')
-import moose
-sys.path.append('../squid')
-from squid import SquidAxon
-from pylab import *
-
-def vclamp_demo(simtime=50.0, dt=1e-2):
-    ## It is good practice to modularize test elements inside a
-    ## container
-    container = moose.Neutral('/vClampDemo')
-    ## Create a compartment with properties of a squid giant axon
-    comp = SquidAxon('/vClampDemo/axon')
-    # Create and setup the voltage clamp object
-    clamp = moose.VClamp('/vClampDemo/vclamp')
-    ## The defaults should work fine
-    # clamp.mode = 2
-    # clamp.tau = 10*dt
-    # clamp.ti = dt
-    # clamp.td = 0
-    # clamp.gain = comp.Cm / dt
-    ## Setup command voltage time course
-    command = moose.PulseGen('/vClampDemo/command')
-    command.delay[0] = 10.0
-    command.width[0] = 20.0
-    command.level[0] = 50.0
-    command.delay[1] = 1e9
-    moose.connect(command, 'output', clamp, 'commandIn')
-    ## Connect the Voltage Clamp to the compartemnt
-    moose.connect(clamp, 'currentOut', comp, 'injectMsg')
-    moose.connect(comp, 'VmOut', clamp, 'sensedIn')
-    ## setup stimulus recroding - this is the command pulse
-    stimtab = moose.Table('/vClampDemo/vclamp_command')
-    moose.connect(stimtab, 'requestOut', command, 'getOutputValue')
-    ## Set up Vm recording
-    vmtab = moose.Table('/vClampDemo/vclamp_Vm')
-    moose.connect(vmtab, 'requestOut', comp, 'getVm')
-    ## setup command potential recording - this is the filtered input
-    ## to PID controller
-    commandtab = moose.Table('/vClampDemo/vclamp_filteredcommand')
-    moose.connect(commandtab, 'requestOut', clamp, 'getCommand')
-    ## setup current recording
-    Imtab = moose.Table('/vClampDemo/vclamp_inject')
-    moose.connect(Imtab, 'requestOut', clamp, 'getCurrent')
-    # Scheduling
-    moose.setClock(0, dt)
-    moose.setClock(1, dt)
-    moose.setClock(2, dt)
-    moose.setClock(3, dt)
-    moose.useClock(0, '%s/##[TYPE=Compartment]' % (container.path), 'init')
-    moose.useClock(0, '%s/##[TYPE=PulseGen]' % (container.path), 'process')
-    moose.useClock(1, '%s/##[TYPE=Compartment]' % (container.path), 'process')
-    moose.useClock(2, '%s/##[TYPE=HHChannel]' % (container.path), 'process')
-    moose.useClock(2, '%s/##[TYPE=VClamp]' % (container.path), 'process')
-    moose.useClock(3, '%s/##[TYPE=Table]' % (container.path), 'process')
-    moose.reinit()
-    print(('RC filter in VClamp:: tau:', clamp.tau))
-    print(('PID controller in VClamp:: ti:', clamp.ti, 'td:', clamp.td, 'gain:', clamp.gain))
-    moose.start(simtime)
-    print(('Finished simulation for %g seconds' % (simtime)))
-    tseries = linspace(0, simtime, len(vmtab.vector))
-    subplot(211)
-    title('Membrane potential and clamp voltage')
-    plot(tseries, vmtab.vector, 'g-', label='Vm (mV)')
-    plot(tseries, commandtab.vector, 'b-', label='Filtered command (mV)')
-    plot(tseries, stimtab.vector, 'r-', label='Command (mV)')
-    xlabel('Time (ms)')
-    ylabel('Voltage (mV)')
-    legend()
-    # print len(commandtab.vector)
-    subplot(212)
-    title('Current through clamp circuit')
-    # plot(tseries, stimtab.vector, label='stimulus (uA)')
-    plot(tseries, Imtab.vector, label='injected current (uA)')
-    xlabel('Time (ms)')
-    ylabel('Current (uA)')
-    legend()
-    show()
-
-def main():
-    """
-    This snippet is to demonstrate modelling of voltage clamping.
-    """
-    vclamp_demo()
-
-if __name__ == '__main__':
-    main()
-
-#
-# vclamp.py ends here
-- 
GitLab