Skip to content

Instantly share code, notes, and snippets.

@v-i-s-h
Created March 20, 2019 04:45
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 v-i-s-h/b5219c12ea6983b3163e4a97d0e9c1ad to your computer and use it in GitHub Desktop.
Save v-i-s-h/b5219c12ea6983b3163e4a97d0e9c1ad to your computer and use it in GitHub Desktop.
Rayleigh Block Fading Test: Fig 6b of http://arxiv.org/abs/1812.05929
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Simulation of BLER in RBF channel"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import pickle\n",
"from itertools import cycle, product\n",
"import dill\n",
"\n",
"import matplotlib.pyplot as plt\n",
"from scipy.spatial.distance import cdist"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Simulation Configuration"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"blkSize = 8\n",
"chDim = 4\n",
"\n",
"# Input\n",
"inVecDim = 2 ** blkSize # 1-hot vector length for block\n",
"encDim = 2*chDim\n",
"\n",
"SNR_range_dB = np.arange( 0.0, 40.1, 2.0 )"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Simulation Utility functions"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"def rbf_channel(txBlk, n0):\n",
" N, dim = txBlk.shape\n",
" \n",
" p1 = txBlk[:,:]\n",
" p2 = np.hstack((-txBlk[:,dim//2:],txBlk[:,:dim//2]))\n",
" \n",
" h1 = np.sqrt(1.0/encDim) * np.random.randn(N)\n",
" h2 = np.sqrt(1.0/encDim) * np.random.randn(N)\n",
" \n",
" outBlk = h1[:,None]*p1 + h2[:,None]*p2 + np.random.normal(scale=np.sqrt(n0), size=txBlk.shape)\n",
" \n",
" return outBlk"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"def add_pilot(txBlk, pilotSym):\n",
" blkWithPilot = np.insert(txBlk, [0,chDim], values=pilotSym, axis=1)\n",
" \n",
" return blkWithPilot"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"def equalizer(rxBlk, pilotSym):\n",
" \n",
" N, dim = rxBlk.shape\n",
" \n",
" p1 = rxBlk[:,:]\n",
" p2 = np.hstack((-rxBlk[:,dim//2:],rxBlk[:,:dim//2]))\n",
" \n",
" rxPilots = rxBlk[:,[0,1+chDim]]\n",
" \n",
" h1_hat = (pilotSym[1]*rxPilots[:,1]+pilotSym[0]*rxPilots[:,0])/(pilotSym[1]**2+pilotSym[0]**2)\n",
" h2_hat = (pilotSym[0]*rxPilots[:,1]-pilotSym[1]*rxPilots[:,0])/(pilotSym[1]**2+pilotSym[0]**2)\n",
" \n",
" z1_hat = rxBlk[:,:dim//2]\n",
" z2_hat = rxBlk[:,dim//2:]\n",
" \n",
" zR = (h1_hat[:,None]*z1_hat+h2_hat[:,None]*z2_hat) / (h1_hat[:,None]**2+h2_hat[:,None]**2)\n",
" zI = (h1_hat[:,None]*z2_hat-h2_hat[:,None]*z1_hat) / (h1_hat[:,None]**2+h2_hat[:,None]**2)\n",
" \n",
" outBlk = np.hstack((zR[:,1:],zI[:,1:]))\n",
" \n",
" return outBlk"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To store results"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"results = {}"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## QAM System"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Unscaled QAM Block Avg. Tx Power: 8.0\n"
]
}
],
"source": [
"qam_map_unscaled = np.array(list(map(list, product([-1.0, +1.0], repeat=blkSize))))\n",
"qam_sym_pow_unscaled = np.mean(np.sum(qam_map_unscaled*qam_map_unscaled,axis=1))\n",
"print( \"Unscaled QAM Block Avg. Tx Power:\", qam_sym_pow_unscaled )"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Block Symbol power scaled to block length\n",
"Here the whole symbol block is scaled such a way that the power of the whole block is equal to the block length ie., poewr per dimension is $1$."
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Normalized to block length QAM Avg. Tx Power: 8.0\n",
"Pilot Signal : [1. 1.]\n"
]
}
],
"source": [
"qam_map_norm = np.sqrt(blkSize/qam_sym_pow_unscaled) * qam_map_unscaled\n",
"qam_sym_pow_norm = np.mean(np.sum(qam_map_norm*qam_map_norm,axis=1))\n",
"print(\"Normalized to block length QAM Avg. Tx Power:\", qam_sym_pow_norm)\n",
"\n",
"# calculate the pilot symbol\n",
"qam_pilot_sym_norm = np.sqrt(qam_sym_pow_norm/encDim) * np.ones(2)\n",
"print(\"Pilot Signal :\", qam_pilot_sym_norm)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The noise target SNR is assumed to affect the whoel block. So the noise power per component is calculated and the noise is added accordingly."
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"noisePower = qam_sym_pow_norm * 10.0**(-SNR_range_dB/10.0)\n",
"n0_per_comp = noisePower/(2*chDim+2)\n",
"\n",
"err = []\n",
"for n0 in n0_per_comp:\n",
" thisErr = 0\n",
" thisCount = 0\n",
" while thisErr < 500 and thisCount < 100000:\n",
" txSym = np.random.randint(inVecDim, size=1000)\n",
" symBlk = qam_map_norm[txSym]\n",
" txTest = add_pilot(symBlk, qam_pilot_sym_norm)\n",
" rxTest = rbf_channel(txTest, n0)\n",
" rxEqualized = equalizer(rxTest, qam_pilot_sym_norm)\n",
" rxDecode = cdist(rxEqualized, qam_map_norm)\n",
" rxSym = np.argmin(rxDecode,axis=1)\n",
" thisErr += np.sum(rxSym!=txSym)\n",
" thisCount += 1000\n",
" err.append(thisErr/thisCount)\n",
"results[\"QAM (Block Power = ${:.1f}$, Pilot = ({:.2f},{:.2f}))\".format(qam_sym_pow_norm, *qam_pilot_sym_norm)] = np.array(err)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Block Symbol Power scaled to unit power"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Normalized to block length QAM Avg. Tx Power: 1.0000000000000002\n"
]
}
],
"source": [
"qam_map_unit = np.sqrt(1.0/qam_sym_pow_unscaled) * qam_map_unscaled\n",
"qam_sym_pow_unit = np.mean(np.sum(qam_map_unit*qam_map_unit,axis=1))\n",
"print( \"Normalized to block length QAM Avg. Tx Power:\", qam_sym_pow_unit )\n",
"\n",
"# calculate the pilot symbol\n",
"qam_pilot_sym_unit = np.sqrt(qam_sym_pow_unit/encDim) * np.ones(2)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"noisePower = qam_sym_pow_unit * 10.0**(-SNR_range_dB/10.0)\n",
"n0_per_comp = noisePower/(2*chDim+2)\n",
"\n",
"err = []\n",
"for n0 in n0_per_comp:\n",
" thisErr = 0\n",
" thisCount = 0\n",
" while thisErr < 500 and thisCount < 100000:\n",
" txSym = np.random.randint(inVecDim, size=1000)\n",
" symBlk = qam_map_unit[txSym]\n",
" txTest = add_pilot(symBlk, qam_pilot_sym_unit)\n",
" rxTest = rbf_channel(txTest, n0)\n",
" rxEqualized = equalizer(rxTest, qam_pilot_sym_unit)\n",
" rxDecode = cdist(rxEqualized, qam_map_unit)\n",
" rxSym = np.argmin(rxDecode,axis=1)\n",
" thisErr += np.sum(rxSym!=txSym)\n",
" thisCount += 1000\n",
" err.append(thisErr/thisCount)\n",
"results[\"QAM (Block Power = ${:.1f}$, Pilot = ({:.2f},{:.2f}))\".format(qam_sym_pow_unit, *qam_pilot_sym_unit)] = np.array(err)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Block Symbol Power is scaled to unit power and Pilot power is $1$ per component\n",
"In this case, the power of pilots are high and hence they will may experience a high SNR than rest of the block."
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
"qam_pilot_sym_1 = np.ones(2)\n",
"\n",
"noisePower = qam_sym_pow_unit * 10.0**(-SNR_range_dB/10.0)\n",
"n0_per_comp = noisePower/(2*chDim+2)\n",
"\n",
"err = []\n",
"for n0 in n0_per_comp:\n",
" thisErr = 0\n",
" thisCount = 0\n",
" while thisErr < 500 and thisCount < 100000:\n",
" txSym = np.random.randint(inVecDim, size=1000)\n",
" symBlk = qam_map_unit[txSym]\n",
" txTest = add_pilot(symBlk, qam_pilot_sym_1)\n",
" rxTest = rbf_channel(txTest, n0)\n",
" rxEqualized = equalizer(rxTest, qam_pilot_sym_1)\n",
" rxDecode = cdist(rxEqualized, qam_map_unit)\n",
" rxSym = np.argmin(rxDecode,axis=1)\n",
" thisErr += np.sum(rxSym!=txSym)\n",
" thisCount += 1000\n",
" err.append(thisErr/thisCount)\n",
"results[\"QAM (Block Power = ${:.1f}$, Pilot = ({:.2f},{:.2f}))\".format(qam_sym_pow_unit, *qam_pilot_sym_1)] = np.array(err)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Agrell"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"agrell_map_unscaled = []\n",
"if blkSize==2 and chDim==1:\n",
" agrell_map_unscaled = np.array([\n",
" [ -1.0, -1.0 ],\n",
" [ -1.0, 1.0 ],\n",
" [ 1.0, -1.0 ],\n",
" [ 1.0, 1.0 ]\n",
" ])\n",
"elif blkSize==4 and chDim==2:\n",
" agrell_map_unscaled = np.array([\n",
" [2.148934030042627, 0.0, 0.0, 0.0],\n",
" [0.7347204676695321, 1.4142135623730951, 0.0, 0.0],\n",
" [0.7347204676695321, -1.4142135623730951, 0.0, 0.0],\n",
" [0.7347204676695321, 0.0, 1.4142135623730951, 0.0],\n",
" [0.7347204676695321, 0.0, -1.4142135623730951, 0.0],\n",
" [0.7347204676695321, 0.0, 0.0, 1.4142135623730951],\n",
" [0.7347204676695321, 0.0, 0.0, -1.4142135623730951],\n",
" [-0.6174729817844246, 1.0, 1.0, 1.0],\n",
" [-0.6174729817844246, 1.0, 1.0, -1.0],\n",
" [-0.6174729817844246, 1.0, -1.0, 1.0],\n",
" [-0.6174729817844246, 1.0, -1.0, -1.0],\n",
" [-0.6174729817844246, -1.0, 1.0, 1.0],\n",
" [-0.6174729817844246, -1.0, 1.0, -1.0],\n",
" [-0.6174729817844246, -1.0, -1.0, 1.0],\n",
" [-0.6174729817844246, -1.0, -1.0, -1.0],\n",
" [-1.6174729817844242, 0.0, 0.0, 0.0]\n",
" ])\n",
"elif blkSize==8 and chDim==4:\n",
" agrell_map_unscaled = np.array([\n",
" [ -256.0, -256.0, 8.0, -8.0, -8.0, 14.0, 11.0, -11.0 ],\n",
" [ -256.0, 0.0, -248.0, -8.0, -8.0, 14.0, 11.0, -11.0 ],\n",
" [ -256.0, 0.0, 8.0, -264.0, -8.0, 14.0, 11.0, -11.0 ],\n",
" [ -256.0, 0.0, 8.0, -8.0, -264.0, 14.0, 11.0, -11.0 ],\n",
" [ -256.0, 0.0, 8.0, -8.0, -8.0, -242.0, 11.0, -11.0 ],\n",
" [ -256.0, 0.0, 8.0, -8.0, -8.0, 14.0, -245.0, -11.0 ],\n",
" [ -256.0, 0.0, 8.0, -8.0, -8.0, 14.0, 11.0, -267.0 ],\n",
" [ -256.0, 0.0, 8.0, -8.0, -8.0, 14.0, 11.0, 245.0 ],\n",
" [ -256.0, 0.0, 8.0, -8.0, -8.0, 14.0, 267.0, -11.0 ],\n",
" [ -256.0, 0.0, 8.0, -8.0, -8.0, 270.0, 11.0, -11.0 ],\n",
" [ -256.0, 0.0, 8.0, -8.0, 248.0, 14.0, 11.0, -11.0 ],\n",
" [ -256.0, 0.0, 8.0, 248.0, -8.0, 14.0, 11.0, -11.0 ],\n",
" [ -256.0, 0.0, 264.0, -8.0, -8.0, 14.0, 11.0, -11.0 ],\n",
" [ -256.0, 256.0, 8.0, -8.0, -8.0, 14.0, 11.0, -11.0 ],\n",
" [ -128.0, -128.0, -120.0, -136.0, -136.0, -114.0, -117.0, -139.0 ],\n",
" [ -128.0, -128.0, -120.0, -136.0, -136.0, -114.0, 139.0, 117.0 ],\n",
" [ -128.0, -128.0, -120.0, -136.0, -136.0, 142.0, -117.0, 117.0 ],\n",
" [ -128.0, -128.0, -120.0, -136.0, -136.0, 142.0, 139.0, -139.0 ],\n",
" [ -128.0, -128.0, -120.0, -136.0, 120.0, -114.0, -117.0, 117.0 ],\n",
" [ -128.0, -128.0, -120.0, -136.0, 120.0, -114.0, 139.0, -139.0 ],\n",
" [ -128.0, -128.0, -120.0, -136.0, 120.0, 142.0, -117.0, -139.0 ],\n",
" [ -128.0, -128.0, -120.0, -136.0, 120.0, 142.0, 139.0, 117.0 ],\n",
" [ -128.0, -128.0, -120.0, 120.0, -136.0, -114.0, -117.0, 117.0 ],\n",
" [ -128.0, -128.0, -120.0, 120.0, -136.0, -114.0, 139.0, -139.0 ],\n",
" [ -128.0, -128.0, -120.0, 120.0, -136.0, 142.0, -117.0, -139.0 ],\n",
" [ -128.0, -128.0, -120.0, 120.0, -136.0, 142.0, 139.0, 117.0 ],\n",
" [ -128.0, -128.0, -120.0, 120.0, 120.0, -370.0, -117.0, 117.0 ],\n",
" [ -128.0, -128.0, -120.0, 120.0, 120.0, -114.0, -373.0, 117.0 ],\n",
" [ -128.0, -128.0, -120.0, 120.0, 120.0, -114.0, -117.0, -139.0 ],\n",
" [ -128.0, -128.0, -120.0, 120.0, 120.0, -114.0, -117.0, 373.0 ],\n",
" [ -128.0, -128.0, -120.0, 120.0, 120.0, -114.0, 139.0, 117.0 ],\n",
" [ -128.0, -128.0, -120.0, 120.0, 120.0, 142.0, -117.0, 117.0 ],\n",
" [ -128.0, -128.0, -120.0, 120.0, 120.0, 142.0, 139.0, -139.0 ],\n",
" [ -128.0, -128.0, 136.0, -136.0, -136.0, -114.0, -117.0, 117.0 ],\n",
" [ -128.0, -128.0, 136.0, -136.0, -136.0, -114.0, 139.0, -139.0 ],\n",
" [ -128.0, -128.0, 136.0, -136.0, -136.0, 142.0, -117.0, -139.0 ],\n",
" [ -128.0, -128.0, 136.0, -136.0, -136.0, 142.0, 139.0, 117.0 ],\n",
" [ -128.0, -128.0, 136.0, -136.0, 120.0, -114.0, -117.0, -139.0 ],\n",
" [ -128.0, -128.0, 136.0, -136.0, 120.0, -114.0, 139.0, 117.0 ],\n",
" [ -128.0, -128.0, 136.0, -136.0, 120.0, 142.0, -117.0, 117.0 ],\n",
" [ -128.0, -128.0, 136.0, -136.0, 120.0, 142.0, 139.0, -139.0 ],\n",
" [ -128.0, -128.0, 136.0, 120.0, -136.0, -114.0, -117.0, -139.0 ],\n",
" [ -128.0, -128.0, 136.0, 120.0, -136.0, -114.0, 139.0, 117.0 ],\n",
" [ -128.0, -128.0, 136.0, 120.0, -136.0, 142.0, -117.0, 117.0 ],\n",
" [ -128.0, -128.0, 136.0, 120.0, -136.0, 142.0, 139.0, -139.0 ],\n",
" [ -128.0, -128.0, 136.0, 120.0, 120.0, -114.0, -117.0, 117.0 ],\n",
" [ -128.0, -128.0, 136.0, 120.0, 120.0, -114.0, 139.0, -139.0 ],\n",
" [ -128.0, -128.0, 136.0, 120.0, 120.0, 142.0, -117.0, -139.0 ],\n",
" [ -128.0, -128.0, 136.0, 120.0, 120.0, 142.0, 139.0, 117.0 ],\n",
" [ -128.0, 128.0, -120.0, -136.0, -136.0, -114.0, -117.0, 117.0 ],\n",
" [ -128.0, 128.0, -120.0, -136.0, -136.0, -114.0, 139.0, -139.0 ],\n",
" [ -128.0, 128.0, -120.0, -136.0, -136.0, 142.0, -117.0, -139.0 ],\n",
" [ -128.0, 128.0, -120.0, -136.0, -136.0, 142.0, 139.0, 117.0 ],\n",
" [ -128.0, 128.0, -120.0, -136.0, 120.0, -114.0, -117.0, -139.0 ],\n",
" [ -128.0, 128.0, -120.0, -136.0, 120.0, -114.0, 139.0, 117.0 ],\n",
" [ -128.0, 128.0, -120.0, -136.0, 120.0, 142.0, -117.0, 117.0 ],\n",
" [ -128.0, 128.0, -120.0, -136.0, 120.0, 142.0, 139.0, -139.0 ],\n",
" [ -128.0, 128.0, -120.0, 120.0, -136.0, -114.0, -117.0, -139.0 ],\n",
" [ -128.0, 128.0, -120.0, 120.0, -136.0, -114.0, 139.0, 117.0 ],\n",
" [ -128.0, 128.0, -120.0, 120.0, -136.0, 142.0, -117.0, 117.0 ],\n",
" [ -128.0, 128.0, -120.0, 120.0, -136.0, 142.0, 139.0, -139.0 ],\n",
" [ -128.0, 128.0, -120.0, 120.0, 120.0, -114.0, -117.0, 117.0 ],\n",
" [ -128.0, 128.0, -120.0, 120.0, 120.0, -114.0, 139.0, -139.0 ],\n",
" [ -128.0, 128.0, -120.0, 120.0, 120.0, 142.0, -117.0, -139.0 ],\n",
" [ -128.0, 128.0, -120.0, 120.0, 120.0, 142.0, 139.0, 117.0 ],\n",
" [ -128.0, 128.0, 136.0, -136.0, -136.0, -114.0, -117.0, -139.0 ],\n",
" [ -128.0, 128.0, 136.0, -136.0, -136.0, -114.0, 139.0, 117.0 ],\n",
" [ -128.0, 128.0, 136.0, -136.0, -136.0, 142.0, -117.0, 117.0 ],\n",
" [ -128.0, 128.0, 136.0, -136.0, -136.0, 142.0, 139.0, -139.0 ],\n",
" [ -128.0, 128.0, 136.0, -136.0, 120.0, -114.0, -117.0, 117.0 ],\n",
" [ -128.0, 128.0, 136.0, -136.0, 120.0, -114.0, 139.0, -139.0 ],\n",
" [ -128.0, 128.0, 136.0, -136.0, 120.0, 142.0, -117.0, -139.0 ],\n",
" [ -128.0, 128.0, 136.0, -136.0, 120.0, 142.0, 139.0, 117.0 ],\n",
" [ -128.0, 128.0, 136.0, 120.0, -136.0, -114.0, -117.0, 117.0 ],\n",
" [ -128.0, 128.0, 136.0, 120.0, -136.0, -114.0, 139.0, -139.0 ],\n",
" [ -128.0, 128.0, 136.0, 120.0, -136.0, 142.0, -117.0, -139.0 ],\n",
" [ -128.0, 128.0, 136.0, 120.0, -136.0, 142.0, 139.0, 117.0 ],\n",
" [ -128.0, 128.0, 136.0, 120.0, 120.0, -114.0, -117.0, -139.0 ],\n",
" [ -128.0, 128.0, 136.0, 120.0, 120.0, -114.0, 139.0, 117.0 ],\n",
" [ -128.0, 128.0, 136.0, 120.0, 120.0, 142.0, -117.0, 117.0 ],\n",
" [ -128.0, 128.0, 136.0, 120.0, 120.0, 142.0, 139.0, -139.0 ],\n",
" [ 0.0, -256.0, -248.0, -8.0, -8.0, 14.0, 11.0, -11.0 ],\n",
" [ 0.0, -256.0, 8.0, -264.0, -8.0, 14.0, 11.0, -11.0 ],\n",
" [ 0.0, -256.0, 8.0, -8.0, -264.0, 14.0, 11.0, -11.0 ],\n",
" [ 0.0, -256.0, 8.0, -8.0, -8.0, -242.0, 11.0, -11.0 ],\n",
" [ 0.0, -256.0, 8.0, -8.0, -8.0, 14.0, -245.0, -11.0 ],\n",
" [ 0.0, -256.0, 8.0, -8.0, -8.0, 14.0, 11.0, -267.0 ],\n",
" [ 0.0, -256.0, 8.0, -8.0, -8.0, 14.0, 11.0, 245.0 ],\n",
" [ 0.0, -256.0, 8.0, -8.0, -8.0, 14.0, 267.0, -11.0 ],\n",
" [ 0.0, -256.0, 8.0, -8.0, -8.0, 270.0, 11.0, -11.0 ],\n",
" [ 0.0, -256.0, 8.0, -8.0, 248.0, 14.0, 11.0, -11.0 ],\n",
" [ 0.0, -256.0, 8.0, 248.0, -8.0, 14.0, 11.0, -11.0 ],\n",
" [ 0.0, -256.0, 264.0, -8.0, -8.0, 14.0, 11.0, -11.0 ],\n",
" [ 0.0, 0.0, -248.0, -264.0, -8.0, 14.0, 11.0, -11.0 ],\n",
" [ 0.0, 0.0, -248.0, -8.0, -264.0, 14.0, 11.0, -11.0 ],\n",
" [ 0.0, 0.0, -248.0, -8.0, -8.0, -242.0, -245.0, 245.0 ],\n",
" [ 0.0, 0.0, -248.0, -8.0, -8.0, -242.0, 11.0, -11.0 ],\n",
" [ 0.0, 0.0, -248.0, -8.0, -8.0, 14.0, -245.0, -11.0 ],\n",
" [ 0.0, 0.0, -248.0, -8.0, -8.0, 14.0, 11.0, -267.0 ],\n",
" [ 0.0, 0.0, -248.0, -8.0, -8.0, 14.0, 11.0, 245.0 ],\n",
" [ 0.0, 0.0, -248.0, -8.0, -8.0, 14.0, 267.0, -11.0 ],\n",
" [ 0.0, 0.0, -248.0, -8.0, -8.0, 270.0, 11.0, -11.0 ],\n",
" [ 0.0, 0.0, -248.0, -8.0, 248.0, -242.0, -245.0, -11.0 ],\n",
" [ 0.0, 0.0, -248.0, -8.0, 248.0, -242.0, 11.0, 245.0 ],\n",
" [ 0.0, 0.0, -248.0, -8.0, 248.0, 14.0, 11.0, -11.0 ],\n",
" [ 0.0, 0.0, -248.0, 248.0, -8.0, -242.0, -245.0, -11.0 ],\n",
" [ 0.0, 0.0, -248.0, 248.0, -8.0, -242.0, 11.0, 245.0 ],\n",
" [ 0.0, 0.0, -248.0, 248.0, -8.0, 14.0, 11.0, -11.0 ],\n",
" [ 0.0, 0.0, 8.0, -264.0, -264.0, 14.0, 11.0, -11.0 ],\n",
" [ 0.0, 0.0, 8.0, -264.0, -8.0, -242.0, 11.0, -11.0 ],\n",
" [ 0.0, 0.0, 8.0, -264.0, -8.0, 14.0, -245.0, -11.0 ],\n",
" [ 0.0, 0.0, 8.0, -264.0, -8.0, 14.0, 11.0, -267.0 ],\n",
" [ 0.0, 0.0, 8.0, -264.0, -8.0, 14.0, 11.0, 245.0 ],\n",
" [ 0.0, 0.0, 8.0, -264.0, -8.0, 14.0, 267.0, -11.0 ],\n",
" [ 0.0, 0.0, 8.0, -264.0, -8.0, 270.0, 11.0, -11.0 ],\n",
" [ 0.0, 0.0, 8.0, -264.0, 248.0, 14.0, 11.0, -11.0 ],\n",
" [ 0.0, 0.0, 8.0, -8.0, -264.0, -242.0, 11.0, -11.0 ],\n",
" [ 0.0, 0.0, 8.0, -8.0, -264.0, 14.0, -245.0, -11.0 ],\n",
" [ 0.0, 0.0, 8.0, -8.0, -264.0, 14.0, 11.0, -267.0 ],\n",
" [ 0.0, 0.0, 8.0, -8.0, -264.0, 14.0, 11.0, 245.0 ],\n",
" [ 0.0, 0.0, 8.0, -8.0, -264.0, 14.0, 267.0, -11.0 ],\n",
" [ 0.0, 0.0, 8.0, -8.0, -264.0, 270.0, 11.0, -11.0 ],\n",
" [ 0.0, 0.0, 8.0, -8.0, -8.0, -242.0, -245.0, -11.0 ],\n",
" [ 0.0, 0.0, 8.0, -8.0, -8.0, -242.0, 11.0, -267.0 ],\n",
" [ 0.0, 0.0, 8.0, -8.0, -8.0, -242.0, 11.0, 245.0 ],\n",
" [ 0.0, 0.0, 8.0, -8.0, -8.0, -242.0, 267.0, -11.0 ],\n",
" [ 0.0, 0.0, 8.0, -8.0, -8.0, 14.0, -245.0, -267.0 ],\n",
" [ 0.0, 0.0, 8.0, -8.0, -8.0, 14.0, -245.0, 245.0 ],\n",
" [ 0.0, 0.0, 8.0, -8.0, -8.0, 14.0, 11.0, -11.0 ],\n",
" [ 0.0, 0.0, 8.0, -8.0, -8.0, 14.0, 267.0, -267.0 ],\n",
" [ 0.0, 0.0, 8.0, -8.0, -8.0, 14.0, 267.0, 245.0 ],\n",
" [ 0.0, 0.0, 8.0, -8.0, -8.0, 270.0, -245.0, -11.0 ],\n",
" [ 0.0, 0.0, 8.0, -8.0, -8.0, 270.0, 11.0, -267.0 ],\n",
" [ 0.0, 0.0, 8.0, -8.0, -8.0, 270.0, 11.0, 245.0 ],\n",
" [ 0.0, 0.0, 8.0, -8.0, -8.0, 270.0, 267.0, -11.0 ],\n",
" [ 0.0, 0.0, 8.0, -8.0, 248.0, -242.0, -245.0, 245.0 ],\n",
" [ 0.0, 0.0, 8.0, -8.0, 248.0, -242.0, 11.0, -11.0 ],\n",
" [ 0.0, 0.0, 8.0, -8.0, 248.0, 14.0, -245.0, -11.0 ],\n",
" [ 0.0, 0.0, 8.0, -8.0, 248.0, 14.0, 11.0, -267.0 ],\n",
" [ 0.0, 0.0, 8.0, -8.0, 248.0, 14.0, 11.0, 245.0 ],\n",
" [ 0.0, 0.0, 8.0, -8.0, 248.0, 14.0, 267.0, -11.0 ],\n",
" [ 0.0, 0.0, 8.0, -8.0, 248.0, 270.0, 11.0, -11.0 ],\n",
" [ 0.0, 0.0, 8.0, 248.0, -264.0, 14.0, 11.0, -11.0 ],\n",
" [ 0.0, 0.0, 8.0, 248.0, -8.0, -242.0, -245.0, 245.0 ],\n",
" [ 0.0, 0.0, 8.0, 248.0, -8.0, -242.0, 11.0, -11.0 ],\n",
" [ 0.0, 0.0, 8.0, 248.0, -8.0, 14.0, -245.0, -11.0 ],\n",
" [ 0.0, 0.0, 8.0, 248.0, -8.0, 14.0, 11.0, -267.0 ],\n",
" [ 0.0, 0.0, 8.0, 248.0, -8.0, 14.0, 11.0, 245.0 ],\n",
" [ 0.0, 0.0, 8.0, 248.0, -8.0, 14.0, 267.0, -11.0 ],\n",
" [ 0.0, 0.0, 8.0, 248.0, -8.0, 270.0, 11.0, -11.0 ],\n",
" [ 0.0, 0.0, 8.0, 248.0, 248.0, -242.0, -245.0, -11.0 ],\n",
" [ 0.0, 0.0, 8.0, 248.0, 248.0, -242.0, 11.0, 245.0 ],\n",
" [ 0.0, 0.0, 8.0, 248.0, 248.0, 14.0, 11.0, -11.0 ],\n",
" [ 0.0, 0.0, 264.0, -264.0, -8.0, 14.0, 11.0, -11.0 ],\n",
" [ 0.0, 0.0, 264.0, -8.0, -264.0, 14.0, 11.0, -11.0 ],\n",
" [ 0.0, 0.0, 264.0, -8.0, -8.0, -242.0, 11.0, -11.0 ],\n",
" [ 0.0, 0.0, 264.0, -8.0, -8.0, 14.0, -245.0, -11.0 ],\n",
" [ 0.0, 0.0, 264.0, -8.0, -8.0, 14.0, 11.0, -267.0 ],\n",
" [ 0.0, 0.0, 264.0, -8.0, -8.0, 14.0, 11.0, 245.0 ],\n",
" [ 0.0, 0.0, 264.0, -8.0, -8.0, 14.0, 267.0, -11.0 ],\n",
" [ 0.0, 0.0, 264.0, -8.0, -8.0, 270.0, 11.0, -11.0 ],\n",
" [ 0.0, 0.0, 264.0, -8.0, 248.0, 14.0, 11.0, -11.0 ],\n",
" [ 0.0, 0.0, 264.0, 248.0, -8.0, 14.0, 11.0, -11.0 ],\n",
" [ 0.0, 256.0, -248.0, -8.0, -8.0, 14.0, 11.0, -11.0 ],\n",
" [ 0.0, 256.0, 8.0, -264.0, -8.0, 14.0, 11.0, -11.0 ],\n",
" [ 0.0, 256.0, 8.0, -8.0, -264.0, 14.0, 11.0, -11.0 ],\n",
" [ 0.0, 256.0, 8.0, -8.0, -8.0, -242.0, 11.0, -11.0 ],\n",
" [ 0.0, 256.0, 8.0, -8.0, -8.0, 14.0, -245.0, -11.0 ],\n",
" [ 0.0, 256.0, 8.0, -8.0, -8.0, 14.0, 11.0, -267.0 ],\n",
" [ 0.0, 256.0, 8.0, -8.0, -8.0, 14.0, 11.0, 245.0 ],\n",
" [ 0.0, 256.0, 8.0, -8.0, -8.0, 14.0, 267.0, -11.0 ],\n",
" [ 0.0, 256.0, 8.0, -8.0, -8.0, 270.0, 11.0, -11.0 ],\n",
" [ 0.0, 256.0, 8.0, -8.0, 248.0, 14.0, 11.0, -11.0 ],\n",
" [ 0.0, 256.0, 8.0, 248.0, -8.0, 14.0, 11.0, -11.0 ],\n",
" [ 0.0, 256.0, 264.0, -8.0, -8.0, 14.0, 11.0, -11.0 ],\n",
" [ 128.0, -128.0, -120.0, -136.0, -136.0, -114.0, -117.0, 117.0 ],\n",
" [ 128.0, -128.0, -120.0, -136.0, -136.0, -114.0, 139.0, -139.0 ],\n",
" [ 128.0, -128.0, -120.0, -136.0, -136.0, 142.0, -117.0, -139.0 ],\n",
" [ 128.0, -128.0, -120.0, -136.0, -136.0, 142.0, 139.0, 117.0 ],\n",
" [ 128.0, -128.0, -120.0, -136.0, 120.0, -114.0, -117.0, -139.0 ],\n",
" [ 128.0, -128.0, -120.0, -136.0, 120.0, -114.0, 139.0, 117.0 ],\n",
" [ 128.0, -128.0, -120.0, -136.0, 120.0, 142.0, -117.0, 117.0 ],\n",
" [ 128.0, -128.0, -120.0, -136.0, 120.0, 142.0, 139.0, -139.0 ],\n",
" [ 128.0, -128.0, -120.0, 120.0, -136.0, -114.0, -117.0, -139.0 ],\n",
" [ 128.0, -128.0, -120.0, 120.0, -136.0, -114.0, 139.0, 117.0 ],\n",
" [ 128.0, -128.0, -120.0, 120.0, -136.0, 142.0, -117.0, 117.0 ],\n",
" [ 128.0, -128.0, -120.0, 120.0, -136.0, 142.0, 139.0, -139.0 ],\n",
" [ 128.0, -128.0, -120.0, 120.0, 120.0, -114.0, -117.0, 117.0 ],\n",
" [ 128.0, -128.0, -120.0, 120.0, 120.0, -114.0, 139.0, -139.0 ],\n",
" [ 128.0, -128.0, -120.0, 120.0, 120.0, 142.0, -117.0, -139.0 ],\n",
" [ 128.0, -128.0, -120.0, 120.0, 120.0, 142.0, 139.0, 117.0 ],\n",
" [ 128.0, -128.0, 136.0, -136.0, -136.0, -114.0, -117.0, -139.0 ],\n",
" [ 128.0, -128.0, 136.0, -136.0, -136.0, -114.0, 139.0, 117.0 ],\n",
" [ 128.0, -128.0, 136.0, -136.0, -136.0, 142.0, -117.0, 117.0 ],\n",
" [ 128.0, -128.0, 136.0, -136.0, -136.0, 142.0, 139.0, -139.0 ],\n",
" [ 128.0, -128.0, 136.0, -136.0, 120.0, -114.0, -117.0, 117.0 ],\n",
" [ 128.0, -128.0, 136.0, -136.0, 120.0, -114.0, 139.0, -139.0 ],\n",
" [ 128.0, -128.0, 136.0, -136.0, 120.0, 142.0, -117.0, -139.0 ],\n",
" [ 128.0, -128.0, 136.0, -136.0, 120.0, 142.0, 139.0, 117.0 ],\n",
" [ 128.0, -128.0, 136.0, 120.0, -136.0, -114.0, -117.0, 117.0 ],\n",
" [ 128.0, -128.0, 136.0, 120.0, -136.0, -114.0, 139.0, -139.0 ],\n",
" [ 128.0, -128.0, 136.0, 120.0, -136.0, 142.0, -117.0, -139.0 ],\n",
" [ 128.0, -128.0, 136.0, 120.0, -136.0, 142.0, 139.0, 117.0 ],\n",
" [ 128.0, -128.0, 136.0, 120.0, 120.0, -114.0, -117.0, -139.0 ],\n",
" [ 128.0, -128.0, 136.0, 120.0, 120.0, -114.0, 139.0, 117.0 ],\n",
" [ 128.0, -128.0, 136.0, 120.0, 120.0, 142.0, -117.0, 117.0 ],\n",
" [ 128.0, -128.0, 136.0, 120.0, 120.0, 142.0, 139.0, -139.0 ],\n",
" [ 128.0, 128.0, -120.0, -136.0, -136.0, -114.0, -117.0, -139.0 ],\n",
" [ 128.0, 128.0, -120.0, -136.0, -136.0, -114.0, 139.0, 117.0 ],\n",
" [ 128.0, 128.0, -120.0, -136.0, -136.0, 142.0, -117.0, 117.0 ],\n",
" [ 128.0, 128.0, -120.0, -136.0, -136.0, 142.0, 139.0, -139.0 ],\n",
" [ 128.0, 128.0, -120.0, -136.0, 120.0, -114.0, -117.0, 117.0 ],\n",
" [ 128.0, 128.0, -120.0, -136.0, 120.0, -114.0, 139.0, -139.0 ],\n",
" [ 128.0, 128.0, -120.0, -136.0, 120.0, 142.0, -117.0, -139.0 ],\n",
" [ 128.0, 128.0, -120.0, -136.0, 120.0, 142.0, 139.0, 117.0 ],\n",
" [ 128.0, 128.0, -120.0, 120.0, -136.0, -114.0, -117.0, 117.0 ],\n",
" [ 128.0, 128.0, -120.0, 120.0, -136.0, -114.0, 139.0, -139.0 ],\n",
" [ 128.0, 128.0, -120.0, 120.0, -136.0, 142.0, -117.0, -139.0 ],\n",
" [ 128.0, 128.0, -120.0, 120.0, -136.0, 142.0, 139.0, 117.0 ],\n",
" [ 128.0, 128.0, -120.0, 120.0, 120.0, -370.0, -117.0, 117.0 ],\n",
" [ 128.0, 128.0, -120.0, 120.0, 120.0, -114.0, -373.0, 117.0 ],\n",
" [ 128.0, 128.0, -120.0, 120.0, 120.0, -114.0, -117.0, -139.0 ],\n",
" [ 128.0, 128.0, -120.0, 120.0, 120.0, -114.0, -117.0, 373.0 ],\n",
" [ 128.0, 128.0, -120.0, 120.0, 120.0, -114.0, 139.0, 117.0 ],\n",
" [ 128.0, 128.0, -120.0, 120.0, 120.0, 142.0, -117.0, 117.0 ],\n",
" [ 128.0, 128.0, -120.0, 120.0, 120.0, 142.0, 139.0, -139.0 ],\n",
" [ 128.0, 128.0, 136.0, -136.0, -136.0, -114.0, -117.0, 117.0 ],\n",
" [ 128.0, 128.0, 136.0, -136.0, -136.0, -114.0, 139.0, -139.0 ],\n",
" [ 128.0, 128.0, 136.0, -136.0, -136.0, 142.0, -117.0, -139.0 ],\n",
" [ 128.0, 128.0, 136.0, -136.0, -136.0, 142.0, 139.0, 117.0 ],\n",
" [ 128.0, 128.0, 136.0, -136.0, 120.0, -114.0, -117.0, -139.0 ],\n",
" [ 128.0, 128.0, 136.0, -136.0, 120.0, -114.0, 139.0, 117.0 ],\n",
" [ 128.0, 128.0, 136.0, -136.0, 120.0, 142.0, -117.0, 117.0 ],\n",
" [ 128.0, 128.0, 136.0, -136.0, 120.0, 142.0, 139.0, -139.0 ],\n",
" [ 128.0, 128.0, 136.0, 120.0, -136.0, -114.0, -117.0, -139.0 ],\n",
" [ 128.0, 128.0, 136.0, 120.0, -136.0, -114.0, 139.0, 117.0 ],\n",
" [ 128.0, 128.0, 136.0, 120.0, -136.0, 142.0, -117.0, 117.0 ],\n",
" [ 128.0, 128.0, 136.0, 120.0, -136.0, 142.0, 139.0, -139.0 ],\n",
" [ 128.0, 128.0, 136.0, 120.0, 120.0, -114.0, -117.0, 117.0 ],\n",
" [ 128.0, 128.0, 136.0, 120.0, 120.0, -114.0, 139.0, -139.0 ],\n",
" [ 128.0, 128.0, 136.0, 120.0, 120.0, 142.0, -117.0, -139.0 ],\n",
" [ 128.0, 128.0, 136.0, 120.0, 120.0, 142.0, 139.0, 117.0 ],\n",
" [ 256.0, -256.0, 8.0, -8.0, -8.0, 14.0, 11.0, -11.0 ],\n",
" [ 256.0, 0.0, -248.0, -8.0, -8.0, 14.0, 11.0, -11.0 ],\n",
" [ 256.0, 0.0, 8.0, -264.0, -8.0, 14.0, 11.0, -11.0 ],\n",
" [ 256.0, 0.0, 8.0, -8.0, -264.0, 14.0, 11.0, -11.0 ],\n",
" [ 256.0, 0.0, 8.0, -8.0, -8.0, -242.0, 11.0, -11.0 ],\n",
" [ 256.0, 0.0, 8.0, -8.0, -8.0, 14.0, -245.0, -11.0 ],\n",
" [ 256.0, 0.0, 8.0, -8.0, -8.0, 14.0, 11.0, -267.0 ],\n",
" [ 256.0, 0.0, 8.0, -8.0, -8.0, 14.0, 11.0, 245.0 ],\n",
" [ 256.0, 0.0, 8.0, -8.0, -8.0, 14.0, 267.0, -11.0 ],\n",
" [ 256.0, 0.0, 8.0, -8.0, -8.0, 270.0, 11.0, -11.0 ],\n",
" [ 256.0, 0.0, 8.0, -8.0, 248.0, 14.0, 11.0, -11.0 ],\n",
" [ 256.0, 0.0, 8.0, 248.0, -8.0, 14.0, 11.0, -11.0 ],\n",
" [ 256.0, 0.0, 264.0, -8.0, -8.0, 14.0, 11.0, -11.0 ],\n",
" [ 256.0, 256.0, 8.0, -8.0, -8.0, 14.0, 11.0, -11.0 ] ])\n",
"else:\n",
" raise NotImplementedError(\"Not implemented (blkSize={},chDim={})\".format(blkSize,chDim))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Block Symbol Power scaled to block length"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Unscaled Agrell Avg. Tx Power: 137610.0\n",
"Normalized Agrell Avg. Tx Power: 7.999999999999997\n"
]
}
],
"source": [
"agrell_sym_pow_unscaled = np.mean(np.sum(agrell_map_unscaled*agrell_map_unscaled,axis=1))\n",
"print( \"Unscaled Agrell Avg. Tx Power:\", agrell_sym_pow_unscaled )\n",
"\n",
"agrell_map_norm = np.sqrt(blkSize/agrell_sym_pow_unscaled) * agrell_map_unscaled\n",
"agrell_sym_pow_norm = np.mean(np.sum(agrell_map_norm*agrell_map_norm,axis=1))\n",
"print( \"Normalized Agrell Avg. Tx Power:\", agrell_sym_pow_norm )\n",
"\n",
"# calculate the pilot symbol\n",
"agrell_pilot_sym_norm = np.sqrt(agrell_sym_pow_norm/encDim) * np.ones(2)"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [],
"source": [
"noisePower = agrell_sym_pow_norm * 10.0**(-SNR_range_dB/10.0)\n",
"n0_per_comp = noisePower/(2*chDim+2)\n",
"\n",
"err = []\n",
"for n0 in n0_per_comp:\n",
" thisErr = 0\n",
" thisCount = 0\n",
" while thisErr < 500 and thisCount < 100000:\n",
" txSym = np.random.randint(inVecDim, size=1000)\n",
" symBlk = agrell_map_norm[txSym]\n",
" txTest = add_pilot(symBlk, agrell_pilot_sym_norm)\n",
" rxTest = rbf_channel(txTest, n0)\n",
" rxEqualized = equalizer(rxTest, agrell_pilot_sym_norm)\n",
" rxDecode = cdist(rxEqualized, agrell_map_norm)\n",
" rxSym = np.argmin(rxDecode,axis=1)\n",
" thisErr += np.sum(rxSym!=txSym)\n",
" thisCount += 1000\n",
" err.append(thisErr/thisCount)\n",
"results[\"Agrell (Block Power = ${:.1f}$, Pilot = ({:.2f},{:.2f}))\".format(agrell_sym_pow_norm, *agrell_pilot_sym_norm)] = np.array(err)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Block Symbol Power scaled to unit power"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Unscaled Agrell Avg. Tx Power: 137610.0\n",
"Normalized Agrell Avg. Tx Power: 1.0000000000000004\n"
]
}
],
"source": [
"agrell_sym_pow_unscaled = np.mean(np.sum(agrell_map_unscaled*agrell_map_unscaled,axis=1))\n",
"print( \"Unscaled Agrell Avg. Tx Power:\", agrell_sym_pow_unscaled )\n",
"\n",
"agrell_map_unit = np.sqrt(1.0/agrell_sym_pow_unscaled) * agrell_map_unscaled\n",
"agrell_sym_pow_unit = np.mean(np.sum(agrell_map_unit*agrell_map_unit,axis=1))\n",
"print( \"Normalized Agrell Avg. Tx Power:\", agrell_sym_pow_unit )\n",
"\n",
"# calculate the pilot symbol\n",
"agrell_pilot_sym_unit = np.sqrt(agrell_sym_pow_unit/encDim) * np.ones(2)"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [],
"source": [
"noisePower = agrell_sym_pow_unit * 10.0**(-SNR_range_dB/10.0)\n",
"n0_per_comp = noisePower/(2*chDim+2)\n",
"\n",
"err = []\n",
"for n0 in n0_per_comp:\n",
" thisErr = 0\n",
" thisCount = 0\n",
" while thisErr < 500 and thisCount < 100000:\n",
" txSym = np.random.randint(inVecDim, size=1000)\n",
" symBlk = agrell_map_unit[txSym]\n",
" txTest = add_pilot(symBlk, agrell_pilot_sym_unit)\n",
" rxTest = rbf_channel(txTest, n0)\n",
" rxEqualized = equalizer(rxTest, agrell_pilot_sym_unit)\n",
" rxDecode = cdist(rxEqualized, agrell_map_unit)\n",
" rxSym = np.argmin(rxDecode,axis=1)\n",
" thisErr += np.sum(rxSym!=txSym)\n",
" thisCount += 1000\n",
" err.append(thisErr/thisCount)\n",
"results[\"Agrell (Block Power = ${:.1f}$, Pilot = ({:.2f},{:.2f}))\".format(agrell_sym_pow_unit, *agrell_pilot_sym_unit)] = np.array(err)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Block Symbol Power is scaled to unit power and Pilot power is $1$ per component"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [],
"source": [
"agrell_pilot_sym_1 = np.ones(2)\n",
"\n",
"noisePower = agrell_sym_pow_unit * 10.0**(-SNR_range_dB/10.0)\n",
"n0_per_comp = noisePower/(2*chDim+2)\n",
"\n",
"err = []\n",
"for n0 in n0_per_comp:\n",
" thisErr = 0\n",
" thisCount = 0\n",
" while thisErr < 500 and thisCount < 100000:\n",
" txSym = np.random.randint(inVecDim, size=1000)\n",
" symBlk = agrell_map_unit[txSym]\n",
" txTest = add_pilot(symBlk, agrell_pilot_sym_1)\n",
" rxTest = rbf_channel(txTest, n0)\n",
" rxEqualized = equalizer(rxTest, agrell_pilot_sym_1)\n",
" rxDecode = cdist(rxEqualized, agrell_map_unit)\n",
" rxSym = np.argmin(rxDecode,axis=1)\n",
" thisErr += np.sum(rxSym!=txSym)\n",
" thisCount += 1000\n",
" err.append(thisErr/thisCount)\n",
"results[\"Agrell (Block Power = ${:.1f}$, Pilot = ({:.2f},{:.2f}))\".format(agrell_sym_pow_unit, *agrell_pilot_sym_1)] = np.array(err)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Plot results"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAs8AAAIMCAYAAAAKDkGtAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzs3XdY1fX7x/Hn5ywO57D3EERAcCDiVtwbB85y5MjKlt9KM03bw5aVlllqVlZaX8ty58yNe4sTBUQFUZC9DnA45/cH5S+/aYIT835cF5d5rs978K4/Xn2u+9xvxWq1IoQQQgghhLg+1d3egBBCCCGEEPcKCc9CCCGEEEJUkIRnIYQQQgghKkjCsxBCCCGEEBUk4VkIIYQQQogKkvAshBBCCCFEBUl4FkIIIYQQooIkPAshhBBCCFFBEp6FEEIIIYSoIAnPQgghhBBCVJDmbm/gn7i5uVkDAgLu+LoFBQUYjcY7vu69Ss6rcuS8Kk/OrHLkvCpHzqty5LwqR86rcu7Wee3bt++S1Wp1r8izVTo8BwQEsHfv3ju+7qZNm2jXrt0dX/deJedVOXJelSdnVjlyXpUj51U5cl6VI+dVOXfrvBRFOVPRZ6VsQwghhBBCiAqS8CyEEEIIIUQFSXgWQgghhBCigiQ8CyGEEEIIUUESnoUQQgghhKggCc9CCCGEEEJUkIRnIYQQQgghKkjCsxBCCCGEEBUk4VkIIYQQQogKkvAshBBCCCFEBUl4FkIIIYQQooIkPAshhBBCCFFBEp6FEEIIIYSoIAnPQgghhBBCVJDmTi2kKIoRmAGUAJusVuuPd2ptIYQQQgghboWbevOsKMocRVHSFEU58j+fRymKEqcoSryiKBP/+Lgf8KvVan0c6HUz6wohhBBCCHE33GzZxndA1F8/UBRFDXwBdAPqAIMVRakDVAPO/fFY2U2uK4QQQgghxB13U+HZarVuATL/5+OmQLzVak20Wq0lwE9AbyCZ8gB90+sKIYQQQghxNyhWq/XmJlCUAOA3q9Ua9sffHwCirFbryD/+PgxoBkwAPgdMwNZr1TwrivIE8ASAp6dno59++umm9ldZpmwrhQWF2DkZUOtApQFFUe7oHu41+fn52NnZ3e1t3DPkvCpPzqxy5LwqR86rcuS8KkfOq3Lu1nm1b99+n9VqbVyRZ2/HFwavljStVqu1AHjkeoOtVutsYDZA48aNre3atbu1u7uOnx6bQ4Y2ACj/nwoFC1pVKTqtFRuDBr2DAVtnI7ZOBmyMWvQGLXqjBhuDFhujtvyZP/5Ua+6PF+ybNm3iTv97upfJeVWenFnlyHlVjpxX5ch5VY6cV+XcC+d1O8JzMuD3l79XA87fhnVuC21eMnY6DaUaA2atkTK1DSUWG0qKIb8YyCqBMyVA1nXnsqqsWHRq0KlQbNSobFSobdRobDXoDBp0thr0xvKwbbDXYWevw81Fj4eLLXrtHWuEIoQQQgghKuh2JLQ9QE1FUWoAKcAg4KHbsM5tsTloF9qcDSiUobGUYSyx4lCswcGkw6HEBkOxHk2ZPVYMlGqNmDUGSrUGzBojpRpbzFrjH8HbABY1apMFTBbADJR/U7IMKP6HPZRhxaSCUo2CVaug/BG4bYwabO102DvqcHLU4+ysx8PNFg93A3Z2OhSVlJcIIYQQQtxONxWeFUWZD7QD3BRFSQbesFqt3yiK8gywBlADc6xW69Gb3ukd4ltkhybjyhBqBjI15T8YSjBp0yjWlWFWl2FVLKisZrTmMvTmMhwLy3AuKsM534xTgRptqRGz1nD5TXapxrY8aGsNfwTvPwK4xoBZZ6BUYwS1HqOF8o7YJVYoMPNn+DZT/s47Czj9lz1asWJVmbFqLKAFlV6FRq9BZ6fD1sEWo5Mdzi4G3Fz1uLkaMNrr0Bs1qNT3R2mJEEIIIcStcFPh2Wq1Dr7G5yuBlTcz990y5MnX2LV5E/4+3uRlZ5KTmUZudgaFOdkU5+ZRVmBCX6pGX6q+6vhCNRTaQcofte4lGgslmjLKVAUoSi5qSxk6sxlDSRl2RWU4Z5fhmWfGJb8MjaW8zrpMpfkjYP/5Y1f+p+Yv/3z5T+PlAK5YtH8EbqCg/A13EaUUUUomuZf7BP6VWilCqzah0xVh52rBo4YLNRuF4l4zCEUlwVoIIYQQ4q+qZGGtoijRQHRwcPAdX7ta7TDiL16iyTWK1S2WMkx5eRTkZFOYnU1hTlb5P+dkk5+dRW7WJfKzMynKzaEkrwCdGXRmFaC9Yp5SBbIM5T+JbuWfmVUWCvWlmGxKKNUUg5KFxnIRYym4lepwLdHgWKzCpdiKbYEFm6Iy1EVmKDJjsSp/vMm2uzJ0a/4etP8/iBspw5Yysy0mszO5hXD+HBzccg4tJ3DQp2J0MOHsa0v1etXxDauHyt4LpPuIEEIIIe5TVTI8W63W5cDyxo0bP3639/K/VCo1BkcnDI5O4P/Pz1otFkwF+RTm5FwRsgtzsin4I3jnZWdQkJ2FKTcPjdmMQ6ENDoU2gH35HFjJNZg57lhCpkP5T4ZDCSYby18WUuGqsqeG4oGf4oK31RFPqx1uZQbcS7U4FKvRm8qw5l7CknMKc04OpRk5lOblU2KyUFqiwqRzIde+Onn2/uTaV6fExpEMUzAZJjibBocOgF7ZiYvuDEZjNnZuCl41PfGrUxdNad7tO3AhhBBCiCqkSobnfwtFpcLW3gFbewdcq/n947NWqxVTQT4ZZ8+QdiaRtNOJpCUlkJF8FsdCBcdCLTVSjZeftxg0FLqoybAv5pwhi4t2hew1JLJXSfz/SVWATfmPxlGDZ6An3kZvvI3+eBm98Lbzxsfog7fRG49CDdYTCZiOHKYgdhVZhxPJw4U8++rk2vuTZ++PSefI+eLw8m87ZgInwbDyIh66eGJ+/x2DYwnOfva4B9fC3i8c3ENB73A7jlYIIYQQ4q6Q8FxFKIqCrZ091eqEUa1O2OXPzaWlZCSfJT0pkbQ/ftLPJFJSWIRdoRk7oDrOgDNqvQ16L1cs7gYKXFRcsjdxTpdJiimVTFMmKfkppOSnXHV9taImxDmE8Kbh1O8RTbhbOHXz1JiOHsN05AiFR5aSeTiZPMWVXIfyN9R59v4UalxIKm5aHqhzgXNgtzMdD+1aPLQzMNpmYvDQYvQLxtE/HI1XnfJQrbW9E8cqhBBCCHFLSXiu4jRaLZ41gvCsEXT5M6vFQk7aRdKSEi4H6rSkRAqyMilIOg9J5S+dPQAvtZoo33q4Vg/AxseVMncD+U5wsSyD1ILU8p/8VJLzkzmeeZzjmcf5Oe5nAJxtnAl3Dye8czjhDz1BmGsYutQMio4cwXT4CEVHfiYz/gK5Os/LJR95dn7ka9zJL3YnsbgF5APp4HA8FQ/dKTy0q3HTJKB3KEblEYChWj1sg1pB9UgJ1EIIIYSo8iQ834MUlQonL2+cvLwJad7q8ucF2Vnlb6jPnCbtdAJpZ06TlZpC+tkk0s8mXTGHo4cnTQKCcA/oiEdAEI7V/ThtTuZQ+iFi02M5lH6ITFMmm5M3szl5c/m6KAQ7B1PfvT7h/cOp/9SD1LfzY/uCX2ljsMV05ChFRzaTmXSJHBvvyyUf+XbVyMWbXJM38abW5RvIsuCUfB6Pw/H420zDRz+SQrcQNCEdcKnXBcWrPki3DyGEEEJUMRKe/0WMTs4YIxoRENHo8mclpiIunU26XEOdlnSaS+eSyEm7SE7aRU7t3l7+oKLgV6ceTVq05qFmD2Jr70BKfsrlIB2bHsuJzBOcyjrFqaxT/HryVwDsdfZUU1ejfUB7wpu0I8ztGQJUBooTEjAdOULR4SMUHllDZnIuuba+fwnUvmRTjeyyapw0tUPJtuCVeZwaZ3ejjvkWta6QdPfmaEM64t2gGxqX63w7UwghhBDiDpDw/C+n09viE1Ibn5Dalz8rM5vJOp98RcnH+bhjnDsay7mjsayfM5Pq4Q0IbdGaDk3a0D2wOwAms4njmccvB+pDaYdIK0rjOMc5fuj45fkDHQPLyz3Cw6nf8SGCHIOoYS6jOC6uPFAfOULBkd/IvFBIjl0Al1zDyHYKIbW0Lqmlddme9whOqnME5uwh4Nw3qLZM5LzWhzT3SGxCOlK9cRcM9i53/CyFEEIIIapkeL6bfZ7vB2qNBjf/ANz8A6jTpgMAxYUFxO/ZSdz2LZw5fJCkg/tIOriPdV9pCIhoRGhkG4IaNaWBRwMaeDS4PNeFggvM3zQfs4eZ2PRYjmUcIzEnkcScRJbELwHAqDUS5hZGuFs49VvVJ7xvFD56ZyxFRRTFHqZgawxZW2aTmqnjkls4GS51ydb6sb/Aj/0F/bAhlxr6PdTI341fynOwycwxbSiXPCKxCe1IzYbtcLE33JWzFEIIIcT9pUqG56rc5/nfysZgpG7bjtRt25HC3Bzid+8gbscWzh49TMLeXSTs3YVGZ0NgwybUimxDQINGaHU2eBm9aGBsQLsm7QAoKSshLjOO2EuxHEo7ROylWFLyU9iVuotdqbsur+dv70+4ezj13evT7qkhhL7wAoGpqeRviSF302pSjl3kkl0o6W7hmGzdOGHqyAlTR1TWUny1sQQZdtGoeCHG81+Tu8GWrdpwMjxaog/tRJ2wCKq5GFDkMhchhBBC3GJVMjyLu8vg4Eh4pyjCO0WRn5XJyZ3biNsRw/m4Y5zcuZWTO7ei1dsS3KQ5tSLbYCkruzxWp9ZRz70e9dzrMaT2EAAuFV264ouIRy8d5WzeWc7mneW3xN94b9d7NPduTq/gXnTo15PqAwfgV1JC4Z495G/ewoUdy0gtduWSaz1yHQM5Z27Eudzyum4nJYkQwzZq63fjkjIV5fxUkje4sVQdQYZnJMbQjoSHBBLqZY9aJWFaCCGEEDdHwrP4R3bOLjTsFk3DbtHkXkrj5I6tnNgew8XEUxyP2cjxmI2obfSUnjpKrcg2+NWth0qtvmION1s3Ovp3pKN/RwBKLaXEZ8VzKP0Qu1J3sTl5MztSd7AjdQcGjYEuAV3oFdSLRpEtsGvZEi+gzpkz5G+J4dKWJZw7beKSUx0ynWuRrQ5gd0EAuwuGoFeyqW6zm1DbrUTrNqJOXYfl/CSObAjgW1V9Lnm2xDGkFY0CvQiv5oheq77KbyyEEEIIcW0SnkWFObh50Di6H42j+5F14Txx22OI2xHDpbNJHNm4liMb12Lr4EhI81bUatEa31p1UK7Sbk6r0lLbtTa1XWszqNYgcopzWJO0hqUJS4lNj2VJ/BKWxC/B186XnoE9iQ6Kpnr16rgMq47LsKEEFxZSsGsX2Zu3cnZfMhdV1bjkWg+Tzok4UxfiTF3QUIynzSlC9esItdlDOEvg4hIKL9iwe1MtPiGcdJ/2NG3UhG71vHG01d6FExVCCCHEvUbCs7ghzl4+NO83kOb9BrJq0a84mE3Ebd9CVup5Dq1dwaG1K7BzcSW0RStCW7TBKzjkmjXIjjaODAgdwIDQASTlJLEsYRm/Jf5GSn4KX8Z+yZexXxLhHkF0UDRRNaJwMDhg37499u3bU81qpSQhgdxNW0jZtpXkNC2XXMIoMHqTUhxGSnEYG7Hgrr+An2EPdVQraac5RDsOwcV5rF/egOeWdUcf0p7eDarRoZaHvJEWQgghxDVJeBY3zdbFjZbt2hH54BDSkhKJ276FuB0x5KansW/FUvatWIqDuyehka2pFdkG9+o1rhmkAxwDeK7hczzT4Bn2XtjL0oSl/H7mdw6mH+Rg+kEm755Me//29ArqRaRPJBqVBpvgYNyDg3EfCfXy8ijYvoMLG7dz5kQuaTaB5DgFkWbyIc3Um330xlGbg79zIjUtP9NBfYCOygGOx89jTlwUr2ra0jHMj94RvrQIcpU6aSGEEEJcQcKzuGUURbl8lXjrh0aQeiqOuB0xfwTpi+xZ+it7lv6Ks081QluUB2nXan5XnUulqGjq3ZSm3k15pdkrrD+7nqUJS9mdups1SWtYk7QGV70rPQJ70CuoF6EuoQCo7e1x6NoFh65dqGmxUHziBBkbtpK0+xznCxzJcK5NDo4cTmvAYRrgqMqglu066hpX8JF2NunWn/jhYGdG7+uE2t6D6Po+9I7woZ6vo3TvEEIIIUTVDM/S5/nepygKPiG18AmpRdthj5Jy4hhx22M4uXMrWeeT2blwPjsXzsfNP4DQFq0JjWyNs5fPVecyaA1EB0UTHRTNhYIL/Jb4G0vjl5KUm8TcY3OZe2wuoc6h9ArqRffA7rjZupXvQaVCX6cOvnXq4AuYs7LI3byNM5v3cPachYuOdcnRurKrYCC78x+gmnKUMLtljDYuZpR2GUuKWvLNtm58s9WPQHcjvev70jvChwA34x08SSGEEEJUJVUyPEuf538XlUqNX516+NWpR4dHnuTskUPE7Yjh1O7tXDqbxKWzSWz7eR4eNYLKg3SL1jh6eF51Li+jFyPrjeSxsMc4fOkwyxKWser0KuKy4vho70dM3TeVlr4tiQ6Kpr1fe2zUNpfHapydcenTE5c+PYkwm8ndup24JXtITNWT4RTKOcI5lx+OTU4uwcpGuriuZaDNJnYq4czKiOLTdeF8su4k9f2c6BPhQ89wH9ztba66TyGEEEL8O1XJ8Cz+vVRqNQH1GxJQvyEdHxvFmdj9xG2PIX7vLtJOJ5B2OoGY/36Hd3AooZGtCWneCntXt7/NoyhK+RXg7uG82ORFNidvZlnCMrYmb2VL8ha2JG/BXmdPVEAUvYJ6Ud+9/hVlF4pGg2O7NjRt14ZG+QVc/G0dx9fFc6bElyKDB0fpzdGs3rgWn6KW7Tq+dP2MbDsPZpq68NO5lrx1LptJvx2jZbAbfSJ86VLXE3u9dOwQQggh/u0kPIu7RqPVEtSoGUGNmlFaUkzSgX2c2BFD4v7dpMbHkRofx6a5X+Nbqw6hLcqDtNHJ+W/z6NQ6OlfvTOfqnckoymB10mqWxi/leOZxfjn5C7+c/IXqDtWJDiwv/fCxu7I8RG1nxGdQb3wGQcmFCyT+tI64fVmk6oPJsKnJNktNdl54FL/SXTzi9DsT3X9lnaE776a3IuYUxJy6hM1iFZ3qeNInwpe2Ie7oNH9v0SeEEEKIe5+EZ1ElaHU21GwWSc1mkZSaTCTs303c9hhOH9xLyoljpJw4xsbvvqJanTBCW7SmZrNIDA6Of5vH1daVIbWHMKT2EE5lnbrc9u5M7hk+P/g5nx/8nCZeTYgOjKZLQBeM2ivrl3VeXtQaM5RaQF7sMY4t2EH8GRXZxuokqduQZGqDIf4iNdnEKs+3yQxszKziKBakuLAiNpUVsak42mrpXs+bPhE+NAlwQSUdO4QQQoh/DQnPosrR6vXUimxDrcg2FBcWkrBvF3Hbt5B06ADnjsZy7mgs6+fMxD+sPqGRranZJBK9nd3f5qnpXJMXGr/A6Iaj2Zm6k2UJy9hwdgN7Luxhz4U9fLz3Yx6r9xiDaw3GVmP7t/H24XVoFl6HpmVlpK7ZztE1JziT50ahjSeHGMihrAfxiDnKMJtfeL1hGVs8+jH9XBDHLxYwf/dZ5u8+i4+jnugIH/pE+FLb2+FOHJ8QQgghbiMJz6JKszEYqNO6PXVat8eUn0/8nh3E7YjhzOGDnIk9wJnYA6z7agYB9RsQ2qI1QY2bY2MwXDGHRqWhlW8rWvm2Iq8kj7VJa1kcv5hD6Yf4ZN8n/HjsR56KeIo+wX3Qqv5et6yo1fh0b41P99aY8/I5+fNmTuxO4wK+pBnrkUY9duzLx9+0g9k+C9F06cr8ktYsPJxNSnYRX25O5MvNiYR62tMrwgdPk+VOHZ8QQgghbjEJz+KeobezI6x9Z8Lad6YwN6c8SG+P4dzRwyTu30Pi/j2otVpqRDQqD9KNmqHV66+Yw15nT/+Q/vSr2Y/t57czbf80jmce5+0db/P90e95psEzdKneBZVy9Zpljb0ddUb2oM5IyDt9niPzt3MqwUye1oMEbWcS8jpjP/cszZWZPNbOidM9H+aXU1ZWHE4l7mIeH62JQwG2ZB/g+c4h1JC2d0IIIcQ9RcKzuCcZHBwJ7xhFeMcoCrKzOLVrO3E7Ykg+cZT4PTuJ37MTjc6GwIZNCI1sTY0GjdHq/r+tnKIotPRtSQufFqxNWsv0A9M5k3uG8ZvHM8dlDmMajqGFT4t/vBjFvoYPLV5+gBZAcswRji4/TFKmPXlGfw7gz8GdpXitXclgr9O88siDbNfWZ+mh86yKPc+yQ+dZcTiVAY39eK5jMN6Ofy8bEUIIIUTVUyXDs1ySIirD6ORMRNceRHTtQV7mJU7t3MaJHTGknjzByZ1bOblzK1q9LUGNmhIa2YaA+g3RaMvLM1SKiqgaUXSs3pHFpxYz69Asjmce58l1T9LUqymjG44m3D38unuo1jqMaq3DMJtKiVu0k+MxZ7ioeJHq1JhUU2N2fpqFf/E0JkS60KFFHXaU+PLrvmTm7z7Lwv3JDG9enVHtg3Ex6m73cQkhhBDiJlTJ8CyXpIgbZe/iRsPuvWnYvTe56WnE7dxK3PYYLiae4sS2zZzYthkbg5HgJs0Ja9eZanXCANCqtAwIHUB0UDTzT8zn68Nfs/vCboasHEIHvw481/A5gpyCrru+Rq+l7kOtqftQa3LPZ3F43kZOnSqjwMaVUzadOHUEnLadYqj3Fp4aOYwpB4tZEZvK11tPM3/3WUa2DmRk6xrSM1oIIYSooqpkeBbiVnBw96BJdD+aRPcj+0IqcTtiiNsRQ/qZ0xzdvJ6jm9cT3KQ5bYeNxMnTCwBbjS2Phj1K/5r9+e7od/xw7Ac2nNvApuRNRAdGMypi1N/6RF9zfR9nWk7oR6TVSvLOExxesJ2z+T5kO9YkprAmju9s5z9uexg7qDeTTrix6eQlpq0/xdwdSTzdLojhLQLQa9W38YSEEEIIUVlyk4O4Lzh5edOs7wCGfzidRz6ZRbO+A9Ha6Infs5Pvxj5FzPzvKTEVXX7e0caR0Q1Hs7LfSgaGDkSFiqUJS+m5uCeTd08m05RZ4bUVRcGvRW26f/IYj07rQKDrMXRl+eQ4BLGxZBC7pyfxyp732djyBG39dWQVlvLeyhO0/WgjP+46Q2mZdOcQQgghqgoJz+K+4+JTjVaDhvHIp7Oo07o9ZWYzu5f8wrdjnuRYzEasVuvlZ90N7rza/FWW9llKtxrdKLWU8sPxH+i2sBszD86koLSgUmvrDDbYdg5j+GfdiAgtRFNWRKZjbdZan2PPj2rePPAW2+osppdHGhdzi3ll8RE6TtnMkgMplFms119ACCGEELeVhGdx37J3caPbMy8weNJHeAXVJD8rk1WfT2H+6+O5EH/yimf9Hfz5sM2HLOi5gFa+rSg0FzLj0Ay6LezGD8d+oKSspFJr29hqafl8T4ZP7UTdoGLUlhLSncJZqX6bnStqMuHENPZ7vc8opx2kZWYx5ueDdJ8Ww+/HLl4R7oUQQghxZ0l4Fvc9n5DaPPTOFLo+PQaDoxOpJ0/w4ytjWT3zUwqys654trZrbWZ2msmcrnOo716frOIsJu+ZTM/FPVkav5QyS1ml1ra1t6Hd+G4M+6A1oX5FqCylXHBuwhLlY2J2dOXhM4uItR/NZON8zGkneHzuXvrO2M72+Eu38giEEEIIUUESnoUAFJWKsHadePTT2TTp1R+VWsPRTeuYM+YJ9ixbSJm59Irnm3g1YV63eXzW/jOCnYJJLUjl1W2v0n9Zfzac3VDpt8NGFyOdXunBkEktCPLIQ8FKsnNLFpZNY+3hEXRM28V6m/H8YvsePimrefjrbQz9ehcHz2XfymMQQgghxHVIeBbiL2wMBtoMeYQRU74gsGETSoqK2PLjt3w/7j8k7Nt9RShWFIX2/u35NfpX3m31Lj5GHxJyEhi9cTRDVw1lz4U9lV7fwdOBqLd7M+ilBlR3ysaqKJxxas8vpumsjnuamtkpzNB9xg79szRLmsGoL5byxNy9xF3Iu5XHIIQQQohrkPAsxFU4e/vSd8Ib9HvpLZx9qpGVep4lH77Nog/eJCPl3BXPqlVqegX1Ynnf5UxsOhEXvQux6bE8uuZRnlr3FMczjld6fZcAN3p+0I8Bz9fB15iFRa0jwbELP+XPZF3C0+jzLTyrWUKMzWgGnBrHB9OnMfanfZzNKLxVRyCEEEKIq5DwLMQ/qBHRiIc/+px2w0eiszWQdHAfc8c/w6a5X2EqyL/iWZ1ax5DaQ1jZbyWjIkZh1BrZlrKNAb8N4MXNL3I292yl13ev5UOfKf3p91QgXroMytQ2xBm78GP2LDYlP0dxiR2d1Af4VvsRzx8byIJPxvD+L1u4mGu6VUcghBBCiL+okuFZUZRoRVFm5+Tk3O2tCIFao6FRjz48Nm029Tp2xWKxsG/FUuaMeZLY9Wuw/M+XBI1aI0/Xf5qV/VYyrM4wtCotq5JW0XtJbybtmESOufL/XXtHBND/swfpNcwXN3UGZo2Bo5r2/JA2g62ZEyjQBeCnSmec5mdeONKHPR/35YeffiQrv/hWHYMQQgghqKLh2Wq1LrdarU84Ojre7a0IcZnB0YkuTzzL0Pc+wbdWHYpyc/h99nR+fHksySeO/u15F70LLzZ5kRV9V9AnuA8WLCw4uYC3zr/FlL1TKnXRyp/8WoYy8IsH6dbfDWcyKNXacaikOfPj32RnyTtkeXVGo1jpqdrO0BOjyPioIZvmTiI/J+NWHIEQQghx36uS4VmIqswzMJiBb06mx3PjsXN1I+10Aj+/MYEVn31E7qX0vz3vbefNpJaTWNRrER39O1JqLeW7o98RtTCKafunkVNc+TfRgZ3DGTzzATpFGXGwZFKsc2RfZl0W7x7EAf10Uuv+h2yVC8FKMu0SP0b9SW3iZj9MccrhW3EEQgghxH1LwrMQN0BRFGq1bMujU2fRvP9gNFodJ7Zt5tuxT7Fj4XxKS/5eLhHkFMSn7T9lvNd4Wvm2oshcxNeHvyZqYRQzDs4gr6RyHTMURSG0TzOGzOxH2zYajOYsinQu7EzyYc2qCM66f8bxlp8Rq6uPLcWEnl+C9qvWpHw7Amv2uesvIIQQQoi/kfAsxE3Q6vW0HDCEEVNnEtK8FebiYrYv+JHvxj7NyZ1br9rv2d/Gn5mdZjKv2zxkGtSXAAAgAElEQVSaezcnvzSfmYdm0nVhV2bHzq70ld8qtYqwh9owbFYfIhuVYWvOoUDnRswhI3vm26Cp9ho7olayTNcDs1WF75nFmD9tQM6yl6BI+kQLIYQQlSHhWYhbwNHDk+jnJzLg9fdw9w8gNz2N5Z98wC9vv0z6mdNXHRPhEcFXXb7i267f0sizEXkleUw/MJ2ohVF8e+RbCksr13ZOrVHT4PHODP+iJ03qFGFjziNP58HG7WoSvzpDaMjTLGu1lJXWSLSU4rh/BkVT6lEa8xmY5YuFQgghREVIeBbiFvKrG87QD6bR8bFR6O3sOXfsMPMmjGbd1zMoysu96pjGXo35tuu3fNXlK+q71ye7OJup+6bSfVF35h2bR3FZ5YKtxkZL0+d6MPzTLjSokYvWnE+21ot160qx/pJE7Z6f8GmNL9lRVgdbcy7a9a9ROLUB1tgFYLHcimMQQggh/rUkPAtxi6nUaiK6dOfRabNpEBUNChz6fSVzRj/B/lXLsV4loCqKQnPv5szrNo+ZnWZS17UuGaYMPtzzId0XduenEz9RUlZSqX3o7GyJnNCHhz9qTz2fDDTmItJUvqz9Mp5WKWVohi7idbs3iLNUw1CYgrLocYpntoHETbfoJIQQQoh/HwnPQtwmtnb2dHjkSYZP/gz/sPqYCvLZ+N2XHFvwPcnHj1x1jKIotPJtxfwe8/ms/WeEOoeSVpTGu7vepefinvx68ldKLaWV2oeNsz1tXn+QQa80wlOTjlljYNdZb868u5Rnm7RkV9dlvMbTpFpdsEk/DHN7Uza3H1y4+h6FEEKI+5mEZyFuMzf/AB549R16jXsFRw9PTFkZ/PzmRH6f/fnfbin8k6IotPdvz4LoBUxtN5Vgp2BSC1J5a8dbRC+OZkn8EswWc6X24VjDi/7TBxAZqUNtKeGiIYTF36dSd/Eynh35PJ/V+YkPSweSa7VFnbge66xWWBc/BdKZQwghhLhMwrMQd4CiKNRs0oIRU2bi3ag5KrWG2PWr+e6FUZzcte2qXTkAVIqKztU782v0r0xuPZkAhwBS8lN4bdtr9F3alxWJKyj7nxsOr7ePBsNbMeitSNwNBZTqHNiZX59tY+fxvJJKx8ff5wmnr5ljjqLUqkI5NB/L9Ebw++vSmUMIIYRAwrMQd5RGp8OnaSuGTZ6Gd0gtCrIyWT71fZZ+/C55mZeuOU6tUtM9sDuLey/m3VbvUs2uGkm5SUyMmUj/Zf1Zk7QGi7XiX/Zz8nbgwY970qyDCyprGeddGrJspRne/JBvo2uj7TGZ3sqnLCtrgaqsGLZNw/pZBGz/XDpzCCGEuK9JeBbiLnDzq87gtz6k46NPo7O1JWHvTr4b+zQH16y46hcK/6RRaegV1ItlfZfxZos38TZ6k5CTwLjN4xiwfAAbzm645lvs/6WoFBoPiGDAGy1wcSyjWO/CTn1X1o6dR6ddy5n7bB+21p9Mr+JJ7Cirg1KUBWtfwfp5Y5DOHEIIIe5TEp6FuEsUlYqIrj0YMWUmQY2bU1JUxPo5M5n/xotcOnfmH8dqVVr6h/RnRd8VvNrsVTwMHsRlxTF642gGrRjEluQtFQ7Rrj52DHivI006e6NgIdmnDav3u3Hmked4w6eAN54axjtukxlRMp44SzWU7LOw6HGY3VY6cwghhLjvVMnwrChKtKIos3Nycu72VoS47exd3eg97hWix76E0cmZ1JMnmDdhNNsW/IC59J87a2jVWgbWGsjKfiuZ2HQirnpXjmUc4z/r/8PQVUPZfn57hUK0Wq2iaf/aPPhyM5ycVBQaPNnlPZSNk5bg8dn7LBpcm469hjFI9THjS5/ggtUFLsTC3N4wrx9cOHyrjkMIIYSo0qpkeLZarcutVusTjo6Od3srQtwRiqIQ0qwlI6bOJLxTFJYyMzsX/sTcF5+9Zlu7v7JR2zCk9hBW9V/FC41ewNnGmdj0WJ78/UlGrB7Bngt7KrQPd397Bk5qTURHX1AUzlSPYsPFMA4/OJKeZ3bx+9h2qBoMo13xFD4sHUg+BkhYj3VWa5DOHEIIIe4DVTI8C3G/0hvt6Pz4Mwx88wNcfKqRdT75um3t/spWY8uIsBGs6r+K0Q1H46BzYH/afh5d8ygj144kNj32unNotGpaPhhK3xcaYe+kJd+uGrtD/8POb7aS9+RI3qqnZ/6o9sR4Dae1aSpzzFGUoYZD8+FyZ46sW3EcQgghRJUj4VmIKqha7TCGfTid5v0HV7it3V8ZtUZG1hvJ6v6rGVV/FHZaO3al7mLIyiG8vu11Mk2Z153Dp6YTg95sQd3WPlhVGhID+7CV9hwd8hS+C75h0SMNGNc3kmnax2hf/BG/WVrAH505mCadOYQQQvw7SXgWoorSaLW0HDCEYZOn4RNS+y9t7d4hL+Pabe3+yl5nz9MRT7O6/2oeDXsUjUrD4vjF9Fzck59P/HzdHtE6vYZ2Q2oR/Wx9DA5ach0D2d1gPIdWniSpVy96FZ1m47h2tGrSmGdLn6VX8ST2KWFgyoa1r4B05hBCCPEvI+FZiCrOza86g96a/Je2drv47oWnObDmt39sa/dXjjaOPN/oeRb1WkQL7xbkleTxzq53GLxiMIfSD113vH9dVwa/0ZyQpp5Y1DacDBnEHrd+xI9+icKXX+Ttll4sHtUSfBvSv+glRpSM55ymOvzZmeOrdnDx2E2ehBBCCHH3SXgW4h5wtbZ2G+bMqlBbu7+q4ViDLzt/ydR2U/E0eHI88zhDVw7lje1vXLeUQ2/U0vnRunR9PAy9UUOWS212N3mVkwezSOjeHf9Nv7Hoyea81zecg/qmtM1/lwnmJ8nVukPqIfiqA+yfCxVsoSeEEEJURRKehbiH2Lu60Wf8q/Qa+zJGZ5cr29qVlFRoDkVR6Fy9M8v6LOOxsMfQqDQsOrWI6MXRFSrlCG7kweA3mhMQ7oZZY8vx2g8TG/AQ5z6cxrnBg+lrl8fGF9oxsGkAC8ra0ixvMstVHcBcBMuehUVPQPH1v/wohBBCVEUSnoW4B9VsFsmIKTOubGs34bkKtbX7k0FrYEyjMZdLOXJLci+XclyvK4fBQUf3p+vRYXhtdHo16e4R7Gr2OucuqEl6cADF0z7mnS6BLBnVkpBqnjxbOJIXSp+iVKWHwwvKL1i5UPG9CiGEEFWFhGch7lE329buT3+WckxpO+VyKceQlUOuW8qhKAq1I70Z9HozfEOdKdUYORz2BMdCh5L2319J7NGDGsd3s/DpSEZ3rMliSxuiiiZxVhMAGfHwdUfY+62UcQghhLinSHgW4h531bZ2Y5/m5M6tFb6iW1EUugR0uaFSDnsXPb1HR9B6YE00WhUXPJuxp8WbpJU4k/LcaFKfeYZn6hj5cWRz8uwC6ZL/BovoCGYT/DYGFj4GptxbdRxCCCHEbSXhWYh/gT/b2g3/8LPytnbZWSz/5INKtbWDGy/lUFQK4e39GPhqUzxrOGBS23Gw/rOcrDOEnM3bSOgZTa09v7PyuVY0D63GWNNjjC4ZRYnKFo4sLC/jSL1+1w8hhBDibpPwLMS/iGs1//K2do+NuuG2dnDtUo43t79Jlunatwc6eRroN64hzXoHolIrJHtEsrftJLK1Xlx48y0Kx41mdvcAXupWixW0JqpoEqfVNSAzEb7uDHu+ljIOIYQQVZqEZyH+ZRSViogu3RkxdSbBTW68rd3VSjkWnlpIz8U9WRC34JqlHCq1isbdAnjwpca4+hopsNqxr+ELnKw7jOxte0nq3ZvBpgQWPNWCYscgogreYIG1U/nthCtegF9GgCnnFp2GEEIIcWtJeBbiX8rexY3e465sa/fjS89z6PeVFa6FhitLOZp7Nye3JJdJOyfx0MqH/rGUw62aPQ9ObELDrtVRVCqS3Zuzq+UkztnWIXn0GLy+mMxvj0TQvq4/LxY/yrMlz2BSGeDYEviyLZw/cCuOQQghhLilJDwL8S9Xs1kkj0ydSd12nTCXlrDu6xks/+R9TPmV67Vcw7EGszvPvlzKcSzj2HVLOdRaFS36BjHw1Sb4hjhRoug5ETqEfY3Hc27DAS4NfoApIWVM6l2XNUorooomEa8OhKzT8E0X2DVbyjiEEEJUKRKehbgP2BiMRD09hh7PjUdna8upXduZO+FZUk5U7srsGy3lcPWxo/fzDejyWF2Mjjpy7aqzt+GLHLFrS8LI/9Al5hcWP94IlWswPQpe57+WLlBWAqvGw4JhaErlUhUhhBBVQ5UMz4qiRCuKMjsnR+oehbiVarVsy7DJ0/EKDiHvUjo/vzWRnYt+xnKdWwX/15+lHAt7LfxbKcfh9MNXHaMoCjWbePLQW82J6OyPSq3ivE9rdjR9ncOr4tA/+zgLu7jTo0ENXi4ZwaiS5yhSGeH4chrtGwsp+27FEQghhBA3pUqGZ6vVutxqtT7h6Oh4t7cixL+Ok6cXg96aTOPoflgtFrb9PI+F775GfmZGpecKdAysdCmHTq+hZf9gBr7aFN9QZ8xaI3GhD7HNvg8nn5zAK3l7+bh/GBvVLela9A5xqiBsTRfhm66wc6aUcQghhLirqmR4FkLcXmqNlrZDH6X/S29hcHTi7JFY5r74LIkH9lR6rr+Wcjwa9ihqlbpCpRwuPkZ6j4mgy8jyUo48h+rsDR/D5mWphE97m2X9AzB4BhNd+Drfm7uCpRRWT4Sfh0LRtdvlCSGEELeThGch7mMBEY0Y/uF0/OtFUJSXy+IP3mLT3K8pM5dWei6D1sDzjZ6vfClH4/JSjoZdy0s5Un1astGmD2cnfs733mk82DSQN8wP82TJGApVRjjxG8xqA8l7b/bXF0IIISpNwrMQ9zmjkzMPvPw2rR8agUqtZt+KJcx/bTxZF87f0Hx/lnJ83PbjK0o5/nv8v9cco9NraNE3mEGvN8M32B6z1siJgH6sWZbPgHW/MCa4hO3aSLoUvcsxJRhyzsKcrrD9cynjEEIIcUdJeBZCoKhUNO39AAPfnIyDuycXE+OZN2E0x2M23th8ikLXgK4s67OMh+s8jBUr7+9+n+kHpv9jj2lnLyO9X2hM18frYtBbyLP3Z6ulPX6rT7GgrhUX35r0Lnqdb8u6gcUMa1+B+YOhMPNGf3UhhBCiUiQ8CyEu8wmpxbDJ0whp3opSUxErP5/C6hmfUGIquqH5DFoD45qM4+3It1ErambHzuatHW9htpivOUZRFIIbeTJ0cnsiWrqiWMu44NaYLWvMjDt9hEcb+/JW6TAeLxlLgWIHJ1fBrNZwdteN/tpCCCFEhUl4FkJcQW+0o+eYCXR+4hk0OhuObl7PDxPHkJaUeMNz9q3Zl0/bf4qN2oaFpxYydtNYTGbTP47R2qhpOaw+g99sgYM2A7PWwOGCEHxXnGJmiJ69+hZ0KXqXw0oI5CbDt91g2zSwWG54n0IIIcT1SHgWQvyNoiiEd4xiyHtTca3mT1ZqCv99ZSz7Vy2r1NXef9XOrx1fdfkKB50DG89t5MnfnySn+Pq93J297ajWz42O0a7oy3LJs/EkcbfCGznZBHkF0rfoVWabe4C1DH5/HeYPhILKt90TQgghKkLCsxDimtz8qjPk/U+o37kbZWYzG7+bzZKPJlGUl3tD8zXwaMD3Ud/jYfBgf9p+RqwewcWCi9cdpygKtXrUZ9gnXantchHFUkpKgRstjxXwgpORD8xDeLRkHHmKPZxaC7NawZkdN7RHIYQQ4p9IeBZC/COtzoZOI/9D9NiXsDEaSdy3m7kvPsu5Y1dvP3c9wc7B/NDtBwIdA4nPjmfYqmEk5lSsJERnZ0uH9wbTd7ALbgUJmFU2WJJUvFaokKZuRpei9zhIKOSdh+96QMwUKeMQQghxS0l4FkJUSEizlgyfPB2fkNrkZ2bwy9uvsP2XH7GUVe5qbwBvO2++j/qecPdwUgtSeXjVw8Smx1Z8fPsm9J8xmOYOh9EXXaKwRE+3dA09Ld48XPgqM83R5WUc69+GH/pCTkql9yiEEEJcjYRnIUSFObh7MPDND2jWdyBWrOz4dT4L3n6Z3EvplZ7LSe/EV52/orVva7KLsxm5diRbU7ZWeLzG3o5GH46m3xA3Ai9uRGUpxSlXzZN5BjYUDOWR4gnkKA6QuAlmtoDYX6QntBBCiJsm4VkIUSkqtZpWg4bxwCuTMDo5k3LiKPMmPEf83sq3ijNoDUzrMI1eQb0oMhfx7PpnWZ6wvFJzOHfpQOevx9BevR7XS4exWlW0K9IRkteUh/KmstHaCEw5sGgk/PqI9IQWQghxUyQ8CyFuSPV6EQz/cDo1Ihphys9j6UeT2PDtl5hLSio1j1al5Z2W7/BI2COYrWZe3voy3x/9vlJzaFxdCZ0xmajB1ah/cg76oks4mFV0z3flx6wJTCh5ApNiC0cXw4wWcGpdpeYXQggh/iThWQhxwwyOTvSd8AZthz2GSq3hwOrl/PfVF8g8n1ypeRRFYWyjsYxvPB6Aj/d+zJS9U7BYK/5lP0VRcOrfn6bfv0878wpqnF6BylJKgxIt2txOdC96n4NKLci/AD/2h9/GQklBpfYphBBCSHgWQtwURaWicc++DJ70EU6e3qSfOc28iaM5svH3SveEHl53OO+3fh+NouG7o9/x6tZXKbWUVmoOnZ8fgXPn0PSBWjQ4/Dnakjy8zVr6ZrvxaN7LTC4dhFnRwN5vym8mTN5bqfmFEELc3yQ8CyFuCa+gmgz9YBq1WrbFXFzMmlnTWDn9Y4oLCys1T8/Annze8XNsNbYsT1zOcxueo9hSXKk5FLUat8cfp8GP02ij2oihIBUVRp7MVnEirRG9TG+TqKoOmQnwTRfY8C6UVS6kCyGEuD9JeBZC3DI2BgPdnx1H16fHoLGx4cS2zfwwcTQXEk5Vap6Wvi35pss3ONs4szVlK59f/JxsU3bl9xMYSOhXn9BriDcuhUmYNUaa4s+Ak+cZfmkMX5X1xGq1wJYP4etOkB5X6TWEEELcXyQ8CyFuKUVRCGvXiWEfTMO9eg2yL6Yy/7Xx7Fz0c6V6Qtdzr8f33b7Hx+hDUkkSw1cPJzU/9Yb24xrVgQdmDSbQNQeLWkeBe0dejjvM6cNuDC2cSJrKA1IPwpdtYOdMuVhFCCHENUl4FkLcFi4+1XjonSk0iIrGUmZm28/zmP/aODJSzlV4jhqONZjXfR4+Wh9O55xm6KqhnMqq3FvsP2kNtkS904dmnT0AOF0jmsZWN57YsIKXTg1hkaUtmE2weiLM6wM5lfvSoxBCiPuDhGchxG2j0eno8MiT9H9lEnaublxIOMUPE0azb8USrBV8u+th8GC012gaejQkrTCNh1c/zP6L+29oP4qi0Lh/GFFPhKFWQ6p3S1KCHmL0gWUUb7DyUvoj5Kkc4fRmmBEJh36Wi1WEEEJcQcKzEOK2CwhvwIiPv6Bu206YS0vYNPdrFrz9MjlpFyo03qAy8GXnL+ng14G8kjye+P0JNp7deMP7CWroQd9xjbG115LlHMr+Ri8Smp/FkA2/883O9sSUNoTiHFj8BPwyQi5WEUIIcZmEZyHEHWFjMBI1agy9x7+GwdGJ5ONH+H7cM8SuW12hlnZ6jZ4p7abwQMgDFJcVM2bTGBadWnTD+/Gs4cADExvj4mOkwNaD/ZGvku8QQNfE3WiX5/H1ya6YsIVjS/64WOX3G15LCCHEv4eEZyHEHRXcuBkPf/wFIc1bUVps4vevPmfR+2+Ql3npumM1Kg2vN3+dJ8OfxGK18Mb2N/gq9qtK95P+k4OrLf3GN8KvjgvFFh0HG79AVvMHcSwpoOX+w2xaXYvDmSF/XKzyAPz2vFysIoQQ97kqGZ4VRYlWFGV2Tk7O3d6KEOI2MDg4Ev38RHqMfhG9nT1Jh/bz/bj/cCxm43WDsKIoPNPgGV5p9goKCp8d+IwPdn9QqdsI/8rGVkPP/4RTt7UPZWVwQN+OzKenYXH3oHr2RTRr81m7PYLiIh3snQOzWsG5PTe0lhBCiHtflQzPVqt1udVqfcLR0fFub0UIcRvVimzDwx9/QWDDJhQXFLDq8yksm/IehTnX7+k8qNYgPm77MVqVlv+e+C8TtkygpKzkhvahUqto+1Aokf2DQYGDxzWkjvgchyeepkyjxe9sGsd/8+bUCT8s6YkwpwusnwTmG1tPCCHEvatKhmchxP3DztmFPi++TtenRqOztSV+zw6+e2EUp3Ztv+7YLgFdmNVpFkatkdVJqxm1fhQFpTdWVqEoCg06+9PtyXpotCri9qSzR2lF9cXLKW7RBpuyUswHyzi4qgZ5KTqI+Ri+6QRpJ25oPSGEEPcmCc9CiLtOURTC2nfm4Y++wD8snKK8XJZNfY+V0z/GlJ//j2Obejfl267f4qp3ZVfqLh5Z/QgZRRk3vJfACHf6jmuIwUFHSlw2y35IpcaHn+AyYxaZbj7Y5heTvMWFhC3eFMcdKb9YZccMuVhFCCHuExKehRBVhoO7Bw+88g4dHnkSjc6G41s38f24UeScSfzHcbVdazOv2zz87P04nnmc4auGcy6v4pex/C+P6uWdOFx9jWRfLOTXD/Zh8a9Piw2ruDjsaQq1ekrOKySs9iRtv46y316Geb0h+8bXFEIIcW+Q8CyEqFIUlYoGUdEM//AzvENqkZ+VSfzKRaydPZ2SosJrjvNz8GNut7nUdqnN2byzDFs5jBOZN15SYe+ip9+4RvjXdcFUUMqSTw8QfyiTdq88h/uSZeyv2wqrRSHjuD3xKz3J2bgH64xIOPSTXKwihBD/YhKehRBVkrO3L4Pemkzrh0agqNQcXr+G78c/y7mjsdcc42brxpyuc2jm3YwMUwYjVo9gV+quG96DzlZDj1HhhLX1xWK28vs3x9iz4jR+gdUY9MtsDr40hTgXfyxFKs7vdObMCh1F3zwDC4ZDwY2XjgghhKi6JDwLIaoslUpN094PUPuBoXgEBJGbfpEFb7/Mxu9mU1psuuoYO50dMzrOoGtAVwpKC3hq3VMsT1h+43tQq2gzKIRWD9YEBXYvP836745DmZUhD3cjZMHP/NDuYTJt7CjK0JG01o3U7zdjnhoJ53bf8LpCCCGqJgnPQogqz9bVnYfenUKLBwajqFTsX7WMeRNGc/7k1csydGodH7b5kKG1h2K2mHl568vMOjTrhi9TURSF+h396P5UPTQ6FXG7LrDss4OY8kupU82J16aPZ8trM/k1uC1mRU12opHEX6BoSi848MPN/OpCCCGqGAnPQoh7glqjIfLBIQx5dyqu1fzJSk3hp9dfJGb+95hLS//2vEpRMaHpBCY2nYiCwhcHv+CN7W/8H3t3GR3V9fVx/HtHMnEXAkkI7sG9uHsp7rS4FCgEdyjS4lZapLh7cXeHBHcNBEJCQkJcZu7zgj7tnwpEaJvA/qzFi2TOufvcu1hdvw7n7kOi6c9jkytbYRe+8C2OlZ0Zz+6Gs/H7C4S/iMFcr2Vo0xJUnfktIxsO47JzdowJGp4csiNuaV/YPQSMSWm5fSGEEOmEhGchRIbilj0nbSfNpESDL1BRObd1A6uHfUPwo7/uyNEmXxtmVJmBudacLfe20OtAL6IS3t3+7l1cvGzedOLwsCYiOJaN31/g2d03h7qUz+nMstHNOdF1FGcy5ceYoCHgiDPx+xbCqiYQE5bqukIIIdIHCc9CiAxHZ2ZGpbZf0XLMd9i7uRMS8IhVw/pzZvM6TEbjn8ZX86rGz7V+xtHckdPPT9NhTweCooNSXd/awZwvfIuRtZAT8dFJbJvlz+2zb65nZ6lndttShAwYw3nXPBjjNTw+4kL8peOwsKocqiKEEBmchGchRIaVJW9+2n8/hyK16mEyJnFy3QrWjPQlNPDP/ZYLuRRiZd2VeNt6c+fVHdrsasPtsNuprm1mrqNuDx98qnhgSlI5sOQG57Y/QFVVNBqFQQ0KoY6dzCWXnBhjFR4eyURCQAAsqg63d6fltoUQQvyHJDwLITI0vbk51b7qQdPh32Lj5ELQ/busHNyXizu3ov7h1D9PG09W1l1JcbfiBMcE02FPB04Gnkx1bY1GoUKL3FRokQtFgfM7H3FgyQ2MiW/qdqiSF4fps7junB01RuXukSwkvoqBNa3g+DTpBy2EEBmQhGchxEchq08ROkydS4HK1UlKTODI8kWsGzuUiOC3t2fYGexYUGMBdbLVIToxml4He7H57uY01fap4kndnj7oDVrunHvBtln+xEYlAFC7ZHa8fvqRO05Z0UQncf2IN4kxChwcB5s6QcLfH/wihBAi/ZHwLIT4aBgsrajdox+NBo7E0s6ewFvXWTG4L/cuvH1QipnWjMkVJtO5UGeMqpHRp0Yz2292qlvZAXgXcuaLgcWwsjfw/F4Em767yOuXsQCUKuBJ3mU/88jJE0NkLH5HcpOQaA3XNsGS2hDxNE33LYQQ4t8j4VkI8dHJWaI0HabOI0eJ0sTHRLNtyniOrVry1suEGkVD32J9GVV2FFpFy8KrCxlyfAgJxoRU13X2sKHZkBI4e1oTERLLlul+RIS8+WY5T87MFF6zgkAnD2xfv+b0gWzE6L3g+WVYUBkCzqT1toUQQvwLJDwLIT5KlrZ2NPIdQcU2X6JoNJz/ZRMbxg8n6tXb7eKa5W7GnKpzsNBZsOvhLrrt70ZEfESq61rZG/i8fzEyZbclKiyeLVP9eBUUDUBmLzeKb1hJsFMWXCNCOfGLM2F2pSE6BJbWB7/labpnIYQQ/zwJz0KIj5aiKJRs2ITmIydiZe/A05vXWDG4D0+uX3lrXAWPCiyrvQwXCxcuvLhA+93tCYwKTHVdg4WOBn2KkDmXPdERCWyZ7k/YszcB2iGzGyU2reKVkzueEUGcWmfiXuYWYEqEX76GXYPAmPqDXIQQQvyzJDwLIT56HvkL0u672XjmL0RMRDgbxo/g3LaNb3XjyOeUj1V1V5HTPicPIh7QZmcbrr+8nuqaZuY66vcuTJY8DsS+TmDrDD9ePn1zOLQO5sIAACAASURBVItVJjeKb1xNlFMmcoQHcnXJY45mG4Kq0cO5n2DlF3KgihBCpFMSnoUQnwQreweajviWUo2aoqomjq9eyrZpE4iL+v20QXdrd5bXWU4Z9zKExoXy5d4vOfLkSKpr6g1a6vfywauAI7GRiWyd4UdIQCQABvdMFNmwijgnV/K+CiB4wXGWek1HtXKFh8dgYRV4cSOtty2EEOIDk/AshPhkaLRaKrTuyOeDRmKwsuL+hbOsHNqXFw/u/TbGxsyGH6r9QKMcjYhNiqXv4b6subUm1TV1ZlrqdvfB28eZ+Ogkts7wJ+jhmz3V+syZKbB2JYlOLhQMfYj5og2Mtp+KKVMRePUIFteAWzvTettCCCE+IAnPQohPTo7ipWk3eRau2XIQEfyCNaMGcuXAnt9a1em1esaXH0/PIj0xqSYmnp3I1PNTMamm91z5r2n1Gmp3LUj2oi4kxCbxy6xLPLsXDoCZpyd5Vy3H5OBIkZf3yLViCV8mDSchb2NIiIK1reHYFDlQRQgh0gkJz0KIT5KdayZajZuCT/XaGBMT2b9wLnt+mEFifBzw5mXDHoV78G35b9EpOpbdWIbvUV/ikuJSVU+r01CzcwFylXAlMc7I9jmXCbz9CgAzb29yrlgG9g6UCL5NlQ0/0uhJW16XHw4ocOhb2NAREqI/0N0LIYRILQnPQohPls7MjBpdelOnV390ZgZuHDvE6uEDCHv2e6eNRjkbMb/GfKz11ux/vJ/O+zoTFpe6l/m0Wg3VvypAntKZSIo3smPuZZ7ceHMtQ86cZFu2BMXWjtIvbvLFrgXUOVuEJ3V+BjMbuLEVfq4F4QEf5N6FEEKkjoRnIcQnL3/FqrSZMA0H9yy8fPKYVcP6cefMid8+L+NehuV1lpPJKhOXQy7Tblc7Al6nLsRqNApVO+QjX3l3khJN7PzhCo+uvgTAPE8esi5ZjGJtw2fPr9L28BLq7bTgUq2N4Jgdgq7Cgirw+NQHuW8hhBApJ+FZCCEAZy9v2kycQe4yn5EQG8v2GZM5vGwhxqQ3PZdzOeRiVd1V5HPMR0BkAG12teFS8KVU1dJoFKq0yUvBilkwJpnY/eNVHlwKAcCiQAGyLl6IYmVF5cBLdDm9ihabQtlbbjVkrwIxL2FZQ7i49EPduhBCiBSQ8CyEEL8yWFpSv99gqnTsikarxW/XNtaNHUpk6Jtvhl0tXVlaeykVslQgPD6cTns7se/RvlTVUjQKFVvlpnBVT0xGlb0LrnHvYjAAFoUL47XgJxQLC6o/uUi3ixvovuEeP3tPgTK93hyosr0v7PSVA1WEEOJfJuFZCCH+h6IoFKvTkBZjJmPt5MzzO7dYMbgPj674A2Cpt2R21dk0y92MBFMCvkd9WXZ92W+dOlJaq3yznBSt6YXJpLJv0TXunAt6U6d4cTznz0cxGKjz+Cw9rmxl3M7bTDC2xdRwHmjN4PxCWNEYokM/6DMQQgjx9yQ8CyHEX8icOx/tJs8iq09RYiNfs2niKE5vXINqMqHT6BhZZiTfFP8GFZWpF6Yy8exEjCZjiusoikLZxjkoUdcbVYX9S25w89RzAKzKlMZj3jwUvZ4GD0/R7fp2Fh57QN/bBUho9wtYu8Gj47CwMrxI/WmIQgghkk/CsxBC/A1LWzu+GDqGsk1bAXBqwyo2Tx5DzOsIFEXhq4JfMaXiFPQaPWtvr6Xf4X7EJMakuI6iKJRumJ3SDbOBCoeW3+T68TcdP6w/K0+WObNBr+fze8focnsP2y8F0mGfQmSHA5C56JsOHItqwM3tH/T+hRBC/JmEZyGEeAeNRku5Zm1oMmQM5ja2PLrsx8oh/Xh+9zYAtbPVZmHNhdia2XLk6RG+2vsVL2NfpqpWibrZKPtFDgCOrLrNlcNPAbCpXJks06eBVssXtw7S9eEhTj8IpdmqRwQ12QKFmkNiNKxrC0e+g1Qe5iKEEOL9JDwLIUQyeBcpTrvJs3DPmYfI0BDWjh6M/57tqKpKcbfirKy7kizWWbgeep02O9vwIPxBquoUq5mVz5rlAuD4ujtcOvCmJZ5tjRpkmToFNBoaX9lN98Dj3AqK5IsFftwtPw2qjwUUODKR/DemQELKvwEXQgjxfhKehRAimWydXWgxdjJF6zTAZEzi0JKf2Dl7CgmxMWSzy8aquqso5FyIZ9HPaLu7LScCT7z/on+hcDVPKrXKDcDJjfe4uOfRm/p16pB58iRQFBqd38bXL8/xLCKOJj+e5rxHe2i9Hgy2uIacgiW1ISLwHVWEEEKkhoRnIYRIAa1OT9WO3ajfbzB6cwtunzrGqmH9efnkMU4WTiyutZhqXtWITIik54GeLLq6KFWdOApW8qBKu7ygwJmtDzi34yGqqmLXsCHu344HoO6J9fjGXOF1XBJtFp1lT0Ih6HyAWPNM8PwyLKwCTy986EcghBCfNAnPQgiRCnnKVqDNxOk4eXgR9uwpq4b35+aJI1joLJheeTo9i/RERWWW3yx8j/qm6kXC/OUzU71DPhQFzu94yJltD1BVFfsmTcg0ehQA1fYtZ7Ryh4QkEz1W+bHsroGLxaeAdwWIegFL6sKVDR/69oUQ4pMl4VkIIVLJKYsnbSZMJ99nlUmKj2fXnKkcWPQDpiQjPQr3YE7VOVjrrdn3eB9tdrXhyesnKa6Rp4w7NToVQNEo+O15zMlN91BVFYdWrXAbOgSAMlsXMtX2CaoKo3+5zg83DQQ1XAPFvwRjPGzuDAfHg0leJBRCiLSS8CyEEGmgNzenTu8BVO/cC61Ox+X9u1g7ahARwS+o7FmZ1fVWk80uG/fC79FiZ4tU7YPOVcKNWl0KoNEqXD7whOPr7qKaVBw7dMBlQH9QVQqsnMOCLKGYaTWcepZElRknmWneg4Qak0DRwPGpsL4dxEf9A09BCCE+Hf9aeFYUJbuiKIsVRdn4b9UUQoh/g6IoFK5Rh1bjp2Lr4saLB3dZObQfIY8fks0uG6vrrqayZ+U07YPOUdSVOt0KodEpXD3ylCOrb6OaVJy7dMH5695gMuH54/fsLppICTctsYlGZh68R8WjeThe6kdUgy3c2vHri4RP/6EnIYQQH79khWdFUX5WFCVYUZRrf/h9bUVRbiuKck9RlCHvuoaqqg9UVe2UlsUKIUR65pY9J20nz8S7cDHioiLZNHEU4S+CsDazZlaVWfQsnLZ90N4+ztTr4YNWr+HGiWccWnETk0nFuWdPnLp1A6ORhDHDGWC6wbquZSiUxY6g13G0O2pNT4vvibPxhqCrsKAKPDn/zzwEIYT4yCX3m+elQO3//YWiKFpgHlAHyA+0UhQlv6IohRRF2fGHP64fdNVCCJFOWVjb0Mh3BJ4FfIgOf8WmCSOJDn+FRtHQo0gPZleZjZXeKtX7oL0KOFGvlw86vYZbp4M4sOQGqknFpV9fHL/6CpKSsF+4kOx71rG1ZzmmNSuMm62B3UG2lA4Zxi2LohAdDEvrweV1/9BTEEKIj1eywrOqqseAsD/8uhRw79dvlBOAtUAjVVWvqqpa/w9/gj/wuoUQIt3SmZnRyHcErtlyEP7iOZsmjiIu+s1e4ypeVVhdbzXett6p3gftmdeRBn0KozdouXv+BfsW38BkUnEd6IvrQF9UReHl7DkEDfSlcX4nDvtWpm+1XMTrban/6htWGWu8eZFwS1c4MEZeJBRCiBRQkrvvTlEUb2CHqqoFf/25KVBbVdXOv/7cDiitqmrvv5nvBEwAagCLVFWd9DfjugJdAdzc3IqvXbs2JffzQURFRWFtbf2v182o5HmljDyvlMuozywxJprbW9cSH/EKa3cPctVvgkanByDWFMuKlyu4GnsVBYX69vWpYVsDRVGSff2YlyqPj6qYEsEmC3iUU9BoFUznzuG2eg2auDgSvbwI79Edk4MDYXEmNt1J5OSzJNpq9zNGtwydYiLEqRS38vXHqLP4px5FupZR/379V+R5pYw8r5T5r55XlSpVLqqqWiI5Y9MSnpsBtf4Qnkupqvp1ahb9V0qUKKFeuPDvN/g/cuQIlStX/tfrZlTyvFJGnlfKZeRn9jokmDWjBhIVFkqOEqVp2H8YGq0WAJNq4qfLP/HD5R8AqJm1JuPLj8dSb5ns67949Jrtsy8RH5NE1oJO1O5WkBMnj1M2Sxae9OxF4pMnaF2c8Zw7F4vChQG48jSc8TtuYBZwjB/0s7BTYoiyz4t1xw1g7/XhH0I6l5H/fv0X5HmljDyvlPmvnpeiKMkOz2nptvEU8Pyfnz2AZ2m4nhBCfHRsXVxpMmwc5lbW3L9wln0/zUb9dZvEX+2Dbru7bYr2Qbt529KoX1HMrfQ8vhbKznlXMCWpGHLlwnv9OixLlcIY8pLH7doT8csvAPh42LO+W1natupAD4vvuW9yxzr8Fq9nV+DJpUP/yHMQQoiPRVrC83kgl6Io2RRFMQNaAr98mGUJIcTHw9kzK42HjEFnMHD96EGOrlryVqu6/90HfffVXVrubMnJwJPJvr6Llw2f9y+KhY2ep7de8WC/SkhAJDoHB7wWL8K+VUvUhASeDRpM8NSpqEYjiqJQp5A7S3xbc6ziGk6pPtiawnHd0oxNP39PWHTCP/EohBAiw0tuq7o1wGkgj6IoTxVF6aSqahLQG9gL3ATWq6p6/Z9bqhBCZFyZc+elUf9haLQ6Lu7YwvlfNr31eXa77Kyut5rKHpV5nfCangd7svjq4mT3g3bKYs3n/Yth52pBfARsnHyB8zsfYtJocR89GrdRI0GrJXTRYp727IUx6s0LjAadli+rFyX3gD2ccm6KQUmiScAEtk7pxKKjd4lPMn7wZyGEEBlZcrtttFJV1V1VVb2qqh6qqi7+9fe7VFXNrapqDlVVJ/yzSxVCiIzNu0hx6vT6BhSF46uXcuXg3rc+tzGzYVbVWfQo3AOTamKm38wU9YN2dLeixYhSOOYGk0nl3PaHbP7+ImHPonFs3RqvxYvQ2NkRdfQoj1q2JOHJ79tDnG2tKNd7MS8qTiYJLV/xC94HutBo+l72XHue4kNdhBDiY5Uuj+dWFKWBoigLIiIi/uulCCHEB5W3fCWqftkNgAML53H37Km3PtcoGnoW6cmsKrNStQ9ab6bFvZiGRv2KYO1oIPhxJOsnnufSgQAsS5Um2/p1mOXIQcK9+zxq2ozoM2ffmu9WtQe6DltJNLOjutafmVGD+HbVHlouOMO1QPlvshBCpMvwrKrqdlVVu9rZ2f3XSxFCiA+uaK36lG3aClU1sXP29wRcu/KnMVW9qqZpH7RHXkdajixN3nLuGJNMnNx4j60z/Im1dMV77RqsKlXEGBFBQOfOvPpjS9BsFdF3O4zqlJu8midsN4zE9OgUDeaeYMD6y7x4HZfWRyCEEBlWugzPQgjxsSvbtDVFatXDmJTEtqnjefHg3p/GpHUftMFCR7X2+ajb0wcLWzOe3Q1n7bfnuHXpNR7z5uHY6c2JhEFjxhI0bhxqYuLvk51yoHQ5ADmr40Aka80n0lJ7hE1+T6k85QizDtwlNkH2QwshPj0SnoUQ4j+gKApVO3YjT7mKJMTGsmnSaMKeBf5pXFr3QQNk83Gm1ahS5CjmSlK8kSOrbrNz/jWsOvfBffIkFL2eV6vXENClK8bw8N8nmttBq3VQpidaNYlJugUsdNtCfGIiMw7coeq0I2zxf4rJJPuhhRCfDgnPQgjxH1E0Gur0+gbvwsWIfR3BxgkjiAx7+adxf7sPOjL5/aAtrM2o3bUgNTsVwGCpI+B6GGvHnyU4cxk8ly1F6+xMzJkzPGzegvj793+fqNVB7UnQYBZodNSI2MDFHIso6a7jeUQc36y7TOMfTnL+UdiHeCRCCJHuSXgWQoj/kFanp2H/YbjnykPkyxA2TRhFbFTkX4790z7oHS05FXjqL8f+nVwl3Wg1qjReBZyIj0li/883OH5eT6alqzHkz0diQACPWrQk6ujRtycW7wjtt4GFIw6BR1ivG8X8uo642Rq4/DSCZj+e5pt1l6S1nRDioyfhWQgh/mN6c3MaDxmDk4cXoU8D2DJ5DIlxf/1S3v/vg67kUYnXCa/pcbAHP1/7OUWt5KzsDdTv7UOVtnnRG7Tc9w9h40+PUIfMxqZ2bUxRUTzp3oPQxX+4rvdn0OUQuORFCblFndOtOdpMT59quTDXa9jiH0iPlX4SoIUQH7V0GZ6lVZ0Q4lNjYW1Dk2HjsHF24fnd2/wyfSLGpMS/HGtjZsPsqrPpXrg7JtXEjIszGHhsYIr2QSuKQv7PMtNyZCky57InNjKRPT/f4VaRLtj27AOqSvCUKTwfOgxTwv+cNuiYDTrth1w1ITYM8zVf0N/xFFt6lsfBUs+hW8H0WuVHQpIprY9ECCHSpXQZnqVVnRDiU2Tj5EzT4d9iYWvHo8t+7PlhJqrpr0OoRtHQq0gvZlaZiZXeir2P9qZ4HzSArbMFn39TlM+a5UKr13D7TBAHnvugGT4bxcKCiK1bCWjfgaSQkN8nmdtCq7VQtjeYkmB7X/Jdmsiqr0pgb6nnwM1geq2WAC2E+Dily/AshBCfKsfMWWgydCxmFhbcOnmUQ0sXvHNLRjWvaqyu+/Y+6Fuxt1JUU9EoFK7mSYvhJXHNakPUq3gOnNTyrMsPkNmL2EuXeNi8BXE3bvw+SaOFWhOg4VzQ6OHsfPIf7syadnmxs9Cz/8YLeq/2I9EoAVoI8XGR8CyEEOmMW/acNPIdiVan49LeHZzeuOad47Pbv70Pen7wfFbdXJXiI7UdMlnRZFBxSjfMhkajcPNKDBfKjiS2eE2Snj/nUZu2vN7z9pHiFGsHHX4BSye4f5B8OxqzoakzdhZ69t14wder/SVACyE+KhKehRAiHfIq6EO9PoNQFA2nN67m0t6d7xz///uguxTqggkTk89NZvyZ8SSa/nrf9N/RaDWUqJuNpkNK4JjZitehCZyxbcSTWgMxxiUS2K8fIXPnvb2dJGs56HIY3ApC6D1y//I5W2vFYWuuY8/1IPqskQAthPh4SHgWQoh0KlfpclTv0guAg0t+5NbJo+8cr1E09CnWhw7OHTDTmLHhzga67e9GeFz4O+f9FRcvG5oPLUmxWl4A3I33xr/2FCJtPHk5dy6B3/THFPM/Lyg6ZIWv9kLe+hAfQba9HdhT+io25lp2Xwui39pLJEmAFkJ8BCQ8CyFEOuZTrRafteoAqsruedN5dOnie+eUsCrBktpLcLZw5nzQeVrtbMX98PvvnfdHWr2Gso1z0ti3OHYuFkTEmnGhxBAe5WpIxL79PGrblsTnz3+fYLCG5iug0mBQTWQ+O56juTbiaFDZefU5/dZJgBZCZHwSnoUQIp0r1agpxet9jsloZNv0iTy78/4XAn1cfFhTbw35HPPxNOopbXa14djTY6mq757DjhYjSlGoUhZUFR5kqYVf6aGEPQrjYbPmxPj7/z5Yo4Eqw6DZUtBZ4Hh3A8fcpuFtiGLHled8s/6yBGghRIaWLsOz9HkWQojfKYpCpbZfUaBSNZLi49ny3VhePnn83nmZrDKxrM4yamatSXRiNF8f+ppl15el+EVCAL1BS8VWeWjYtwjWDgZem2fmfMlhPDIvxOP2HQnfsvXtCQUaQ6e9YOuBdbAf+6xHU9IQwPbLzxiw4TJGU8rXIIQQ6UG6DM/S51kIId6maDTU7NaH7MVLERcVyaaJo3gdEvzeeRY6C6ZWmkrPwj0xqSamXpjKqFOjSDAmvHfuX/HM50jLUaXJWyYTJkXH3ZxN8SvQgwdjp/BiypS3XyR0LwxdD4Nnacyin7NON4YmZmfZdukZvhKghRAZVLoMz0IIIf5Mo9VSv99gsuQtQFRYKBsnjCTm9fv/hU5RFHoU6cHUSlMx15qz9d5WuuzrQmhsaKrWYbDQUa1jfup0L4SFjZ5w+9ycKzGcaztvvnmR8H+PFrd2hQ7boWhbNMY4pmlmMcSwka3+TxgoAVoIkQFJeBZCiAxEb2bg80EjccmajVfPA9k8aTTxMck7lruWdy2W1lmKq6UrfsF+tN7Zmjuv7qR6LdmLuNBqVGlyFHXBqDPnVt62XHjgwKMvO5H06tXvA3WGN4ep1J4MiobuymYWGWay1/8eAzdKgBZCZCwSnoUQIoMxt7KmybBx2Lu58+LBPbZN/ZakhORtwyjgVIC19dZSyLkQz6Kf0W5XOw4HHE71WixszKjVtSBV2+dDq4XALBU4barA3dZfkRAQ8PtARYEyPaDNRjC3o5pygS2GMZzz92fwpiuYJEALITIICc9CCJEBWdk70GT4eKzsHXhy/Qq75kzFZDIma66LpQs/1/qZutnqEpMUQ9/DfVl0dVGqXiSEN9tC8pVz53Pf4lja6Ah3yM0p11Zc69CX2MuX3x6csxp0PgROucitPGG72Uie+u9jyGYJ0EKIjEHCsxBCZFD2bploMmwcBksr7p47xYGF85IdgM115kyuMJm+xfqiojLLbxbDTgwj3hif6vVkymZHs2GlcfGwIs7CmXM5unCh3xQiDxx4e6BzTuhyEHLWwEGJZIV+Enr/pQzbclUCtBAi3ZPwLIQQGZhL1mx8PngUOr0ZVw/t48SaZcmeqygKnQt1ZmaVmVjoLNjxYAdf7f2Kl7EvU70eawcDXwwqQa7ib/ZBX8ndkRNTdhC6bMXbA83toPU6KPc1esXIBP3P5Pcfx8gt/hKghRDpmoRnIYTI4DzyFqBB/6EoGg3ntm3k2YVTKdqCUc2rGivqrMDdyp0rIVdouaMlN0Nvpno9OjMtNToXpMzn2UFReJCtIYe2Pidwwvdvt7LTaKHmt/D5j5g0ZrTX7afepV5M2HRSArQQIt2S8CyEEB+B7MVKUrtHP1AUnp8/xf6FczEZk7cHGiCPYx5W11tNEZcivIh5QYc9Hdj/eH+q16MoCsVre1O3Z2F0WpVgtxIcvOHCvb5D325lB1CkFZovd5Fg7kI57Q06XO3I3HW/pHoPthBC/JPSZXiWEwaFECLl8lesSsP+Q1G0Oq4e3MvWKeNJiItN9nxnC2cW11pMwxwNiU2Kpf+R/vx4+cc0hdhsPs40HV4aGxuFSJusHIkqw+VOg99uZQfgWRKzHkeJdCyIlyaEr251ZfWKtNUWQoh/QroMz3LCoBBCpE6uUuXI3bA55ja2PPS/wPqxQ4kOf/X+ib8y05rxbflvGVB8AAoK8y7NY9CxQcQlxb1/8t9wymxN89Gf4e5pIMFgx2mrupzsPJ6Ex384YtwuCzY9DvAiawOslTha3R/KoYWD397qIYQQ/7F0GZ6FEEKknnWmzLQaNwU7t0y8eHCP1SN8CXv2NNnzFUWhY8GOzK02Fyu9FXse7aHjno68iH6R6jWZW+tpNKQs+Us6omr0XHOpz75vlhLt5//2QL0Fbh1XcN9nAADVnv3EtTnNUBOiU11bCCE+JAnPQgjxEXLMnIXW46eSKWduXoe8YM3IgQTeupGia1T0qMjKOivJYp2F66HXabWzFddeXkv1mrRaDVU6FaHCF94oqonHrhXY/t0pXu76w95qRSHHF6O4VnE+Uao5hV4d4PnMqqgRyf8fACGE+KdIeBZCiI+UpZ09zUdOJHvxUsRFRbLh2+HcOXMiRdfI6ZCTNfXWUNytOCGxIXTc05HdD3enaV0+NbPTsF8RzJQEQh3ysX1tCI9/Wv3ncdVaca3OJgJUVzLH3CJqbkXUJ+fSVFsIIdJKwrMQQnzE9ObmNPIdTuEadTEmJrJ95ndc3Lk1RddwMHdgYY2FNMnVhHhjPIOODWKO/xxMaur3Invkc6b5uIrYmccTY5mJPedsuTJq3p/2N5cp8xkPP9/OaVN+bBJDMf5cF9V/VarrCiFEWkl4FkKIj5xGo6Vapx5UaN0RVJUjyxdxeNnCFL2Ip9fqGV12NENKDUGjaFhwZQEDjgwgJjEm1euyc7Gk+eQaeLglkaS35PiLPBzrPRtj7NsdQioVzUtUs/WsMNZEpyaibOuJunc4JPM4ciGE+JAkPAshxCdAURRKNWpK3a990Wh1+O3axvaZk0lMSP5x3Iqi0CZfG36o9gM2ehsOBBygw54OBEUHpXpdZuY6Go6ugY+PHhQN10w+7Oy5hPjgt085rFHIE9eWcxiR1IlEVYtyei7q6uYQG57q2kIIkRoSnoUQ4hOS77PKNB0+DoOlFXfPnmLj+BHERr5O0TXKZynPynor8bLx4lbYLVruaMml4EupXpOiUajQswJV6jmhMSXyxJCXjYN2EXHj/lvjahXIxGctB9EhaRhhqjXKvQOoi6rDy3upri2EECkl4VkIIT4xngV8aDnue2ycXHh25yZrRg4k/EXKvj3Obped1fVWU9q9NKFxoXy19yu239+epnXlb1CYRj3zYm6MJNzcg41TL/Nk//m3xtQumIl2LdvQOHECN02eKKF3URdVhcen01RbCCGSS8KzEEJ8gpw9s9Lq2ym4eHnz6nkga0b6EnTvToquYWewY371+bTI04JEUyLDTgxjwZUFaToVMHORrLQYVxEH9SVxZvbsWP+Sq0vebmVXp5A7g1rWokXSWPYaS6DERcCqZhDol+q6QgiRXOkyPMvx3EII8c+zcXSmxdjvyepTlJiIcNaNG8r9iylrBafX6BlRZgRDSw1FQWGO/xwmnJ2AMQ0v81m7O9B85ud4GYIwaQ0cO6vl6LdbUU2/h/J6Pu5MbFmW3sZv2G4sAwmRqCubQPCtVNcVQojkSJfhWY7nFkKIf4fB0pLGg0dToFI1kuLj2TblWy7vT3kf59b5WjOt8jTMNGasu70O36O+xBuT/zLiH+kszKg3oyVFsrwE1cS1p7Zs891EQkzCb2Pq+2RmWoti+Bp7cdBYFCU2DHV5Iwh7mOq6QgjxPukyPAshhPj3aHU6avXoR5kmrVBVEwcWzePE2uUp3n5RI2sNfqrx02+dOLru60pEfOr/BVGj0VB+ZHOqlkpAlxRLYIwj6/rvJOLZ7x02C7IbbAAAIABJREFUGhbOzKzWpehr6sdpY36UqCDU5Q3h9bNU1xVCiHeR8CyEEAJFUSjfvA01u/VB0Wg4u2U9u+dNx5iUmKLrlMhUgmV1luFq6YpfsB8d93RMUys7gHyd6tKguROWcSG8xo71Y07yxC/gt89rF8zEnPbl6KUO5JIpB0p4AOqyRhD98h1XFUKI1JHwLIQQ4jeFqtak8aBR6A3m3Dx+mM2TxhAfE52ia+RyyMWquqvIYZeDe+H3aLOrDfdepa2dXOaaZWgyoAhO0fdJ0Fiw/afbXNl25bfPq+RxZd6XlejBsF+7cNzBtKKx9IEWQnxwEp6FEEK8JVvRErQYMxkrewcCrl1m7ejBRIam7FvcTFaZWFZnGcVcixEcE0z7Pe25+OJimtZlWygPjb9viHfMJVRFy/HdLzk09yQm45uTEsvmcGJup2r00IzkgSkTmqArmFY1g4SUhX8hhHgXCc9CCCH+xC17TlqNn4pjFk9eBjxi9YgBhDxO2Yt4dgY7fqrxE9W8qhGZEEnXfV058PhAmtZlcHejzvxuFFbPoZgSuXktni1jDhEf82Z7SfGsDsztUpte2lEEqk5onp7DuLoVJMalqa4QQvw/Cc9CCCH+kp2rGy3HfU+WvAWICgtl7ejBPL6aspMEzXXmTKs0jRZ5WpBgSqD/kf6svbU2TevSWFlRfp4vFZ2uoU94TVCIhs0j9v8WoAtmsWNW94Z8rR9DiGqH9tFREtd3BGPK9m8LIcRfkfAshBDib1lY29B0+Hhyl61AQmwMmyeN5saxQym6hlajZXjp4Xxd9GtUVCacncBsv9lpOkxF0ekoMLE/tYq9wjz2JWEx5mwesJX4sDdHjed2s2Fa9yb0NxtNuGqF/u5u4jd2B5Mp1TWFEAIkPAshhHgPnZkZ9fsMpHj9xpiMRnbPm86ZzetSFH4VRaGrT1fGlRuHVtGy8OpCRp0aRaIp9d8GK4pC1t5fUrepM4b4cMJUJzYP2EzM3QcAZHO2YlLPVgyxGE20asBwcyMx2/pBGkK7EEJIeBZCCPFeikZD5XadqNKxGygKJ9etYP/CuZiMKTtJsHGuxsyuOhtzrTlb722lz6E+xCTGpGlt7g2q0rB3QQzGKMIMXmwbtY/wg4cB8HCwZGzPDoyyGkm8qsfy8jIidwyXAC2ESDUJz0IIIZKtWJ0GNOw/FJ3ejKsH97J1yngS4mJTdI2KHhVZXGsx9gZ7TgSeoPO+zoTFhaVpXa7Fc/P50HIYiCPMLjd7518haM48VJMJN1tzhvXsyiTroSSqWmwuziN87+Q01RNCfLokPAshhEiRXKXK0WzUBMxtbHnof4H1Y4cSHf4qRdfwcfFhRZ0VZLHOwtWXV2m/uz1PIp+kaV3O2Z35fEQFzLRGXjoX4tiROAJ698UYFYWTtYFvevVhpq0vJlXB/sxkQg7MTlM9IcSnKV2GZ0VRGiiKsiAiIvXHugohhPjnZM6dj1bjpmDnlokXD+6xZqQvYc+epuga3nberKy7kryOeXn8+jHtdrXjRuiNNK3L2cOGzweXQa+HEJeinH/uwcNmLYh/8AA7Sz09eg/iJ/u+ALicGEng4UVpqieE+PSky/Csqup2VVW72tnZ/ddLEUII8TccM2eh9fipZMqZm4jgF6weMYAH/udTdA1nC2eW1FpCaffShMaF8uWeLzn17FSa1uXiZUPD/sXRmym8cCvJFbNyPGzWgsgDB7A26OjYaxQr7bsDkOmoL6ZHx9NUTwjxaUmX4VkIIUTGYGlnT/ORE8lZsgzx0dFs+W4cpzasRk1BSzhrM2vmV5tP3Wx1iUmKodeBXux4sCNN68qUzY76XxdFZ6bhuXtZbmWuz5PeXxM8axbmOoVmvSeyzaEDWlQ+eziD28c3p6meEOLTIeFZCCFEmujNzWnYfxjlW7QD4PTG1WydMp64qKjkX0OrZ1KFSXTI34EkNYmhx4ey9NrSNPWCzpzLnno9fdDqNQRmqcDdnE15Of9HnvTogS4mmrq9ZnDQoTlmipGsB7py5UTaArsQ4tMg4VkIIUSaKRoNZb5oQZMhYzC3tuGB33lWDuuXoiO9NYoG35K++JbwBWDaxWlMuTAFk5r6g0088jpSp3shNDqFpx5VeJivOVFHj/GwWTOMD+5TufdPHDZUw1xJJPv+zpw9kbbjw4UQHz8Jz0IIIT4Y7yLFaTtpJq7eOYh4EcTqEb7cOH44RdfoUKAD31X4Dp1Gx4obKxhybAgJxoRUrylrASdqdS6IRqPwyK0ST0q0J/FxAI9atiJ6/z7U0j25al8dayWW3Ps7cOT4kVTXEkJ8/CQ8CyGE+KDsXN1oOf57ClSuTlJCPLvnTuPgzz9iTEr+aYJ1s9dlfvX5WOmt2P1oNz0O9CAyITLVa8pexIUanQqgKHDPujRBtfqgxsQQ2O8bbLdtp0CPldy1/wwHJYr8Bzqw6+jJVNcSQnzcJDwLIYT44PRmBmp170v1zr3QaHVc2ruD9WOHERUWmuxrlHEvw9LaS3G2cOZc0Dm+3PMlITEhqV5TzuKuVOuYHxS4EZ+HVx0ngFaL1d59PO35NdnaLOKJXUlclXB8DrVn0+Gzqa4lhPh4SXgWQgjxj1AUhcI16tBy7HdYOznz7M5NVgzpy9Mb15J9jbyOeVlRZwXett7cfnWbtrva8jAi+fuo/yhP6UxUaZsXAP9H9sQM+gmTjTXRJ0/yqGU7XKp+xwvbQngoLylyuAPLD6Ss9Z4Q4uMn4VkIIcQ/yj1XHtpNmolnAR9iIsJZP34YF3duS3YnDQ8bD5bXWY6Psw/Pop/Rbnc7LgVfSvV68pfPTMWWuQE4czqeu+1HY16oEImBgTzq0Blz768Js8lNDs1zShzrxPw9F9LU9UMI8XGR8CyEEOIfZ2lnT9Ph4ynZsAmqycSR5QvZOXsKCXGxyZrvYO7AwpoLqehRkYj4CLrs68LRJ0dTvZ5ClT0o3zQnAIHXLYnvNw27L75AjYvj2bAxJEbX4bVFVvJrHlPqVHem7fCTAC2EACQ8CyGE+JdotFoqtvmSBv2Hoje34PapY6wePoBXzwOTNd9Sb8msKrNonLMxccY4+hzuw6Y7m1K9niLVvSjzeXYADq28S/QXfcg0ehTo9YSt3sCrKwWIVNwprrlLmXNfM36rHyaTBGghPnUSnoUQQvyrcpcuT5sJ03HM7EHo0wBWDv2Ge+fPJGuuTqNjbLmxdPPphkk1Meb0GOZfnp/qb4WL1/bGpQCoKhz4+Qbh+auTddlStC7OxFy8RNAhV15HufCZ9jpl/QYyZKMfRgnQQnzSJDwLIYT41zl5eNJm4nRylS5HQmwM26Z+y4m1yzGZjO+dqygKvYv2ZmSZkWgUDT9c+oGxp8eSZEpK1VpcCioUremFyaSyZ+E1QgxZybZxExZFipD0IoRn+ywJDXCihvYi5a6OoN+aiyQaU39wixAiY5PwLIQQ4j9hZmFJg2+GUrHNlyiKhrNb1rN50hhiI18na37zPM2ZXnk6Bq2BTXc38fWhr4lJjEnxOhRFoWzjHPhU8cCUpLL7x6u8eKUj6/Jl2LdsgZqQSPApA8/9nWiknKLMzYn0WHGRuMT3B30hxMdHwrMQQoj/jKIolGzYhKYjxmNha8fjK/6sHNqPFw/uJWt+Na9qLKq5CHuDPScCT9BxT8dU9YJWFIXPmueiQIXMGBNN7PzhCs8DYnAfMwb3b8ej6PWE3zbw+LALLRIPU/LeDLosO09sggRoIT41Ep6FEEL857wKFqbtpJlkypmb1yHBrBk1kKuH9yVrbhHXIqysuxJPG09uht2k7a623A+/n+I1KIpCpVZ5yFs2E0kJJnbMvUzQwwjsmzYl68oV6NzciA3R83CfC+3D91H44SJaLzrD01cp/7ZbCJFxSXgWQgiRLtg6u9BizHf4VK+NMTGRfT/OZv+CuSQlvv9Y76y2WVlZd+VbvaDPB6X8gBNFo1ClXT5ylXAlMc7I9tmXCQmIxKJwYbJt2ohFieIkxWp5fMiZTgE7KRG4krqzjrH76vPU3LIQIgNKl+FZUZQGiqIsiIiI+K+XIoQQ4l+k0+up0aU3tbr3RavXc+XgHtaNHsTrl+/fiuFo7siiWouo6lmVyIRIuu3vxq4Hu1K8Bo1GodqX+cle1IWE2CS2zfInNDAKnbMzWZcswaFdO1STQtB5ezpd2cG3STMYuOoEw7ZclX3QQnwC0mV4VlV1u6qqXe3s7P7rpQghhPgPFKxSg1bjpmDr4krQ/busHNKXx1fff6qghc6C6ZWn0zpvaxJNiQw+PpjFVxenuJWdVquhZqcCZC3kRHx0Ettm+hP2PBpFryfT8GFk/m4yil7Hq7vWlLl+nR2GEVw+d4yGc09wOygytbcthMgA0mV4FkIIIdyy56TtpJl4Fy5GbORrNk0YxbltG98bhLUaLUNKDcG3hC8AM/1mMuHshBS3stPqNNTuWhDP/I7ERiaybaY/4cFv9jfbNWqEx7x5oNUSetMGmzuRbDGMovTLzTSce5yVZx7LiYRCfKQkPAshhEi3LGxsaTxkNGW+aIGqmji+einbp08iPubdL+kpikKHAh2YWmkqZhoz1t1eR7/D/VLcyk6n11KneyGy5LYnJiKBbTP8ef3yzZHi1hUrknnyJACC/e2IfaRnvH4p05UZfLf1HD1X+RER8/792kKIjEXCsxBCiHRNo9FSvkU7Gg0ciZmFJXfPnWLV8P6EPn3y3rm1vGuxsOZC7Ax2HH16lC/3fsnL2Jcpqq8301K3pw+ZstsR9SqebTP9iXoVB4Bdgwa4DhkMwLPzTkSF2FNPe45dhmEEXj9JnVnHOP8oLOU3LYRItyQ8CyGEyBBylihN20kzcPbMyqtnT1k1vD+3T59477xibsVYUWcFWayzcCP0Bm13teVBxIMU1TYz11H/68K4ZrXh9cs4ts7wJzoiHgCnjh1x6tIZjCaennQglvx4KsFsMoylVtQWWvx0itkH78qx3kJ8JCQ8CyGEyDAc3LPQ+ttp5C1ficS4WHbMnMzRlT9jMr67y0U2u2ysqruKgk4FCYwKpN2udlx8cTFFtQ0WOhr0KYKzpzURwbFsm3mJ2MgEAFz698fuiy9Q4+J5slslPmtr9CQxWr+C+boZLNrvR5tFZwiKiEv1vQsh0gcJz0IIITIUvbk5db/2pUqHLmi0Wi5s38zmyWOIj4l+5zwnCycW11pMZc/KvE54TZd9XdjzcE+Kaptb6WnYpwiOma149TyaLdP8CA2MQlEU3MeNxbpKFYwREQQsv01i1TlgsKOW9gJ7zIcT//AstWcdY/+NF2m5fSHEf0zCsxBCiAxHURSK1W1Es5ETfjvWe83IgYS/CHrnPEu9JTMrz6RlnpYkmhIZeGwgByMOpqgzhoWNGQ37/hqgg2LYMPkC144FglZLlunTsChWjKTnzwn4bj1JrXZA5mJkJoQNhnE0i99C1+XnGPPLdekJLUQGJeFZCCFEhuWRryBtJkzDycOL0KcBrB7en8BbN945R6vRMqz0MAYUHwDA1vCtTDw7EaMp+WHWys5A08ElyFfeHWOiiaOrb7N3wTUSTDo85/+AIVcuEu7f5+ngiZhaboEyvdBhZLh+NYvNprH11FUa/3CKe8FRabp/IcS/T8KzEEKIDM3ONROtxk/Bu0hxYiNfs2H8MG4eP/zOOYqi0LFgR6ZUnIIOHWtvr6XfkX7EJsUmu67eoKVqu3zU7FQAvbmW+/4hrJtwjuAQFc9FC9Fnzkzs5cs89R2EWm0stFwD5vZU1fizz2IYlkHnaTDnBOvPP5Ge0EJkIBKehRBCZHgGSysaDxpFkVr1MSYlsWvuNE6uX4lqMr1zXu1stenl1gtbM1uOPDlCp72dCI0NTVHtXCXdaDG8FK7etkSFxbNluj+XL8aSZcFCtA4ORB87zvMRI1Bz14bux8GjJK5qKOsN4+lo2sLgTZfos/YSr+OkJ7QQGYGEZyGEEB8FjVZLta+6U/XLbiiKhjOb1rJj9hQSE+LfOS+nec7fWtldfXmVtrva8ijiUYpq27lY8IVvMYrW8EI1qZz95QF7t0fgNOMHFEtLIrb9QvCUqWDvBV/uhnJ90GJisH4tyw1TOXn5FvVmH8c/4FUanoAQ4t8g4VkIIcRHpWjtBjQeMhozCwvunD7O+rFDiQ5/dyjNbp+dlXVXkt8pP0+jntJ2d1v8g/1TVFer01CuSU4afF0YCxs9gbdfsXVjJAyZAXo9YUuWELp4MWj1UHM8tF4PFo5UUC6xz2IY7q/8aPbjaeYfuY9JekILkW5JeBZCCPHRyVakOK3GTcHWxY2ge3dYNbw/IY8fvnOOs4UzS2otoaJHRSLiI+i8tzP7H+9PcW2vAk60GFEKj7wOxEUlcvBQEs/bTcGk0RE8ZSrhW7a+GZi7FnQ/AV5lcVbDWGuYQHdlM1P23KD9z+cIjpSe0EKkRxKehRBCfJScvbxpM2Ea7rnzEvkyhDWjBvHA7/w751jqLZlVZRbNcjcjwZTAgCMDWH59eYprW9kZaNinCGUb50CjUbj5QM+VOlOIsXDh+YgRRB7+9YVGuyzQYQd81h8NJnz1G1hj/h237t2nzszjHLkdnJpbF0L8gyQ8CyGE+GhZ2tnTfOTE304k3Pr9ePx2bXtndwudRsfIMiPpW6wvKipTLkzhu3PfpaiVHYCiUShWKyuNfYth42ROWLQZF8qOJMi5GIH9viHGz+/NQK0Oqo+GtpvA0pnSXOWA5TByx/rTccl5Juy8QULSu198FEL8eyQ8CyGE+KjpzMyo+7Uv5Zq1QVVNHF62kIOLf8CYlPS3cxRFoXOhzkyuMBmdRsfKmysZcHQAcUkp30qRKbsdLYaXJEcxV5JMWm7k68j1bM152LMvcXfu/D4wZ/U32zi8K2BvesVqs4n0129k8fH7NJl/iocv332CohDi3yHhWQghxEdPURTKNm1FvT4D0er1XN6/my3fjSUu+t2HlNTLXo8FNRZgo7fhYMBBOu3rRFhcWIrrGyz11OpSgMpt8qDTawjKVIZzuXtyvfdIEgMDfx9o6w7tt0GlwShAH+1mNlpO5kXgI+rPPs5mv6cpri2E+LAkPAshhPhk5C1fieajJmFpZ//mSO8RvsRHhL9zTslMJVleZznuVu5cCblCu13tCHgdkOLaiqJQoEIWmg0tiaO7JTGWbpz1/opj38wnMex/ArlGC1WGQfutYOVKMdM1DloNp1iSP/3XX6b/uktExf/9t+ZCiH+WhGchhBCflMy589JmwnScPbMS9uwpNzev4umt6++ck9MhJyvrriSfYz4CIgNou6stl0Mup6q+Y2Yrmg0tSf4yLqgaPbccq7LVdyvRL/4Q4rNXfrONI1slbIzhLDf7jiFm69nmH0D92cd5JNs4hPhPSHgWQgjxybF1caXluClkK1IcY1wsG8cP5/rRg++c42rpypLaSyifpTyv4l/RaW8nDj5+95y/ozPTUqVjIaq38ERnjCXYzJu1o07w9HrI2wNt3KDdFqgyHEVR6K7ZyjarScSFPqHVwjMEhMakqr4QIvUkPAshhPgkGSwt+XzQKFwLFcOYlMSeH2ZwYu2Kdx7pbaW3Yk7VOTTJ1YR4Yzz9j/Zny90tqV5Dniq5aNo7N3bRAcQplmybc4Wzv9zHZPyfNWi0UGkQdNgO1pkoaLzBPovhuL2+RquFZ3gSJgFaiH+ThGchhBCfLI1Wi+dnVan2VQ8UjYazW9axY+Z3JMb/fVcNvUbP6LKj6VG4BybVxKhTo1h2fVmq1+BUOBeNB5XA+9lBUFUu7HrM1hn+RIb9YQ3en73ZxpGjKrbq/7F3l+FRXG0Dx/+zm2w8ISFYEiCB4E7Q4hQJVkqhuBUrUh5ocS9SvLRIgOJWnBb34u4aLLi7xbO75/2QwlsgCbvBAty/69oPmTk+u8m9kzPnPOFP+2F4PD5J/Sl7uPEoItH1CyGskySDZ03TqmmaNunx48cfuilCCCE+A3krVuGbbv0wODhydu9OFvbvQejD+FfV0DSNtnnb0q1gNwBGHhjJmENjElw/OiFOuXJSumc18p2cgCHqETdDHrNg0D4uHHlpGodzCqi/CLJXx0mFMc9+KK4Pg6k3eQ+3HsuOhEK8D0kyeFZKrVBKtXJzc/vQTRFCCPGZ8M0bQP1BI3FLmYpb588xt1cn7ly6kGCehtkb8kvxX9BreiYfn8zgvYMxq8RtaOJUpAg5e7ei0MGhJL9/gqhwI2smHmfbvDMYY/6zQYveBmpOhaxVcVahzLMfiuODU9SfvIc7TySAFuJdS5LBsxBCCPEhJPdJR/1fRuGVORtP799lft+unD+4N8E8X2X8il9L/4qtzpb5Z+bTc0dPYswxiarfNbAi6Xr8SO7jE/E//xc6TXF863UWDz3Ig5v/WV1Dbwu1pkPmSriqp8y3H4Lt/VPUn7KXu0+jElW3EMIyEjwLIYQQ/+Ho6sa3fX4hW4kyxERFsnTEIA6s/DvBKRlfpvuSCeUm4GjjyKoLq/hx84+J2o0QwL1ePVK0a0u6q/8QcOQ3XFw07l8PZdGQ/QTvvPH/7bAxQO2ZkKkCbuoJC+yHwN3TNJiyh/uhEkAL8a5I8CyEEEK8xMZgoFK7nyhWuyEoxdbZU9k4OSjBLb0LpynMlApTcLNzY+u1rbTZ2IbQ6IR3MIyP5w/tSFa3Di4PzxOwtQ8ZszpgjDazefZpNkw9SVTEv+2wsYPasyFjWZKpxyy0H4zpzhkaTNnLw7DoRNUthEiYBM9CCCFEHDRNo0jNulTt2A0bWwPH/lnLX0P6ERkaf0CcK0UuZlScQUqHlBy4fYBm65olajtvTdNI3acPLhUrontyH78lXSlVLRU2dnrOHbjDwl/28fDWv9M4bO2h7lzwK4WHesQC+8FE3T5Lw6l7eRyeuOkjQoj4SfAshBBCJCBL0RLU7he7pfeVE0eZ26czD2/diDe9v7s/MyvNxMfZh1MPTtF0bVNuhd2yul5Nr8drxHAcCxfGfPce9mN+omYbfzzTOvPkXiR/jzrMgxvPAmgHqDcffEvgqR6y0P4XQm+epdG0vTyOkABaiLdJgmchhBDiNdJkyhK7pXc6Xx7euMbcXp24Fnwi3vQ+Lj7MqjSLTO6ZuPj4Io3XNObyk8tW16szGPAJGodd9mzEXL7C057/o3qbLPhkdSfiSTRLfzvE/ev/3gk3OEL9BZDuC1KoByy0H8yD6+doMm0fTyMlgBbibZHgWQghhLCAa4qU1BswnAz5CxIZ+pRFg3onuKV3CscUTK84ndwpcnMz7CaN1zTm9IPTVterd3Ym3aRJ2KZLR2RwMLd/6kilFllJm92DiKcxLP3tMPeuPY1NbHCCBgshbRFSqXsssvuFu1fP8d30/YRFxT9fWwhhOQmehRBCCAsZHByp3qU3AVWqYzbFbum99++F8a7E4WbnxuTykymapigPIh/QbG0zDt85bHW9Np6epJs6BX0KT8L37OFOrx5UapWDdDmSExkaG0DfvfJvAG3nAg0WgU9B0nCXhfaDuX45hO9m7Cc8WgJoId6UBM9CCCGEFXQ6PaUbt6Rss9agaeyYP4tN0//AbDbFmd7R1pFxX46jfPryPI15Sqv1rdhxfYfV9RrSpiXd5MnonJ15um4dN9u3o2KD9PjmSk5UmJFlvx/mzuUnsYntXaHhEvDKjze3WWj/C5cvhtBi5gEiouNupxDCMhI8CyGEEImQr2JVqnXsht7GhiPrVrJq9AiMMXHPLTboDQwvOZwa/jWINEXSflN71l5ca3Wd9lmzknbSH+iTJSNs+3au1qtLmfJO+OXxJCrcyLLfj3D74rMA2g0a/Q1p8pKWWyy0/4Vz50NoNfsAkTESQAuRWBI8CyGEEImUuUhxvukxAIODI2f37OCvIf2ICg+LM62Nzob+X/SncfbGGM1Gum7ryuKzi62u0zF/fnwXL8YuSxaiL1/mar26FMt0j4z5UhAdYWT56MPcuvA4NrFDstgAOnUu0nOThfaDOX0uhO9nHyTKKAG0EIkhwbMQQgjxBtLlzE2dn4filMydqyePseDn7oQ+jHttZ03T6FygM+3ztUeh6L+7P9NOTLO6ToOPN77z5uISGIg5LIwb7X8gv3kXGQNSEh1pYvnoI9wIeRSb2NEDGi+HlDnw4zrz7Qdz4mwIbeccItpofpOuC/FZkuBZCCGEeEMpfTNQb+BI3NN4c/fyReb16cKDG9fjTKtpGq1yt6JX4V4A/HbwN34/+HuC23/HRefoiPdvo0jRsSMA90f/TvYT0/DPl5yYKBMrxh7l+tmHsYkdPaDJckiRjYxcY779YA6dDqH9vEPEmCSAFsIaEjwLIYQQb4FbylTUHTCc1P6ZeXL3NvP7duFWyNl409fNWpchJYag1/RMPTGVgXsGYornocP4aJqGZ+vv8RkfhM7JibB1a/Bf/TP+uVwwRplYOfYo107/exfcyTM2gPbMTCauMs9+CHtPhtBh/mGMEkALYTEJnoUQQoi3xNHVjdp9BuOXN4CIp09YMKAHF48cjDd91QxVGV1mNHZ6OxadXUT37d2JMVm/oYlLmTL4LlyAIX16os+cxnd2B/z9bTDGmFkZdIyrwf8G0M4pockKSO5PVi4z124oO46H8OPCoxJAC2EhCZ6FEEKIt8jW3p7qXfqQo9SXGKOiWDp8AMHbNsWbvlTaUkwoNwEnWyfWXlrL/zb/jwhjhNX12mXMiO+ihTiVKIH50UPSTm9HxlRhmGLMrBp/jMsn78cmdEkdG0B7ZCC7dpG5dsPYevQcXRYfw2S2buqIEJ8jCZ6FEEKIt0xvY0PFNh0pWL0WZpOJNUGj2L/ir3jTF0xdkKkVp+Ju586O6ztovaE1T6KfWF+vqytpJ04gecsWaCYj6RZ0w8/uGiajmdUTjnHp+L3YhK5e0GQluPuSUzvPHLthbDx8jm5LjmGWAFqIBEnwLIQQQrwDmqZRsn6xUXjBAAAgAElEQVRTyjRpCcC2OdPYMmsKyhz39IgcyXMwo9IMUjmm4tCdQzRf15z7Efetr1evJ2WnTniNHInO3g7fdUNIH3kCs1GxZuJxLh69G5vQzTs2gE6WjtxaCLPshrPm4Dl6LT0uAbQQCZDgWQghhHiH8leuTpX/dUGnt+HgqqWsHvcrJmPc85ozuGVgVqVZpHdNz+kHp2m6tik3Q28mql63qlVI/+ccbNOkIcOeCaS7vwezSbH2jxNcOPxvAJ0sbWwA7ZaWfNpZZtoNZ9m+c/RdfsLq1T+E+FxI8CyEEEK8Y1mLleKb7j9ja+/A6Z1b+XvYAKIjwuNM6+XsxYzAGWRxz8KlJ5dotKYRFx5fSFS9Djly4Ld4EY4FAsh4fDbprm/GbFasnXyCkIN3YhO5p49dhcPVmwLaGabbjWDJnrP0XxEsAbQQcZDgWQghhHgP0ufOS51+Q3B0S8blY4dZOKAnYY8expnW08GTaYHTyJcyH7fDb9N0TVOC7wcnql6b5MlJP20a7vXqkvHcYtJdWY8yK9ZPPcG5/bdjE3lkiH2I0Dk1hbVTTDP8yvxdZ/hl1SkJoIV4iQTPQgghxHuSKoM/9QaMIFmqNNy+EML8vl15dCvuaRmuBlf+KP8HxbyL8TDqIc3WNePArQOJqlczGEjTrx9p+vcn49XVpL+8BmWGDdNOcmbvrdhEyTNC05XglJKiupNMMYxi9o4zDFt7RgJoIf5DgmchhBDiPUqWOg31Bo4gVQZ/Ht2+yby+Xbh9ISTOtA42DowtM5aKvhUJiwmj9cbWbLu2LdF1u9epje+M6WR6shu/i6tQCjZOD+b07n8DeM9MsXegnVJQXHecSYbfmLb1NL+uPysBtBD/kuBZCCGEeM8c3ZJRu+9g0ufOR/jjRyzo34PLx47EmdZWb8uwEsOolbkWUaYoOmzqwOoLqxNfd0AAGRYvIpvTJfwurgDgn5nBBO+8EZsgZVZovBwck1NKd5SJht+ZtPkUo/85l+g6hfiUSPAshBBCfAAGB0dqdOtL1mKliImM4K+hP3N659Y40+p1evoW6UuznM0wKiPdt3dn5smZib4bbJsmDenn/kme3LZkuLAU0Ng8+zQntl2LTZAqe2wA7eBOWd1hxtmOIWjjKYI2x32HXIjPiQTPQgghxAeit7Gl8g+dCKjyNWaTkVVjRnBw1bI402qaxo8BP/JjwI8oFCMPjGTAngHEmK3fzhtAZ2+P1/BhFKqTF/8LfwOwde5Zjq77d2WP1Dmh8TKwT0YF/UHG2I7lt3UnWRYSLVM4xGdNgmchhBDiA9J0Oko3bkHJhs0A2DJrMtv+nB5vgNosZzNGlBqBnd6OxWcX03Zj20TtRgixAXny5s0o1qcOma+uBGDH35c4tPhobII0eaDxUrBzo5J+P6Ntg1geEskP8w4THm1MVJ1CfOwkeBZCCCGSgILVvqFSu5/Q6fXsX76EteN/w2SMO0AN9A1kWsVpeNh7sOfmHhqubsjVp1cTXbdzieKUCvof2R5uAmD3xvvsnfzvFBKvfNDob7BzpYp+L0GGsWw8dplvxu/i6oO416oW4lMmwbMQQgiRRGQvWZavu/bF1s6e4G2bWDpiINGREXGmzZ0iN3OrzMU/mT8XH1+kwaoGHL5zONF1G3x9KTW1O7m02DIOHDSx45clsXfAfQKg4V9gcCFQt4+FjsO5eesm1cbtYGfIvUTXKcTHSIJnIYQQIgnxyxtA7b6DcXBx5dKRgywa0JPwJ4/jTOvt7M3sSrOfrwXdfF1zVl5Ymei69c7OlAj6kYA01wE4etWdLR3/wBwZCWkLQrM1RBk8yGMOZrXLIJzCb9B42j6m7rgo86DFZ0OCZyGEECKJSe2fmXoDR+CWMhW3zp9jft8uPL5zK860zgZnxpUdR90sdYkxx9Bjew/GHxmf6GBW0+ko0q8RRfMZQZkJjsrMxpa/E3PrFqTOxaH8wyFFNrxjrrDOZQBZ1UUGrgym08KjRMaY3qTbQnwUJHgWQgghkiD3NN7UGziSFL4ZeHjzBvP6dOHOpQtxprXR2dCrSC+6F+qOTtMx4egEum3vRpQpKtH15/++AiUDk4Myc86pEBvbjifs4EGi7FNAs7XgWwLnmPsscxrEl7Yn+Ovwdb6duJsbj+KeZiLEp0KCZyGEECKJckrmTp1+Q0mXMzdhjx6y4OfuXD15LN70DbI1YGzZsTjaOLLm4hparGvB/Yj7ia4/V418lK3rB8rMhZSl2dx3EXY7d4FDMmi4BHLWwsYYzhTb4bRy3c3x64+pNnYHey8kvk4hkjoJnoUQQogkzM7RkRrd+5O5aAmiI8JZMrgvZ/fsiDd9SZ+SzKo0i9ROqTly9wgNVjfg/KPzia4/W5mMlG+WHQ3F5bQVuLsrlLuTJqP0BvhmMhTriGY20jN6LCNTruV+WBQNpuxl9u5LMg9afJIkeBZCCCGSOBtbW6r+rwv5KlXDZDSy4vdhHFqzIt70WTyyMK/KPHImz8n10Os0XN2QXTd2Jbr+zIW9qNgqF5qmuJq2HNtX3eHWsBEogPL9ofJIQKPWk1n87bMAzDH0WXaS7kuOE2WUedDi0yLBsxBCCPER0HQ6yjRpRfF6TUApNs/4g61zpqHM5jjTezp4Mi1wGuXTlyc0JpS2G9uy8MzCRNefMX9KqrTLi6aZuZmmKNsOGLjWow/KaIRCLaHOHLCxJ9+95exINxl3m2gWHLhK3Ul7uP0kMtH1CpHUvLfgWdO0rzVNm6xp2jJN0yq8r3qFEEKIT4WmaRT++lsC2/6ITq/nwIq/WD3uV4wxcW/R7WDjwMhSI2mRqwUmZWLgnoEM3z8ckzlxd4PT50yO75d6DAa455mbrZfTc/GHTrFL2WWrCk1WgIMHqe9sZ1fqkeR0jeDwlUdUHbuDg5cfvknXhUgyLAqeNU2bpmnaHU3TTrx0PFDTtDOapoVomtY9oTKUUkuVUi2BpkCdRLdYCCGE+MzlKPUlNbr1w9begdM7t/L30H5EhYfFmVan6eiQvwMDiw3ERmfD7ODZdNzckfCYxO0O6Oip8U33Qjg6aTxO5s/20ADOtmyP6elTSFsImm8Ad18c7p1gmX1/vk4bxt2nUdSdtJv5+668SbeFSBIsvfM8Awj87wFN0/RAEFAJyA7U0zQtu6ZpuTRNW/nSK+V/svb+N58QQgghEsk3T37q/DwUp2TuXDlxjAX9uvH0Qfy7/X3t/zWTyk/C1eDKlmtbaLK2CbfC4l47+nWSezlTs2cR3NxtCHX2YaeuHMFNf8B49y54+kPzjeCVH/2TK/wW2pU+uZ8QY1J0/+s4fZaeINoY91QTIT4GFgXPSqltwIOXDhcCQpRSF5RS0cB8oLpS6rhSqupLrztarGHAGqXUobfbDSGEEOLzk8ovI/UGjsTdy4e7Vy4xr3cX7l29HG/6gqkL8mflP0nvmp7TD07TYFUDTt4/mai6XZM7ULNnEVKksSfSIQV73Gpw7LufiL56FZxTQNOVkDkQLeIhzc934M9itzHodczec5mGU/Zy92ni16AW4kPSLF1GRtM0X2ClUirnvz/XAgKVUi3+/bkRUFgp9UM8+f8HNAH2A0eUUhPjSdcKaAWQKlWqgPnz51vTn7ciNDQUZ2fn917vx0rGyzoyXtaTMbOOjJd1PoXxMkZGELLmb8Ju3UBvsCNjpa9x8Uobb/owUxhT7k4hJCoEg2agsWdj8jjmsaiul8fLFKO4uiWGsPs26I0R5LwwG5pVxejjg2Y2kencH3jdXIdCY493M9pcK8ejKIWHvUb7fHb4uenfuP9J2afw/nqfPtR4lSlT5qBSqoAlad8keP4WqPhS8FxIKdU+MY2OS4ECBdSBAwfeVnEW27JlC6VLl37v9X6sZLysI+NlPRkz68h4WedTGa+Y6ChWjxlJyP7d6G1sqPRDZ7IULR5/elMM/Xf3Z9n5ZWho/BTwE01yNEHTtATriWu8TDFm1k8+xoVjD9CZY8h5cT4Bw9rjmD8/KAU7RsE/AwAID2hN46vVOHDlMQYbHUNq5KJmgM8b9z+p+lTeX+/LhxovTdMsDp7fZLWNa8B/v9b6ADfeoDwhhBBCJJKtwY5qP3Unb8UqmIxGVo4exsFVy+JPr7dlYLGBdMjfAYXi14O/0n93f2LMca/ckRC9rY6KrfOQvVhqzDpbjmVowJ5uf/B0yxbQNCjRCWr8ATobHA9OZIHnFBoVSEW00UynRUfpv+IkMSaZBy0+Dm8SPO8HMmma5qdpmgGoCyx/O80SQgghhLV0Oj1lv2tNifpNQSm2zJrMltlT410LWtM0WuRqwa+lfsVOb8eSc0tos6ENj6MeJ6JujdINs1GgUjrQdJzKWIcdQ5byaNm/oUGeutBgMRhc0Af/zcAnfRhRJS22eo3pOy/ReOo+HoRFv0HvhXg/LF2qbh6wG8iiado1TdOaK6WMwA/AOuAUsFAplbinDoQQQgjxVmiaRqHqtaj8Qyd0ehsOrvybVWNHxrsWNEAF3wrMCJyBp4Mne2/tpeHqhlx9cjVRdReu7k+JOpkAxQW/r9g2aS/3Z86KTZCxDDRbAy5p4Mouvj3agsX1fPB0tmP3hftUG7uDkzesD9yFeJ8sXW2jnlIqjVLKVinlo5Sa+u/x1UqpzEqpjEqpX95tU4UQQghhqWwlyvBN958xODhwZtc2/hrcl8iw0HjT5/TMydzKc8nknolLTy5Rf3V9Dt4+mKi6c5dJS4XmOdFpiqtpv2TL39e59ftolFKQOhe02AgpssG9M+RZW4s1dVzJkzYZ1x9FUHPCLpYflVmgIulKkttza5pWTdO0SY8fy7dPIYQQIrHS585LnZ+H4eTuwdXg4yzo140n9+7Gmz6NcxpmV5pNCe8SPIp6RMv1LVlxfkWi6s5UMBVV2ufFRq+4lbowW3bCtX4DUSYTuPlAs7XgWwJCb5NiUQ0WlQunVoAPkTFm/jfvMEPWnMJktmxRAyHepyQZPCulViilWrm5uX3opgghhBAftZS+Gag/cCQe3mm5d/Uy8/p05u6VS/Gmd7J1YkzZMTTI1oAYcww9d/Rk3OFxWLo613+ly56c6p0LYGeA+8lzsfVcGi7+1ANzdDQ4JIOGSyBnLYgOxbCgLiP8j9P/qxzodRp/bL1A0+n7eBQu86BF0pIkg2chhBBCvD2uKVJSd8BwvLNmJ/TBfRb068bVk8fiTW+js6F7oe70LNwTnabjj2N/0HVbVyKNkVbXndrPjW96FMbJSeOxW0a23c/FudY/Yg4LAxs7+GYyFOsIZiPasnY0iV7AnGaF8HAysP3cPaoH7eTMradv0n0h3ioJnoUQQojPgIOzC7V6DSJT4S+ICg9jyeC+nN65NcE89bLWI+jLIJxsnVh7aS3N1zfniemJ1XV7pHGiZq+iJPOwIczZmx3m0pxs/iPGhw9Bp4Py/aHySECDLYMpevJnlrcpRA4vVy7fD6fG+J2sOX4zkT0X4u2S4FkIIYT4TNgYDFTt2I18laphMhpZNWYEB1b+nWCe4t7FmV1pNl5OXhy7e4yRN0dy+sFpq+t28bCnZs+ipPSyI9I+Obsdq3Cs6U/E3Pw3KC7UEurMARt7ODwbn7XNWdwsN9XzehEebaLNn4dYdMD6FUCEeNskeBZCCCE+IzqdnjJNWlGyYTMAts6eyuaZk+NdCxogk3sm/qzyJ7lT5Oah6SGNVjdi7aW1Vtdt72xL9a6F8fF3Jsbgwr4U33KwRS+iLlyITZCtKjRZAQ4eELIBhz+r8XuVNHSpmAWAbkuOsVruQIsPTIJnIYQQ4jOjaRoFq31D5fad0eltOLR6GStHD8cYHf/DeZ4OnkyvOJ0iTkWINEXSZWsXxhwag1lZtzOgwd6Gqh0L4J/XHZONPYe867CvzWAijh+PTZC2UOxSdu5+cPMo2tTytMul+LFcZswKOsw/zOYzd96k+0K8EQmehRBCiM9UtuKlqdmzPwYHR87u2cGSwX2JDI1/LWiD3kD95PXpVrAbek3P5OOT6bCpA6HR8eeJi95GR4VWeclZPDVKZ8sx37rs6jyRsF27YhMkzwjNN4BXfnh0BaaW53+Z7tGyhB8xJkXr2QfZc+H+m3RdiERLksGzrPMshBBCvB/pcuahbv9hOLt7cO3UCeb368qTe/Hf2dU0jYbZGzKh3ARcDa5subaFBqsbcPnJZavq1XQaJRtko1CV9KDpOO1Xk20Dl/B4zbrYBM4poOlKyBwIEQ/RZlWnZ/oz1CuUliijmRYzD3D06qM36boQiZIkg2dZ51kIIYR4f1Kk96PeoJEk90nH/WtXmNe7M3cvX0wwT1GvosyvMh//ZP5ceHyBeqvqsev6LqvqjZ0+kpGSdf/dzjt9FbYE7eTB/IWxCQxOUOdPKNAMTFFoi5vyS4pNVM+ThtAoI42n7eP0LetX/xDiTSTJ4FkIIYQQ75erZ0rq9h+OT7achD58wPx+3bhy4miCedK6pmVO5TmUSVuGp9FPafNPG2adnGX1hiq5SqelYsuc6DQz13xKs2nBRW6P/yO2HL0NVBkF5QcAoPunH6OcZlAhqyePI2JoOGUfF++FJbrfQlhLgmchhBBCAGDv7EzNngPIXKQ40RHhLBncj1M7tiSYx8nWid/L/E7rPK0xKzMjDoyg987eRJmirKrbPyAVVTvkx0Zv5naqgmzaEsONwSNiVwHRNCjWAb6dAXo79IdmMkE3lHIZ7LkXGkXDKXu58Sgi8R0XwgoSPAshhBDiORuDgaodupK/cnXMJiOrx45k//IlCd5N1mk62uVtx6+lfsXBxoHl55fz3drvuBNu3aoYabN6UKNrIewMigce2dl0MjmXuvVFxcTEJshRI3YetGNy9Bc28YexD+W9jVx/FEHDKXu5+9S6gF2IxJDgWQghhBAv0HQ6yjRpSalGzQHY9ud0Ns+YhNlsSjBfBd8KzzdUOX7vOHVX1uXY3fi3AY9LyvSu1OpVFCcneOLqx5Zb2Tj3Q1fMEf/eWX62lF1yf/R3TvJHVFeqprjHhXthNJq6l0fh8S+3J8TbIMGzEEIIIeJUoGoNqvyvC3obGw6vXcHK34ZhNsYkmCeLRxbmVZ1HgVQFuBtxl6Zrm7IsZJlV9SZL5Uit3sVI5qEn3CkN26KKEdyqc+x23gAeGWKXskv3BbrQW4yN7EE991OcvvWUptP3ExplTGyXhXgtCZ6FEEIIEa+sxUpRs+cA7BydOLdvF+dW/UVMZGSCeTzsPZhUYRJ1stQhxhxD7529Gb5/OEaz5UGts7sdNXt9QUovO6LsPdhlqMihhj8SGRwcm8DRAxovhVzfosWEMTjyF35w2cqRq49oOfMAkTEJ3yUXIrGSZPAs6zwLIYQQSUfaHLmp238YTu4ehN64ytIRA4iJTnh+sa3Olt5FetO3aF9sdDbMDp5N241teRxl+d92eydbvu5ehHSZnYmxdeaAdwN2dhzL4xUrYxPY2ME3k6FkVzRlpnPMHwxynM+eC3dp++choo3W7X4ohCWSZPAs6zwLIYQQSYtnOl9q9x2MjYMjV04cY9mIQQlu5/3Mt5m/ZWqFqXjYe7D75m7qr6rP+UfnLa7X1qCnSocC5CnjhdLpOZ3hWzZP2s/NIcNRRmPsShxle0H1INDZ0NC8nCn2Y9l1+io/LjyCyWzdsnlCvE6SDJ6FEEIIkfR4ePmQ+avaOLi6cfnYYZb/+gvGmITnQAPkT5Wf+VXmk80jG1eeXqHB6gZsubrF4np1eh3F62SlbOOs6DTFde9SbDriSkjLH/5/HnS+htBwCdi58SV7WWA3mD3HTtPjr2OYJYAWb5EEz0IIIYSwmIOHJ7X7/IK9iysXjxxkxW9DML3mIUKANM5pmFlpJoG+gYTFhPG/Tf9j8rHJVm2oku0LL2p0KYCDg8Yj98xsM5fleL02RJ46FZsgQ2lovh7c0pFHO8dSu34cPLiXgauCrd64RYj4SPAshBBCCKt4pvPl296DsHdy5sLBfaz8fTgm4+sfBnSwcWB4yeF0yN8BgDGHx9B5a2fCY8Itrjt1Bjdq9y2KZxp7Ih082evTmP1tf+HxylWxCVJmjV3KzisfabU7/GX4meBda/htw9lE9VWIl0nwLIQQQgirpfTNQK3eg7BzciJk/25Wjx2J2fT6FS40TaNFrhaMLTsWJ1sn1l9eT5O1TbgResPiup3d7anZozD++T0x2dhzLEszdo7dyK2h/86DdkkFTVdBliq4aWHMNgzmypYZ/LHV8rnWQsRHgmchhBBCJEqqDP7U6jkQg4MjZ/fsYE3QqNdupPJMqbSlmFt5Lulc0nH6wWnqrarHgVsHLK7bxqCnQstcFPk6A6C46FeN7fs0LrZsHTsP2uAEdWZDkbYYNBO/G8YTtn4wf+65lLjOCvEvCZ6FEEIIkWip/TNTs+cADA4OnN65lXXjf7c4gM6QLANzq8zlC68veBD5gJbrW7LwzEKL69Y0jYBAX6q0zYOtLdxJGcD26OKcqtucyNOnQaeHwCFQaQRmdPxkuxi7Ve1ZdvBiYrsrhATPQgghhHgzXpmz8k33/tja2RO8fTPrJ45FmS1bY9nNzo2gL4NomqMpRmVk4J6BDNw9kBjT6x9CfMY3tye1ehTG1d2WUJd07PZuzJEWPXi86t950IVboas3lxidPbX020i5rD7/HD6TmK4KkTSDZ9kkRQghhPi4eGfNTo3u/bAx2HFy60Y2TB5ncQBto7OhU4FODC4+GIPOwMKzC2m5oSUPIh9YXL+HlxPf9i6Cd2Y3YgyuHMrehgMjlnB7+IjYedBZKmHbYi2htskpqgvGd+nX7Dt8KLHdFZ8xLSkv3VKgQAF14EDc85/MZjP37t3j0aNHmCx4QMEakZGR2Nvbv9UyP2UyXtaR8bKejJl1Pqbx0uv1JEuWDE9PT3S6D3M/Z8uWLZQuXfqD1P0xet14XTlxlL+H9scYE02e8pX5snkbNE2zuPzjd4/TcXNH7kTcIY1TGsaUHUNWj6wW5zebzOxYHMLxzdcA8Lm2iTwpb+Lz60hs3N1Rj65wd+JXpIy8yD3lxt2qM8hWsKzF5VtL3l/W+VDjpWnaQaVUAUvS2rzrxrwr165dQ9M0fH19sbW1teqD+TpPnz7FxcXlrZX3qZPxso6Ml/VkzKzzsYyXUoqYmBhu377NtWvXSJcu3YdukngL0uXMQ/WufVg6fABHN6xGp9dTpmkri/9O50qRi/lV59NxS0eO3T1Go9WNGFh8IIG+gRbl1+l1lKyTGU8fZ7b+eZprPmUJe3CKvLUbkWHsSOyzZsXzf1s4G1STzGEHcFpZh8tR40hfvM6bdFt8RpLktA1LhIWF4e3tjcFgeKuBsxBCiPdD0zQMBgPe3t6EhYV96OaIt8g3dz6qd+qF3saGw2tXsHX2FKs2KUnhmIJpFadRPWN1Ik2RdNnahTGHxmBWlk0DAchezIuvf8qPg5Oehx7Z2OPViBPfdeTxqlXoHJORseMadrpWxkGLJu3G77m7YRQk4f/Gi6Tjow2egQ/2Lz4hhBBvj/wu/zT55StAtZ96oNPbcHDVMrbPnWFVAG2nt2NgsYF0LdgVnaZj8vHJ9N7Rmxiz5Q8SpvFPxre9CuPp7USEQwoO5GjPscEzuD1iBDpNR8H2c1icrBk6FCl29ufpXz+C6fWbvYjPm/zGEkIIIcQ7kTGgMFV/7IZOr2f/8iXsXDDbqgBa0zQaZW/E+C/H42DjwIoLK+i4uSMRxgiLy3DxsOebrgXImD8FJhsHjuX8nsPrr3KlVSt0oU+o2m4ko5N1J0rZ4HJ8OpFz6kJUaGK6Kz4TEjwLIYQQ4p3JVLAoVf7XBU2nY+/fC9m9eK7VZRTzLsbUClNJZpeMbde28f2G73kcZfmKXLZ2eiq2zEnhrzKApuN8xq/Z/zAL52vXh/PnaN6mC/3ch/BQOWN/cQPGqYHw5KbV7RSfBwmehRBCCPFOZS5SnMrtO6NpOnYvnseevxZYXUauFLmYGTiTVI6pOHznMN+t+4674Xctzq9pGgUq+1KpdS5sbDVupyrI3hS1Od24NeZ/1tO9VVM6uf7KRXMqbO4cxzy5LNw+aXU7xadPgmfx3MOHD0mVKhXnz5+3Kl/r1q2pWrXqW2tH6dKl+eGHH95aeeLDadq06QvvjZd/TmoS+xn4HNSqVYtRo0ZZfFyIl2X9oiSB7X4ETWPngtnsW7bY6jIyJMvAnMpz8HPz49zDczRa04grT65YV0beFNTqXhCX5HY8dU3P/hwdCP55LFFBoxnSvBodXUZywJwZ3dMbqKkVIOQfq9spPm0SPH8g169fp1WrVvj4+Dx/2rxly5Zcu3YtzvSHDx9Gr9dTrFixV841bdoUTdNo0aLFK+e6du2KpmkWBSyDBw+mcuXKZMyY8YVyn708PT2pWrUqp0+ftrK379Z/22lra0uGDBno3LnzZ/P0vslkok+fPvj5+WFvb4+fnx+9e/fGaEz4oZfx48c/zxMQEMD27dutrvt1Yz969GjmzJmTqH49U7p0aTp16vRGZVjq5c/Atm3b+Oqrr/D29kbTNGbMmGFxWZaMr7XXILHteRtt6devH4MGDeLlzaviOy5EXLKXKENgm46gaWyfO4MDK/+2uozUTqmZGTiTnMlzcj30Oo3XNOb0A+v+LiX3dubbHgXxypyMaDs3DuX9kZMrTxL10/8Iql2IzvYDWGEqghYdivrzWzgyz+p2ik+XBM8fwMWLFylQoAAnTpxg5syZhISEMGfOHE6ePEnBggW5dOnSK3kmT55M27ZtOXHiBKdOnXrlfNq0aVmwYMELAaPRaGT27NkWrZ0aHh7OlClTaN68+QvHy5Urx82bN7l58ybr168nIiKCGjVqWN/pd+xZOy9cuMCgQYMYP348nTt3/tDNei46OvqdlT1s2DCCgoIYM2YMp0+fZvTo0QQFBTFkyJB48yxYsIAOHTrQs2dPDh8+zBdffEGlSpW4csa05xEAACAASURBVMW6OziQ8Ni7ubmRLFmyRPftfYrrMxAaGkrOnDkZPXo0Dg4OFpdlyfgm5hokpj1vqy25cuUiQ4YMr3wZiu+4EPHJUepLKrRqD8DW2VM5tGa51WW427szpeIUiqQpwv3I+3y39jv239pvVRkOzga+6pCXnKW8UTobTmVrzJHbqYho3pipZdMwwNCJIONXaMqEWtoGji2yup3iE6WUSnIvoBowyd/fX8UnODg43nNv6smTJ++sbKWUqlSpkvLy8lJhYWEvHA8LC1NeXl6qcuXKLxwPDw9Xbm5u6ujRo6pZs2aqU6dOL5xv0qSJqlKlisqXL5+aNm3a8+NLly5Vvr6+qnHjxqpKlSoJtmnRokXKw8NDmc3mV8r9rxUrVihAhYeHPz9Wv379F9JFRkaqDh06qJQpUyo7OztVuHBhtX379ufnzWazGjlypPL391cGg0F5e3ur7t27Pz9fqlQp1a5du+c/b9y4Ubm5uamJEyfG2fa42tmiRQuVOnVqi9q0evVq5ezsrGJiYpRSSp09e1YBqnXr1s/z9+zZU5UrV+6FPgwbNkxlyJBB2dvbq5w5c6rZs2e/0IfWrVurTp06KU9PT1WgQIHn5972+6tKlSqqcePGLxx73TUvVKiQatGixQvH/P39X7gOlnjd2L98/uWfX/deadKkiQJeeF28eNGqNloqrs/Afzk5Oanp06dbVJYl4/um1yCh9vz3PfY229K/f39VrFixV+qL77g13uXv9NfZvHnzB6v7Y/S2xuvI+tVqZO0qamTtKurw2pWJKiPKGKV+2vyTyjkjp8o/K7/65/I/iSrn+NZrKqjNP2rc9/+oubXGqGMBRVXw3CUq98/r1LCeLZTq56rMP7srdeJvq8uW95d1PtR4AQeUhXFqkrzzrJRaoZRq5ebm9qGb8tY9ePCAtWvX0q5dOxwdHV845+joSNu2bVmzZg0PHz58fnzx4sWkT5+e3Llz06hRI2bNmkVMzKvrXDZv3pxp06Y9/3natGl89913Fm0is337dgICAhJM+/TpUxYsWECuXLkSvOvVtWtXFixYwLRp0zh8+DC5cuUiMDCQmzdjn1zu2bMnAwcOpEePHpw8eZJFixaRNm3aOMtasmQJNWrUYNKkSXz//fev7cczDg4OL4xRQm0qUaIEkZGRPNsKfsuWLXh6erJ58+bn+V/eLrR3795MnTqVoKAggoOD6dGjB99//z2rVq16nmbOnDkopdi+fTuzZs2Kt62DBw/G2dk5wVdC/84vXrw4mzdvfj6dJjg4mE2bNlG5cuU400dHR3Pw4EEqVKjwwvEKFSqwa9eueOux1Mtjn5DXvVdGjx5N0aJFadiw4fP/gMT3XnnTcbTkM2AJS8b3XV+Dd9WWQoUKsW/fPiIiIiw6LkRC8pSvRNlmrQH4Z9oEjm1ca3UZBr2B4SWHUztzbaLN0fy45Uf+Pmf9VJCcJb35+sd82DvZ8CB5Dg5kb0/Y8NHMMe3nT/03jDbWiL0DvaQ5nFljdfni0/LRbs/9Mt/uq16f6B24NLSKVenPnTuHUops2bLFeT579uwopTh37hyFChUCYMqUKTRq1AiAUqVK4ejoyPLly6lZs+YLeevXr0/nzp05d+4cLi4urF27lrFjx9K3b9/Xtuvy5cukSZPmleNr167F2dkZiN3VMW3atKxevTrecsLCwpgwYQJTpkyhSpXYsZk4cSKbNm0iKCiI7t2789tvv/H777/TrFkzAPz9/SlatOgrZU2aNIkuXbqwePHiV/6wJ2Tfvn3MnTuXL7/80qI2DRo0iPz587N582aKFCnCli1b+OGHHxg6dCg3b97Ezc2N/fv3M3z48OfljRo1ivXr11OiRAkA/Pz82LdvH0FBQc/r8PPz49dff31te1u3bk3t2rUTTOPt7R3vuW7duvH06VOyZ8+OXq/HaDTSq1cv2rZtG2f6e/fuYTKZSJUq1QvHU6VKxcaNG1/b3oS8PPYJseS6uLm5YTAYcHBwIHXq1AmW96bjGN9nwFqWjO+7vAbvsi1eXl7ExMRw48aN5/PCEzouxOvkq1gVs9HEllmT2TB5HJpeR64ylv++B9Dr9PQu0hsPBw8mHp1I3119eRT1iO9yfmdVOV6Z3Pm2R0FWTzjG/eupOBjQhRwbp7MgYwgdM9XELjqG1jYrMS9ojK7+PPAvZ1X54tPxyQTPH5v47m6pfxePNxgMAISEhLBz507mzZv3PF+DBg2YMmXKK8Gzu7s7NWrUYNq0aSRLlozSpUtbNN8ZICIi4pU/ngAlS5Zk0qRJQOxd8/Hjx1OhQgX27t0b5x3A8+fPExMT88KDjXq9nqJFixIcHExwcDBRUVGvDa6WLVvGH3/8wbZt2+IMrF/2LMg3Go3ExMRQvXp1xo4da1GbIPahtC1bttCjRw+2bt1Khw4d2LRp0/O70La2ts+/zAQHBxMZGUlgYOAL1zEmJgZfX9/nPwcEBLy23QAeHh54eHhYlDYuCxYsYNasWcydO5ccOXJw5MgROnTogJ+f3ytz2P/r5fegUipRd10TGvuEWHJdrPGm4xjfZyCxLBnft3UN3ldbnv3H6eU7zPEdF8ISAVWqYzab2DZnGuv/GItOpydHqdd/Af8vTdNol7cdyeySMXTfUEYdHMWDyAf8FPCTVZ8pV08HvukSwD8zT3Hh8F2O5mqD//mljHk8hQGl22L3IIbvbNZhmlcffcPF4FfS2u6KT8AnEzxbewc4IU+fPsXFxeWtlfdfmTJlQtM0Tp48yddff/3K+VOnTmFjY4Ofnx8Qe9fZZDK9EAQ/C7CvXr36SgDbrFkzmjRpgrOzMwMGDLC4XZ6eni9MFXnG0dERf3//5z8HBATg5ubGpEmTGDhw4Cvpn7Utrl9WmqZZvLNU7ty50TSNqVOnUqRIkdf+8nsW5Nva2uLl5YWtra3FbYLY4PnZFIynT58SEBBA6dKl2bx5MylSpOCLL754XqbZbAZgxYoVr3w5+W+9Tk5OFvV18ODBDB48OME0a9aseX6X+2VdunShc+fO1K1bF4h9gOvy5csMGTIkzuDZ09MTvV7PrVu3Xjh+586dRAWPCY19Qiy5LtZ403GM7zNgLUvG921fg/fVlgcPHgCQIkUKi44LYamC1b7BbDSyY/4s1k0YjU6vJ1vx0laX0yBbA5LZJaP3jt7MODmDR1GP6Fe0HzY6y8Mdg70NgS1zsn/VRfavukSI/zdEXttE/52TmVClI39eMNKAf4iZ8y22jZdC+tff4BGfliQ55/lT5uHhQWBgIOPHjyc8PPyFc+Hh4QQFBVGjRg3c3NwwGo3MnDmTIUOGcOTIkeevo0ePkjt3bqZPn/5K+V9++SUGg4F79+7FGZzHJ1++fBbd7dM0DZ1O90rbn/H398dgMLBjx47nx0wmE7t37yZ79uxkz54dOzs7/vkn4XUz/fz82LJlC+vXr6dVq1avDbqfBfnp06d/JXh7XZsASpQoQVRUFMOHD6d48eLo9frnwfPL852f9eHy5cv4+/u/8EqfPn2C7YxL69atX7i+cb0KFCgQb/7w8HD0ev0Lx/R6/fMg/2UGg4GAgAA2bNjwwvENGzbwxRdfWN3+hMY+IZZcl2ftja8v//Wm42jpZ+B1LBnft30N3ldbTpw4gZeX1ytBdXzHhbBG4Rq1+eLbBihlZs24UZzZbf3ymQBVMlRhTNkx2OvtWRqylJ+2/ESkMdKqMjSdRqFqGajYMic6vcY1n7Kcf+TJDxvGc69wHxYZS2JriiRq5jeYrli3yof4+H0yd54/JkFBQRQtWpRy5coxaNAgMmXKxPnz5+nVqxe2traMGTMGgFWrVnHv3j1atmxJ8uTJXyijbt26TJgwgd69e79wXNM0jh07hlIKOzs7i9tUsWJFunXrxv3791+oKyoq6vkdqYcPHzJu3DhCQ0OpVq1anOU4OTnRpk0bunfvjqenJ35+fvz222/cvn2btm3b4uLiQocOHejRowd2dnaULFmS+/fvc/DgQdq0afNCWRkyZGDz5s2ULl2aVq1aMWnSpETdkXxdmwCcnZ3Jnz8/c+bMYejQoQAULVqUq1evcvHixefznQFcXFzo3LkznTt3RilFyZIlCQ0NZc+ePeh0Olq1amVV+950ukG1atUYOnQofn5+5MiRg8OHDzNq1CgaN278PM24ceMYN27c84cKf/rpJxo1akShQoUoVqwYEydO5MaNG7Ru3TrR7bCWJdcFwNfXl/3793Pp0iWcnZ3x8PBAp3v1e/+bjmNcn4HQ0FBCQkKA2P84XLlyhSNHjuDh4fH8vw4vjy1YNr6JuQaWtmfMmDGcPXv2rbdl+/btBAYGvtKu+I4LYa2itephNpvYs2Q+q8aMQKfTk6mw9V8oS/iUYHKFybT7px2br26m9cbWjC07FheDdf9V9g9IicloZuP0YM7518Lh+ES+XvQ7h1qPZOXaDlRlN+HTq6M1XYFDesum6olPgKXLcnyIV0BAQLxLinzMS9UppdTVq1dVixYtlJeXl9LpdApQxYsXVw8ePHieplq1aqp8+fJx5j9//rwC1Lp16+JcLuy/Xnf+mSJFiqhx48a9kI//LBHm4uKiChYsqBYvXvxCvoSWqjMYDK8sP2YymdSQIUOUn5+fsrW1VT4+Pqpnz57Pz7+8VF1ISIjy8fFRLVu2jHMZMUv697o2KaVUt27dFKD279//QlscHR1VdHT0C2nNZrMaM2aMypYtmzIYDMrT01OVK1dOrV+/Ps4+/Nfbfn89efJEdejQQaVLl07Z29srPz8/1aNHDxUREfE8Tb9+/VTsx/3/BQUFqfTp0yuDwaDy58+vtm7d+sL56dOnv3ZpOGvfewktVRffdTlz5owqWLCgcnBweKdL1Sn16mdg8+bNryyVB6gmTZo8TxPX2Cr1+vG1JM3L1yCx7XkbbYmIiFCurq5q9+7dFh23lixV9/F41+NlNpvVtj+nq5G1q6hR9b5S5/Yl/r117sE5VXZBWZVzRk5Va3ktdTf8bqLK2bv8vBr3/T9qQos1am9AOXW5WXO1N/iy2tCvvFL9XNWjn33UnZCDceaV95d1Poal6j54gJzQ61MOnl82ZswYZWtrq5YuXfre635mzZo1KnPmzMpoNFqV70OM18fsYxmvvn37quzZsz9f//pDel9jltjPwLuS2GvwLsZr3LhxcX6Zj++4tSR4/ni8j/Eym81qy+yp/wbQ1dX5g/sSXda1p9dUlb+qqJwzcqpKSyqpK0+uJKo966acUOO+/0dN/u4vdThXYXWlTVt1/todtXPAl0r1c1X3+6VVZ04ceCWvvL+s8zEEzzLnOYlo3749c+bMITg4+IM9sR4YGEi7du3i3SJcfF5Wr17NuHHjsLH5fGZ3JbXPQFK6Bra2tnGuohLfcSHehKZplGzwHfkrfYXZZGT5r79w6cjBRJXl7ezNzMCZZPPIxtWnV2m8pjFnHpyxuj1lG2clTUY3ogxuHMvbjsdbdmAYMZisbRdyxJAfDx6TbGFNduzdl6h2io+Hpixc/eBDKFCggHq2ccXLTp06Fe9ayW/qXa628SmS8bKOjJf1ZMys8zGO17v8nf46Lz8ULBL2PsdLKcWm6RM5sm4VeltbKrRqT/aSZRNVVmh0KB02d2DfrX242Low7stx5E+V36oyIkKjWTzsIE/uRuD58CS5jk7A7auqJO/bk2vjq+MffoTrKjnbi82iTvliaJom7y8rfajx0jTtoFIq/qfK/0PuPAshhBAiSdI0jbJNvydvxSqYYmJYEzSKTdP/wGQ0Wl2Ws8GZ8eXGUy5dOZ7GPKXVhlZsvbrVqjIcnA1UbZcbO0cb7rnn4HyWb3myfAUPh/1KhvbLuemaG2/tPl/saMqIRZswml6/UpD4+EjwLIQQQogkS9PpKPtda8q1aIdOb8PhtStYNLAXYY+sX5fdTm/HyFIjqZmpJlGmKDps7sDy88utKsM9tROB3+dCp9O4kqYU19OV4dGixdwZOZbUbVbw0D0X6XR3qXWiLT9OW0eEMen+h18kjgTPQgghhEjSNE0jT/lK1Pl5CM7uHlw/fZI53Ttw4+wpq8vS6/T0K9qPFrlaYFImeu3oxayTs6wqwyeLO6UbZgXgbMZaPEiRi4d//smdsZNJ1nI54R7ZyaC7RfurnQjafZtrD+PeG0F8nJJk8KxpWjVN0yY9fvz4QzdFCCGEEEmEV+ZsNBw6Gu+sOQh9+IAFP/fg6IbVFu9e+4ymaXTI34EuBboAMOLACEYfGm1VOdm+SENAYHqUgpN5WhPqmpYH06Zxb8ocHJuvJNojC5l11xkeM5jG49Zx9Oojq9ookq4kGTwrpVYopVq5ubl96KYIIYQQIglxSubOt31+IV+laphNRjZOGc+6iaMxRkdbXVbjHI35pfgv6DU9U45Pof/u/pjMJovzF/4qAxnzpyTGCCeLdSPKPhn3xk/g3pwlGJqtxOThT3bdZX6LGUDzSf+w5vhNq9sokp4kGTwLIYQQQsRHb2ND2abfU+mHTtgY7Di5ZSPz+3Xlyb07Vpf1Vcav+L3M79jp7Vhybgmdt3YmyhRlUV5Np1GuaTZS+bkSFqFxOnAAJr2Bu7/9xv3Fq9E3XUG4fSry6C7whzaEzn/uZOLW81bfKRdJiwTPQgghhPgoZS9RhnoDR+CaIhW3L4Qwp3tHrpw4anU5pdOWZlL5SbjYurDxykbabmxLaHSoRXltDHoqt8mNS3J77j/Sc6HmMBQad4YO4+GqrRzNOwjl5kOA7hzTDCP4fc1Rui85ToysxPHRkuBZCCGEEB+tlL4ZaDj0d3zz5Cfi6RMWD+rD/hV/WX13N3+q/EwPnI6ngyf7bu2j2bpm3I+4b1FeR1cDVdvlwWCv5+odA7caDQXgVv8BaIdC0JqsAJc0FNadZqphFEsPnKfp9H08joixur/iw5PgWQghhBAfNQdnF2p070fhGnVQysy2OdNYOXo40ZHW7dibxSMLsyrNIq1LWk49OEWTtU24HnrdorweXk4EtsqFptM4ddWZp98NAMB19hwe7wyGJivAKSXFdMeZ6jCGfSG3+Wb8Tq7cl5U4PjYSPAshhBDio6fT6SletxFfdeqJwcGBs7u3M7dXJx7etCz4fSatS1pmVZpFFvcsXH5ymcarGxPyMMSyvNk9KFUvMwAHL3tibt4DTSludO/Ok4MXoclycExOcXWI6c4TuHz3MTXG7+Tg5QdW91d8OBI8i+cePnxIqlSpOH/+vFX5WrduTdWqVd9aO0qXLs0PP/zw1soTH07Tpk1feG+8/HNSk9jPwOegVq1ajBo1yuLjQnwomQp9Qf1fRuHh5cP9a1eY0+NHzh/ca1UZng6eTA+cTkCqAO5E3KH5+uacf2TZ74UcJbzJWz4dZrNi1w1f7gZ+CyYT1zt35mnwbWi0FOzdKG7czRyPaTwKi6De5L0sP3ojMd0VH4AEzx/I9evXadWqFT4+PhgMBry9vWnZsiXXrl2LM/3hw4fR6/UUK1bslXNNmzZF0zRatGjxyrmuXbuiaZpFAcvgwYOpXLkyGTNmfKHcZy9PT0+qVq3K6dOnreztu/Xfdtra2pIhQwY6d+5MWFjYh27ae7Ft2za++uorvL290TSNGTNmWJRv/Pjx+Pn5YW9vT8D/sXfmYVVV6x//HOAcZlAEQUQRRU0ESlADR8oJxzK95nXCWZwupaRilpVep2uaCg4IOER2TS21VMQBFM1EzRlMcAITNQWTeVy/P/xxrgc4h8MkWvvzPPt5OGt493e9a6/Du9dZe213d2JiYip87vJ8v2rVKsLDwyts93m8vLyYOXNmlWxoS8kxAJXzU1BQEK6urpiZmWFmZoanpyf79u1TKfPZZ5+pjC+ZTIaNjU25tiuqp7q0zJ8/n4ULF1Jy/3116RIStUm9ho0Y9u8VOLbzJC87i93LFnDyu28QRdo/pGeqMGV99/V0sO1Aak4q4w6O4+afN7Wq22FgM5q+YUVedgHXdL0wHjUB8vP5/V9+ZNxMh5E/gMIUj6xodjYIJ7+ggH99e541RxKknTheAaTguRa4desWbdu25cqVK2zZsoXExETCw8O5evUq7dq14/bt26XqbNy4kSlTpnDlyhXi40u/UalRo0Zs375dJWAsKCjg66+/pnHjxuVqysrKIiQkhHHjxqmkd+/enZSUFFJSUoiMjCQ7O5uBAwdWvNE1TLHOmzdvsnDhQtauXYu/v39ty1KSV4n9R7UlIyMDZ2dnVq1ahaGhoVZ1tm/fjp+fH3PnzuX8+fN06NCB3r17k5SUVOHza/K9ubk5derUqbDN2qCsMVBZP9nZ2bF06VJ+/fVXzp49y9tvv827777LpUuXVMq1bNlSOb5SUlK4fPmyRruV0VNdWlxcXGjatGmpmyF16RIStY2+kREDZs6l09BRIJPxy65v+WHZF+RkareLBoCBngGr3lqFRwMPHuc8ZtzBcdz681a59WQ6MrqPdaK+vSn5mXBGrwtm/xyOyMvj7tRpZP5eCCN2gtyYNmkHiWi6Cx1ZEV8eus7MHRfJLdB+r2mJF48UPNcCU6dORUdHh8OHD9OtWzcaN27MW2+9xeHDh9HR0WHq1Kkq5bOzs9m2bRsTJkxg8ODBhIaGlrLp6upK8+bN+e6775Rp+/btw8DAAC8vr3I17d+/Hx0dnVIz2/r6+tjY2GBjY4Obmxsffvgh165dIztb/UMYubm5fPDBB1hbW2NgYICHhwcnTpxQ5gsh+PLLL2nevDn6+vrY2dkREBCg1t6RI0eoU6cOGzZsUFumWGejRo0YNmwYw4cPZ/fu3VppOnDgAKamphQUFACQkJCATCZj8uTJyvoff/wxPXr0UGnDsmXLaNasGYaGhri4uKgED15eXkyePBl/f3+srKzK/MWguujTpw+LFi1i8ODB6OhoN6RXrFjB6NGjmTBhAq1atWLNmjU0aNCAdevWVfj8mnxf3jKN8q6V0aNHc+zYMTZu3KicES3r5rI6KGsMVNZP77zzDr1798bR0ZEWLVrw73//G1NTU06dOqVSTk9PTzm+bGxssLKy0mi3MnqqU8uAAQP49ttvtU6XkKhtZDIZbw4cwqCAzzEwMeXW+bN8E/AhfyTd1tqGgZ4Bq99eTXub9jzKfsS4g+O48/ROufXkCl36THFFbgT3bz7lSsN3MR88GJGTw13fyWQ91odh20HPkJb3fiC6dQSGch2+//V3RobGkpZZc5MuElVDCp5fMKmpqURERDB16lSMjIxU8oyMjJgyZQoHDhwgLS1Nmb5z507s7e1xdXVl5MiRbN26lfz80tvbjBs3jrCwMOXnsLAwxowZg0wmK1dXTEwM7u7uGsump6ezfft2XFxcNM5wzpo1i+3btxMWFsb58+dxcXHB29ublJRnb1aaO3cuCxYsICAggKtXr7Jjxw4aNWpUpq1du3YxcOBAgoODmTRpUrntKMbQ0FDFR5o0de7cmZycHM6ePQtAdHQ0lpaWREVFKetHR0er3ITMmzeP0NBQgoKCiIuLIyAggEmTJqn8HB4eHo4QgpiYGLZu3apW66JFizAxMdF4VGZJhTry8vI4d+4cPXv2VEnv2bMnP//8c5Xtl/S9Jsq7VlatWoWnpycjRoxQzoiqu1aq6seSY6C6/FRYWMh///tfMjIy6NChg0rezZs3adiwIQ4ODgwdOpSbN9X/JFwdeqqqpX379sTGxpa6eVaXLiHxstDkdTdGLF6JVZOmPHmQwrZ5M7l28pjW9Q31DFnz9hraWrflj+w/GHtwLMlPk8utZ2yuT+MuMuQGuiSefUhyOx/M+venKCuL5ImTyM6ygH9uA119GieGE/PGUaxNFcTeSuW9dT9z69HfY/nhq4ZebQuoNj6rvld5m1bovBVb55eQ8Gw9U6tWrcrMd3JyQghBQkIC7du3ByAkJISRI0cC0LVrV4yMjNi7dy+DBg1SqTts2DD8/f1JSEjA1NSUiIgI1qxZw6efflqurjt37tCgQYNS6REREZiYmACQmZlJo0aN2L9/v1o7mZmZrFu3jpCQEPr27QvA+vXrOXr0KEFBQcyZM4eVK1fy1VdfMXbsWAAcHR3x9PQsZSs4OJiPPvqInTt3lgoYNBEbG8u2bdvo1q2bVpoWLlyIm5sbUVFReHh4EB0dzbRp01iyZAkpKSmYm5tz5swZli1bprS3YsUKIiMj6dy5MwAODg7ExsYSFBSkPIeDgwNffvlluXp9fX0ZMmSIxjINGzbUuv3l8ejRIwoLC7G2tlZJt7a25vDhw1WyXdL3mtCmX8zNzVEoFBgaGpa7Hriqfiw5Bqrqp8uXL+Pp6UlOTg4mJib88MMPuLi4KPPffPNNNm/ezGuvvcbDhw9ZuHAhHTp04OrVq9SrV6+UvaroqS4ttra25Ofnc+/ePZV14erSJSReJszr2/DPL5ZxeGMQcTFR7Fv9H+7fTKTLsNHo6OqWW99IbkRQtyAmH57Mrw9/ZWzkWMJ6hdHItOwb+mIM6sjoNd6ZfUEXOXsgCbORfpjm5ZF+8CDJY8fReOtWDIZshe0jsLwczOH2RgxJ6E58ylPeW3uSHb4dcKxvUl1ukKgG/jrB8yuGuhne4gcFFAoFAImJiZw8eVL5k6hMJmP48OGEhISUCp7r1q3LwIEDCQsLo06dOnh5eWm13hmeLQ0p+U8ZoEuXLgQHBwPPZs3Xrl1Lz549OX36dJkzgDdu3CA/P1/lp29dXV08PT2Ji4sjLi6O3NzccoOrPXv2sGHDBo4fP15mYF2S4iC/oKCA/Px83nnnHdasWaOVJni2zCI6OpqAgACOHTuGn58fR48eVc5Cy+Vy5c1MXFwcOTk5eHt7q/Rjfn4+TZo0UX52d3cvVzeAhYUFFhYWWpWtTkpeg0IIrX6lKIkm32tCm36pCFX1o7oxUFk/tWzZkgsXLvDkyRN27dqFj48P0dHRODs7A9C7d2+V8h4eHjRt2pQtW7YwR083OgAAIABJREFUY8YMtXYro6e6tBT/4lRyhllduoTEy4Zc3wDvqTOwcWxB9NYQzv30Aw9vJtLvg9kYmZf/fIaR3Ii13dcy+fBkzj88z7iD49jkvYmGJponOOyd69H5/RYc/+91orddp//UjzHJyyMjKoqkMWOwD/8a/cFhsGM0prFfsaeLIeNN3+b49T/wCYvl+ykdsDYzqC43SFSRv07wXMEZYE2kp6djalqh+Wetad68OTKZjKtXr/Luu++Wyo+Pj0dPTw8HBwfg2axzYWGhShBcHGAnJyeXCmDHjh2Lj48PJiYmfPHFF1rrsrS0VFkqUoyRkRGOjo7Kz+7u7pibmxMcHMyCBQtKlS/WVtY/c5lMpvVTxK6urshkMkJDQ/Hw8Cg3OCgO8uVyOba2tsjlcq01wbPguXgJRnp6Ou7u7nh5eREVFYWVlRUdOnRQ2iz6/6e1f/zxx1I3J8+f19jYWKu2Llq0iEWLFmksc+DAAeUsd1WxtLREV1eX+/fvq6Q/fPiwzOCxPDT5XhPa9EtFqKofS46BqvpJoVAox07btm05c+YMK1euLPOZBQATExNat25NQkKCWn2V1VNdWlJTn+1FW3I9tLp0CYmXEZlMRhvv/ljZO/DjyiUkx13m64APeGfGXGwcW5Rb31huzNpua5l0eBKX/rj0LIDutYkGJqV/vX0eFy87njzM4tLRu0SExPPe3EWIPH8yT54kafSzAFrxXjB8PwHF8cWEvK3PkOz2XEh+wuhNZ9g+yQMzA+2+XyVqFmnN8wvGwsICb29v1q5dS1aW6luFsrKyCAoKYuDAgZibm1NQUMCWLVtYvHgxFy5cUB4XL17E1dWVTZs2lbLfrVs3FAoFjx49KjM4V0ebNm20mu2TyWTo6OiU0l6Mo6MjCoVC5aGvwsJCTp06hZOTE05OTujr63PkyBGN53FwcCA6OprIyEgmTpxYbtBdHOTb29uXCt7K0wTQuXNncnNzWbZsGZ06dUJXV1cZPJdc71zchjt37uDo6Khy2Nvba9RZFr6+vir9W9bRtm3bCttVh0KhwN3dnUOHDqmkHzp0qNQ6WG3Q5HtNaNMvxXqLtNheqqp+LDkGqttPRUVF5Obmqs3Pycnh2rVrZS6fqm49ldVy5coVbG1tSwXr6tIlJF5m7Fo5M3LJKhq0eI2Mx4/47/xZXD4aqVVdE4UJ67uvx8XShd8zfmfswbHcz7xfbr2Og5vTxKUeuVkF7A+Ox3LpCozat6fg4UPujB5NvoUnvBMEgOLoZ3zjeoGmlsbEpzzF9+tz0i4cLwlS8FwLBAUFUVhYSPfu3Tl69CjJyclER0fTo0cP5HI5q1evBp7tlvHo0SMmTJiAs7OzyjF06FDCwsJKBRUymYxLly5x69Yt9PX1tdbUq1cv4uPjefz4sUp6bm4u9+/f5/79+8THxzN9+nQyMjLo379/mXaMjY2ZPHkyc+bMYf/+/cTHxzN58mQePHjAlClTMDU1xc/Pj4CAADZt2sSNGzeIjY0tc7eApk2bEhUVRUREhFYBtDrK0wTPZtrc3NwIDw/nrbfeAsDT05Pk5GROnz6tEjybmpri7++Pv78/YWFhJCYmcuHCBdavX69c4lIRLCwsSgXhJQ9ND2hmZGQog8OioiKSkpK4cOGCyvZlgYGBvPbaa8rPM2bMYPPmzYSEhBAfH4+fnx/37t3D19e3wvorizb9AtCkSRPOnTvH7du3efTokdpAuqp+LGsMaOOnkr4FmDNnDjExMdy+fZvLly8TEBBAdHQ0w4cPV5bx9/fn2LFj3Lp1i9OnTzN48GAyMzPx8fFRq1FbPc8vGapOLTExMXh7e5fSpS5dQuJlx8SiHu/PX8zrPfpQWFBA5IbVHNoYSIEWDz2bKkxZ32M9reu15m7GXcYeHMuDzAca6+joyOgxrjWWjUz4849sIjYnYLsmEMM2bSi4l8Kd0WPIb9AN+n0FgPGRuXzX5SFWpvr8fOMx/jsuUVQk7QNd6wghXroD6A8EOzo6CnXExcWpzasqT58+rTHbxSQnJ4vx48cLW1tboaOjIwDRqVMnkZqaqizTv39/0aNHjzLr37hxQwDi4MGDwsfHR/Tt21ftucrLL8bDw0MEBgaq1AOUh6mpqWjXrp3YuXOnSr1hw4ap2M/JyRF+fn6ifv36QqFQiDfffFPExMQo8wsLC8XixYuFg4ODkMvlws7OTsydO1eZ37VrVzF16lTl58TERGFnZycmTJggioqKKtW+8jQJIcTs2bMFIM6cOaOixcjISOTl5amULSoqEqtXrxatWrUSCoVCWFpaiu7du4vIyMgy2/A81X19RUVFqfRT8eHj46MsM3/+fPFsuP+PoKAgYW9vLxQKhXBzcxPHjh1Tyd+0aZMAxK1bt9Seu6LXXsnP2vTLb7/9Jtq1aycMDQ3L1VNVSo4BIcr3U1m+9fHxEY0bNxYKhUJYWVmJbt26iYiICJUy77//vmjQoIGQy+XC1tZWvPfee+Lq1asqZcrqg4rqqS4t2dnZwszMTJw6dUqr9IpSk9/p5REVFVVr534V+av66/LRSLFy+Lti+ZC+4pu5M8TTR39oVe9JzhPxj73/EM6bnUXf7/uKh5kPVfLL8ld6arbYNCtGBE46Ig6FXRX5f/4pbg4aLOJaviYSvXuL/D/+ECJmpRDzzYRYaCMSLpwQrT+NEPazfxILfrxayt5fidq6voCzQts4VduCtXG4u7urbeSrHjyXZPXq1UIul4vdu3e/8HMXc+DAAdGiRQtRUFBQoXq14a9XmVfFX59++qlwcnIS+fn5tS3lhfmssmOgpqhsH9SEvwIDA8u8mVeXXlGk4PnV4a/sr/s3EsSGKaPF8iF9xdoJw0XS1Uta1UvLThOD9gwSzpudRb/v+4k/sv4XeKvz18M7T8X66VEicNIREfvTTVGQliZuDHhHxLV8Tdzo11/kP34sxPe+zwLoL1uJXy7GCce5+4T97J/ExuM3qqO5LyWvQvAsLdt4SZg+fTrh4eHExcXV2hPr3t7eTJ06Ve0rwiX+Xuzfv5/AwED09P46zxWXx8s2Bl6mPpDL5WXuoqIuXULiVcS6qSMjFn9FY+fXyfrzCTsWfMyv+/eUu2ywjkEdNvbcSPO6zbn99DbjDo7jUfYjjXWsGpvSc1xrkEHsj7e4kZBD47BQFM2akZuQQNL48RR2/QIaecDT33nz9DRWvPdsidjCffHsvXiv2totUTFk5V0QtUnbtm1F8YsrShIfH692r+SqUpO7bfwVkfxVMSR/VRzJZxXjVfRXTX6nl0fJh4IlNPN38FdRYSEn/ruVM3t3AdDCoxPdJ0zF0ETzuErNSWXcwXEkPknEsY4job1CufTLJY3+ungkmRM7EtDV0+GdD9tgaZrLnZEjyb+ThOHrr9N4zVJ0vukLfyaDyxCCLWez6MBvyHVlbBnTng6OltXZ9Fqntq4vmUx2Tgih1dP50syzhISEhISEhMRz6Ojq0mX4GPp9MAe5gSHXfznB1o+mkXTlosZ6FgYWhPQMoZl5MxKfJDI+cjwZhRka67i+bYdz14YUFhSxf90lsmQm2G/ejLxhQ7IvXuTunM8pGvQ1yI3h8ndMkO1hTMcm5BcKJn59jrh7T6uz6RJaIAXPEhISEhISEhJl0NKzE6OWrqZB85ZkpD5mx8J5HAsP07gbRz3DeoT0CsHB3IGEtAQCHwTyJOeJ2vIymYzOQ5rTuLUFORn57Au6RKGZJY3DQtG1tCTz51Pc+88mxLvrARmyo1/wieMt+ro2ICO3gNGbYklOLXv7WImaQQqeJSQkJCQkJCTUUMemAUM/X4bn4GHIZDLO/vg92+bN5PHdJLV1LA0tCe0ZShOzJvye/zsTD03kz1z1L3PT0dWh13hn6jU0Ju1+FhHBV9Bt2IjGoSHomJmRfugQKdtOI97+5Fn57yeysqsuHk0teJiei8+mWNIy86q97RJlIwXPEhISEhISEhIa0NHVpcM/hjH082WYW9vwx+2bhM/5gPMRP6p9mNDKyIqQniFY6VkRnxrPxEMTeZqnfomFwlCPvlNfx9BMwe+/pXFs22/ot2hBo/XrkBkY8Oeu73n4SyHCZQjkZ6L4bjgbBzXmNRtTbv6RybgtZ8jOk16i8iKQgmcJCQkJCQkJCS2wbfEao5auprVXdwry8zi6aQM/LPmMzCdpZZa3NrZmuvV07EzsiHscx6TISaTnpau1b2phQN8prujJdYj/OYVfD97ByM0NuzWrQS4nNWwTjx+2Abt28GcyprvHsHnk6zSsY8ivSU+Y/u15CgrLfyOrRNWQgmcJCQkJCQkJCS1RGBrhPfkD+s8IwMDYhFsXzrHFfyo3zp0us3xdvbqE9QqjoUlDrjy+gu9hXzLy1D9EaN3EjO5jnUAGv+y+SeyPNzHu1ImGS5eATMYfq9aQJn8fzOwg+TQ2x2ezZUxbzA3lHI5/wCd7rlb6jbwS2iEFzxISEhISEhISFaTFmx0ZtTyQxs6vk53+lN3LFnBoYyD5OTmlyjYwaUBYrzBsjW259MclJh+eTGZ+plrbzdrUp+s/WyKTwZl9tzm8OQ7jHt7YzJ8PwP0lK3lqPR3kRnDxWxwTNxHi0xZ9PR2+jU1izdHEGmu3hBQ8S0hISEhISEhUClMLSwZ/vICuI8ehq6fHpcMRfD3Hjwc3Swevtia2hPYKxcbYhgt/XGDK4Slk5avfJcO5S0P6THZFT1+X66cfsHf1BQz7v4fVhx+CEPy+OIgM+xnPCh+aT7vc06wa2gYdGaw4dJ3tZ9Q/0ChRNaTgWUJCQkJCQkKiksh0dGjbbyDD/r2CenaNSUv5nW3zZnL6h+8oKlJ9gM/O1I6wnmFYG1nz68NfmXJEcwDdxNWS92a6YWSu4F7CE3YtO4fewBFYjB0LBQXcXb6NrEYTAAG7xuNt9ZjP33EGYO4PVzh67UFNNv1vixQ8S0hISEhISEhUkfpNmjJi8Ve49R6gfEPhji8+JjdddYu6RmaNCOsVRn3D+px7cI7pR6eTXZCt1q5VY1MGz25LvYbGPHmQxa5l5ygaNAHzwYMQOTkkrz9OTr3ekJcB3w5lpIsx095ypLBIMOWbXzmfVPbDjBKVRwqeJZSkpaVhbW3NjRs3KlTP19eXfv36VZsOLy8vpk2bVm32JGqP0aNHq1wbJT+/bFR2DPwdGDx4MCtWrNA6XULi74ieQsFboycyKOBzjOvU5W78FeK/20r8iWiVco3NGhPaKxQrQyti78fyr6P/Iqeg9FrpYkwtDHjP353GTs9epLJn5QUyB0zFtEcPitLTSfrvXfIMXeFJEmwfycxuTfiHux05+UWM3XyGm39ofsuhRMWQguda4vfff2fixInY2dmhUCho2LAhEyZM4O7du2WWP3/+PLq6unTs2LFU3ujRo5HJZIwfP75U3qxZs5DJZFoFLIsWLaJPnz40a9ZMxW7xYWlpSb9+/bh27VoFW1uzPK9TLpfTtGlT/P39ycxU/zDGX4njx48zYMAAGjZsiEwmY/PmzVrVW7t2LQ4ODhgYGODu7k5MTEyFz12e71etWkV4eHiF7T6Pl5cXM2fOrJINbSk5BirrW9DOvxXtg5rs6/LKzJ8/n4ULF/Lnn39qlS4h8XemyRvujPpPII7tPCjMy2X/muXsW/0fcjL/F8Q2MW9CSK8Q6hnU45eUX/CL8iO3MFetTYWhHn2muuLU2ZbCgiIiw+J54P0Bhp4eFD5+TNJBPfJ1bCHpZ2T7ZrBooDNeLa1Iy8pnVFgsD9PVB+cSFUMKnmuBW7du0bZtW65cucKWLVtITEwkPDycq1ev0q5dO27fvl2qzsaNG5kyZQpXrlwhPj6+VH6jRo3Yvn27SsBYUFDA119/TePGjcvVlJWVRUhICOPGjVNJ7969OykpKaSkpBAZGUl2djYDBw6seKNrmGKdN2/eZOHChaxduxZ/f//alqUkL6/m3vyUkZGBs7Mzq1atwtDQUKs627dvx8/Pj7lz53L+/Hk6dOhA7969SUqq+AMmmnxvbm5OnTp1KmyzNihrDFTGt6CdfyvTBzXV19qUcXFxoWnTpqVuhtSlS0j83TEyM2fAzI+x79oTPX19rp08xtZZ07kbd0VZpql5U0J7hWJhYMHP937GL8qPvEL1/y90dXXwGtYSz/ee3eD/8uNtbnadgeL1N8i/d5+kkw0pKDSC8+HIY9exdrgbr9uZczctmzGbzpCeo/614hIVQAjx0h7u7u5CHXFxcWrzqsrTp09rzLYQQvTu3VvY2tqKzMxMlfTMzExha2sr+vTpo5KelZUlzM3NxcWLF8XYsWPFzJkzVfJ9fHxE3759RZs2bURYWJgyfffu3aJJkyZi1KhRom/fvho17dixQ1hYWIiioqJSdp/nxx9/FIDIyspSpg0bNkylXE5OjvDz8xP169cX+vr64s033xQxMTHK/KKiIrF8+XLh6OgoFAqFaNiwoZgzZ44yv2vXrmLq1KnKz4cPHxbm5uZi/fr1ZWovS+f48eOFjY2NVpr2798vTExMRH5+vhBCiOvXrwtA+Pr6KuvPnTtXdO/eXaUNS5cuFU2bNhUGBgbC2dlZfP311ypt8PX1FTNnzhSWlpaibdu2yryavL6MjY3Fpk2byi3Xvn17MX78eJU0R0dHlX7QhvJ8XzK/5OfyrhUfHx8BqBy3bt2qkEZtKWsMPI+2vhVCO/9WtQ806Xn+GqtOLZ9//rno2LFjqfOpS68INfmdXh5RUVG1du5XEclfFSMqKkqk3rsrwgM+EMuH9BXL3+8njn+zSRTk5ynLXE+9Ljp/21k4b3YWUw5PEbkFueXaTTj7QKybFiUCJx0Ru5fHivh+A0Vcy9fEzX7dReFccyE+qyPEbwfFH+k5ouuyo8J+9k9i+MZfRG5+YU02t8rU1vUFnBVaxqfSzPMLJjU1lYiICKZOnYqRkZFKnpGREVOmTOHAgQOkpf1vgf/OnTuxt7fH1dWVkSNHsnXrVvLzS989jhs3jrCwMOXnsLAwxowZg0wmK1dXTEwM7u7uGsump6ezfft2XFxcNM56zZo1i+3btxMWFsb58+dxcXHB29ublJQUAObOncuCBQsICAjg6tWr7Nixg0aNGpVpa9euXQwcOJDg4GAmTZpUbjuKMTQ0VPGRJk2dO3cmJyeHs2fPAhAdHY2lpSVRUVHK+tHR0Xh5eSk/z5s3j9DQUIKCgoiLiyMgIIBJkyaxb98+ZZnw8HCEEMTExLB161a1WhctWoSJiYnGozJLKtSRl5fHuXPn6Nmzp0p6z549+fnnn6tsv6TvNVHetbJq1So8PT0ZMWKE8hcQdddKVf2ozRjQBm38W9N9UFNa2rdvT2xsLNnZ2VqlS0hIPKNug4YM/eI/eLz3PjJkxO7ZybeffETqvWdLNZvXbU5IrxDq6Nfh+N3jzIyeSX6h5u9RR/f6vPthGwxN5dxNSOfXNjMpsG9FTsJdkq+6UVRQBDvHYpl1iy1j22NpouBE4iNm7bxIUZH0EpWqoFfbAqoLly0utXLeyz6XK1Q+ISEBIQStWrUqM9/JyQkhBAkJCbRv3x6AkJAQRo4cCUDXrl0xMjJi7969DBo0SKXusGHD8Pf3JyEhAVNTUyIiIlizZg2ffvppubru3LlDgwYNSqVHRERgYmICQGZmJo0aNWL//v1q7WRmZrJu3TpCQkLo27cvAOvXr+fo0aMEBQUxZ84cVq5cyVdffcXYsWMBcHR0xNPTs5St4OBgPvroI3bu3FnqH7smYmNj2bZtG926ddNK08KFC3FzcyMqKgoPDw+io6OZNm0aS5YsISUlBXNzc86cOcOyZcuU9lasWEFkZCSdO3cGwMHBgdjYWIKCgpTncHBw4MsvvyxXr6+vL0OGDNFYpmHDhlq3vzwePXpEYWEh1tbWKunW1tYcPny4SrZL+l4T2vSLubk5CoUCQ0NDbGxsNNqrqh/VjYGKoo1/a7IPalKLra0t+fn53Lt3T7kuXFO6hITE/9DV06Pj+yOxf92NA4EreHAzka9n++E1ahyu3XvTom4LQnqGMC5yHNF3o/E/5s9yr+XIdeRqbdo0NWfQrLbsC7pI2v0szjj74VoYBNcuc0+nNQ2dryL79n3sxx8lbHQ7hgb/wu4L97A2NyCgd9lxiET5/GWC51cNdbNb4v9fqalQKABITEzk5MmTfPvtt8p6w4cPJyQkpFTwXLduXQYOHEhYWBh16tTBy8tLq/XOANnZ2aX+eQJ06dKF4OBg4Nms+dq1a+nZsyenT58ucwbwxo0b5OfnqzzYqKuri6enJ3FxccTFxZGbm1tucLVnzx42bNjA8ePHywysS1Ic5BcUFJCfn88777zDmjVrtNIEzx5Ki46OJiAggGPHjuHn58fRo0eVs9ByuVx5MxMXF0dOTg7e3t4q/Zifn0+TJk2Un93d3cvVDWBhYYGFhYVWZauTktegEKJSs66afK8JbfqlIlTVj+rGQGXRxr/V1QcvSkvxL04lZ5jVpUtISJTG7rXWjFq2mqNh64mLieJwyFpunj9LL18/Wlq0JLhHMOMjx3M0+Sizjs1iaZelKHQVau2ZWxny3kfuRGy4zO/Xn3Dutcm0ZjPExZIia0oD55vIvhuF68gfWDfCnXGbz7Dh2E1szAwY09HhxTX8L8RfJniu6AywJtLT0zE1Na02e8/TvHlzZDIZV69e5d133y2VHx8fj56eHg4Ozy7okJAQCgsLVYLg4gA7OTm5VAA7duxYfHx8MDEx4YsvvtBal6WlpcpSkWKMjIxwdHRUfnZ3d8fc3Jzg4GAWLFhQqnyxtrICAJlMpswvD1dXV2QyGaGhoXh4eJQbUBQH+XK5HFtbW+Ty/92pl6cJngXPxUsw0tPTcXd3x8vLi6ioKKysrOjQoYPSZlFREQA//vhjqZuT589rbGysVVsXLVrEokWLNJY5cOCAcpa7qlhaWqKrq8v9+/dV0h8+fFip4FGT7zWhTb9UhKr6Ud0YqCja+Le6++BFaUlNTQXAyspKq3QJCYmy0Tcypve0mTi4teNwSBA3z8WyxX8q3pM/wKlNWzb23MiEgxM4nHSYCZET+Oqtr6hrUFetPQNjOf3/9QZR4df47Zf7XHT0oYWeGVw9jK5OA+pzAtl+f7r2X8XSQa7M3HGRL36Kw8pUn36uti+w5X8NpDXPLxgLCwu8vb1Zu3YtWVmqbxXKysoiKCiIgQMHYm5uTkFBAVu2bGHx4sVcuHBBeVy8eBFXV1c2bdpUyn63bt1QKBQ8evSozOBcHW3atNFqtk8mk6Gjo1NKezGOjo4oFApOnDihTCssLOTUqVM4OTnh5OSEvr4+R44c0XgeBwcHoqOjiYyMZOLEieUG3cVBvr29fangrTxNAJ07dyY3N5dly5bRqVMndHV1lcFzyfXOxW24c+cOjo6OKoe9vb1GnWXh6+ur0r9lHW3btq2wXXUoFArc3d05dOiQSvqhQ4fo0KFDhe1p8r0mtOmXYr3FNyyaqKoftR0D5aGNf6u7D16UlitXrmBra1sqqFaXLiEhoZnXOnRh1LJAGjm5kPXnE75f8hlHwtbTwtSRTd6bqG9Un18f/sqI/SO48/SORlu6ejp082lF+/7PJt+uNxnI9RZDeHxZh8e/1YFft8DpDQxyt2OWd0uEgBnbL3LqxuMX0dS/FH+ZmedXiaCgIDw9PenevTsLFy6kefPm3Lhxg48//hi5XM7q1asB2LdvH48ePWLChAnUq1dPxcbQoUNZt24d8+bNU0mXyWRcunQJIQT6+vpaa+rVqxezZ8/m8ePHKufKzc1VzkilpaURGBhIRkYG/fv3L9OOsbExkydPZs6cOVhaWuLg4MDKlSt58OABU6ZMwdTUFD8/PwICAtDX16dLly48fvyYc+fOMXnyZBVbTZs2JSoqCi8vLyZOnEhwcHClZiTL0wRgYmKCm5sb4eHhLFmyBABPT0+Sk5O5deuWcr0zgKmpKf7+/vj7+yOEoEuXLmRkZPDLL7+go6PDxIkTK6SvqssNMjIySExMBJ7NiiclJXHhwgUsLCyUM+OBgYEEBgYq9+ieMWMGI0eOpH379nTs2JH169dz7949fH19K62jomjTLwBNmjThzJkz3L59GxMTEywsLNDRKX3fX1U/ljUGKuNb0M6/lekDbfWsXr2a69evV7uWmJgYvL29S+lSly4hIVE+ZpZWDP5kIWd//IGT28O5cPAnkq5cpO+/PmJbn21MPzqd+NR4hu8fzqq3VuFurX5JoEwmo11fB8wsDTm6NZ67tl3JUdSl9aVN6OrlUfdgAFg6MrlrNx78mcOWU3eY+PVZdvh68pqN2Qts9SuOttty1MbxV92qTgghkpOTxfjx44Wtra3Q0dERgOjUqZNITU1Vlunfv7/o0aNHmfVv3LghAHHw4MEytwt7nvLyi/Hw8BCBgYEq9XhuizBTU1PRrl07sXPnTpV6mraqUygUpbYfKywsFIsXLxYODg5CLpcLOzs7MXfuXGV+ya3qEhMThZ2dnZgwYUKZ24hp077yNAkhxOzZswUgzpw5o6LFyMhI5OXlqZQtKioSq1evFq1atRIKhUJYWlqK7t27i8jIyDLb8DzVfX1FRUWV2s4NED4+Psoy8+fPF8+G+/8ICgoS9vb2QqFQCDc3N3Hs2DGV/E2bNpW7NVxFrz1NW9Wp65fffvtNtGvXThgaGtboVnVClB4DlfWtEOX7V5syJfugpvpamzLZ2dnCzMxMnDp1Sqv0iiJtVffqIPmrYlTEX/dvJoqwD33F8iF9xYp/viPO/vSDyMzLFFMOTxHOm51Fm61txE83ftLK1t3fUsXGD4+JwElHxJZhm8R51/bizzH1hVjUSIiHv4mCwiLh+/VZYT/7J9H+34fE3bSs8o2+AF6FrepqPUAuUxT0B4IdHR3VNvJVD55Lsnr1aiGXy8Xu3btf+LmLOXDggGjRooUoKCioUL3a8NerzKvir08//VSZ4fN6AAAgAElEQVQ4OTkp97+uTV6Uzyo7BmqKyvZBTfgrMDCwzJt5dekVRQqeXx0kf1WMivorLydbHA5d+2xP6CF9xYXIfaKgsEAs+mWRcN7sLJw3O4t1F9ap3ZP+eVJTMsTWj0+KwElHxEafHSLWvZtIn2glxKo3hMh8LLLzCsQ/1v0s7Gf/JLp9GS3SMsvfX7qmeRWC55dyzbMQ4kchxERzc/PalvLCmD59OuHh4cTFxdXaE+ve3t5MnTpV7SvCJf5e7N+/n8DAQPT0/j6ru162MfAy9YFcLi9zFxV16RISEpVDrm9At7GT6TX5AwCObtrAvfirBLwZwJz2c9CR6RB0IYh5J+eVuxd0XRtjBs9ui3VTM3INLDj3xodcvNqRrN/uwg4fDHSK2DiqLS2sTUh8mMH4LWfJyS98Ec18pZEJLXc/qA3atm0ril9cUZL4+Hi1eyVXlZrcbeOviOSviiH5q+JIPqsYr6K/avI7vTxKPhQsoRnJXxWjKv46/s0mzuzdhYGpGcP/vYI61jZEJ0cz6/gssguyaWfTjpVeKzHX1zzZWJBXyOHNcdz49Q9kopDXbvyXDq13Y9DDB/qt4N6TbN5b+zP3n+bQ08madSPc0dWp/m0ztaG2ri+ZTHZOCKHV0/kv5cyzhISEhISEhMTfnU7/HEVTt3bkpD9lz38WkJedhVcjLzZ7b8bK0Ioz988wYv8Ikp8ma7Sjp9Cl13hn2vRohJDpEu84nCM3x5N7dAvEbsS2jiFbxrbHzECPyLgHzN97ReutZf+OSMGzhISEhISEhMRLiI6OLn2mf4RFw0Y8Sr7D/sAvEUVFONVzYlvfbTSv25zbT28zfP9wLjy8oNGWTEdGh0HN6TrUEZko4nbDXvx4dzbZOz+FG0dpaWPKxlFtUejqEP5LEvP3XiWvoPxtQv+OSMGzhISEhISEhMRLir6REe/O+gQDYxNunD3Nye/CAbAxtmGr91Y6NuxIWm4a4w6OI+JWRLn2nL0a03eSE3pFuTywaMv3974gfct0eJTIm03rsWroG8h1ZWw9dYehwadI+VN6c2hJpOBZQkJCQkJCQuIlpq6NLf0+nINMR4fTP3xH/MljAJgoTAh8O5AhLYaQV5THR8c/IuRySLlLLuzdbHn3w9cxKHjKE5Nm7Ez+hMcbp0J2Gr1dGrB9kicNzA34NekJ/Vaf4OfERy+ima8MUvAsISEhISEhIfGSY+/yBm/5TAAgct0q7ic+exGSno4e8zzm4d/WHxkyVv26is9OfUZ+keadOKxb2TJodlvMclLI0q/PrpvTuLshAAoLcGtcl5+md6KToyWPM/MYEXqatdGJFBVJ66BBCp4lJCQkJCQkJF4J3ujVD9du3hTk57Fn+UIyUp+9Wlsmk+HT2oeVXisx0DXg+4TvmXx4Mk/znmq0V6e5He993AHLp/Hk6xqzN/49rgU/e8txPRN9toxtz7S3HCkSsCziNyZ+fY4/szUH5X8HpOBZQkJCQkJCQuIVQCaT8fbYSdi1ciYjLZU9X/6bgrw8ZX43+25s8t5EPYN6nE45zaj9o/g943eNNo2bO9B/3ts0ehCDkOlx5OIbxG7YiRACXR0Z/r1aEurTFjMDPQ7HP2BA4Ani7mkOyv/qSMGzhISEhISEhMQrgq6enP4zAjCzsuZ+4nUig9eorHF2tnRmW99tONZx5MafNxi2bxiX/7is0aaRUyu6f9KfFjd3gSjizHkLDi/fS2HOs8C8WytrfpreGacGZtx5nMXAtSfZee7leJlUbSAFzxISEhISEhISrxBGZua8+9E85PoGxMdEcWbvLpV8WxNbtvbeimcDT1JzUhlzcAyH7hzSbNPNDc9PhuJ6NRidwlyu3zBlb8AWcs7tBSFoXM+I76d04B/uduQWFOG/4yIB31/+W76RUAqeJSQkJCQkJCReMazsHeg9fSYAMd9u4ca5WJV8U4UpQd2DGNR8ELmFucyMnsnmK5s17sRh0rkzrweMxv3iVyhyn3Avuxk7Q57yJPAfcPsEBnJd/vOP11k6yAWFng7fxiYxZMMpklOzarStLxtS8Pw3ZPTo0fTr10/tZ3WkpaVhbW3NjRs3qnS+quLl5cW0adOqzZ5E7VHZa7G2qOwY+DswePBgVqxYoXW6hIRE1WnezpOOQ0aAEOxf8x8e301SyZfryJnvOZ8P3T9EIPjy3Jcs+GUBBUUFam2a9e2D84YleCRtwiTjLn8KW3ZeGcm94I8gfDDcv8z77Rqzy7cDdnUNuXT3T/oHniD6t4c13dyXBil4rkXOnz+Prq4uHTt2rG0pWrFo0SL69OlDs2bNgGeBjkwmw8zMDJlMhqWlJf369ePatWu1rFSVYp0ymQy5XE7Tpk3x9/cnMzOztqW9EAoLC/nkk09wcHDAwMAABwcH5s2bR0GB+i9PgLVr1yrruLu7ExMTU+Fzl+f7VatWER4eXql2FfMib6ZKjoHjx48zYMAAGjZsiEwmY/PmzVrb0sa/Fe2DYj0tW7askJ7q0DJ//nwWLlzIn3/+qVW6hIRE9fDme+/T0rMzednZ7F62gOx01Yf5ZDIZY53HsrzrchQ6CnZc38G0I9PIyMtQa9OoTRta7dxKZ/2fqff4MrkyU/Y8/pxrl/JgfWf4fiIuxk/4aXon3mppxZOsfMZsPsNXh6//Lbazk4LnWmTjxo1MmTKFK1euEB8fX2V7ec89cVvdZGVlERISwrhx41TSu3fvTkJCAikpKURGRpKdnc3AgQNrTEdl6d69OykpKdy8eZOFCxeydu1a/P39a1uWkprsu6VLlxIUFMTq1au5du0aq1atIigoiMWLF6uts337dvz8/Jg7dy7nz5+nQ4cO9O7dm6SkJLV11KHJ9+bm5tSpU6fSbXuRlDUGMjIycHZ2ZtWqVRgaGmptSxv/VqYPivUsXbpUaz3VpcXFxYWmTZuWuhlSly4hIVE9yGQyek32o75DM548SOGnr5ZQWMbkSK8mvQjtFYqFgQUn751kVMQoUjJS1NrVq1sXh+Ag3uqqh93daIpkehx5+gG/PPkn4uJ2CGxLnWOfEjrYgRk9WgDw1eEExmw+Q1pmzf1PexmQgudaIjs7m23btjFhwgQGDx5MaGioSn5mZiajRo3CxMQEa2trFi9eTL9+/Rg9erSyjJeXF5MnT8bf3x8rKyvlDLYQgmXLltGsWTMMDQ1xcXGp8j+u/fv3o6OjU2qWXF9fH2tra2xsbHBzc+PDDz/k2rVrZGerf51nbm4uH3zwAdbW1hgYGODh4cGJEyeU+UIIvvzyS5o3b46+vj52dnYEBASotXfkyBHq1KnDhg0b1JbR19fHxsaGRo0aMWzYMIYPH87u3bu10nTgwAFMTU2VM7UJCQnIZDImT56srP/xxx/To0cPlTZo6gN1fVcT/Pzzz/Tv35/+/fvTpEkTBgwYwIABAzh9+rTaOitWrGD06NFMmDCBVq1asWbNGho0aMC6desqfH5Nvi9vmUZxvzRr1qzMa2X06NEcO3aMoKAg5Qz37du3K6xRG8oaA3369GHRokUMHjwYHR3tv0618W9l+qBYz7vvvqu1nurUMmDAAL799ttS51CXLiEhUT3I9Q14x38eRuZ1SLpyieitIWWWe6P+G4T3CcfB3IGEtASG7R/G1cdX1dqV6epiPW0q3QJ60fL3n0AUcS7nH0RkLaOwQMDpdeisacO/9H7g6xGtqWsk59j1P+i35gSX7j6pqebWOlLwXEvs3LkTe3t7XF1dGTlyJFu3biU//38bj8+cOZNjx47xww8/cPToUS5evFjmT6nh4eEIIYiJiWHr1q0AzJs3j9DQUIKCgoiLiyMgIIBJkyaxb9++SuuNiYnB3d0dmUymtkx6ejrbt2/HxcVF46zXrFmz2L59O2FhYZw/fx4XFxe8vb1JSXl2Bzx37lwWLFhAQEAAV69eZceOHTRq1KhMW7t27WLgwIEEBwczadIkrdtjaGio4m9Nmjp37kxOTg5nz54FIDo6GktLS6KiopT1o6Oj8fLyUn7Wpg/K6ruyWLRoESYmJhoPTT/nd+rUiaioKOVymri4OI4ePUqfPn3KLJ+Xl8e5c+fo2bOnSnrPnj35+eef1Z5HW0r6XhPF/RIUFFTmtbJq1So8PT0ZM2YMKSkppKSkqL1WqupHbcaANmjj35rug5rS0r59e2JjY0vdPKtLl5CQqD7MLK14x38eunp6XDj4E5cOR5RZrpFpI77u/TXtbdrzKPsRYyLGEJUUVWbZYkw6dqTrxlm0zTqEbmEuN9ObszM9hKzG/SAvHaL+Taf9PYjqmoB7QyN+f5LN4HWn2HY6qdxXhb+K6NW2gOoi/rVWtXLeVtcqt9wiJCSEkSNHAtC1a1eMjIzYu3cvgwYNIiMjg7CwMLZu3aqczQwNDcXOzq6UHQcHB7788kvl58zMTFasWEFkZCSdO3dWlomNjSUoKIi+fftWSu+dO3do0KBBqfSIiAhlemZmJo0aNWL//v1q7WRmZrJu3TpCQkKUWtavX8/Ro0cJCgpizpw5rFy5kq+++oqxY8cC4OjoiKenZylbwcHBfPTRR+zcubPUP3ZNxMbGsm3bNrp166aVpoULF+Lm5kZUVBQeHh5ER0czbdo0lixZQkpKCubm5pw5c4Zly5Yp7Wnqgy5duijTnu87dfj6+jJkyBCNZRo2bKg2b/bs2aSnp+Pk5ISuri4FBQV8/PHHTJkypczyjx49orCwEGtra5V0a2trDh8+XK5eTZT0vSae7xdvb29MTU1L9Yu5uTkKhQIjIyNsbGw02quqH9WNgYqijX9rsg9qUoutrS35+fncu3dPuS5cU7qEhET1YtviNXpMnE7E2pUcCVtHXduGNHJyKVXOXN+c9d3X8/mpz9lzYw9+UX7MajeL4a2Gq50gkNvY0D5sIXUWryfmli2PqMt3se/Tf/go6l1bCr+fo07UXHbWdeC7lj7M+c2RuT9c5tydNBa+64yhQremm//C+MsEz68SiYmJnDx5UvkzpkwmY/jw4YSEhDBo0CBu3LhBfn4+7du3V9YxNjbG2dm5lC13d3eVz3FxceTk5ODt7a0yAPLz82nSpEmlNWdnZ5f65wnQpUsXVqxYgYmJCampqaxdu5aePXty+vTpMmcAi9v2/E/furq6eHp6EhcXR1xcHLm5ueUGV3v27GHDhg0cP368zMC6JBEREZiYmFBQUEB+fj7vvPMOa9as0UoTPFtmER0dTUBAAMeOHcPPz4+jR48qZ6Hlcrmyv7Ttg5J9pw4LCwssLCy0KlsW27dvZ+vWrWzbto3WrVtz4cIF/Pz8cHBwKLWG/XlKfoEKISo166rJ95rQpl8qQlX9qG4MVBZt/FtdffCitBT/4lRyhllduoSERPXTums3/ki6zbmffmDvisWMWLQC8/qlJxfkunIWdFxAY7PGrDm/hqVnlpKUnsSsdrPQ0yk7PJTJ5bT8dDrmeyKJ3Pk76cYN2bk1m55DVuDQMQmOfI7scSLvp31GT2snZqQOZNevEJfylPUj3LCvZ1zTzX8h/GWC58rOAJdFeno6pqam1WavJCEhIRQWFtK4cWNlWvHPGsnJycq/tfknaWyseiEWFRUB8OOPP6rYB5DL5ZXWbGlpSVpaWql0IyMjmjVrpvSXu7s75ubmBAcHs2DBglLlNbVNJpNp/fOOq6srMpmM0NBQPDw8yvVVly5dCA4ORi6XY2trq+KL8jTBs+C5eAlGeno67u7ueHl5ERUVhZWVFR06dFDa1LYPSvadOhYtWsSiRYs0ljlw4IBylrskH330Ef7+/gwdOhR49gDXnTt3WLx4cZnBs6WlJbq6uty/f18l/eHDh5UKHjX5XhPa9EtFqKof1Y2BiqKNf6u7D16UltTUVACsrKy0SpeQkKgZugwfTerdJG5dOMfuZQv454L/oDA0KlVOJpMx0XUidiZ2zDs5j2+vfcvd9Lv8p+t/MJar/x9l805PBjndYv+/j/DQoCkHdjzEw0WG25TTcCEcohZT9884NunGcVb+Op/d/wf91mSxYsgb9HCqvu+w2kJa8/yCKSgoYMuWLSxevJgLFy4oj4sXL+Lq6sqmTZtwdHRELpcTG/u/Dc+zsrK4cuVKufadnJzQ19fnzp07ODo6qhz29vaV1t2mTRutZvtkMhk6OjpkZZW9YbqjoyMKhULloa/CwkJOnTqFk5OTUv+RI0c0nsfBwYHo6GgiIyOZOHFiuUG3kZGR0gclg7fyNAF07tyZ3Nxcli1bRqdOndDV1VUGzyXXO1d3H/j6+qpcK2Udbdu2VVs/KysLXV3Vn8t0dXWVQX5JFAoF7u7uHDqk+jaqQ4cO0aFDhwrr1+R7TWjTL8V6CwvLf8NVVf2o7RgoD238W9198KK0XLlyBVtb21JBtbp0CQmJmkFHR5e+frOoa2vHo+Q77A9cgVDznQ/Qp2kfQnqGUEe/DjG/xzA6YjQPszTv22zc3IGBa4fTzCAJoaPHqavGHJ65hcJWQ+Bf56HbfNA3p23RRX7Sn8eiwhUs/PonlkVco6BQvZZXgb/MzPOrwr59+3j06BETJkygXr16KnlDhw5l3bp1zJs3j7FjxzJ79mwsLS1p0KABCxcupKioqNwZN1NTU/z9/fH390cIQZcuXcjIyOCXX35BR0eHiRMnVkp3r169mD17No8fP1bRnZuby4MHD8jMzCQtLY3AwEAyMjLo379/mXaMjY2ZPHkyc+bMwdLSEgcHB1auXMmDBw+YMmUKpqam+Pn5ERAQgL6+Pl26dOHx48ecO3dOZXcLgKZNmxIVFYWXlxcTJ04kODi4UjOS5WkCMDExwc3NjfDwcJYsWQKAp6cnycnJ3Lp1S7neGcrvg3/+858V0lfV5Qb9+/dnyZIlODg40Lp1a86fP8+KFSsYNWqUskxgYCCBgYHKhwpnzJjByJEjad++PR07dmT9+vXcu3cPX1/fSuuoKM/3i5GREa1bty7VLwBNmjQhNjaW27dvY2JigoWFRZk7TVTVj2WNgYyMDBITE4FnvzgkJSVx4cIFLCwslL86lPQtaOffyvRBsZ7MzEyt9VSnlpiYGLy9vUvpUpcuISFRc+gbGTNw1id88/EMbpz9hZPffUOnoSPVlnezduObPt8w5cgUrqVeY0zEGMJ6hWFtrP6mV8/IEO+vRhP71T7OxOvzW44DTydvwfuTXhh1ngHuo+HECsTpYPrzC946Z/j2xNtMvz2WBSO6YWmiXwMtfwEIIV7aw93dXagjLi5ObV5Vefr0aY3Z7t+/v+jRo0eZeTdu3BCAOHjwoEhPTxcjRowQRkZGon79+mLx4sXi7bffFr6+vsryXbt2FVOnTi1lp6ioSKxevVq0atVKKBQKYWlpKbp37y4iIyOFEEL4+PiIvn37KsuX/KwODw8PERgYqFIPUB6mpqaiXbt2YufOnSr1StrPyckRfn5+on79+kKhUIg333xTxMTEKPMLCwvF4sWLhYODg5DL5cLOzk7MnTtXbbsTExOFnZ2dmDBhgigqKiqlW5v2ladJCCFmz54tAHHmzBkVLUZGRiIvL0+lrKY+ePr0qdq+qwmePn0q/Pz8ROPGjYWBgYFwcHAQAQEBIjs7W1lm/vz54tnXwf8ICgoS9vb2QqFQCDc3N3Hs2DGV/E2bNglA3Lp1S+25y/N9eddicb9YWVmp7ZfffvtNeHh4CENDw3L1VJWSYyAqKkplDBQfPj4+yjJl+VaI8v2rTZmSfVBZPdWhJTs7W5iZmYlTp05plV6SmvxOL4+oqKhaO/eriOSvilHb/rp18Vfx5dD+YvmQviL+ZOmxXZK07DTxj73/EM6bnUWfXX1ESkaKVue5fuCCWDfhgAicdER8PTxUPNhz8H+ZT5KF+GGKKPqsjhDzzUTmp1Yi9POx4tfrd0rZqS1/AWeFlvFprQfImo6/YvBcWXJycoS1tbVYvnx5rWk4cOCAaNGihSgoKFBJfxn99TLzV/HXp59+KpycnER+fn6Nn+tl8Zm6MVBbqOuD2vBXYGBgmRMD6tJLIgXPrw6SvyrGy+Cvc/v3iOVD+oqvhg8U928klFv+Sc4TZQDde1dvrQPoB789EKGTfhSBk46IkFH/Fdc/XyGKcnOfKxAnsrcOEWK+mRDzzcTjTxuK0998IYry/jeZ8yoEz9Ka55eU8+fPs23bNhITEzl//jw+Pj6kp6fz/vvv15omb29vpk6dyt27d2tNg8TLw/79+wkMDERP7++z+utlGwMvUx/I5fIyd1FRly4hIfHiaOPdH5e3e1KQn8fu/ywgIy1VY3lzfXM29txIK4tWJKcnM/bgWO5n3tdYB6B+i/oMWdIdC+M8cgytOHqnOefGBpBf/MBx/VYYjNxOwegDJJm8joUsnfbXl5O61JXcs99AUfnPr7wMSMHzS8yKFSto06YNb7/9Ng8ePOD48eNl7vX8IvnXv/5VpQcPJf46nDlzhrfeequ2ZbxwXqYx8DL1wcSJE2nZsqXW6RISEi8OmUxGt3GTafiaExmpj9m7/N8U5Gl+hXZxAO1Uz6lCAbRJHQMGL+pB4yZyCuRGxBp5c2LsQjJOnFSW0WvSgcYzjxHruZYEYUe9ggfo/zSF3MCOWDw+Cy/5i1Wk4PklpU2bNpw9e5b09HTS0tKIiorSel9gCQkJCQkJCYnn0dWTM2DGXEwtrUhJ/I1DwWvK3anKXN+c4B7BygB6TMQYrQJoub4ufWd1wrVzfYSOLnGN3yN60V4erg5EFO+OJJPRvtdwZJNPstTAj/9r787joir3P4B/HoYZ1gHDARRBZVGviihgBJjETxFxz7Ssa17MrorajUpKMctKwiXFTHAh0DTT6w0z87rhAkJdCzU0FfWK+0JyXZIZ9uX5/QFMDMxyZgBn0O/79ZqXzjPnPOd7vs9zhi+HM2du8fawuH8O3qc/BR5caYldbjVUPBNCCCGEPAGs7dvh+Xc/gLmFBfKyM3D83zt0rlNfQPdu3xs3FTcFF9BmZgwDJ3oj5OVuYOC41nkojmSW4uq0mai6/+dlI14d2uGNtz/EZ922YGHlRKRWDcOlaqdm7Wdro+KZEEIIIeQJ4dTVA8NnzQYAZH2zAZdzj+lcx97CHsnhqgV0gaJA0Pb6hLph5D/6QSwGCp388WPJ0zg//lWU/JqrXMbGwhwrJj4D1+Hv4pz7ZHg62hq2c48IFc+EEEIIIU+Qbs8EI/jFiQDn2L3yM9y7eUPnOnYSO9UCer/wArpz7/YYNzcAtvZiFNl74Be3ycib/i7ub9yo8m2yrw1wx2hPSbP27VGg4pkQQggh5AkTOO5ldA98FhWlJfj+s09QqpDrXKe+gPZu741bilt6FdDtO9li/LwAOHW2RZmVDCf6voVza3fgVvRbqFYomrs7jxQVz4QQQgghTxjGGCJmvAXHrh744/cC/PvzJaip1n2rODuJHdaFr1MpoG8rbgvapo29BZ6P8YenryOqzK1xqs8sXDitwNVx41F24UJzd+mRoeKZEEIIIeQJJLa0xPPvzoe1fTtcP30SmZtSBK1XX0D3kfXBLcUtTNk/RXABLZaIMHSqN3zDO4ObiXC+x0Tkifrhyksv44/t3zVndx4ZKp4JIYQQQp5QdjInjJ79PsxE5sjdtwu/HdonbD2JHdYNMayAZmYMwS94IXRiDzAz4HrncJz2ehU3P/gIdpu+Rk1ZWXN2qdVR8UwIIYQQ8gTr1KMnhkydBQA4lLoWN8+dEbSeVCJtUkDfUtwSvN3eAzth1D/6QWIpwv8cfZHr+zZw9hKq72v/BkRjo+KZEEIIIeQJ5/1/Q+A/Ygxqqqvww/J4PCzUfS9n4M8C2kfmU1tA79OvgHbr6YBx7/WHtL0liqRdcCIgFqWSpwzdjUeCimdCCCGEEIKQiVPQta8fSuVFSPv0AygeCDsDLJVIsXbIWvg4+uB28W29C2gHFxuMn9Mfzu52MLcXw8bewtBdeCQeWfHMGOvJGFvLGEtjjM14VNslTU2ePBkjR47U+FyTBw8ewNnZGZcuXWrW9porNDQUb7zxRov1R4zH0LloLIYeA0+C8ePHIyEhQXA7IcT0mIlEGPnWHDh19cQfvxcgLW4+SuVFgtaVSqRYG2Z4AW1tJ8Hzb/vCbSCDSGza53YFRccYW88YK2SMnWnUHsEYu8AYy2eMzdXWB+f8HOc8CsBLAPobHvLjIzc3FyKRCAMGDDB2KILEx8dj+PDh8PT0BFBb6DDGYGdnB8YYZDIZRo4cifPnzxs5UlX1cTLGIBaL4eHhgZiYGBQXFxs7tEciKysLo0ePRqdOncAYw1dffSVovdWrV8Pd3R2Wlpbw9/dHdna23tvWlfuVK1di8+bNevfb0KP8ZarxMQAYlqekpCT4+PjAzs4OdnZ2CAoKwu7du1WW+eijj5S5q3906NBBZ9+rV69Gnz59BMfTUrEsWLAAcXFxePjwoaB2QohpsrC2wbj3P4FDJzfcu3kd2+MXoLykRNC6UokU68LWKQvo1/a9hpvym4K3bS4RwdyCGRr6IyO0tP8KQETDBsaYCEASgGEAegF4hTHWizHWhzH270YPp7p1RgP4EcChFtuDNuzLL7/EzJkzcebMGZw7d67Z/VVUVLRAVOqVlJQgJSUFr7/+ukp7WFgYLl68iIKCAqSnp6O0tBRjx45ttTgMFRYWhoKCAly+fBlxcXFYvXo1YmJijB2WUmuOnUKhgLe3N1auXAkrKytB62zbtg3R0dGYN28ecnNzERwcjGHDhuH69et6b19b7u3t7dGuXTu9+zQGdceAoXlydXXFkiVL8Ouvv+L48eMYNGgQnn/+efz2228qy/Xo0QMFBQXKx+nTp7X2Wx/P7NmzBcfTUrH06dMHHh4eTX4Z0tROCDFd1nb2eHF+HOydO+DO5YvYseRjVJYLuwOGrcRWWUAXFBdgyv4pehXQbYGg4plzngWg8YUvAQDyOeeXOecVAP4JYAzn/DTnfGSjR2FdP/0W6oIAACAASURBVD9wzoMBTGzJnWiLSktLsWXLFkydOhXjx49HamqqyuvFxcX429/+BltbWzg7O2PRokUYOXIkJk+erFwmNDQUM2bMQExMDBwdHZVnsDnnWLp0KTw9PWFlZYU+ffo0+wfXnj17YGZm1uQsuYWFBZydndGhQwf4+fnh7bffxvnz51FaWqqxr/Lycrz11ltwdnaGpaUlAgMD8eOPPypf55xj+fLl6NatGywsLODq6orY2FiN/R06dAjt2rXDunXrNC5jYWGBDh06wM3NDX/9618xceJEfP/994Ji2rt3L6RSKaqqqgAAFy9eBGMMM2b8efXR+++/jyFDhqjsg7Yx0DR2rWH48OGIj4/H+PHjYWYm7PflhIQETJ48GVOnTkXPnj2xatUqdOzYEWvWrNF7+9pyr+syjfpx8fT0VDtXJk+ejCNHjiApKUl5RvTq1at6xyiEumPA0DyNGTMGw4YNg5eXF7p3745PP/0UUqkUR48eVVnO3NwcHTp0UD4cHR219lsfz+TJkwXH05KxjB49Glu3bhXcTggxXbYO7fHi/DjYOrTHrfNn8cPyeFRVVgpbt66A7uvYV1lA35Dr/grwtsK8Get2AtAwEzcBPKNpYcZYKIAXAFgA2KNluWkApgGAs7MzMjMz1S5nb28PuVz3V0kaorq6utX6rrd161a4ubnB3d0d48aNQ2RkJObNmwexWAwAeOutt5CZmYlvvvkGHTt2xJIlS5CdnY2RI0cqY6uursbmzZsxefJk7Nu3D5xzyOVyfPLJJ/j+++/x2WefoVu3bsjJycH06dNhYWGBiIgIVFZWoqqqStlP4+fqHDp0CH379oWiwVdo1q9Xny+5XI7Nmzejd+/eWvt/7733sGPHDiQmJsLd3R2JiYmIiIhAbm4uOnTogI8++gipqamIj49HcHAw7t69i99++01lvysqKiCXy7Fz507MnDkTq1atwgsvvKB2H9Ttn0gkUvahK6Z+/fqhrKwMR44cQUBAAPbt24f27dvj0KFDyvUPHTqE8PBw5XNtYzBkyBCNY6fOsmXLsHz5cq3zafv27QgODta6TL2ysjKtY11RUYETJ05g1qxZKsuFhoYiOztbr2NDV+51zcX6cVm1ahU8PT2bzJW4uDicO3cO3bt3x4IFCwAA7dq1Uxtjc/PY+BhoqTxVV1djx44dUCgU6Nu3r3K98vJyXL58GS4uLpBIJPD398eCBQvg7u6utp+G8TR8D9MnnubG4u3tjbi4OBQWFqr8lUNTe0NlZWUa3+9bm0KhMNq22yLKl37aer66hI/Ghe//iaunfsXGD96DR/goMIEnYiZaTkSRRRGuFF/BxJ0T8abzm5CJZVrXaQv5ak7xrO6iFK5pYc55JoBMXZ1yzpMBJANA//79eWhoqNrlzp07B6lUqnyeFHVYV9etYtbaQQat98033yAyMhJSqRTDhg2DjY0NMjIyMG7cOCgUCnz99dfYtGkTxowZAwDYtGkTXF1dIRaLlfstEong7u6OVatWKfstLi5GYmIi0tPTMXDgQAC1fzY9ffo0NmzYgBdffBFisRjm5ubKfho/V6egoABubm4qy4jFYhw8eBCurq7Kbbu5uWHPnj1Nlqvvv7i4GKmpqUhJScGLL74IAEhNTUV2djY2btyIuXPnIikpCZ9//jmioqKUfYSFhSn/LxKJIJFIsHXrVrz77rtIS0tDeHi4xtgb719OTg7S0tIQFhYmKKa4uDj4+fkhJycHgwcPxs8//4x//OMfWLx4MRQKBezt7fHrr79i+fLlyv60jUFERITasdMkOjoakyZN0rpMp06dBF+SYWlpqXWsb9++jerqanTt2lVlOTc3N2RlZWldtzFdudc2FxuOy/DhwyGVSpuMi1QqhZWVFezt7eHl5aU1lubmsfEx0Nw8nT59GkFBQSgrK4OtrS127NiBwMBA5eshISHw9fXFX/7yFxQWFiIuLg7h4eE4e/Ys2rdv36S/hvGIRCLl9oXE01KxeHl5obKyEnK5HE5OTjrbG7K0tISvr6/WnLWWzMxMaPpZQ5qifOnncciXn68v/vVJLP64chFlebmImPm24AJ6YMVAzDg4Ayf/dxLrHq7D+vD1cLNz07h8W8hXc4rnmwAa7r0rAGFfLfOEy8/Px08//aT8MyZjDBMnTkRKSgrGjRuHS5cuobKyEgEBAcp1bGxs4O3t3aQvf39/led5eXkoKytDREQEGPvz95vKykp07drV4JhLS0vh7OzcpD0kJAQJCQmwtbXF/fv3sXr1aoSHh+OXX36Bm1vTg6N+3xr+6VskEiEoKAh5eXnIy8tDeXk5Bg8erDWenTt3Yt26dcjKykJQUJDO+Pft2wdbW1tUVVWhsrISY8aMURauumICas/eZWZmIjY2FkeOHEF0dDQOHz6MzMxMyGQyiMVi5XgJHYPGY6eJg4MDHBwcBC3bkhrGDtReitK4TQhtuddGyLjoo7l51HQMGJqnHj164OTJk/jjjz+wfft2REZGIjMzU3mcDxs2TGX5wMBAeHh4YOPGjXjnnXc09mtIPC0VS/0vHo0v29LUTghpG5y6euCFuR8jLW4+8rIzILa0xODXZwp6r7OV2GLtkLWIOhCFk/87iSnpU3QW0KauOcXzMQDdGGPuAG4BeBnAX1skKgMYegZYHblcrtfZNX2lpKSguroanTt3VrZxXnvS/saNG8r/C5mUNjY2Ks9ramoAALt27VLpH4DykhBDyGQyPHjwoEm7tbU1PD09lfny9/eHvb09kpOTsXDhwibLa9s3xpjydV18fHzAGENqaioCAwN15iokJATJyckQi8VwcXFRyYWumIDa4jkpKQl5eXmQy+Xw9/dHaGgoMjIy4OjoiODgYGWfQseg8dhpEh8fj/j4eK3L7N27V3mWu7lkMhlEIhF+/131BvmFhYVqi0ddtOVeGyHjoo/m5rHxMdDcPEkkEuXZ8v79++PYsWNYsWJFk88/1LO1tUXv3r1x8eJFjfEZGk9LxXK/7lvBGl8PramdENJ2uHT/C55/7wN8t/gjnDqwF2JLK4RMfE1YrSK2USmgX9v/GjYM3dBmC2iht6rbCuAogB6MsZuMsdc551UA3gCwH8A5AP/inJ9tvVAfD1VVVdi4cSMWLVqEkydPKh+nTp2Cj48PNmzYAC8vL4jFYuTk5CjXKykpwZkzur8us1evXrCwsMC1a9fg5eWl8ujSpYvBcfv6+go628cYg5mZGUo03NbGy8sLEolE5UNf1dXVOHr0KHr16qWM/9Ah7TdkcXd3R2ZmJtLT0zFt2jSdRbe1tbUyB42LN10xAcDAgQNRXl6OpUuX4tlnn4VIJFIWz43/xNTSYxAVFaUyV9Q9+vdvubs/1l/TeuDAAZX2AwcOCL6uuiFtuddGyLjUx1tdXa2zv+bmsfEx0NJ5qqmpQXl5ucbXy8rKcP78eXTs2FHt6y0Zj6GxnDlzBi4uLk2KdU3thJC2pbN3X4x6OxZmIhGO7/oOv3y3TfC69QW0r5Mv7pTcwWv7X8P1Iv3v4GQKBJ155py/oqF9D7R8+I80tXv3bty9exdTp05tct3iyy+/jDVr1mD+/PmYMmUK5syZA5lMho4dOyIuLg41NTU6f8OTSqWIiYlBTEwMOOcICQmBQqHAzz//DDMzM0ybNs2guIcOHYo5c+bg3r17KnGXl5fjzp07KC4uxoMHD5CYmAiFQoFRo0ap7cfGxgYzZszA3LlzIZPJ4O7ujhUrVuDOnTuYOXMmpFIpoqOjERsbCwsLC4SEhODevXs4ceKEyt0tAMDDwwMZGRkIDQ3FtGnTkJycbNAZSV0xAbVn2vz8/LB582YsXrwYABAUFIQbN27gypUrWLp0qbI/XWPwyitqDyeNmnu5gUKhQH5+PoDaouj69es4efIkHBwclGfGExMTkZiYqLxH9zvvvINJkyYhICAAAwYMwNq1a3H79m2V69BbW8Nxsba2Ru/evZuMCwB07doVOTk5uHr1KmxtbeHg4KD2riLNzaO6Y0BInhrnFgDmzp2LESNGwM3NDXK5HFu2bEFmZqbK/ZVjYmIwatQodO7cGYWFhVi4cCGKi4sRGRmpMcb6eHx8fDB48GBB8bRkLNnZ2YiIULmrqdZ2Qkjb4+kfgGFvzMaeL5bhp39thtjSCv4jxgha10ZsgzVhazDz4Ez8WvgrpuyfgvVD16OzXWfdK5sSzrnJPQCMApDs5eXFNcnLy9P4WnMVFRW1Wt+jRo3iQ4YMUfvapUuXOAC+f/9+LpfL+auvvsqtra25k5MTX7RoER80aBCPiopSLv/cc8/xWbNmNemnpqaGf/HFF7xnz55cIpFwmUzGw8LCeHp6Ouec88jISD5ixAjl8o2faxIYGMgTExNV1kPth0Q5AC6VSvnTTz/N09LSVNZr3H9ZWRmPjo7mTk5OXCKR8GeeeYZnZ2crX6+uruaLFi3i7u7uXCwWc1dXVz5v3jyN+52fn89dXV351KlTeU1NTZO4heyfrpg453zOnDkcAD927JhKLNbW1ryiokJlWW1jUFRUpHHsWkNGRobKONU/IiMjlcssWLCA174d/CkpKYl36dKFSyQS7ufnx48cOaLy+oYNGzgAfuXKFY3b1pV7XXOxflwcHR01jsuFCxd4YGAgt7Ky0hlPczU+BjjXnSd1uY2MjOSdO3fmEomEOzo68sGDB/N9+/apLDNhwgTesWNHLhaLuYuLC3/hhRf42bNnVZZRNwZJSUnKvoXE01KxlJaWcjs7O3706FFB7Y215nu6LhkZGUbbdltE+dLP45qv3w7v58teGsGXvTSC/3Zov17rKioU/G97/sa9v/Lmg/41iF97eE35mrHyBeA4F1qnCl3QGA9/f3+NO9lWi2dDlZWVcWdnZ75s2TKjxbB3717evXt3XlVVpdJuivkyZY9Lvj788EPeq1cvXllZ2erbMpWcaToGjEXTGBgjX4mJiWpPDGhqb4yK57aD8qWfxzlfJ/bsrC2gJ4zk537M1GvdxgX01YdXOedto3g27S8Pf4Ll5uZiy5YtyM/PR25uLiIjIyGXyzFhwgSjxRQREYFZs2bh5s3H65uCiGH27NmDxMREmJs353PHbYupHQOmNAZisVjtXVQ0tRNC2j6/YaMxYMIkgHPsTUrApRO/CF63/hIOPyc/FJYUYsr+KbhWdK0Vo205xn/HJRolJCTgwoULMDc3R79+/ZCVlaW8p7KxvPnmm0bdPjEdx44dM3YIRmFKx4ApjYGmz1MY+jkLQkjb8MzYl1BRWoJjP2zHrhWLMXbOAnTp00/QutZia6wJW4MZB2fUXgO9bwqmPzW9lSNuPjrzbKJ8fX1x/PhxyOVyPHjwABkZGYLvC0wIIYQQ8igwxjDwr5PRN3wEqisrsfOzONz+7znB69cX0P7O/igsLcQXd77ALcWtVoy4+ah4JoQQQgghBmOMYfBr09ErZBAqy8vw3aKPcOfKJcHrW4utsXrwavg7+8NF7AKZlfav8DY2Kp4JIYQQQkizMDMzDI2KRrdnglFeUoztn36AezdvCF6/voCe6jQVFiKLVoy0+UyyeGaMjWKMJT98+NDYoRBCCCGEEAHMRCIM/8e76NrPH6XyIqTFvY8/7vyue8U61mJriJnh34b8qJhk8cw538U5n2Zvb2/sUAghhBBCiEDmYjFGvxML157eUDy4j7S49yG/f9fYYbUokyyeCSGEEEJI2yS2sMTz732IDp7d8LDwDtIWzkdJ0eNzNQEVz4QQQgghpEVZWFvjhdiPIXPrgvu3byLt0w9QVqwwdlgtgopnQgghhBDS4qykdhg/Pw5PdXTB/65exneLP0JFWamxw2o2Kp4JIYQQQkirsGn3FMbPj4O0vSMK/nseOz9biKqKCmOH1SxUPBNCCCGEkFZjJ3PCix/Ewdq+Ha6f+Q27Pl+M6qoqY4dlMCqeCSGEEEJIq3qqYyeMnx8HS1spLp/Iwd6kBNTUVBs7LIOYZPFM93luXZMnT8bIkSM1PtfkwYMHcHZ2xqVLwr81SJ/+hQoNDcUbb7zRYv0R4zF0LhqLocfAk2D8+PFISEgQ3E4IefI4du6KcbEfQ2JlhQv/ycLBL5PAOTd2WHozyeL5SbnPc25uLkQiEQYMGGDsUASJj4/H8OHD4enpCaC20GGMwc7ODowxyGQyjBw5EufPnzdypKrq42SMQSwWw8PDAzExMSguLjZ2aI9EVlYWRo8ejU6dOoExhq+++krQeqtXr4a7uzssLS3h7++P7OxsvbetK/crV67E5s2b9e63oUf5y1TjY8DQ3ALC8qvvGNTH06NHjxYfa13LLFiwAHFxcWh80kNTOyHkydTBqzvGvrcA5mIJTh9OR+amlDZXQJtk8fyk+PLLLzFz5kycOXMG586da3Z/Fa14AX5JSQlSUlLw+uuvq7SHhYXh4sWLKCgoQHp6OkpLSzF27NhWi8NQYWFhKCgowOXLlxEXF4fVq1cjJibG2GEptebYKRQKeHt7Y+XKlbCyshK0zrZt2xAdHY158+YhNzcXwcHBGDZsGK5fv6739rXl3t7eHu3atdO7T2NQdwwYkltAWH4NGYP6eJYsWdKiYy1kmT59+sDDw6PJL0Oa2gkhTy7XXt4YHfM+zETm+HXPTvzn22+MHZJ+OOcm+/D39+ea5OXlaXytuYqKilqt73olJSXc3t6enzp1ik+ZMoXPnj1b5XWFQsEnTZrEbWxsuJOTE4+Pj+cjRozgkZGRymWee+45HhUVxWfPns1lMhnv378/55zzmpoavmTJEu7h4cEtLS25t7c3//rrr5XrRUZG8hEjRmh8rs63337LHRwceE1NTZP1GuZr165dHAAvKSnR2H9ZWRmPjo7mTk5O3MLCgj/zzDM8Oztb+XpNTQ1ftmwZ9/Ly4hKJhHfq1InPnTtXZb9nzZqlfH7w4EFub2/P165dqzZ2dfv397//nXfo0EFQTHv27OG2tra8srKSc875f//7Xw6AR0VFKdefN28eDwsLU9kHTWNQVFSkcexam42NDd+wYYPO5QICAvjf//53lTYvLy+VcRBCV+51zcX6cXF0dFQ7VyIjIzkAlceVK1f0ilEodcdAQ0Jzy7mw/DZnDIqKilp0rIXG8vHHH/MBAwY02Yam9oZa8z1dl4yMDKNtuy2ifOmH8qXZhZ9/5MsnjOLLXhrBc3amcc6Nly8Ax7nA+pTOPBtJWloaunTpAh8fH0yaNAmbNm1CZWWl8vXZs2fjyJEj2LFjBw4fPoxTp06p/VPq5s2bwTlHdnY2Nm3aBACYP38+UlNTkZSUhLy8PMTGxmL69OnYvXu3wfFmZ2fD398fjDGNy8jlcmzbtg19+vTRetbrvffew7Zt27B+/Xrk5uaiT58+iIiIQEFBAQBg3rx5WLhwIWJjY3H27Fl8++23cHNzU9vX9u3bMXbsWCQnJ2P69OmC98fKykol39piGjhwIMrKynD8+HEAQGZmJmQyGTIyMpTrZ2ZmIjQ0VPlcyBioGzt14uPjYWtrq/VhyCUVmlRUVODEiRMIDw9XaQ8PD8d//vOfZvffOPfa1I9LUlKS2rmycuVKBAUF4bXXXkNBQQEKCgo0zpXm5lHIMSCEkPy29hi0ViwBAQHIyclBaWmpoHZCyJOt+zMDMHRGNAAg65sNOJm+x8gRCWNu7ABayvIJxvmQ0ext/zZovZSUFEyaNAkA8Nxzz8Ha2ho//PADxo0bB4VCgfXr12PTpk0YMmQIACA1NRWurq5N+nF3d8fy5cuVz4uLi5GQkID09HQMHDhQuUxOTg6SkpIwYsQIg+K9du0aOnbs2KR93759yvbi4mK4ublhzx7Nk7+4uBhr1qxBSkqKMpa1a9fi8OHDSEpKwty5c7FixQp8/vnnmDJlCgDAy8sLQUFBTfpKTk7Gu+++i7S0tCY/2LXJycnBli1bMHjwYEExxcXFwc/PDxkZGQgMDERmZibeeOMNLF68GAUFBbC3t8exY8ewdOlSZX/axiAkJETZ1nDsNImKisJLL72kdZlOnToJ3n9d7t69i+rqajg7O6u0Ozs74+DBg83qu3HutWk4LhEREZBKpU3Gxd7eHhKJBNbW1ujQoYPW/pqbR03HgL6E5Lc1x6A1Y3FxcUFlZSVu376tvC5cWzshhPR+bjAqy8pwaP0aHEpdja6DhgENTkaZosemeG5L8vPz8dNPP2Hr1q0AAMYYJk6ciJSUFIwbNw6XLl1CZWUlAgIClOvY2NjA29u7SV/+/v4qz/Py8lBWVoaIiAiVM2SVlZXo2rWrwTGXlpY2+eEJACEhIUhISICtrS3u37+P1atXIzw8HL/88ovaM4D1+9bwQ5IikQhBQUHIy8tDXl4eysvLdRZXO3fuxLp165CVlaW2sG5s3759sLW1RVVVFSorKzFmzBisWrVKUExA7YfSMjMzERsbiyNHjiA6OhqHDx9WnoUWi8XK8RI6Bo3HThMHBwc4ODgIWrYlNT7Dyjk36KyrttxrI2Rc9NHcPGo6BgwlJL8tNQaPKpb6vzg1PsOsqZ0QQgCg39ARqCgrRfaWr3A1Yx/ujRyN9p3U/xXRFDw2xbOhZ4DVkcvlkEqlLdZfYykpKaiurkbnzp2Vbbzuk6Y3btxQ/l/ID0kbGxuV5zU1NQCAXbt2qfQPAGKx2OCYZTIZHjx40KTd2toanp6eynz5+/vD3t4eycnJWLhwYZPlte0bY0zwJ259fHzAGENqaioCAwN15iokJATJyckQi8VwcXFRyYWumIDa4rn+Egy5XA5/f3+EhoYiIyMDjo6OCA4OVvYpdAwaj50m8fHxiI+P17rM3r17lWe5m0smk0EkEuH3339XaS8sLDSoeNSWe22EjIs+mptHTceAvoTkt6XH4FHFcv/+fQCAo6OjoHZCCKkXMGY8KstKcfP3OyZdOAN0t41HrqqqChs3bsSiRYtw8uRJ5ePUqVPw8fHBhg0b4OXlBbFYjJycHOV6JSUlOHPmjM7+e/XqBQsLC1y7dg1eXl4qjy5duhgct6+vr6CzfYwxmJmZoaSkRO3rXl5ekEgk+PHHH5Vt1dXVOHr0KHr16qWM/9ChQ1q34+7ujszMTKSnp2PatGk6i25ra2tlDhoXb7piAoCBAweivLwcS5cuxbPPPguRSKQsnhtf79zSYxAVFaUyV9Q9+vfvr3e/mkgkEvj7++PAgQMq7QcOHEBwcLDe/WnLvTZCxqU+3upq3Tfab24ehR4DugjJb0uPwaOK5cyZM3BxcWlSVGtqJ4SQhgZMmATnvi3386y1PDZnntuK3bt34+7du5g6dSrat2+v8trLL7+MNWvWYP78+ZgyZQrmzJkDmUyGjh07Ii4uDjU1NTrPuEmlUsTExCAmJgacc4SEhEChUODnn3+GmZkZpk2bZlDcQ4cOxZw5c3Dv3j2VuMvLy3Hnzh0UFxfjwYMHSExMhEKhwKhRo9T2Y2NjgxkzZmDu3LmQyWRwd3fHihUrcOfOHcycORNSqRTR0dGIjY2FhYUFQkJCcO/ePZw4cQIzZsxQ6cvDwwMZGRkIDQ3FtGnTkJycbNAZSV0xAYCtrS38/PywefNmLF68GAAQFBSEGzdu4MqVK8rrnQHdY/DKK6/oFV9zLzdQKBTIz88HUHtW/Pr16zh58iQcHByUZ8YTExORmJiovEf3O++8g0mTJiEgIAADBgzA2rVrcfv2bURFRRkch74ajou1tTV69+7dZFwAoGvXrsjJycHVq1dha2sLBwcHmJk1PS/Q3DyqOwYMyS0gLL+GjEF9PMXFxS061kJjyc7ORkRERJO4NLUTQkibJPS2HI/yAWAUgGQvLy+NtxRpq7eqGzVqFB8yZIja1y5dusQB8P3793O5XM5fffVVbm1tzZ2cnPiiRYv4oEGDVG6P1viWbfVqamr4F198wXv27MklEgmXyWQ8LCyMp6enc84Nu1Ud55wHBgbyxMRElfXQ4BZhUqmUP/300zwtLU1lPW23qpNIJE1uP1ZdXc0XLVrE3d3duVgs5q6urnzevHka9zs/P5+7urryqVOnqr2NmJD90xUT55zPmTOHA+DHjh1TicXa2ppXVFSoLKttDOpvVadu7FpDRkZGk9u5AVC57eGCBQt47dvBn5KSkniXLl24RCLhfn5+/MiRIyqvb9iwQeet4XTlXp9b1WkalwsXLvDAwEBuZWXVqreq47zpMWBobjnXnV8hyzQeg9YaayHLlJaWcjs7O3706FFB7Y3RreraDsqXfihf+mkLt6ozeqGs7fE43+dZX2VlZdzZ2ZkvW7bMaDHs3buXd+/enVdVVam0m2K+TNnjkq8PP/yQ9+rVS3n/69ZkKjnTdAwYi6YxMEa+EhMT1Z4Y0NTeGBXPbQflSz+UL/20heKZrnk2Ubm5udiyZQvy8/ORm5uLyMhIyOVyTJgwwWgxRUREYNasWbh586bRYiCmY8+ePUhMTIS5+ZNz9ZepHQOmNAZisVjtXVQ0tRNCSFtl/HdcolFCQgIuXLgAc3Nz9OvXD1lZWWrv9fwovfnmm0bdPjEdx44dM3YIRmFKx4ApjYGmz1MY+jkLQggxVVQ8myhfX1/lN9oRQgghhBDTQJdtEEIIIYQQIhAVz4QQQgghhAhExTMhhBBCCCECUfFMCCGEEEKIQG26eOY6vpKZEEKI6aP3ckJIW9Jmi2exWIzS0lJjh0EIIaSZSktLIRaLjR0GIYQIYpLFM2NsFGMs+eHDhxqXcXJywq1bt1BSUkJnLQghpA3inKOkpAS3bt2Ck5OTscMhhBBBTPI+z5zzXQB29e/ff6qmZezs7AAAt2/fRmVlZYtuv6ysDJaWli3a5+OM8qUfypf+KGf6aUv5EovFcHZ2Vr6nE0KIqTPJ4lkoOzu7VnnDzczMhK+vb4v3+7iifOmH8qU/ypl+KF+EENJ6TPKyDUIIIYQQQkwRFc+EEEIIIYQIRMUzIYQQQgghAlHxTAghhBBCiEBUV0WhBwAABVJJREFUPBNCCCGEECIQM+V7JDPG/gfgmhE2LQNw1wjbbasoX/qhfOmPcqYfypd+KF/6oXzph/KlH2Plqwvn3FHIgiZdPBsLY+w457y/seNoKyhf+qF86Y9yph/Kl34oX/qhfOmH8qWftpAvumyDEEIIIYQQgah4JoQQQgghRCAqntVLNnYAbQzlSz+UL/1RzvRD+dIP5Us/lC/9UL70Y/L5omueCSGEEEIIEYjOPBNCCCGEECIQFc+NMMYiGGMXGGP5jLG5xo7H1DHGrjLGTjPGTjLGjhs7HlPDGFvPGCtkjJ1p0ObAGDvAGLtY9+9TxozRlGjI10eMsVt1c+wkY2y4MWM0JYwxN8ZYBmPsHGPsLGMsuq6d5pgaWvJFc0wNxpglYyyHMXaqLl8f17W7M8Z+qZtf2xhjEmPHagq05OsrxtiVBvOrn7FjNSWMMRFjLJcx9u+65yY/v6h4boAxJgKQBGAYgF4AXmGM9TJuVG3C/3HO+5n6rWWM5CsAEY3a5gI4xDnvBuBQ3XNS6ys0zRcArKibY/0453secUymrArAbM55TwCBAGbVvWfRHFNPU74AmmPqlAMYxDnvC6AfgAjGWCCAJajNVzcADwC8bsQYTYmmfAHAuw3m10njhWiSogGca/Dc5OcXFc+qAgDkc84vc84rAPwTwBgjx0TaMM55FoD7jZrHANhY9/+NAJ5/pEGZMA35Ihpwzgs457/W/V+O2h9AnUBzTC0t+SJq8FqKuqfiugcHMAhAWl07za86WvJFNGCMuQIYASCl7jlDG5hfVDyr6gTgRoPnN0FvrLpwAOmMsROMsWnGDqaNcOacFwC1P8wBOBk5nrbgDcbYb3WXddAlCGowxroC8AXwC2iO6dQoXwDNMbXq/qR+EkAhgAMALgH4g3NeVbcI/ZxsoHG+OOf18+vTuvm1gjFmYcQQTc3nAN4DUFP3vD3awPyi4lkVU9NGvzVqN4Bz7ofaS11mMcZCjB0QeeysAeCJ2j+DFgBYbtxwTA9jzBbAdgBvcc6LjB2PqVOTL5pjGnDOqznn/QC4ovavsz3VLfZoozJdjfPFGPMGEAvgLwCeBuAAYI4RQzQZjLGRAAo55ycaNqtZ1OTmFxXPqm4CcGvw3BXAbSPF0iZwzm/X/VsIYAdq31yJdncYYx0BoO7fQiPHY9I453fqfiDVAPgSNMdUMMbEqC0Ev+Gcf1fXTHNMA3X5ojmmG+f8DwCZqL1WvB1jzLzuJfo5qUaDfEXUXS7EOeflADaA5le9AQBGM8auovYy2UGoPRNt8vOLimdVxwB0q/ukpwTAywB+MHJMJosxZsMYk9b/H0A4gDPa1yKonVORdf+PBLDTiLGYvPoisM5Y0BxTqrs+MBXAOc55QoOXaI6poSlfNMfUY4w5Msba1f3fCkAYaq8TzwAwvm4xml91NOTrfINfZBlqr9+l+QWAcx7LOXflnHdFbb11mHM+EW1gftGXpDRSd4uizwGIAKznnH9q5JBMFmPMA7VnmwHAHMAWypcqxthWAKEAZADuAFgA4HsA/wLQGcB1AC9yzulDctCYr1DU/jmdA7gKYHr99bxPOsbYswCyAZzGn9cMzkPtdbw0xxrRkq9XQHOsCcaYD2o/sCVC7cm2f3HOP6l77/8nai9ByAXwat1Z1SealnwdBuCI2ksSTgKIavDBQgKAMRYKIIZzPrItzC8qngkhhBBCCBGILtsghBBCCCFEICqeCSGEEEIIEYiKZ0IIIYQQQgSi4pkQQgghhBCBqHgmhBBCCCFEICqeCSGEEEIIEYiKZ0IIIYQQQgSi4pkQQgghhBCB/h8I5g5kog73YgAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 864x648 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"fig = plt.figure(figsize=(12,9))\n",
"for (l,v) in results.items():\n",
" plt.semilogy(SNR_range_dB, v, label=l, linewidth=2)\n",
"plt.legend(loc=\"lower left\", prop={'size':14})\n",
"plt.grid()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.8"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment