Skip to content

Instantly share code, notes, and snippets.

@ColCarroll
Created July 10, 2018 21:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ColCarroll/2856fe0750d92a65d602762171960281 to your computer and use it in GitHub Desktop.
Save ColCarroll/2856fe0750d92a65d602762171960281 to your computer and use it in GitHub Desktop.
Excitement for 3.5.0
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import pymc3 as pm\n",
"import seaborn as sns"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Why I'm Excited About PyMC3 3.5.0\n",
"\n",
"I think there are a few great usability features in this new release that will help a lot with building, checking, and thinking about models. To give an introduction, I am going to to a bad job of implementing [the \"eight schools\" model](http://andrewgelman.com/2014/01/21/everything-need-know-bayesian-statistics-learned-eight-schools/), and show how these new features help debug the model. I am just using the eight schools model as one that is complicated, but not *too* complicated."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Checking model initialization.\n",
"\n",
"This implementation has two different mistakes in it that we will find. First, the method `Model.check_test_point` is helpful to see if you have accidentally defined a model with 0 probability or with bad parameters."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"J = 8\n",
"y = np.array([28., 8., -3., 7., -1., 1., 18., 12.])\n",
"sigma = np.array([15., 10., 16., 11., 9., 11., 10., 18.])\n",
"\n",
"with pm.Model() as non_centered_eight:\n",
" mu = pm.Normal('mu', mu=0, sd=5)\n",
" tau = pm.HalfCauchy('tau', beta=5, shape=J)\n",
" theta_tilde = pm.Normal('theta_t', mu=0, sd=1, shape=J)\n",
" theta = pm.Deterministic('theta', mu + tau * theta_tilde)\n",
" obs = pm.Normal('obs', mu=theta, sd=-sigma, observed=y)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"mu -2.530000\n",
"obs -inf\n",
"tau_log__ -9.160000\n",
"theta_t -7.350000\n",
"Name: Log-probability of test_point, dtype: float64"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"non_centered_eight.check_test_point()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now that I see that `obs` has `-inf` log probability, I notice that I set the standard deviation to a negative number! *quelle horreur!* Let's fix that and see if we can find other mistakes."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"mu -2.53\n",
"obs -31.46\n",
"tau_log__ -9.16\n",
"theta_t -7.35\n",
"Name: Log-probability of test_point, dtype: float64"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"with pm.Model() as non_centered_eight:\n",
" mu = pm.Normal('mu', mu=0, sd=5)\n",
" tau = pm.HalfCauchy('tau', beta=5, shape=J)\n",
" theta_tilde = pm.Normal('theta_t', mu=0, sd=1, shape=J)\n",
" theta = pm.Deterministic('theta', mu + tau * theta_tilde)\n",
" obs = pm.Normal('obs', mu=theta, sd=sigma, observed=y)\n",
"\n",
"non_centered_eight.check_test_point()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Visualize the model\n",
"\n",
"It takes an optional install (`conda install -c conda-forge python-graphviz`), but you can visualize your models in [plate notation](https://en.wikipedia.org/wiki/Plate_notation). This can be useful for sharing your model, or just checking that you implemented the right one."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Title: %3 Pages: 1 -->\n",
"<svg width=\"462pt\" height=\"242pt\"\n",
" viewBox=\"0.00 0.00 461.63 242.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 238)\">\n",
"<title>%3</title>\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-238 457.6275,-238 457.6275,4 -4,4\"/>\n",
"<g id=\"clust1\" class=\"cluster\">\n",
"<title>cluster8</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M137.6275,-8C137.6275,-8 433.6275,-8 433.6275,-8 439.6275,-8 445.6275,-14 445.6275,-20 445.6275,-20 445.6275,-214 445.6275,-214 445.6275,-220 439.6275,-226 433.6275,-226 433.6275,-226 137.6275,-226 137.6275,-226 131.6275,-226 125.6275,-220 125.6275,-214 125.6275,-214 125.6275,-20 125.6275,-20 125.6275,-14 131.6275,-8 137.6275,-8\"/>\n",
"<text text-anchor=\"middle\" x=\"434.1275\" y=\"-14.8\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">8</text>\n",
"</g>\n",
"<!-- mu -->\n",
"<g id=\"node1\" class=\"node\">\n",
"<title>mu</title>\n",
"<ellipse fill=\"none\" stroke=\"#000000\" cx=\"57.6275\" cy=\"-200\" rx=\"57.7553\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"57.6275\" y=\"-195.8\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">mu ~ Normal</text>\n",
"</g>\n",
"<!-- theta -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>theta</title>\n",
"<polygon fill=\"none\" stroke=\"#000000\" points=\"270.6089,-146 136.646,-146 136.646,-110 270.6089,-110 270.6089,-146\"/>\n",
"<text text-anchor=\"middle\" x=\"203.6275\" y=\"-123.8\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">theta ~ Deterministic</text>\n",
"</g>\n",
"<!-- mu&#45;&gt;theta -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>mu&#45;&gt;theta</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M88.5903,-184.7307C108.7482,-174.7898 135.3933,-161.6497 157.9635,-150.5192\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"159.6121,-153.6087 167.0328,-146.0467 156.5161,-147.3306 159.6121,-153.6087\"/>\n",
"</g>\n",
"<!-- tau -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>tau</title>\n",
"<ellipse fill=\"none\" stroke=\"#000000\" cx=\"364.6275\" cy=\"-200\" rx=\"72.6893\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"364.6275\" y=\"-195.8\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">tau ~ HalfCauchy</text>\n",
"</g>\n",
"<!-- tau&#45;&gt;theta -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>tau&#45;&gt;theta</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M329.2954,-184.1993C306.97,-174.2153 277.7917,-161.1666 253.1711,-150.1561\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"254.5395,-146.9341 243.9819,-146.0467 251.6818,-153.3242 254.5395,-146.9341\"/>\n",
"</g>\n",
"<!-- obs -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>obs</title>\n",
"<ellipse fill=\"#d3d3d3\" stroke=\"#000000\" cx=\"203.6275\" cy=\"-56\" rx=\"58.7243\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"203.6275\" y=\"-51.8\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">obs ~ Normal</text>\n",
"</g>\n",
"<!-- theta_t -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>theta_t</title>\n",
"<ellipse fill=\"none\" stroke=\"#000000\" cx=\"203.6275\" cy=\"-200\" rx=\"70.2838\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"203.6275\" y=\"-195.8\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">theta_t ~ Normal</text>\n",
"</g>\n",
"<!-- theta_t&#45;&gt;theta -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>theta_t&#45;&gt;theta</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M203.6275,-181.8314C203.6275,-174.131 203.6275,-164.9743 203.6275,-156.4166\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"207.1276,-156.4132 203.6275,-146.4133 200.1276,-156.4133 207.1276,-156.4132\"/>\n",
"</g>\n",
"<!-- theta&#45;&gt;obs -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>theta&#45;&gt;obs</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M203.6275,-109.8314C203.6275,-102.131 203.6275,-92.9743 203.6275,-84.4166\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"207.1276,-84.4132 203.6275,-74.4133 200.1276,-84.4133 207.1276,-84.4132\"/>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<graphviz.dot.Digraph at 0x11bb10940>"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pm.model_to_graphviz(non_centered_eight)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Oops! I meant for both `mu` and `tau` to be shared priors among the eight groups, but left an extra `shape=J` argument in there."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Title: %3 Pages: 1 -->\n",
"<svg width=\"445pt\" height=\"242pt\"\n",
" viewBox=\"0.00 0.00 445.47 242.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 238)\">\n",
"<title>%3</title>\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-238 441.472,-238 441.472,4 -4,4\"/>\n",
"<g id=\"clust1\" class=\"cluster\">\n",
"<title>cluster8</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M167.8445,-8C167.8445,-8 299.8445,-8 299.8445,-8 305.8445,-8 311.8445,-14 311.8445,-20 311.8445,-20 311.8445,-214 311.8445,-214 311.8445,-220 305.8445,-226 299.8445,-226 299.8445,-226 167.8445,-226 167.8445,-226 161.8445,-226 155.8445,-220 155.8445,-214 155.8445,-214 155.8445,-20 155.8445,-20 155.8445,-14 161.8445,-8 167.8445,-8\"/>\n",
"<text text-anchor=\"middle\" x=\"300.3445\" y=\"-14.8\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">8</text>\n",
"</g>\n",
"<!-- tau -->\n",
"<g id=\"node1\" class=\"node\">\n",
"<title>tau</title>\n",
"<ellipse fill=\"none\" stroke=\"#000000\" cx=\"72.8445\" cy=\"-200\" rx=\"72.6893\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"72.8445\" y=\"-195.8\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">tau ~ HalfCauchy</text>\n",
"</g>\n",
"<!-- theta -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>theta</title>\n",
"<polygon fill=\"none\" stroke=\"#000000\" points=\"300.8259,-146 166.863,-146 166.863,-110 300.8259,-110 300.8259,-146\"/>\n",
"<text text-anchor=\"middle\" x=\"233.8445\" y=\"-123.8\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">theta ~ Deterministic</text>\n",
"</g>\n",
"<!-- tau&#45;&gt;theta -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>tau&#45;&gt;theta</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M108.1766,-184.1993C130.502,-174.2153 159.6803,-161.1666 184.3009,-150.1561\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"185.7902,-153.3242 193.4901,-146.0467 182.9325,-146.9341 185.7902,-153.3242\"/>\n",
"</g>\n",
"<!-- mu -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>mu</title>\n",
"<ellipse fill=\"none\" stroke=\"#000000\" cx=\"379.8445\" cy=\"-200\" rx=\"57.7553\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"379.8445\" y=\"-195.8\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">mu ~ Normal</text>\n",
"</g>\n",
"<!-- mu&#45;&gt;theta -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>mu&#45;&gt;theta</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M348.8816,-184.7307C328.7238,-174.7898 302.0787,-161.6497 279.5085,-150.5192\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"280.9559,-147.3306 270.4392,-146.0467 277.8598,-153.6087 280.9559,-147.3306\"/>\n",
"</g>\n",
"<!-- theta_t -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>theta_t</title>\n",
"<ellipse fill=\"none\" stroke=\"#000000\" cx=\"233.8445\" cy=\"-200\" rx=\"70.2838\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"233.8445\" y=\"-195.8\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">theta_t ~ Normal</text>\n",
"</g>\n",
"<!-- theta_t&#45;&gt;theta -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>theta_t&#45;&gt;theta</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M233.8445,-181.8314C233.8445,-174.131 233.8445,-164.9743 233.8445,-156.4166\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"237.3446,-156.4132 233.8445,-146.4133 230.3446,-156.4133 237.3446,-156.4132\"/>\n",
"</g>\n",
"<!-- obs -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>obs</title>\n",
"<ellipse fill=\"#d3d3d3\" stroke=\"#000000\" cx=\"233.8445\" cy=\"-56\" rx=\"58.7243\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"233.8445\" y=\"-51.8\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">obs ~ Normal</text>\n",
"</g>\n",
"<!-- theta&#45;&gt;obs -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>theta&#45;&gt;obs</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M233.8445,-109.8314C233.8445,-102.131 233.8445,-92.9743 233.8445,-84.4166\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"237.3446,-84.4132 233.8445,-74.4133 230.3446,-84.4133 237.3446,-84.4132\"/>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<graphviz.dot.Digraph at 0x11bdf1630>"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"with pm.Model() as non_centered_eight:\n",
" mu = pm.Normal('mu', mu=0, sd=5)\n",
" tau = pm.HalfCauchy('tau', beta=5)\n",
" theta_tilde = pm.Normal('theta_t', mu=0, sd=1, shape=J)\n",
" theta = pm.Deterministic('theta', mu + tau * theta_tilde)\n",
" obs = pm.Normal('obs', mu=theta, sd=sigma, observed=y)\n",
"\n",
"pm.model_to_graphviz(non_centered_eight)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Sampling from the prior, and nifty new progress bar.\n",
"\n",
"This is more to do actual statistics than error checking. I am excited to see what [tools and visualizations](http://arviz-devs.github.io/arviz/) can be built around this, but in the meantime we can see how the presence of data effects our prior beliefs for the hierarchical mean here. \n",
"\n",
"Check out also the progressbar, which now shows you the *total* number of draws the sampler is doing. The machine I am runnign this on has 4 cores, and each core will run 500 tuning samples, and then 500 MCMC samples, which is why the chain goes up to 4,000. In the past, the progressbar would report progress for only the first chain, and it was not unusual for it to appear to \"freeze\" after sampling, because some other chain was still running."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Auto-assigning NUTS sampler...\n",
"Initializing NUTS using jitter+adapt_diag...\n",
"Multiprocess sampling (4 chains in 4 jobs)\n",
"NUTS: [theta_t, tau, mu]\n",
"Sampling 4 chains: 100%|██████████| 4000/4000 [00:01<00:00, 2118.82draws/s]\n",
"There were 1 divergences after tuning. Increase `target_accept` or reparameterize.\n"
]
}
],
"source": [
"with non_centered_eight:\n",
" prior = pm.sample_prior_predictive(5000)\n",
" posterior = pm.sample()"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x11c803eb8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sns.distplot(prior['mu'], label='Prior')\n",
"ax = sns.distplot(posterior['mu'], label='Posterior')\n",
"ax.legend();"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Also!\n",
"\n",
"There's a new `Ordered` transform which is handy for sampling from, for example, 1-d mixture models. I'll quickly generate a mixture model and use some of the tricks above to fit it."
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"# Generate data\n",
"N_SAMPLES = 100\n",
"μ_true = np.array([-2, 0, 2])\n",
"σ_true = np.ones_like(μ_true)\n",
"z_true = np.random.randint(len(μ_true), size=N_SAMPLES)\n",
"y = np.random.normal(μ_true[z_true], σ_true[z_true])\n",
"\n",
"with pm.Model() as mixture:\n",
" μ = pm.Normal('μ', mu=0, sd=10, shape=3)\n",
" z = pm.Categorical('z', p=np.ones(3)/3, shape=len(y))\n",
" y_obs = pm.Normal('y_obs', mu=μ[z], sd=1., observed=y)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"y_obs -265.84\n",
"z -109.86\n",
"μ -9.66\n",
"Name: Log-probability of test_point, dtype: float64"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mixture.check_test_point()"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Title: %3 Pages: 1 -->\n",
"<svg width=\"300pt\" height=\"172pt\"\n",
" viewBox=\"0.00 0.00 300.00 172.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 168)\">\n",
"<title>%3</title>\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-168 296,-168 296,4 -4,4\"/>\n",
"<g id=\"clust1\" class=\"cluster\">\n",
"<title>cluster3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M20,-82C20,-82 114,-82 114,-82 120,-82 126,-88 126,-94 126,-94 126,-144 126,-144 126,-150 120,-156 114,-156 114,-156 20,-156 20,-156 14,-156 8,-150 8,-144 8,-144 8,-94 8,-94 8,-88 14,-82 20,-82\"/>\n",
"<text text-anchor=\"middle\" x=\"114.5\" y=\"-88.8\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"</g>\n",
"<g id=\"clust2\" class=\"cluster\">\n",
"<title>cluster100</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M146,-8C146,-8 272,-8 272,-8 278,-8 284,-14 284,-20 284,-20 284,-144 284,-144 284,-150 278,-156 272,-156 272,-156 146,-156 146,-156 140,-156 134,-150 134,-144 134,-144 134,-20 134,-20 134,-14 140,-8 146,-8\"/>\n",
"<text text-anchor=\"middle\" x=\"265.5\" y=\"-14.8\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">100</text>\n",
"</g>\n",
"<!-- μ -->\n",
"<g id=\"node1\" class=\"node\">\n",
"<title>μ</title>\n",
"<ellipse fill=\"none\" stroke=\"#000000\" cx=\"67\" cy=\"-130\" rx=\"51.4919\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"67\" y=\"-125.8\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">μ ~ Normal</text>\n",
"</g>\n",
"<!-- y_obs -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>y_obs</title>\n",
"<ellipse fill=\"#d3d3d3\" stroke=\"#000000\" cx=\"209\" cy=\"-56\" rx=\"67.411\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"209\" y=\"-51.8\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">y_obs ~ Normal</text>\n",
"</g>\n",
"<!-- μ&#45;&gt;y_obs -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>μ&#45;&gt;y_obs</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M85.719,-113.0751C97.6907,-102.9516 113.9386,-90.4541 130,-82 136.8278,-78.4061 144.2473,-75.1798 151.714,-72.3241\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"152.9451,-75.6007 161.1562,-68.9053 150.5619,-69.0189 152.9451,-75.6007\"/>\n",
"</g>\n",
"<!-- z -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>z</title>\n",
"<ellipse fill=\"none\" stroke=\"#000000\" cx=\"209\" cy=\"-130\" rx=\"63.9934\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"209\" y=\"-125.8\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">z ~ Categorical</text>\n",
"</g>\n",
"<!-- z&#45;&gt;y_obs -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>z&#45;&gt;y_obs</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M209,-111.7079C209,-103.4635 209,-93.5376 209,-84.3622\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"212.5001,-84.0817 209,-74.0817 205.5001,-84.0818 212.5001,-84.0817\"/>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<graphviz.dot.Digraph at 0x11bb6f4e0>"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pm.model_to_graphviz(mixture)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Multiprocess sampling (4 chains in 4 jobs)\n",
"CompoundStep\n",
">NUTS: [μ]\n",
">CategoricalGibbsMetropolis: [z]\n",
"Sampling 4 chains: 100%|██████████| 4000/4000 [00:08<00:00, 493.36draws/s]\n",
"There were 65 divergences after tuning. Increase `target_accept` or reparameterize.\n",
"The acceptance probability does not match the target. It is 0.0639146205395, but should be close to 0.8. Try to increase the number of tuning steps.\n",
"The acceptance probability does not match the target. It is 0.927726466453, but should be close to 0.8. Try to increase the number of tuning steps.\n",
"The gelman-rubin statistic is larger than 1.4 for some parameters. The sampler did not converge.\n",
"The estimated number of effective samples is smaller than 200 for some parameters.\n"
]
}
],
"source": [
"with mixture:\n",
" posterior = pm.sample()"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA18AAACICAYAAAAYlVFjAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAIABJREFUeJzsnXeYXFd5/z9n+u7O9qrtq94ly7JcZFu2bLmBwQFTQwiQhJAQCBASCD/ABEJCEpyEksShh5KEZmIwLshGlotcJKtYva92V7va3tu08/vjzJ25M3OnbN+Vzud55pmZW9+ZuTNzvudtQkqJRqPRaDQajUaj0WhmFttcG6DRaDQajUaj0Wg0VwJafGk0Go1Go9FoNBrNLKDFl0aj0Wg0Go1Go9HMAlp8aTQajUaj0Wg0Gs0soMWXRqPRaDQajUaj0cwCWnxpNBqNRqPRaDQazSygxZdGo9FoNBqNRqPRzAJafGk0Go1Go9FoNBrNLKDFl0aj0Wg0Go1Go9HMAlp8aTQLCCGEFEIsNT3/nhDib+fSJo1Go9FoDPT/lEaTGi2+NBqNRqPRaDQajWYW0OJLo9FoNBqNRqPRaGYBLb40Go1Go9FoNBqNZhbQ4kujWXhkmR7nz5kVGo1Go9FYo/+nNJokaPGl0Sw83iOEsAshNgK3A7lCCOdcG6XRaDQaTRj9P6XRJEGLL41m4ZENtAHfBD4LvBvYPqcWaTQajUYTRf9PaTRJEFLKubZBo9FkiBBCAsuklGfm2haNRqPRaOLR/1MaTWq050uj0Wg0Go1Go9FoZgEtvjQajUaj0Wg0Go1mFtBhhxqNRqPRaDQajUYzC2jPl0aj0Wg0Go1Go9HMAo65NmC6KCkpkfX19XNthkaj0WimmVdffbVLSlk613ZMFf0/pdFoNJcnE/mfumzEV319Pfv27ZtrMzQajUYzzQghLsy1DdOB/p/SaDSay5OJ/E/psEONRqPRaDQajUajmQW0+NJoFiL+MfANz7UVGo1Go7lc0AXYNJcBwVCQEf/IXJuREi2+NJqFRMcJ+OH98KUa+LtK+MoGePHfIRSca8s0Go3m8uPcbhhondlzdJ+FjuOp17cfnVkbpIQjP4fWgzN7ninSPTTOIwcvMuq7sv7zAsEQjxy8yN7Gnhk5fu9YL4c6D2FVAT0YCuIP+aftXDNdZX1/x36eaX5mRs8xVbT40mgWCscegf+8CS7ugy3vh9segLwqePKv4YdvgrH+ubZQo9FoLh9CIRjuhAt7ZvY8rQdSi6vWA6nF2XQgQ+q++8zMnmeKnO1UER+9I745tmR26RgcB6C1b3RGjr/30l4uDl7kUOehhHUvtr3IzsadEzpe82Azl4YvJSzf1bSLl9pemrSdmdA50gnMvMibClp8aTQLgZNPwE/fC5VXwQf3wp1fhJs+Bu99DN7wNWh8Af777eCb3652jUajWTBIC+9KKAiHfzbzYmi2McTXDNLYNczOY+2EQukHxf5gKGY7f1DZ5wuoe5fDxnOnOzl5aXBabOsYHOPxw20Mjwem5XhTYXDMT1P3CEPjAXaf6sQXCKX1eDUNNHG69/SkzxlCva+tQ63svbSXs31nI+sGxgcmfLzDnYfZ374/YfloYJTesd709sgQp3pPEQhN/vOQJF5nvWO9DPmGJn3M6UKLL41mvtN9Fh5+P1Ssg3c9DN64Sqab3g1v+k9oehEe/ejc2KjRaDQZIqWc17PSEawESTAcftU1+YHurNDfYm2jb0R59OIxfx7JPpvBS3DumUnlhkkpOdTSx4gvwJAv9YA6EAzx2OE2Xm3q5WLfKEcu9vPY4TZa+0YjA+oXznTRM+zjxKWJCwMrmrpH8AVD9I1OLrzuYt8o3UPjMc9beic2GdraN8rZziF2n+rkQHMvJy8N0Dfio31gLO2+R7qOcLr3NE9deIrx4HjC+otDFxkNJPeahUzXROdIJyd7Tk7I9kw41Xsq421bBls403uGM31n6B/vp7G/0fJ1pcLqN+bF1hd5tuVZAPwhPwc7DuIPTl9IZaZcNqXmNZrLklAIfvEBEALe+n1we623W/tm6DwFu78Ei2+Bje+YTSs1Go0mI5452UF/eIBbkO1i2/KZbd8WCIZo6x9L0AtFXhded5ohkFl8jfaCpyD6POgD/yg4s2C4G1w54PRE1/tGVMhiYV34WBJCAbA51O+5wWB79PGFF6GwHvIWWdsz3A05xalt7joNbabQsZJl0cehIJx8TJ1/+V0wNgCePGW7+bUe+TkUNUDV1ep5/0W1jxF+GfSpgk8OD7iyU9sT5nhb1EM15guS53ESDEl6hn2U5rpjtj0R9ma19o3GhNm19Y+RgdMsKZ2D43jdDrJc9oR1xnEDwRC9wz4Kc1wTOva+sGfqjRurYp4X5bjIdllfZ/0jfrLddpx25QeJ92619KrXnon4MvAFfRzuPMzmis0EQgECoQAuu4tDHYfIdmZzS80tE3pd5/vPRx6HZAibSO6z6R3rpdBTGLMsGM5Ht9vsnOmNhrSaj3Wy5yT57nwqciqi+4W9zuf6znGu7xygQhmvLr+abGdm15yV58tMY38jrUOtZDuzWV64PKNjThdafGk085n934OWV+C+h6J/4snY9ldw/ll44hOw9Dbwls2KiRrNlYoQogb4PlAOSOAbUsqvzK1VU6N32EcgJHHZbeRnO6f12MGQpH/UT2mum1AI+kanP29HSklIqnOFpKSld4SjrYnekbJcD9cvSSNkzIWMzjwNpSugeGl02Ylfq4mvc7uiy5beDlkF0PgcjA+qvFz/CJz+TfjEq6F8tXo8NqC2Mxi4qG7r7o8uC5hm+3vOphdfbXE5Oxf3Kxtyy5VoAiUETz6uHtudsHRHrCAE6DmvxFfnKbj0Wuy6oB/O/hbsLlj9BpVv7MwBe/IhZc9w9LP2hUMIj7UOcK5riFyPgxuXluJy2Ogf8UfEeTyBYIiQhTeje2icohwXIv41GOcLhDjVPsjZThVuZggk8/4jYW/cwea+yPKNNQXUFefQPjCGwyboGvIx5g+yoSYqwh85eDHpawZ49lQXt64sxe2IFXy/PdHO4FiAuuIcNpqOZ8XFCeZ5dYx0APBy28v0j/dzR/0dAIwFrEVcMEnBrs6RTo53H4/Zzma3ca7/HKd7T3Nn/Z00DzZzuPMwld5KWodaqcurY3Xx6sg+O5t2Yhd2dtTtIMuRFfG++YI+PA4PgVCAs31nEUJwd8Pdkf2shNOgb5Bnmp/hnsX3ZPw+nO49zfWV17O/Y3+Mdw9AoK6XM71nWFqwNKWwnG60+NJo5iujffD056H+Jtjw9vTb2+xw71fgoa3w5Kfgzd+aeRs1miubAPAXUsr9Qohc4FUhxE4p5bG5Nmwy9I/4efZ0Z+T5+uoCspxq0GgMhuxCkJflxONM9B6kYyicT1NdkM2IP0D38MTCiNIhpeSp4x2RgbSB027jlhVRD9uBpr6IAEh9wLhB6WhvYihifMuP/mZwZivhZRzDvE3Hsaj4SjIYjtB9VhXbMBB21WbE7GFLR885dVt3fzRk0kzQr7xhRYsT14VCicILYLgjvK8PhjrUpF9OKSzeFt2v65Q6pkN5kNzO6MD2QvcI1YXZEfE9OBbg8SNtvHFjFc+c6kj6Ui4NjJFj4UV6/kwXayrzWVoWjQzpHBynY3CMNZX5HG8boLE7eWuW5890WS4/1jpAXXEOL53rjlm+pMyb1Gu6v6k3xo7xQJAnjqjCE4vys7iqtoCQlAyOqWv0QvcwVQVZCd6/VFzoHqauOCflNsFQkP5xVYTraLcq5hIKX7uPnXuM8pxylhYsJd+dH/EyJRwjbnlABnDi5ET3CUB934xQwtYhVRH0wsAFVhatjOwTCoUi+WTZzuyI+BryD3Gw8yB1uXWRYwE81/IcdpudiuyoFyye/vF+8t35CcvVxEv0+3mwQ1XubBxopGc0dc7cse5jrC1Zm3Kb6USLL41mvvL8vygBduffJc5KJqN0OWz9c3j2n+DaD0D15pm1UaO5gpFStgFt4ceDQojjQBWwIMXXeEANthpKcjjfNcxrLX2W2wkh2LGqHI9pQC2EYDwQpG/Ej8dpJz8r0Wu2v0kl2udlOSLnCoYkdluGv29p8AVDjPgCLMrPotjrwiYENgG5HmdM6JfHaaOtf4w9Z7pYVJBFQ6FbiYWxfqi+JurBGYkddBMKJIqvprjKbTKkxI5B0AfxM+pj/WBzpm8RMhI3YOw9r26Lb7X2gAVSiNnmV1RIYzLMNhskK3Zw0VRI4bzKn2G4U72es7sgvwraj9JyqY385TeS63HidkTfA18gxHggGOMNy5ThJPlip9sHY0TPnrNKUK1elEcgLlZx1Bcky2VnzB/EkeLay892Wnq2nj6uQkXvWZcYHtrcMxJjh5m2/lGyL9m50B2bC7a/qZc71yQXG/EYwg1UKJ7lNr5omOfFwehrMCoQtg+30z7czvba7bzY+mJG5/UFfTT2N0aeB2QAu0ichLHyWo34R+ge7UYIgZSS9uF2ekZ7EkSRYXffmPVvD8ALF1+w9H691vVazGs1MIc7mjF7utqH27X40miueAbb4eWHYP3bYNH6ie279c/h1e/Bbz4N7308c+Gm0WgmjRCiHrgKeDlu+fuB9wPU1tbOul0GwZBkX2MPDSU5lOVFPSeX+sc42NyLlNFwsJrCbASC/CwneVmOSHgOQHPvCGc7h+gaGudoaz/jgRB2m2Db8lJOtQ9G8lTqi3NYlO8h2+3AaReMB0IMjPpx2W0UZLvoDg+8pyq+Djb30RcuO25EpFUWeKguTJ4XUlmQxagvRP+oH39I0jB2QokagIFFUZESL45GehKLTcQPEqWE9iPR56eeTDTgdJqy3aGg8rL1XbBef3EfLL8zcbmVgDLoa4KcktTnjSeJRyQpY/3q/RjrIyQll5pO82poOW/cWIXN9D80MObncEtia5R0IXyp8IWrI/aO+DjZHhUevzyU2KPt+TNdLC3z8lpLH9ctTh7G2TmY2jP72OE2y+XdQ8lF5YgvSCAu/C2VALTCZpMc6z5Gy2BL0mqAe1qt2yMY3jCD3zb9Nul5zN97UKLHTEiGcNgSZYSVTUbfLcPDdWEgybWdIYc6D7G2eC0hQuy9tBenzRkpMZ8Jz7Y8G1P1cDw4zmhglCxH1pTsyhQtvjSa+cier6oZ01s+MfF93bmw7RPw2MdVZaolt067eRrNQkMIkQXUSimnvYyXEMIL/Bz4iJQyJsFISvkN4BsAmzdvnrMSf0PjAS4NjHFpYIw711REwgZ7hn34gpISrysy2HQ6bKyrTgzrAfC4vJztHIp4scpyPXQMjnGsdSAmV6exe5jG7mHcDhshGS0VvrZKHdceHox3D4+zKH/yA56W3hGynPZIGFiux0GJN3UI16L8LBblZ7G3sYfBMT+YS18Pd0P7sXCOlEWYXnxOVTzT0Ser80RsKfucEhg2hcblV8duP9SpfvfTVSEcynxwCsSGPGaC6fzBsLfJHhhmYCzxfZxoHlMmjAdC7G3sjXhVkzHiC9AVrkzYNzL9le6SeYxBeb/iGZpgefsz/UdwuCZX5XEizZJfbX819bGCfssy9KkE3XRxcfAiVd4qxoPjKb1kybAqN69zvjSaK5mRHtj3HVj3Fus4/Ey46vfg2S/Dcw9q8aW54hFC3At8GXABDUKIjcDnpZRvmIZjO1HC60dSyoeneryZwlw17kzHUEQEBUIhXHbB0lJvRHylmok3Fw6oL86htiibjkEl6oQQVOR5uDQwhtftoCjHRVOPCrGqLcqmIt9Dea7yupWEc1wONfdxIlwJL9tlZ0tDUdLCCVYEQ5KqwixWVuRlvI+B3SYIBCXYTJ4IwwPWc956p6F26+WZ4MlX3qF0DMR5a+q2wrFHos8Nz8L4kBJIhk15sYUkEui3DlHL2I50mAqPGIUxbKEAu04kz+OaTn5zLLGpbzKM70O8F2quOHIxg+sijE1MvhBO00DTpPeNxyjZPlFKs0stvVSZ9P8y4w/66R7tTr9hhrjtmefdTRXd50ujmW+8+j1VHWvrRyZ/DKcHbviQqqTV/Mq0mabRLFA+B2wB+gCklAeBhqkeVCiV8G3guJTyn6d6vJnEnCcyHlAhWqGQxB8M4bDZKPa6WVOZx4bqgrTFNOqLc1hTmc+GmgJcplyejdUFXLu4mHvWLWL7yrKYogQlXjeL8rOwhYWd1+1gbVU+xV43Xo8DIVRBhYwKYYQxmvDaJhla7bCpcMhjlwbpnUT+0YQpzPCSSwjbint9AZ8SXqeeiBWDAxmG7RUtjq3aOAMEw+JLWuQExWNVRMNgIrlQk+FMx9w33AUilRiBpO0XFpd4cdhsyND8TCXIcaYuAgKwsnhlUpGTKvdsRdGKhGVdo130jKUupJGOJQVLWFa4jKrcNBMX04z2fGk084lgAPZ+W1U4LF+dfvtUXP0e5fl67kF454+nxTyNZoHil1L2x3lUpiMEcCvwe8BhIcTB8LJPSSkfm4ZjTxp/MMTQWIAslz0ipMb8QUpz3Yz5g7T0jsQ0gM3PcmK3CZaW5WZ0fHOpbXO+lsOuHht9i8zCzPzYYEmplyXhcWZT9wgHmnvpGfaR53FytnOI4fFoUQ6/SZQtKfVSW5wdGeBPVnxV5HsYHAsw0BHCE5x4b6eUFDWo3K0+k6chu8h62/I10H40+jw+3DE+HKrvQvJ8MICyVeDyQste6/VVm9R9shDJoobknj+DnFLwDaleZ1ZMwKF0++pyjrUOcLpjMGFdss82L8vJwCQbIs8HNlQXcMgiPHFJqZeCbBcF2a5ILqPBiopcznZ30zbURJ07s15XxVnFlt4hm7DFVAY0sNvseJ3emNwwr8trGaZnUJtXS9NAE0sKlvBap0V1TBNOmzNpyftULClYQnVuNc+3PB9pttw82JzWW+W2u1M2Z3bb3dTn10/YnqmiPV8azXzi1OMw0ALX/vHUj+X2wnV/omZHLx2e+vE0moXLUSHEOwG7EGKZEOJrgHVG+gSQUj4vpRRSyvVSyo3h25wKL18gxJNHL/Hs6U72N/USCkmGxwOM+YN4nHY8prBBoyKhIZYmg9tho8TrJs/jTKhwWFWQxVU1hWyqLaQ0TR6WIdxeOd/DU8fbOd81zOCYH38whETi9TjwehwMjPk50NzLo6+1RkqET7ZgR1muh61LS3A5HdMjxc14ClQTYjP2JOKuIK4QS9A06Ba2iRVNqr9JiblkfSEdFp9Dw83q3hX2XCTz0NXfqIQZKIG3dEcGBqV+YzfVqqa81UWJeX/3rFtkKdoBCrOnUShbUJ+mlLsZq2s/7fFLrI9vLM+xaATtctg4NfCyZa8zA6MBcZ47j9LsUmpz1bVVll1GQ370c7USXnfW38mOuh1sWbQlZvnq4tWU55QnPWdFTgU3V99MdW51Wu+XQzgm3dDYbXezqXxTzLJUwgrg5pqbubX2Vq6rvI7ynHJurL4xZr3TPr29DDNlRsWXEOIuIcRJIcQZIcQnLdb/ixDiYPh2SgjRZ1oXNK375UzaqdHMG17+T8ivgeV3p982E7b8kWp++eK/T8/xNJqFyYeANcA48D/AADCFuN65YdQX5NULPfQnKRIwOObnaGt/pNjB4FiAZ0518NTxdkb9QbKcdjbUFHDd4mJuW1VOebjq4VTElxCCrUtLuHVlGTlxvY8cdhu1xdnUFGVHwg2TYTV4XVGRy83LS7lpWSnX1BdxTX0RNy0rZUVFLllOe8TzYZ9qRVdzaFx2XPU7r8WgM69SNSe2oiJcndbhIUF42Byw5k2JYitZyfmy1bDi7omJr9zkg2QgsVQ+gLcMVr4elt8Fy+5QHrq6G6LrDXtdXli0UTWS9pYlfw9MXF1XGHm8saaA2qJYj011oRJdVnmGhtfrjtWJoYfrqqwLwlgdO1NuWV4WmTBYX52PK/y9cCcRgAY3LStJK9aynPaYdgegisNYbQfRwjQG18dUZbQWX267m7UlaynOKmZT2SauqbgmUo0wJEOsKl4V2XZj2caE/e02OzZhw2mL/VyllNTlJRHzgF3Y8bpUef01JWuULQ43ee48hBDcVH1TZFun3UmBJ3VTaSBGoJk9U1bVCJcXLk9aLMNpc5LlyKLIU8TV5VeT54rNDXWIuQkAnLGzCiHswL8BO4AWYK8Q4pfm5pNSyo+atv8QqkyvwaiUMvHq0GguV9qPqRyt2z8X7TMzVbIKYeM7YP8P4I4vTLzUsEZzGSClHAH+X/i2YAlKSUvvKC29oxTluFi9KI9cjxoouRw29l3oZWBU9dnK9TjoHBxnzK8GdKsW5VGe58HlsEVEUkNJDk67jbK82Us0T0aO28E96xax52x3JNzKYSEKi3JcFOW4WFaWy4Vw49xFBRNoOmyFIW5qtiihcfhn0XXVm1XlwdIVKs/K7oyGD5q3MyheoioP5i2CEVOFwuV3RZsj12yJhiM6s5SoMUrHm0vTZxep9aDK3+dWJPYVm/iLtV5s2OYJD05zF6nXEfRB1dXqZguL1Kzw4DmFKDTkgZBKoK8oz6WuOIeB0Wg+W6nXHSmu4rAlftaGHsuK8wKV5roTvJ3X1BextzGa/1OR52FDdQEjPtV7Lt5btG15KV1DPo62RsPrslx2NtdHQ0MXFWRxoXsYt9POeCDE0jKvZY6Yw25LGfp6bUNxOMTVz8vnerh2sTrH9pXlnOkYithw+6ryyOvyOO1srCngYLPySUTaQ6TQ4bfV3QZASVb0f77AXUBJVgmri2PTGArcBawqXkV5dnmkDLyZNSVrCIQCSCkpySpRvf3qdtDv6+eVtleozasl353PhYELMQ2Piz3FLClYQkN+Ay6Tp3dbzTa6RrtibDPjsrvwmTy+ee6oSKrOjVb3tBJZNmHDbXdHGjin4476O9jVvAt/0G9ZKn82mMmzbgHOSCnPAQgh/hd4I8mbT74DeGAG7dFo5jevfAPsbrjq3dN73C3vh73fUoU8bv749B5bo1kACCF2YTFdLKXcPgfmTBqv20F9cQ6XBsboGfZFwu4g6r0q9bq5YWkJx9sGItULbzMN6sx4nPakDWHnAqfdxqqKXF4634OAmIId8dhtgsWl02S7lPjd+YkeKVDix8iRcsV5N2quhWZTW7f6m5RAyVsUOW4Et4WtuRUqlA+U0AEVmmgMQs0euerNye2PtyMVrsxyhRDCupdYMvKqlDcsXJ4+WLkJLj0DwBs2VEY2W17hJdttZ3FJTkxVy3jP1xs2VMasL8px0TPs47rFxZFWAkYzcFDXjtNuwx8M4XHauTbsKbppmUoqNHqI5Wc56R/1IxAsLfPistvoHBqjtignIcRxaZmXnuFxrl9cTOfgONWFWQni6/Xr1WuL144lXneknH1FvhJOuR4nt6+O9UwuLfNGxFd2nMisK86JiC+DPGcRQTKvjOi0OxPCCEEJFnMYYjxWni6n3UlJVgk76nbgsDkQQlCTWxOzjRDCsjhGjjMnaUiix+FhW/U2nmyMTjyYc7nM3imnzUldXl1Mn7BsZ7ZlhdRk4Y0OmwOnzTn/xZcQYp2UcqJJI1WAua5pC3BtkuPXoSpPmZsDeIQQ+4AA8CUp5f9Z7DcvmldqNFNmtA9e+7EqL5+TvOnjpChdAYtvUeXrt35k+rxqGs3CwTzr4AHejPpvWXBsqClgA9AxMMZguD/QkYv9kYIUVeFQq8WlOfSP+i29BPOZsjwP965X4mUiJeenjulcDdvg/O70u5hLu2cXpw/5M7PqXrBZhO3V3aD6M0LU02Qmq1CFDppL1udVJm4Xv0/pSgiOK4/WdCKEEpk11yoFUrQYhEC2N4Y3iJ3zcDvsLLEQzeaw1HVV+QmfvSGizOR5ou9fYbaTzXWFvHiuO221TmWVsqu2OJvaYmtB6nU72L5SfaY1ceGS14dFoGG3IdzyPE6qCrNYVqZaN8R77ay4fkkxQ2MBy+u9NNcdE6ppw4bbkcuSgsWc7Tub9tjJmEpPq+nOk8p352OPu9bN9pnDIIUQrClZQ3lOOUe6jlCbV0tFTgUne6LtG3NduTGhjlYYzZ7ntfgC/l0I4Qa+h+plkrnszoy3Az+TMqadep2U8qIQYjHwWyHEYSllzJU2X5pXajRT5uCPVHn5a98/M8ff8sfwv++AE4/Cmvtm5hwazTxFShnfLfQFIcSC7sFQluehLPx4YNRP+8A4t68qi4TquR12rls8zRM5s8Tsii4Q8bFc3lKV22SVH2XGcHfklKgJrnjyqlRFwYZtieusCl8Yx8qrVD22rLZZqkLLOPtb1RMSrEWa1T7x1N+UWElxoqy8V71PxnsR+ewm/xkWZVh10gglXFzixWG3Ra59qzMbJetbekfpH+3PSKClotgkvCCaq+ULhlherryYkVDBNJTlekhWaPSGJbFheoZoXFG0giUFSwjJEAO+ActcqFTM9ncsFaVZSlhvWbSFY93HGPIN4TEVq7ESSCVZJdxSc0vkufF6bqi8gVxX+qqtxvs4m42VzWQkvqSUNwkhlgHvA14N/2l9V0q5M8VuFwGzP7I6vMyKtwMfjDvnxfD9OSHEM6h8sMnLfI1mvhIKwSvfhJrrYNGGmTnH8jtVSM0r39TiS3PFIYQw1/i2AVcD6TP2FwgbawqQkrRFLTTJkIn5SyUZ9sFafldiVUMDbymsu3/i5lRthoLOxDBHM0u2g28ERsMCrHqz8nCZabhZFflIxkQ8dclwWAslI+JSTKKMpNmjlYraomz6R/2sqFCDbSNsz6r4hSG2lpZ5qS/OtswnzISVFXmcuDSQ4E02wn6N3nMzhbpMjTw59dkmy6NKRXxRDU+ya3iGubH6xkgRjJKsEm6uvjmybl3JOs4PnJ+QULTb7AleNCvWl67ndO/pWW2sbCZjf5uU8rQQ4tPAPuCrwFXhBpOfklI+bLHLXmCZEKIBJbreDrwzfiMhxEqgEHjRtKwQGJFSjgshSlC9VP4x85el0SwgzuyE3vOw/dMzdw6bHa5+Lzz9N9B1JvOBhUZzefAqKv5JoMINzwN/MKcWTSNCiAkVxNMkkqJ6d2qscrmmisMF+Rk0fXVlR3O4CusT13vLEpfNFpO4II3csEwH2w67jatqo4LT47Tzxo3p37fJCi9QFTgNsWfGEF/+GRbtUjFTAAAgAElEQVRfcoo9ETaVb4rp4QWwo34HtjnqPBVffdBMTV4NNXk1SdebuarsKs73n8frzOz7WJJVMinROl1k9G4LIdYLIf4FOA5sB+6VUq4KP/4Xq32klAHgz4Anw/v9REp5VAjxeSHEG0ybvh34XyljfvpWAfuEEIeAXaicr2SFOjSahc0r3wBvBax+48yeZ+M7VQL3gR/M7Hk0mnmGlLJBSrk4fL9MSnmHlPL5ubZLM18wdLlm+slcLKhJhIX5OdhtgqqCLK5bnKSR9jyhIqcioSCG0+bMyFs0nZRml0bK008Hua5c1peuXzDXT6aer68B30J5uSK1HKWUrWFvmCXhZpOPxS37bNzzz1nstwdYl6FtGs3CpesMnHkKbvlURj1TpkRuhQqROfjfyss2R80FNZrZQgjxplTrk0RtaDSaKRIpNT/t3avnL+Yy9TPLwhAYqbim4hrLRs9XCpmKr9eh+m4FAYQQNsAjpRyRUupp9HmKlJLnLj7Ho+ce5Xj3cXxBHxU5FdxScwv3Lb2PQk9h+oNoZpa931QVr65+z+ycb9O74eSv4dQTqtqWRnN5k+oil4AWXxolEGYh8d4f8iOljOl/pNFMBFUc5vIQtHNV7GI+kKn4egq4HTAaHGQDvwFuSLqHZk4523eWTz3/KY51H6PAVUxV1grKs7Pp87fyz6/+Mw8deohPbvkk9y29b8G4aS87xgeVF2rNfdOT+JwJS2+H3ErY/30tvjSXPVLK9861DZqFgZx00lfmPN30NKFQiHsW3zPj55p7wuOKWXhfryRm4zrVzDyZii+PlDLSWU5KOSSEyLBTn2a2eezcYzyw5wEIuQl1vJXm7g00o+J5HTbB9Sv9+HMf5rN7PsveS3v5/NbPz1mvgyuag/8D4wNw7Qdm75x2B1z1u/Dcg9DfAvnV6ffRaC4DhBCvA9ag+nwBIKX8/NxZpLnSCIWuwDArPber0SSQ6Yh7WAixSUq5H0AIcTUwmmYfzRzwi9O/UMJrrIGh5rfzujUrufPOchpKcugb8bP7VCc/3dfM0Phb2Lp5Gb8692N8IR9fuulLWoDNJqEQvPyQKilcvXl2z33Vu+DZf1Jet21/Nbvn1mjmACHEQ6iIjVtR+cv3Awu6z5dm+hC64Ma0Iy0eaaYBfZleFmQ62v4I8FMhRCvqo68A3jZjVmkmxRONT/DZPQ8QGFpK1fif8JM/u5aVFbFlPLcuLeFPti3hM48c4dGXBZvWCZ5s/F9Kskr45JZPzpHlVyBndkLPWXjzt2f/3IX1qiHo/h/ATR+PNsfUaC5fbpBSrhdCvCal/BshxIPA43NtlGb+cCVLhGPdx2jsb5zmcMhJqIRQEALj0fL5C5XhLhjrh+Ilc21JLN1nofUArH3zpFoBaKaPTJss7w334zLqU56UUvpnzizNRDnafZS/fvbTBEZquS7nL/j6H15Ljtv64y3McfH1d25iRflpHtwJq9b08qPjP2Jl0UruW6ob8M4KL/0H5C6a+fLyydj0bvjZ++DcLlh629zYoJkwo74grzT2cKJtgN4RPy67oKE0h6tri6gtXuADlpnFiNQYEUJUAt3Aojm0RzOfkBZNlmf0dHJe5Vo39jfO3MEnkqN09Bfqfs2bFvak4Lln1P0MiC+7fwBHcJJTBa0H1H3veShaPH1GaSbMROLMrgHqw/tsEkIgpfz+jFilmRB9Y3184MkP4fNlcZX7Izz0rutwO9L3bPjQbcuw2wX/+ESQ5Rsu8rcv/S3rS9ezOF9/KWeUjuNK9Gz/zNyVe1/5esgqhAM/1OJrAdDcM8K/7TrDo6+1MTQeAMBlt+EPhSJjmy31RbzvxgbuXFM+rwZ284RHhRAFwD8B+1GOjm/OrUma+cJsf1/O9Z9jScE884pMN+H3VEzGA+YfBncujPaCMxsc7mk2buGS232UpMO7wUvQcw7q0tTCazs0MfHlHwO7a2EL4nlGRuJLCPEDYAlwEAiGF0tAi685RkrJX+3+LL2+Hqp9f8l3/ujWjISXwZ9sW0Jj1zA/PfgGylZ+jc88/xn+6+7/0vlfM8nLD4HDA1fPYSE2hxvWvw32fQdGeiB7fjeGvFLxBUJ85elTfPPZ89hs8Pr1lbxhQyXrq/MpyHYRDElOdwyy+2QnP3q5iQ/88FVuWlbC3/3OOmqKtCfMQEr5hfDDnwshHkUVkeqfS5s08wk56aJ8w/5hxgJj5LnycGY4mTYWGIt5HpIhBHPfYHi6PHKDvsHYnK9QEBqfUyHvhfXpDxAYV+LrzNNKfK2cQjjkcJcSDp689NtON+aiVlJCxzElepxZkz5kyk+nMdw3PhRKLZRCQRjqBG9p+hMGA3DiUfU6aq+biKnp8Y2oCehk35uuM5C3CFw503veeUCmMnYzsFVK+adSyg+Fbx+eScM0mfHTkw/z4qVd2Pvu5jvvfBMe58S6lAsh+MJ9a9lYWctI2xt4res1vn9Ma+oZY6QHDv0Y1r8Vcorn1par3gVBHxz+2dzaobGkuWeE+x/aw7/tOsvr1y9i18dv4ctv2cDNy0spyFZ9guw2wcqKPP542xJ2ffwWPnfvag409XHv15/nhTNdc/wK5g9CiNeEEJ8SQiyRUo5r4aVJJHZY2zrUymPnHmM8OJ50Dyklu5t383Lby+y8sJPRQPI6ZGbBleWIHXw/cf4J9l7aOyFr+8b6GPGPTGgff9CPL+iLPO8a7YqxuWeshyNdR3iu5bmUxznXd46esR7Lde3D7TzX8hwXh9uiC0d7lQhq2adyocwMtCoxYGa402T0xF5jorHPwOnfpN8uFILGF2CoQz2XEvxTrCs3PhR9PNKtol4u7k/cLuBTXqt0tB5EJstODEQ/V0IB622yCqKPB1tj1/lH1XsV/5oHw59jf0t6+yK2jEPLq9HPdbhb3QcD6n02OPmYEthW+Meg7SCcfBx8w3Di10owpkNK6DypbIi3yT9mvc8ckKn4OoIqsqGZR3SPdvOlV/6JwHADX73nI1QVTG42xe2w869v20hocAO5wY38x8H/4NJwBj8Emomz/78gMDq75eWTUbEOFm2AA7pP+nzjcEs/v/PvL9DYNcxD79rEP79tI4vyU3+/7TbBe7Y28OsP30ip1827v/MKvzgwgT/My5t7gQDwEyHEXiHEx4UQtXNtlGZ+ICzcXhcGLgDKs5WMx8/H1mzZ1bSLYLyQQIm03zb9NvJ80D+YsE3XaOaTJe3D7exp3cMzzc9kvA/AU01P8dSFpyLPX2l7hT0X90Sev9z2Mk0DTcpzFX5P9rTuYVfTrpjjnOg5wUutL1meY8ivBMeJ/pPKoycBaRpwX4iej44T6rkhSIymu4NtSrAlQ0q1T/uxNK94AvScVec9/6wa5B/5uRrwd56a/DHNXkRDfAfNIin8vlx4QXmtgmlKKXSfUYe18n+ZRWrTi4nrQyEY7Ys+7zodu77zhBLIJ34du9xsr8G53XDpcHI7Lx1ReWV9TdB6UKVZ9F6AY/+nio31X4xO+vqGEsU3gDQt6zmnROH53elzCPualG3HfxVd5h9Vz088mnrfWSRT8VUCHBNCPCmE+KVxm0nDNOn55K4v4guNcXfFB9m2fGpNeuuKc/jsvWtoO38HgVCIL+/78jRZqYngH4OXHoKGbVC+Zq6tUVz1e3DpNRUDrpkX7G3s4e3feBG3w87Df7qVu9ZOrC5EXXEOv/jgVrbUF/EXPznEIwcvzpClCwcp5QUp5T9KKa8G3gmsB87PsVmaeYKUkiCxPbgMD0OynCV/koHyk41Psu/SvphlzYPNMc8vDka/k4FkXookjAfHebX9Vct1UsoYz5bVeqvjWWFMwPaN9SX16PWN9SUsM8IWJYJxAsqhaB5c+4ZhbEA9bj8SNiLsDTNE2khPrEdkqCNWmLQdUgPyjmkUX2YbR0xCuL9pCgc1XTuRzzn8GYz1w9GHlUfJeB8zjH213MrssRq28BANd6Q+aLJUE6vrfLhTeZfSIiOCMeKJGh9MFIdGoRUz5u+F2Ybus7Fevnh8FpMlZsEfz3CX9T4zTKbi63PAfcDfAQ+abpo54oWWl3ipcyfZI7fzxdffPi3HfOvmGm6oW0ag+xbLPxDNFDn4Qxi6BDf9xVxbEmXtm8HuhgM/mmtLNCiP1/u+u5fyfA8P/+kNLC3zTuo4XreDb79nM1saivjojw/y7KkMwjUuc4QQdUKIvwL+F1gJXD5N7toOwemd6bfra4Kml6NhQBoAzvku8uLQa7ELwyPcZOLrWE/ygX/HSOxAN5UgOtUb9az0jvXSOtSadFtIzBczc6bvDE9deCpl+KNBMvFokEnu16sdiSLQ/H41BzoRwXFojQu1u/BC7PPRvmi4nxXnn4WWvdFBtzGgn06EeThseu2jfZP/vvSci4bKGeLOEJjjYe9nX1N0mUzfhFsm+1hSXBeAyntLhTClrDS/EhWChghKVQfg/HPQ22g6VvjeLAhTfAdiCIyr9yRoEl9mIdZ2EFom2KIxlRf13DMqtHGWyUh8SSl3A42AM/x4L6pilGYO8Af9fHL35wj5ivjS9o+S5ZpYnlcyhBB84Y1rGe/ehotCvrL/K5YzZZpJEPTD8/8K1Vug4ea5tiZKdhGsej289uN5FQ99JdLUPcLvf/cV8rKc/OgPr6U8zzOl42W7HHzr969heXkuH/zv/ZzpGEq/02WKEOJl4Beo/7y3SCm3SCmnZQJRCHGXEOKkEOKMEGJumiV2nU7MpbHc7hT0N0Nf44ybNK8YH1LeFvPNlHvSHugBRIwXyvB8He46TPdo4uA7laCCWC9TCOtB9aXhSzFl3l9sfZGDHQdj9vWHYkVSKmFliL5dTbvwB/10jXbRP259XTx3MXVeV3zRre7RbgZ8A4RMAsEqxNIcptkTGsZx6VBmuVPNaQbUA61w/JfJRZqUMNiuPtvDP1MekovWHsK0iLih8bldyhs30gPHH03teTHnNPmGVKgcRAWE8dkaYijoM3m8JjDeOh0NH+XEY6lfa8AHZ8NhryXLrW21mcaRfU0q7DLG7iTCcHwQhtpVPt9wFxx7JJrr1nE8ul3P2dSvpzu8vulFdS2Yr9v46yyVp2qy3tBZHutmJL6EEH8E/Az4z/CiKuD/ZsooTWq+su+b9AUuss7z+2xfWTWtx15c6uUD21Yy0HYLBzsPpv2B1mTIaz9Wg56b/3L+NTe86l0q7OHkY3NtyRXL4JifP/ivvQRDkh/+4bVp87syxet28K3f34zbYeP939/H8PjEQpwuI94tpdwkpfySlPLcdB1UCGEH/g24G1gNvEMIsXq6jj9hQmlmzo31qbweo71qgDvUaZ2LMd8YH1TFCozbUGfsQKq/BU49oYoumG8Ws+dmoWOIr0HfIC+3vZywbbqJSbNIsdr2aPdR9rdbz2Eb+/aN9bGzcSeXhi9Fimukyse2mwbQOy/s5JW2V3jh4gsJAg5Se9AgUeS93PYyz7c8T9CUixMIBRKKfjQNhMP0Ip4Ti2vNN5woyAx70lW2Sya+Wg+oiopGcY3WA9BjEVl8cb91kSmz4LISGp0nlZgIjEXD+gI+9Z0KjCsxND5o/Xr9Y8lFjNmrYwjHsf5owY+O49bCYKwv+n1OV5TkrCmEM6cESsMte48+HD1GMs9WvMfO/BvTdTq2mEnHcfXbYhX2mO5zNbyZw+GQT7MnbWCSofNWv4dBv7UnzHy+WSDTsMMPAluBAQAp5WmgLN1O6WYEhRDvEUJ0CiEOhm9/aFr3+0KI0+Hb72do52VPx0gHPzjxbUJDa3nw3nfMyDk+sG0x+cGtOEOlfHX/V2P+RDSTIBSE5x6EivWwbMdcW5NIwy2QX6N6fmlmHSklH/vJIc51DfMfv7uJhpLpLatbXZjN19+5icbuYT77yNFpPfZCQUqZSYLCZNgCnJFSnpNS+lAhjTPfOb31gArFMnJnDGQasWT8lpsrgQ11qGR4UIOSM0+rY5/fPTPhXdPN2V2qWIFxO79bzcQbGB79yqugZou6ZRcrUXbk4Zjqc4bnazw4zsB47Hv7m0Y1yLw4dJHmwWYCMvVERkiGkFJypOtIpAgFwLLCZQBc6L+QfN+wp6xvXOUC7W/fzzPNz9A/3p8yHDDPZV1OfWdjbEhqMm+YmcOd1gUV4oVkfNGPPHfYhvD7k9TaZKFg7tw0llkIESlViF8qDBERv13nSSV4zO+r1fco6DNtE7bh+C9VCGX3WSWGOk9Ze2VOPhYVWcbEhxF2aBYIRu51xwkVRnzi19B+VN1bCYnxAXUNW3HyCVVkQspYm4QtVmj6wnYku67M4lDKuBDAQxPwGKWbdBaxAmjEuppmxI5MsMhJ5MIL6jcu/hiz3HM1U/E1Hv5jAUAI4SCNf3QCM4I/llJuDN++Fd63CHgAuBb15/aAEKIwQ1svax549l8IyiC/u+xPJ13dMB3ZLgd/sWMVA223cbL3JE82Pjkj57liOPKw+sGfj14vUP1ANv6uCkvoa06/vWZa+fbz59l5rJ1P3bOKG5aWzMg5rltczIe2L+Pn+1v4vwO6AMc0UgWYvzQt4WURhBDvF0LsE0Ls6+ychtw7KdVgb6gjtjAAKLHUbQrvCYzHDtqMQeVwpxqYjfZG82kg6o2ovEoNRmZafAUDahBq3MzhXO1HVfhR8yuqbLVhWzCg7DYGlEGf6h21+NZoHyKzuDRec0EdFNSqW+VGKFmm+i2N9kaGhc+1PEfbUBs9o4kDP0OYHeo4xOHOw2kLZYQIMewfpmmgifbhqBjMpIemIXDiy4oP+4cjxTpq82px22ObDyctQ06saHrh4gtJtzNjFVZoNRn7ROMTkcdep5csRxbS5qTCXpCwbfTgSUL3ctLM61tNBmcSatb0YqzHNxRSYYqdJxLtMYfLGYz1EyMgjPdzqD16/t7z1p45GYqKlsCYurZbD6jnZpFvPO5vjl0eGFONp4mTMF2nkocD+obU98AIH4wgosIPwl7IMWtB4x+NFaIylHqCJ+X4Jo1gGh9QoYuZEvSn9/SPJ1YVjXjW4q+/6aycmQGZiq/dQohPAVlCiB3AT4FfpdlnKjOCdwI7pZQ9UspeYCdwV4b7Xrac6jnH85cewzO6lY/dmqaD+RR5y9XV1HluwB6o5GsHvm4ZtqDJgFAInvsylK6Cla+fa2uSs/GdgIRD/zPXllxRvNbSxz88cYIdq8t539b6GT3Xh29bxtV1hTzwy6N0DOj8vtlCSvkNKeVmKeXm0tIMmpqmPaBpwBE/+DAP6sYGlMAyck6MfXNKwZ2nBmbminKjfdGqYN5yFYbkH7Ue4Ax3T0+OxLln4NST0dvJx6JhXB3HVRjhcKca1A6EC1Fc3KfsPvl4NM/N5VV9E7PDkxcxs/Vh+82z/VmFqs2GOw+kjCkS0TLUktS7NOiLDuby3fkpX1owFMQWnzsE2EX6HG2JxB/yMxKIDScz22kX9gTvWypv2lgw9Xe+LDtR9PhCiQLJXDLfIBQK4Q/5IwVDRgOjODwphBdEBbK5EETxEnCkKQxhJTbiPcBWDF6KnUxoP6LCFA1Bli7ENuhTBbNA2R5fNMR8XCvMx7cSd+k4ZTEJPsFKmYASSOYwxQt7VAl2q/f19M7o9844X6pzpupVlk4oTQipcsuMqom+EWtPWduhaP6ZI3aiggt7VG6bwXgG19A0kqn4+iTQCRwG/hh4DPh0mn3SzgiGeXO4AebPhBA1E9l32mcU5zmf3PUPyJCDT2/90ISbKU8Uh93GX9+1msG222kebOKRM4/M6PkuW44/ombWbv546o7zc01hnSqBf+CH0/wjqUnGmD/IX/zkECVeN/90//qMqotNBbtN8E/3r2fMH+RTvzh8RRXTEUJkCyE+I4T4Zvj5MiHEdMyGXARqTM+rw8tmDvPgJ9lAqO216KzviKlYRGAcPHmw9DblJaq7QeWAAJwJJ/BnF4MzG0pXqufxM8RDnaoAQdcU+h8Z+IaU0KvZojxSoYBa1h4Oj63cCMvD866jfeGCCv3RAbtR4dHwJhn3XaeUsDu3Ozp4tPr9FbbwoFNi+BQ6Rzpj8prMHOqMtuSwJRk+XVNxDaC8VFaeKHNeVjJCMsTetr0pxZTdZicYCka+x0O+1AV1xuObzsaR7cxOWDaR34iDHQd5sTVaQjwQ8nNRpii0YeR4mcVX2RqwpQn/6o4r3JCuN5aBsEWvK0gsUJOJkDEEVNuhzJoiT/T4EyXT1x6DgKrNidUPrdrNxH/3j/8qdVXKVEynuDG83kYD6DM7VeROfC5f0KfyPSHxuhrpntMWO5lWOwxJKb8ppXyLlPL+8OPp+Of+FVAvpVyP8m7910R2nvYZxXnMiy2vcnpoD2XyTt64bsWsnPO2VWVsKt2KGK/lG699U3u/JkrAB09/Xnm91vzOXFuTnqt+D/ouwIXn59qSK4KvPn2a0x1D/P2b1lGQnWa2d5pYXOrlL+9cwVPHO/j14bZZOec84bvAOHB9+PlF4G+n4bh7gWVCiAYhhAt4OzBzPTCljJ1ZN0SCOxfyq5WYsruU+DAnvfeci84AS6kqm+VXQ14l1F4PVZtUqGHdDbDkViVUjMHZiUfVoMa4GZ40q5CedPScUyIvMK4Gv6GAEnsFteoeVC5Wzzl1fk++stXuUt6vxufUefOrlO0GznBlULsDChtUOCGoAdZob2L1OgObHWQISWxQVLJiFOby7PG9uwyKPEUIIdh7aS+7m3fHrLPZbElFmxkpZSTfy8yBDuXVrM6txiGU0DzWcwxf0Je0oqJB02Biv6pN5ZtYUaTGE1Yl9Xe37E5YlozOkbgJcAmj2VXJJ5WMJr8ly6LLHC7rkujOFCkWnSesvTZlq+LsidvGHdfGw8rzVX2N9Tknkwc/kLqFwKSwEnR1aaKihFATMOl6jTqSVNudamGKnBkYq09KhBIbngyz2u8r02qH54UQ5+JvaXZLOyMopeyWUhqv/lvA1ZnueyUhpeQzz/0joYCXv9v+ZzM+Q24ghOD/3bOa4Y7ttA238ujZ+dMdfEHw6vfUIGLH52PLuM5XVr0e3Pm68MYscKi5j4d2n+Wtm6u5ZUXa2kXTynu3NrCmMo8vPHqMoSun+uESKeU/An4AKeUI6TPA0yKlDAB/BjwJHAd+IqWcuaom4wOxFdx6zqsQPN+QEhiGmILYCmFDHdEBY05cXqHDDUWLVciXWdDkVkD5WjWINW4FtdH1qX7TpFSeqpGe2BYW7UfV8t4L0ddhDMaM/zVjtn3F3Up8ASy9HRbfEr1VbFCDzOV3wrI7lJA0qL46up0h6OJDjgyEDWQQe9xQ6GyfdVnsZKGGG8o24HWpwbzdZsdjtx64um3ujP6/j/ekDktz2pwRD9qF/gvsu7SP4SQDR094EN0y2JKwLsuRhSssdrIciQJnqnPsvvgCIMbnEWNEXDq/3SInLlWPqt7GqAfETDoPWnxrFavJ5cK61MdIRn6N9fJUIjKeFNUBI1eQlWC0J7nWE/e2xmZX3x2z+DIXo0jVM2uiNNw8sdY7VtdPMuLfv3QVISH5JM0MkOmZNgPXhG83AV8F0o3Q0s4ICiEWmZ6+AfXnBeqP7A4hRGG40MYd4WVXJI+e+S3tvmMsd/0O1zVUpt9hGtlYU8D2mpthvIpvvPbNtEnGmjBjA7D7S1B/0/yscGiFMwvW3a9iqTPpGaSZFOOBIH/5s0OU5Xr4f6+b/arkdpvgC/etpX1gnK89fXrWzz9H+IQQWYQdHEKIJShP2JSRUj4mpVwupVwipfzidBwzKQ4PLNqo8kdLVyhxYnepIgXGgM8QRUaBCneeEl7GoCnTAYbdCWUr1Qy5+RaxJcVAsve88nCd/W20vxBE88Quvabyb+wu8BriK2y38R9jzo1yZSvRaNyMAbo7V83iJ6PmWvUb3LDNer0QIEPk2WND7pL9zzmTDOjzXflcX3k9t9beCljnTwFsWbQl8rg0u5Q76u+w3M5coAOICDuD1qHWmNyxvvG+iFfMzMrilWyu2Gx5DgC33U21t5qryq6iLi+50NhWs43irMwHvtnObGpz6xO9fA03w8rXxS6LL0Dizle9qKo2mRamEAzJwimTReoYEwzxlfD648Tp0tuTnzMdyURWukbHZsrXJl9naGKr6zTdRK8h/pN5ttb8Tux3DKbZW2US9N4ydSvNMJorU/G15ncSvZOZTICnE+zTSKZhh92m20Up5b8Cr0uzj+WMoBDi80KIN4Q3+7AQ4qgQ4hDwYeA94X17gC+gBNxe4PPhZVccwVCQv3/pQUK+Yv7xzvfPiQ0fu2MFox3baRlq5vHzs98JfEHywr+qkJcdn5+fFQ6TcdW7VCz+az+Za0suW7729BlOtatww/ys2S1va7CptpC3ba7h28+f53T7JMLHFh4PAE8ANUKIHwFPA381tyZNAocbSpaqMLuKddBwU/SWF57LNP/eePKjeU1GRcOpOPxcOdEcrK6TqvCGFUbVwtxF0dweiA4W7U6ov1HNsBsYotAIIZqOHFmnB3LLE0PMzOcMjGMLjpItrAfMVbnRdHOrUMN7Ft+D1+XFaXNGvEfJhEyOMycimlx2V0aVDwGur7w+doFIXjVxkVddB4sLFrM4f3HC+ixHFutK1+G0O3HblSdukXdRjEcuXhTmOHMiHrJ41pYkioS6vDocNichQgTNg2CbPVGY2J1q8G0MwG02WLReeWOX36UEm2Gb2yS0zV5YK8wDaY/JY2mUsk8XYpYVLhiSSrwnw5kFq9+ohIWZiUxqWgkNuzM2j9DszTHeo0zFV75FCYaiBvOG0YcZXqfW54v7HhsTMOZzpWpYvuwONdm08vWJx3K4Ewv/5FWp92AyPQqtvK4zRKZhh5tMt81CiA8Aaa20mhGUUn5WSvnL8OO/llKukVJukFLeKqU8Ydr3O1LKpeHbdyf5+hY8333tYQZDzVxb8E6WlaWpHjRDrFqUxx0N25HjFTx06BuW5Wc1JrrPwp6vw7q3xs3eLT7oI6oAACAASURBVAAqr1JVwPZ9Z9Y7vl8JnOkY4qHdZ3nTpipuXTm74Ybx/NVdK8hxO/jMI0cu++IbUsqdwJtQE3z/A2yWUj4zlzbNGGaPUekKNZiNHwBPBSMEKehXhTesrh3jfJ6w1y3gUzlnRlGH2htUWKPZa2UMrHzDszdhVVAH+TX43EUEshfFrPI4PGyv3c66knVsKt+UUNY9FV6Xl/Kccst1JVklrCxayeqiRK93Ta51uJrT5sRmEqO1ubVJxZfhdSvyFAHgsiWKpprcGnbU7UgIgVxSsARQwi7e22amNq+Wm6tvZsuiLZaFOuzCjiMsfsYqk3veADWwr1inbvG4vUrAGKGylRuj67IKE0PLyteoPK1190fFWdWmWNGTiXfDHGaXSrybiXm/hDrGVH5XXdmw9s3KCxixy40vu5zRvERRzbI7lafXaXpPDLGaWxFrmxWFDVBpGq/ENJ22eB2ZetDNkT9r3xwVv4Vm8WXy4K15UzRH3uVVvxFOj7rFe8hCwcQCLIZnM97zlRv7/Y7B7oKqq5OvnwEynVp60HT7e1Ru1ltnyiiNYjw4zkOH/g05XsWX7vq9ObXlo7evYKxrO02Djexs2pl+hysVKeHxT6gv8x1fmGtrJo4QcM0fqr4lTS/NtTWXFVJK/uZXR8ly2fnUPavS7zDDFHvd/OWdK3jpXA+/PDQDyeDzAPPEIVAHtAGtQG142eWHeVBkd5kq+kU2mL7jg3UOiHE+QyCceFRVHfMNqZlpr0UYkzHgHeub2kz7RMgugtprGS1YTtBdwHWV10VWjQXG8Dg82ISNipwKcl3pmv/GkqykvBCCxQWLcYZf76byTdTk1nDP4ntYXZw8DDkUrkJb6a1kWeEyyzL2AMWeYu6svzMiwjxx4WVrSpIXWlhRtIJ7Ft8DwObyzQgh2FaT6PVZW7IWr8tLSVaJpR1uuzvy+gM5pUoMrbvf+qSZfNYV61WFzpjy9SLRe1W2Kpqn5fSocxYtVtdcpufLr0nMQ8okV6vIJIiGwxUBJ1OYA6KiSQjlBVy0IfJ8LLeBoFUzbbcXCmpiPcb1NyohU39j9HUnE015lbGTHjHC3Ep8Zfg7Ym6aLYSqolqxPjbXr3yNeo+X7VD22+zK41i/NfZYdmdsfqcMJlZRNOwqi/suubywZHv0eXV4UqCoQXnXYrx+M09Gv3BSyltn2hBNIg++9D3G6eZ1VQ9QljszDZUzZVl5Lq9ruIOnh57i3w88xB11dyT98b+iOfGoKnt659/HzTYtINa+GZ78NOz9FtRdn357TUY8ebSd50538cC9qynxZj6LPpO8Y0stP97bzN8/pnqNZbtmL+xilngwxToJbE+xfmHizFIhS6FgNOzQnBsy1d/t+P2tQoZkSA2CDAEiQ6oRck5J8vyRnFJV+a6vOX0lthnC8BZZMR6cWIpgvFepKMv62BU5FVTkqP8Kcxn6Ak8B1d5qcpyx3p3FBWqQ73V68bq8CSXm7TZ7Qjn7Sm8lrUNqgiVZPlo82c5s7m64O/I8Wdihlcgs8BTQPqhC4lI1fmbVvZkN4oVQg3VzGxQhlGDIpIpg1aZoAZrCemg7aL1ddjHUXpv+ePEYoW4GxvfNyCvzFKjHuYusi4MArL4PLr6qRED8tWIKX5RAyO4hXDsoNcJmsiv8OSQTn/HjFfN22cVKlDZFWwmo34Ggem+9Faq4WOeJ6Pqc0sSwS1AisXR54rL4XMBca89xjF1SJhbTMX6fSper6plG4+bCOuUpLahTgrCwXt3miIz+aYUQH0u1Xkr5z9NjjsZgYHyAn5z+LmJ8OZ+9/b65NgeAj+xYyePf3M551/+yq2kXt9XdNtcmzS98w/DEX6teJVvmJj9vWnDlqKbLe78FQ1+ynqXWTIhRX5AvPHqMFeW5/N51k6ygNQPYbYLP3ruatzz0Ig/tPsfHdixPv9MC4oqcOLTZVbl4A2GHEVNvnilPmsUNlgcvRYWeEZ4lQ3EDP1Q/r4IkVeAgPMu/ITrLP+uowWmuKzemmXJ07cRCyJYVLOPioBrwry5eTX1+/YT2r8+rp9KbWGDLKDHvsru4ufpmRvwj7Gndgy8sgo31Vmwom/x7u7JwJRf6LyR40sx4HB7GAmMqRFOq68RSW+VXqwIXyapQJsPs1QkFoXoLHPu/9PuZBWKqvJ5kpeXNFNSqip1mj4vNHvu9MkIbjRSN6qtVgQu7S+1nNDcvrFfhbqGAsiut8BPq/bQ51C1ZAbSSZaqUvzl8Mt4bDcq71Phc+NBxH5QnX31GeZXRdgDr7o/20souVt/9gjr1+ivWKoHTsldVOS1bZS2+pkycnQkNq03rC+tV9cesgqj3siaDz3gWmEi1wz9BNTquAj4AbAJywzfNNPO53f9GUAzz7hV/So57fsxGN5Tk8PoldyN9JXz9wH9c9nkiE+bZL0N/M7zuwVlN3JwRNr9PVYs68P25tuSy4D92n+Vi3yh/88Y1OOzzy2N8TX0Rr1+/iP8M23g5IoTwCCE+JoR4WAjxcyHER4QQyUeRlxMly2NDaqaa82WzqUGdkVvRfUbNiJ96IlqAwxBf3nI10C6onZn+PtOEFNEmywnFLcI05MeGJeW781NWCMx2ZnNT9U04bI6k+V8pbUoi9pz22JylbGd2jMfOqpS9kR/mn2w/JJRH7c76O9lWHRuGmO3MptBTyNaqrdxSc0tCsQ7L11G9BVa9IXF5JkS8FVL9z67OYHI60wmHTHK7qq+B5XFVKuPFl5GbZoS+ZRWqwb/Nrh4b4ZNFi5XosafJQzPy6sw5T6k8hhXr1ftr/q4b4zXzslTnzQ7n2cXnSjnc6vek5loVCmo+njtX9TU1Hs8E2YWp18d/1nmLJlbif5bIdIRYDWySUg4CCCE+B/xaSvmumTLsSubSUAc7W3+Ke3wTf37T/Jq4/ejtK/n1N27ljOunPNvyrGU8+BVJ5ynY8zXY8M7LI1SvdLmKe3/lW3D9h5T7XjMpmrpHeGj3We7dUMl1iyfQp2QW+et7VrHzWDtfevwEX3vHVXNtzkzwfWAQ+Fr4+TuBHwBvmTOLZgtvqbqVrVYz9lnTULhp5b1KhPnHVNjhYBtcOqyqr/k8qhiHsKnBbO116Y83j3DYHNxel1hmPD7MfmvV1oRt4sl15SYtJ5+ORTnWBQKsyt2nSwFYnL+Y7tHuSHjjZIkPZzTsMQvWeFss52htNrAoBJIRlVcpr0xBWPjaHWGhn8LLMh2VMw0M0bPufrh0RIXa2V0qfxDCRS/Cg/3y1eo2VexOU87cUfWemoX0krjoaSES/7Nrr1fN182foadAialKi998b6nqoxcvolbdG30c36MNlNhJlt83HeTXwFAnDF2KfQ8insCF4RTI9IosB8yB3b7wMs0M8InffhlJkI9c/WGc82yWvKYom/uW3Yv0F/K1/dr7BajQgkf+VA00dvzNXFszfdzwYRhshSM/n2tLFjRf+PUxHDbBp+5ZOfWDhUIw0KYqPA13TVtFyqqCLP745sX86lAr+xovy64ea6WUfyCl3BW+/REwN4lFc4UzK1qOfqoYg1mnR1UjMwoatLwCJx9XEQALDLMjwWV3JeQ4masdWoUDThdbq7Zyc/XNCSJmbcnamLL3ZpIV9zDIdmazrWZbypDB6SaTZtKTwmZXYXBmcbH2TaqoRKYY4Y7L78q8n1eexXtvFJvxjyqRsvbNqUNrDYwqn5MqLBP3m1+xPir8UpFfFRuODOp7vOre2CIWZmbKezUV7E4Vnhn/eRSrSp1J+77NMzL95L8PvCKE+EX4+X3Af82MSVc2J7rPsr/nSfL9N/O7V8/PYlwfvm0lj3xjOyedP2dP656MZgAva178uopzftO3ZijGeY5YeruaLd/zVdjw9oXVr2yesOtkBzuPtfOJu1ayKH+SoQ/+MZXXcOTn0PgC+E0VvrKLlYdy/dtUqeEpzPB+4JYl/GRfC3/zq2M88sGt2GyX1ee9XwhxnZTyJQAhxLXAvjm26fLBGESaJwMWWEGmdPMYJVklkccbyzam2HJq5LvzLZfX5tVSi3Vvq4lWYrwiWbQRcsKRB0u2q/LzRpihtxyG2pPvC8qDG99mx2jknGvRYy8VlZtUKG6qBuGpECKa1yUXSOufvGmesKhYr3LOjD6CZWtUflfB/MmpTkWm1Q6/KIR4HLgpvOi9UsrEduqaKfOXT38RGXLywE1/PnMzR1OkqiCL+5ffxy+6nuKrr/47N1TeMG9tnXE6T8Fvv6gaAM6kq30uEEJ5v/7vA3Dmqdh+HZq0jAeCfP5Xx2goyeF9N9ZP/AChEBz4ATzz9yqsq6AONr5Dlep156qk5kuH4fRv4OgvoGQF3P0PibObGZLtcvCJu1fw0R8f4uf7W3jL5gxmcBcOVwN7hBBN4ee1wEkhxGFASinX///2zjs8jurqw+/dpt67rObee8EFG+OOcaPa9BJIQglfICQhISEEUiAQIJQABhMDBkwxYAM2phsDxrhb7pYs2apWrytp2/3+mN3VrrSSVlZZyZ73efbR7uzM6Mzs7M4995zzO74z7SzAVdI+JF4RHOjswVZXIkF0VILfh6SGpnKo9FCLjptv6SHZMdEDGp8bgtx7hHkTNROieS23Q8TCm1oxV7S63quGfCZ0xdhIZ1BUUfN2Ka81muYqij2Y9sQ8A4EqKeX/hBAxQoi+UsqsrjLsXOTLrO/JrttBsuYy5g0Z0PYGPuRXs4aw7sULOaT/kB2FO5iUMMnXJnU/jnRDQyBc/MTZGRkacRl8+RB8/x/V+Wonr3yXTVZJLatvmoifrp0iBxU5yrWV9a1SQ7D0OWW21tM1ZrXA4fXKJMDry2DMNTDvb96lojRh6eg+vPrDSf61+SgXjUwguIeI/XQCC3xtwFmNRqPUh1galB5FvVBwqIe4CGeEEIKZyTObiXH4Eocz2ytKE8703p00CUqPN+k/1h1ICElUIl+tNQ8+2+moeJAP8SovQAjxF+D3wB/si/TAmq4y6lzEJm08+P0j2Mzh/Gvunb42p03iQv1ZPuQybJYQntr5nK/N8Q2OdMOFj7fck6K3ozPAlNsVOdqcn3xtTa+hoLKOZ746ztxhccwc3M5U1MMfw/NTIW83LP4P9devZ0dwKG8ceZMndz3JYzse47m9z7EhcwPHyo8hNVrFSb7tB5j+G9i3FlbO9CDB2zYajeAvi4dRXN3Af7/OaPf2PRUp5UmgCggDohwPKeVJ+3sqHcUQpDj8vdDxOhsI1Ad6FOPwGXaHRlGSPEvxD1Wk4rtx4tWpHhlsb17dGQI6vZVeltrsire/kpcAY4HdAFLKfCGEmmTciby8510qrNmMC76DkX2i296gB3DHzKG88+KFpOs2sPv0bsbF9cwatS6hYB989Tcl3XDEZb62pmuZcLMS+fryIbjho7MzwtfJ/GPjESw2yZ8vbofSlZSKYubnD0Cfcey68De8W7CVL9+eQb1VyWvXaXToNXrqLfXOm3BsYCzzUudxxaAr6Df7ARi8ENZeDavmweWvtDtiOTYlgkvG9uHl77K4alIKyZGB7dq+JyKEeBi4EcikMchxdjZZVmk/QoJseyB3ztc3t4ez2OfyPeo9GFBqvHop3jpfJimlFEKZwhBCBLW1gYr31JpqeWH/s9CQwhOX3uhrc7wmJsSPq4ZdwdqCr3hyx3O8vmiVr03qHhqq4d2bFLGDxU+f/c6IIQhm/BY2/Q5OfN1c1lbFjR9PlPLRvnzumj2QlCgvHRebDTbeCztXcWjIPB4PC2LH9/cRYghhSf8lTE+azojoEUT5RyGEwGwzk1Odw76ifWzJ3cLao2tZc3gNs5JncfuY2xl861fw1gp4czlc9lK7Jwh+v2AInx4o5J+bDvPfa8afwVnocVwJ9JdSmtpcU+Wcw9sGyj2zpqpn0xuyDlV6KQHhStsBT1L5PRxvY3bvCCFeBMKFELcCXwAvdZ1Z5xZ/+uYZzKKCFf3vICakd/X9vOOCYVB5AXtLf2J/8X5fm9M9bPwtlGfBZS83qied7Yy/EcJSlOiXejdtEYvVxl/WH6RPeAC3XdDfu41sVlh/B/W7XuFfIy7kKtMxMquy+P3E3/PVFV/x5yl/ZmbyTKIDop3CNnqNnn5h/bhk4CU8deFTfHH5F9w2+jZ2FO7gyo+v5LFjb2G8dp1SL7buVkh/r13HER/mz20z+7MxvZAfT5S29zT0RA4A53B+jkpXsyO7jF0ny31tRo+hUcDk7L5f1JprqTHVdON/lB26BXd2Dd7x09Ws35uHxWrr1P16hVavZHYE9Y5sMVe8cr6klI8D7wHrgMHAA1LKZ1rfSsUbjpRk8EX+WgIaJvL7C3tfTXhkkIHrhq3AZgnkse3P+tqcrmfPG7DvLZjxu/b1Fent6Pxg5n2QvwcOb/C1NT2WV7ed5Ojpav68aBgBBi+Kga0WeP9WThx6h2sGjuL12kwuH3g5H13yEdcOu9brvjxRAVHcPuZ2Nl22iUsHXsprh17jkk+v59sL71Ykkt+/FQ5+2K5j+fmMfiSG+fPQR4ew2nr9AOqfwB4hxGYhxAbHw9dGqfQMRCcMSPMr6sgtN3aCNR1DSkllnbntFbsaR0bIWVzzdaz8GFtytvBt7reAcu5P17YhWd9hxBkrcx7Kr2LDvnxsnfh7nlGkOJ6WHnyPOFlay8nS2rZX7EbaTDsUQmiBL6SUFwKft2fnQogFwH8ALfCylPKRJu/fA9wCWIBi4GZH8bMQwgqk21c9JaVc0p7/3RuQUvKrz+9H2gw8PP2P6HpYQ2VvufPCEax9YSZ7dRs5WHKQ4dFnae/Sgv3wyT2QNl1Jw+sGioxFZJRnkFebR1VDFSabCX+tP2F+YSQGJzIkYgjh3aW0NGq5UpP02Z9gwFxF5VHFSWFlPU98dpQLBsUwf7gXAiw2G6y/gx8zPubulFT0Gnhu9nPMSJpxxjaE+YXxlyl/YXG/xTy07SHu+PY3rBh8GffazPi9f6u9L9j0tncE+Ou13LdwKHe9tYd3d+awYpLnHkO9hFeBR1HuKT6YovU9UkoOlx2mT3CfLkufk1JSZ6lDr9X3LPEHL+iI1HxBZV0nWtIxDhVUkVFUw+yhce1SKz1VasRktTEgtrls+pHCKurNNsYkt+de0/b5lFJikza0XqrWNVgb3JpddyY1phr8tH5ohIbiumLig1qXgq8115JR7i5KlFGRwfHy40yIn0BsYNf1/DxTNyezWHGUrFKi6aS6MZM94tXZzldlnRk/nQZ/fccVDffmVABKsCDEv2f8LrX5zZRSWoUQNiFEmJSy0tsd252254C5QC6wQwixQUp5yGW1PcAEKaVRCHEb8C9guf29Oill13Uy7AG8vPcdCk2HGGS4mflDe7a0fGsE++m457ybePTgN/xxyyN8eOlrZ1/fr7oKeOc6CIiAy//XZYpeZquZrXlb+Trna37I/4EiY1Gb2/QP68+4uHFMTpjMjKQZXkdL2o1WBxc/Dqsvhq3/htl/7pr/00t56OODWGySh5eOaPv6lxI23suHJz7irwnxpIWm8tzs50gM7pzeSOPixvHu4nf5z+7/8OqhV9kXPZDH61NJWXs13LQJ4kd4tZ/FoxJ47YdsHv9MkZ4PC+gZN64zwCilfNrXRvgSo8VIdmU2pXWlTE/yzgFvLwdKDpBTnYNeq2dOypxedR9wHTpabZLDBVUMiQ/xalI0s6hrZ9X3nCqnwmjmwiFtD+jLa5WoV4PZ6rXzZbNJ9uQoKZOenK+jhdUAjEgMbfckcWtpbsfKj5FZkcn8tPluDlh2ZTZJIUnoNI32VzZU8n3e94yMHklyaLISZTKeJso/ijprHaEG7xsW26SNXad3kRaaRkxgDDsKd1BsLAYgLiiO07WnmZw4mUj/9rXrqLMoTniDpaFd23nCarM6z0lBTQFCCOKD4rHYJA0WMzabRAi8/o5VGE3Y7J9FZ2QeVteb2ZndmGbrTdqh1SYRKKq6bfHN0SIMWg0XjTwzKf1jp6s5XFDFktGN99SvjhSxdEwft/WKquvZlV3OnGFx6LsxAOLtCLIGSBdCfA44f2WklHe1ss0kIENKeQJACLEWWAo4nS8p5dcu6/8IXOulPb2eYmMpz+57Ehr68uzyX/janA5zzaTBvLx3ESdq3uGzrK+Y32+2r03qPGw2+OCXUJkLN25UJF47mWJjMWsOr2Hd8XVUNlQSog9hSuIUxsaOZXDkYJKCkwj3D8egMdBgbaCsvozcmlwOlBxg1+ldbMraxLvH3iVYH8y8tHks6reICXETOn/wk3Y+jFoBPzwNo1dA9MDO3X8v5esjRWxML+S38we3LbIhJfLzB/hvxnu8EBPF5ITzeGLmE4QYOldAVq/Vc+/Ee5kQP4H7v7ufK8M1/M0Wwpw3roCff+1Vk08hBA8uGc6SZ7/jkU2H+eelvbYX8VYhxD+BDYBzZCSl3O07k7oXm70hrGOA2BpSSvJq8ogJjGkx0mCTNvYW7aXB2oAQAj+tH2V1ZYAyiWSRFvTC3Vk328xohRZNT5OIFo3ZcXkVdRRU1JFXUYdGCIYlNg7qLVYbOq0GKaXbb2ud2dql5p0qa57OWFVvpqzGRFp0EMXVDQQatAS5OFuOVOFTpUaq6s2M6NMY7dx6vJiUyEBSo4LIKKrhYL538+qfpBc0G7x6YlN6AdXmKkARM6k2VVNnqWsWDcqtzgXgtPE0MYEx1JhqsEorh0oPUVZf5qagXGNWojal9aUkhyaTV5PnVme+sN9Ct30XG4uxSRtxQXFIKTlWfow+wX0INgSTXpJOsbGYYmMxC/stdDpegDNtsC0HyvF9crC/eD8mq8l5zN5Qa64lSN9cv67KVMV3ud8xLm4c8UHx7Cna4zzGmgYzAVo/PtqfT1pUEKO9iEZKKdlyrPEYbS14X/tyKogP80enEUQFN37vS2oa+D6jhIlpkYQH6qmut5BbXkdVfWN6qzep6RvTCzDoNMwfrtx7bDZJudHk9r9cMXlw6LJKammwWBkS37qzfex0tUe7quvNbtGvIwXVmKw2qustRAYZ2jyGzsJb5+t9+6M99AFyXF7nAue1sv7PgE0ur/2FEDtRUhIfkVI2K1gQQvwc+DlASkrvSom5beNfsFLPnSN/T2J470/f0moE/5jzc37+1dc8tO1RZqXO6FENHzvE90/BsU2w4FFIae0Sbj851Tm8cuAV1mesxyqtzE6ZzbIBy5iSOKXFtJ1ATSCB+kCSQpKYnDCZW0begtVmZcfpHXyc+TGfZn3K+8ffZ2DEQK4beh0L+y3s3FSNeQ/D0U1KCub1G85+tcc2qDNZeWDDAQbEBnPr9H5tri+/fYx/H3mNVyPCWNZ/GQ9MfaBLU7RmJs/k3cXvcu+We7nbks6tVUbuWHsV2hs3gj6gze1H9Anjlun9WPntCRaPTmRq/95X3IzSKgVgssuyc0pq3jFYtNgs2KStVQeoxlzD/uL9JAQnMDbWs5KY0WyksLYQP52f20A12BBMjamm2eAU4MuTXxIbGNulbUkKawsxWhRnpc5ch9FiJMwvjEERg9rcdmd2GXkVjc6p68Ct3mxl88FCkiMDybE7QwtGxHP8dA1Gk8Ur206W1lJnbnngaLNJCqvqiQv1R2uPDjhSphz2aDXCOasPkBwZyA+ZJQDMGhJLTYNiy7YTpSwYEe+MaDmcL7PVRlmtibJaE6lRQc5jcZBRVEOIv464UM8ZFI56oe8zSxiaEEq0h4GzyWpznjsBbM3dCsDctLluv3VajRassLdor3OZo2yhsLaQjSc2khySzLCo5i07TDZ34VIpJSV1JUQFRKERGnYU7gAUh8VoMZJZkUlhbSEXJF/g5mzlVOfgCYts/TNten07HElwd77qLfXObJSjZUeJCYwh0j+S0rpSthdsZ2TMSJJDkt32VdVQ5TwHntIfHSmy2aW1zZyvSqMZnVa4OeJN/aKWnK/s0lqy7bVRE9Ii6ROu3B++z1Curx3ZZc51kyLcx63eZB3apKTebHU6QOl5lWSX1rqlyNps7jWLtQ0W/PVa5/dhf67yfWjL+XLQ1KyvjijZRANigxmeGOaz4UurzpcQIkVKeUpK+WpXGiGEuBaYAFzgsjhVSpknhOgHfCWESJdSZrpuJ6VcCawEmDBhQs+t9mvC//Z+wNHaLSSJpfxiylRfm9NpnD8gjpHbruWQ5Ule2reG28fd5GuTOs6RjYrC3/BL4bzOi1BWm6pZuX8law6vQYOGZQOWcePwG0kJPbNJBK1Gy+SEyUxOmMz9k+9nc/ZmXj/0Og/88ABP7X6K64ddz1VDriJQ3wmOfnAszH0QPr4bflrZqeelN/Ls18fJKatj7c8nY9C1PqMvtz3PY/ue4/WwUK4efBX3nfeHbknNSgxOZPWC1fx9+9956fj7HDbm8Mj62wm77BWvnOe75wxi88FC7luXzsb/m96uWpKegL1m+ZzGMaADOF5+nMGRg1tc12pTIjmVDS1HRKxSWWdElJLCaraZSQxOJK8mj/TidKw2K0abkWPlx9AIDYMiBmGTNgprCzvjcFq0e/fp5sHMsvoyN+fLYrNQZVLOR7A+mDqzFavF6uZ4AZwoqVGiRolhNFiU43V1Vr7PKKG63n2Qnp5bSUSQvtngtKCyzulItTRwzKuoY/cpxVmaNSSWEH+9m1DA6ap6EsMDnI4X4Pa+Y2Dp4NMDzc+1ydLEKW7y9XdEwRwRrqb7OJhfRV6FkQaLjf25FfSLDqbBYmNwfNPIvb3JssuSzIpMhkQOcb72lJLYdFlOdQ4GrYFgQ7DbOqV17iqsh8sOk12ZTWpoarPr1rFPR79EV8cqvTgdTxwsPYhBYyDEEEJWZRYDIga4TWJ6mlxwYLKayK/Jp9Zcy/Hy4/QP709aWBqZFZlkVmSSHJJMqJ9yDVTUVxCgC3C2EQHvUwlB+TwlstnnNH94vLNe6kCe+/nw5Cg1FeE4lF/ldL4iAg2UG92d+HrPRAAAIABJREFU3ep6d1GXgso65yTAolGJaDWC8loTEjDoNG7r51fUMzheT4XdyTJbbGA/tQfyK8kqabymvzh8mpTIQMamRFBh9L5TiOKgyhYjchlFNQxPbIwG55XX9ajI14fAOAAhxDopZXuaxeQBru58kn2ZG0KIOcD9wAVSStd0kDz73xNCiG9QZi4zm27f2zhVmcNTe/8JDWn8b8V9vSon3hv+ddFyFr7zCS+lv8g1wy/t3X1RCvbDulsgcQwsfa5TIjw2aWPd8XU8u+dZyuvLWTZgGXeOvbNTi3MDdAEsG7CMpf2Xsr1wO6sPrOap3U+x+uBqbhx+Y+c4YeNvgqOfKg2B+86A2KGdY3wvIz23khe2nOCycUlM7td62wG5ew3/2vEIa8JCuXbI1fxuUvd+/w1aAw9OeZDhUcP5549/56qKbfznqwcYOPvhNrcNMGh5/IrRLH9xGw9uOMjjV4zuBos7FyHExcBwwDmlL6V8qAP7ewxYDJhQ7k03SSkrWt/Kd6SXNA4yHZGhpjgGqTa7JonRbGyWYudYL6syC1DSW11rY7RCGfB9k/ON2zbe1uR4+n+tkVOdQ7XJkWJkdwijRzjrJzMrMjlRecJtm6PlRzlZeRKA6IBojCYLfhrPA6+Smga+Oea59rbO1HwAfqKkBkqUAWd0kJ+zvuWnrMaogZSSk6VG9uVWsGhUImarDX+9lgYXx6jCaG7mKFmsspm4R3qedymDDRYre09VuKVFbzlW3GJNltFkYdfJcqfT6XZ8dgSCffZIhMP5ajrYrXJxhLRC66xl2nhio1d2g91pchl351bnukWvQKkTA8irycNia3SuCmsLMVvNdtusFNYWEuEX0cx5a4rNptSFOThZddKZ2lhSV8JPBT+1uO3x8uMAzvusw+lykFOdQ5omzfk8pzqH4dHDSQ1NBeBEhXK95tfkMya2UfrAZDXRYDUSqG10dDcdKPBow8H8SsanKt/L7CZKf44IVE2DxRm5bCqYYTRZyCiqYUBsMEF+umbOV1NFTVeH6VSZET+dxi1S5sqRwioGutQWuv7noqrm6Z5F1Q0UVdezLbPxM/v2WDFjUsIJbUFAw2JTvjv5FS2nWVfWmSmrVY7rREkNg+ND2pxA7Sza+i+uv4Bt59O4swMYKIToK4QwACtQ8u0bdy7EWOBFYImUsshleYQQws/+PBqYhkutWG+l3lLPDZ/cidUmuXfsX0kIa17Y2ttJjQ5ieb/bMEsj9331mK/NOXOqC5UmtQHhcNXaTlH2O1l1kps+vYmHtj1EWmgaaxet5aFpD3WZKpIQgskJk3lh7gusWbiG4dHDeWr3UyxYt4BXDryC0dwBWWQhYOmzYAhW+kh1QoFxb6PebOWed/YSE+zHA4uap8W4Ig+u59Hv/2R3vK7qdsfLgRCCKwdfyf8WrKbOEMg1p95n8/ePtL0hMDEtkttnDuC9Xbl8tC+/iy3tXIQQL6CIOf0K5b52BZDawd1+DoyQUo4CjgF/6OD+2oWUEovNgsVmwWwzU1pXSkldidMBaQmdRuesTXGlxlTDpqxNfH7yc+dgFZSIVlMOlR0iv0a5BkL07hEPg7bRiYkLiiM1TDnNxyuOt3lM+TX5bMraxMYTG/k291tqzcqArqCmgGPlx5wPh7MFSoTiVNUpcqtzKagtwE/rR7h/ODqNzvlwqOo5aLA0EKALINw/nAZrA0kRbaffesIxwAPQNPk+b8ss5XiR5/5PG/blO52Wb48Vs/lgIYWV9eS4SNVnFteQW+4+cLRK6ebEtYevjxRRWFXvtn2F0dQscufgh4xS58AUlOhHU1xrfo6drqa0poHjRcpn4zgbmZWNioC15lo2Z29uNfp5qLT5UM8mbW7OS9OUQ1dcHS+A3ad3u0087D69u03HqzWOlh1t1fFypbV7rMNZdFBvqXc+d72+Xfni5BfKfi1VHt93Jbe8DillswgVKFGuzQcL+T6jhKp6M4WV9R5TEQ/mV/LN0SKKquqbvdcaGUU1LTpeDkprGwVAth4vpt5eN+nptlhvtro5XgDlRpNbXz0pJcXVDazfm0e5y3Xb2uTEN0fdJ1W6s6VKW5Ev2cLzNpFSWoQQdwKbUaTmX5FSHhRCPATslFJuAB4DgoF37QMRh6T8UOBFIYQNxUF8pIlKYq/DIStfYj7BaL+7uX5i7+vI7S33zZnFxlUz+O70BrbnXcZ5fXrZsZqMiuNVVwE3f+qVMEFrWG1W1hxewzN7nsGgMfDQ1IdYNmBZtw6+R8eM5oU5L7C3aC8v7HuBJ3c9yeoDq7lpxE0sH7z8zCJhwbFKRPCt5fDJb2DJM+dU/deTnx/jeFENr948ibDAlmu2ZMaX/PPru3krNITrB1/FvZO6J9WwNcbEjeXtpR9yz/tLuTfjDQ5ba/jV+X9tU/L5/+YM5PvMEn6/bj8D44K9zrvvAUyVUo4SQuyXUv5VCPFv3GuM242U8jOXlz8Cl3fIQi85VXWKsvoyiuuK3ZwkB4MiBjEgYgBSSnJrcgk1hBLmF4ZBa0AjNATpg7BJGw3WBmzS5pTXdkTDLDaLmyiHY8DnwKA1OH8vLki+oFltb3RAY03g+LjxAOiEjjpLHfk1+ei1eqfzp9PonLVnDgEPBzWmGqoaqgjUBbKveJ+b81RnqWN0jBJ9tdls9A/v32IapWP/2VXZ6IQy5Kkx1+Cn8yNQF0hlQyX+ek2Hf7oSwvybpS0aTRZyy42tNl92ODDbs9wHl1qNaDYg7sjgsKFpumEb1DapYxsUF9LMRldcUyEBNPYIqOt5dTg93qj4uuLaO6ugtqBdyoadRaA+kBpTjZsT2Jm0dE/wOJni5cWaW17XLGIFuIlvfG1PVXUVZHHlTHrGeVMD6UhRdLD5YCGLRrVP7bfKxbYjhdVOkY1vjxe3tEmreNWbs5Noy/kaLYSoQpnECLA/x/5aSilb/QZIKTcCG5sse8Dl+ZwWtvsBGNmGbb2KR398ih+LPiPIuJCVN1/v88FXV2LQaXhi7n3c+tUefv3l/Xx77fre0/PFaob3boL8vbDiTUjomLpbZkUmD3z/APtL9jMzaSZ/nvLnLu3/0RZjYsfwwlzFCXt+3/M8sesJVh9czc0jbubKwVcSoGvnDPDgBUrPs28fU1IPp9zRNYb3MHZml7Fy6wmuPi+FCwa1rH4pT23n75t/wdshQdw4eAX3dFONlzfEhqXwyrIPeOTthazKWs9hYx7/uvCpVlOF9VoNL1w7nsXPfMetr+1k/R3nd2uefAdwjIqNQohEoBQ4Mw1jz9wMvO3pjc4WhjpQcsD5PCogipjAGI6UHnEuq7fWY7VZKW8oJ704HT+tH7NTZ6MVWiL8I5xRsi9Pfuncx3kJ57kN8hzRrsTgRDc1NqPFSF51HiariTC/MI9KbQCTEye7zfo7HCOrtHK69rTToQs2BDv72pXVN58pz67KprhOUa0bFjWMtLA0tuZudUY3HA6ZI9XRE4E6xVF0PUcAfUL6oEFjj6I45nnPnKhgv2bOl8UmW3W8WiLIoKOs1tQsmtaSUII3hAbo3Qar7aW96Vhau9Klq8kOIQpHvaC3uDreUkqOlB1pZe2OM63PNL7P+95tWbA+mO0F27vsf5qsJtKL04nwj3Bbvjl7c7N1dcK78ZSjftAbmtaFNSUhLKDL+9l9vL/9GRVKVBsK2xmda8qUNsoGOptWv01SSq2UMlRKGSKl1NmfO173milPX7Ny3yu8cewVZNUkXr3kfjcVmrOVqf2SmBXzS2pkDvd9+ZSvzfEOmw0+vA2Ofar0sxqysO1tWsBsM7Ny/0qu+OgKTlWf4tHpj/L0rKd96ni5MiZ2DC/OfZHXL3qdQRGDeHzn4yx8fyFrDq2hwdrOFMKZf4ShS5Tmy8c+a3v9Xk5tg4XfvLuPpIgA/riw5Vo3W8E+/vbxdbwdHMBNg5Zzz3l/7DGOlwNDRBoPLHqdv5RVsaNwJ8s/upKjZUdb3SYu1J8XrhtPUVUDN7zyk8e0lh7Ix0KIcJRsi91ANvBmWxsJIb4QQhzw8Fjqss79KKq8b3jah5RypZRygpRyQkxMx9pUNE1HivCPoF9YY0WAQWvgVNUpNmdvdqZGOb7PNhSFQ1eVw3C/cGe6oqsIgSMy0T+8PwMjBjofQyKHONMKPaUjOoj0jyQpJKnZcodKW5hfGDGBMc60QsAZxUsOSWZs7FjC/cMxmo0UG4vx1/kT7qeoumk1WhosDRjNRuegvDXlxrigOOakzmF26my3x6joURi0BsxWMyZbA1rRsfuy1sN3u7V6k9aICFIG1yU17r/F9R2QtO+I4wUQ2M6ogE6jRyO0+Lk4bY6IZ3tS3r1V6u0UMSkgLSzN48RCkbGo/ffGdnCq6hQ51Tlu8vmeGJ0Ujk50/4RXRKC+xehY4zoGwj2kp7riqY9cRzhcUM3H+/O9vr5bmiyMbUHds6voYc02zi6klDy16z88s/dJLFUjeXLOwwzuPWk6HebfF19DoGkin+Wt4asTO3xtTutICZt+C+nvwuwHYOItZ7yrI2VHuPqTq3lmzzNcmHwhHy79kIX9Fva4gTcoTthL815i9YLV9Avrx6M7HmXhuoW8deQtj3UhHtFo4JIXIH4kvHM9nNzWtUb7ECkl93+QzqkyI49dPrpF1T9ryTH+vH4F7wT5ccvAK7l78v098vMHIGk8l899gv8VFGI2FnPdxmvZlNV6Rt64lAiev3Ychwuq+NnqnW61Hz0RKeXDUsoKKeU6lFqvIa5ZGK1sN0dKOcLDYz2AEOJGYBFwjWytm2wnodfo6RPS2GepacTH4aA0pdhYDJJmzpejHuungp+cIgEA1eZq/HX++GvdByR+Wj/mpM6hf3h/hkcNb7f9jqhqkD6IKP8oZ90aNEZD+of3JyE4gamJU52O0qyUWYT7hzttqGio4Jucb/ix4EegdecLFKfUT+vn9hBCMDBiIFMTp3JhyjSSAtvuWZgaFdRiqq3Gi9HUlP4tz65P6tsoWtI04uWn0xAWoKemhfosgP4xwcSEKI7KyDYGyWeC4Qwa0A4IGd3sWKC5iqZrqmpTvHV4WpsM8JYhUUOcsvYJwW0HxhOCE5plCkQHRNMvvL0SCd6j12q4ccK0Ltt/S+i0GvpGeY50OwgL0BPs17qT3pJAhrcMTwx1u5eeKvOuwXlcqD8LRyYQFtAzsrBU56uLKKkr4c6v7mTVgZcxlU/iN2MeYu7Q9uWz9nYMOg0rL/470hLKvVvuo7yu7SJRn/HV32DHyzD1Ljj/njPahclq4tk9z3LVx1dRbCzmiZlP8O+Z/yYqoHvD2WfC+LjxrJq/ilXzVpEUksQ/tv+Dhe8v5J2j73isK2mGIQiuWQdhSfDmlZC/p+uN9gFvbD/Fh3vzuWfOoBbVDc0lx7jv/UvZEKDjjoEruGvKn3qu4+VgxGWMPv8PvH0yiyHaIH737e/4985/Nyted2XWkDieXD6G3afKufKFbWc8y9+VCCEmCiHiXV5fD7wDPCyEiGx5S6/2vQD4HYpgVAfUa7zHX+fv5vQ0dTpGx4xmXNw4JsRPcJPmzq3JxYYNIYQz+gSQGNR4Two1hJIalsrCfgtZkLaAWSmzWuzVODhyMDGB7Y/i9Qvrx4CIAQyNGopOo0xcnKw6iclqcoootFV3ODxqOKNjR6PRaJzy+WfatFkjNIT7hxMXHM3SMcmtrhsV5MeY5HAGxQWzcGQCC0Y01gIH++mcfYhaw0/beGzzh8czc7CSCREWoCchrDHlW9fEkxueGIZOo2nWdNa14XFieADjUiIY2SeMfjHBxHjov5XWxuA5JdJz9Mig1ThVG71lxsAY5g9re8yTEprC0KiOq+V6dZ9qg/jAxs90QPiAVtdNCU1hbOxYpvWZxvSk6c6IcEJwAkMihzjVNkfGNFbQ9A3r67UtnnqbgdK3LMw/mJmDYxkY21TeHxa3UjflKq3eEqOSwj1eJxoBGo1g2oBoEsNbK09wv06mDXB3rL29jlqa2BRCoHfZh7f31olpkei1mh7TJkV1vjoZo9nI6gOrWfbhMr7L3UZ94SJuHfpbbpne+hf5bGV0YgK/GPYnTKKEqz64p0VZW58hJXz+F9j6OIy7HuY+dEaiEXuL9rL84+W8uP9FLup7ER8u/ZC5qXO7wOCuZVLCJFYvWM3KuStJCErg4R8f5uIPLmbdsXVtzywGx8D1H4J/OLx+KRTs6x6ju4mfssr460cHuWBQDHdc6Pn7XFd0iHs+uJRP/QT3DLyKX07twRGvppx/N9Gjr2PV0T0sjxzD6oOrue2L2yivb7luYPHoRFbfNInc8joWPr2VD/fk9bTv+IvYRaqFEDOAR4DXgErsPSI7wLNACPC5EGKvXVGxy3GNdjV1OvRaPfFB8cQGxjIpfhLj48YT5heGxWZRJNwRbtsIIZjWZxoT4ycyIX7CGUWz2oMQgkERg/DT+pEQpEQWjpYd5YuTXzhrslqr3wLFAe0T3IdpidMINgQTpA/q9JYmOo2G0UnhjOwTxtIxfZg/PJ7zB0Y7j0Gv1aB3cZCmDYhulnboKb0pyCUq4K/XEhagZ3hiKGOTlTqfiWmRDE8MbebIJUcGYrbaWhU/0Ahln/1iFKd7Sv8oZyTMQXRIyyl8oQF6xtgb9vaPCXZrph5qjxaMS4nwqHroifBAPf565f+5TgS4khCcwNBId8crzC+MyIDGeZFRMS3XXbsqa7aXML8wtxrnOalz3FIX23LoXX/XQwwhzEyeyciYkSQFK+m2o2NGMz9tvluT5NZ66zXF4bw5GBc3zm1MERagZ1hiKAH6xmsqMsiARiOYOTiW/jHNz3mf8ADmDWtZQCw1Koi+0UGMTg5n5iD3Egm9PfIZHeznJhPvilYjKK52j1S62gfurllr90bXSPD41Aino6nTCLdJCG9ScWOC/Zzfqb7RQcwcHEugodEJ82bipLPpGS5gL+eNw29QWFtIVmUW2wu2U2+tJ1o7iurM2dw4cTK/mef9F+5s5FdT57M9bw/7jG/wq41P8ezFd/vaJAWbDTbeCztXwYSbYeG/2+14VZuq+c/u//D20beJD4rnudnPOQvIeytCCKYkTmFywmR+yP+B/+79Lw9ue5CX0l/iF6N+weL+i52z1s0IS4Ib1sPqxfDqYrj2A0ga370H0AWcLK3lF6/vJDkikKdXjPU4e1eat5O7Nt1Aul7wx6E3cdWkM4ug+gwh4OJ/o6/M5U+7P2H47Lt5OOsDLll/CfdPvr/FyYTzB0az/s5p3PvuPn799l5WfZfF9VNSmT4whviw7s2j94BWSulQclgOrLSnHq4TQuxtZbs2kVL6ZEbNdcDiGCCOjxvfrB7MX+ePv86f7Kps6i312KRS8+UQP/LTKQNjX/Vi1Gv1TE6c7Nb8OUAX0PJvSxNCDCGd/lvrr9dSb7Zy4ZAYt8GZv765Q6jRCPpGB5EYHoC/XktNQ2OUeEh8qEdHSWcfwOpdUvgGuEQvHBGFzQebS7E3Te310zUZ1Da5dwkhmNo/mgN5lWQWK5L3LaUOzh8ej04jEEKwZHQiQgiklCRHBhKg19IvRomEJEcGUlRdT7kXcV4hBAG6AGYmz8Rf58+nWZ82WychKAGtRuuMxgbpg5jWZxpl9WX8WPcjYX5hJIUkYbQYySjPaLa9t6nx89PmU1xX7NaAe1DEIDfxmtauuyFRQ5oJtmiaxC50Gh3JIY3RUyGEMpHgEqzUCA3z0uZhsprIqc4hPii+mbAHgEajaeZYBugCPEai5w2P59jpajRCkBypXD9hAXrqgv2cnzsoETHHfWtq/+hmaoMT0iKdTZUBwgL1zB0Wx+eHFKXJBJff8vBAA4nhAc5sh/hQfwqr6vHXa2h6a2yadurq6CwcEc+O7HIqjKZmUd0Qe3piZJCBpIhArGESg05DSmQgOq2GnS1I2U/tH01WSS01DWb89VqKqxvc6syEEIQF6PHTaTCa4Ly+UYS3olbcVajOVyfwcvrLVDVUkRicyKK+Szl4vD8/HQjlrlkDuHvuoN4z892FrL70d8xec5Rviv/H49+lcO/57enX3QWYjPDhL+HQepj2fzDnr+1yvKSUfHHqC/65/Z+U1pdy3bDruHPMnZ1W9NsTcMyKT02cyta8rTy39zke+OEBXkp/iVtH3sqi/os8q1hG9oObNsJrS+C1pXDVm0oj5l5KcXUDN/5vBzYJq26c6FFWPivrK27/+i5KdIInx/2W2aNu8IGlnYBWD1eshlcXccnXzzB08WM8kPMJ93xzD3NT5/LH8/7osT6jf0ww7/1yKu/szOGlrSf47XtK0fjwxFA+uWt6Nx+EG1ohhE5KaQFmY1cdtNNr73/j4sZhtBidaVJxQXHEBcV5XNdP6+eU+NZr9KSEphATGNN+ZdMuINI/0q1Bs6+ZNSQWq016dLY8MSqpscbOEQkLDdAzOD6kRfW4+cPjPdZBuWKxth49HhQX4nSIHPi1oEY4KC6k0fnSaTivbxT+eg3hgQbW780D3J1Lx3hFCMG4lIhm+2uv2r3jnuhw6FyJ8o9yrhPuH87gCGWi2rGeY3JhUMQgBoYP5FT1KQ6WHGyfASiprPFB8YyJHeNsZxATGOPM5kgNTfUY6UoMTqTIWES/sH5OYZtj5cfIKM/wOtXVcT4dzpSj91xLUTBP0UCgVcXoQXHN0w+bqlO6Thg2jYhC02RBhUCDjgUjlOu16Th2YlokH+3LxyYlY1MiyKuoIzUykJOljZ75pL6RbsOqC4fEEmzQMSQ+lNQoxYma0l+p/SytNfF9hrtDuGhUotMurUY4nag+4QHUJYZxML/5dywmxM95fI7eYJ4u2Ul9IzldVe+zCcJee/PpSXy07COC9EFkFtdwxxt7yCiu4eGlw7huSpqvTesx6LQa3r/8aea/fTWrj/+dCL8IfjZxlm+McTRQzt8L8/6uyKO3w/E6WXWSx3Y8xpbcLQyJHMIzs55heHTXpuv4EiEEM5JmML3PdLbkbuG/e//LAz88wPP7nudnI37GsoHLmitSRaTCTZvgtWXw+iVw0b9g4s98cwAdoLLOzA2v/ERhZT1rbplE3+jmufDf7n6JP+z7DzoBr0z9JyMHLfaBpZ2Ifyhc9yG8toQhH/2WN5av4dWGUzy/93m25W/j5hE3c83Qa5pNNGg1gqsmpbB8QjL78yrZdbK8Q+psncRbwBYhRAmK3PxWACHEAJTUw16JaypTWwyPGk5SSBICQbhfOFqNtlWBg3MZvVaDl35XM/z0ymA3yp5uGOLfOLwamxyBv0F53xvHbmJaBNtOuPfUmjk41tkUVpm5d99PS1Et10G4Q7jDFdcInzc0zSqePjCGrU36KnlSvLuo70UAHC8/zvHy48xNneuM5GiEhqmJUxv/h3247JqCKoQgNTSVxKBEPj/5ebtsduBoneAQ/HDUtLYkkDEmdkyzZe1Nq9YIDUOjhnqtdBxmCMNf5++019HMvL11jW21Bpg9NI4d2WVOlcBgf8/XQdPrzJXxqREcKaxCrxXN7o0DYoNJCAugzqTcAwL0WqfYxuB4d2dRCEF0sB/zhsXz2aHGqG9r6YCOtzSieT88B4nh/hRV13ucmPDXa0ltowayK1Gdr04gUBfEG9tP8bdPDhFo0PHqTZOc+eEqjUQFhfDeJS9zyQdX82T677BY/8UvJnezA5a1FdbdAg3VSh+vdsjJV5mqeHHfi7x55E38tH7cO+Ferhl6jddpMr0dIQQzk2dyQdIFfJf3HS/uf5G/bf8bL+5/kRuH38jlgy53H5CHJsItnyvn+5N74PRBuOhRJbrSCyipaeD6VT9xvKial2+YyPhU9xl6s9XMU1/cxWuF3zFECp6ct5KkpCk+sraTCYyE6zfAq4vRr72aW5Y+y+wl7/Hkrid5es/TvHnkTW4bfRtL+i9xDhQcaDSCMcnhzvoRXyKl/LsQ4kuUnl6fuSgSaoBf+c6y7kOv1avOVjfgr9cya0gsQXZnxtXJig318zqaBsrs/cDYEI4XNaaSujpNrpEzR8qXN0IGTW1wRDXag2OgOy4lAn+9lsggAzMHx2LQavDTacivrGu1LmxA+ADSQtNaFHMBJSKaEppC//D+zd5zbBfqF+pMWR0fN55dp3dxftL52GyKsMy2gm3YbDY3dVBQ0mwdqbb9w/tz2ni6XVFgRx+u9nynWhPaiAuKI1gfjE3ayKrMcntvdMxoogOiOVl10mvJfQeBei2J4QEkhgc4JwRcCfbTcV7fSI6frmFQXMgZNRh27N8VR0pt05oznbbt66w9NjiuW1fHa1iCuxJpalQQcaH+7frudReihxVHnzETJkyQO3fu7Pb/eyCvkr9sOMiuk+WcPyCaJ64c3e39Anobx0tzWb7hekyyiuWpf+bPs5e2vVFHsVoUUY0tjyppcVe8CvEjvNq0zlLH2iNreeXAK1Q2VHLpwEu5c+yd5/yARkrJT4U/sXL/Sn4q/IlI/0iuG3YdKwavcC+wtlnhiwfhh6ch9Xy47CXFMevBnCo1cuPqn8ivqOPF6yY0a6ScXXGCP2y6mQOmUlZY/bn38vX49fBjOiPqyuHt6yB7K1xwH1zwe/aU7OOpXU+xu2g3oYZQlvRfwhWDruhSeWUhxC4p5YQu+wfdhK/uUyrdT4XRxJZjSkRo0ajEMyrqd6QFOlQNHa+n9I8iNqRxnCGlbLW8oel+OsIPGSUU1zQwpV+Uz8Y6RrMRg9bA1zlfY7aaWdiv+SSq0Wyk2lTdYjpuRzBbza06j2dCenE6OdU5pIaldrnwTVdS02ChpLqBNJdI2LHT1fQJD/Cqx21OmZGwQH2bkvSnSo3syXEXg+qM67sjtOc+pTpfZ8j+3Aqe/yaTTQcKiQjU88eFQ7l8fJJa3+Ul2RX5XPnhzzCSzyj/m1l16R0EtDP9wWtyd8HH/weF6TBqOVz8BPi13eivzlLHe8feY1X6KkrrS5mWOI1fj/81QyKHdI2dvZg9RXvNckO7AAAQ50lEQVRYuX8l3+V9R4ghhCsHXcmKISvc06P2rYWP7watARY9ASN8XPfXAj+eKOW2NbuwSXjp+gluqkt1ljpe2v0Mqw+vwd9q5aGgocy59HXQ+75+psuwmOCj/4N9b0LadFj2X2RYMjsKd/DusXf54tQXWGwWBoQPYHLCZCYnTGZM7JhOFXJQnS+V3obZauP7jBKGJ4Z5rLHxhqySWkL8dUTbZeMdNTbTBkQ7l3lDZzpfueVGdp0sZ8GI+FZT0roDo9lIjbnG65S+nkxBTQF7ivYwNnasVz3GznVyyozsPqU4X+GBBobGh/g88KE6X11EcXUDnx4s5IPduew+VUGwn46bz+/LLdP7drhx3LlIRX0VV37wSwpM6QQ0TOLZ+Q8xKbUTZy4qcpRI1541EBKvpLwNXdJmfdfp2tOsPbqWd4+9S2VDJefFn8cdY+9gbOzYzrPtLOVg6UFWpa/iy1NfIhDMTpnNtcOuZUzMGGVioiQDPvg55O2CIYtg/j+U+rAegMVq4+mvMnj2q+OkRQex6oaJzjx2q83K5yc/54nt/6CgoZzFNUbuGX070dPuOaPWBL0OKWHP6/DpHwABM+9Tavj0AZTWlfLxiY/5Lu879hTtcTZFjfSPJDogmgi/CB6Z8UiHIsWq86Wi0uhEzRwc265msWW1JjTCcy2WSs+hrQimSiP5FXXssCsexgT7MXWA7zORVOerg9SbrVTXWzhVVsvhgmoOF1SxL7eCA3lKfvGguGCWT0zhyglJTjlMlTPDarPyh6+fZFPOa9gsoUwNv4V/XXQVEUFnNlMIQPFR2P6iMlgEmHgLzPyDIiTQAhabhR/yf2BD5ga+PPklVmllVsosrh92PePixp25LecoeTV5rD2ylnXH11FtqmZY1DAuG3gZ89PmE6YLUlIQv30MpA2m/Rqm3A7+vpG8Bth1soz7PzjAkcJqLh+fxINLhhPsp8NkNbEhcwP/2/8yp2rzGGgy8UdLMBOWvAR9zsHrovykEr3M/BKC4xSxmpFXONNIG6wN7C3ay6HSQ5ysOklpfSmVDZU8N/s5QgzNFbm8RXW+VFTgSGEVJ4prmT883ie9iVRUegrF1Q1Oufz+McGM6OO78YMD1fk6A9JzK7lp9Q6q6s2YLE37DegYlhDK9IHRzB4ax5D4EHV2opP5IXc39359P9W2XKjry5zEa/jjhUuJCfEyjFxbCkc/gf3vKPUpWgOMvgou+J3Se8oDZquZ3UW7+SbnGzZlbaK0vpRwv3AW9VvE1UOvduvZoXJmGM1GPj7xMW8deYuMigz0Gj0zk2eyIG0B04JSCfr6H3DoQ8Xxmny70m8tuPtSSA7mV/LMlxl8erCQhDB/HlwynHnD4jhYepBPTnzCxhOfUNZQznCThZ9VVjFr5I1oZ/3p7E4z9Ibs7+GbfyrfNQSkTIbUaYpDGjNEccY68RypzpeKioLNJr0S11BROZuprDM71T9de5j5EtX5OgPyKup47usMQvx1hPrrCfXXER8WwNCEEPqEB6jOVjdgtpl5ftebvHroZUxUYGuIpW/AVJYOmsfyUecRGmBQ0p/qyqEyB8pOKOlrOT9B7k6QVohIg3E3wNjrIDim2f6PlR1jb/Fedp3exbb8bdSYa9Br9MxImsHi/ouZ0WdGpxfSqijpFIfLDvNR5kdszNpIWX0Zeo2eifETmR7Sj/GZPzLo+FdoNToYfBGMWgH9Z4Gh8/um1TRY+HhfPmt35LA3p4IQPx3XTI1l9MBS9pfsYmveVk5WnUSPhgvq6rmyopzJKbMR8/8GUc3Vt85pSo7DwQ/g8EeKmqV0kZb3DwN9ICz7r/JZdgDV+VJRUVFRcSWvoo7oYIPPaw8d9BjnSwixAPgPoAVellI+0uR9P+A1YDxQCiyXUmbb3/sD8DPACtwlpdzc2v9Sb2pnDyariVf3f8ibh96lxHwUhCTaIhnT0MBAUwP9TSb6WKyE2GyECB2B8aOwpUzBOvgizDGDqDBVUlpXSml9KbnVuZyoOMGJyhNkVmRSb60HIDYwlul9pjMjaQaTEyafVc2RezoWm4U9RXvYkrOFLblbyK7KBiBIF8AoTTCDyvMZYKxigE1DcuJ5hKZMQSRPgsRxXgmlNMVksXEgv5Kfssr44UQuO3OzaKCMuKgK+sSVY9bmklV1Apu04S+0jLMI5pedZk5dA6FDl8HUX0Fi834vKk0wGRVRm7JMqMqHmiIwG+G8X0D8yA7tWnW+VFRUVFR6Mj3C+RJCaIFjwFwgF9gBXCWlPOSyzu3AKCnlL4UQK4BLpJTLhRDDUJpjTgISgS+AQVLKFjt2qje1s5Oi2hJe3/cp+4+sIktWUa41eW7F3grR/rGkhqYxIGwgI2NGMTZ2DMmhCWo0swWa/iY0/Ylo+ovRbP1m7zfd3n1BQU0B+4r3sqd4N+kl+8muzMJkMznfD7DZiLNYibTZCNL6EaQPJtAQhr8hAo0uCIvGD7PGjwapo84iqTFbqDTVU24yUmOqpcFqROpqsemqkVqz2/+OFXoGWSTDayo4z1jL6HoThqSJMOJSGLYMQlXVqZ6A6nypqKioqPRk2nOf6srusJOADCnlCbtRa4GlwCGXdZYCD9qfvwc8K5QR8VJgrZSyAcgSQmTY97etC+1V6YHEBkXzm6nXwtRrASisquSbEwfZV3iK7LJSio0VVNTVUFVvQ0oBUou0BiItwUhrMDZzBNU2P7KAbwDFNdgD7HGK1DlcMCGEy3PHe40reXrPk//WlrPRljPTdEF7t2+vM9QzECgB8PGAFWEoQ+t3GqGrQOiLqdTnU68rR0MDVlmDyVJFbX0uZg/n3yAlQVISaLPRR0iCtDYiLTbi663EWS3EW6zEWaykmS1EBidA7FAYMhRSpkDqFAiI6OZjV1FRUVFRUTlX6Ernqw+Q4/I6FzivpXWklBYhRCUQZV/+Y5Ntm2mQCyF+Dvzc/rJGCHG0nTZGAyXt3OZsQT32c5Nz9dhbOO5y3OeDzkrOhs+8Z/Qj6CC7du0qEUKc7IRd9ZbPtLfYCaqtXUVvsbW32AmqrV1FR231+j7Vlc5XlyOlXAmsPNPthRA7z4ZUljNBPXb12M8lztXjhnP72HsaUsqYttdqm97ymfYWO0G1tavoLbb2FjtBtbWr6E5bNV247zzAVas7yb7M4zpCCB0QhiK84c22KioqKioqKioqKioqvYaudL52AAOFEH2FEAZgBbChyTobgBvszy8HvpJKwcoGYIUQwk8I0RcYCPzUhbaqqKioqKioqKioqKh0KV2Wdmiv4boT2IwiNf+KlPKgEOIhYKeUcgOwCnjdLqhRhuKgYV/vHZRiDAtwR2tKhx3gjFMWzwLUYz83OVeP/Vw9bji3j/1spbd8pr3FTlBt7Sp6i629xU5Qbe0qus3Ws6bJsoqKioqKioqKioqKSk+mK9MOVVRUVFRUVFRUVFRUVOyozpeKioqKioqKioqKiko3cM47X0KIh4UQ+4UQe4UQnwkhEn1tU3chhHhMCHHEfvwfCCHCfW1TdyCEuEIIcVAIYRNC9AoJ1I4ihFgghDgqhMgQQtzna3u6CyHEK0KIIiHEAV/b0t0IIZKFEF8LIQ7Zr/f/87VNKh2jp32PW7rGhBAPCiHy7PfVvUKIhS7b/MFu/1EhxPxutDVbCJFut2enfVmkEOJzIcRx+98I+3IhhHjabud+IcS4brRzsMt52yuEqBJC/LqnnFNPv6lnch6FEDfY1z8uhLjB0//qIls9jnuEEGlCiDqX8/uCyzbj7ddOhv14RDfZ2u7PvKt/I1qw820XG7OFEHvty319Tlv6ffL99SqlPKcfQKjL87uAF3xtUzce+zxAZ3/+KPCor23qpuMeCgwGvgEm+NqebjheLZAJ9AMMwD5gmK/t6qZjnwGMAw742hYfHHsCMM7+PAQ4dq587mfjoyd+j1u6xoAHgXs9rD/Mbrcf0Nd+PNpusjUbiG6y7F/Affbn9znugcBCYBMggMnAdh9+5oUozVt7xDn19Jva3vMIRAIn7H8j7M8juslWj+MeIK2l+wSK2vZk+3FsAi7qJlvb9Zl3x2+EJzubvP9v4IEeck5b+n3y+fV6zke+pJRVLi+DgHNGgURK+ZmU0mJ/+SNKP7WzHinlYSnlUV/b0Y1MAjKklCeklCZgLbDUxzZ1C1LKb1GUVM85pJQFUsrd9ufVwGGgj2+tUukAPe57fAbX2FJgrZSyQUqZBWSgHJevWAq8an/+KrDMZflrUuFHIFwIkeAD+2YDmVLKk62s063ntIXf1Paex/nA51LKMillOfA5sKA7bG3vuMdub6iU8kepjMRfo/H4utTWVmjpM+/y34jW7LRHr64E3mptH914Tlv6ffL59XrOO18AQoi/CyFygGuAB3xtj4+4GcXjVzn76APkuLzORR2En1MIIdKAscB231qi0gF69PfYwzV2pz115xVHWg++PQYJfCaE2CWE+Ll9WZyUssD+vBCIsz/vKed6Be4D2Z52Th209zz2BJuh+binrxBijxBiixBiun1ZHxT7HHS3re35zH19XqcDp6WUx12W9Yhz2uT3yefX6znhfAkhvhBCHPDwWAogpbxfSpkMvAHc6VtrO5e2jt2+zv0o/dTe8J2lnYs3x62ici4ghAgG1gG/bhLpV1HpFDxcY88D/YExQAFKKpKvOV9KOQ64CLhDCDHD9U37DHyPyXwRQhiAJcC79kU98Zw2o6edx5bwMO4pAFKklGOBe4A3hRChvrLPTq/4zF24CvfJgh5xTlu7B/rqeu2yJss9CSnlHC9XfQPYCPylC83pVto6diHEjcAiYLb9IjwraMdnfi6QByS7vE6yL1M5yxFC6FFuOm9IKd/3tT0qHaJHfo89XWNSytMu778EfGx/6bNjkFLm2f8WCSE+QEnROi2ESJBSFtjTi4p8bacLFwG7HeeyJ55TF9p7HvOAmU2Wf9MNdgKexz1Sygagwf58lxAiExhkt9U1NbE7r9kz+cx9ci0IIXTApcB4x7KecE5buAf6/Ho9JyJfrSGEGOjycilwxFe2dDdCiAXA74AlUkqjr+1R6TJ2AAOFEH3ts6krgA0+tkmli7Hn368CDkspn/C1PSodpsd9j1u6xprUR10COJTRNgArhBB+Qoi+wECUwvuutjNICBHieI4iunDAbo9DuewGYL2Lndfb1c8mA5UuaUrdhVsUoaed0ya09zxuBuYJISLsqXTz7Mu6nJbGPUKIGCGE1v68H8p5PGG3t0oIMdl+vV/vcnxdbWt7P3Nf/kbMAY5IKZ3phL4+p63cA31/vXZEreNseKB4xAeA/cBHQB9f29SNx56Bkse61/44J5QeUX7EclFmZE4Dm31tUzcc80IUpZ9M4H5f29ONx/0WSuqD2f6Z/8zXNnXjsZ+Pkk6x3+U7vtDXdqmPDn2mPep73NI1BrwOpNuXbwASXLa5327/UbpA4awFO/uhKL/tAw46zh0QBXwJHAe+ACLtywXwnN3OdLpZFRdF/KsUCHNZ1iPOqaff1DM5jyj1Vhn2x03daKvHcQ9wmf3a2AvsBha77GcCyjgxE3gWEN1ka7s/867+jfBkp335auCXTdb19Tlt6ffJ59ersO9URUVFRUVFRUVFRUVFpQs559MOVVRUVFRUVFRUVFRUugPV+VJRUVFRUVFRUVFRUekGVOdLRUVFRUVFRUVFRUWlG1CdLxUVFRUVFRUVFRUVlW5Adb5UVFRUVFRUVFRUVFS6AdX5UlFRUVFRUVFRUVFR6QZU50tFRUVFRUVFRUVFRaUb+H8cVtgLGACCqgAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10b1d7748>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"pm.traceplot(posterior, varnames=['μ'], combined=True);"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Notice the chains \"jumping\" between modes. This phenomena is called [label switching](https://stats.stackexchange.com/questions/152/is-there-a-standard-method-to-deal-with-label-switching-problem-in-mcmc-estimati). We can handle it with the `ordered` transform."
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Multiprocess sampling (4 chains in 4 jobs)\n",
"CompoundStep\n",
">NUTS: [μ]\n",
">CategoricalGibbsMetropolis: [z]\n",
"Sampling 4 chains: 100%|██████████| 4000/4000 [00:11<00:00, 353.08draws/s]\n",
"The acceptance probability does not match the target. It is 0.880749861797, but should be close to 0.8. Try to increase the number of tuning steps.\n",
"The estimated number of effective samples is smaller than 200 for some parameters.\n"
]
}
],
"source": [
"import pymc3.distributions.transforms as tr\n",
"with pm.Model() as mixture:\n",
" μ = pm.Normal('μ', mu=0, sd=10, shape=3, transform=tr.ordered, testval=np.array([-1, 0, 1]))\n",
" z = pm.Categorical('z', p=np.ones(3) / 3, shape=len(y))\n",
" y_obs = pm.Normal('y_obs', mu=μ[z], sd=1., observed=y)\n",
" posterior = pm.sample()"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10b50acc0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"pm.traceplot(posterior, varnames=['μ'], combined=True);"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Look! No label switching! How cool!"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "scratch3.6",
"language": "python",
"name": "scratch3_6"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.5"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
@paintingpeter
Copy link

Great article! As a newb, I really appreciate that everything worked as shown. I really encourage people to share their environment, ie library versions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment