{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# FMR standard problem\n", "## Problem specification\n", "We choose a cuboidal thin film permalloy sample measuring $120 \\times 120 \\times 10 \\,\\text{nm}^{3}$. The choice of a cuboid is important as it ensures that the finite difference method employed by OOMMF does not introduce errors due to irregular boundaries that cannot be discretized well. We choose the thin film geometry to be thin enough so that the variation of magnetization dynamics along the out-of-film direction can be neglected. Material parameters based on permalloy are:\n", "\n", "Exchange energy constant $A = 1.3 \\times 10^{-11} \\,\\text{J/m}$,\n", "\n", "Magnetisation saturation $M_\\text{s} = 8 \\times 10^{5} \\,\\text{A/m}$,\n", "\n", "Gilbert damping $\\alpha = 0.008$.\n", "\n", "An external magnetic bias field with magnitude $80 \\,\\text{kA/m}$ is applied along the direction $e = (1, 0.715, 0)$. \n", "\n", "We choose the external magnetic field direction slightly off the sample diagonal in order to break the system’s symmetry and thus avoid degenerate eigenmodes. First, we initialize the system with a uniform out-of-plane magnetization $m_{0} = (0, 0, 1)$. We relax the system using the Steepest Descent method. We refer to this stage of simulation as the relaxation stage, and its final relaxed magnetization configuration is saved to serve as the initial configuration for the next dynamic stage. \n", "\n", "In the next step (dynamic stage), a simulation is started using the equilibrium magnetisation configuration from the relaxation stage as the initial configuration. Now, the direction of an external magnetic field is altered to $e = (1, 0.7, 0)$. This simulation stage runs for $T = 10 \\,\\text{ns}$ while the (average and spatially resolved) magnetization $M(t)$ is recorded every $\\Delta t = 5 \\,\\text{ps}$. The Gilbert damping in this dynamic simulation stage is $\\alpha = 0.008$.\n", "\n", "Details of this standard problem specification can be found in Ref. 1." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import scipy.fftpack\n", "import scipy.signal\n", "%matplotlib inline\n", "import fidimag\n", "\n", "Lx = Ly = 120 # nm\n", "Lz = 10 # nm\n", "dx = dy = dz = 5 # nm\n", "nx = int(Lx/dx)\n", "ny = int(Ly/dy)\n", "nz = int(Lz/dz)\n", "\n", "\n", "A = 1.3e-11 # J/m\n", "Ms = 8e5 # A/m\n", "alpha = 0.008\n", "B_mag = 80e3 # A / m\n", "B_axis = np.array([1.0, 0.715, 0.0])\n", "B = B_mag * B_axis / np.linalg.norm(B_axis)\n", "m_init = np.array([0, 0, 1])\n", "t_init = 5e-9" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We create and relax the system." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "#max_tau=0.01 max_dm=2.34e-05 counter=0\n", "#max_tau=0.01 max_dm=0.00164 counter=1000\n", "#max_tau=0.01 max_dm=4.22e-05 counter=2000\n", "#max_tau=0.01 max_dm=1.14e-05 counter=3000\n", "#max_tau=0.01 max_dm=4.48e-06 counter=4000\n", "#max_tau=0.01 max_dm=2.24e-06 counter=5000\n", "#max_tau=0.01 max_dm=1.2e-06 counter=6000\n", "#max_tau=0.01 max_dm=6.67e-07 counter=7000\n", "#max_tau=0.01 max_dm=3.79e-07 counter=8000\n", "#max_tau=0.01 max_dm=2.17e-07 counter=9000\n", "#max_tau=0.01 max_dm=1.25e-07 counter=10000\n", "FINISHED AT: max_tau=0.01 max_dm=9.99e-08 counter=10402\n" ] } ], "source": [ "#NBVAL_IGNORE_OUTPUT\n", "mesh = fidimag.common.CuboidMesh(nx=nx, ny=ny, nz=nz,\n", " dx=dx, dy=dy, dz=dz,\n", " unit_length=1e-9)\n", "\n", "sim = fidimag.micro.Sim(mesh, name='relax', driver='steepest_descent')\n", "sim.driver.alpha = 1.0\n", "sim.set_Ms(Ms)\n", "sim.set_m(m_init)\n", "sim.add(fidimag.micro.UniformExchange(A))\n", "sim.add(fidimag.micro.Demag())\n", "sim.add(fidimag.micro.Zeeman(B))\n", "sim.driver.minimise(stopping_dm=1e-7, max_steps=20000)\n", "np.save('m_relax.npy', sim.spin)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can now plot the $z$ slice of magnetisation." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fidimag.common.plot(sim, component='all')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Dynamic stage\n", "\n", "In the dynamic stage, we change the field, 'shocking' the system, and allow the system to evolve in time. This can be thought about in the same way as plucking a guitar string and exciting different modes of the string." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "Nsteps = 2001 # Number of steps in dynamic stage\n", "\n", "# Change the external field\n", "B_axis = np.array([1.0, 0.7, 0.0])\n", "B = B_mag * B_axis / np.linalg.norm(B_axis)\n", "\n", "mesh = fidimag.common.CuboidMesh(nx=nx, ny=ny, nz=nz,\n", " dx=dx, dy=dy, dz=dz,\n", " unit_length=1e-9)\n", "\n", "sim = fidimag.micro.Sim(mesh, name='dynamic', driver='llg')\n", "sim.driver.alpha = 1.0\n", "sim.set_Ms(Ms)\n", "sim.set_m(np.load('m_relax.npy'))\n", "sim.add(fidimag.micro.UniformExchange(A))\n", "sim.add(fidimag.micro.Demag())\n", "sim.add(fidimag.micro.Zeeman(B))\n", "\n", "sim.get_interaction('Zeeman').update_field(B)\n", "sim.driver.alpha = alpha\n", "\n", "ts = np.linspace(0, 10e-9, Nsteps)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Step 0, t = 0.0\n", "Step 50, t = 2.5e-10\n", "Step 100, t = 5e-10\n", "Step 150, t = 7.500000000000001e-10\n", "Step 200, t = 1e-09\n", "Step 250, t = 1.25e-09\n", "Step 300, t = 1.5000000000000002e-09\n", "Step 350, t = 1.7500000000000002e-09\n", "Step 400, t = 2e-09\n", "Step 450, t = 2.2500000000000003e-09\n", "Step 500, t = 2.5e-09\n", "Step 550, t = 2.7500000000000002e-09\n", "Step 600, t = 3.0000000000000004e-09\n", "Step 650, t = 3.25e-09\n", "Step 700, t = 3.5000000000000003e-09\n", "Step 750, t = 3.7500000000000005e-09\n", "Step 800, t = 4e-09\n", "Step 850, t = 4.250000000000001e-09\n", "Step 900, t = 4.500000000000001e-09\n", "Step 950, t = 4.75e-09\n", "Step 1000, t = 5e-09\n", "Step 1050, t = 5.250000000000001e-09\n", "Step 1100, t = 5.5000000000000004e-09\n", "Step 1150, t = 5.75e-09\n", "Step 1200, t = 6.000000000000001e-09\n", "Step 1250, t = 6.2500000000000005e-09\n", "Step 1300, t = 6.5e-09\n", "Step 1350, t = 6.750000000000001e-09\n", "Step 1400, t = 7.000000000000001e-09\n", "Step 1450, t = 7.25e-09\n", "Step 1500, t = 7.500000000000001e-09\n", "Step 1550, t = 7.750000000000002e-09\n", "Step 1600, t = 8e-09\n", "Step 1650, t = 8.250000000000001e-09\n", "Step 1700, t = 8.500000000000002e-09\n", "Step 1750, t = 8.75e-09\n", "Step 1800, t = 9.000000000000001e-09\n", "Step 1850, t = 9.25e-09\n", "Step 1900, t = 9.5e-09\n", "Step 1950, t = 9.750000000000001e-09\n", "Step 2000, t = 1e-08\n" ] } ], "source": [ "#NBVAL_IGNORE_OUTPUT\n", "for i, t in enumerate(ts):\n", " if i % 50 == 0:\n", " print('Step {}, t = {}'.format(i, t))\n", " sim.driver.run_until(t)\n", " sim.save_m()\n", " sim.save_vtk()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Postprocessing\n", "\n", "We read in the data files and compute the spatially averaged power spectral density, which shows the distribution of power in the excited modes." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "m_0 = np.load('m_relax.npy')\n", "mxs = []\n", "mys = []\n", "mzs = []\n", "for i in range(Nsteps):\n", " m = np.load('dynamic_npys/m_{}.npy'.format(i)) - m_0\n", " mxs.append(np.mean(m[0::3]))\n", " mys.append(np.mean(m[1::3]))\n", " mzs.append(np.mean(m[2::3]))" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgEAAAF3CAYAAAA8dZggAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzsnXmcJWV1939PVd2lb++z9OwbMwMzA8ywjICI2ghG0BgjQaNJ3EI0Gk00Ia/LGw0GjGg0KuaVTcWgggriAgrD3jMsw8AwwDD7vk9PT+99+65V9bx/PEs9dW919+X2NPTQ5/v5+OnuulV1q2/jPOf5nd85h3HOQRAEQRDExMN6rR+AIAiCIIjXBgoCCIIgCGKCQkEAQRAEQUxQKAggCIIgiAkKBQEEQRAEMUGhIIAgCIIgJigUBBAEQRDEBIWCAIIgCIKYoFAQQBAEQRATFAoCCIIgCGKC4rzWD/BqMGXKFD5//vwTdr/BwUHU1taesPtNROgzHD30GY4e+gxPDPQ5jp4T/Rk+//zznZzzqSOdNyGCgPnz52P9+vUn7H5tbW1obW09YfebiNBnOHroMxw99BmeGOhzHD0n+jNkjO2v5DxKBxAEQRDEBIWCAIIgCIKYoFAQQBAEQRATFAoCCIIgCGKCQkEAQRAEQUxQKAggCIIgiAkKBQEEQRAEMUGhIIAgCIIgJigUBBAEQRDEBIWCAIIgCIKYoFAQQBAEQRATFAoCqqQvW8Sx/txr/RgEQRAEUTUUBFTJJf+9Gud//dHX+jEIgiAIomooCKiSznT+tX4EgiAIghgVFASMEtfzX+tHIAiCIIiqoCBglGSK3mv9CARBEARRFRQEjBLP46/1IxAEQRBEVVAQMEpcn4IAgiAI4uSEgoBR4lEQQBAEQZykUBAwSlyfjIEEQRDEyQkFAaOElACCIAjiZIWCgFFSJGMgQRAEcZJCQcAoISWAIAiCOFmhIGCUkCeAIAiCOFmhIGCUkBJAEARBnKxQEDBKRuoT8OMn92LpV1a9Sk9DEARBEJXjvNYPcLLjjmAMvO4PWwAARc9HzKaYiyAIghg/0Ko0Sir1BORoxgBBEAQxzqAgYJTwCi0BuSIZCAmCIIjxBQUBo8SvMAogJYAgCIIYb1AQMEoqLQ6gIIAgCIIYb1AQMEoqVQLyLqUDCIIgiPEFBQFVwI2F369QCqB+AgRBEMR4g4KAKjCX80rXdq9SByFBEARBvEpQEFAF5sJfaTqgUsWAIAiCIF4tKAioAnM955UGARQDEARBEOMMCgKqgIeUgMquIU8AQRAEMd6gIKAKTJ9/pYt7pWkDgiAIgni1oCCgCqrxBJASQBAEQYw3KAioAs6jvx8Oqg4gCIIgxhsUBIySSpWASg2EBEEQBPFqQUFAFZiegMqNgWPyKARBEARRNRQEVAN5AgiCIIjXARQEVEGoYyBVBxAEQRAnKRQEVEFodsAIaztj6jwKAgiCIIjxBQUBVRCeHUDpAIIgCOLkhIKAKjCX85Fc/1IIICWAIAiCGHeMaRDAGLuMMbadMbaLMfbFiNcTjLFfydfXMcbmG699SR7fzhh7h3H8nxljmxljmxhjv2CMJcfyd4jilbQNZjIfQNUBBEEQxHhjzIIAxpgN4AcALgewDMAHGWPLSk67CkAP53wRgO8C+Ka8dhmADwA4HcBlAG5kjNmMsVkA/gnASs75GQBsed6rirnujyTzkxJAEARBjFfGUgk4D8AuzvkeznkBwC8BvKfknPcAuF1+/2sAlzCxdX4PgF9yzvOc870Adsn7AYADoIYx5gBIATgyhr9DJPwVlAhqYyB5AgiCIIhxxlgGAbMAHDR+PiSPRZ7DOXcB9AGYPNS1nPPDAL4N4ACAowD6OOcPjcnTV8hIG3wmtQCzbXBvpoBMwR3x3sf6c0jnRz6PIAiCIKrBea0f4JXAGGuGUAkWAOgFcDdj7G845z+POPcTAD4BANOmTUNbW9sJe470YAZK6N+5exfa/ANDnutzYQbYtn0H2rJ7AQAfXTWImbUMX39zatj3+eiqQUyvZfjGCOedjKTT6RP6N5mI0Gc4eugzPDHQ5zh6XqvPcCyDgMMA5hg/z5bHos45JOX9RgBdw1x7KYC9nPPjAMAY+w2ACwGUBQGc81sB3AoAK1eu5K2traP/jSTH/vgYgCwAYMGChWhtXTjkufYjD8D1fSxcuAitb1oA1/OBVQ/gyCDHiM+06o9or+S8k5C2trbX5e/1akKf4eihz/DEQJ/j6HmtPsOxTAc8B2AxY2wBYywOYeC7t+ScewF8RH5/JYDHuKi5uxfAB2T1wAIAiwE8C5EGuIAxlpLegUsAbB3D3yGSV9InIGgWJL5mi97YPBRBEARBvELGTAngnLuMsc8AeBDCxX8b53wzY+xaAOs55/cC+DGAnzHGdgHohnT6y/PuArAFgAvg05xzD8A6xtivAWyQx1+A3O2/moSMga+wbbDrVXZ+waWaQoIgCGJsGVNPAOf8fgD3lxz7d+P7HID3DXHtfwL4z4jj1wC45sQ+6SsjrAQMf642BsoT3QqDBlIMCIIgiLGGOgZWQTXpAFUdUGn74BwFAQRBEMQYQ0FANRjreKVtg9VpxQpbB9KsAYIgCGKsoSCgCsxlvNK1Wi3qlS7u1GGQIAiCGGsoCBglZhOgJ3d2YvlXH0R/rqiPBbMDlCegMiWgwtMIgiAIomooCKgCc5dufv+NVVvRn3OxuyOtj6l0ga4OICWAIAiCGCdQEDBKzLU6WxBmPnOhV99qJaDCEkEKAgiCIIixhoKAKhiqT0DCsQEAfZkgHeBrJUD8TEoAQRAEMV6gIKAKhuoTELNF/t+s8Vdrua9LBCv0BFTRkIggCIIgXgkUBFTBSH0CzDJAv6Q/QLGKdACpAgRBEMRYQEFAFYTSARELtNnytzQIqLRE0DzPoyCAIAiCGAMoCKiCV6YEyGsiqgOGk/nDvoPqnpMgCIIghoOCgCoIKwHGC7InQEFK/mY3QU8PEPLLjkXhR1xLEARBECcSCgJGSVTbYJUOMAMEtfabSsBwqQGvwvMIgiAIolooCKiCUDrAlOq5Mv+pIIAbL5V7AoZb3M2XRppPQBAEQRDVQEFAFZhrshch2wdKQLnD3/QLmKrAvs5BPLzlmPEepAQQBEEQYwsFAVUwlDFQLf5FKQ9EeQeGUgJav92Gj/90feRrr9QTcLA7g/ffvBa7jPbFBEEQBFEKBQFVwHn096oHgHL9h9MB4qvZNjhqh+/pa4Njr7Q64Nm93Xh2XzduXr37lV1IEARBTCgoCKiCkZQApfhH5fVHMgam827o/NL3eCXPR50GCYIgiOGgIKAKhioRVPl+1Ro4yhNgtg2OGis8IMcQe6PwBFgs/J4EQRAEEQUFAVUQrg4wlAAVBMjFlxtrvDqtOEI6IB9RXvhKF3PdnZBiAIIgCGIYKAioCiPXb3xf1OmAck9AaftgIHqiYFR5obqGc44XD/aOWDKovQmkBBAEQRDDQEFAFQxl2lOLb1QQUDpNUFwbEQS4vOw19e2Tuzrx5z94Cj97Zv+wz6cCCeovQBAEQQwHBQGjxFzUVWmgMgaaS7BSDMx1P0oJKHhDpwMGcsI0uGZH57DPpNUEmjlAEARBDAMFAVUQcv2rr5zr3X6kMVBXDAzvCQjMheXnqa/K+DcUKpCwRzqRIAiCmNBQEDBKlOQemhOgJwcGx9Tib0r0w3kCojoGDsryQccefnFXKQVQDEAQBEEMAwUBVRDuEyC+hnfuUSWC4a/mNeaCX4xIB6iXBwseAICxEYKAqHwEQRAEQZRAQUAVqEXZtphe6KNk/qhmQVHnFYx5AgVXlfeVtw0eyvDX3pdDv+wvYJ4X1YeAIAiCIBQUBFSBWoJtxiJd/zoICDn8o4yBctaAUdBfGCYdoEoQ3ZIGAG/91uO44sany+5Bg4cIgiCI4aAgoArU+mxZ0fX/gcwfXKNejlrcVbthIHrugJ5AqO4behaOvOuHhgVFmQsJgiAIohQKAqpALa2OZQVKgKG8exHqgO7nP0IQEFQCoOyYlvmNF4sRbQGVMTDKeEgQBEEQCgoCqkAtrRbDEJ6AcmNgVBWBerloLOpexP20EqDSAcZN8q5X9nykBBAEQRCVQEFANeh0QOAJiBr4E9Xwx0wRqPPyEUpAaIqgfDlQAoLXcsVy81/BKw8WCIIgCKIUCgKqIEgHGNUBkZ6A8oWcD+P6N68NpQO4qiJQMn/wIikBBEEQRLVQEFAF2hgYqg4IXh9OCYhKEUSZCqNmDCgvQHEEJaB0hsEr4dGtx/Dxn66PnGtAEARBvL6gIKAKdImgoQREpwPMBR/yGIzzUHZepIpQohiMpAREVSxE/h6c4671B3UnQgC46vb1eHjLMaQL7jBXEgRBEK8HKAiogsAYyALXv7mbH8bc50ekA8zc/XAlh0oAGMoTUDpjYCRPwPr9Pfj8rzfi2vu2lL1mBgYEQRDE6xMKAqpA7dKH7hiozjOuQfkx3RPAWKzdClIJQ1UHBB0F1XMM3zFQLfT7uweHfI0gCIJ4/UJBwCgQQYD4fuTZAUOrA+4IngCdNijxBgBAfhRKQFou9Cxi0lA6X55mIAiCIF5fUBBQBWpttRj0tnuk2QHBAKGI88x0wDAdA4OmQdFKgEoTRFUsRJGRA4miphLmixQEEARBvN6hIGAUOJZVNh3QsVjZbt5i0c2CokyFlaQDTNXB9AQUSxSIkZQAsz9BKdRjgCAI4vUPBQFVoJZOy6wOkItmzLb0oq4WfhEslLv+laofZQwcTlkwqwOiewxUVh2gdvs84jTzvgRBEMTrEwoCqkEumraFMk9A3LF0YyCdNrCCZkG+L7wE4vVhjIFR1QER6QAzWFALdxAsBK/t6xzE9fdvDd13OCUgaiYBQRAE8fqCgoAq0H0CGNM7e7UWx2ymd+pqwTWVAJ/zsiDAjfQEBO9XVh1g7NLNa0s9AaYS8NlfvoBb1uzB7uPBtEGlBPgRUoBLSgBBEMTrHgoCqiAYJVw+OyBmW0YTIPFVLfqACCAc+XOUMTCyY2CJqTCqmkAcD3sCzNf6c6IS4Fh/Xh9TSkAhQhEojBAE7D6ext3rDw57DkEQBDG+cV7rBzgZUUurE+EJiDsWcsWiOE97AsL9BBytBIj7RBoDh0kHRO3+zeNq/Y7yBKSN+v/hBg25I6QD/uHnG7D92AAuXtKCKXWJYc8lCIIgxiekBFSBWh4txsoMf+HqAHGe2U+Ac8Cxxcfu++U79iBYQPkxY3GPmjugFm6uFYNgN6+OmSWFQVBRvuuPOmbSkykAANr7csOeRxAEQYxfKAioAm4s7moJNqsDgjkBXJ8XpQR4UQv5MAOE/AjFwNzFl04PDAcX4mu2YPQV0M2Hynf9hRGUACYzHNRZkCAI4uSFgoAq0MbACE+AY5e3EjbP87kIFIBoeV+rAxGegFDawCsPDLySa6NKD3NFs7nQcOmAyoyBGWoqRBAEcdJCQUA1hGT+cHWA2UCIR5znc6479OkGQvICxswpgsHbRZUSqsZA5i6+6IWv5Tx8bwDIueWVBVGTC0fqE6BaDWeovTBBEMRJCwUBVaCWR5uVGwNNEyBHuRLAjRJBbeALVRaUS/mlagMQLP7mkCCVx49KLziW+FOb6YBST4DnlwcUQ6F+t4wxcviq/30O/++xncNeRxAEQYwfKAgYBYxFlwiWGvlC1QE+hvQEJIxug1H9BEyvXmSlwDBzB3Q6IGLWgP46RNVBFKXXcM7x6LYOfPuhHcNeRxAEQYwfKAiogkD6D+/wAeUJEMcCT0DYLGgxFponYJYXmumA0lLCyPx/VLOgiPJC9Zo5dVApAFHBw0jpAFVeqM7ryxaHPZ8gCIIYf1AQUAWmMTBIB4hj4Z4A0ccsxmAbpYRRQYDnm/0EoqoIyk19bknbYKBcbTCNgUGAUH6v4gglgiqoUGmDwQJ5AwiCIE42KAioApUPjxog5MgSQc6DWv6wgZDDskQqoXSBNj0BwkAY7icwkhJQjKgs4CVDirLFiBLBiAZFI6YD/LASkC1UXir4zVXbcM/OQsXnEwRBEGMDdQysAu36ZyhLB8S0879UCRDf+5yDgQlTYcmibSoBopSwNB0QPENUEOCVzCww761eC5cIhu8RNgZWViLo6iCg8lkDN7XtBgD8T8VXEARBEGMBKQFVoJZKy1jcPSP/D4jFXu3cxYwBMx0Q7iLoycU4bhoD/XJjoOdzHRhEGQODmQVclwQON4HQLSkzHKo64K71B/Gpnz8fCi5U8KOaCmUqVAJoMBFBEMT4YUyDAMbYZYyx7YyxXYyxL0a8nmCM/Uq+vo4xNt947Uvy+HbG2DuM402MsV8zxrYxxrYyxt44lr9DJCFjYImkbzj/1eIdMhBCpAIsoyeArixwwukAmzEww0Doc464TBEENf7BohoOFqyyY0B4h19WIjiEMfAL92zEA5vacbg3K34Hzo1ug1JhcMvvG0WaOgwSBEGMG8YsCGCM2QB+AOByAMsAfJAxtqzktKsA9HDOFwH4LoBvymuXAfgAgNMBXAbgRnk/ALgBwCrO+RIAKwBsHavfYSh0n4CoZkFGOiCqWRDnHBYr9xMwJgIIMx0gggUWUgdiTnm3Qa0YGJUFOhgpUQzMxb3oBe/l+zw8jMg4T/0enel86F7m/cxgJDdMF8GBXBAE+MMECwRBEMTYM5ZKwHkAdnHO93DOCwB+CeA9Jee8B8Dt8vtfA7iEMcbk8V9yzvOc870AdgE4jzHWCOAtAH4MAJzzAue8dwx/h2GxWPnsAMcuTweUegIsJjwBplRvMwYrFAQIA6HFwm2DS1sOh1IEKqjg5cFCaamgeQwQC3vIeBixPncPFsruUSypEgCGDwLMEcUjjSsmCIIgxpaxDAJmATAHzh+SxyLP4Zy7APoATB7m2gUAjgP4CWPsBcbYjxhjtWPz+EMT2uGXSvpGbb+vzws3ELLkgm8u7rYlAgOzn4AtlQCzvLA8HRCkCMwqAsfwJpjyfbFk4Vd4Pi/5uXyBzsgywEJITSjvNmimBkoxAwizZwFBEATx6nOyVQc4AM4B8I+c83WMsRsAfBHAV0pPZIx9AsAnAGDatGloa2s7YQ+RLxQAMBw9chhF10VbWxu2HhLNctqPHAYArFnzBLYeE9J3T3cnikUPbW1t6O4RefVigePwkSNoa+vCvv15gPvo6+tBwQPa2trQ3p5DLuuDc479+w+ire0Ycvk8bEcEGeuf34CBvTbaj+V0K8FtO3aiLb8PruvDt8Wufe0z67A7xfSz9/T268+ifyCjjz++eg168sEC3X7seNln9uLLm1HfswP9heC8g4fF77DxSCDzr3lyLWbURceX+/oCleDxJ55AU8IC5xxHBjlm1IqgZziea3dxxhQbNc7w500E0un0Cf3veiJCn+GJgT7H0fNafYZjGQQcBjDH+Hm2PBZ1ziHGmAOgEUDXMNceAnCIc75OHv81RBBQBuf8VgC3AsDKlSt5a2vraH6XEL/d+RCAIubOmQPr6AG0trbiyLoDwKaXMX/eXGD/HrzpTRdhYPNRYNPLmD6tBVt7OtDa2oobt62FbTEM+INomTYFra0rsHpgM+LthzB5UhMGci5aW9+Euw9vQKfXjwE3h9mzZ6O1dRnsNQ+hsT6J9swAzlyxAhcunII7DqxHfb4f/YUsFi5chNaLFoA/dD/qUjXozmWw8g1vwJxJKeDBVQCAZCqF1ta3AgAS69uA9CAA4I0XvgnHBnLAk08AAJonTUZr6xvEL7zqjwCAeQsXo/WN83GsPwc89igAYMrUaWhtPQvdGw4BG18CACw/51ycPrMRANAxkEOu4GPu5BQAYMOBHmDt0wCAc99wAeZMSuH5/d342E1r8X/ecRo+3bpoyM/9pYO9+MGqp/DB8+bg+iuWn6C/5slLW1sbTuR/1xMR+gxPDPQ5jp7X6jMcy3TAcwAWM8YWMMbiEEa/e0vOuRfAR+T3VwJ4jAsr/L0APiCrBxYAWAzgWc55O4CDjLHT5DWXANgyhr9DJLpEkAXfm6OEAeUJEK/ZLDxF0LLKjYG2xeSgIaM6wFLpAOjz4o6S/oNjMTtcSuhzs5QwurUwUN4hMOq1giHtq+FDIXNhhNcgZ8j8l33vCVx+w5rI98/Lex+S6sgLB3owHKo6YW/n4LDnEQRBEJUxZkoA59xljH0GwIMAbAC3cc43M8auBbCec34vhMHvZ4yxXQC6IQIFyPPugljgXQCf5pwrHfkfAdwhA4s9AD42Vr/DUHCIAMDM1+vZATIXP1SJoDYGmn4CP8j/mwOELFkiaFYgqMXdbBscN0yAolMhQgbCodoBeyWegKiOhObUQdVtMGQMdMtbDueNIUXKTJgrekjG7FAAoQKMrnRB/37DMZATKZeRUgYEQRBEZYypJ4Bzfj+A+0uO/bvxfQ7A+4a49j8B/GfE8RcBrDyxT/rK4LJ8j5Xs0gGEduWBMdAMAszSP+hz9a5f7/DFeXaJYlBaHeCbx4z3NPsEeKHSv3B5n2MxuLI8MDyRUDxIphjk+nUQEDG+OHQsYpBRZzqP2c2pkKlQBQvZYaoJTFR5oSqJJAiCIEYHdQysEosh1MintERQzQ8QxyL6BLBgkXQ9FQQgdJ5thdUGjwe7/qDvv2+kCHhZMFKmBJQ0C0rGbH2/qOmDGUMJyOl0QHCe6hhYGlyI14L3UvcpuuVKgP46QslgPwUBBEEQJxQKAqrA5wCDGgcsjpnjhcU5waJq7uZF2+CSHT4PPAF+WTogUBs450hE1P/rEkEeBBGOoQ6YUwqLJXn/ZEwGFZ6vgwWlDgDhdIBayKOaCplKgAoCzBJAfW0obRBe/EcqGcxLxYBKCwmCIE4MFARUCyvfpQNmEGAOELJKBgiJa0PNgmQ6IGglHLQX5sOkA0o9Aep5zN4B6tkSjhXqBOh6PhKOrZ/fN4IFdX8zv69k+2LEgl+MaCBkXpuR7YKLoXSAvFZ+NdMCnHP8zY/W4ZbVu/UxFSxkKkwfmPRliyMaDwmCICYaFARUgRoCFOUJMMf/6gFCTLUS5tpPEAogjI6B5q7fVoGGL372Swx/6qtjBQbC4DmCdIDyBCRjdlmzIKUsuF5psKCqA4LzsyVKgG0xnQ6ImkCYd8uVgEJEOkCdbw4h6h4s4Mldnbj+gW1l5+cKrzwI+MydG/DeG59GX7b4iq8lCIJ4vUJBQFWIccAqM81lVz4gbAwsnSeg5Ho1RTA0LMhisBnK0gEWE7t0da8yT4AXdBsUSgDkcwTpACXV15S480Mlh0ZXQVMJMGV+tRNXakLSsQxfQ0Q6wFACBuUCH1VFoO5rlhYe7cuhFBUEmGbFvOthe/tA2bmlPL27CwCwq2PkcwmCICYKFARUgVkiCAg/gFoDg3a9wYKujGxKCShtGxwYA8MpguC8YJceKAG+fB95rcXCkr5WJIJdejJmyWcNWgknjKBCXZtwbL34qwU94Vhlhr9kzDYMiuVmQXNRj+oxEBgDpf+gWJ56MFHXZgvBPb7yu014x/fWoKM/CBoKro9vPLAtdCwpf8+eQVICCIIgFBQEVEEg6YufzUU6qllQ2CdgDgYKKwFWSSmhJasD1MINAHGjCRAgFl/HsvTcAb/kOTxjh68qAYqer++nPAG+H60EqPx+Km7r710jvRAYA410gFueDhiMSAcU9XuUpwNMQ6JbEnxkjfMe29YBANhqqAHP7u3Gzat34//+9mV9rCYuqmF7MgUQBEEQAgoCqoBDlAcyHQSYpX/Brr9UCVCTBVnJFEE1DthiwWLPjXSAH5EOUEqAV3JtqWJglg0mnaAcUC3aiVi5EhC3rbLRw6m4o7/X6YW4HZpOqH7PqHRANiIdUCwpEcwVff0MphKgjIBKMcgUvbLmTL3G4n6wR8xESOeDYEEFT4PGMYIgiIkOBQFVwDnAINQAAODggXzPgl2/WqhsI20QTgeEpX/bCjoGmvfzeVB9ENUnwLGCMcQqWIjqE5CMSyXANZWAIFgwA4PS0cOpuG0Y+YL0gvkcNYbSAEQbA80+AaUpBwDIycDBHEesFm6lBHAe/P5KjenNBDK/6lJoxBv6b5UdobywP1fEmh3Hhz2HIAji9QIFAVUglAAW9gRwDssKpwh0x0A7rARYTM4T8INzHekJCGYHiPkCjJU2ASqpDvDE+6oeA2Xnca5VA5UXN+cEmEGFWV5YpgQknLKxwUknnA5QPQeUJ8Cs5w9KCc1jsgLBLBssKsnfDAKUEhAcUwGJWtyjggDzvRRmKiGKL96zER++7VnsPBakF77/6E7c99KRYa8jCII4GaEgoEpU1z8gkOtt2dwHCNfs2yzsExBKQLC7dz0VQIQrBlQVgdl4KKpPgGNUB+gSQcvY4Rs5fPV+ahdu9gnQ6kDMLvcExAJPQDHKGOj5iNkWYjbTgUE+YtEuyuc17xPVOyCUDiioHgOG+VCep6oOzFx/WnYWzOSDe1TaonjrUbH47z6e1se+8/AO/OMvXhj2OoIgiJMRCgKqIJgdIH72uZLvzUqAoIugPgbZLIihbMF39G4e+liQDggCikRJOsA0FfrGe8acwBhoVgcAsidASTrAM2YHxG2rrBNgbcIuVwLMtIH0JsRsKzIdoHb7RVe0OWaA0YugvGLAXKxVbt88L+/64JyjX9b9m54A5SEYNHb9SmEw2yAf7cti85E+mKjPuUcqC6avwGyrTBAE8XpgxCCAMXYqY+xRxtgm+fNyxtiXx/7Rxi/lJYLSE1CSDuDGgg8A3A88AebYYLWAKukfEKV9ZtvgUk9AqRKgZhF4hqSvziurDvCDFsE6CDDUBtMToBbempAx0CwlDNQMoQQErYlVEBB3LG3qK0rFwLGCzoPmDl/t2M2GQJl8dKOhTMHTQVM6X25CDM09iFAC3nnDE3jX958MBxcyWFATC48ZZYbpEVIJX713M66971WfbE0QBFE1lSgBPwTwJQBFAOCcb4Qc+TtREetsIP0rE6Cq9VfHtPQf8gkEngA9NlgZA8tGCUO3DVb+ASXzq8XX8zhsWSIYHl9sTBGUx0zjntqFJ+QxM1hI2KbhT3ytNYyBSiVIxALFwDOUgGAWgFhwG5JOoAT4IliwGVA0AgOllkSmA4oRPQY8L2R9Ss2EAAAgAElEQVQezIXSB1IJkLt4z+c60DC9Bmq3f6Q3q4+pa/qz4usxo2lR/zDdBn2f43+f3ofbntqrgzuCIIjxTiVBQIpz/mzJsQldZxUoAfJnudBaoRRBsOBbpSWCMoBQa5oXkvTNICCoDgjKDaVPwFQCbHmtUebnGP0EvJIFP+wJiJg7YPYJ0EqA0SfAUBZMA6FjMcRtVtYnoD4Z08eKro+4zWBbQaqh4PqoSzjymvIde8G4X70+zy+pPnCN7z19juv5kfMPzN2/6k7o+xwDMghQSoDZZlgFBlF0DubLzusYyKH1W4/j0a3HhryOIAjitaSSIKCTMbYQYu0DY+xKAEfH9KnGOaI6ALptsPAEAGaJoOr1z1hYMVBNgGzLHAwUXBtUDCBc/69L4kQqQSsBJeWFSh432xeXSv9msyAzbWD6BFxfpDNUQx+z5bB5v9AMA5vBMT0BcsFNxe1ACfB8OLYFx2Kh6oA6Y3EHRFdA9TuYo4brko4+FlWCKK4NqwhRnQs7BoId/tE+oQTkjGBhQJoLzWBEBQYA8LsXDuOxbcHi3pUOPAnq3k/v6sK+rgxubAuGIEXRlyni4m+34YGXJ/T/rQiCeA2oJAj4NIBbACxhjB0G8DkAnxrTpxrniD4BTO/w1ewA2wry/55vNhCCcZ4IDEKzA3wud/hGF0Ff+gmssDHQYgyOxXTZn+oTYCvvQEkVQahZUCxoFlTU6kB5EBDME1A5fIa4DAz8ULBgh4IFxxLVAaYnIOFYoZbDRY8jZos5CWZ1QH0yHATkih4aa2LyWJAOUMGCCALE8bhtlaQPDFUgH04bqPM6BoKde7vM+w8avoL+iCBAHcsVPXzuVy/ib/93vQ7kTAOhOu+QbFqkqkOGYtORPuztHMS//W7TsOcRBEGcaEYMAjjnezjnlwKYCmAJ5/wizvm+MX+ycY6aIgiY1QFR+f9g1JDyDihToS4R9H04lhU6pl3/uh2wuK9tBUqAUhtMU2HQNjh6gBBQ2iwo8ASUHnN93yj9Uz0AfKPk0AwgRDAS8gTIICBmW8HYYHk/mxntgM10QDHwBDTIICCYMeCj1lAM1PHGVCy8+897+n6DBTekGKiAQO30gUC+N1MKatdv3ld5AvZ2DupjKpgwgwB1rQoGRppcuEeWI6rSSYU5mXEoCq6Pg92ZEc8jCIKIopLqgH9hjP0LgL8H8HH581WMsbPG/vHGJ0rmj/IEhPP/YWMgBw/n+nWZH3SfAM6DVILZNlinA1QpYagnQKAsBA1/5HP45SWCRT/CE8DDswOAwFAncv1BKsH1fTAWbjRU9EQ6IO6YJYIeEjFbVgeEgwBRHRD0IqhLlngCCh6atBJQrhiY6YCmmpIgoOChuVZcmysGSkAyZunUQCa0cxeLtKkEKAUgF5EOOG6oCKp6IJ0rVwJUoGGmHrIFD3/6P0/gR0/s0cf2d2VCnzsA3LnuAM792sM6VTEU33pwG978X4/TdESCIKqiknTASgCfBDBL/u/vAVwG4IeMsc+P4bONa4QnwNzhI1QdoIb5mCWCZsWA2RPA8znskvM8mQ5gJX0CbJkOMPv/2zbTKkJUZ8HSEkHX88sW/PAUQXNxF3X9Kj9flP0EYpald65KRRDpAEsrBfniCOkAM9dvyPyAWITrkzFYTBzzZaChz/N8rRo0p+J6noDvc2SLHial4uIZXF8v5I01Mf298hA4FtM7/KxMI9QnHF0lYHoN1BAkc2d/rH9oJUAd68kU9e+1fn83Nh3ux9f+uFWf36t7HQT3vbFtF3ozRTy5s1Mf45xj3Z6uUGBy/8vt4r77ekAQBPFKqSQImA3gHM751ZzzqwGcC6AFwFsAfHQMn23c4kMt7uLnYHZAeRfBUMWAz0OBQWhssCUc8+pnzjlspQQY44BVQ6Jwd8BAHVCBRZAOQLkS4AVdBHU6ICIw8DwuXf8WYiWmQpGWCJoPuZ4Px2aI2SwyHVCqBJgpjYIb7QmoidlIOMJUqO4Z5QloSsW0apHTx+L6PoFiENffK+l/WkNS79yVEjClPqGVhWzRQ33CQcxmOjAIBwHlSoBSANKGkVBds6sj6ESo/i4qCEnnXf07qdeUSgAAj2ztwF/e+gy++/AOfUx5OtqNfgZR+D4PKRgAcM/zh3DP84eGvY4giNc3lQQBLQDMfz2KAKZxzrMlxycOyhho7tzl7IBwJUDpZEFjgFDpKOEhUwklxkCLwbGskBIQKAvR6QCtBBi5/rKOgYZyoQII1xfBQswJ0gEF19flgEoJcGXzIeUJMNMBSZkOME2AMduCw1RqQTxHaXVApuChJi6uzRc9fb1ZHaACi6aUkP6zBU/v3CfVDq8EqF399Mak3rmrwGBKXVz3JsgVPSTjNlJxJzIIUAurKi20WLkSYF6z53jgJ1ABhHk/pQaoY0eMdMD6/d0AgOf3B7t+FXyYTY2u+8MWfOKn60P9Cr77yA6c//VHsF2OXM4VPVx990u4+u6XtDeDIIiJRyVBwB0A1jHGrmGMXQPgKQB3MsZqAUzI9miqT4C5wzd37kDYGCg3zOFmQVZYCQg3GpIeA8ucHSDuYcv7lXoCGGNiIdfHjAFCurlPRJ8Abe7zpaTPQjJ/wfMRsyytDiglQJQDGpMKPZEOiJe0DU444pg5gTAm+wQUPT9Y3BPhSoBsMQggCl6w4Os+AZ7hCZC7/kzR1Tv4ZpUOMEoEG2piut2wChZa6hN6J66VgLqEfj1b8JCK26hLOKF0QMKxUJ90tJ8gnXNRn3DQUBPTSsBAztWfW19WlBCai7VqUmQGAd2DBeTdIJgxGxntkAu42vVzzvXMhHbZ6yBb8PDjJ/fioS3HsMcwMP76+UPwOfDMni4AYYXhYE/wHlGNjq69bwuu+X1QuZArerj2vi3YdLiv7FyCIE4uKqkOuA7CB9Ar//dJzvm1nPNBzvlfj/UDjkeC2QHGFEG/ZJSwH/QJMBf3IDAomRMgy/zEz6qKoLxtsGVBKwEqCLCl295sGxxzojwBhrmvNB3gh3sOAKo6gIeqA4qekN1twxPgSqOhLQMD1QlQeAJsxBxLTxYMVwdwfW5tQjyHWuxzBZUOEJUFKh2gqwOKXigdAAj1IKODAGUM9MvOy7s+MnkXqbiNxpqYTgeo3f/kujgKsoIiK9MSqbgdKAGZIhprYmhIxnRlQTpfRF3SQW3c0cFEOu9idnMNgGCH3zVYwJS6BIDATzCQczGjMQlApAbMoKDd6FioFu6jfTm4no+cF7RcVlUKpnKwQSoGns91H4MdcjqiaVbcLVMUedfDO7//JK6+6yX9Wq7o4ban9uL2tfv1szy+rQO3PbUXX/zNRgxHrujh/9z9Eh7f3hE6TjMYCGL8UNEAIc75cwB+AeC3ADoYY3PH9KnGOapZUNgTEDj3gXA5oEIZAxlTdf2GEmB4Bzw/XB3AS/oEDOUJ8PxAMYhZQTAS1SegbHbAEEqA66tcv6kE+HI3b3gCfI5YRDogEVNKQFDrH1PNgnyOvOfpZ4vZLNQ2uCYuFIi86+tgQacDDCVA7fpFOkAsys06HeBpA6HuO1D0kSl6SMXVzl2mA/IqHSAW6UzBRaYgFInahKPl/b6sDAJqYnrBTudd1CUc1CZs/QwiCEjpawCgK53HopZaAMHkw75sEXPkef05F30yYGipT+h0A+cc7f051MbFhMf2/hwGCsFiqsYnm22Od8nSw46BnA6iVHljR3+QydvXJY6t3d2FrUf7cc+GQ/p+6jUA2NbeL4+JYGTHsbRWDrIFD9f8fhOe3dutz39oyzHc/fwhfPm3gYrwoyf24JyvPYytR/sxHOv3deMf7ngenemJmXEkiFeLSkoE/4wxthPAXgCr5dcHxvrBxjMcolugVbJzty2E2waXdBEEeKiBUGk6wC5ZuJWfwDdkfttS1QG+lvRVKsGcHRAzSv+UOmAGAcHYYBUEiONmIOP6HAWtBMjufTKPL+YEhBUDW6YDSo2BStIHyqsD1E42bltIODbyRV97BbQx0PVRkMGCaQzUngC5uGeLnk4HKE+AqQSoICDneloJaEg6+hwl90+WQUC24GmDoljcg3RAUyqGxpogHTCQc1GXdIR3oCAqFdI5F7OaSpSAdAGLWuoAAD2DBbieL4KFSTX63qpaYPG0OgwWPAzmXaTzIiA5Y1YjAOFFSMsgYFFLHboGCzpQUBzqFqrAYSn318ZtrRiYzZJU2+QNB3r1MbWY7zU8DMrUeED2JSi4PjqlwnDnswdw+9r9+Ne7X9KBwdrdnfL+We3F+M2Gw+jNFPHbFw7r+2450o+/+dE6PL07qIT45qptuP/ldty1/qA+dtf6g7hl9e5QyqI/V8Tz+7tDx37w+C58c9U2muFAEBVQiRJwHYALAOzgnC8AcCmAZ8b0qcY5Za5/s09AqG1w2BholgiG5wQgJMPrtMEQbYMtOXegVAngxoIfCii88K7f9YIAIigl9HWDIu0n8LlsFmT0CXB9mf8PnlcpBjG7fJRwwrGlT4Dr9xbVASJ4UGWCMYdJ6d/TNfpJo8eAmkKYcISKYPYJaIxIBzSlzD4BftmxQZnrr0+KYwM5VwcGtXFb308oEraU+UuUgGQs5OxXSsBgXjQocn2OWU1C5u/NFpErehjIu5jRWIPauI2eTFH7B7QSkC3qgGFxSz0AoDOd114CFQR0pgsYKMogYGqdnqqoUgwr5zXrxfqw9BWcNbcJHfI+HQNCVThlaq32HezvGtTB006ZNlC+gpjNtIpgNifaKfsTqBbKB7ozWilQQYPPRRqCc479huqg+NaD2/Dkrk5884FtAMT/d7YdFfdds+M4ABFIfP7XG3H9A9tCasOn79iAv7hpLe7beFT/bb714Hbc1LYbGw/1yb+ji6vvegk/eWqvvo5zjq/fvxU/3JjXxshDPRlc9r01+MHju2CSKZkeyTnH2t1d+nMFxH9TLxzoqSjwoOCEGE9UEgQUOeddACzGmMU5fxyid8CERaUDmLHgl3kCDOm/1CzI5BTBYAiQkNzV/TyjvDCoDhD3sJjIu3vGOGCtBEiDIiDur+YJlEr/rlEiqOR/dZ65uLuyRDBmmyWCsieAHfYE6CmCDjP6BHhaCVCBTMHjiDmBJ0ApBDFb9BMouL4eI1wTt5GwRWCgzos7wXn5ogfGgh1+tuDpvH7zEH0C1LGsDgKEsjCQc2WKQOT/ARkEyCqF2oSDwUIQBDTIdIAOAnIu6rUnwNWLuwgWHPRni1pin1wbR3NtHL2ZglYSZknvQH+uiF6ZJlCKwfGBvF7czzSUgAFDCQBESuBYfw71CQenTa/HQdm2+EivWPhXzG5Cf85FruihYyCPloYkZjXV4IhUAvZ3ZbB0Rj1mN9dgh1zA93YOoqU+gdOm1+tF70B3BufMbRLfd2Xg+xwbD/Zh5bxmAMDGQ0JR2NWRxnnzJ+nvD/dmMVgQ7aC3tfeLgK/g4aldIiB46VAfOvpzONidxUDeRcxm2HS4H77PsXq7CAYA4H45Y+FAVwZPyD4Kv1h3AADwnBEgPLpNeBF+/+IR3LPhEP7jvi06pfHEzk7cumYPnjri4qEtIoC5efVubGsfwLce3I4e+be667mDOOOaB/Gvdwc+iV8/fwgf/OEz+OCtz2g16l/uehHvvfFp3LQ6mBOx4UAP/v33m0Kpj5tX78byrz6kfwfOOW5ZvRvX37811P9hb+cgHnj5aGhy5l3rD+Lm1btDxzYf6QuZTQGhMHUZaRTOOV440KMDwOGIClAq6VxJnLxUEgT0MsbqAKwBcAdj7AYAgyNc87pHlAiK71Xpnxr4A6g+AcLhr8sG/cBUqBZodVyNElb3M9MBqvEQEG4bbKYILIvJngDi/fVoYj885hcAikaJoGNbsIz7qdkEgNExMGQMDEoETU9A0TAQhtIBsfJrYzLwMF3/cTvI/ysloCZmIxGzQtJ/3A4qBlS6IRUXC3m26CIrF+r6pAPHYrpPgG0x1MrzhBLgojbhGEpAUSoBDmqM++WKvk4HKMNfv6kE5IL8v1ACRLCg/AN1SQeNqRh6MwVtzptcl0BzKo7uTEEbC5tTcdQlHPRnXe0fWGwEAcqUt2xmAwChDgzImUULpcega7CA9r4cpjUmMXdSCr2ZIvpzRRzpzaKxJob5k2v1/Tr6c5han8DMxpqQEjB3Ui1OnVavKxH2dQ5iwZRazGqqwaGeLFzPx+HeLM4/ZTJiNsO+rgz2dA5iIO/iynNnIxmz8NLBPnQPFtCTKeJtS1vgWAy7OtLYeUwEFn9xzmwUPY7t7QNYv78bBc/HP196KgBg/f4ebDkqdvDvXzkH6byLvV2DeOlQHxqSDlpPm6oX/kel+nDp0hZsONCDvOth3d4uxB0LS6bX60qIBze3oyEpej3cvV70Rfjdi4dRG7dRHwd++8JhcM7x6NYOzJFpmQc3tyNb8PCNVdvgc7Hwr95xHJxz/OgJoSgc6M5g9Y7j6BjI4cHN4llufHw3+rJFdKbz+Ohtz+Kna/fjQz9eh/5cER0DOXzn4R0YyLu49r4tKHo+7tt4FNc/sA23rNmD/1q1HYDwXrzzhifwqTs26OBj7e4ufP7XG/GNB7bhJjmQ6s51B/Cu7z+Jt327DS8cECbQx7d14ILrH8Ubr38MqzaJRlI3r96D9974NP7ke2twsDsDzjm+/eB2nHHNg/jMnRt0IHrHuv04/ZoH8d4bn8LxgTw8n+Nzv3wBi//tflx73xb4vujp8d2Hd+DDtz2L25/epw20v91ZwNv+u02na7rSefzjL17Ah368Duv3dev/393+9D585XebsEE+bzrv4uv3b8Wn79ygq032HE/jP+7bjO8/ulMbWI/153DL6t24efVu3UVzX+cgvn7/Vty6Zrf29bx4sBc/eHwXHtlyTKcBd3Wk8ZOn9uIPG48gJ5uKPb2rEz94fBee3t0JzoXi+cyeLvxmwyGs39eNTMGF74vg6c51B/DSwd7Qeb994RAOSMWr6PnYeWwAj2/vwKEe8fnmih7W7enCqk3tOnjuyxbx+PYOPLWrUwdp3YMFPLu3G+v2dKEv/9oEW04F57wHQBbAPwP4awCNAK4dy4ca73AOMCss86tFW+/mfbNFMOR5QcMfZkwM9LgaPoTwtZYsBzQ6AdoW5AAho2MgY7o6IOgnAH2t6wdeAkAu2vLNlRKgfAiOxWAbuf6iJ0b/qvx/3g2aBTnGefqYxcrTAVJFUKN9Q9UBSglwpCfASAfUxEQqoccoJVTDjPJFHxYTaQo1EyFT8HSwkIo7SMZs5Io+LCZUEOWJyBWFEjC1LhFSAlSKIFWaDojZSEmZ3/PFuOHGmhgYGNJ5V+T1cy7qEjFR3pf3dP1+XSKGppo4erNFPW54Um0cTakYeuQiDQANSUdWKhSRytiwLYYFU+Winc7roGJOcwqNNTHtCXAshrmTxHndg3kcG8hhekMScyaJ9MLB7gyO9GYxq6kGUxuE16FjII+OgTzOnNWIGU1JHB/IozOdR0+miPmTU2hIOnhyZyc8n2Nv5yDevmwaahMO1uzoxJHeHDyfY8HkWsxpTuFA9yA2HxH/eK+Y04TTZzbi5cO9OhWwZHo95k1OYVdHWisxV5wzC7c9tRcvH+7Dwe4sHIvhoxfOx02rd+G5fd2oTziwGPAX587GHesOYNPhPrx0sBcr5jThzYun4rrtW3CwO4NHt3Zg4dRavH/lHDyytQMvHujFM3u6cdacJiyf1YifPrMfnek8ntrViY9eOB/7uzL4/YtH8LlLF+OhzcfwruUz0HO8HWt2HMcLB3txtC+Hb1xxJm5avRv3b2oHY+If6Z9fdT6+cM9GfOfhHUg4FrYfG8B/vvcMfPvB7bjvpSPY1zkIz+f4/gfPxj/94gX8/Jn9ONCVQabg4YYPnIXP/epF/M+jO3W/jC+/aym+9setuP/lo7jx8d04dVodzpnbjNvX7sPlZ07HF+7ZiPqkgz9bMRO/Wn8Ql50+HTc8uhOzmmpw6rQ63NS2G+ctmITr/rAFZ85qRF+2iL+7fT3+7zuX4su/24QFU2oRsy189pcv4EuXL8F/P7QdK+Y0Yc/xND595wZctGgKbmzbjfPmT8KqTe3YeSyNt5w6BT98Yi/OntuEbUcH8NGfPItTp9Xjdy8ewdlzm3DbU3vRmc7jYE8GLxzoxZxJNbjm3uP4yVN70VwbxwsHilgwJY7rH9iGzUf6sfFQL4705dBYE8P7b1mLy8+cgef2dqNjIA/HYvjZM/txyZIWbD3aj6P9OdTEbDy4qR2XLp2Gx7d3wOdiY/GDx3dh+exGvHCgV/97952HdmDl/GY8t69bNhwDblm9B7Oba/DSoaBstT7pYHJtXKenAJESnFQbD/XrmN1cg3TeDXXstBhQG3d0/w8AmNmYxGDBC1XvtNQn0Jsp6o2Pet9swdPPC4jeI8K3ow+F2pgDwAeXxPEevPoMGwQwxmwAf+CcXwzAB3D7q/JU4xyRDggv7soToKR0buT/VWAQbu4TBAWqOsAyduDcuNZsAmROIDR380F1gPEeKkXASmV+3wgqxHlK0rdKqwOM+n/xO8jGQLZVohjIKgIryP/n3SAdACglQKYDpCfAVAISMUtL9QCQjAslIF80zjOMhpbLkIjZqJGLdrYQdAdMxW3tMWBM+AtUiaQwASolQAUBRZ0iMIOKTMHVnoC862tJXy1ogHD0pwvCGBgrisBgIC/+oahLiMW9L1vUSsCUujiaU3Ec6M7odEJDTQz1SUf3IGiqiWFybQIWEzv3/mwRDUkHNXEbU+sT6EznMVjkaK6NY0qdSH10DxZxrC+HCxZOxlwjCDjcm8Xs5hSmSsPj8YEcOvrzaFmSxExpXFR59nmTU2iujaPg+dh8pA9dgwUsmFKLuCMmNb4opf45k1KYNzmFfZ0ZbGsfQMxmWDi1DqfPbMA9zx/SXoFFLXVY1FKHnR1p1CdjaKlP4PSZDWhKxfDyoT5sPdqPs+Y0oTEVw4rZTXh+fw9a6hNYOLUOZ85qRNyx8Ny+bmw/NoBPLVmI1tOm4ro/CIPhM3u6cNWbF+C8BZPAmJD/Nx/pw2fethinz2zAj57cixse2Ymix3HZGdPRlS7goS3H8MXfvIx03sV7z56NjS914uH9OfzHfaLlyVtPm4p9XRn86Ik9ONSdwaKWOrxp0WR85m2L8KXfvIwP/XgdGmtiuOLs2dhyRFRSPL+/B2fPbcKfrZiJe54/hG89KHb0n3jLKXjPWbPw1K5O/FCqB5edPh1/+6YF+Pkz+/HZX74IAPjuX65A66kteGxbB95381owBtxx1fl4w4JJ2Hi4D5+6YwMA4Oa/OQdLZzTg0u+sxgdufQaNNTH86CMrMZh3ccVNT+Pqu1/C7OYa/PSq82AzhituehpfvW8LZjYm8dOPnYe1e7rwyZ8/j42H+vDnZ83Ed95/Fp7e3YVP3fE8fvjEXvz5WTPx7fetwBO7OvF3t6/H5iP9+MRbTsGXLl+C/5I+i8aaGP7fX52Nd505A207juPrf9yKbUcH8JFlcXz1Q2/FN1Ztwy2r92BKXRy/+Pj5OG16A667bwse3NKOM2c14oYPnI3lsxvxg8d34VfPHcS8ySn8z1+dg0VT63DNvZuwanM73nH6dHz5XUsxWPBwc9tubDnaj6suWoC/On8uLMZwY9suPLevBx88by4+c/EiHO3L4XuP7ED3YAFfftdSvPfsWdh4uA/3bzyKvmwRH7lwPt6+bBr2dWZw1/qD6BrM4+/fcgr+ZNl0PLqtA6s2taOxJoZLl7bgtOn12HN8EBsP96Ezncf5CyZhxewmrN3ThSd3daIuLtSoBVNr8eTOTmxvH8CkujiWTK/HjMYa7Dw2gO3HBtCQjOHsuc1oqU9g/f4ebDvaj9nNKbxhvkiZbT7Sj/b+HGY0JrGopQ6OZeHozuFLbseKYYMAzrnHGPMZY42cc+oMIhELNAA9O0BI/45tReb/gx2+WKAs6QnwuLFoW+G5Ax4fIh0gg4B8MfAEOFbgHTCNgZYKDJiaNCh29EU/8ATELAu2zXSPgVCwIBf3mBOW9PX4YiuYJ6BUhJht6aCg6HFpDAxUhIJKBzDVfVBWBxi5/lIlwCwHjBvNh5jc4Zs794Ib3vmbSoDqiZAr+sjkPVkdIBbz/pyLwYKQ9IP7iXSAKhEEguY9jTUxHdUf7cuCc6AuYcNmosxRlfnVy3TAkd6slgAn1cYxqTaO7sGC9g7UJx3tMYg7FhpTMdgWw+Q6USbYPVjAdNlLYEpdHJ3pPLwCx6RUXJv5OtNihx9WArI40pvFeQsmYVqDuH738UFkix5aGkQ6AAiMenMn1erP/xGZK18wpVYHssrxP3dyCvMm1+LZvd3YelQs2nHHwukzG/DTtR4e29qBmpiNmY01WNRSh0e2diDh2Dh1Wj0YYzhzViOe3t2FQz0ZfOZtiwEAK+c34+bVe3Ag6eCtp05FzLawdEYDfvXcQXg+x/LZjVg4VQQV331EtE6+/IwZaErFcdq0ety6RgxlumDBJCyZIdImP3tmP6bWJ3D2nGb4nGNGYxJ/3HgUcybV4PwFk5A9YGFKXRwvHezFqdPqMKOxBu88czpuXr0bezoH8eV3LQVjDFeeOxs3r96N/V0ZXHXRAtTEba1UHO7N4rOXit/hs5cuxto9XVgwuRafvUQc+9c/OQ1P7xYzH75w+RJYFsM/v/1UfPaXL+L0mQ149/KZcGwL//ux8/DjJ/fi7ctacOGiKQCA73/gLFxz72asnD8Jl50xAwDwnfefhbvWH8RnLl6k/6Z//Kc3Y92eLlx8Wosuj/3Z356PO589gA+eNweNqRguO2M67vy783E8ncefLp8Jy2K4aPEUPPXFt6ErLYI9ALj4tBbc95mL0D1YwJsWTQZjDF+4bAk+dME8NNTEdIXOxae1oPXUqfB8jiefWAPGGL50+VJ89ML5aKyJ6TTdN69cjm9iOUw+f9kSfP6yJaFj3/vA2ZmWzvoAACAASURBVCjlm1cuLzt2/RXhYy0NSfzkY+eFjl18WgsuPq0ldGx2cwoXLZ4SOnblubNx5bmzQ8dOmVqHS5dNCx2bP6UWHzwvXBm/ZHpD2bNdcMrksmMr5jSVHVN/X5O2wxVV7J9wKkkHpAG8zBh7GIYXgHP+T2P2VOOcsj4BMh2QcMLGQNPcBwT5etVoiHOEJX01O0AGEKoDoRgMJF5TPftd39NBhW1FGQiDboPgwZhax7LCSoAdKAGuVgKMKYK+WLS1MdDlujpAnRe0DbZ0ikA56ROxQAlQO/ygOsBIB0hPQK4YGPlqYraW/tV5wjtgi6BALu7qWhUEpOIOGGNSWfDAGAspAbmiqCIoNQaqFIH6x6t7sKifQ1UMmEGA+qyV8a4uEYPF1OTAvDzmoEkpAYMFJBwLdQkHzak4BnIuuqSy0CA9Bod7s4jZli57nCqDgGMDOb1rn1qfxMuHehH3OSY1i3+UYzbDzmNpuD7H9MYkGmtiaKyJYcvRfvTnXMxsqsHk2jhsi+nc67SGBGbK6oW1Mn8+b3JKB4gPGUGACtbW7u5CzGaY3pDEvMkpDBY8PLmzE+9eMRMAcPpMYVx8dFsHTp/ZAMtiWNRSB8/n2Hq0Hx9703wAwuCocvsXyX8QV86bBM/fjd5MEStmN8nzGvDSQaE+nCONhx9+4zz8++83Y8WcJqyYLd7vwoVTsK19AI7FcM68ZiRjNs6d14zn9/fgirNniSAbDN/9y7PwnYd34Oq3n6oD78vPmIGfPbMff33+PP1sn7t0MfZ3ZfChN87T/33e/ck3YtPhPrz1VLG4nDO3GZ+/7DTs6xzEe8+epY+98JW3IxmzdZDc0pDEY1e3wudcp6Tec9YsnD6zAbOaUrpN97KZDfjv96+AyeJp9bjz4xeEjr17xUz9eStmNdXginPCi9ncySl88fLwQhu1+DQkYzoYVijviYn678+EsSAtqJjRWH4eMX6pJAj4jfwfIeEIL+5i5w45O0CcY7YIVsdcrQSEu/IBYSVApQPMpkJq0WbM8AR4YbPgkOkAQJv4HJuJrn+GJyBoTcy10iCeTXT0i9mWbj5UkAFEIhYs+EqqN0cOqx1uwlARVKmVqA5gcI0dfsxmSDg2+rJFZAviWE3cGCAUkQ4QP4t/VGvjoklP0fN1eiDhCCWAsbAnICtz/am4o3c1A7miThGo67tlDj8VN5QAadALBwEiMKhLOvpvrer162Suv1eaxSbXxsEY06OOD/ZkwBhQF3fQUONg69EibAtoqReL89T6BI6n8zjam8NyuTAKJaCAeodjkbzfpNq4dqGra+dMqtHmuJlNNbAshpb6BDbJHH5LfZAO2NWRxpS6hP49p9QlsK19AHHbwvwptbr0cl9XBvMnp4RnQe4cXZ9j6QxRzrh4Wp3+b1FVMiyaKl4DgNOmie/fe/Ys3LpmDxZMqdVVBefMbdbnqR3b8llNAA5g3uSUbuL0oQvm4ZQpdVg2s0ErFB+9cD4e2HQUf/mGOfrv/K0rl+M3Gw7j428+Rd/3glMm466/fyNMvvTOJXj3iplaqmWM4XPSqGjSUp/E25YkQ8f+oXVR2XnqMzQxx0QrFrXUlx0jiFebEYMAzvntjLEaAHM559tfhWca93AuyirMmQBidoA5LMg0BgaLOxDs0oGg7attRZ3HtIGQ8/IF38zrqzbEPi89JpoWKSUgZlvCyGeUCNoW013/TAOhJxsSlXYMLPocKaNtsDK3OEZTIWVkE50AxbXKXS9UBISmA6qRw/liSXVAyQChoJTQ09cBkAN+PLi+r+X8pKEEJOS9AKBX9vFPxW04tkgnKCXANAaq/L+qDgDCSoBKvRySpXj1CUf/nVTZVl3C0VMOD3RldCMiVcJ4oCuDuoQDy2LaGMgYcKpcIKbWJ7DxUC96MkXdeGhqfQLpvIuCG9xnUm0CW2X5m0obzJ2UwqbD4tgpcsFuaUjqnXVLfQLJmK1TE6dIIyIArJjdiEe3deC06fWI2RYaayxR6phz9eK/Upb/AcBbTp0q/x423r50GlZtbsclS4WkqqoXAOANC8Q1i6fV48F/fgum1CW0F6YxFcN1f34GutMFXRlx2ZnTsW5vN963MtjlMsbKZN25k1NY+6VLQsdOmVqHf33HaRiJVNzBeQsmjXgeQbweGTEIYIy9G8C3AcQBLGCMnQXgWs75n431w41XOAAwBmZ4Akr7BHi+2Seg3BioUglqcTN34PqYrBgINQEydvjqmGOJ6oDSpkL6PD8IOsoqC6ygXNH3w50LXU+UBJl9AlyPi7bBxnlKvneMtIEKAkxjoFIC4rJPgHmtkvQLnl/eLMgIFpR3IJ13wXkQBKgmPR7n2tiXlB0IwYCkY+kBSkqCT8kdW13CEUqA9AmoDonKyJeUxkAAujypsSYGZfQ91BMoAb4RBAh1w0JTjVio93QOYrmUr9Xiva9rUEuxDckY0nlRmqSGIk2tT6BH+gtmaE+ACCQKXtDdcHJtXHsUpss88RmzGnH/y6JMbPE0sahOq09AoXoTTG9IonuwgGUzAgn47cum4dFtHXjLqcFiK8Yup7FUnleXcPDFy5egvS+nd/gAcP0VZ+LKc2fjkqVCNk/FHbx58RSk864ORgBg4dQ6lPKhC+aFfm5IxsokcoIgThyVpAO+CuA8AG0AwDl/kTF2ynAXvO7h4SmCHNDO+lJ1gMEwBnqBpK+OKZlbdQcEgmBBBRCqBFEds22m8/BA2ASoFgLV/lcEI1xL9zHZvc/1fW0W1MqCNAaGpgP6XHYCDNIBokVw4AnIyV25qRikdTrA1imCwRJPABD2CSglQDULSsl0QNHjOlgwjYGci1y6OFfU53MOvZNPxCx0DxbAICYNKk+AagSTkkGBcuWrFAEgdv9dISVAHD8s8/8NNTH991dNeeoSjk7RHOvPoy4hvAnqGbsHC9rEp9IBh3qyWDK9Xt+Tc/E5qe6GMxsD+Vk5/pXLHxC7eXG/uP5vQVULXLRoCv4L27Fker02RSoj2eTauP5dpzUksOUodIACiBr9OZNSWDk/kOhPnV6PnR3pkNHpk29diFKaa+NlxqrbpXFLyfcEQYwPKgkCipzzvpL/807oAeQcPDQ7gMsOf3bIJyCHAFlQRQQhJUC1aVK7fuXwN4+pMcSqgyAQ1Pt7PjckfUtWEQTqgMXMPgE8UAJsJtsGcy3nm+kFs0RQGfcc20LMMqsDhE9ABQtqQE/IE5CP8ATIY47F4MjfVXXhi9nlfQKUEgAAaZlKUE2FCq4Pn0O/n+rtzznXi1vSsZErerAY0yONRe13UV8DAPXJmDbyqWOpuFOSDpBKQG825C9IxW3dNCQcBOT0Qq6+AsEuXgUDAAwlIPi/oypBPHN2sOAq093U+vIgYLK839xJgdFs+ewm/PDDK3W+HgCWyO+VYgEAX7h8CZbNbMC7ls/QxyyL4U0lJrLr3nMGLlnSgkuXhhf4SlCSP0EQ44tKgoDNjLG/AmAzxhYD+CcAT4/tY41vlDEwMAHKkr6SBkJqHLA5ShgIlxcqT0BocI/2CSBY3ENVBOF2wKrW3ys9T6cDfKM6QJQIep4RBLAgCAh1AvR93QlQBQdFL9wYCDCVAKtcCTCqA5QSEHcCJSCTD46ZJYLiHKblfnW/uJE28DnXA5BScQddabEYK4k8KfsOMIiAgslgQE3vU50B65OObh6ijqXitp5gVxO3dHDQMZDHtIZgEW5OxXVHMFVfDwhjpMrhmz0F1C5dpQOAYFEPnyeOLZvRgBmNSZw6rV4bFqcYSoC6tqWhPLgAhKxvokqY/nR54C5fMr0hstyplEm18TIHOkEQJzeVBAH/CODfAOQB3AngQQBfG8uHGu8I576x4Bstd8N9AqI9AUx2+APCnoDgPEMJUOkAoxOgzRg8z2wWpNIBgYGQMdVKmOsJf0BQImiqA0oJcP1w22C1w1eVASqVELQNDhsDzcmCadksJ+HY+phSAlTHQADadR5qG1zwdF5fLfIDuaJQS6TaUHB9eEaQIKoDRGOgVKg6wANDcF4yZusdvir7a0jGtJFPHauJ27olcDIWeAIA6Bw/IHb5h3uziNsWauPh89SibioB82Tr3mRMlCcO5Fxt5GswggC1qMcdC49d3Roqw5pcF7y/GlV8vjS2le7eS1k4tQ6PXf1W3UeAIIiJTSVBwBLO+b9BBAIE1ChhFvIEqAl8zFACgimC4jyzWZAiZAIsUQJUUKH8BeqYY6u6frPksLS9MNNDijxD+hfpADX1z9LnqvJCtQMHDNOeE5QXql7hZv4/r819UZ4AK9IToCqmdNmgLBF0fY6BnKuDAHVtOu/qe6t0gGUxnetOJRxkCi4YY6HqANUsSMn3CcfSQUDKUAJUgJYylABFXcJBTcwGYyIANHfbakfflIqBMaYVAyAIAszzTWPc5FrRK0AZ+cxabTPvX2M8i/r8lkyvx8GuAa0EnDtvEh75l7dgwZRys10pp0QY8giCmJhU0qLovxljWxlj1zHGzhjzJzoJKFMCjLbBWgkoaf0LhJsFqQU/lP8vUQeE+VAt5OK1UE+AUHWAOibPY8FkQdUECBCSfdEPpv6p61WzoLDMH+T6AciRwCJFYFtBsKBq/W0rSAcMRDQLUgu+YwdKyGDBg8XEc6ldf1+2GNT6y8U7nXf1fZRioKYUAmIHP5iXU/9i0hMQEx4D0fUvUAJU72+10NcbufhmuWuvMXb0qbgo4VNGQnNRV7t8FQykIpSAhGPr+86dHOzA1ec3QzbsaTQUAzPvH8Xdn3wjvtMa3s0vaqnX9yQIgqiESvoEXMwYmw7g/QBuYYw1APgV53zCpgRUx0D1zy3nwSRAMzAYWgkwF/zwzh0wDITSLMjNdAATrnwl86try2YMSGVBVRboPgGWMAYWDU+A7ifAwyWCWSOHD8geA17gMQj6BHj63jodYFQHlPYJiNuW8R7BDl8t6P3ZYmjnDogce3CeHWobDIgGLcpQGKQDLKNZUFA2qEgZxkCFWuDVgi/ubev3GCx4oSBAGfJUMGBbDDUxG9miF0oDPPIvb5VzAYL7fv6yJbjhkZ24cKGQ8JUioN5rOOqTMSRsWvAJghgdlaQDwDlvB/B9xtjjAD4P4N8xwX0BlrGbV739bSvY3al0QHSfAJQpAarMzzymgoXQjAGpQJR6AmyLhaYI2kaKQJUDqnNd1evfVj4B41hU6Z/8OeYwXR2g3hMIggB7iD4BZR0DbQuOUgLynpb8VbDRmy3oTn5xHQQU9YJvdgwMlICIHbhcyDmHVgKU2gCE0wGKJr2jF9cyFgQOdQkHHQP5UBCgcuvmol0TF0GAafSbXJfQhkXFO06fjnecPl3/bFsMP/zwylC6iCAIYiyppFnQUgB/CeAvAHQB+BWAq8f4ucY1Pg/X+pvNgsJtg8P9BMxGPpHlgCpYMDwBthXe4asRvkq+V8dUxYBKG4SbBXG9EMdsC2nXLS8RNH4HNUo4Vwhy/epa1SdADQsCAmNgzLZCOXxALNJOyTERQIjnzBQCmV/tknszRS2HJ4ygQi3a6hgQLPTmQq5k9aSxm0/GwkqAxQIT4DRjB96k0wHSaxCzy8rbzPPPlS1vL1wYDA6pS4jyQjMIqJRSNz9BEMRYUokScBuAXwJ4B+f8yBg/z0mDmevX0r8V7hPAOYcla/gBs+EP9CIYSgfIY65f4gkwmgUFTYAMJUC+h+8bZYhWIPO7PkcyFuT/xdyBQB2wLYZiMTD8lbYD1oY86QlQKkLgCTCUgNIgIGbrNIdZCWBWB5SmA3qzRb1Yq8AgnXP1oqoCDfP7KLNeKFhwwkpAfTKm/37zjDy9ehalBKSMHf7SmQ3Y0zmI06YHdfdnz21G27+2hu6h/gY0SIUgiPFOJZ6AN450zkRDme9CnoCSZkG+PGaqA1FKQMEN0gFMqwOmJyCYQwCI9xBGPqNjoJT+w2kDVlb/D0hjoJwToHbotmXB871ACVD5eqOlr/qqug0qMyJgzg6I8gRY+nPKhKoDgsAgJnMDaqEuuD7qkuFd/2DBCxkDFWpRN6X25gglIBELBxUNNcF/+qpsz6QmokrgK+9ahtZTp+KcueHRoPOnhK9/79mz8D+P7YqcxEYQBDGeqCQdsBjA9QCWAdA6KOd8QrcONnP9HEpKD6cIhCcgqCIIDH8oSweo5j4A4HrlfQJU4BGkCAKjoRoHrKoU1P0svesP+gTEZMdAMzDQcweUMVAv7kE7YPU173oi4JEeBouFvQOmEmAqAxYLxguHqwNcvYs3F3eVYzd38zG7PAhQpYRT6sod+0kj/688A0pNqE8EUn1dwsFX370Mi43+92rxV38nQAzmed/KORiJT1+8CO9fOSdy9CpBEMR4opJ0wE8AXAPguwAuBvAxVFZa+LpFdAw0mwWJkkDL7BPgc60ERE0HLB8WNISBkJUMBpLNgoDwCF8mqwi0EiAXc9cXnfWCjoGWbgccpAMs/R7m4q6UgLihBJi9/gGhLISVgKBPQOkCrlIEcWN2QKbgYXpD2BMAiIl8pcf+f3v3Hi1ZWd55/PtU1bl0c+mWRhq5aLfQSBoiYNpWQfEYNBA1sjTqtGuSkYSJmUQzRjPO0hgNS5crOplxZmVGl8NEVxzjBA3jGnsSlNHIGbwAggmC3MYWELq5NAICTdOXU/XMH3u/e797167LPvdz6vdZi3XqVO2qs8/upt9nv+/zPk9YIoiXA8LdfjwTsOGIia73hp0AIViIcwgALjlvc+H7EASE61bH5FhTxXhEZEUYZjBf4+7/AJi7/9TdLwNet7Cntby5J0sBVrrrD4NzuFP30hbBmayBUJwYGE39V+QJWCmAaEaJewejpYQsqEhnJMLzoU5AM7qbD+v6Yeq+2cgDjfA7tBqNvCdAM68T8ExUHTA5zrJiQa1oi+BTB4tBwHgUBEyM5bsDDs10sjv7eOr9iNLuACCqHdA9E3BE9N7QTCeeCQi7DcKsQ2vA9rrwuWsHbNUTEVnJhvkX7qCZNYAfm9m7gD3ASJcc6907IN13b3GdgHggzxP+umYCotmBcJxFz8XNh7KyvjPd7z08k9/hJ2WDy3UCGmnFwLhYUCPbHdBq5oFMd06AFdoGh+Py5/KWw1AcwMdbjbyAULNZKGoTPj8um1u1HBAG9XgmYE22lc/4m995aRaEJO+NZgLGi4V+OgNaYIWgQdv1RGQ1GyYIeDewlqRx0EdJlgTevpAntdyVKwaCZ8WCIM/o73SSx+GweCDPiwWFVsJ0zw4UZhHylsNhff/QTCerORAvJYSgo2nJ8kBXnYBOh5l2J9tyF3IHQmIgJIP8gcPdWwTDckAWVDQbeWXBphUH6Cgxb6xZDAjiG/HwnnhLXbYcMNY99T9eERgAvCzapld+LeQEhLr7cYZ/lZc+fwMnrJvkfRe+oO9xIiIr2TC7A25MH+4jyQcYeemkfmkngGfr3HFGf5w7EJL2jLhYUJTIlw3k+R2+RYN7toafDqAHZ9pZIZ/wsw+1O4VlidByuNBFsN1dNjgkBmZ3+M2KmYBWIyv404z6DsQtgscq1uuT9+aj/ngr7x0QPheKrXSz5YCKzysGAcW6+rHJse7lhXNPOZbLfm0rr4u66FV51hHjfO8DF/Q9RkRkpdOC5yyU1/rj3gFAmtGf9w7Ijit0EaxKDEyOq8odmGlHa/1Z455OlkeQH9fJjgvnkQQQeSJf6CIY7vBDj4F2O+ox0LA84a+RT8MfKHUWbDUs6jHQyH6Pjhcb34xHQUOyA4HotXz7YhAS90I9gnbH886CFbsDqqypKP07OdbsSgIUERlVI53lPxdmxUqAYcCHMKimXQSjaf4467+cExCKACXPVSwHdDqFqXqAg+1ONkAXgoW4EmCW9Z98TqtpHM62DXbPBMSzCGE5YLyVH3eoXUwMDD8jfDbkMwdVywF5MEDXa7G4gU7eBjh8RnclwCpxAaF+wYKIyKiaVRBgZuODjwIzu8jM7jKzXWb2/orXJ8zsS+nrN5jZpui1D6TP32VmF5be1zSzfzKzv5vN+c9VnhgYlgPybH4oJgbGOQHxFsHwXN/lgEZxK2E88EKSE9D1XLucGJgWBgp1AtLtgEnBn0Z23EwIFsJdeaNRSPgDCkl/5QE/OS7fRQDFgbdc6KcV7b+Pp/eD56zLS/OGgX5NxXJAv8E93m1g0c8TEZHEwCDAzKZLg/N24Maeb8iPawKfAn6VpNDQ28xsa+mwS4HH3f1UkjoEn0jfuxXYAZwBXAR8Ov284N3AHYPOYaGUEwPjO3dIBlUvLAeUZgIq9voXGwjFwUL+XHaXbvnugLgTIIRlg/y4TrltcDPfNpgVAWpY1v8gngkI5xsG//HCgJ9P72fPZbUDkucmK5YDwgDeaybg42/6RXa8+OSskU/yevp5FcsB/WYCzIyJVoPjBrTlFREZVcPkBPwZ8HUz+wvgRJJBfZgEwe3ALne/G8DMrgAuBm6PjrkYuCx9fCXwXywZ9S4GrnD3g8A9ZrYr/bzrzOwkkjoFHwPeO8R5zLuklXD3Gn6+RdCyZMFGvGwQrfVXFQsqVwy0aDmg3fHsc8Ige/BwO0oWzGcRGtFA3va8zC/kA+6B+L2NtIqgFxMIg7Hsvd137/FxzdLPiO/SQ35AthwQ3ZjHWfw7tj+XHdufS2w8Ww7ovzugyk1/8uq+r4uIjLJhdgdcbWb/CvgG8DPgnLS18CAnAvdH3+8GXtLrGHefMbMngA3p89eX3nti+vg/kbQz7r/HawFlxYLSqvjtKJsf4uWAHjMBhTv8isTAqDtgXF64PPVfmAmIlhcKiYEdunYCADxzqF3Y6z8T8hpKPwPyO/z4jn2i1T0TMNYnJ6Cc1BevAEy2+q/XjzWKQUB89z9omv+oyfqd/ERERsUwvQM+BLwVOB94ITBtZn/k7n+/0CdXcS6vB/a6+w/MbGrAse8A3gGwceNGpqen5+082p0Oj+zdyw03/ByAO+/6MQB33303034/hw8fZs+eB9j/TJu9Dx/iuuseA+CBhx4E4NZbbmFteuXvfyB57qYbb+TItNPfngcfyo578OkkSHjw4b20Z9pMT09z50PJlrzHfv4kh2ec6elpfrz7MAB7f/YoM4eT5/Y+fJD9z7SZaTu777+P6emHuPfe5Lj9h2bY+/BDTE8/zp7dh7Kqf/f99F6mpx/gwDPPZL/vDdd9lzUtY8/9h7Ln7vjRrfBgk2eezo/77ne+zVjDmDl0AIBHHnqA6emfAfDU48lzhw8+w/T0NPuffhrDcODhB3czPb235/Xet38/ALt/cifTT+3KcjCAef1zXWn27ds30r//fNA1nB+6jnO3VNdwmOWADcB2d3+GZDr+68BfAoOCgD1A3G3lpPS5qmN2m1kLWAc82ue9bwDeYGavJWlmdLSZ/bW7/0b5h7v75cDlANu2bfOpqakhftXhNK69iuOP38i5554O136LTc8/Be68g9O2nMrUyzcz+b1vsvH44/jxvp/xnOds4OXnnQ7XfJNjn70RHniAc84+i6Mnx+D677Dh2OPggQd52UtfkhTLueYbHLPh2fDQQ5x99lkc/cjTcPuPeNYxG5jY/wRTU1Mcuu0huPkHjE2uodFxpqamePQHu+FHP+TIo9fxZOcAU1NTXP3YLdzxxF784EFO2byZqakt3HfdvXDnbcx04LknncjU1JnccOBO2vf+BIBTT3k+U1Onsu7Wb3P/U08CcMHUKxlvNbjNd8FP7gJg+7YX8UvPexb/+Y7vwROPA/DLU1M0G8azbr6Wh/c/xWmnbGJq6jQArn7sVq578D6OWXcUU1MvT/6y29PgcPqpyc/s5Zibr2Xv/qd41cu2cdbJSQe/Nz1yMy/YeBRTrzxl3v5cV5rp6Wnm8+/1KNI1nB+6jnO3VNdwYGKgu/9hGgCE73/q7q8Z4rNvBLaY2eZ0N8EOYGfpmJ3k1QffDHzL3T19fke6e2AzsAX4vrt/wN1PcvdN6ed9qyoAWGiddDmga/o+7ONP9+d3FQvqRGv9WZ+Aii6CnYpywFFiYMgJOFSxRHC47YXaAYdmSp0AG/kfeTmfIH7cjI4baxaXEqB7OSDeyRB+VpydHx7H6/nhhn6iYndA7I9f+wtccPpxnBZ1+fvkW8/md0c4ABARmQ/DLAdsAz4IPC893gB39xf2e1+6xv8u4GqgCXzO3W8zs48AN7n7TuCzwBfSxL/HSAZ20uO+TJJEOAO8093bs/0lF0LDrCsnIKynWyExsCKBsLKBEF0NhBqFPIFi1z9IigWtHctL/2bHRYmB5X398SA81uxe1y/nDoy3Gtm6e1VOQJ4HkH9G+D3XR2WAQxBQlc0fFxWqcv5pz+b8057d9xgREalvmOWALwLvA24FBrRdKXL3q4CrSs99OHp8AHhLj/d+jGQHQK/Pngam65zPfOk4YMVkPIiKBTVC2eBQVCgEC8O2Es4bDWVlg9vR7oCqmgDhXGaKlQvjdsNQDALKswhVz01EA39Vc6AQkMQBQrjDj7f5renTmndQYqCIiCyMYYKAR9K7dokUuwOWiwWFssHFYkFh2aBYY6B76r9qxqDQOyDsDjjcKez1D58XZ/inPzIf1OPtdengW9gJUDETEIz32SIY1xBYvzaZAYgL/qxNZwAaVhEEqJqfiMiSGCYI+FMz+0vgH4CD4Ul3/8qCndUyl04E5Hff0Z178jUZfJNiQfnAF7La47LB4U690ejfbXCm1BgIkgZCceARzmVNs/fgPlF5N58fV94i2KtZz0QpgCgU/Pn1F/K3N93PmSeuy55bmzbwqdrRt2Zc1atFRJbCMEHAbwGnA2PkywEOjG4QUJ7mLy0HmCUdA8s5Ae1sJsC6lhJajV5NheKEv+IA3XG6AoPDM84R48XAIHk9GWgnWvFA3l3wp99MQGjHGz+f5QREXQI3H3sE//ai0wvXLNQJCDMTMS0HiIgsjWGCgBe7u5qqR0LvgKriPqSv+YBiQeXlCynV5wAAGtZJREFUgLiBUN5FsJjwF35eVZW+OMcgrxiYn3M2ExBV2AuPizMGxbX+eJo/tOOFeHdAd05AlVdsOZYXbDyK977mtK7XJrQcICKyJIYJAr5nZlvd/fbBh46GpGxwlLSXLQfkW+46aRfBcrfB5LjuLoLNKMcg/rx4Z0HV9H3ICahsIBTNBDQqlgPKU/rx51XNBBwZBQFdMwYDgoD1a8e5+j3nV76m2v4iIktjmMXYlwI3p938bjGzW83sloU+seUsWQ7o3TvAjDQxsPdMQLltcLGOf0XZ4E53TYDwWUBhKaFREQTkOQHdywGVMwHNiuWAie5yvVW5A8O65NxNABwfJRCKiMjiGWYm4KIFP4sVxvGkd0BpcM97BxQbCFUVC8pbCRdnERpWTDTM8gmi7oD9ivYcmunkRYsqlg2KMwGhmU/3cVnXvx7LAUG5X0AdH3r9Vt534Qtm9V4REZm7YRoI/XQxTmRFyVoJJ9/G0/wQ1wnwtKhQIt76l9+5d+cTzETdBrNGQ504MbB3wZ+O92jzWxUEjPXeRRC68xVnArr/uuS7AyrS/gdoNqzyM0VEZHHoFmwW8sTA7uQ+yOsEdJxCnYB8i2B3saBGdPeeBQZW3DEQxtl4JiAM0o14iSAqGxw0h10OaBaPi2cC1lYk8LWGTAwUEZHlR7dhsxDqBATt0nKAmdH2ZDYgVP0zi3MC8qWEJJs//75hVkwMTMfWdjsvFhQP+NlMQGH9Pwzu+Tlmg3u0O6Ay0bDUtjeeCWg0jDe96EQ2bTgiOn64xEAREVl+FATMQp4YWEr4S8fBplHYIgjJ17hOQLwdsJjoV9wimC8HdLLHraogoKLgT1WdgPGK+v/9cgfWlO7+P/nWswvfN+eQEyAiIktL/3LPQtgiGFfzg+KAH3cRTJ6LcwLyO/dD0b5+SAbwyn4CURfBeNCuzvDvPq5VMYsQpvyLQUXICUhfG7DWH947NovdASIisrT0L/cs9Nr6Fyf3tTuezRhAukQQFwuqKOQDSXBQWTY46h1QNWhXbhusuMOPheS/qtyBIydb2e/aT74c0f84ERFZfhQEzELICeguAhQG/O7nGlbdQAiKd+fFYKF4XHhYmRNQGPAp/Oz4uNgxRyRd/uK7/XBcmGEIrYh7CaWEZ6rqAYuIyLKmIGAWuioGlnoHNBtWSAIEMKy4O6Di7jt5nP+cRrQcEB9XmRNQmRjYPWMQW5sO4FU/43nHrAXgNVs3Vl2C/DMmencHFBGR5U2JgbPh5Tv8fA0/eS66m2/kx7XjmYDSEkDV43g5IH4tHtz7dgLsMRPw1Xeex10PPZV934rWJkKA8ZLnb+C6D/wyz1m3pu+lGK+YiRARkZVBQcAsdCDbI9iwirt+y4sAWXRceYmg2UieKy8HBA3rXiqA4qAdBuH4uKokwHgm4KyT13PWyevzn1PYSph/MygAgDwIOWpSf5VERFYaLQfMRjQTYNbdOyAZ3Is7Bsy6Gw2FMXqsRwJfshxA9BqF90E+uMdLBNVdBHv/UVfNBAzrojOP55JzN/Hb522u9T4REVl6un2bhbhYUJzIF/cOiLcDQjKgtw+XnjMDvHD3HY/BjahsMOQBQvzceKt7Tb4yMbDPFr44WKg7rT/RanLZG86o9R4REVkeNBMwC6FsMJQb/kRBQNfuAIt2BxTX9uPs/EL5X+vOESir2iLYrEoM7DO4x70IBtUFEBGR1UNBwCy4F9f68+WA8FxeQCirE0C+5744EwBj0SDcnRjYPwioSgwMd/a9EgPLqnYWiIjI6qd/8WehsBxA1DsgygnoThbsHszDa4WZgNJx8bjfKs0SQHV2fhjIC8mCfe7wqxoIiYjI6qcgoCb34pR+ueFP+FpVLCgoV/Qr5ASUBvp+RYUgL+9btWww9ExAxc4CERFZ/RQE1BSm9M3yr+ViQckWwWKL4ELlvzBdX1H8p7gboHd54VB4KJT3rVwOqCgqVGVQeWEREVmdFATUFIrjZnf40dR/vBzQ7pRnDPLPyIOF7iCgWbrb7zUTEIKRIyeqgoDu5YB+g3uhAqFyAkRERob+xa8p3IFX5QTEd/2Hu/oJdN/th+n6scIWwWLQEAcBVVP1IQioqicQLwf0U1VtUEREVj8FATWVlwMaZtHUf3dOQN70J/8Mo88WwRAgNIrBQPz5AO959Wm0GsYJ69ekP8ei9yY/rKpfQBUlA4qIjCYVC6rJKU7zF4oFVfQJiBsIBeXAIN6WFy8pJO+vngl496u38K8vOLUww2Bm4J7NAIz3KRAUW5MmF4qIyGjRTEBN3TMBVBYGCqpyAsoDfHzHnhUSqvis8rq+9ZjuD8sBE63hBvc14woCRERGkYKAmvKCP/lOgCArFlRRx7+q6E8Y6OMtguVOgVYRPAwSlgMmxob74x3vs3NARERWL/3rX1M5MbBwp1551598LQQL2XJAxRbB0va+qu6Ag4SfOezg3mtGQUREVjflBNTUtUWwYrq+2WcmwKx7yr+6A2CjcAwMztwPr9adCQC45NxNnB21FxYRkdVPQUBN2UxAVCwoqErmKwcBxXyB5GthOSALJML7888fNBMQuhKGFINhcwIAdQIUERlBWg6oKeQEBIOCgPLafjyOh+z9sYreAWHHgNWZCQhbBNMI4uhJxXgiItKbgoC6SomB1Xf9RM8lX63i+FAkKN4imFciLL4/OW6YmYB8CSH8zO2bjun/O4mIyEjSrWJN5eWAqrv+6t0B3ceHxL2ximJBWSfAAa2EY3mxoPy5Oz96kfoBiIhIJQUBNYXVgDCsFpYD+iQLVs0SjKXLAXHFvnJyYfzaoJmAcG5xkaBJFQISEZEetBxQU5gJCHf7cTDQaHQP9F0zAY14JqC4EyB+vaqvwKA7+nBu400N/CIiMpiCgJryioHFO/xmxd0/RMFCxSxBWmiwULY33yLYvX2wOaDDX/i8YcsFi4jIaNNoUZN7d8dAKN7hxxn95QJC8c186C8wGe3nD7P/VTUHBtb+URAgIiI1aLSoKdxtd3UCbHQP/NAdLMSDepi+7zcTUAgoBswEhOZGKgMsIiLD0GhRUxhoyy1/qwZ+iJcDSL92LxvEDXwaFTMA+fH9zy28Z7yl3QAiIjKYgoCaOqU6AZXbAhvdA31VN8GwDTC+cy8HF7FBMwEhiVCJgSIiMgwFATV18vUAoH+/gORx+Wv+2v5DMwAcGVX2q5pZCAZtETzc7gBw9Brt/BQRkcEUBMxSeSagGAR0H1dVYfBPXreVi844nhdHFf2yssHN7gF/ULGgE9atAeD4dZND/x4iIjK6dMtYU7mVcHPAFsGuYkFR2LX1hKP5zG/+UuHzq4KFYNBMwF//y5dw2wNP1mocJCIio0tBQE2hTkAYzFvN7pmAQtOfqIVw/H0vVbsNyq/1csL6NZywfk3fY0RERAItB9SUVQwsT/NHV7JqOcAqZgyqZJ0AZxEEiIiI1KEgoKZOqZVwK7tzry7vmy8HJN8PiAHy5QUFASIissAUBNRWmgmo6BdglbsDeq/1x6oSDfPPUhAgIiLzR0FATeU6Aa2KQbtQOKgUJAy6m6/KMQhUDlhEROaTRpWast0B4Q4/CwK6C/4kj4s5ATbgbj4U/Km6659QECAiIvNIo0pN2e6AdIzOZwLyYxoVswJVDYSqhCAgBBuxyTFt/RMRkfmjIKCmfHAuZvs3K7YFQr5roKqBUJXxLAjofk0zASIiMp80qtRUngmo7B1QuRxA+nXQckDyeqciCpgY0x+XiIjMH40qNXk5MbDZXdynaotgVQOhKmPp3X67KghQJUAREZlHCxoEmNlFZnaXme0ys/dXvD5hZl9KX7/BzDZFr30gff4uM7swfe5kM7vGzG43s9vM7N0Lef5VuhIDK7b+VTUTagxZLCjkBDSj3gGX/dpWtj7naI6cUIFHERGZPws2qphZE/gU8BpgN3Cjme1099ujwy4FHnf3U81sB/AJ4J+Z2VZgB3AGcALwTTM7DZgB/sjd/9HMjgJ+YGbfKH3mggr35/22CLYqdgpUdRGsEoKEsejzLjlvM5ect3kupy0iItJlIWcCtgO73P1udz8EXAFcXDrmYuDz6eMrgQssmTe/GLjC3Q+6+z3ALmC7uz/o7v8I4O5PAXcAJy7g79AlSwzs2iKYD9pjze5ZgXJuQC9e+ioiIrJQFjIIOBG4P/p+N90DdnaMu88ATwAbhnlvunRwDnDDPJ7zQF05AVXFguLlgEZx8B+0O+DIiWTd/+mD7Xk5XxERkV5W5CKzmR0J/E/gD939yR7HvAN4B8DGjRuZnp6el5/948eTwfnWW27BH2iyZ/chAB5/7LHsZ9z+aD6Af/c732FNy9j78EEAnvj5433P5cn9HQBOsP7HrXT79u1b1b/fYtA1nDtdw/mh6zh3S3UNFzII2AOcHH1/Uvpc1TG7zawFrAMe7fdeMxsjCQC+6O5f6fXD3f1y4HKAbdu2+dTU1Fx+l8zaex6DG67j7LPO4uVbjuXGg3fCPT/huGcfy9TUNgDW3P0o3Hg9AFPnn8+a8SZ//8gPYc9ujjnmGKamXtL3Z1z4qsMcPdkauJ1wJZuenma+/kxGla7h3Okazg9dx7lbqmu4kMsBNwJbzGyzmY2TJPrtLB2zE3h7+vjNwLfc3dPnd6S7BzYDW4Dvp/kCnwXucPdPLuC59+RZK+Hk+5DINx6VDGxFj8vFgoZpArRuzdiqDgBERGR5WLCZAHefMbN3AVcDTeBz7n6bmX0EuMndd5IM6F8ws13AYySBAulxXwZuJ9kR8E53b5vZy4HfBG41s5vTH/XH7n7VQv0eZWH7vmUVANMtfT0SA/Nug3QdJyIispQWNCcgHZyvKj334ejxAeAtPd77MeBjpee+Q5aXvzS8VCegWTG4V3UUHLZYkIiIyGJRxcCaynUCwkxAPHs/VlgOKA7+muYXEZHlQkFATeWKgdlMQDS4typu94etGCgiIrJYFATU1N1AqJF+H+cEdF/Wcm6AiIjIUtOQVFM+E1AsFhQP7q1m77t9LQeIiMhyoSCgplLVYCbT9r4z7bzQb6vidl/LASIistwoCKjJCXUCiomBcevf6pyA4lcREZGlpiCgpk5S1TcLAg7NJE+Mt+JiQRVBQKmRkIiIyFJTEFBTeXdA+HrUZF5yoSoxMBzXL19ARERkMa3IBkJLKUz6h0H9jeecyK69+/iDC7Zkx/TdIqjtASIiskwoCKgpqxiYpgZOjjX50Ou3Fo6pKg0cnqkKEERERJaCbktryuoE9LlyVdsAw0yAlgNERGS5UBBQUycrFlRvMA8TAJoJEBGR5ULLATVliYEDjnvBxqM488R12fflroMiIiJLTUFATXliYP8w4GvvfkW2LRDixMCFOjMREZF6NCTVVG4l3Eujx7S/6gSIiMhyoSCgJp9lTkCoNKgQQERElgsFATWFnIC6+X2hZ0DbfcCRIiIii0NBQE2drIFQvSigmW4NnOkoCBARkeVBQUBNw+YElIWgoaMgQERElgkFATXlxYLqRQGh0dBEqznfpyQiIjIrCgJqGrZOQNmBmTYAk2O65CIisjxoRKopTObX3R1wzsnrAXjR8541z2ckIiIyOyoWVFO5lfCwfuWM4/n+By/guKMmF+CsRERE6tNMQE0hJ2A2NX8UAIiIyHKiIKAmz+oEqOyPiIisbAoCasrrBIiIiKxsCgJq0kyAiIisFgoCaurMsneAiIjIcqMgoKaOaz1ARERWBwUBs1S3gZCIiMhyoyCgprxOgKIAERFZ2RQE1JT1DlAMICIiK5yCgJqUGCgiIquFgoCassRAERGRFU5BwCxpIkBERFY6BQE1tdP1gKaiABERWeEUBNSUBQHKDBQRkRVOQUBNHXcMbREUEZGVT0FATe2Oa3ugiIisCgoCamq7KylQRERWBQUBNXU0EyAiIquEgoCa2h1dNBERWR00ntXU0XKAiIisEgoCauq4lgNERGR1UBBQk3YHiIjIaqEgoKZkJkBRgIiIrHwKAmpqd1wXTUREVgWNZzW1O2g5QEREVgUFATUpMVBERFYLBQE1KTFQRERWCwUBNalssIiIrBYKAmpS2WAREVktFATUpN0BIiKyWmg8q+lwu8OYpgJERGQVUBBQ04HDHcaaS30WIiIic7egQYCZXWRmd5nZLjN7f8XrE2b2pfT1G8xsU/TaB9Ln7zKzC4f9zIV2cKbNmEInERFZBRZsODOzJvAp4FeBrcDbzGxr6bBLgcfd/VTgPwKfSN+7FdgBnAFcBHzazJpDfuaCOjij5QAREVkdFvKedjuwy93vdvdDwBXAxaVjLgY+nz6+ErjAzCx9/gp3P+ju9wC70s8b5jMX1MEZLQeIiMjqsJBBwInA/dH3u9PnKo9x9xngCWBDn/cO85kL6sDhNuOaCRARkVWgtdQnsFDM7B3AOwA2btzI9PT0vHzuyZOHOG5iZt4+b1Tt27dP13COdA3nTtdwfug6zt1SXcOFDAL2ACdH35+UPld1zG4zawHrgEcHvHfQZwLg7pcDlwNs27bNp6amZvVLlE1NwfT0NPP1eaNK13DudA3nTtdwfug6zt1SXcOFXA64EdhiZpvNbJwk0W9n6ZidwNvTx28GvuXunj6/I909sBnYAnx/yM8UERGRISzYTIC7z5jZu4CrgSbwOXe/zcw+Atzk7juBzwJfMLNdwGMkgzrpcV8GbgdmgHe6exug6jMX6ncQERFZzRY0J8DdrwKuKj334ejxAeAtPd77MeBjw3ymiIiI1KeyNyIiIiNKQYCIiMiIUhAgIiIyohQEiIiIjCgFASIiIiNKQYCIiMiIUhAgIiIyohQEiIiIjCgFASIiIiNKQYCIiMiIsqRfz+pmZo8AP53HjzwW+Nk8ft4o0jWcO13DudM1nB+6jnM339fwee7+7EEHjUQQMN/M7CZ337bU57GS6RrOna7h3Okazg9dx7lbqmuo5QAREZERpSBARERkRCkImJ3Ll/oEVgFdw7nTNZw7XcP5oes4d0tyDZUTICIiMqI0EyAiIjKiFAT0YWYXmdldZrbLzN5f8fqEmX0pff0GM9u0+Ge5vA1xDd9rZreb2S1m9g9m9rylOM/lbNA1jI77dTNzM1OWdskw19DM3pr+XbzNzP7HYp/jcjfE/8vPNbNrzOyf0v+fX7sU57mcmdnnzGyvmf2ox+tmZn+RXuNbzOxFC35S7q7/Kv4DmsBPgOcD48APga2lY34f+Ez6eAfwpaU+7+X035DX8FXA2vTx7+ka1r+G6XFHAdcC1wPblvq8l9N/Q/493AL8E/Cs9Pvjlvq8l9N/Q17Dy4HfSx9vBe5d6vNebv8B5wMvAn7U4/XXAl8DDHgpcMNCn5NmAnrbDuxy97vd/RBwBXBx6ZiLgc+nj68ELjAzW8RzXO4GXkN3v8bd96ffXg+ctMjnuNwN8/cQ4KPAJ4ADi3lyK8Qw1/B3gE+5++MA7r53kc9xuRvmGjpwdPp4HfDAIp7fiuDu1wKP9TnkYuC/e+J6YL2ZPWchz0lBQG8nAvdH3+9On6s8xt1ngCeADYtydivDMNcwdilJFCy5gdcwnTI82d3/fjFPbAUZ5u/hacBpZvZdM7vezC5atLNbGYa5hpcBv2Fmu4GrgD9YnFNbVer+mzlnrYX8cJFhmdlvANuAVy71uawkZtYAPglcssSnstK1SJYEpkhmo641s190958v6VmtLG8D/srd/4OZvQz4gpmd6e6dpT4x6U0zAb3tAU6Ovj8pfa7yGDNrkUyBPbooZ7cyDHMNMbNXAx8E3uDuBxfp3FaKQdfwKOBMYNrM7iVZR9yp5MCCYf4e7gZ2uvthd78H+H8kQYEkhrmGlwJfBnD364BJknr4Mryh/s2cTwoCersR2GJmm81snCTxb2fpmJ3A29PHbwa+5Wl2hwBDXEMzOwf4ryQBgNZhu/W9hu7+hLsf6+6b3H0TSV7FG9z9pqU53WVpmP+X/xfJLABmdizJ8sDdi3mSy9ww1/A+4AIAM/sFkiDgkUU9y5VvJ/Av0l0CLwWecPcHF/IHajmgB3efMbN3AVeTZMZ+zt1vM7OPADe5+07gsyRTXrtIkj12LN0ZLz9DXsM/B44E/jbNqbzP3d+wZCe9zAx5DaWPIa/h1cCvmNntQBt4n7trVi815DX8I+C/mdl7SJIEL9FNUZGZ/Q1JsHlsmjvxp8AYgLt/hiSX4rXALmA/8FsLfk76MxIRERlNWg4QEREZUQoCRERERpSCABERkRGlIEBERGREKQgQERFZJIOaCM3i8/5d2vTqjrT5UK3S9QoCRGQoZrbezH6/z+trzOz/mllzFp/9LjP77bmdociK8FfAvJSlNrNzgfOAF5IUDXsxNauuKggQkWGtJ+mc2ctvA19x9/YsPvtzqNa8jICqJkJmdoqZfd3MfmBm3zaz04f9OJKiTOPABEnNgYfrnI+CABEZ1seBU8zsZjP784rX/znwVQAzmzKzaTO70szuNLMvhmlKM/u4md2e9kv/9wBpJ8l7zWz7Yv0yIsvI5cAfuPsvAf8G+PQwb0rLM18DPJj+d7W731HnB6tioIgM6/3Ame5+dvmFtJTs89393ujpc4AzSFrKfhc4z8zuAN4InO7ubmbro+NvAl4BfH+Bzl9k2TGzI4FzyaumQnJXj5m9CfhIxdv2uPuFZnYq8AvkLdi/YWavcPdvD/vzFQSIyHw4Fih33Pu+u+8GMLObgU0kvQ0OAJ81s78D/i46fi8w7DSoyGrRAH5eFVy7+1eAr/R57xuB6919H4CZfQ14GTB0EKDlABGZD8+QrE3G4o6QbaDl7jPAduBK4PXA16NjJtPPERkZ7v4kcI+ZvQUgbR501pBvvw94pZm1zGyMJCmw1nKAggARGdZTJK2Lu7j740DTzMqBQEE69bnO3a8C3gPE/9idBszLtimR5SptInQd8AIz221ml5Lk01xqZj8EbgMuHvLjrgR+AtwK/BD4obv/7zrno+UAERmKuz9qZt9N9zd/zd3fVzrk/wAvB77Z52OOAr6aBgsGvDd67Tzgsnk8ZZFlx93f1uOl2tsG0504vzuX81EXQRGZF2b2IuA97v6bs3jvOcB7Z/NeEZk9LQeIyLxw938ErplNsSCSxMIPzfMpicgAmgkQEREZUZoJEBERGVEKAkREREaUggAREZERpSBARERkRCkIEBERGVEKAkREREbU/wdStjxUuv7lsQAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(8, 6))\n", "plt.plot(ts, mxs)\n", "plt.xlabel('t (ns)')\n", "plt.ylabel('mx average')\n", "plt.grid()" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(0, 50)" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import scipy.fftpack\n", "psd = np.log10(np.abs(scipy.fftpack.fft(mxs))**2 + \\\n", " np.abs(scipy.fftpack.fft(mys))**2 + \\\n", " np.abs(scipy.fftpack.fft(mzs))**2)\n", "f_axis = scipy.fftpack.fftfreq(Nsteps, d=20e-9/4000)\n", "\n", "plt.plot(f_axis/1e9, psd)\n", "plt.xlim([0, 40])\n", "plt.grid()\n", "plt.xlabel('f (GHz)')\n", "plt.ylabel('Psa (a.u.)')\n", "\n", "peakind = scipy.signal.find_peaks(psd, width=2)[0]\n", "plt.plot(f_axis/1e9, psd)\n", "plt.scatter(f_axis[peakind]/1e9, psd[peakind])\n", "plt.xlim([0, 50])" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Lowest frequency peak = 8.295852073963019 GHz\n" ] } ], "source": [ "print(\"Lowest frequency peak = {} GHz\".format(f_axis[peakind[0]]/1e9))" ] } ], "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.7.2" } }, "nbformat": 4, "nbformat_minor": 2 }