{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Design of a Symmetric Broadband Splitter\n", "\n", "Many devices of interest can leverage some form of simulation symmetry to reduce the computational cost and storage requirements. The adjoint solver and its corresponding TO filter toolbox are built to work with these symmetries.\n", "\n", "To demonstrate this, we look at a symmetric, broadband splitter." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Using MPI version 3.1, 1 processes\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/usr/local/lib/python3.9/site-packages/meep/simulation.py:5441: RuntimeWarning: quiet has been deprecated; use the Verbosity class instead\n", " warnings.warn(\"quiet has been deprecated; use the Verbosity class instead\", RuntimeWarning)\n" ] } ], "source": [ "import meep as mp\n", "import meep.adjoint as mpa\n", "import autograd.numpy as npa\n", "from autograd import tensor_jacobian_product, grad\n", "import numpy as np\n", "from matplotlib import pyplot as plt\n", "from matplotlib.patches import Circle\n", "import nlopt\n", "\n", "seed = 240\n", "np.random.seed(seed)\n", "mp.quiet(quietval=True)\n", "Si = mp.Medium(index=3.4)\n", "SiO2 = mp.Medium(index=1.44)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As before, we'll define our geometry, filtering, and wavelength parameters." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "waveguide_width = 0.5\n", "design_region_width = 2.5\n", "design_region_height = 2.5\n", "arm_separation = 1.0\n", "waveguide_length = 0.5\n", "pml_size = 1.0\n", "resolution = 20\n", "\n", "minimum_length = 0.09\n", "eta_e = 0.55\n", "filter_radius = mpa.get_conic_radius_from_eta_e(minimum_length, eta_e)\n", "eta_i = 0.5\n", "eta_d = 1 - eta_e\n", "design_region_resolution = int(5 * resolution)\n", "\n", "frequencies = 1 / np.linspace(1.5, 1.6, 10)\n", "# print(1/frequencies)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We'll also define our simulation domain and set up a broadband source." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "Sx = 2 * pml_size + 2 * waveguide_length + design_region_width\n", "Sy = 2 * pml_size + design_region_height + 0.5\n", "cell_size = mp.Vector3(Sx, Sy)\n", "\n", "pml_layers = [mp.PML(pml_size)]\n", "\n", "fcen = 1 / 1.56\n", "width = 0.2\n", "fwidth = width * fcen\n", "source_center = [-Sx / 2 + pml_size + waveguide_length / 3, 0, 0]\n", "source_size = mp.Vector3(0, 2, 0)\n", "kpoint = mp.Vector3(1, 0, 0)\n", "src = mp.GaussianSource(frequency=fcen, fwidth=fwidth)\n", "source = [\n", " mp.EigenModeSource(\n", " src,\n", " eig_band=1,\n", " direction=mp.NO_DIRECTION,\n", " eig_kpoint=kpoint,\n", " size=source_size,\n", " center=source_center,\n", " )\n", "]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Next, we'll define our design region. This time, however, we'll include a symmetry across the Y plane (normal direction of the symmetry plane points in the Y direction)." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "Nx = int(design_region_resolution * design_region_width) + 1\n", "Ny = int(design_region_resolution * design_region_height) + 1\n", "\n", "design_variables = mp.MaterialGrid(mp.Vector3(Nx, Ny), SiO2, Si, grid_type=\"U_MEAN\")\n", "design_region = mpa.DesignRegion(\n", " design_variables,\n", " volume=mp.Volume(\n", " center=mp.Vector3(),\n", " size=mp.Vector3(design_region_width, design_region_height, 0),\n", " ),\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We'll define a filtering and interpolation function. We need to include the symmetry requirements in the filter too." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "def mapping(x, eta, beta):\n", "\n", " # filter\n", " filtered_field = mpa.conic_filter(\n", " x,\n", " filter_radius,\n", " design_region_width,\n", " design_region_height,\n", " design_region_resolution,\n", " )\n", "\n", " # projection\n", " projected_field = mpa.tanh_projection(filtered_field, beta, eta)\n", "\n", " projected_field = (\n", " npa.fliplr(projected_field) + projected_field\n", " ) / 2 # up-down symmetry\n", "\n", " # interpolate to actual materials\n", " return projected_field.flatten()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We also need to define a bitmask that describes the boundary conditions of the waveguide and cladding layers." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "# Define spatial arrays used to generate bit masks\n", "x_g = np.linspace(-design_region_width / 2, design_region_width / 2, Nx)\n", "y_g = np.linspace(-design_region_height / 2, design_region_height / 2, Ny)\n", "X_g, Y_g = np.meshgrid(x_g, y_g, sparse=True, indexing=\"ij\")\n", "\n", "# Define the core mask\n", "left_wg_mask = (X_g == -design_region_width / 2) & (np.abs(Y_g) <= waveguide_width / 2)\n", "top_right_wg_mask = (X_g == design_region_width / 2) & (\n", " np.abs(Y_g + arm_separation / 2) <= waveguide_width / 2\n", ")\n", "bottom_right_wg_mask = (X_g == design_region_width / 2) & (\n", " np.abs(Y_g - arm_separation / 2) <= waveguide_width / 2\n", ")\n", "Si_mask = left_wg_mask | top_right_wg_mask | bottom_right_wg_mask\n", "\n", "# Define the cladding mask\n", "border_mask = (\n", " (X_g == -design_region_width / 2)\n", " | (X_g == design_region_width / 2)\n", " | (Y_g == -design_region_height / 2)\n", " | (Y_g == design_region_height / 2)\n", ")\n", "SiO2_mask = border_mask.copy()\n", "SiO2_mask[Si_mask] = False" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally we can formulate our geometry and simulation object." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "geometry = [\n", " mp.Block(\n", " center=mp.Vector3(x=-Sx / 4),\n", " material=Si,\n", " size=mp.Vector3(Sx / 2 + 1, waveguide_width, 0),\n", " ), # left waveguide\n", " mp.Block(\n", " center=mp.Vector3(x=Sx / 4, y=arm_separation / 2),\n", " material=Si,\n", " size=mp.Vector3(Sx / 2 + 1, waveguide_width, 0),\n", " ), # top right waveguide\n", " mp.Block(\n", " center=mp.Vector3(x=Sx / 4, y=-arm_separation / 2),\n", " material=Si,\n", " size=mp.Vector3(Sx / 2 + 1, waveguide_width, 0),\n", " ), # bottom right waveguide\n", " mp.Block(\n", " center=design_region.center, size=design_region.size, material=design_variables\n", " ),\n", " # mp.Block(center=design_region.center, size=design_region.size, material=design_variables, e2=mp.Vector3(y=-1))\n", " #\n", " # The commented line above impose symmetry by overlapping design region with the same design variable. However,\n", " # currently there is an issue of doing that; instead, we use an alternative approach to impose symmetry.\n", " # See https://github.com/NanoComp/meep/issues/1984 and https://github.com/NanoComp/meep/issues/2093\n", "]\n", "\n", "sim = mp.Simulation(\n", " cell_size=cell_size,\n", " boundary_layers=pml_layers,\n", " geometry=geometry,\n", " sources=source,\n", " symmetries=[mp.Mirror(direction=mp.Y)],\n", " default_material=SiO2,\n", " resolution=resolution,\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can proceed to define our objective function, its corresponding arguments, and the optimization object." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "mode = 1\n", "\n", "TE0 = mpa.EigenmodeCoefficient(\n", " sim,\n", " mp.Volume(\n", " center=mp.Vector3(x=-Sx / 2 + pml_size + 2 * waveguide_length / 3),\n", " size=mp.Vector3(y=1.5),\n", " ),\n", " mode,\n", ")\n", "TE_top = mpa.EigenmodeCoefficient(\n", " sim,\n", " mp.Volume(\n", " center=mp.Vector3(\n", " Sx / 2 - pml_size - 2 * waveguide_length / 3, arm_separation / 2, 0\n", " ),\n", " size=mp.Vector3(y=arm_separation),\n", " ),\n", " mode,\n", ")\n", "TE_bottom = mpa.EigenmodeCoefficient(\n", " sim,\n", " mp.Volume(\n", " center=mp.Vector3(\n", " Sx / 2 - pml_size - 2 * waveguide_length / 3, -arm_separation / 2, 0\n", " ),\n", " size=mp.Vector3(y=arm_separation),\n", " ),\n", " mode,\n", ")\n", "ob_list = [TE0, TE_top, TE_bottom]\n", "\n", "\n", "def J(source, top, bottom):\n", " power = npa.abs(top / source) ** 2 + npa.abs(bottom / source) ** 2\n", " return npa.mean(power)\n", "\n", "\n", "opt = mpa.OptimizationProblem(\n", " simulation=sim,\n", " objective_functions=J,\n", " objective_arguments=ob_list,\n", " design_regions=[design_region],\n", " frequencies=frequencies,\n", " decay_by=1e-5,\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's plot the design and ensure we have symmetry." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure()\n", "x0 = mapping(\n", " np.random.rand(\n", " Nx * Ny,\n", " ),\n", " eta_i,\n", " 128,\n", ")\n", "opt.update_design([x0])\n", "opt.plot2D(True)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We'll define a simple objective function that returns the gradient. We'll plot the new geometry after each iteration." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "evaluation_history = []\n", "cur_iter = [0]\n", "\n", "\n", "def f(v, gradient, cur_beta):\n", " print(\"Current iteration: {}\".format(cur_iter[0] + 1))\n", "\n", " f0, dJ_du = opt([mapping(v, eta_i, cur_beta)])\n", "\n", " plt.figure()\n", " ax = plt.gca()\n", " opt.plot2D(\n", " False,\n", " ax=ax,\n", " plot_sources_flag=False,\n", " plot_monitors_flag=False,\n", " plot_boundaries_flag=False,\n", " )\n", " circ = Circle((2, 2), minimum_length / 2)\n", " ax.add_patch(circ)\n", " ax.axis(\"off\")\n", " plt.show()\n", "\n", " if gradient.size > 0:\n", " gradient[:] = tensor_jacobian_product(mapping, 0)(\n", " v, eta_i, cur_beta, np.sum(dJ_du, axis=1)\n", " )\n", "\n", " evaluation_history.append(np.max(np.real(f0)))\n", "\n", " cur_iter[0] = cur_iter[0] + 1\n", "\n", " return np.real(f0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally we'll run the optimizer." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "current beta: 4\n", "Current iteration: 1\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 2\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 3\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 4\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 5\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAP0AAADnCAYAAADVeFABAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAj2UlEQVR4nO2dy4os15WGV94zq+rI9pEMskASNG4sG6FX6EHPGmMw/Qim6VlPemTwA/S0X6GHPeuBwXOBRw1qYVvIxgYLLAtbWD7n1CXvmT0oVtSff661I7LqSDrW/j8IMiozYseOqPj3uuy9I3r7/d6EEPXQ/7IrIIT4YpHohagMiV6IypDohagMiV6Iyhi2/K7UvhB/u/SiL2XphagMiV6IypDohagMiV6IypDohagMiV6IypDohagMiV6IypDohagMiV6IypDohagMiV6IypDohagMiV6IypDohagMiV6IypDohagMiV6IypDohagMiV6I58j//N/H9k//+a79y3/9r312vfqyqxPS9mBMIURHPr1c2r//9/u22e3tg0+e2cvnH9p//PM7X3a1jpClF+I5sVhvbbO7e4D05WLzJdYmR6IX4jnx+uMz+9d/+Dvr9cxefWlq//aPf/9lVymk1/LWWj33XogTWW12Nh6+EPY0fO69RC/EVxe97EIIIdELUR0SvRCVIdELURkSvRCVIdELURkSvRCVIdELURkSvRCVIdELURkSvRCVIdELURkSvRCVIdELURkSvRCVIdELURkSvRCVIdELURkSvRCVIdELURkSvRCVIdELURkSvRCVIdELURkSvRCVIdELURkSvRCVoffTt+Dv+uNPXn9ex7nP78+zHveh1wtfmfa5lum/t32KYyT6Avv93na7XbPg3/v9vlnuU272d9bI4LG6NECn1Iu37Sq4rn93KbOtHF7v9XrW7/ePll6vZ4PBoFkXx0j0Bfb7vW2322bZ7Xa22Wxst9s1f6MYo5ssE2abqHHhRsa/y/bnY0V/l+rZJtqu1rXf7x/t01YmlxcdwwU+GAxsOBzacDhs1v2YuK84RKJvwYW/2WyOFhS+2fGNnYkc11G8LHL2LrbbrZnZ0e+8ZMfO6laiJHBex6W0L8NCLZXroh8MBjYej200GjWf+/3+QPgiRqIv4MJy0a/Xa1utVrZarWy5XB6JPtrfP7PFRc8CR2+C16OQ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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 6\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 7\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 8\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 9\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 10\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 11\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 12\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "current beta: 8\n", "Current iteration: 13\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 14\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 15\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 16\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAP0AAADnCAYAAADVeFABAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAmnElEQVR4nO2dO48j6fndHzbvl+m5CCsoWAdrQJAESU6kRJEDK3IiAf4IguHMiSMB+gBO/RUcKHDmQJ9AAjaxIP2xC2MEKVhdPVLv7Fy6m9cm6WBwqg9PP2+xODP/3dHW+QEE2STrwuo673Ottzr7/T6MMe3h7IveAWPM54tFb0zLsOiNaRkWvTEtw6I3pmX0jnzu1L4x/7x0sjdt6Y1pGRa9MS3DojemZVj0xrQMi96YlmHRG9MyLHpjWoZFb0zLsOiNaRkWvTEtw6I3pmVY9Ma0DIvemJZh0RvTMix6Y1qGRW9My7DojWkZFr0xLcOiN6ZlWPTGvEX+92//Gv/xf/wy/vP//D/x2fX6i96dlGMTYxpjGnJxuYr/9r/+JW52+/i//+9lfGX6OP77f/p3X/Ru3cGW3pi3xHKzjZvd7QTSl8ubL3Bvylj0xrwl/s2jSfyXf/9vo9OJ+Nr5KP7rf/j6F71LKZ0jd631vPfGnMj6ZheD3jthT9N57y16Y768+GYXxhiL3pjWYdEb0zIsemNahkVvTMuw6I1pGRa9MS3DojemZVj0xrQMi96YlmHRG9MyLHpjWoZFb0zLsOiNaRkWvTEtw6I3pmVY9Ma0DIvemJZh0RvTMix6Y1qGRW9My7DojWkZFr0xLcOiN6ZlWPTGtAyL3piWYdEb0zIsemNaRu+L3oF/Ro7c9POtLHfsu6+7D+8KnU56b8WTliu9NvVY9A1hke33+zt/v+k6+e/sWV9n72XLHtvmMVRMmdCavnds/XXr0c/00WRb5hUWfQMywe12u1RgnU4nFVY2SJREi3XjdfbQz7Llsm03+TsTGDg7Ozt4nx9nZ2epGI8NDvzdbB3ZdvDodrvVMmdnZ7Hf7y38I1j0DVGRbbfb6nXdMnguPTJBb7fbg8fNzU31jNf6eWkA0P3I9i0jE2UmbhZg9igNABFx8J3SshA1/93r9aLf78dgMIh+vx/9fj+63W61TlOPRX8EFeh2u43NZnMgQBY+W3oWXyZsPLOose71eh2bzaZ65tf8vWwQUKsPsJ+l0IStJD+ryEsi7fV60e12K6F2u93i8tk6ePnSo9frxWg0itFoFNPpNKbTaez3+xgMBgfH3ta+jEXfEIh1s9nEarWqHhBd6ftqudVqQ9B4rFarWK/XB894jYcKn9eP7UXksT6/5jAgc/EzsUbEgZghbgi91+vdEb9a/cyKw1pjeTz0s8FgEOPxOM7Pz+PBgwfV/us2TBmLvgEQD6z8crmM+Xwei8UiVqvVHWvPXgHErQJXS85CXy6XlcBZ8Cx2Xrd6D7zPvE/6Gs8q/KbxNYs/s8occ/O6sBwPFJnw9XW3243BYBDT6TSur6/j5uYmOp1O5e5jPaYei74hLPrVahXz+Tyurq5iuVzGZrM5ED1bdRY1PyBm/kwt+nq9vuPK44H9gTuvcbzmGt5GMq+UqFOLfkz0moRj152f2eWHuHu9Xsxms7i5uYlutxuj0Sgmk0mMx+MYDofVb7G1L2PRH0Fj+pubm1gul7FYLGI+n8d8Po/1en0Qu7PgWdDsqnN4wALH6+12Wz1jUMlidvzN+9rkN2XPSpaEywYDtfgcz8P68nd5EGArvt1uq+dSdr7f70dERL/fj9lsFovFojpOPOiZMhZ9Q1jQbPH5pGNvgF325XJZuexqzdWSc5wOsWOw0Yx/KWZnMouHhFepvMjfK9XCsxBAP2PBZvG9Ju7UsuNZ/wfq9Wh4Zeqx6E+E43uIFOLFCckJOQieLT0sfPZgT0GbcFhoqEljnzJKdXL1DDILWefOlz7nLDzH6OzCQ8wqcnbp8Zzts8b5Tt6djkX/GqjV5+QaW3i28pqcy9x2zvgDFlcTa56JlEUZEamXoINLKWmXbS8iDgSrSbhj5bjM4mPdvG9w/0ejURXDDwaDgxDCHMeiP4GsZs/JOi67qdjZrVe3lJNxatX1RNb6eeZeZw0tKoosTMhE38Saar0dFl6fswRdJniIXo/1breLs7OzGAwGMZvNYjKZxHA4jH6/b9GfgEV/Ipw111JbFsfDtVfBl8QecdhVlsXOmixjsWSuM7vW7C5rF5+KPsu883Fg2G3XWruW3eosPHs1vI845hFRle0mk0mMRqNqULGb3wyLviFZFl9Fjr9LcTw352Rij8gTY6XmF32N75UsLbvoWRswiz7Lnuuy/NBlUDfP9k/r+rodwPvGx63f78dkMonpdBrD4dDu/YlY9CeiSTzNzkP0meA5G89i15hbM90sXnSl4TVOevSg84PfV2ufiZ7RfWDv49hgUbLk2TpLA0vE3a7Gm5ubat9Qn2fRm2ZY9A3QtlVYHk7MwdKr2JGpZ8Fz6ygn6jL3l4ULsY9GoyqJhWe9AIVfc0KtlNDL3HstseEYcH+Ahga8DWyTQxEeQPQ99m6y/Am2ibh+PB7HYDC4U9rj/1mbKXk+Fv0JaAJPe+U1xkf9HuW3UmZeE1vcVjoYDCpx44HMNYsfj5LFz+J6/CYWV8TdwShz7Uv5APwubdoplQB1/WyxuT2Ym29wvFjw2e9ou/DRyKRY9A1Rq6MXymhnnSbrWOwsAnbf1VJnYudyFZetULrKLHyWKOPfFXG3bTcTPC+Tib6u5Mfr5e9k3y8dd84fYIDk34P9wW82ORb9CWRdeXr5q17xBjFxPZtjX3Xf+YFLSPFg0eM9tfJ1GfNS6a1pGy6+q1a1ZO35Wd/Xbehr3T8dWDhM0ErIYDA48p9sNxb9CWg3nl7PriKIeHVybrfbOwJiNz6z6nDdM7HDwrOVzyx7qRym7rr+RhXsMetb1xLcZDv4Xkn06r7zerlFGcd6t9tV9fts222h5O1Y9A3Rcp1OXFHKyrM1Yree3XkIXi17ydLz4ACXvtT9pplytaz4bRmZ6FnYEOPZ2dnRmXqy93e73Z1111n77H/Bnw0Ggzg7O4u///3v8dFHH8Uf//jH2O12MRqNotPppPMefJn52c9+lr5v0Z8AWzXuqNMEHUQdcSh8nNAQKFt4ddtZ3Po3t5+WBJ+Vxkqxcyb+7HMFYsfrkrXPQoLS9uoabLKwYrvdVonT4XAY+/0+fv3rX8fPf/7z+NWvfhUREePxOHq9Xmw2m/I/90uIRf8GZOWjuj55JJMgBP6cG2hU1Cx6FfgxV57LYqW4PbOqeJ39ZuxzZrE1htdjVBf7Z8k/bKsupMAzN0ctl8u4vLyMly9fxmaziaurq/jNb34TH3/8cbXsYrGo+/e2Dov+BLJylVq6rIQUcdi4wlY+c985QYfBgZtstARW2k8tw8Gd5gYdXU5pklhTMfOzVjB0wNRt1m0v4jZpt16vY7FYxMuXL+PZs2dxcXERn376aVxcXMQnn3zSOlf+FCz6hvBJp1lkPENIpfIXt9FqHM8lOG64yZprtGbOCUbdZwxGnFOoi9VPOR4lkau4Nf+R5UFKA5DO97fb7Q4s/GeffRaffvppPHnyJJ48eRL/+Mc/4tmzZ3FzcxO9Xi92u53Ld4JFfwIll7R0UrHIuAkH7bPq3quF54YdXpe6urwNtqrHGmKy36evm3gSmdizyUB12q+stFm3brby8/k8Xrx4EU+fPo2Li4u4uLiIp0+fxosXL2I+n1fb0t9lLPo3gl12bXHNOtK4Lo+pnLk8BzeerxHPro7juBbAqqsbD+oSeVg+e85gb6bOmutsQNzXwHMQqMuv6+SLbdAEdXV1FZeXl/H06dP47LPP4vnz5/Hy5csqqafHxtxi0Z9AZuHRUcedYFnWPOuph2VXl57XE3EbQmjmGx4GC15FnT0fs978W0tJPo3ZMQipVWeh86y+PLsvTwvObc5Yjw4msPSXl5eV+C8vL6tWaMfz9Vj0J8BuNATM3V86hXPmBWh/vV40o/E7k2W+IbysDl/3O3S9WTmtJPwsftepvvnSY74wia9X4DZmXkd2XwDeFmL6xWJRTVDKU5bZstdj0Z8IJ+QgWgiNk2/wAFiMbP1V+McugdUEIV+9pkk6DQXwOqMuE8/b4/Vw4pAtvM4ZyJad5wzU1mWdGFRFn+UKdPISnv/foq/Hoj8B7ZeHlYY7rkk4tfQR+TXneiWcJgbVwkfcdvhh/vfSJbDqEeh6df0aV+tgw9/NYne9oUf20Km/M5Gr1eftquvPA4MFfxyLviGwoGisQY0dJxsy8nzFWzYbDGBLXbooRisFasnwPXbvmSw5poOBrrdUS9eBRxNtKvjSffjUwuuFSll8zxfTZOXACCfrTsGib4DG8miYGY1G1YnIHXZ6rbe66VzjzzrpSjF31tSioQMvo1nwOvHj/ew2WeoFsPiy23Zxdl7n9tdLkdVSZ2JXceugo7/H1GPRN4Rjebj14/G4EjSX4Nhd56vBVHQscrXSoK7phfcr8xBKpTR2z3Xf2OJqLK3lQnbD9aaa2a24snvx8cDBIYMOWtpDYHG/PhZ9Q1T0o9Eo1ut1JTK29BzTc5deJjweFPi7cNs17obQtHyYWfqsQUa3z4JXK8vLZiU6tfRZfJ416Ox2u9S682/jY2bBv10s+hPI3HsWPeavYyuPZhnOsAPNNMPycjKOBabuN3sLpYSbWtNSMwzeK4lSrbDG83Vi1wElu5MPu/DYfz0W+BsDYqkXwYNCPRb9ibDwUaPf7/fVDK1cq+dr6XmiBz451U1X1LLyM8f1GFRAll1n0WfWO/MKsoEia6LRbWw2m4N90P3mECUTKY4Rdxjyb8Nv7XZvb3jJg54pUyv6tnY2sdudJYhY+Hg/u4kDn6iop/M62X3l2F6td517HnFbvmNxqHuvolax4/slNzxz6zmm12VV8PybM9grwt+arGSwbT3GzuYfp1b0b3rg9PJN/J1d1vm2tpF9HnHab8n63NVScTYflof77kGWJVfLyK6rdtVpco0n79BjoMtleYRSgk7dbrynZbIsw55l+kvWGxcF8aQbeI3Ps+W1qrHbvbp6DsJnF19zHuaQWtH3evb+t9vtQU93ZmkB/tbYlC2idq6xgNXa8/Jq7bX0ByFly2kWnLP36nFkVQZOJh5DBYhGI4gUn6OpCAOWJuyydWo1hD2L1WoVnU4nNpvNQXMTe23mFVb1EW5ubg7uR4c72fAgoJZc3UycoHw3W54uW+N6ju+x3iwBh2U48w90ObXEGmrU1bn1Yp3MMsPjiYjqOnbsE1/Tj8GJ59Xbbl81N2XWHc96W66IqMKPm5ubGAwGB22+GBB4Xbb+r6gV/UcfffR57ccXjp5MnU6nKs9FxMHtqyBcCB8CyLrqIDS9EQaWz0SfTZaRWWBOdmWJwCz5l1nxkhhU3Nnx0qYi9hqyB3/G5bmSO8/HVduNcVxY5NvtNp49exZ//etfndgrUCv6n/70p5/XfrwT4CS/vr6Obrcb3/rWt+IHP/hBvP/++7HZbOL6+jotQfHyWQ88XHPuPYeVZ/deu+s0N8AWnreZ5QI0h6DP/B2GBxLdDnsJsNh4hnfD4QO2wdvSMCJz7SF0Pp56bzz+3fg9o9Eout1u/PnPf44nT55Y9AVqRf+LX/zi89qPd5LHjx/HbreLb3/727Hf72O1WlUnYIZe6cYnetamypeCslXLRB9xKFJ2tessvVr2TPDsaeB3oCKgyTWsBy58lsTL8h38G3g5bF9/l3pOLHq+wIlv/3V+fh7j8Ti+9rWvxXa7jcePH8d2u43pdFp5IcYxfS0XFxfx29/+Np4/f15dRDMej2M8Hh9MUgn4xMXfHFdnDTK8THZTisytVsGXQgINC/h9FiVbS65AqHBZNOpJHHPTeTlNLGb7k4leeyRw59rpdBqz2Szu378fs9ksvvnNb8b3vve9uL6+rvINjulv6dQdiE6n06qjpOW90WgUDx8+jPv378e9e/diNpvFvXv3YjqdVrPe9Hq9g/gSsBXVMhiLkE9wPrnZ0rMQ1brr3Wg1D4B9KFUa+LtNhcvLsfjxng5MJY9FvRDeXjag8UxFw+EwptNp3Lt3Lx48eBAPHz6M8/PzmM1m8ejRo/jqV7/qrH1EegBqRd/v91snerU43W43hsNhzGazgwdmru33+3dceaCi0GPNJ3XpRpOcMNMYt+6S3IhDsfMgg/Xxfur3AbcTY1n2PnSgw3o1Js+EX0oolgYNvId2Z1j3R48exaNHj+L8/Dym02k8fPjQ97N7RSr6Wvf+5uam7uNWwLf7RflusVjEZDI5uF9aRHk6K4atssap2cQbbO11kOC4Okv88XPEK9Fst9tUTBFxUHbLBpm6/AFvQ93x0jwBmgMoJRXxO7gkCNceg/B0Oo3pdBrj8bj6ri19jmP6I0Aky+XyoAsNt1GCex9RdncBC4nvLNvv96v1skiy5fC5lsL02n3eH11PxGGzDKOJNOwreyNqvTNvRLPtdbP6ZtZefwOHSLjOQW8BhsRep9OxwQrfn/61QXmu2+3Ger2OiFuLvtlsqpMM72u3HIMYXCfH3G63MRgM7pTDtAbOZTNeJ79WSwpYpFp9yMTLgtdbX6s3gmXUK9BpwLQ6gOObeUg6KHD7L9aN9evdf+pmLDIWfSP4BNxsNtXJhBMR1rMuhoeQIGiIHJ+hh3y32x10tKl7r+tU0et+A4glc30zN5+tNc/jx2GIJhDVymuJLQtBMjdfy39otcXxweCpA5EOlCbHom8ATj5YUbj8+Cw7kdk9xUkI4fV6vWoCjiwjj4GExYhl8TesJUShcXZWBuPfwAMOP2sCjq29TtHNST6O5Vn0WUNN5uJnomcLDzabTTrgWOzNsegbwmKGtcbJqKLPsuAsSoga6+GEHMTNAwuf2HWttJmoMejUJbay7WgSrlQxyEpqGsKopa8TvVp4DZ10PkFzOhb9iaglx4kYcVjyymJ6dbEz0bL7zaU0LFfKeOsyug/Z/ihaGstKZ+oF1Ln5pe+p6NltR4WBj5Ou37wZed3FGPOlxZb+RNS15Kw0SmlZjzfc38x6Zn9jmYi7bnfdd9na6+tjsLeQZdHZBdf18TGAW85hiHoR7KGU3HsNY/g6BfP6WPQNYXFq7KoxPWfZOZEHsaK2z6Wskquswq9zmTnRp1n6OqGoi62lQ8TzEDPnCPSKN00g8qBxakzPiTy+qjHbjmmORd8AFaEmqU4p2UFE6NtHVpwHAAwKKvosuabC4+3p9rOSlib6dOIJTVpynM0JRx6EMEDc3NxEr9er8h6vU7LDtQp8Jxz1BNQrMfVY9A1gS4orvPRmlaWEHJOVtLAOvUV1qTmnVAPXjjwNM+pq2LqfKnweILhZqUlzDvYRnyl1zTmayefmHJ2MMxsAHAbkWPRHgDsO64z57tH6ic+yOFiFz8LQNtys8QXLRNzmDnTQyNpcObTItq9oxQHr4HZfbhPmQYn3UYXPgxLnNLAtvZ4+O2Y8AHAbbrfbvXOrLJ0spO24Dfc1wQnGYq+7yq6UBANZTZutNlvKzL3XQUMbX0BWOlRx6uf6Xbjx6NPn9uBs8OB1a10/2z+N4fG+hil4H/uH8Kff78disaimMBsOhwdehi19jmfDJTQOxok7Go2qiRr40lrczYZr6FqrL1l+dtk5KahNL7xvGjd/0ZfW6mW1vN5TLq3N8h8a1vD/BJNodru3dxvCDUMjorrzkMnxpbWEin40GsWDBw+Kk2jAsnDGm2FLr3eU4Yy2ilmFwkJlASLpx94Db5svauHLZvE5k13phvdLFYBSDkMFWyf4UtIzq1Dg+PT7/YOpxrCfmH8wIuK9994reiNtxzPn1DAcDuP73/9+fPDBBwfTZfHtq3BClo4jTm6eo73pdFkQsYpGxa+Jv4jj02Xxa8TXJRFn8TF/jzPq+IwHCt0njdFLuYfsmnyIHtNljcfjO9Nl7Xa7ePHiRVxdXVUeQRv5yU9+cvrMOW0X/fvvvx8//vGPq4kxl8vlgTAjDgWRZcg584yEE9+jnRtOMhEz+r9Sq68DUNbgovPxq+BLmfBsQOBaep3l1t/Ay2Wi17wHhzGc/+CJMfv9fty/fz/G43H85S9/iQ8//DB+97vfxW63i/F4XOUk2sTf/va300X/ox/9qFWiR9JqPp9Ht9uNb3zjG9UU2Ov1Oq6vrw9uHoEH0EaViEPRYwpsPDjjzIOFTjgRUT8Fdqn+zhZVn7FvWg/PQhHNsuu69DVvH6/xXHcnHaDJQIQxmuzEd7EspsD+05/+FB9++GFsNpu3dGb8c7Lf708X/ccff9w60UfcWm/Uz/f7/dGbXWhMzkk1uPWbzaa6Qw4e7Oar5db6uLrqEeX4WcVZuoedWmu9I052kwwVe2nd2YO3e2wWXfxPsiv7+DdiQMU6nz9/7ptdRFn0tYm873znO/86e/NPxHq9jpcvX8ZqtYrxeBzX19cxn8+rk5FvQa0nZ8TdE1O7+epEj+UhFhVgxHHRo6sus7rsYWRkrrwODPzgu+FmIUJpsNF9A5wXUMFj//heAjwY43JlXk+dgWsT7arJvQYo2eGE0/nrcUJrwwyfnNn0V7w+PjlLVp67z3i7/F3N3mt4wA+EMloeywYATfwdi+s5PODQISJqv1MSpR4zrEdvYIm8CR8jLN8EPWankC37Juv718QluyPs9/uqLoz206zZJOLQJc2y+mrtYIXrRM8iYWGqi58txwMHPJHd7vbafG64QUkP+47XmolvcrzUnedcgA4QWdUA69Fjy9vngZAfvH7ep6a8iTeQLfsuehe1on8XR6kvgixezwS8292th2eNJnyHVj7GKl7eBoNt8TqyDj5NqmEA0xl/eCIQDGz4LSX0Ahxu2S1lyvF7+LU+Z8IveS18X0EOM95Fob1L1Iq+rfVNhuNtfo+Tcxwfa/cYfz/LUEPc6r7ytjS+x/Ls3uu21cPQZBl7DjxAMKXBBq/xeV1eQH9HaVsaNmguQL/LA2KWQDRlHNOfCE4uvgMtLGjE3WvZETtn5Sm2ylqui7g7my0sMG8nS+Jh2UyI/H3eJ3gymHgSrvPZ2dnBJbLb7fbgNS+DB/7msIBDRQ4xeFBjsvyB/h80MWiaYdGfAFv49XpdlfD2+31V2ouIqmEkCwW0G0/r8zwA8IkMwcM917Agm8yDLTGeIUx1qeEmwzVncWd1e46p0Ra7Xq+rZCYGDM4b8P5wDZ2nEefQI/NQ1AvAe/yZqceibwhOepzcuL0V7nzDd6lByy4nxVRgODm1m47ddCwbcStYeBWa/NNcACfluFLAA4426fDAlNXe+bv8OY7JYDCoOg2RSddEGzwBWH/ss95PgMWbZeIt7tfHom+Iin61WsVisYjFYlFZYAhmvV5X1r5UNos4tMBweRUWOz7XgSHLB2B/2XLzgJPV0FnMmmXXRFuWPeeaOf5GAxLeY08An3FIoXE/BgVOSvKxM6dj0TdAE0eoCy+Xy+oe6DiRcasrvSBHYS8g4q47q+47C13d9bokYF2zDP827ZTLltFaO3sFKnp9rc84Tmik4XWpp4HcAe+HlpP5mNkLqMeibwiLg2P61WpVxaxwZ3EBiJb5Iu7OnqNxPb6Tnbg6gEDknD9Qz0KtdOl3afhRWi7zDHBM2LrjWV+jY47FryEB1ssDgAoexzvisMJhjmPRnwC7tNz6yTEqLBdfEaZxOz7TJpLMunPszyc3T0HFcbuKHs8l64f3SzXzY9/NXHx271nkq9WqKPyS6Fn8bPn5Ogb8PoQytvT1WPQnwtaGLVhEVLFraRYc7s9HCFASlgqYM/TsLWSiP2b19HMWMzfPaNacX2cVCU7eZe79crm8M1jy/HZs2TPRs+BXq1UMBoOYz+cxn8/T+r7JsehPQE92JKNgnRB7qtAhWJ3UcjgcFhtSuH9fM/ssdh1cslBBn7MwQr2Cpp4BJwlVtDp/QHZpsbrxfGwhcN3Ger2OxWIRl5eX1TRZl5eXd2r7JseiP4EsXt7tdgei1wy7Cp9nwM2Sa+w6Q9B4jXWy0HXa7Ez4dYMBk9W++bertddSnwpWS3fZJCI6hXVWPuS4frvdxmq1ivl8Hi9evIhnz55VVZKrq6uDfTM5Fv0boC6uklloiH4wGNSW0tDsg8oAZ/mxPp0Cu1TzZ8Gr+PX36Ou6wSFL/mnsrRl+vhJOy4N6XLWasN/vq+Wvr6/j5cuXBzMT641H9BoD8wqL/gQywbCLq6Uthq3xYDBIXdqsXIa5y7len1UC2Jvgv7OBIBP9qe6wij6z/Dg26gFkg122ffV+8BpJvKurq2ri0ul0GuPxOC4uLg5Kl/CSzC0WfUMyVznidpYdPtGzeji75pqg0jq5Pnj7fBWfiriUT8jc/mOWXn+3fg8PbenFM7oG9bio5VbB1+0XW/7NZhOLxSLu378f5+fncX5+Hg8fPoz33nsvPvnkk3j8+HFl6e3qH2LRn4C66twQw4ktnSCCa/Fwxfn675KLrAkpdKZB+KWEFQs7s/oa19e58sdEj9+GciL+xoCA8ES9gWxQ5H3PtolnJPQwC+69e/fiwYMH8cEHH8TV1VXMZrP4/e9/3/wf2zIs+gaoiEo3pGAh6sw6vB7uQNP4N3OFWdxqrTMhZ+6yCknLgXXf13Am6wXQpiFNCvJ7dRa+ruSY5RImk0nMZrP4yle+EoPBoPIy/vCHP8Qvf/nLiIiYzWYHrb1tx6I/ARZZljXni1KyjDSWzZJYmvQajUap1a+LvXmCDOwvowOUWnpGxc3v41lj7brMP7/m79WVFEvb1fVPJpOIiKp81+12Yzwexw9/+MPY7/cxHA7Tga2tWPQNqcuaZ3elibg7PRZ31CEjn5XssgaVUlmLwwokrdgSYv80zMgEn7na/Mzf0xheLfuxYwnrr8e3LtOeVTC0hNntduPrX/96fPe7363uZ6d5kbZj0Z8Ax+XZveXRE87izzrcOp3OQT+5Jrmy2ra+xt/D4TA2m011WSvfAVdbgbOBCfvGz2p1dSA7Jno+Xvys7/MgVDdQZCEBNy7p/2E6nd4JN8wtFv0JcEzPt5hGzR0nJTfVwO1noXB8q5ZarTzaVVerVUwmk6qbbblcVnfRHQwG1TX8eteXrCU480aUrKEH39eBqpSUy9qCsysFj5USeVv8f+Dt8EDsMl09Fn1DNJEHUeGBufLUTVfxR9wtIfGyLHqemGI4HMZ6vY7hcBjz+bxqSMEDYsczHtl97zPR8z6VmnvwfV5GqwxZ5aCuV0DFrjV2bJMTmrDuyK3AY8C2kEhtewzv+9O/BVT0g8EghsPhweW1EXfd0f1+X00UEXF4MuM1WnnZ2vd6vcrK4wKTfr8fo9Eo5vN5JXY8MtHztf3cyqthhw5EpbZeHpyyAaMUa2frywYFRgcXbBMNTix6bFu9AHMXi74B7IpyOy1ENhwOK7e+VOvudG6nhNIMNif4+KIdDBS9Xi9Wq1Ul3uFweBBaqLgzV58tPVBRMVqaVNFrPM/HRy8uUvFnA4F6IepRcAm01+tV96DHNGXHSpTmFov+RDiR1+/3q0RaxOENLEv1dK3fs/gxXZRaLr3AZrFYHAgZE3ZA9KVnFW+dtcZ2jwmytK8cVuidf9jryBKNug0uZ+73+yqcOjs7i+FwGOPx2F13J2DRN0QFrJa+dAJrKyxie+3Xh3iykxcTSGJduo3MipasLA8qGpNnbrIOFhHlkpwKXnMKWuZUb6DOE+GLmjD7bq/Xi8lkUvU8tD2Gb4pFfyJszSB6lOp0phwVDz7jmWE5VlULWjqJsyQbP1TkPPkGu+iw9hF3S4q8rmNxsg5GWs7knAK+w+/p4JSFEkjkdTqdGA6HEfHq1tSYmEO7H00Zi/4EMiEjdi5Z4CyZBdcUybtOp3NwUkfkycC6E5rzDrqvdaUw3VZpWbX2+sweBkTNYlZhq4XXZKNWGCDqbvf2hqKTyaQqadrSN8eifw1U9Li7Td1lrZm7zxfeIN6PyO/5llnk1xkIsnVkgil5ErruLIRBrgHHBqFPltXPmojUM8F+4hhvt6/uLYA58uzen4ZFfyLs9vIMOGh13W63aUwLNxchAZpssptCIMvP2f6I/Bp2Fi8/8/5mZAMH6t36WzPBZ6KHuDncKWXsOQeSDQJZWIJlsI2m1ySYQyz6hrB1hniHw2FVn4dl1kkiMQkkP3Q6aL2/OgYDWDWO//muMOz24m9O1EWUL6bJnkvfx/saa3c6nYOQhD/DseD9xHpQa9eGJr5gCAk9LoNqElWrAqYZFv0Rsqz9YDCI8XhcCR4xJYA40VXHd8XhiSF5KujS3+oJ6BV62sNfaraJqBd3nYdQlziMiDtWXGN39QZK39csv1p+iH02m1UPdCZyEtDUY9E3BCcrW3hkkiHCzOKz1c9mh9VZYtkbUK8gGwBgLfna+4jjVvxYmRCWUwXP77HQslIcu/il6kKW0cezxvtoTJpMJvHgwYN4+PBh3Lt3L0ajUdWrgP0zZSz6BvDJijbYTqdTNYkgruTYu3QhTXbZbDZFdBYOlMRfuvS2TvhNRF+Xxa+LzVX4Wvbj46n1er1CUK3/YDCIyWRSzZZz//79GI/Hlegt+ONY9A05OzurusEiojoB2bpqplkTb/qomy22dC84vbxWXX6eFy5L9OEzfY9fs3A0maaxtnbZ6etSQk6rGOrO1/2Nqwtns1lMJpMYjUYHHoWpx6I/Ap9E7D7C6tdljrM6eBZ7a+cZDwgsarjz7Dnwd7MOuzr3PnuvSb1fRZvF6SVPgY8lrysrb5bWy9cV4DqDrHPQ5HSOlDpcB4myeNVi8slWlzXP1qnr18GgzmPQ7zdJ5NW9x79FBVQSc91D19N0YKkbcEplwGyfW0x6ICz6hpSSYPqZuvhN11m3jdLAUPe9JvtQ93kmnEy4/LpO4E220WSAwOsmg4vJRW/3viGlE/QUTmkgeRPBvmu8LSHW/Q8s9ubY0hvz5SUdCd3GZEzLsOiNaRkWvTEtw6I3pmVY9Ma0DIvemJZh0RvTMix6Y1qGRW9My7DojWkZFr0xLcOiN6ZlWPTGtAyL3piWYdEb0zIsemNahkVvTMuw6I1pGRa9MS3DojemZVj0xrQMi96YlmHRG9MyLHpjWoZFb0zLsOiNaRkWvTEtw6I3pmVY9Ma0DIvemJZh0RvTMix6Y1qGRW9My7DojWkZFr0xLcOiN6ZlWPTGtAyL3piWYdEb0zIsemNahkVvTMuw6I1pGRa9MS3DojemZVj0xrQMi96YlmHRG9MyLHpjWoZFb0zLsOiNaRkWvTEtw6I3pmVY9Ma0jN6Rzzufy14YYz43bOmNaRkWvTEtw6I3pmVY9Ma0DIvemJZh0RvTMv4/HSyXuGaK8a0AAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 17\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAP0AAADnCAYAAADVeFABAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAmNElEQVR4nO2dT48j19XeD/812WT3dM8IFmJYMYwAhm0BflcyYK+y8C4bLfIRjCC7bLIy4A+Qbb5CAG+yy8JfwPHCBmLDgYTotWBgYNgZW9JInn/dzX9NZjF4qh8+PLdYnFEkvb7PDyiwSVYVq6rruefcc8691dtut2GMqYf+l30AxpgvFovemMqw6I2pDIvemMqw6I2pjOGB7x3aN+ZfLr3sQ1t6YyrDojemMix6YyrDojemMix6YyrDojemMix6YyrDojemMix6YyrDojemMix6YyrDojemMix6YyrDojemMix6YyrDojemMix6YyrDojemMix6YyrDojfmc+R//P7/xr/7r/8z/sN/+1/x2dXyyz6clEMTYxpjOvLJ80X85//+v2O92cb/+euzeGP2z/Ff/v0/fdmHtYctvTGfE/PVbaw3dxNIP5+vv8SjKWPRG/M58a8fTOM//tt/E71exL+6N4n/9ONvf9mHlNI78NRaz3tvzJEs15s4GX4l7Gk6771Fb8w/Ln7YhTHGojemOix6YyrDojemMix6YyrDojemMix6YyrDojemMix6YyrDojemMix6YyrDojemMix6YyrDojemMix6YyrDojemMix6YyrDojemMix6YyrDojemMix6YyrDojemMix6YyrDojemMix6YyrDojemMix6YyrDojemMoZf9gH8S+TAQz8/l+0Orfuqx/BVoNdLn6t49Hb8/lX3WSMWfUdYZNvtdu/96+6T32ev+nf2Wbbtod88RBeh6Wvb3237P2bfunT5LfMSi74DmeA2m00qsF6vlworayRKosW+8bcu2efZdtlvtx0Pn0P2GhHR7/ebz3jp9/upGLN96L6PXfr9frMMBoPmt/v9fmy3Wwv/ABZ9R1Rot7e3OyIrbYPX0pKJ+vb2dmdZr9fNK/7W70sNgB5HdmwZKthM1Cy20lKyyPpdaVuImpfhcBij0ShOTk5iNBrFaDSKwWDQ7Ne0Y9EfQAV6e3sbq9VqR4CwqripM6udCRuvLGrse7lc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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 18\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 19\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 20\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 21\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 22\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 23\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 24\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "current beta: 16\n", "Current iteration: 25\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAP0AAADnCAYAAADVeFABAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAoLUlEQVR4nO2dy48dWbXm13m/8+FMV9pVBQNULYSELgVCNe1BM7oqMYEpgxK66llPesof0NP+D9CdcWd3gGqK1BICiQFXVWBE8bCxSCg77Xyc97sHpW/7i+/siHMinbbLjvWTQueREXHinIxvr7XXWnvv0nq9NsdxikP5VV+A4zgvFxe94xQMF73jFAwXveMUDBe94xSM6pa/e2jfcV5fSrE33dI7TsFw0TtOwXDRO07BcNE7TsFw0TtOwXDRO07BcNE7TsFw0TtOwXDRO07BcNE7TsFw0TtOwXDRO07BcNE7TsFw0TtOwXDRO07BcNE7TsFw0TtOwXDRO07BcNE7TsFw0TvODfKfv/27/ev//X/2b//+G3s6nL3qy4mybWJMx3F25HF/av/7P/7LFqu1/f4fV3bU+YP9nx/8y6u+rA3c0jvODTGZL22xejaBdH+yeIVXk46L3nFuiK/catv//O9fs1LJ7M5e0/7X//hvr/qSopS2rFrr8947Tk5mi5XVq18Kexqd995F7zhvLr7YheM4LnrHKRwuescpGC56xykYLnrHKRguescpGC56xykYLnrHKRguescpGC56xykYLnrHKRguescpGC56xykYLnrHKRguescpGC56xykYLnrHKRguescpGC56xykYLnrHKRguescpGC56xykYLnrHKRguescpGC56xykYLnrHKRguescpGL4+/WuCrjlYKkWXKXOcrbjov4RsWVQ0dZ9X0RDscq3XxRu2F4OvWus4by7RVtMt/RvCarWy9Xq9sZltWmN+ndbow8qWSqXM57w5rwcu+huAhVMqlXK55/wI4a5WK1utVrZcLsMjtsVikXjNGx8TE/9qtcq8Bv4O/FipVBLiLpfL4RFbqVSyarW68R4esxoLPZ++p/vyft7Y5MdFf02yLGlsXz4GGwt6sVjYfD63+Xxu0+nUJpOJjcfjjW0ymdhkMrHZbGbT6TQcM5/Pw3nQaMSukYWf9h3UekP0EJuZJQReq9WsWq1atVrdeF6pVKxSqSSE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RhwcHFiv17NWq+XufU5KW9xBj5CkkGVJY/vyMdog6Mw5XHOvm4odVp8r62JLQul1ZI3+M3vmvnO6kbs3aVZb5/pXSx+z+OrGc6Uen4sr/rjC0AtzUom2hC76GyAW3c7TEOBRPQNdRCJtS5s7P6vgRwOEseBebEBMLD0XG6CTNcKOn8cG4WwbmMP7uIXPxEX/JsPVdWleyC55/lhOPibWtNfOlwoXveMUjKjoPZD3JeS6xSavwtq+6MIY9yBuHrf0rxF5i2qcwuOW/nXHxe7cBJ7rcJyC4aJ3nILhonecguGid5yC4aJ3nILhonecguGid5yC4aJ3nILhonecguGid5yC4aJ3nILhonecguGid5yC4aJ3nILhonecguGid5yC4aJ3nILhonecguGid5yC4aJ3nILhonecguGid5yC4aJ3nILhonecguGid5yC4aJ3nILhonecguGid5yC4aJ3nILhonecguGid5yC4aJ3nILhonecguGid5yC4aJ3nILhonecguGid5yC4aJ3nILhonecguGid5yC4aJ3nILhonecguGid5yC4aJ3nILhonecguGid5yC4aJ3nILhonecguGid5yC4aJ3nILhonecguGid5yCUd3y99JLuQrHcV4abukdp2C46B2nYLjoHadguOgdp2C46B2nYLjoHadg/H9AM7/dw0JAtgAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 26\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 27\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 28\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 29\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 30\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAP0AAADnCAYAAADVeFABAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAn4ElEQVR4nO2du48c2bHmo17dlfXqbpLNHorYMRa6hgBhMRKE8YQFtN7FQI7kyhCEi/XWWVd/wLr7Hwhrrqxr6GEKuIAgSGvoSsSd0WgAihQpPkQ2u7seXVVdjzWE7/DLqDhZmUVyOJwTPyBRj87MyqrO70SciDjn1NbrtTiOkw71t30BjuN8vrjoHScxXPSOkxguesdJDBe94yRGc8vfPbTvOO8uNetNt/SOkxguesdJDBe94ySGi95xEsNF7ziJ4aJ3nMRw0TtOYrjoHScxXPSOkxguesdJDBe94ySGi95xEsNF7ziJ4aJ3nMRw0TtOYrjoHScxXPSOkxguesdJDBe94ySGi95xXiP/+vuH8s//+9/kX/7P/5PT8fxtX47JtokxHccpyd+HM/mf//ffZbFay388upDr3U/kf33vv7zty9rALb3jvCamV0tZrF5OID2cLt7i1cRx0TvOa+I/XevIf/+v/1lqNZH3Bm35H//tn972JZnUtqxa6/PeO05F5ouV7DW/EPbUnPfeRe84X158sQvHcVz0jpMcLnrHSQwXveMkhovecRLDRe84ieGid5zEcNE7TmK46B0nMVz0jpMYLnrHSQwXveMkhovecRLDRe84ieGid5zEcNE7TmK46B0nMVz0jpMYLnrHSQwXveMkhovecRLDRe84ieGid5zEcNE7TmK46B0nMVz0jpMYLnrHSQxfn/4dQa85WKuZy5Q5zlZc9F9AtiwqGt3nbTQEZa51V7xhezP4qrWO8+XFbDXd0n9JWK1Wsl6vNzaRTWvMr2ONPqxsrVYrfM6b827gon8NsHBqtVol95wfIdzVaiWr1UqWy2V4XC6XslgswnNr42Ms8a9Wq8Jr4O/Aj41GIyfuer0eHrHVajVpNpsb7+GxqLGwzmUdb+3njU11XPQ7UmRJrX35GGxa0FdXV3J1dSWz2Uym06lcXl5ubNPpVKbTqcznc5nNZuGYq6urcB40Glr0Innhx76Dtt4QPQuNBd5qtaTZbEqz2cw9x1av16XRaITj8bzRaIR99vb2pNVqbWz6XK1WS/b396Xdbkur1QrX4JTHRb8DEBVvGm252SJD4IvFQubzuczn8yDmyWQik8lERqORDIdDGQ6HMhqNwjaZTDbEP5/PZbFYBMHjka8l9ojr08QsLQQL0WKDSCFePEKsLHQWO0SMrd1u517v7+/L3t5e2LIsk8FgIAcHB9Lv96XT6YSGxSmHi74iEAkECwurrSkErq03NlhuiJjFPplMZDwey2g0Cn/DcbPZLFh4NB66K7DNC9HuflEmQIvesv71ej0Im0UO0UPsMQ8Bwmaht1otabfb4X00JJ1OR46Pj+UrX/mK3Lp1S46Pj6Xb7bqrXwEXfUXW67Usl0uZzWbB4s7n8yAgCI+FPh6Pg6CtDYIfj8c5Nx6NSsx158ZmW/+cr5+Fy+/HjsFr3me5XOb+fnV1lWsEtFeAz9MxADQU7M5D5Oz2ozHp9Xry3nvvyXQ6lWazKd1uV9rtdu67OMW46CsAC7pcLmU+n+es8WKxyP0Nrjq76cPhUC4uLmQ4HAahw5KjEbm6ugouO3cJ+PPxfBdigcayVlJ/Ps63Wq1ywbpGoyGLxSI0BCKSC8Jp4bdaLWk0GrK3tyfT6VT29vaCN8DdiPF4LOv1WrIsk+PjYzk5OQmNn1v6crjoK8LCvry8DH1uWHsIfjweB5HzBqsPVx0BOfTJ4SXE+tpAi3db6s3ar0zDoT8nJiwteB1h14E8vNYBwL29vdAQoEuAR/7t0c2B9/Mmi4S+bLjoK6Kt/eXlZXDLF4uFzGaz4AGcnZ3J+fl5EP94PJbxeCzT6TS47ToNx1F3wELj50X9dWt/vY/ltlvHxj4fr1ncOsgHa839fu7Pc5AO/XY+FuB3abVa0ul0QhcAn+2Ux0W/AxA9RA4Xna0/LPvZ2Vlw8S8vL3MWivvoVn4d1Ov1nPsMYjc7xKLz49b3KJOrjxXgxIJ67KpD3LqPzlF7ROx5f3wHnfloNptyeHgoN27ckMFgIPv7+y78irjod0D33XWkHaI/Pz+Xi4uL0H+HO68Fb6X9tFjZ6um/aYHGXGn8XRfscGoRn8VuNUffLXFx7h7CjkXieYPYWfTwBmq1Wrg2rmGo1+syGAzk5s2bcnBw4KLfARf9DuBGhOBZ3NyX1xYeNy5b96KgWllRc3BMp8vYsrLLrC0oR+NFZKMohkVv5fcRhYfg2+22ZFkm7XY7l3vH3yF8fs6fw9fI6VERkU6nI9euXZN+vx9E75THRV8R3Ozsyp+dncnZ2Vno33NBDfLruv9etuZdW12IV1euQdwQkWVFuQ+sqwHZ2+BqOTQe3GDA09ENBbvtEDt/PjdAVjpOfwZ3o9Bgrtdr2d/fl16vJ91uN3wnpzwu+h3glB2sOoseuXeummNxidh5cbbk7FZjY0sJK9rpdHLPsWVZlvsbBMaRcG3tcU26cg4eBNBxCMQbcJxuiLjh4Mg8b7oIiL0JeFa4RuTysywr7HY4Ni76isD66LSczr3DpdeCjwXMuD6d3XTuA0PQ3W5X+v1+eITVw8bCh6WF1Wb3mUVlWXprcIs+Rlt8S8w6hWeV+HLwkX9rLf71eh1+nyIr7ym8eKDXRV8BdjmRmoMrj7Sdrom3BI9CEt1H1wNQ4KZnWSbdblcGg0GoOz84OJDBYJATfZZlOaGzS81575iwuMBFi1L/DnpEoP5eWtA6k2BlB4BOJVrXyI0JfzaeF3WhUqHVapnvu+grsl6vQ6oOgTtrEIwumWW04DlgpgNhsOaDwUAODw/l6OhIjo6O5PDwUPr9fhh0ovvuEDrXuhe5wWXqAvT+Or2o8/+xx7L78DljDaZ1DDIJjo3/MhXRtfece0eNPEfmWfT6pudIOwfA2FWHVWexHx4eymAwkF6vt9Fn5+Gs2j3X17CNbQ3Etrr/bZ8Xa1z0c23F8b5+Dx6H1+EX46KvgB5hx6PeODLPQq/X6zlrqN15duPRF4dl7/f7G9YdQ0rhzuv8dqwvvovoY1jut/6ddjlf7NpitQH8edyNsAqcUiTW+LnoKwL3HvXf6LezK89C04EmDtRxFLrb7Uqv1wtih3U/ODgIYod1Z8HrlFpsHLyI7QYXCaOogYgNcLHef9VGwTpWW3z+nk+fPpVf/epXcufOHVkul9Lr9aRer8tisdj5c99FfvzjH5vvu+grwikk3XcXyafdRCREmwGnwiD4Xq+X67dD5NgQrOv1eqH/zu58kXWPBclir8vC1j72XFPkGWg3vggdT4CXlWWZrNdr+f3vfy8/+clP5Je//KWIiHS7XanX66G4JxVc9K8BXTDCFl7kpevO7iZbJK5Nh+A7nU5O7Cx4jsxbYo+58NZ1v+k8tjV6Twf5ygT+ioJ+/BmIm1xeXsrp6ak8efJEhsOhnJ6eym9+8xv57W9/G/Ydj8ev/fu+y7joK8K5ae67w7JD3LE0FoJ27NJD7Oi3w8VHHz9Wm16mn66taCxKj32ZbefVz2MC17l2PbCoKH1nfSaGH0+nUzk9PZW7d+/Kxx9/LB9//LHcvXtXHjx4IBcXF9FrTx0XfQWsG1gkX5BiWTGeMAKBOwgefXb039Fvt8RuDSxh4cTcZotYf75sf1uL3hI8z/DDdfS6CtDKbvC5eD9kTkajkZyensrDhw/lz3/+s3zyySfy6aefyoMHD0LffW9vT2q1WuG8BCnioq8I36Q8drzVapn9aG4Q0I9HWg4Bu6I0XKySDqLim9rqy2tLiscy4i7aJ2bdY5OBonYeRUsYQIMZh/REnnqEHZ9nPB7Ls2fP5OHDh3Lv3j25f/++PH78WM7OznLButT68GVx0e8I+u9Iu7G4OQfPG9fNoy8P684WXrvyHAhkQfF7HEfA9ZUtgLHYFgewxM4bhg9jrkCedwATieiBSFzPj+N5tl+MeUDf/fHjx/Lo0SN5/vx5mEYL389TdnFc9DsAUSMgB2vFM7+wlbbmbO90OiFqj7w7XHqOyrN4OU7AYuMBK7qGvagKzqKKe68Fz6P2kNLEXIF6nAJPG8YTgHJjAcHr6cSm02kYxTgcDmU2m5kxBsfGRV8RWHgIPMuy8L41lFVXynHkHuk6Dthx/11beAisXq/LcrkMHsRyuSxVaqu/B2NF3PE6tq8Wu7VYB8R+fn4uZ2dnYUYhjFdAgRO7/yx6NCA8nz8+a9swZcfGRV8RWHmM6e73+8EqIyLPg17YanOdPY8558o63X8Xic9uwzEFS/RWmgzv6359LOLO++M5Hjk4x268XrDj/Pw8bBA89oGV58FJEDWfn69JBwCdarjoK8BWHuWyl5eXYegqXHW47yxiXQvPY86tPrwuJ9U1/SKbwmf3PtbXjjUC2k0vajD4mtgqx1boOT8/D6/h1qOaUY9E3HYNHol/dVz0FYCokHI7ODgINzws/2AwMF116zw82KZoLjsdHLOEbzUW7Aqze6zFb/XLuZER2fQEdLCNA3Xow2NCER6JeHl5mYve82daGQB8tsat/O646CuCGWx6vZ4cHR2JyD9SQ/v7+8HSw1235nyLpfx0Dt5yo3mxSk7TscUHfAz3k3UloRY859H19F66MUE0Ha49hhfzcl28HBeuhfvjejSiJXYX+OvFRV8BbekPDw+lVqvJYrHIzdvGEXiek04PucU5tWUHOiIOcXF+G+fQqT2OovPgIF4my5oBh6PnVrkxrp/35UU4eSEKHXlnTyXmwrvg3zwu+gpwKS3y7Bi9hYYgyzJzPjoIhcUlYue7cYwOlGnxWtYe52IrDEvL6TE9FHi1WgWh8+KY1mIcVmPEkXY+FsfrOf7dur89XPQVwbDYdrudG7LJqTgO3rFrz68hTPxNR+Z1RRpbbJ6wg4ty2GNgzwAuN1xtbcm15ebZZ9kV5325iIaPtWIIugvB39nz658/LvodgLVvt9vhZq7X6xuFNXr+tvV6vTGTDdfwi8hGo4CpuSBettgseh25h6XXfW294AZbYbbculBGp890YJC9AR6MxPX3MSvuEfnPl0LRc6lnSnBfWVtnvI/I+/7+fiiOieXLcSyfJxaNB+xyo7/MFpv79dtEry19GdHDVWcrj2vWlls/t1x33Y3ZZtVj4/LLjhtw4hSK/lV/XGsoJ1u918G2cxVN6hDb10JbKU67wYJbRTH8WrvscL91ZZnOg0P0nPLC8YBLdnXkHp4CB9d0AQxX1aHB4Nfs2ut+Od4TybvtWvAx0J2xshexMmLv++9Ooeh9RtGX6BvSKhpZLpfhhmw0GuFG1lab3W6ecsvKm+s6dh3I05Yen69FrweusJh1uk73ya1If1nBb/stQZlVaqxy4KIyXF3GXKY8OQVc1SXgG1kHvGC1cVPptdVxPMTEs+jyOvVWgYougNFDUnVJLncptKvOFpqDcLpazyrciaXUitx07m7wMdpa6+G/1nmsR5wPYw+s+e94yjLnJYWi/+Mf//h5Xcdbh2+mxWIhtVpNBoOB3LhxQ7Isk9VqtVGIgn4yBoSIbBbciGxOpslr2sNdZ2HGugN6bDnQsQSRfHGOzrVrl7vIDWexaVdb1/nrmX8tF509ozKC59GDeM6pUBHZsPb4jX08vU2tqBX86KOPkmoi4ZIPh0Op1+vy4YcfykcffSRf+9rXZLlcymg02hAvr0iLG9mqkLP65joop/v1ECK72foG53H9+DxO+XFjgUIZ7drHPAB4GZZXECubLZuC2+Yl8Mbr6Vlr7OE36Ha7sre3J8+ePUvKYMVYr9dma1po6X/2s5+9mat5R7h3756022158eKFiIhMp9NwI+q+Nq+quq1YhgNr7KrrAhV+zR4AC4LFoK0gu/Tcv0ajAMus+9OtVit4EhjGi2NwrQhgxgRfhphnoRsyvfy2HqGIuQiuX78uvV5Pnj59Kr1eTz777DNZLpfS6XRCbMXxPn0hf/3rX+XnP/+5/OEPfwg5eC6zFZFcFB4WVGTTHdauOgfPRGTDeuv32FXWouABOxwF5y4CjmfB43wIQKJbgr83m81CK68LbLiLw9dqpS/xqL8XfzcekIS5CFAf0e/35ejoSK5fvy7Hx8dy/fp1uXHjhvR6PZnNZvLtb39bXrx4Iev1OngD3rf/B4Xufa1WS/JX0qJDpR0vHJllWchucKDNcr9BLM0UE4c+XscLWAxcEMQrm7DwdSktNwhWwM7KJljBRkbPv2/FG3BdMdGjEcMjDzvG6r2Hh4dyfHwst2/fltu3b8vJyYkcHh6GMmhHRERM975Q9K1WK0nRw+3VgSDccJj1BjcXR+et8lIrAs39bx6Yw90CHUSDiPSClzxP37ZZc7VwrcAbf7b+GzwZ6ztaVprX1tMRfavx0xOJ6u/UbDYlyzK5du2anJycyO3bt+W9996T69evS6fTKfsvToXqfXorDZIyi8UiTAAxHo/DzSkiGy6vRgsYFlmv465z7lZQCwN8OPKNjMNisTCFrz9Xu9ixBkZ/vu5y6GuD58HThfFa8nwey9rryUb0cGGUO8O1Pzw8lE6ns9FtceJ4n34Lun88n8+DuIrGwMfOhf1Z6Gzt9UQaLEb0t3ndcSulxULW+XsrXsDXxo2RntHX6oawdeY5AHlGID3RJ/9eRW4+78eeVLvdzi0IAi9HZLNAKGV8ffodsW4cpNGsm1gkPoCEXXouTIGVajabOeuJfSFGNDycQeDgW6xrofvUfG685kwAW2wOpLH4+bpY8BA7BA9LX0b0utHkzAAyJWj09AKe2itw4rjoXwFEvZki68L7QzBoPERedqdYVOhDs0uO83DaTFfV6WW2LC9CREzxIi1mWWvuOrC3wnP+xax8UTAvFkzkUuRWqxV+Lz0zkf4/OHFc9DvCVinmMsdg8SMPrq03wPucClwulznrbuX4cW4WqDUPnw4QamvNVju2Sq4OLGLTDUUV0euMA9cU6NoEF3w1XPSvgSp9R91IsJvPz3GjMwhUlem3alFri87vWy46hI+pvPV03uw5IH1obdrKW6Ln5xwM1QOB0Ee1YhVOeVz0bwmr/8oVfNp74IaB38fzooZHu+McmWeLzd4AB/LYYnPfXh/D++j9Yn1uy8rXarWc56IbGPweLvjd8MiH80ZJPYL+RcQt/VvCiqTr9/A8lirT+zAsNrjLHDvgsf8cIESMAW51s9mUq6ur3PVxsBAuuLVqr75m9mDwusi9t4YDc//eG5TdcNG/BqoE8mJitXLfsYbByuNbaCHBbYbLjNf8Pn+eFjki59ptbzQacnV1FeIBegqtVw3k8bwFCHRa6UmnHC76HYlZ3G03oQ6q6b42BodogWiR6f64Lt0VeTnIh6P/sToAnjJLL3gBQetcPffrOdXH6b5XTdnhOngO/UajkRuK7MKvhov+FdilOEe7vVyJpyvfWMg64GbV6+v6dlyTTucVFefg3BD6dDo1U3U68s+5eo74c3EON07bCnPwO3I1HhfnIGfvwq+Oi34LluuuC10YuM6xc2F/7SKXLcPlyDjXtLMYdUNkue5aJFr4etgudzl0l8Qq0LHy+0Wit66FPSee0KPdbkuz2cxN5w0PSZ87ZbwMd0e02HmIJ252kfyAG32cyKZ1tVJkOp2G47RngM/nVJpVHy9iex0x62rl9mP5cP5+2JfLd7mqzyrDtURveTT6u9RqNcmyTERE2u12WFWIFxhxivHZcA1w48zn89z7zWZTOp2OdLvdcEPDGllz2OtotRXV1i6zFcDT+8dq49ljsETK/eRtrrWGj+fXWrDW0Fpds68bRv6drME+emhtp9MJ1h0FRFmWueBL4kNrt1Cr1cI4ekyigdFdbOV5QMg28fAjPsOKxvNztrjsemtrz94HPof7xrtMoqEr5PR7MUutg5RW/EN7UhC2Lu3F9202m9LtduXy8jK3bNZyuQzDbH0SjWLSNOUlabVa8o1vfEPef//9EInGBBqtVitYeGu6LJF8H54j0Xr11qK526wGBGLS/W5t5Tn1VSR+azYcvGc1FNZ0WdYMOlZcQovdEr32Fqzpss7Pz+X8/FxevHghT548yU2XNZ1O5cmTJ8lPl/WjH/3IfN+nyyrgq1/9qvzgBz+Qb37zmyISnxgTGy8zxTc9R6D1whU8pbXlaseExZ9hRda5uEXnuXVaTqfHcKyehZfny4t5A1Uoiinoun7uLiBIiAa40+mEiTG73a48ffpUfve738mnn34qq9VKsiyTRqORa5BT4G9/+1v1mXO++93vvpmr+YKC/uZwOJRmsynf+ta35Dvf+U6YAns8HueEy1Ng68UndDoPosMU2JPJZGNBSR0PgJi0+PD3WCZARELFHGbo5QZDi9YSNnslfA3Yd5vwq3ZxGF1HoOv70RDomvxOpyPtdlv+/ve/y507d8L5zs7Oyt8ECVBo6e/cuZOMpecgEKae6vf7Ye41y1JjhRq92IW2uhAKPAKInle40TnnIkuNfYH+PJH8Yhe8Og5P4KmXtNKj2jBTDR5xLbGgoMhmaS0/8vNYloNhb0bHCYDVPcJCnamz3mXe+69//etv5mreMWBVdWpNREL6DPtY6TMWIBoMuKW4QbWLzy62tawVW30rtcbTa3PNOjarq2AJ0BIsnusIvi6N3SbwMl4BjtUZDb4G/q4M8tSp9eW34YG8EnDfXA8h5QkxONXEIoQ10ikszCfH69xboufYATwLvYClFUPg7AJPrYWBMphkU+Rl0M+qGmTBYUCOVUDD6PQev1/0uO3/oD9DTznOcFcodg59vqK/F2Ed+yrne5N4yq4AFpPOSWtB6L4n9691blqnuPb29jasJLvaWA4L/ViUyfLKNexZIKvA1W/cqOgMA4sYIOqNhk7fwHqSj/V6veFB6Ne8b8wb4H2s/4f+exkvYdt5q/y96rFfRC+jUPRfxFbq88BqoSEmnQ5j4VmNAh+va+dxPstaccSfq824QIezBTg/H4uGQAfZarVaGC6LhgXR7Xq9HmIaV1dX4frwd/Z4uNuA5/h89hy2RfaL+vfaS0gx9fa6KRQ9B0ycfN26HgTCgka5qA5uaQuP35d/Z/0Z1iyyED4aiyLR6+o87IdGg8epc8AQ3Re9DBc/WgtgchYAXRtu2CxrbRH7mwv+1fE+/Q6sVqvcCrQQp0hetLproKvgRDaLWHTKjV9zpFqLXg9m4QaDA3iocNMFQix6CB0bp+9w7thxHPXnaD8HNLW1jnUDnDeDi74iuJFns5mMRqOwfDUi+CISZpKB0DgwxxuwRsmhkeDnHLiDRyGyObc9PguDcnj0m14pVwsZQmfxa5Hr6kKkBRF/0B4DXuO7cZdAZHMeQOfN4qKvAMR3dXUlk8lELi4u5Pz8PIgeNzdWtUUhCR+rR+PpoCC74xBBs9ncED1iAtiPXXmO/PMwV0T9ufhGl9dyipBz9lZ5LoubMwsoOMIjNyIQvw5scuOmf3Pn9eKirwBuyvl8LqPRSM7OzuT09FTm87m02+1g8Xj1FQ6m6b69ts6xjADSa9q1F9kc5AJYxGyJeVw6B/i4lkBX5XGDw40EGgcWPaoUUXGIOgR4GFxnwH19Lm5iD8et/+vHRV8RVNaNx2N58eKFPH/+XObzuezt7YUbnFe1LQqmIVdv5bv5ptf7cgqNrbyuyNNCZhHrRkhbfO0FcFBSn1tXKU4mExmPx6H7g9doELjICA0YFybFrD7jDcHuuOgrwJZ+PB7L+fm5nJ6eymw2k2azGSwdqu3Qp2bhc8oO+XmRzZJTwJYc3QW2ipw10CPstJhjFXO8byzgqFNnbO21pR+PxzIej2U4HMrFxUV4RCMAD8AqCdbdCO0dcUPgwt8NF30FOFU3mUxkOBzK+fm5TKdTaTQawdLByqNvr6e54ko8XSgjIrmpn/A+RK0Fr6Pz3D3QgilKg8W2ov2tLoQW/sXFRYh9YMPftNXHb8uxBM4acF2Dszsu+oqs1+uN6P3l5aWISLjheSZYni4KUXQeFoobWmRz0gxYfLb+WuRFoo9h/d2y/tt+B92/5zECcOVh8c/Pz4P4Yf0x4Gg6nZpZADzn6kOdFuQGwSmHi74ibO1xc4/HY1mv1zKbzWQymQTX3Vr2eW9vL7j/vV7P7GMjcKfnvNNVfTxTju4acAYAWO9Z36/s7yCSn7FWix/jBSaTiYxGIxkOh2FDX5/HErC1Z+HzKMTFYiHT6TQ0Jmh0XfTlcdHvAKw9+rKz2SwE+OCa88AabPAAIHqeRIMFjwE4PO8dxwOsCTUt0WuRlxF9ld8AjxwP4Dw+hNzv9+Xg4GAjsq/nEuDgofYcsA8yJ8+fP5dHjx7Jo0eP5PT0VEajkef7S+Ki3xEuaMFNaQ3EgSh5vrcsy6Tb7W4Mk+WAFoTPRT4i9gSU2rXX1/AmRI/fQIsfmQVcO75Xp9PZGNuPhtOKO+i6AS4eGo/H8uzZM3n48KHcu3dP7t+/L48fP5YXL17IdDrNid8bgE1c9BVhMenUldUfZrccwm+327nctb6xcc52u527gbUVtyaYKCN6/Zyx4gux/XTAUERyFYjcAGC5K6vgR4uUP0PXCLC1Pz09lQcPHshnn30mn3zyifzpT3+SBw8ehNGhSHF6iW8eF30FdL8aImRLze6uyEtx4LhWqxXcWo5c66o1PX0WrLu2WlrcZUVvvWYhV/UGdDENP+ciIyt1qL/LtgYJVZGXl5fy/vvvy61bt+TGjRtyfHwsd+/elfv378ujR482pjB3/oGLviKxvLjuj3I/V+SlpZ7NZqFkl4NX1kAXzl3zOeDWc/AvJpQqrn0VobOVZ8Hz37Xbzl4A3tPXtu16Wfjdbld6vZ50Oh05Pj6WDz74QM7OzuTXv/61/PSnP5Vnz56V/j4p4aKvAFfA6RFsIi/7+VzVpq0ZKtBY2Jzrxqbr5Lk6T2/bxP+6+vDbfhsdSOM+Nf/d6mOX9TBwHs5c7O/vy8nJiXQ6HVmv13Lz5k35y1/+Ir/4xS9ERKTX60mj0Uh+Uhjgoq+IHqLKa7RxHTmn4rhPGStzhcC5us2aKbdMn1tX9fH7Ot5QFOQqm9qLPS97vipdCt0FQVaE5xz44IMP5Ic//KF8+OGHslqtpNPp+PBdwkVfEaTjkH7j+vpYGSxbfNyoVoAKJb5cyw7xc9APjUaWZSFKjso/HoOvg3/aEyhTgFPm72VFz7+h9XqX7gX/3uD4+Fi+//3vy/e+973K500BF30FOAqPMlssyzydTmW1WuWmlRKRXL9e5GWOn/u8nJ6CW4/qPj1PPt6bzWbS7XbDXO+8oCWLH33pVwnQaWLVe0Vue9H5tfsf68fr5/o78SjEMp+dKi76isBSo8iG12JHn54j7brPzeg55Fn8PIAF5b7YhsOhHB4eymAwCIEsDOfliTN0Lr9MZJy/Jz9a++tNH79LylB3OayGRZ8Hr60ujbOJi74icO+xTDJEx+khiIBniIlZK56CmgtQ9OCV0WgkFxcXcnZ2JoPBIIh+MBgEi9/tdoP3AevP5cBWF4SvV+fLuRaAsfLnRcdqTyOWZuTfOHZ9HNCERbe6LVYQNTV8ffrXAEfvsZJtr9eTXq8XXHaR/E2KxoAnrtDpLp6THu4/rD1WxIGFPzs7C41Nr9eTfr8fXkP82NgTgfXXotfiFSk/ZJczFYCj6kWlwvxo1Rbo35GvE10s/E9iE4c6Ni76iuCGgqXv9/syGAxCf56HxeImns1mIvJS+CKb7io3CMgE1Ov10L9vNBoyHo9DVwJrsvMGoetH7vPrabF1FaCIvUY8i4inzGIrz5N94PN0rMEak4DjWPha7GgIcX3tdjv3mdb/ybFx0e8ALD2LXkRy1pRvYhHJzSEfGw/ONzqOw3nq9bpMp9MgGmQN2IVHnx4Ng97Y0kNIPFyVXXQeHQixxub742N4rgAOdO7v74drRCOA6+b5BHn6MG6UUL+wXq9lf39fer2eiEi4zqICJSePi74iECAGzvT7fTk6Ogrv4eZma8lFNVhkQosG6MAVNwDcvZhMJkEg+CwWKw/w0Y0Rzq9n59UCxnmtY3WZMWc12BPRMQY0TPo5GgA97TdnNdBV6na7cu3atWDxcX1OOVz0O4AbHC7+YDCQer0ebm6edhrCQaoNlWHox3OBDoilwrTXYEXHuYHhPrlOY7FXgQaAv591Hv4cbqywP0SrPQ4t8FarFTwA9gTQHWBrry19vV6XwWAgy+UyWHy4+k45XPQ7wME8CL9Wq+VuXp4Eg1101N8jgMfi1cLniHqVajJrIo1Y7ttKt1nHWufgfThYh8aOGz/8Jngs6oKwtWfhLxYLabVacnh4KLXay6XEdYDUKcZFvwO4yXHzZlkmIhKsGbupHLwajUZBPLBa6E+jEbAsvg7+6b/r1zpmUFTsYr22jovl7XUU3prZh38PuOLcr2cPAJZeB0Th6u/v78tsNpMsy+Tk5CQsK5Z6eq4KLvqK6LRdlmWyXP5jRRvU0MPNj0XUMU0ULwqBaD1cWaBnpK1a865dcaZMma3OmVui13EHVCXCWuvUn24Q2QPQ3SJOv6FhbLfboSzZBV8dF31FdJ5+uVzmVpDFJA+YGRdzufF00KPRKDcj7GQyCTn52Wwm9Xpd5vN5uJmt0WGxCroy1x8TcNEx2+BSWnga3GisVi8X+cRzHmG4XL5cGffq6ipY/FarJet1flQdulUImloFRE4cF30F2Mrv7++HmxcDX0Q258/TVXVcSov3sEAEGgkeaKOXmOIiFY64F9W/M2WtfkxElpuvC260RbcCgxz40xOHWs/hEfR6PTk5OZGTkxM5OjqSLMs2inOcYlz0FWFLX6vVpNVq5VZmtQpKeGbY2EAaFj02zPTKS0ThPDz+3qqO465ArA8fixXge3IaTAf0LAFbm67I46IcLXYd1OP3ED/pdrty48YNuXXrlty8eVM6nY5X31WktsUyeGfJgNNsPPUTu87WQBpuCHiedx5KC5cf3sDFxcXGElG8RpyeZJI/r6j/XyZ6zwIXsfvmvIAHC5gLb7i4B0E63rjKkB/hxnOwr91uh7EH/X5fsizLFQ45OUz3x0W/I0WW1NqXj7EaBG4EeCw9htPqYbUcBNTz6sWWhOJHK0vAWBWB3L2JWW1+tCw9b1aDwQVF1rnY+uuZgp0NXPRvCv4NdbR72zExz4AbhG2bXgfOmnzSqvSzrof7xtaAGCs9pwuBrME1OLdVSBSLCcQG5vA+3pcvxEX/ZYar62JeSFF+3hJ9kVhjr50vFC56x0kMU/Qevf8Csmuxyduwtm+6MMY9iNePW/p3iKpFNU7yuKV/13GxO68Dz3U4TmK46B0nMVz0jpMYLnrHSQwXveMkhovecRLDRe84ieGid5zEcNE7TmK46B0nMVz0jpMYLnrHSQwXveMkhovecRLDRe84ieGid5zEcNE7TmK46B0nMVz0jpMYLnrHSQwXveMkhovecRLDRe84ieGid5zEcNE7TmK46B0nMVz0jpMYLnrHSQwXveMkhovecRLDRe84ieGid5zEcNE7TmK46B0nMVz0jpMYLnrHSQwXveMkhovecRLDRe84ieGid5zEcNE7TmK46B0nMVz0jpMYLnrHSQwXveMkhovecRLDRe84ieGid5zEcNE7TmK46B0nMVz0jpMYLnrHSYzmlr/XPpercBznc8MtveMkhovecRLDRe84ieGid5zEcNE7TmK46B0nMf4/TEpo42bxVCsAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 31\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAP0AAADnCAYAAADVeFABAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAoMElEQVR4nO2dy49j13HGi+9Hk2x2z3uEeBE4CwNGABmClg7g7ALBG3vrhWEE2WWTrf+AbPMXGMjSuywEw0sjKwsGHMODOBgPYEgatzSjmWk2X803sxC+09+trnPJy3lJOvUDCHLYl5eXHH6n6lTVqVPabrfiOE46lN/2BTiO82Zx0TtOYrjoHScxXPSOkxguesdJjOqOv3to33G+vpSsJ93SO05iuOgdJzFc9I6TGC56x0kMF73jJIaL3nESw0XvOInhonecxHDRO05iuOgdJzFc9I6TGC56x0kMF73jJIaL3nESw0XvOInhonecxHDRO05iuOgdJzFc9I6TGC56x3mF/Nf//FX+6T/+W/75P38nLyaLt305JrsaYzqOsydfjObyb7/8g6w2W/nfz4Zy4+j/5N9/9Pdv+7Ku4ZbecV4Rs+VaVpurBtKj2eotXk0cF73jvCL+5rQt//IPfyulksjdXlP+9R//7m1fkklpx6613vfecQqyWG2kXv1K2FOz772L3nG+ufhmF47juOgdJzlc9I6TGC56x0kMF73jJIaL3nESw0XvOInhonecxHDRO05iuOgdJzFc9I6TGC56x0kMF73jJIaL3nESw0XvOInhonecxHDRO05iuOgdJzFc9I6TGC56x0kMF73jJIaL3nESw0XvOInhonecxHDRO05iuOgdJzFc9I6TGL4//dcEvedgqWRuU+Y4O3HRfwXZsalo9Ji3MRDsc62H4gPb68F3rXWcby7mqOmW/hvCZrOR7XZ77SZy3Rrzv2ODPqxsqVTKfcw35+uBi/4VwMIplUqF3HO+h3A3m41sNhtZr9fhfr1ey2q1Co9jN7zWEv9ms8m9Bv4MfF8ul6VcLgdx4zGex78rlYpUKpVrx1uDw65z6Xs+Xp/fKYaL/kDyLKl1LL8GNy3o5XIpi8VCFouFzGYzuby8lMvLS5lOp3J5eSmz2Szc5vN5OBavXa/XslwuMwPILtHz3wGLHfdaaNVqNTxXq9WkUqlIrVaTarUa7qvV6rWBADc8j+NqtZrUajWp1+vhsT4X/t1oNKTZbEqtVgvnc/bHRX8AsKZ802jLra31crkMt/l8LvP5XGazmUynU5lMJjIej2U8HstoNAq36XQabpeXl0H0ED57Argma2DSA5Z1/ZZlhzXnAQDCY7Fq4Vrix99xfKPRCGJuNpvh3/hbvV6Xer0urVZLer2eHB8fS7fblXa7HQYgZz9c9AWBSFarlSwWi2BhWVQscm29tQWH0C8vL4PY9WO29IvFQubzuSyXy4yFxzXtms/zc3pgYNjaW+55pVLJuNsQNoscAwL+racAGBQgaC30ZrMZHmNwaLfbcuvWLbl//77cu3dPbt26JUdHR+7qF8BFX5Dtdivr9Vrm83lGiBAQxAexQ7TT6TRY7+FwKJPJJAgbf59MJmEggAvPwl6tVpk5Ow82u+bnfP0sXH4+9jo85mNWq1Vmfr5cLjODgPYK8H56Xs5uPB5D5BgQ2GPodDpy9+5dmc/nUq1W5ejoSJrNZuazOPm46AsAC7per2WxWGSsMawsPAB21UejkQyHQxkOh8Flx9/Y4mOejgGDA3T8/nj8KsmzkjxQ6GkCApebzSYzCOigHJ7Xwl8ul8ErqFQqUq/XZTabZeIE8A4qlYpMJhPZbrfSbrfl5s2bcufOnTD4uaXfDxd9QVj0l5eXQcgcSGP3fDgcysXFhQyHQxmNRsGaT6dTc06OW168IHZdFrvEvAst9tj5WPCw8BwT4OfYxecAHSw7xwB4oBCR8N2zJwTPx9kPF31BYG1Xq1Vw8SeTicxms/AcrPvFxUVG8HDlZ7NZCOLpNJz+AZfL5fCcnrfm5d8Zy8Xn5/fJ1cfOpQN9Ojqv5/ux+Tzc+Hq9Ho7l98J3UKvVpN1uZ6L3buGL4aI/AB3Mg4uOx4i2Q/QQPGIA8/k8k16D4K3cOrB+2LEfO7vTlnD5c1jvxcfnFeBY1p1TeDwf13N0pN4QsMNjHMsDEr7r1WoltVpN+v2+3LhxQ3q9njQaDRd+QVz0B6BdfAToMI/nOTyCdpeXl2HObrnweQUyMYurn7cKWNjiai+B6wU4dWcVzMDF1ufgAQGuOkfiEZRDJJ5vVnoOAwZ/z5ziLJfL0uv15Pbt23J8fCyNRiPj/ju7cdEfwGazkeVyKbPZLDNvh6sPK8+BPrj/y+UyU3FnlcRaYsa9DobpQhlOl1nRb5yD04rsaeC9uCAGg4aO9nO8AS45p9tardY1YXPOnR/zXL5cLmemUZwNERE5OjqSk5MT6Xa70mg0XPAFcdEXhK08rPrFxYUMBoPwb4idLbyev1tRcMt91q4zhMFuMhfExApdWFT8OZAKXK1W4X3ZQ9BiFJHMoMXXr0WvBa8Ld9j1Z48E8MCErMZ2u5VGoyGdTkeOjo7CvN7ZHxd9QWDhIPrhcCiDwSCInnPvnIbjPDvOA/ZxzyFAFnSr1ZJWqxUCW+12W9rtdngOj1l07Obr2n5cky6TZfdeJCt69hBwnB6EIGye77PIdZUfvh9eh4ABc7vdSqVSCQOKNe1w8nHRFwCiWK/XwbWHez8cDkPlHJfJImhnVcvxj1WntThPDbFDyEdHR9LpdKTT6Ui32w1WDzcWPCwtW1Tk1rWweE5viZFz8npBEGBBx+rudXlvbPGMdY3b7TZ4PHlW3lN48UCvi74gnK6bTCYhT49AHm7Iv/PcPU/wsKgQJpejQujdbld6vZ70ej3p9/uh/hyih+Vnl56DY7FgXOzaWJD6O2AR6lqCmKCtjID+LqyUJAufz8/ehy4g0lOoFKnVaubzLvqC4AeFSD1uevVbXoEN/+jZjYZVR2S71WoFsXe7XTk9PZXj42M5PT2Vfr8vvV4vLDphoWO+rK1tnhtsTTf0Y318rM4/LxCpz5t3DJ8TFh7kfR7EFxwb/2YKovPzCNRpscPSaMFzDl1H2huNRpiPw1U/Pj6W4+NjOTk5CTcIvtPpBMuuo/SWS433LUIsv593n/fa2N93DTSYWuhjdCmwSHZNgXMdF30BdDWetuxWZF7k6gerc9pYksqBOczX2Y3v9/tB7MfHx9Lr9YI7jwCdjoBbjSxwLS8LC46/m13fXd65Ytdmue+xv2FAzSs6SonY4OeiLwisONbB88IY/UOD+249BwsP695qtcKcvdvtBrFD6Ljx/N3Kb++aSzPaemryBgg9h7YGgn3Y93jrOH5f/pyff/65/OY3v5EHDx7Ier2WTqcj5XI5k5ZMgZ///Ofm8y76AkDUXCGGHLcOglUqFVmv10H0+EHyHB5NIRCJh8BZ7BgEELDD/J3d+Tzrrue9MWtZlJjgrUCc/g6tv/EAFJvX87/5hsVOrVZLttut/P73v5df/OIX8utf/1pEvizmwYq+lHDRvyJg6blTDWDLbll5iJK7wBwdHYVOMGzdIXZYdi12HY3fFaR7HXnsmJW25vr6cV7ZsX7OEj3+D6bTqTx//lyePn0qo9FIzs/P5aOPPpKPPvooHD+ZTF7mY37jcNEXhCvZeP6O+ROErX/YXFGHlWLtdjtY+H6/n4nK6zQcV9Vpi77rejmmELOmfDzY5d7rxzGxI8imU306TWi9pzVgcEXks2fP5C9/+Yv86U9/kj//+c/yySefyKeffioXFxe530vKuOgLoH+8wCohZevKBTfVajVUz3U6nWDhdVTeSsNpoVuC0Nd7iIUvGpSzRK4FH+vea1l+FjeyJVyZN5/PZTQayfPnz+Xs7EwePXokDx8+lEePHsnZ2Vk4V71el1KptHdPglRw0RdE/0B5rXhsPs3HoCQW1XS9Xi8jeKTq9KozXaK62WzCWnsE7vCYbzrYhft9Amh5x+RZdbbosW6/unGINUBwFyHM21EUBcE/fvxYzs7O5IsvvpDBYJC5Zp7Dv64pztcRF/2BcNeXer0eKsSwko27v+jaeeTiMZdHeg4WXrvy3FDCKnsVub7M1YraW9OBfQcAxrLK2gvSQkfDEavRJwdEcdPNRHEMRP/ixQt5+vSpPH36VAaDgczn88xUIeb5OC76g4CoeVUZV9Px6jQumOGe7XDvEZnXFl7P3UWuuseIXBfbrrz8vpVv+rFF7BqsLsDz+TzTK1C39OY+A1iNyIJHPQQHTnFOXrYc+yzOdVz0BUFUHo0hWq1WeJ67wOhVZnqQ4Mo7BPUQnY+1i+LHnO/X1Xe4HuvarccitpD5+dixXGrMVhpi5cagWIKMbkJYesxrFVj4saYj/Hi9Xh/kraSMi74gcLebzWaw1HDleVkr78LC/eG4xh7LQ3UpLafitLDYheWVcLH6+jzxMtpFt26AlwezKw9XHb39J5NJEDiWH0P8WLPAVh7zeHgKvByZr8MX07wcLvoCQGjIsXe7Xbm8vJRmsynVajXk1TnNpgNxPPfnZbO6jJatF6cJeQGPJXwteCtNhr/FjtNrB/Ki8rrPPwsey45h3fFvXrPAIufz6UFIJOvtuHU/HBd9AeBS1+t1OTo6kn6/HyxcvV4P0Xi23BzV5/No8bNLr916nidzMwm+Jm3ptRXm9e95AuaGFbxeXg8APDjw9lxw6a3tufQcXvf2t95DZP+uv85+uOgLAtF3Oh05OTmR7XYri8VCms1mZuUbW2+OJrO1ZcHqAJtOYbE1hVVExF6793g9vy7WUz+WXuPAGSyv5QnoCD1H6fmGoBx61etz6+g/fwfOq8VFXwAIDHn2fr8vpVJJVqtVeK7T6WRWvuncura2lmW3LDVvdIngFgTBogdakHyvLTkLmQWvj9Xi151qddSdc/Lc9lu32rLSfs7rw0VfAIgeZbTHx8dSLpdlvV6HzRWx+o2tvEjWTWcBMRC8yJWltna2RYSb5/ZII/KAwVtscTTcEr628to72CV6BOF4oOHAHE8x9nHlXfivDxd9QTh6j91S1+u1VKvVa249r2dGLl2LOhao0kt4IXi4yrxbLqYJuuklilnwWnaxLasbEz3/3eqPB0HjfJZ3oPvpueDfHi76A4C1bzabIiJhCa1VWAO0m69deJ0n56i4NU9m0Vsdclj0GCxwntiWWtq9t+IAbKU50s7i50EB4rZceRf32yFX9FzumRI6F66XeHKBDn7gOphmvY7Pz5acI/JaULqEVW+PrYN5eE+uXuOGnXlbYOMxu+z6pi00DwI6p86BuSIC37Um33k5ckX/sl+4zqVaSzxfll3nigkv71gL7Xpy5B3/jv1YtUh0cI6Fry0nix7NOGGpYxF8a06vO/XiHJalt1x0DvjFhK+FrsW+y7pb/1exKkKfChxOrui9o+gVeT84/JjhGbHLjX/rtBvPz1n4PM/miLjuyQeri8GGt3UWkcxKNas1N8/Z2Upbll+79izuom67XvknIplp0L7/B/y9xt4vttQ5dVzVe8A/5ljAa7PZmDu2iGS77cBqowzVEr5Om3EenL0CwLvQ8EDDpbHsSVhReZ5S5AneErv1PVnEVvjtEqO1gAjvh7ZkVv87XoHoXJEr+j/+8Y9v6jreOvxjWq1WUiqVpNfryc2bN6XVaoXoNAfW2HpapbE6Ug8rzf3yeTccXjduLTVlIbJbv1wuM73ySqVSxkXnAUTPz/e11IdMj3jQ2/c1+m8cI9G74+Dc+vwcsHSuU8r7z/zggw+SGiIrlYpsNhsZjUZSLpfl/ffflw8++EC+853vyHq9lslkEsQDwUOwEJSIXIuki8i1+bneJEM3loilvljw+PHz7rI82OgphZWnt3LvVmQ+NkDw/F5kv7n2LvefLTsGUL23nv68WPDUbDbl2bNnSRmsGNvt1hxRcy39hx9++Hqu5mvCxx9/LK1WS87Pz0XkSwuCHyRbbhaTjvyLZOf0XLGGeXpeTlynvgDX29dqNVmtVpm93fX7Wu44rpO9Bn4e1Yb8byt2oYXOltear8esO1+D/nwQPHcf4s07O52O3LhxQ46OjuSLL76QTqcjjx49kvV6Le12O3g/js/pc/n000/lww8/lD/84Q9hAQ1X3YlkLThccJ6nct29VcTCVp0tLheysFg5cAdrt9lspFarBRFyvT/Py7XgITC02uLXQ9wQNVfSVavVzPksy82fX1tv6xjtxqMnIPoLoBkJtw3v9/ty8+bNzK3T6ch8Ppfvf//7cn5+Hq7XV+Vdkevel0qlJL8lnTqCVUETS6ykwwaBCNBxUC+GtoY6EIb72Pyau+pyRx5u1qGj1jpGoHPu1jXqdFzMxcfxloD1BhyxNf/8N723n16FWK1WwwrH27dvy/379+Wdd96Ru3fvysnJSWZAdqS4e59qyg7WDYEguOLT6VQuLi4yba3Youa50SLXrR7fdAxAxN4QAiJiAerX6Si+5SWw5YtZYhEx5/c6Vcbn1fNtPRjpBqLawrOVt5YcowT69PRU7t69K++8847cu3cvuPbObnJVbaVBUma1WoVuL7q+Xqe0RLKFPLjnmw5E5YlP5KqVdrVale12G1bxcZyBBw89X2fXnIuKIDZtmXWqMhZjYCvNm3GiQYjeSTfWOZjn8da14PM1m03p9/ty48YN6ff70m63wzRn35x/yqRpygvArv5ms5HFYhECXNo6W3lrPg8LWve207l96xq44g7PY5UfBMnH6Cg4XsPBPm7jxVkAXUasLT5uOoOANmH6prfh0t6Ntvr6e0UWYrvdSqPRkOPj49BQtNFohM/E2YTU5/C+P/2BxOa8q9UqYy352NicnoUHwWiRssUHfH68JwYdLqSBFWeLp70M7Vpzw0644gieWUuDtZXHNXPfP0TV9e48EL2V0oyB9+M1+dVqNUTtuR2ZW/n9cNG/BOv1euc8PO94FpTIVSzBWqHHuXcIliP9OI8VB7DExdadt8vWAsXrrdp7XDP39Octt9E2jFcfxoJ5/P3xNInXEFSr1TC46fM5++OiPxArcl3EncT8VOQqZSZyVSDE5+XBgOfuiMIjXWcJnu9ZbDz/hjWGSK3+fjqdyKLXrb35hpw6B/Pygpa68AdeDAdXOViYN4A4Ni76V0ARsetoO//A2e3nc8Jd53k0vy8LnsuBYy49goHcA4CtNITK++fh3EVEj8FjHyuvPwtPU+BpIB1aZHrgXMdF/xZggepFIVYKDiJg4e870MSi5Jw+04E8RNpZqBzF5/fHefAafq0uD9YBQmvwwvfCAwMLfZ8sh5OPT4acnbzJKHjqEfc3gVv6twC72vwc3+vjLYu9Dzp3ze4/gmLWcl5exbbLvedAJFt4nEen/4q495wxwL/Z83CK46J/BRQJ5OkfuzXv5udFsqk+K/pvHWvN8zkoh9fN5/PwmF+LNQJ6wIjN6bFCUIsUc3Grd6CObfB160Aed/rRRVBOMVz0B2JZZh2Ai70urwxVRDKP8RqrsCevXZfIlVXFNXHjDU6J8TWjYw/nv3EuLWa8J+/I22q1ZDabSbvdlvl8Xihlx8LXKTvevRYpQt2zz9kPF/1LYO0dJ7JfcY5ehGKV4wJL8DxQ8GBhCUlbUUTDedktLPtsNrtWnKNLcVloXH7LxTlWFJ9Ll/edpuA60bwExTlYToxrcvbHRb8Dy3XnsllL9Gwd+RyWeA8pw+XIO0fftceAa9CWk6lUKsF91mW4DMTH7jWuTZfhcvrPKvjh8+tYhf43vzeX4dZqtdB8hPsF8mdO3fp7Ge6BaLHjRwtriB/vPnNNHYjj4hc+V8z66Ry7TodZrjMLgC014MCdTonh9VZQjacK+prg6iNHz9t8WdfJnotedINjuJah1WqJiIQNR7DM2avz9sOX1hrgh7NYLDLPo+YbPzRuzrBraa229lbuXGOdA+LEjxxi0t5CLACn227pa9Lvj8FCC15/Ru2x8PXxvV49Z71WLwLSU5p2ux0yDzydcMHvhy+t3UGpVAodc9BEo9vtSrvdDoMiasN5Y0nt2ovYRSjW82ydWVhsGbmQhmvRdRMNvgZLxJZXoqPn7CVYffL4PTgLoK26nsvr17Do9eeD+LGPIIJ6+Azr9To00Wg0Gof9ZydCmqZ8T2q1mrz77rvyrW99K7iobOVFJPSWR6MNbUEBi83qYmO1y7KWibJnwEJgcbBLjM6+fB0sXh3Fz8uTW33vcU4Ly6OxjsG9jlnw+gB4CogXXFxcyMXFhZyfn8vnn38ut27dyrTLevLkSfLtsn72s5+Zz3u7rBy+/e1vy09+8hP53ve+JyLZxpi8Qw03xuRUFouPN6/gjSvQZsvaW04XpfD/FVtR7UIDfl/unx9rm2VZd30deB7n19kBkevZi11utzX14c/Hll8HC7GE9+joSE5PT6Xb7cqTJ0/kd7/7nTx8+FA2m420Wi2pVCqZOEQKnJ2dFW+X9cMf/vD1XM1XFFSXjUYjqVar8t5778kPfvCDay2wV6uVuUMNF8FwdBpC4p1t0O+e96ZDJFrvJov3ZAvLATCrI43I1TJczndri6tz46+7BfY+dQz43nCvg5Xs5fAAgWzBs2fP5MGDB+Gcg8Gg0O/gm06upX/w4EEylp6tEcTR7Xblxo0b0m63MxZTbxvNm11wII1LWfF67EfHN96uSpfE6s0uOG3GgT0d8OLgInsXsPZ680oWeuwxPgsGAqsGYB/Lv6+bbRUvcVwD5+aBUETCXgKpsz2k7/13v/vd13M1XzPwg7JWipXLX7Zpxoo5K+fObvZ8Pg+dZVj0HAjUu9Lgb+wNQIRWnh/FN7yCD+vu8TyEUqlUQpENPmds7r1LrFr0eYFC67EFvBWeAuj34++DQZ46tbn8LjyQtwc8N2f3Eu2puHiGi2a06HVeHQGqZrN5bdcZ3POGGnoDSw7usasrcrWBJd6/Wq1Go/aIUYDYY17swp8rL1PBxKYARSy/Pp+OdTD8+WPn0OfbVSFY5LUvc77XiafscmD3Mpaewj17AlZjSatYBuev1+uZklKey7PgrRgCrLQu8OGOM4zOApTL5UwnHjzH839+DKHhcalUuhbVz0NPB0T2d//z0p8W1rXs460cyi6v5qtCrui/iqPUm8AaoflHjmN4js0WEMfzOXTFGbwEEQnLW3lA0KLXjSkQR+DBQzey1Kvk+FpwHTyvZy8DAUgscGEvAVMCvAbTBT33x/ek59z7Bvl2/ds5jFzRW1ViKaMFj/k2t57mApRYqopFKnJV3otzi1yJVq9O44o8uK860MWv19VspVIprHXXKUL2MPjv8Cp0fl9H+PUAYXkD++Difr34nP4AeEXadDoN83XA+8qxCPWcmoUokvWsNptNEKdVvcZry3kw4HQdNrXUbbCwWo3FzPvsIb2IY6zaAc7lW7EIHkA4uIjBQFcjOm8OF31BIJDZbCbj8VjG43EmMo4fNnLnHA/QFpWj5XoA4Lkz/g2BQPS80k3HEdhi88IXvVW1zstD6GztdbyBPycPDMg+cLER/saFSzx9wOfB3/Cd+GDw+nDRFwBu7XK5lOl0KsPhUC4uLmS1Wkmj0QgCwSYMXAevi190ME8ku8w0FvzDcUgT4t96hZmVJtSC1xV/LGJdJ8ADVWyQ0FkGvPdiscgs4UXQkD8bFxHtM/93DsdFXwD8KOfzuYzHYzk/P5fz83NZLBbSbDZDHh2LPixrr7MAeikrZwtwz33t8RoWh7W6joVsueq6tp8tuVUcxGLnAYwHFggc1YaY/nDWYT6fh3MiS8CRf/YAXPCvBxd9QSCi8Xgsg8FAnj9/LvP5XBqNRkirYcsl7gsnkp2zc005/sbC5kEAx+JveIzXWWvUWaTWnFwPQlr4ea/hqrxYanEymchkMpHRaCTj8VhGo5FZdgyrz3N9vn7L1ffB4OVw0RcAP/TFYiGTyUQGg4G8ePFCZrOZ1Gq18KPm3V2syDui72gxJZLNm7N7y1F+kasdcPAaPrduOqFFqi2ozplbUXl+vXUsewaw5BD9aDQKU6DhcCjD4VBGo1Gw/rw/nQ4qWu99aDmvk8VFXwD8COHCjkYjGQwGMpvNpFKpyGw2k8lkIu12O7NLjO50g84yzWYzzG1FsmvRrYg9p/V03l/XpvM1833eZ9NC09MRPkfMzedFRbDwWAY7GAzk4uIiWH9t9Tl4yGsDtNUvkv5zruOiLwgsEeb1+PGKfLnQo9lsymg0CoLn5hZ6+yd0gGFXHe+BNeB43lpwwgE8WHlrKgGs1CDQllw/Zx3PngG+F15yjNWEsPgQPYQ/mUwy831Yfl5vwDEA7V3olX/OfrjoC8IuPs9fEeCbTqfm1lBoDFmr1cL6b/ygtVWFy89CZ8Gz0PXUgVOAInbJMN/rz8b3ed8B7rX42eqjlgFWfzweBxd/PB7LZDKJCh5TBXgCnFHA94wBF737nf1w0R8AF6WwNcJ2ygi26TXgbOWn02n4kes03mazyQQBdadbLuVla8+C18K3xG5NA/b9/Pw4Jv7VaiXtdlsWi4V0u91MNJ9deytFCEuP47iPwXQ6lRcvXsjTp0/lyZMncnFxIbPZLOMxueWP46I/EHZn8cONCY9X5cHSdzqdzFJZbSkhfCwPxb1uKrGv6K37lyEvGAjxo1QYAx277VzAw1ME/h70smIOoj5//lzOzs7k8ePHcnZ2Jk+fPpXBYCCLxSIjfh8AruOiL4gOlHHpqeUe65p39GvnVlkcAecoNqw/2m3zj9lqLmEJH8fzvX58CNra4x43ZCGwsAjityoB9ZxcZwf4+PV6Haohnz17Jp999pk8evRIHj58KI8ePZK//vWv4Vy1Wi1T8ut8iYu+AFpsgH+YIlfdXBjOt6Ozi7Z6Vv06p+c4X4/ntAv/sqLXQcVDviM9COCzYxDQqTj9eut6dD0BMijPnj2Te/fuya1bt+TWrVvyySefyOPHj+Wzzz671sLc+RIXfUG4GIaXsuoadp3uErkSPm/JpO/Z7cVzOAe79paFjF2vdb/r+H2+B5H8RhG64AjHW9ddJOYA4Xe7Xen1enJ8fCz37t2T9957TwaDgfz2t7+VX/7yl/LixYu9PktquOgLAuFxL3ZgVbXhef5R82IYvbhFt8bSwsc18I2FlJeqe1PoAUFbf763rtGy9noAwOCLPQnu378v7XZbNpuN3L17Vz7++GP51a9+JSIinU4n1P47LvpCcGDO6jUvku3bZrmxXGDCBS4QN+b6urU2u/o8tYiJPNY8w7qWvM8bw5rT68d55ywyOFnXzY8bjUZm3cG7774rP/3pT+X999+XzWYj7XY7U9OfOi76gsDS835t7HJri6SLR2Dp0bMuL7+NG4vfCoRZ+8ThvfixZTHzKPL3QyPkLxNc1AMIruH27dvy4x//WH70ox8ddN5vOi76AsDSY8MFvff6er02N1WwXFvsEosUk85P8+IVq09+r9eTTqeTWdzDxUAQPwJph6br9ini2cdlj53byq1rEev35eM5YAlLjimXi93GRV8QRNDr9XoopW02mzKfz4NFR9soCI7dSvYGrIUlmO+jjJUXr6CcdTweS7/fzwgfC3y48s9q1Lkrag92DRI6L2+537uyB1YMQrvyOnrPx+nBLNaezMnioi8I5vTYJvno6Eja7XamFJTn6pbw+ceL4hQInotS9Io1iP78/DyIvtvtBuFD/PBA2Avh1tzakurVd5zy4+P5+vXaev3aWO0AH6Pfi79jvh4eGPF33XdAX58vyvH96V8J7N5D9J1ORzqdTqYij39s8/k8U1gjkrVaKB5BUwn8iHV9P1asDQaD8J76hm20rQGAt7RmUXFMAXBmwGrnzYUz+rV6XYC1CtAaEKyFQuxF8CDDKw5jXoQ3dY3joi8IflCNRiOIvtvthuCcNZ9cLBZSKpWCVdcpLAgfP254BuVyObS/rlQqMp1OpV6vS7PZzOzLjhuEru95zh9r1snZAWvPON1/jzMQ+Ewc5ERfPr3wyFqToHcE4vy+XsGHAp9msxkGAEvgPp+P46I/APSow5710+lURCT8yLlwBzd0teX8PYDwLTcWg0W5XJbZbHZtC2cWFtx5DAxw8XHjQQmxB04XsvfBawV4cY/IVcUhFwjB+nKvANx4qsGDAAcfeUNK/i50TcN2u5VGoyGdTkdEJLw+r0jIyeKiL4guCul2u0H03CIr1jEH0wBeC74rWq0HAb2UlgcZva0zC42tIt6bLSiLXjf94PfjgQnXzwFOiB5eBm74G3fntYKP2hPhrEapVJJ2uy2np6chtoLrc/bDRX8AKKXFvP74+Dh0zuEfMYsGS2lRGQbrzVaTLZwVwbaCXVZQzJqT62mHdp914Yo1YMWEhfeFaPEdsKi12Hlw0KlP9kbgicDSl8tl6fV6sl6vpdlsSqfTkWaz+Sr+W5PBRX8AbO3REAOVYVrwuqsN5uns8otcT0nxc0UryXRQzErVxVJh+nPqW+wYHiQgflhvtuIQtp566FoDLi/muEO1WpWTk5Mg/tPT0zDNcPd+P1z0B6Dd2VarlRG9du2tfDmsFm8OycE0kd0Vb7HpgI4ZxAQfO6/1ulje3orCY5qBz2s95nk9B/24wlEX3my3X7YDXy6X0mq15Pbt2zKfz6Mr9hwbF31BOG2H5hBoeIEcu46oI58/HA5lMpmEPem5vt7qMy+S3eOdrXJetZq+3tjf9imz1fEGS/RccASrj+c4qs8xCL1wiQcBjvDjeJwf04HZbJbZudfZHxd9QbRrv16vw1JZuKLIr6OPG/eGQ4HNdDoNpbWY719eXma6xYhcFZrsc137Xn9MwC9zbs5A4Hq1pcZ3h22tyuVyZlkx/gZPAPfb7fZa2zGuP7AKiJw4LvoC8PwVaaNKpRKsvchVxBkdYdEWezqdZjZ/QGPI8Xgc/obusGj2iM463GCDU2WcZot5AExs/m49FxNRzOW3Ovno/Lsu0uHcPe8DoNN6nBHpdDpy584duXPnjpycnEiz2cx4As5uXPQFYUsvIhkrz+ks3UOPu7tC2HyD8HkAwIDAC214aygMCJza0tH/PJHr8lv9OUWyQUG23Do4yQLW83YOZnKzTxyno/066o8aAxRE3bx5U+7duye3b9+Wdrvt1XcFcdEXhIN4SLntirzryjfuh6dX1UH4PC1gzwDTAt06Wu8So2vPrTJgPTCgChCfU5fI6kyEdrlj1lqv/NNzeR3F52i+zuW3Wi3p9XrS7/el2+1Kq9Vy974gpR1BEI+QRNhlTfWx/Bpdv24ttMFaengBeKz76/FmENbustY16jSgLgkWEdOi6/ScLtflgBzPy7Vbb5X56kFD7x3A59TzeS/MiWKOhC76VwB/h7Hquthr9IBgtYLedeO5vu6hHyv00bl/6zPoFXI6LWcV72iBx3L91rl0TMBKBepj3MLn4qL/JsOW3fJCdgXwilb98WMX31cWF73jJIYpeg/kfQU5tNjkbVjb110Y4x7Eq8ct/deIokU1TvK4pf+642J3XgWe63CcxHDRO05iuOgdJzFc9I6TGC56x0kMF73jJIaL3nESw0XvOInhonecxHDRO05iuOgdJzFc9I6TGC56x0kMF73jJIaL3nESw0XvOInhonecxHDRO05iuOgdJzFc9I6TGC56x0kMF73jJIaL3nESw0XvOInhonecxHDRO05iuOgdJzFc9I6TGC56x0kMF73jJIaL3nESw0XvOInhonecxHDRO05iuOgdJzFc9I6TGC56x0kMF73jJIaL3nESw0XvOInhonecxHDRO05iuOgdJzFc9I6TGC56x0kMF73jJIaL3nESw0XvOInhonecxHDRO05iuOgdJzFc9I6TGNUdfy+9katwHOeN4ZbecRLDRe84ieGid5zEcNE7TmK46B0nMVz0jpMY/w/8S4lXdgx+/QAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 32\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 33\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 34\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 35\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 36\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "current beta: 32\n", "Current iteration: 37\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 38\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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bbeWlpkFPa7rmydcWRsgBUXh0crLx7q8BNvKS9Hn83nkcrmJeIMciGSvARY6SSG7WnOFQiHkcjkUi0Wk0+lbm3ko81HRr0g4HEYikUCxWMTBwQE2NjZQKBSQz+dNr/mNjQ00Gg2Ew+GJnWZd8+hlxL/IeRQy97Nzdee1m1VK7BWCdKntBUVS9CxPpschDylw/s5mI9xjPp1OmykBX0eutru5uUE8Hsf+/j6ePn1qpgq6KctyqOhXhKW4TN1tbGyYhpguy+X7vnNV3rtIMVE8b/sxEteyYu7fx0FBdhJKp9PGG2DWQS6zpceUTCbx9OlTRKNR8xzSA1GrPx8V/YrQBU4mk8jlcmYAkJtM0mrRXW02mxNbW/N55E/g9WaRZNbqtIeKPWjQ45DBPM7NpYvPTIMseOJzdbtdpNNpDAYDeJ6HUqmE7e1t061HWQwV/Qpw3huJRJBIJJDJZBCPxzEYDMzmEtls1sxrC4UCzs/PUS6XTXsoNnyQK+5cy3HfB+SAxvcLwMzROXVgHILTBOm+c0rU6XRQLBbNmoT37bN6F6joVyQUCpmtrFiIQ4vE/P3e3h4eP36Mq6sr0xeuXC6jXC6jWq2iXq+j0WiYFXWruNPTPIVZ574ptrdhb2AxbaGR/fs0wfKzld6AbB+ezWbNGgSdzy+Pin5F6KqGQiHT0w7AxDyUq+bY6aVSqeDy8tK0hWY3XbbPovjtXWFkPtzGJbSHZP3sQcleJSjn/hS5zBrQ/WeAcGdnB1/72tfw7NkzbG1tTa06U6YTmjNHXI8J5D1iV6PxPv7kAMAmj77vo9lsmk66vu/D932zhr7VapnW0c1m05zL7q+yvdZDxbbUdNuluy7TiVymzDQec/oyrcfzCoUCjo+P8eTJE5RKJSSTSQ3eTcf5wajo3wH2whppwWUHWDkwsFc8PYOLiwszLWDlHzeOlFtPSc/grpHzb1nqSkFLEdNS8ydFLi05c/ae503EQljM43nehOhl1D+ZTM5c0qwAUNGvD+z6ymW1tVrNzP+5Mwzr/OVmlK4toqfNs+fVCNguuKumXqbkGHGX4uYhy3n50y7XdRXt2CW8ytKo6NcJub5eHnIjSXvBi+uwn3Pa77M678if9u1ph2t/Pft3u+jH3n1X18S/MSr6+2Ze6e372P3mLpGfm35GC6Gif0jMcqkV5Y5wfqF0onRPLLLW3L49z11f5HnvEvv137Rtln2fDoJvB7X0D5xFhL5OLCJkFfudoe69ogQMp+i1A4GiBAwVvaIEDBW9ogQMFb2iBAwVvaIEDBW9ogQMFb2iBAwVvaIEDBW9ogQMFb2iBAwVvaIEDBW9ogQMFb2iBAwVvaIEDBW9ogQMFb2iBAwVvaIEDBW9ogQMFb2iBAwVvaIEDBW9ogQMFb2iBAwVvaIEDBW9ogQMFb2iBAwVvaIEDBW9ogQMFb2iBAwVvaIEDBW9ogQMFb2iBAwVvaIEDBW9ogQMFb2iBAwVvaIEDBW9ogQMFb2iBAwVvaIEDBW9ogQMFb2iBAwVvaIEDBW9ogQMFb2iBAwVvaIEDBW9ogQMFb2iBAwVvaIEDBW9ogQMFb2iBAwVvaIEDBW9ogQMFb2iBIzonL+H3slVKIryzlBLrygBQ0WvKAFDRa8oAUNFrygBQ0WvKAFDRa8oAeP/AXHUpUUDZBj7AAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 39\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 40\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 41\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 42\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 43\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 44\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAP0AAADnCAYAAADVeFABAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAnjklEQVR4nO2du29k2fHfv/1gv9/dfHPImdVKKwELK1goErAG5EiGpMSZAiWC4UCAE6f6A5z6X/ACChxIcLCAYkmAgtUKNrQyNtBCMxoOyekHu5u33+zHL1h/z1YfntuvIYfk3PoAF+whb3ff7rnfU3Wq6tQJzWYzKIoSHML3fQGKorxdVPSKEjBU9IoSMFT0ihIwVPSKEjCiS/6uoX1FebyEXL9US68oAUNFrygBQ0WvKAFDRa8oAUNFrygBQ0WvKAFDRa8oAUNFrygBQ0WvKAFDRa8oAUNFrygBQ0WvKAFDRa8oAUNFrygBQ0WvKAFDRa8oAUNFrygBQ0WvKAFDRa8oAUNFryi3yP/+P6/wH//HH/Gf/+dfcNkd3fflOFnWGFNRlBWpeUP8t//1fzGezvD/zq9QTn+J//6f/t19X9YN1NIryi0xuJ5gPP2mgbQ3GN/j1fijoleUW+JJKYX/8u/fQygE7OUS+K//4dv3fUlOQkt2rdW+94qyJqPxFLHog7Cnzr73KnpFeXfRzS4URVHRK0rgUNErSsBQ0StKwFDRK0rAUNErSsBQ0StKwFDRK0rAUNErSsBQ0StKwFDRK0rAUNErSsBQ0StKwFDRK0rAUNErSsBQ0StKwFDRK0rAUNErSsBQ0StKwFDRK0rAUNErSsBQ0StKwFDRK0rAUNErSsBQ0StKwFDRK0rAUNErSsDQ/ekfOHKvwSX7Dj4aQiHnFmsr/115M1T0DxSX2F2il7977GLh9fMzPfbP81DRXWvvCdf3rje5css4byi19G+RRRabqPD9eZe8mvtELf0DZTabYTKZYDKZYDwem8eTyQTT6dQcs9nM/LQPvo79uov+TSgq10/7sTzC4bDzseu5/Hs4HDaH/Lc8X9kItfSPheFwiG63i3a7jVarhWaziWaziXa7jU6ng263i8FggOFwiNFoNDcgyEFgOp2a1/QT9zLRy8dSlBRkJBJBOBxGJBLB1tYWIpEI4vE4tra2zBGNRhGNRhGJRMzPra0txGIxxONxJBIJpFIpJJNJ8zORSCAWiyEWi5nXUW4HFf1bQFpfWmgp1PF4jNFohOFwiH6/j6urK7RaLdRqNVSrVVxcXKBaraJWq6HZbMLzPHS7XfT7fQyHQ1xfX2M8HpvXlWK/baQV50FRU8ixWAyJRALxeBzxeByxWMz8nYcUezqdRjabRS6XQy6XQzabRSaTMQNAMpk0ryMHiGg0qp7ABqh7/4ZIV9r1t+l0ivF4bKy353m4urpCu91Gu92G53lGxPLodDrmXB4U+mAwwGg0esufdD1isZix6BwY6BXwsRSytPKpVGpO8HIAKRaLePr0Kd577z1sb28jmUyq8P1R9/42odhpreXvaHGvr68xGAyMq95oNFCtVvH69WtcXFygVquhXq8b152iHo1GGI1GN+bujylPz0FpMBgAmJ8i8N9yqiDdfjlF4MBAN39nZwcfffQRZrOZ8Syi0a9v49lspgPACqjoN2Q2m2E8HhurS7d6MpnMzckvLy9Rq9WMq16v11Gv13F5eYlWq2UseLfb3cgttwNtwDfC8jt30Wda5Vx78OF1u4KH9u9W+YxyEKDgOZVot9tIpVKoVCool8soFotG9Mpq6Le1IbPZDNfX1+j1euh2uxgOh2YQ8DwPjUYDFxcXePXqFV6+fImLiwtj0emij8djE5nf1Iq7hHaXc/pNsAcQv8CgawrAg57OeDw236/necbLUlZHRb8B0rUfDAbGWg+HQ1xdXaHRaOD8/BwvX77E6ekpzs/PzU1KsVPornRWOBz2jbw/JhefyAo7KWa67wzqce7OwKCs0Lu+vsZoNEImk0GpVEI2m0UikfD1ahR/VPQbIt17Buaurq5weXlpLPzZ2Rmq1SqazSY6nQ6ur6/nxCxv6odsqddFztdty800XTweNwE7Ru0zmYwJ3PG7mU6nuL6+NpmKVCqF999/H9/+9rdRqVTUtd8A/cY2hDej53lmvt5qtUyKjWk2egG07gBMfpsBulAodKcWXObT7YHGL8Unn8PnRSIR83e7DkC64tJ6U8Qy9SYj9JlMBtlsFtlsFul0GolEwkT8ZYyE6cxYLIajoyM8ffr0xnxeg3iroaLfkOl0isFggGaziVevXuH09BSNRgP1eh3VahWXl5fwPM9YKBmJB1YrybWxb+pFhTV2Wky6zQDMIHR9fW1+yufbOXW+HgcombUAYPLwMudeKBRQKBSMFU+n00b8Mh0nC3E40PDz2XUMoVAIuVwOpVJJ03UboqLfAM4xPc9DtVrFixcv8OLFC1M512q10Ol0TOGMrJbj89fBvrFlFRzFQnFLa2ofFFUoFDJCH4/Hc9fI149Go3Ovy1QagLkCIw5iHGCSySSy2Szy+bw50un0nOsuX1MG72RcQxY08dqur69vpOpU9Oujot+A2WxmgnavX7/G6ekpXr16ZVz5TqeD0WhkxLRunt1Ow9n17CxoSafTyOfzKBaLKBaLKJVK5nE+nzcuMweCaDRq3HW7MlB6IRxQ7NJZKUj5HE5RXOW1HJRkKa49bVhGNBrFbDZDPB433wu/C2V9VPQrIiPt0+kU/X4fl5eXptCmWq3O1cMzaLeO4BctRpElqBR6pVJBpVLBzs4OKpUKtre3Te46n8+bUlZaVZfIXIt05Psv+07sub29qGaV73UVpMhv83XfZfy+JxX9BkynU3Q6HTOHZz0858myDn4dwS8SezabRaVSwf7+Pg4PD3FwcIDd3V1UKhUzb85mszcWrCyzhm+yku1NLe6mns8qrys9l6Dit0hJRb8Bk8kEnU7HVNZx/i6DdZsIXqa3tra2jGUvlUrY3t7G8fExnj17hqdPn+Lw8BA7OzvI5/NIJpNmfiwt9F1nBdbBJdjbno9LT4XTCOUmKvoVoHile09L3263MRgM5qLf61gwe8Uao+WZTAaFQgG7u7s4ODjAyckJjo+P8eTJE+zt7aFcLiOTyZgU16JrX/Wa7HZVq36GVbjLFlgy4DebzRCLxW79Pd4lVPQbMJlM0O12TZR+NBqtXTVnF7DYKa9KpYK9vT1j3U9OTnBwcIBKpTIn9lAoZNxYl6u+rmu87rkPAdc0g7GUIOPn6ajoN2A6naLX66HT6aDf7y+8wRa5tXRBo9EoEokEMpkMisUi9vb2cHh4iCdPnuD4+BhHR0fGuqfT6Rv5bGJfw2MTr2SVph+z2cx5Y49GI3z66af4/PPPMZlMkM1mEQ6HMR6P7+x6HyK//vWvnb9X0W+AXEk3HA4XCt61ck2688yt53I5lMtl48qfnJzg6OjIBOtyuZyZu7vy2o9Z4C78Po/8TuV0Sw6AX375JT755BP87ne/AwCk02lEIpEH34PgtlHR3yIswR2NRhiPxzfWcVOQLsvLQ7rzhUIBOzs7xrIfHx+bQF2xWEQmkzEFLavmth8i63hDi7DPPzs7wz/+8Q+zgvGzzz7Dn//8Z/P3bre7/sW+w6joN4CLbex6eiIFb6+kk/XpqVQKhUIB+/v7Zu5+dHSEg4MDlMtl5HI5pFIp01DCbhj5mK287ab7xSKWUavV8Pnnn+P3v/89/vrXv5o1EK1W6zYv951CRb8BdlGKXIxCwcvqNv7k/D0ejyOdTqNUKmF3d9cI/vj4GLu7uyYyL/vLPTYL75rW2AMjz3MdsvsQy4X5706nY1Y0vnr1Cn/5y1/wpz/9CV9++eXcNcTjcVNyrF11vkFFvwG8oeXcnGWq9o0tS05ZnppOp03A7smTJzg5OcGTJ0+wu7uLQqGAdDptrLtr/i6vg4PMQ7mhbRde1iq46ukpZlnLzwU2/X4f/X4fnueh1+thNBqh0+ng4uICz58/x7/+9S+cnp6aBiU2TKPaKdego6JfEdeiF7kSTbru8pDncIlpoVBApVLBwcEBjo6OcHh4aATPsllZJ29beRnIspfm3veN7RqYGAMZDAbo9/tmfQJbebPOgXES2RmYzUTZO9DzPLPe4eXLl+j3+3PvTY+LVZH2tSgq+o2QUfdkMonhcDgnbLnghGvLaeFZdMOa+b29PVQqFeTzeTN/54BhW3eXFfWLJbxNXO8pxT4cDuF5HprN5lxL70ajgVarhV6vh16vZ9bNy4PP51qG0WhkBg823ZTvqe2zlqOiXwFbTOFw2Cx8yeVyJv/LhhBcO87lpLKRRDqdNmvNi8UiCoUCstmscyWcxK6sk8E8Huu4sH7nrTtoyDm4nIfTUnc6HbRaLdMz8OzsDKenp6ZJaLvdRq/XM30HuFhp1Zy6XUWo1nw5KvoNiEajpmquUqmYOX2pVDJpNi5tldF3egDsHJNOp80CGbr0fhbetRLOdfBvfN66rFpZ6Aq4cR7e6XTmWn6zk9Dr16/NAiXZV1CuSlTuHhX9BkSjURQKBRwcHMDzPKRSKSQSCezt7WF/fx/lchmFQsFE4GVATs71ZT93W/Cu6La9VNdemec3HXDtdWefY7+H/V5+0XUKdjAYoNfrGTe+Xq8boZ+fn6NWq6HVasHzPAyHwxvr8Te10GrZ10dFvyJSTBT98fExxuOxKY/d39/H3t6eWcueSCRuNKDga8ktoewIvUvwchss2YVHvpbrufb2WS6xSdec9Qd2Vx0WIcnXohvPNuBXV1fwPM/kybkPH3/PPQJWtei3NQVR5lHRb0A0GkU+n8fh4SFCoRA6nQ4ymQx2d3dRKpVuROCJa16+rIOMFCZTWRSiTB3KgYPPoYDpQktXWnbMke2oGD2XO+24cuUyrUbRe55novJy+y3ZQYifexXhqrjvBhX9BoTDYaTTaVQqFUQiEQwGAySTSVMyK9e2S2x3GXCvjLNdbtkcUnbnYbDLldqj6y0tsdz0ks+XjT94PtNoroFCns9Bgufz2uQA4drIQ8V8v6joN4Apu1wuh2g0iuvra2xtbc2l3FzWm73pXHNr4GYQTbrTtistXWVZBEQryp78nGfLzTIpfAqXqTB6BXbKTAqeUwHp7suBwI4LvMl8XbkbVPQbwuWw4XAYk8nEBOekhXe57HL3GrtaTT5HuvQUPItaGPkeDAYmLy0t/Ww2uxFJ52YcXA5sW2RpuWn1uUcfu9DaXYEA3BC23eJbeXio6DdANr+IxWLG2soa+UX5cntBjiuiLq0oLTZz3oyC9/t9Y11lbp9FMb1ezwTRaOl7vZ7xEujec3CRgTxXiax9vbbw+XflYbNQ9EGtbpIBskUCDofDvuWvdqGMS+Sufnp24I4uPaPijUbDNOLs9/vGCsvIP911Wnrucy+LYGRwzY7Myzp4+9rkZ1Gr/jhZKPo3/c90NZHgDXpbN8qy11qnUGWZcP2es6wbrJ/gZSRcptIoPs6r6aJfXl6a0lWZAiOsO3d5CLLU1e895XX5DUT2d6mCf3wsFL1uDvg1rvm2i1XWuXOQYnTd7pUv02G2lecOOp7nmWo2udmEfD9ZIceD78MAoG3Jl3kej03sdrr0vhcjPRRU1SvgirLbQpG/90vDycDcYDAwaTQG15gblxs2yuBdu91Gt9uds9h26k9u/ChTblLw0o23Re2auz9GwQPfeD6P5XrfFgtF/7e//e1tXce9I0U6Ho8RCoVMVxu7pTLnzQyYcX5MZN4cmN+IkdabQuYhC1po/TkQ8G9yJZrce85+PwA3imhc69ZdATle72OEW2fJqkLlJqFF/8E/+clPHuf//oZEo1FMJhO0221Eo1F8/PHH+PnPf47vfOc75hxaPoqSwTGuCWck3S7OkdadVrvVat2IqrM4RlbHDQYDI15XGa7drAPAjYUwcodaBu7swy8V5zcYrDs4LFomvOpzZQyFDTHZfqxYLCKbzaLT6eD58+drvf67yGw2c85nFlr6Tz/99G6u5pFQrVaxu7trGjX0+31z89nFMhQtBSJr7unWU/SMptsRdVkwY6fQpJstpxB2DT8w37LL9Vw/ZPGQrCeQIgP8N65YJuR1hG5/PmZS+Dm5+w/3ts9ms6YRSbvdxt///nc8f/4c0+kUiUTC/D8oOqdfyFdffYXf/OY3+MMf/mCExOYYDHJeX18bN1wWywDzXXHtQhsK3C6AkZbcVdlGoUnLHo1GjdWT2zfL5xJ77b2s1ec183lMSUqRu4Qra+rJujEAacntzyYPNiOpVCo4OTnBt771LRweHqJUKqFQKCCZTGIwGKBWq6HdbmM2m5nv5LFOW26bhe59KBQK5Le0KErPTSlSqZQRvl3B5nreOpFjVwGMRG5yKbeT5pTC3kfeLp3lQLAoBSfPcW3mYQ8k9meV12iv+bf32+NnAuDbaozLk9lu7OTkBB9++CG+//3v49mzZyiVShqdv8n67n1QU3a8AV2bIzDQFgqF5raVoqBWxXZfV1lGyuew7Nf+G1+HVtquH2DMYpk47MyEPTjY8QQ+lnvPs18ArTMfU7w8X34PcvDiwdJmvk88Hke5XMbTp0/xwQcf4NmzZyiXyyt/78oS0QdtG6B1mM1mb7RjCoUjl5yusuWznQ50DQJyIJHu+nQ6dQ4WfnUFtshtsUuhU6CyPyA7BPEnewXaPQRkgxGX58LPeH19jUgkgnK5bLbrTqVSG33/QSaYpnwN7Ij4smDYOkgx8cZeZoXtNCCFLa/J9h7kc+w5ugyQyYHCtW0WDwqTVpgNQCnuVCpl+gSyJRjPkYuSbNffHgRkbIJZDADI5XLY3t5GNps13igHNTk1C/ocXven3xDp3t4l9gCw6HpovW2rDXwjZNcGGS4LT1dcutIUtezKa1tgWm1G0Sl02RyUv5fu/aI+/vb3wSkGS5L7/T4mk4nxIrjrDwDndEZxo6J/gCwKBFIIUvAysi/dbbkJh/1aFLJ0y+ma0yLziEajppefPE+68Gz0yYNdgPk8u45gUaTfjikwUBqLxUzvAil4ZT1U9I8E2wOwq+js4hU2+nA12+TfKR728KeLzsfykGKPxWLGXU8kEkb8fCwtu8uVl9crP4t8LGsF5PRKDmrLvAXFjYr+EeEnfCIFLzvs2ukzuv8UPEXLg8E3KX65iYf0COxBwSV218IXlzfj93kAGKEDN2MWynqo6N8x7MCY3TST/7bbcEuX3bbcUvC2wOm+y0FGuvKLLLzr2l2FQK7KPGVzdFIUcIIe4Q4iaunfMewgmEx7yZy9LMOVeXJpTWVVnt1ww6+8144fAN90GJLlv37Xbj92FQrZKUplPVT0jwhXFF5iR7xl00470MdFPa7NLbjSLx6Po9fr3QjiyXn+KoE84JtagUWBPHuuLz+PXHzEzIUKfzNU9I8EP8HLwhv+pDBGoxEikciNXoeulB2FLkUu5+qc//tV3cl0HVN4HADs6jrbE3BV/smmHrLL0Hg8Ntekwt8MFf0DZFmwy2U1aSUnk4lpJEFLT+xluXZxjizQsQNydnGO3IyTu/Fyp165cy8zAKsU58haBP60i3PG47EpzAlq49Y3RUW/hLssw5WsEt3m9biETyh8+Td7frxOGa58Hb6nLMPd2toy7r4cAGQZrkz/cWDxK8N1RenZoWgwGGA2myGXy2FrawvJZHJujq9luPNoGe6G3GUZrp+olj3HDsC53GV5zX6trOXryeuQr8Offs/x8wDsaj0535cWXx7ydWRVIdcljEYjbG1toVQqYTabYWtrC4lEwqx21Aq91dCltQ4YKFq0ii4Uup2lta796G1kxJs/pWjs17AFLw+53l9afPlefB69hkXitz8Lr0eW78qFNq6ltXKhjVyxt2hpbbfbRTgcRiaTQTKZXPl7V3RprZNFc8VkMmluNDbMZMSbraXXFT9xueGrNNFwVd4Bd9dEw1U5Z/9beiAuN14+z/Ze5Jp8Lu7h52QTjVarNRfJL5VKaulXJJimfAm8qROJBH7wgx/g6OjI5LiliwrcbJcld5KV1pfbR7HDjt2Smn9f1C6L2PNf16o4Yrfnlnl2+Xnt4JndLdf2DiSu6c+iQcIP22OQn40eQiKRQDqdRqPRwOXlJU5PT3F4eIhyuTzXLqtarc61ywoiv/zlL52/13ZZC/jwww/xq1/9Cj/84Q8BAL1ez9yYclNJ2RhzMpnMlboyqi674bIxJjet4IDBvnnysDeQtMVvL33l73m+a48612YWclBw/R5Y3iL7NgNndnBPejYUfzKZRDabRTqdRj6fx87ODorFItrtNr744gs8f/7cLMXloB0kzs7O1m+X9bOf/exuruaBEolEMJ1O0Wq1EIlE8PHHH+NHP/rRwhbYsh+9bIEtrZXdDddugX11dXWj5z1bV9tbRlO4cj4u3WI5r5cbV6yyhl0OKvZAwN9JNhG5XYDjh/3ednFRp9OZawuWSCRQKBSQy+XgeR5evHix9rUFhYWW/osvvgiMpZfzQbnZxe7u7o3NLoBv0kjcjkqWttopJ968PN9vswu79/1gMDCDCg/+fdlmF5xKyKadcuBwWXQ/D2DZnP6hQC+Ank3Qmfn0vV8oegAP83/3LWNbG7/5sSv37Dqf1WUUPwXPba34d3oG3MDS8zxzvvQsbCvIOTm9BL7eom2t5PXxMz820dswT/1Yrve2ub6+Xt+9V77GL48tI9PAzXXednGMPT/l/vapVMpYYta/y800rq6uzL703MCy0+mY813XNh6PTRWcvUBlNBqZVKO07sTu1ceBRE4pHoOQ5PSGrJoaXRfXc9/k9e4STdktwBa1/L3rpvdLsdnzZM7BY7GYyffT5ZbpNWYG8vk8crmc6TvXbDaRSqXmttKSqTC5VbXMi8vrZ2yAgqbQeZ6dtpSBMHkzP2TxL8squHiTz7Po//4hsVD0D3GUehu4ilYWncvyT7/zOUjYuWqKcTKZYGtr64arzTpz2beOBS/JZBL9ft8pes7n+/2+2Y1Hvqd08+3lsqzZl4OBHKzk98PP/Rhd/yCzUPRMASlupFjsQJqfd+BXpGKLZTqd3lj8ItNW8XjcLEBhdF6ug2fA0PM8M2gwRcj5PdN4MrUn03scAOxMAA97TYLyONA5/QbIoBd3guUAKefQrjmePQWwPQQ74s+/y+eGQiHE4/G5vfOk58BMQb/fh+d5c+2oGTSUMQR7XT09AbtwyFXKa1v7RVV+ysNARb8hnDP3ej3Tlpm7rTBHb2MXvwA3g4RS9HZlnewcE4/HTarQni6wGIjFQ57nIZ/PmwAgd8mVomfwkLUBslhInsfUntzr3q4m9KskVB4GKvoNYDrs6uoKzWYTg8EAiUTC7I8uF4nYaTvb2stz7McyALi1tWVExP3YaXHlwhtCL4QDEysHmQqUQqZwZWqP6UOm/Oxz7S478ifPl7UEEh0I7hcV/QZMp1P0ej3UajWcn5+j0+kgnU6bG567uvgJn7gKefh7+Vi2h2LJbTwev1EMZK9Bp/BlnT/degpSWmzp2ksB0wug4DlgcHBgvUGn04HneabmQFYX2jUNKvz7Q0W/AePxGO12G69evcI///lPtFotpFIpXF1dYXd3F4VCAel02qz1drWBlqWzizZukOfKdJ/0FFytpmWVnX1I11suoWVAj4K26/WlCy8r/ehJcE1Bu91Gs9k0dQUsLKIXsarg/bIhOmC8GSr6FZFz7PF4jFarhZcvX+Krr75Co9FAIpEwN3m5XEYul0M2mzUpMxmBlzvLsMTXFdCzK+0YJGR/OJkFkNkA+7pdsQQ70GafZ8/L5fPsZpWywtDzPDSbTdTrdbx+/RoXFxe4uLhAtVpFs9lEp9OZK11e1I1IxX03qOg3gKI/OzvDy5cv0Wg0EI1G0W63cXl5iWKxiHw+b1pG2dtCcXkom0gC880xbGTFn+0t2Ic8H1hfOKtG3e3S3fF4bOb1nU4HrVYLjUYDtVoNFxcXOD8/R61WQ61WQ7PZNOsNaP05CKzLYygSemio6DdgPB7D8zzU63XU63U0Gg0AQLfbRbPZNLu3yv5wXAqaTqeRy+VQKBRQLBZRLBZvWDo75w+421otE7wfy0pR10GKP5VKYTKZoFgsYnd316QMr66uUK/XcXFxgbOzM5ydneHi4gK1Wm1ueTHXCjBuoNwNKvoVcBXO9Ho9syy22+1iOp1iMBjA8zxj1bkdFKvquJ1zoVDA9vY2dnZ2zE0u34Nzdlcdv0vk6wh+Geu+hvRCSDKZnKsqpPW/vLw0lr9araJer5vvTwb+ZOBRPpb1B1xxaP/fqOVfjop+ReScXpa5ypx3NBrFYDCY62LD2ndWxaVSKeTzedTrdbTbbdNtR85tuVBGpuMA/11k/CL/bxPX+8rvIJFIIJvNYnt7GycnJ3MrC+0sAcXOAGGn0zEFRZ1OB69fv8bLly9xenqKbrd74z0BXTeyCBX9hjDFJdNZLJQhjLRTuLz5GdFmoQzz5pPJxET+WWtPXPN5PpY/7xuXhWUxUSwWQzabncsCuFKHdO9lcJCDQ6fTwcXFBV68eIEXL17g9PQUFxcXaDabxmuS78treqgr3u4DFf0GSIsvI9n8G11bIvPo/X7fWC6Zz5Z59HK5jEwmg+l0aqy+rN23r+Mh3cx2ENGViqT15zn2KkQ7QCg7BjFFyM5Dp6en+Oyzz/DHP/4RX3755dz7sFsxi5ge0vd0n6joN8BeMMM8t0TezLIJB1NcdjUbDw4ATPu5KvceC661B67HPHeTaUq9Xsfu7i6i0SgKhQJev35tUqfD4fANrv7dRUW/AayKk80o/fLe9vO4hl3muJnu6vf7Zq7b6/Wwt7fn7IcHzG8I+Rit2G3FISqVCj766CPk83n8+Mc/xmAwwGeffYZPPvkEFxcXt3Gp7xwq+g3g/Nx2vQldfsDdtUVWy8nWVhS97Je3t7eHSqWCXC4H4OvNHh5rf/fbGpjs73R/fx+Hh4fmd9/97nfx1Vdf4be//S0AIJPJIBKJaHDv/6Oi3wDZfz0ej69cLird/el0ikgkguFwaFJRtPhskcU22RQ/MB/Qk0t47VV79uPHhl/KzeU92YPgBx98gF/84hf48MMPMZlMkMlkAtkC2w8V/QaEw+G5nW7ktks2fuWlMsDE37VaLWPxWdTSarVM4G84HKJcLt8o773tXP1DwO9zrPL5YrEYfvazn+GnP/3pys8JEir6DYhEIkin0ygUCshkMjdEv8pN5mo6wdSV3BiDwm80GqjX63jy5An29/dRKpWM+Be5+65aez/sacqqrCOquxCgnC6xzuExBj7fFir6FbBvHm6cWC6Xkc/nzWo6uu2r3mx2ioqVeFzd1u/350pYz8/PUa1W8ezZMxweHmJ7exv5fN7sqydrAuzrXvWa7koodylAmU3RSrzlqOg3IBKJIJvNolKpoFQqIZPJoNPpzO0+w00XgNU7sNp72Mng3tXVFS4vL1GtVnF6eoqDgwPs7u6iUqmgUCjMLfBhrX8sFnvQQb83XWLrd678DoOM7k9/i4TDYaTTaZTLZSN8rhgbDodz6bpNhG/fuHT3Pc9DtVrF8+fPUSwWzfvv7Oxge3sblUoF5XLZrPLLZrOm7l/O/+33tYuJ7DqERdfsav9llwm/KfYUZVn8gtf+kAe8+0RFvyLyBguHw0ilUiiVStjb28Pe3p5pn8WyUQBmpdi6wudzZF6f7n673Ua9XjfZg0KhMLdir1QqIZ/Po1AomM0dE4mEmYLIugK7HJbvLzfgZD2CFJHdIFM292Aqk7v7spzY7uzr6hi0CLn2fpV9+XQ+74+KfgNCoRBisRhyuRx2dnZwdHSE6XSKRqOBZrOJUCiEbreLUCh0Q/jA6uL3C8IxtdfpdNBsNs2qPoqNRzKZRCqVMu4+xQd8sxef3FWH70Oxyx4AFD69EFkrD3zdBXhrawvpdBrZbBb5fN4cXGospx08OBBIIbsadsjGnHLPerXm66Oi34BQ6OvuN9lsFjs7Ozg+Pjbz/Ewmg0QigUajMbdQJBQKzQX61omq224tLTNX+rmuTwqXi13YuguY76EnBSU/H8XFIKEsRJKWnu/HLbqy2azpGcDdebLZrBmA+JODgBwI5ABgd+fh95jP500shfX1yuqo6DeE2yMXi0UcHh4iFouZm5yNMev1OlqtFsLhsHO3WDmPXkf8q5xHIQ8Gg7nVfrIqUC4YsrFXCHKe7FpQBHyzjJbilx4HvQ773ww8cssuBiE5OPFzsB1Xv99HLBbD4eEh3n///bn3VFZHRb8hLMXlGnEuG2XwjNYrGo2aTSfl3H7Vef5tQPHc9XMkrmXFHBB4sGUYvzd6A7LKkb0L2Lo7nU6j1WohGo2awUPGKdTqL0dFvyFcdJNIJJDP503BDueuMmouretgMLgRKZc/gfnNIvk81+OHjD1o0OOQzT0Z9GPfQAb/GDyU3xuba2QyGYzHY6TTaZO5YHNRZTVU9BvAgFMkEkEymcRkMkE8Hsd4PEYul0MulzNBLEbUz8/PcXl5aSL87JgjN5Cwq/TeFeSANh6PTYCTc3ROHaS7LlOM0ejXtykHzVKpZNYkvGvf1dtARb8hDHalUilTiEPrViqVsL29jf39fTx9+hT1eh3VatX0havX67i8vESr1UK73TY94jZxp/08hUXnvimunoHy934Ljex/+wmWQpfTAU4TotEocrmcWYOg8/n1UdFvCG9Mpu/sNJPc9qnb7aLdbqPRaKBarZp+8LVaDfV63bTPovhlI0g7H27jEtpDsn72oGSvEqSlp8jldtwy88Dsw+7uLr73ve/h/fffx/b2tm/VmeJPaMkc8XFMIO8RuxqNv+NPDgBcMit3geHy2U6nY9bRc0Udf89zuW0Upwaj0ejePvMy6AXJxqCyMEdG+Tmfl6k82TpcxkdisRiKxSKePn2K9957D5VKBclkUoN3/ji/GBX9W8BeWCMtuOwDJweGZrOJWq2GarU61zL68vLS7D7LiLbcZ97eSvo2kfNvWepqu+Js+y0tNa03A3hS7DJ6z5w+t9e2Rc+OwsuWNCsAVPSPB7Z65rJa7gvHPeFo7eV2035bRPvNs5fVCLhccLumXqbkGHGXUXlZfistPf/NAUKKO5VKzUXy+ToM5ilroaJ/TMj19atsQOl32K/p9+9FnXfkT/ux32EPFn7Pt70GuxBILfkboaK/b5aV3r5r3W9uG7s3nrIUFf1DYpFLrSi3hPOG0onSPbFM4C7Xe5m7vsrr3iauJpWr4jp31d8pb4Za+gfOKkJ/TKwiYhX6raHuvaIEDKfotQOBogQMFb2iBAwVvaIEDBW9ogQMFb2iBAwVvaIEDBW9ogQMFb2iBAwVvaIEDBW9ogQMFb2iBAwVvaIEDBW9ogQMFb2iBAwVvaIEDBW9ogQMFb2iBAwVvaIEDBW9ogQMFb2iBAwVvaIEDBW9ogQMFb2iBAwVvaIEDBW9ogQMFb2iBAwVvaIEDBW9ogQMFb2iBAwVvaIEDBW9ogQMFb2iBAwVvaIEDBW9ogQMFb2iBAwVvaIEDBW9ogQMFb2iBAwVvaIEDBW9ogQMFb2iBAwVvaIEDBW9ogQMFb2iBAwVvaIEDBW9ogQMFb2iBAwVvaIEDBW9ogQMFb2iBAwVvaIEDBW9ogSM6JK/h97KVSiK8tZQS68oAUNFrygBQ0WvKAFDRa8oAUNFrygBQ0WvKAHj3wBEFprjstUuugAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 45\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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stmsGYDkTj0coDgIyAHA1ZorEokgl8uZ9Qmsr1eWR0W/JtFoFMlkEjs7Ozg8PEQikTBzaXbLubq6QrPZRDQaNeKyN4Ykq4h/meNkBkCu9pNVgbIlVtBnlPveBy0oAjCznNj2OOh12L8z8JjL5WaCkBycKHquuOt2u0gkEjg8PMQ777wz857K8qjo14SluNlsFru7u2bZKINntF68KH3fn5nbLzvPvw84CKwKd8pZB9eyYg4IvLFlWDabhed5yOVyppMwPRK5p1+v10Mmk0Gz2UQ8HjeDh4xTqNVfjIp+TRjsSiaTyOVypmCHc1cZNZeLcnq93p1IufwJfLWxJJm3Ou2hYg809Dj4fTAGILsMMfjH4KH0Sthgw/M8jEYjZDIZlEol7O3tmW49ynKo6NeAAadYLIZUKoXxeGw2n+D8NZfLmSh6sVjEixcvUK/XTYSfHXPkZhN2ld7bghzQRqORCXByjs6pg3TXZcaA3X85aBaLRfi+b9YtKKuhol8TBrvS6bQpxKF1KxaL2Nvbw8HBAU5OTkwDzVqthqurK1xdXaFer5ue8Le3t+h2u2u54EGewrxjXxZXz0D5eNBCI/v3IMHKlCGnAnIAYCAvm83qfH4NVPRrwgszEonM7GPHIJfcG+729hatVgvX19emMWS1WsXl5SWurq5M+yyKX7aEtvPhNi6hPSTrZw9K9ipBWnqKnFkDOfeX2YdKpYJvf/vbeOedd7C7uxtYdaYEE1kwR9yMCeQbxK5G42P8yQGAS2bl6rmbmxvc3Nyg3W6bFlr8ycflSjv+jd11HjIMYjKAJ911GdTjfJ5xkHQ6bW58jPERZkhOTk7w9OlTlMtlpFIpDd4F4/xiVPSvAXthjbTgsoMO01K+76PRaJgpATeK4LSAu8/KLaflvnRyye59IuffstTVdsVl22+KlYE73qTYPc8zcRDGRBjZt0XPPgapVGom2Kc4UdFvCoPBwFj5RqNher5xf3lae7ndtGuPOiB4nr2oRsDlgts19TIlx4i7jMrb5bd2aa8cIGzLzki+HDCUlVHRbxJyfb19k8IO2mvOjgHMiwfI+67luPKnfT/o5tpfz3Xf9hrsQiC15C+Fiv5Ns6j09m3rfnPfyO9Nv6OlUNE/JOa51IpyTzgvKE3ZvSEWCdzlei/Kfy/zuveJ/f4v2zZr2ceUl0Mt/QNnGaFvEsuIWIV+b6h7ryghwyl67UCgKCFDRa8oIUNFryghQ0WvKCFDRa8oIUNFryghQ0WvKCFDRa8oIUNFryghQ0WvKCFDRa8oIUNFryghQ0WvKCFDRa8oIUNFryghQ0WvKCFDRa8oIUNFryghQ0WvKCFDRa8oIUNFryghQ0WvKCFDRa8oIUNFryghQ0WvKCFDRa8oIUNFryghQ0WvKCFDRa8oIUNFryghQ0WvKCFDRa8oIUNFryghQ0WvKCFDRa8oIUNFryghQ0WvKCFDRa8oIUNFryghQ0WvKCFDRa8oIUNFryghQ0WvKCFDRa8oIUNFryghQ0WvKCFDRa8oIUNFryghQ0WvKCFDRa8oIUNFryghQ0WvKCEjvuDvkddyFoqivDbU0itKyFDRK0rIUNErSshQ0StKyFDRK0rIUNErSsj4/6QdvrwRM+prAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 46\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 47\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 48\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAP0AAADnCAYAAADVeFABAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAneklEQVR4nO2duW+j2dXmHy7ivomkRJWWklwuuxtG+3PQcGSgP8ATeWB3MpETJ8bgCwxMMqn/gEnnX5iGkwlsTGDDsQ3YQbuNGbj94WvAbXRVSVXiToqLuHOCxnPr8OpylapE1Xt+wAtSXF9SfO4595xzz/VNp1MoiuId/Pd9AoqivF1U9IriMVT0iuIxVPSK4jFU9IriMYJL7tfQvqI8XHyuG9XSK4rHUNErisdQ0SuKx1DRK4rHUNErisdQ0SuKx1DRK4rHUNErisdQ0SuKx1DRK4rHUNErisdQ0SuKx1DRK4rHUNErisdQ0SuKx1DRK4rHUNErisdQ0SuKx1DRK4rHUNEryh3yf/7vBf7z//wj/uv/+gtqncF9n46TZY0xFUVZkXKrj//+v/8fRpMp/v3VFXLx/8D/+C//ct+ndQO19IpyR/SGY4wmrxtIt3qjezyb+ajoFeWOOMnG8G//+gQ+H3CQiuC//adv3fcpOfEt2bVW+94rypoMRhOEglthT51971X0ivLuoptdKIqiolcUz6GiVxSPoaJXFI+holcUj6GiVxSPoaJXFI+holcUj6GiVxSPoaJXFI+holcUj6GiVxSPoaJXFI+holcUj6GiVxSPoaJXFI+holcUj6GiVxSPoaJXFI+holcUj6GiVxSPoaJXFI+holcUj6GiVxSPoaJXFI+holcUj6GiVxSPofvTbzlyr8El+w4+GHw+5xZrK9+v3A4V/ZbiErtL9PK2hy4Wnj8/00P/PNuK7lp7T7i+d/2RK3eM8wellv4tsshiExX+fN4lr+Y+UUu/pUynU4zHY4zHY4xGI3N9PB5jMpmYYzqdmkv74OvYr7vob0JRuS7t6/Lw+/03rtuP5d+83+/3m0P+LR+vbIRa+odCv99Hu93G1dUVGo0GarUaGo0Gms0m2u02Op0Oer0e+v0+BoPBzIAgB4HJZGJec564l4leXpeipCADgQD8fj8CgQB2dnYQCAQQDoexs7NjjmAwiGAwiEAggEAggGAwiJ2dHYRCIYTDYUQiEUQiEcTjccRiMfN3OBxGKBQyr6PcDSr6t4C0vrTQUqij0QiDwQD9fh+dTgftdhv1eh2VSgXFYhHFYhGlUgnlchn1eh2tVgudTgfX19fo9/sYDocYjUbmdaXY7xppxXlQ1BSyFDOFy/t5hEIhRCIRxGIxJBIJJJNJpFIpJJNJJJNJJBIJxONxRKNRMwjwdXl7MBhUT2AD1L2/JdKVdt03mUwwGo2MoFutFq6urtBsNtFsNtFqtYyI5dFut81jeVDovV4Pg8HgLX/S9aCF39nZMQMDvQJel4NDNBpFNBpFLBYzBwUfjUYRDocRDoexu7uLs7MzPHnyBHt7e4hGoyr8+ah7f5dQ7LTW8jZa3OFwiF6vh06ng2aziWq1ilKphGKxiMvLS5TLZVQqFdTrdTSbTSPqwWCAwWBwY+7+kPL0w+HQfH5gdorAv+VUgQMBvQbpMfD6zs4O9vf38eGHH2I6nRqPIRj8+mc8nU51AFgBFf2GTKdTjEYjY3XpVo/HY2PVm80marUayuUyyuWycdGr1aqZp9OCdzqdjdxyO9AGvBbWvMcu+kyrPNYefHjeruChfdsqn1EOAhR1MBiE3+9Hs9lELBZDLpdDLpfD7u6uEb2yGvptbch0OsVwOES320Wn00G/3zeDQKvVQrVaxatXr3BxcYHz83NcXl4ai04XfTQamcj8plbcJbQ3OaffBHsAmRcYdE0BeNDTGY1GaLVaqNVqaLVaxstSVkdFvwHSte/1esZa9/t9XF1doVKp4NWrVzg/P8f5+TlevXqFarWKVqtlxE6hu1Jhfr9/buT9Ibn4RFbYSTHLgJ4M1jEe4PP5ZsQ+GAyQSCSQzWaRTCYRiUTmejXKfFT0GyLde6bWaIEuLy9xcXGBly9folQqoV6vo91uo9/vz4hZlp1us6VeFzlfnxe8C4fDJmCXSqWQSCSQSqVM0M7v988EQpmpiMViePr0Kb71rW8hn8+ra78B+o1tyGQywXA4RKvVMvP1Wq1mrDzTbPQCRqPRjMULBAImQEeL9qaQ+XR7oJmX4pPP4fMCgYC5364DkK44Rc3Iu4zOh0IhE5mPx+MmXcfr0WjURPwpeKYzr6+vEQqFcHx8jLOzsxvzeQ3irYaKfkMmkwmur69Rq9Vwfn6Oi4sLVKtVE7TjnJMWSkbigdVKcm3sH/WiwhpaVka/w+GwCYb5/X4zxWCOfzQazTzfzqmz8Mbn883UGhCm5+LxuMm5ZzIZZDIZY8mZX5eHy62ny85BiSnPwWAAn8+HVCqFbDar6boNUdFvAIN47XYb5XIZz58/x7Nnz1Cv11Gv19FoNIw7PxwOZ6rl+Px1sH/YsgrOTm3RPXaJKxwOG2tNT2U0Gs0U9/D1mTaTVXHyuXYhEAeYaDSKZDKJdDptDmnF7Uo7GbyTcQ1Z0MTvbzgc3kjVqejXR0W/AdPp1ATtisWisfR05dvtNgaDgRH8unl2Ow1n17PLarZMJoPd3V3s7u4im82a6+l02rjNHAikpbcrA6UXwgFF5s5p5QHMeC1yimIH52SO3S7FldOGZQSDQUynU4TDYUyn05mov7I+KvoVkZF26dqz0KZYLKLf7xs3dBPBL1qMIoWeTqexu7uLfD6PfD6P/f195PN57O3tmdx1Op1GIpFALBYzVtUlMtciHXuxzKLvxJ7b24tqVvleV0GK/C5f911m3vekot+AyWSCdruNSqVi6uHb7baZJ9NVXlfwi8SeTCaRz+dxcHCA4+NjHB4eolAoIJ/Pm3lzMpmcKV8NhUJLreFtVrLJc96ETT2fVV5Xei5eZd4iJRX9BozHY7RaLVQqFdRqtZl0nHSb1xW8dHsZ/Y7FYshms9jb28Pjx4/xjW98A2dnZzg6OsL+/j7S6bSJeNN9lyLZFovnEuxdz8ft7IjMNiivUdGvAMUr3ft2u41arYZms4ler4fhcDjz+FVwrVjb2dlBOBxGIpFAJpNBoVDA4eEhHj9+jNPTU5ycnODg4AC5XA6JRAKRSGThstN1god2u6pVP8MqvMkWWDLgN51OEQqF7vw93iVU9BswHo/R6XRMQc5gMLhRNbdMOHYBi53yyuVyePToEU5OTvDkyROcnp7i8PAQ+Xx+RuxMocnXtN9HXq7CQ4uIu6YZnFp5mXmejop+AxjIYx7e9QOja73IrZVNJSKRCBKJBHZ3d3FwcICjoyOcnJzg8ePHOD4+xsHBAbLZLBKJBEKhkJkKSFzn8FBZtemHK57Q7/fxu9/9Dp999hnG4zGSyaSpTfASv/zlL523q+g3QK6kGw6HcwNG9pxapuBkoC4ajSKVSiGXy+Hw8BCnp6d4/PgxTk5OTLAulUohFouZfLmd137IAncx7/O44hSTyWRG/F988QU++eQT/OY3vwEAxONxBAKBre9BcNeo6O+QyWRi1rxzLm8vbXX9OGWfOOnOZzIZ7O/v4/j42Aiegbrd3V0kEgmT8141t72N3FVDUPuxFxcX+Mc//mHiK59++in+/Oc/m/s7nc76J/sOo6LfAFkeKufTRK4Ok/fJqDIXnGQyGTx69MhE5pmOy+Vyxrqz55zdMPIhW/lVYh6rvEa5XMZnn32G3//+9/jrX/+KcrmMRqOBRqNxR2f67qGi3wCZgwdei5nXZcEK3U47Oh+Px838/fHjxzg7O8Pp6SkKhYKJzMv+cg/NwrumNfbAKB9nFwnJ0lu5PmA4HJoGJY1GAy9evMCnn36KP/3pT/jiiy9mziEcDsPn891Yxux1VPQbYqfbWKZq/7Bl7l02dqTgT05OTCquUCggk8kgHo8b6+6avxO5Qm9bftCuFtsuYcvGoPbBlXVsNdZqtdDtdtHv99FqtVAsFvHs2TM8f/4cFxcXKBaLqNfrN86FUy875ep1VPQrYv9gaLVZbw7gRrcX3sdDuvT5fB6Hh4c4Pj7G0dGRETzLZmWdvG3lpYdhL8297x+2a2Di4p5+v49ut4tut4t2u41ut4vr62tcX18bi85YSa/Xw/X1tWkFztWK7XYbpVLJNChhDz6+Nz0uOfWS56Ko6DdCRt1jsRiGw6ERtmzVLNtA08Kz6IY18wcHB8jn80in02b+zgHDtu4uK+qKJdwHrnOTy2LZ1rtUKpmmoNVqFY1GA51OB91u1/Ty7/f75joHC2ZJ5IDQ7/ed76ksRkW/AraY/H6/WfiSTCZN/pf92nnIzRu4xDUej5u15ru7u8hkMqZm3rbw8r2liyznyPJYx4Wd97h1Bg3Z7NKeh1O47XYbjUYD1WoVxWIRL1++xMuXL1EsFlEul2dae1PwnMOv8zk2XbbsRVT0GxAMBpFKpbC3t4f9/X1TYMMaeSlmLmuV697pIXBQYEcZuYR10Wo4wL2llB0w20QAq4hHngu729Ci0yVny+9yuTyzErFaraJerxuxs4SZLb+VN4+KfgOCwSAymQwODw9xdXVlrPnBwQEePXqEXC5nAnIsl5WNL+S683nNJIgtMLlyz16Z55oOzDt4/7z3WLZXnuztPxgMcH19jW63i1arhXq9biz75eUlLi8vUalUTHORXq83s4Z/nV4DNmrZ10dFvwEU/cnJCYbDIfL5PGKxmFnumslkTMpNtpkiMuo/T+zEtqh2Fx75WlL0UsDzNsG0F6rwcQyqyc46slOOvRUX24DL/fd4cHcedgJex6LP+z6U26GiXxH5AwwGg0in0zg6OoLf70e73UY8HkehUEA2mzUBOdnvDbjpOrsE6wrcuQQpG226Uoa2JbYbfHAQkCKWQpZBNTtXLnfvYVBNptYYlXc1FOHnXkW8KvA3g4p+AxjI29vbQzAYRK/XQzQaNfN42bddWl6Xi20/RmJbayk07qpDN196CxwkGOmmJZZ74VHItuD5HCn6wWBgBhw7l86gnR1xl4OK63Mp94eKfgPY5CKVSiEYDJqUnUy5zWtNZc+PbeRtFDwFx0U+TG9JV5nWnq/BAaLb7To3wZTi5OvbIpaCl7vi2tMBV689+7Mq24OKfkO4HNbv92M8HpvgnLTwrjmp3L1mXiqOf0sLz8h4p9OZiXzL1JZsUc3gGne+5fy63W4b0Uvr7RK/HBRsr0Oev4w7yPNXthMV/QbI5hd2ZH5eyaz9fDtyTlzzeFrsVqtlas5Zpca20PZ8fjAYmOdQ9NLFtwN0tNgcBOR9svWXfd636eOv3A8LRe/V6iYZIFskYDuAZlvqZekzV3qMj5W7u1C8jUYDtVrN7IvHba0nk8nM+3M+z5x5q9VCq9Uy3oGscLPddRncs8VuC1sF/zBZKPrb/hNdTSQohrv6gSx7rXUKVeYtaFn2nHkDg+uz2nluGRGXAwAtMavauO11rVZDvV6fEb392WS5qh3Ek269PA85D7cbe86z6qt+r8p2sVD0ujng18hIu/ybuMpi5e2u16M1dqXS7P3baOW5e06z2ZzZHtsenOQCFy5oYUReDjJ8rj0QubwR+3M/BLHb6dL7Xoy0LaiqV8CVcponCrZumhe5lxacFpi5bTkAyMAdi15Y5MLovWzVZU8l5KBCl95Ou9kR9nnuvP0dPATBA5jJZiivWSj6v/3tb2/rPO4dKZrRaASfz2e62tgtlRkhp0WlkGhN7OWwMign69MpYs63aZEpflppLkWV98vpgF3cM51OjTXnIGKn11ZJH7rYZgFx6yyZiVBu4lv0T/zxj3+8vf/hN0AwGMR4PEaz2UQwGMRHH32En/70p3jvvffMY6QVpSCl5Z1Opzci+bTwsj692Wyi2WyaNBqDbCyQsV1/mUazy3AB3KgNkAth7Hy8q5beNQgsmsu7/l7GomXCqz6Xgyo/IwfYSCRidvppt9v46quv1nr9d5HpdOqczyy09L/97W/fzNk8EEqlEgqFgmnU0O12jTWVTSFkoIyRdJfoGVhjRJ1pN7mslAMK02aubbKI3blHLsl1Fc/MExoFJWsIJLzdjmm4pjCLWEfocjGR9GRozdmQJJlMmq2x2Ui02Wzi888/x7NnzzCZTBCJRMz/QdE5/UK+/PJL/OpXv8If/vAH4zazIQa75ci2ThStnTcHZmvhZeBOCptCtSPqtmClGORmGfJ2AHO31pJW08678zbb6i/KgsyLK7iuz0OekxzAuCCJ9RBcmry3t4fT01N885vfxPHxsVnZGI1G0ev1UC6X0Ww2MZ1OzXezzVOTt8lC997n83nyW1r0A+emFNw/DsBMtN1VeuqKGtur7uT7zcuLE7nJpb2dtB1LsPPvdomsxPX+Lg9jle9PnqO95t/eb08OkHIra1Y4cnMPdibKZDJ4/Pgxvvvd7+J73/senjx5gmw2q1tX32R9996rKTv+eFybIzD1BQChUGjGfb+t+zoP6U77fF93d6Wra7+eK2UotzeixbO3PHINPLJuQN7nep49xWC/ALrivE6LLYua+Pnt3oKy5yDfJxwOI5/P4+zsDO+//z6ePHmCfD6/8veuLBG917YBWpfb7JhCAcklp6tYKikUZhnG4zH8fv+MKKWoOUgEAoEb81p7sHCJX17yOTxfLh+Wc21ur80OQbyUUyO5LZfdYISeixwQGetghyLuDxCLxdb74hWd0y9DzpHvetWYFJS04MvOh+fCAJsUvLSY0tK7UnNSVLJVl6u0mNdta8zOP7INGFuB8WB/QArebgtmW3w5JeD0hLUN0+kUqVQKhUIBqVTKTLHokdhTGy+j+9NviHRv3yT2ALDofOxKM9ecX64LkK9vP4YWmq43rbCMEUg3m49hq69oNIpIJGIEbjcFpYWXPQCXrWngucqSYGY+xuOx8SK464/8PMpyVPRbyKK5M+fatN4ud51zaikEKQgpeClgut+yd588eLsUPA9p4enSsx24dOdll1/7886LJ4xGI3Ne7F3Aff2U9VHRPxDs3Lgrui/db7kZB++TaT727uf8W7bp5t/2IMC/7YOP53P4eHoQrh5+y9J7nLqw2AmAGezknF/r6ddHRf/AsQNs81J5cu7M2yha2ZOfVtolfjkI2JfSM3CJXZ7vvJz5vHoCWYvAvxdND5TFqOgfIEtqK2bm9HIObe+r53LtabnniZ5BO+nmS6HLefsyC+86d3sQk5af2Qe18LdDJ0XKneL1iPlDQC39A2RZIY+MetNaMq1H934wGBivQHoE0jrbVXn25hSuqYWd6rPvW5SdsOf29vvLmgYdXDZHRf/AsefLFAkLd+TjZKELA2Xzet9fX1/PbMbpumTuXU4D+Bw7kGe7965Anu3ey88jz0/WHSjro6J/INjW0TVPlnX2gUDALOYhMl3G+2XP+nA4jG63OzdlZ8cAKHqZk+fBmAA3/ZDitz0BOwtht+5iHwJ2/uG5rLsmQPkaFf0WsizYJcVr56opluFwuLA4Rwb2pKjtgJyM9ssiHpnuk/n5eDyOZDI5U43nKs5ZlmO3vRYuY2Zxzs7ODqLR6CZfr+dR0S/hTZbhSlaJbvN8XOWxEpajulbNrVuGa7+HLMOV3gBd/GVluHLRzbwyXJ4DYRnu9fU1ACCVSiEUCiEWi5ncvZbh3kTLcDfkTZbh2kJfd8GNLRTgtYsvkevqZSBsUfCNj5GX9nnLICC9AJn+k5V6ct4vK/TsoiFZ8isfQ+H7/X6zqo6ehl19qCxGl9Y6YKBo0So6n8+HnZ0d+Hy3W1rrsqrAzUi2fb90k13baMldaFxtreedkz2vlg08FpUHu6oB5SBgr413DVz2Kjt5kEgkglwuh06nA7/fj0QioSvt1kSX1jpYtMmHrFxjw0zZDWeVtlSLbnO54vNSY7ZldFW/yej3fTTRsK/bMQn7M7liCK4mGo1GwwQsAWgTjTXwpilfAn/gkUgE3//+93F8fGxSXDIiDcDMNdnCWg6U8kfIqDoHCO4Zxx1qZC87u2PtsnZZcj4u3VzbSkvLbd8ur8tBYdEARFzTH1c9/TKk98OBQq7643r9UqlkNv24uLjA0dGRaZcVi8XQ6/VQKpVm2mV5kZ///OfO27Vd1gI++OAD/OIXv8APfvADADcbY9o7yPR6vZmGFbLIRT5+3lZT9saR7Fwrd6ORArNLbqXgKXC5n7wcXFxinid2ezXfvN/MXQbOpFcgPQUp/mg0ajIF6XR6pjHm3//+d3z11Vcm2s9B20u8fPly/XZZH3/88Zs5my2FUeBGo4FAIICPPvoIP/zhD/Htb3/bPIYCYF/6brc7s+c7q98oRD5HbjXtaoHN15Htr9l0U3oHchdZYH5swI5kM07hYlXBz5sOrINdgDMP+735WQaDAfx+P9rttrmPg4Bsgf3s2bO1z80rLLT0n3/+uWcsvXTF5WYXhULhxmYXwOuto2id7SIYOb+WuXNuSCnbYHPXGrmZBXvxcZcbuRkGPYp1NrtgpZ3svGuLfFk/fH6WbYXTHH5GrzOd0/d+oegBbO9/+C1iWxtXgAzADVeUz7ELTVxTAwpabnLB1trcDafZbN7Y1oqvbQfwXNtaSU9h1W2tXEG/bRa+hHnqh3K+d81wOFzfvVe+Zl7hjIxMAzctvJ1+s/PSLHCJxWLODSzlNtXNZhP1eh31eh1XV1czG1jSlecAQ6+i3+/PjWgz983z4znamQs5jXBd32bk5yOLip/swXMdXM+9zeu9STRltwBb1PJ2Vx7dzoHL2/k3n0/BM6e9aKvqTqdjAlasblu0VfV0OjUWnuWv8jPIQUp6Kxw4eBsfIwcT+bnkZ9pGlmUVXNzm87ieu43fz0LRb+Mo9TaQ4lzlsfMeb7v4vM7BRJa9SkHJqYDda45562g0im6369y5djKZzMQO7DbVg8HAvKfcwVZuiuH3+29sZW0L3VXuq2w/C0Vvb4igzCKtpO0RzBsAeN0uUpHfNUVmL3yRj+WKOM7r5etxPt/tdhGPx2eWyIbDYRM74IAh97yT22zRE3CJn1kKKfyH4vZ7HZ3Tb4AM4lEkbEG1rJbdngK4SnD5WDvvzoPvFY/HzRTMXhg0HA6NpefCF2YKmAGwawE4WNjRfrtOQAb/2JyD988rI1a2BxX9hsitp4fDIUKhkPlxy91biHSJXVMC1yAhg3NyoKHoWc1nF7HQOjMekE6ncXV1ZWoCuEuuDBxyAGDmgKk+bsrJwUFafjkdcO2uq+vdtxMV/QawOKfVaqFWq6HX6yEajWJ3dxeJRMLUitu5evsAbopdXufAEQwGZ0TEICDn4q42V3JXGJkaZLkwrTnTd3ITTlknwMFBuv18bU4RWETE53Ew4XdlowPB/aKi34DJZIJut4tyuYyXL18aF7rf7yObzZrFOFyFZwufuMpMbWtP95kLToCvPYlIJDITcbfLfuX0Q4pZFhNJy0xLT/deitgu7JE1AGxuwUpDXqc3YccOtMfd/aOiXxEZvR6NRmg2m7i4uMA///lPNBoNxONxtFotFAoFpNNpJBKJmbXerhVlspe7HeGXt/Gx9nU+xlUUJAtueFCw9txcRu+lq28X89iuPIXPqkHWE1xdXaHRaJhDxhJcKcZ5uLInOljcHhX9BoxGI9Trdbx48QJffvklqtUqIpEIGo0GarUastksMpkMksnkTNMIRuHtfnPSI5g3r2fKjZfy/kW95+Yd8jG8tHvTubrf2ilFip/xg1arhXq9jmq1isvLS1xeXqJYLKJSqaDRaKDVas1Y/0XdiFTgbwYV/QaMRiM0Gg1cXFzgxYsXqFarCAaDaDabqFaryGazxtqzawzFzQ4yjKizAYQrpSf/BjDXY7AFf5vCmVWi7jIoaU8jrq+v0W63zXdRLpdRLBbNUalUUK/X0Ww2TTmxXGK8Lg+hSGjbUNFvwGg0QqvVQqVSQblcRr1eBwB0Oh00Gg2za2sikZjZIooNOFKpFDKZjPEIbEsn02+u6P484cv7FrGsFHVVbC9hPB4jlUohm83ODABXV1fG8r969QoXFxdmAGg2m2i32zOBQ04vlDeDin4FbCEwkMcFMJ1OB5PJBL1eD61WyxTC0MJHo1GTV08kEshkMsjn8ygUCiZQJt9DbjpJXEKXf9uP35R1XsPONMhph5wC9Ho9tNtt1Ot1Y/lLpRKq1aoRvVxBKNOFvE5PgIMJA4X2/0Yt/3JU9CsiA3nyx8cU2HA4RDAYRK/Xm+n1xvk8q+FisRjS6TTy+Tyurq6M6OXcljl/mYoD5u8is6gS8G3hel/5HUQiESSTSezt7eH09NSkD2WUn3N9mRXgEmQ+rtVqoVQq4fz8HOfn56ZDLs+B5cUq+vmo6DdEVrHxUlakAa9FygAcf/yc00oLx9fIZDKIx+MmAEhc83lel5f3jUtsfr/f9L5PJpMzaUI7KyAzAxxUmQqk6IvFIp4/f47nz5/j/PwcxWIRtVrN1B7I9+U5yUHb66joN0RGsTkAuFakAZix2Jzndrtdc8hg1mAwQC6XQyKRwGQymVklZ/9wt03wwE332pWR4PQlHA7PxAXmZQdkcdBwODSxk6urK7x48QJ/+ctf8Mc//hFffPHFzPswK8KU5DZ9T/eJin4DXJ1xmOfm3/JSroIbDAbY2dkx1XKuxhkUfiqVWiiebWZZjt01F7cHtHA4vPR9SqUSDg4OEAwGkclkUCqV0Gg0UK/X0e/3b/EJ3l1U9BtAl52FN8D8HVft5wGYKXBhAYwscqEHcHBwMNPRVgpDzvMfohW7qzjE/v4+PvzwQ6TTafzoRz9Cv9/Hp59+ik8++QSXl5d3carvHCr6DeD8nLl3YFb0smutXXbL2+gZ8LFS9BR+r9fDwcEB8vk8UqkUgK9d4ofa3/0uBibXQHp4eIjj42Nz2/vvv48vv/wSv/71rwEAiUQCgUDA801hiIp+AxiNj8ViM9bexv6B2kUtgUAA/X7fxATkRo2yJ9719TUePXoEYDagx7p8Vwmvff2hsawwiLAiUfLee+/hZz/7GT744AOMx2MkEglPtsCeh4p+A/x+P2KxmGlh5WqpZc/r7ftkgIm3NRoNY/HZKVdG+fv9PnK5HJLJJCKRyEyDjW0M6t2GeZ9jlc8XCoXw8ccf4yc/+cnKz/ESKvoNCAQCiMViyGQyZiltt9s191OEi3LFdpBPLo7hrjmdTscsXqlWq6hUKjg5OcGjR4+QzWaN+Be5+4sGH5tl57zoeW/isasip0usc3hogc+3iYp+Bewfj9/vRzKZRC6XQzqdNqvp6Lav+mOzU1RcPcdUVa/Xw9XVFSqViilhLZVKODs7w/HxMfb29pBOp03Fn73LzSau/psSypsUoFyUpEU5y1HRb0AgEEAikUA+n0c2m0UikUC73Z7pJ89NF4DVO7DKXvQyuMf69VqtZqrRDg8PUSgUkM/nkclkzAIfdsxlCfA2B/1us8R20WPld+hldH/6O4RbJOdyOSN8uSedTNdtInz7h8vSVJagfvXVV9jd3TXvv7e3h/39feTzeeRyOezu7iKdTiOZTCIajZoNN2WDTfm+djGRtJzLztnV/mveMuFNsacoy+IXPPdtHvDuExX9itiLS6LRKLLZLAqFAg4ODtDv93F1dWXKRgGYlWLrCp/PYbCP7aivr6/RbDZRqVTM8tx0Oo3d3V1zcFkv1/OzGy6nIHJ/Pbu3nRSVvUc8RSQHCbkjDp/DVCZ392U5Mdt3y221XQHQed+LHGDshiHL/l/KLCr6DWC1WCqVQqFQwNHREUajEWKxGOr1Onw+H9rtNnw+3w3hA6uLf14Qjqk9rlx7+fKlachBgXMpbywWM+4+xQe8XjsgO+TwfSh42eSDUwV6IbJeHoApVorH40gmk0in0+ZIJBJmmTEHAr42BwIpZHvJrizJnU6nZsNKDkbKeqjoN8Dn+7r7TTKZxP7+Pk5PTxEIBFCtVpFIJIx1k6vDfD7fTKBvnai67dYyys9FKa7zk8KlyGRNgWx+4doJl5aZz+Xr8dxlL3y+H7foSiaTpmdAOp1GKpVCMpk0AxAvORgx/mA3FHW15vL5fEilUmZ9AuvrldVR0W+I3+9HJBLB7u4ujo6OEAqFzFya3XLYIsrv9xtxyTmwnEevI/5VHiczABSlayfdRQEv2aKL82TXgiIAM8uJbY+DXof9NwOPqVRqJgjJwcne3uv6+hqhUAhHR0d4+vTpzHsqq6Oi3xCW4nKNOJeNMnhG68UfZavVmpnbrzrPvws4CKwL+wZsghxo+F1xQODBlmHJZBKJRAKpVMp0Epa79cjFSfF4HI1GA8Fg0AweMk6hVn85KvoN4aKbSCSCVCqFQCBwo0WWPe+cTqfo9Xo3IuXyEni9sSRZtDptW7EHGnocsrknYwXsMsTgH4OH0ithD75EIoHRaIR4PI5cLof9/X2EQqH7+pgPEhX9BjDgFAgEEI1GMR6PEQ6HMRqNzPw1lUqZKHo2m8WrV69Qq9VMhJ8dc+RmE3aV3ruCHNBGo5EJcHKOzqmDdNdlxoBtuDhoZrNZtFots25BWQ8V/YYw2EX3Ukazs9ks9vf3cXh4iLOzM5TLZZTLZZRKJVQqFVQqFdRqNTQaDTSbTbM5xCYu+DxPYdFjb4vtbdgrCuctNLL/nidYegRyOiAHAFZDJpNJnc9vgIp+Q/jDpBtvp5nk3nCdTse0hC6VSigWi3j16pUZANg+i+KXjSDtfLiNS2jbZP3sQcleJUhLT5HL7bh5yOxDoVDAd77zHTx9+hR7e3tzq86U+fiWzBEfxgTyHrGr0XgbLzkAcMmsXD0nN5VkCy1e8na50o73sbvONsMgJiPxvLSDepzPMw7CNuEyrceBlRmSs7MzPHnyBPl8HtFoVIN383F+MSr6t4C9sEZacNlBh2kp7hLDKcHl5aWZGtRqNbRarZle8YwN2J7BXSPn37LU1XbFpZgpVgbu5O4+FHQikTBxEMZEGNm3Rc8+BtFodCbYpzhR0T8UBoOBsfL1et30fOOecLT2crtp1x51i6L+y2oEXC64XVMvU3KyZFd2FZLlt/JSuvAUtl20Yw8Yytqo6B8Scn29fbj2gJ93yNdzvYd93bUcV17a1+cdrv31XNdtr8EuBFJLfitU9PfNstLbd637zV0jvzf9jlZCRb9NLHKpFeWOcP6gNGV3TywTuMv1Xpb/XuV17xL7/W/bNmvV25TboZZ+y1lF6A+JVUSsQr8z1L1XFI/hFL12IFAUj6GiVxSPoaJXFI+holcUj6GiVxSPoaJXFI+holcUj6GiVxSPoaJXFI+holcUj6GiVxSPoaJXFI+holcUj6GiVxSPoaJXFI+holcUj6GiVxSPoaJXFI+holcUj6GiVxSPoaJXFI+holcUj6GiVxSPoaJXFI+holcUj6GiVxSPoaJXFI+holcUj6GiVxSPoaJXFI+holcUj6GiVxSPoaJXFI+holcUj6GiVxSPoaJXFI+holcUj6GiVxSPoaJXFI+holcUj6GiVxSPoaJXFI+holcUj6GiVxSPoaJXFI+holcUj6GiVxSPoaJXFI+holcUj6GiVxSPoaJXFI+holcUjxFccr/vrZyFoihvDbX0iuIxVPSK4jFU9IriMVT0iuIxVPSK4jFU9IriMf4/q0Kz0C5+14wAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "current beta: 64\n", "Current iteration: 49\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 50\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 51\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 52\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 53\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 54\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 55\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 56\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAP0AAADnCAYAAADVeFABAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAlxElEQVR4nO2dyW9c1xXmv5peja9GVpEiy2SRpkgpFiVRsmPYCtABGvAiMWAEjcSLrALD6F1vepNF/oDe9jqLAA1kkWTVCLJMNgkQJLETi9FIi5PIImtizSNr6oX63Nx6qpnF8Z0f8EDV8KbS++6595xzzzW0220wDKMfjBd9AQzDnC8seobRGSx6htEZLHqG0RkseobRGeYBn7Nrn2GuLoZub7KlZxidwaJnGJ3BomcYncGiZxidwaJnGJ3BomcYncGiZxidwaJnGJ3BomcYncGiZxidwaJnGJ3BomcYncGiZxidwaJnGJ3BomcYncGiZxidwaJnGJ3BomcYncGiZxidwaJnmAnyf7+J4gf/+8/48v98hXTp5KIvpyuDCmMyDDMkyUIN//O3j9FotfHsKI+A8wX+13+7e9GX9RZs6RlmQlTrTTRa/ykgXag2LvBqesOiZ5gJ8Y7fgf/+X5ZgMAAzbhv+x3+9edGX1BXDgFVrue49w4zISaMFxXwp7GnXuvcseoa5vvBiFwzDsOgZRnew6BlGZ7DoGUZnsOgZRmew6BlGZ7DoGUZnsOgZRmew6BlGZ7DoGUZnsOgZRmew6BlGZ7DoGUZnsOgZRmew6BlGZ7DoGUZnsOgZRmew6BlGZ7DoGUZnsOgZRmew6BlGZ7DoGUZnsOgZRmew6BlGZ7DoGUZnsOgZRmew6BlGZ/D69JccWmuw25qDA9YhvDAMhq5LqA313VH2ZcaDRX+JkQXfT/yXjW7XOIyYDQYD2u02C/+M4VVrLwDtby6/pgeeH/zuvxP/PiPR9UdiS3/OkNXuZ7kNBgOMRqOuH+x+v5Pef5vTwpb+klOv1zu2ZrOJVquFVqsFoHd3/6yGAf3EJlth7b+7bUajESaTSfw1m80wmUws6MnBlv480VopeshHoVAo4PDwENFoFNFoFIlEAplMBqVSCbVaDY1GA81ms0Pg5zXm7+aAIwEbjUZYLBaYzWYoigKLxSJe07+tViscDgecTic8Hg+8Xq/YVFWF1WodeA08/h8PtvTnTLvdRqvV6rDYrVar4/1KpYJMJoNYLIbt7W28fPkS29vb2NvbQyKRQDabRblcvrROPbPZDLPZDJvNBqvVCqvVKsRPrx0OB1RVhdfrRSAQQCgUwvT0NILBIAKBAFRVhdPphM1mg8VigclkEhsdixlI1xaRRX+OtNttpFIpHB0dIRqNIhaLIZPJoFgsolqtotlsotFooF6vo1KpIJ/PI5VKIZVKIZlMIpPJoFqtXvRtjA2Jlyy+1WqF3W6Hqqodm9PphN1uF42FoihiHB8KhfDgwQOsr6+L3gBb/J5w9/48oe59q9VCo9FAsVhEKpXC7u4uXrx4gWfPnuHVq1eIRqNIp9MolUpoNBpoNBqX1oKfFvJL9IPG+zRUoAaCWFxcxOeff47p6WksLi6KfZjhYdGfEhK2TLPZRD6fRyKRQDQaxeHhIeLxOFKpFOLxOA4ODhCNRhGPx5HNZkc+p+wIk9+7TMgNl+x0HNSgyY0lANRqtY7Pnz59iq+//horKyuwWq2YmZkRvwNb/OFg0Z+SZrMpNrLqhUIBe3t7ePr0Kb755hs8ffoU+/v7yOVyovtOVn0ctMLQE0ajEalUCjs7O1hcXEQwGOwQPXD5GsDLBov+FJDw6vU6Tk5OUCqVRBf++fPn2NjYwNOnT7Gzs4NSqdTzONSdpX9rreQwFpL27fbAD8oJkP9qv3ceQw2bzSY8+Q6HA4qiiN+D/ByVSgXFYhFutxtzc3MIhUJwuVwd193r/plOWPSnpF6vo1AoiO785uYmNjY28OTJE+zs7CCVSqFcLvc9RrvdHtvqdzsW8HbjMUy3epj3JonNZoOqqvD5fAiFQggGg/D5fFBVFRaLBc1mE/V6HaVSCblcDvl8Hl6vFx9++CE++OADzM/Pw2z+zyPMgh8OFv0paLVayOVyeP36NV6/ft3hpNvb20M6ncbJyQkAiPg1WW5g8qIax0JP+hooVOdwOOBwOOByuYQn3mKxiHCboiiw2+1wuVwibOf3++HxeOBwOGA2m9Fut1Gr1VCtVlEsFlEoFOByubC2toZIJAJFUcQ9sOCHh0U/IvID1mw2EY/H8fjxYzx+/Bjb29t4/fo1kskkCoWCEDyAjiy600LnH0ewNP4d5VpIqGRV2+12hx/DYDDAbDbDarXC7XYjGAxidnYWs7OzCIfDCAaD8Hq9cLlcInYvJ+1QWI5eU1aenLtAvhCTyQS3292RvMOCHw0W/YjIoq/Vatjf38dXX32Ff/7znzg8PEQul0OtVjtTJ5tW7DabDXa7vSO+TdlwlMyiKIpImgEgnI71el0Ii46rzaojkdI4m0QvD0nIwrtcLoRCIdy4cQNzc3OYnZ0Vonc4HOIYzMXBoh8R2aqUSiXs7u5iY2MDm5ubODk5QaPRmLjgteNzGa/Xi7m5OUQiEUQiEWFZPR4PbDabEDvFvbUOOzkjUD4fhQRpk3Pi5ckwsg+BGhjKuKPNZrOx2C8RLPoRoQe/1WohlUphf38fr1+/RrFYBPAm62xYb/uwyBbY5XKJzDWv14uZmRksLCxgeXkZN2/exMLCAmZmZuD1eid2/kkxjC+jV1ddG44b1KW/rglOo9DrN2LRD4ncrW+328hkMiLBhgRPn02CbtY9FArh9u3buH//vohR+3w+eL1e8dfj8Qw1WeUy0C2uPimn3CR9KFeVXvMTWPRDoBVfo9FAPB7H9vY2EolEx9hW21U+zTkNBgOsVitcLhempqawurqKjz76CI8ePcLq6ioCgUDPmXsXUWmnm1i1cfRe3xvn2Fq0Qw0eUnSHRT8k3bz2Ozs7SCQSaDabHd+bFC6XC4uLi7h9+zZu3bqFW7duYXV1FYuLiwO775MssTWsSLv5Bc4jS06e49But2Gz2c7sXNcBFv2QyA90s9kU4/lMJtNh6U8rMKPRCEVRoKoqFhYW8MEHH+Cjjz7CvXv3sLCwAFVVh6olN+rc/atMN8s+qR7XVaZXT4dFPwaUlBOPx5HL5SY6jne73QiHw1hZWcG9e/dw9+5d3L59G/Pz87Db7eK7FDaT972O9eO0vRVtsVCKLGj3+f3vf49//OMfaDabUFUVRqNxYlmPV4Vf/OIXXd9n0Q+BVtStVgvlchnZbBaVSmUi57BYLPB4PJifn8f9+/fx6NEj3L9/H3Nzc28lowCd+frXmUFzA+i1/PnW1hZ+/etf43e/+x0AwOl0wmQydSRL6QEW/SnRprjWajVUKpWJPEh2ux03btzAysoK7t69i/X1ddy5cweRSAQul0t8j7qsV7kwpNZSy3SrsdcN7WdHR0f4+uuvkc1moSgKNjY28Ne//lV83m+ykx5h0Y8BTZA5OTkZKywkh/5sNhvm5+dx7949fPe738WDBw/w7rvvwu/3w2q1dlix6zBOH+SPGKcx+9e//oVf/vKX+Pvf/y5Cdel0+rSXem1h0Y8J5Z1r6Zc9R7TbbSiKAq/Xi3A4jLt37+Lhw4d4+PAhlpeXRShOzm2/atNGtWPwbj6HYRJsqtUqSqUSqtUqTk5OUK1WkcvlUCgUAADZbBZ/+tOf8Oc//xmZTKZjf6vVCoPBIFKMr9Lvd5aw6MdE28Xu9u9u4qecdr/fj9XVVayvr+P999/He++9h3A4LLzz9F3tsa8S2iHRKPdRqVSQy+WQTCZxeHiIZDIpSo5tb29jd3dX1AxMp9NvCR6AKM1FQ4mr+jtOGhb9mFCeuXa6rAzlvNPEFZpySg67tbU1PHz4ELdv38bc3BycTicAXBrrPk5UYtC4vFaroVAooFAoiIKgVDuPqgmdnJygXC4jl8uJEmPJZBKlUgnHx8fY29vDwcHBW8e2WCwwGAxi/oO2J6b3EB7Boh8S+QE2Go0ds9pqtZoIn8kTT+x2u6gI43a74fV6EQqFMDc3h6WlJbz77rtYWFhAMBiE3W6/cAs/iUIa/a65Uqng9evX2NzcxObmJnZ3d5FKpVAsFlGr1TqET+Kn+fRU5//k5KQj7VmG/g9Y3P1h0Q+BdpxuNBrh9/sxNzcnCl4ajUaxcIPb7YbH44HH44GqquI1VYgJh8MIh8OYmpqCqqpQFAUGg6HDwl/UfQ7z3iBarRZOTk5QqVRQLpdRLpeRz+dF6vKzZ8/w4sULbG9vIx6Pj13WW66Np9eagePAoh8S+eG3WCyYnZ3F6uoqYrEYyuUyzGazmO22sLCA2dlZUfrJbreLjay+qqpiIYdevoFJcl5FI5vNplioY3d3F9vb29jf3xeNYzqdxvHxMY6Pj5HL5VioFwCLfgi0QjGbzZibm8Pdu3dxfHwMs9kMu92O9957D2tra1heXsbs7KyY026xWITjT7v1Okc/tDnu49yD9ljaOfLyPPtuG31Odexkz3oikcDe3h5evnyJZ8+eYWtrC4lEoq9F73cfvbrr3GCMB4t+SOSH0mQyYXp6Gnfu3EGj0cD8/DzcbjdWVlawtLQkuu02m62v2Eb1KHebQDPIgmsz2WTByhuNo2u1Gmq1GsrlMqrVqgiVyc62er0uxtrlchnFYlFshUIBuVwO6XQa8XgciURiYMx8lCENj9dPDy9rNSa0oEU0GkU2m4WqqgiHw/B4PCM54kZ92LXWl47R7TiyoEmoJycnYiOhk6UmsZN4ycNeqVSE+OkY5XIZpVIJ+XxexM3JGz9u0hIzWdrtNq9lN2mazabwPNtsNrjd7re+M06VmF7HoO60XJSSegvy8IGsOa2JR5Y3nU4jm80in8+jUqm81QhUq9UO51u5XEalUukaUqNeATUIwy5XRffDFvvsYdGfATTTjYR3Vmurk0ho/Exd8JOTExGmolp2FAWgevHkVKOltGKxGLLZbIdVJhGTJSfrT8Uvu43n5etiLics+nNgHAdbv2PIr6mbXqlUxOIahUIB1WoVrVZLiB6A+F42m0U8Hhfr2x8dHSGdTiOfzwvB0xr3p1lmS3vPcoiTG4WLo5fo2ZE3QU5r5ft5qZvNJqrVKvL5PJLJJBKJBI6Pj1EsFtFoNDrOXa/XRcpqPB5HLBZDKpVCLpcTq+PW63VhtScV42ahXw36il4u0qAn6KGVreeg72rp1gD0suKDQnc0lTeXy+Hw8BCvX79GNBoV+egkYLKwtK7e8fFxxzieuu5y2rAsdqPRONRkIeZq01f0k6itpu3yyg/nJBh0rH6TX3p9d9Tza48/iuCB3vFmsvCVSgWZTAaHh4fY2trC1tYWDg4OkMlkUC6XhejpuOSUI088hd/I+XeWS2sxl5++opcXB9Qzcl69lmGniWo/176mcTU56+r1uphWSjHv169fY2dnB3t7e0ilUigUCmI1HdnRJnvZKcYud+Ovk+D7VdS5DvUHzgJW9RCQJZZzvSeVOttqtUSiixwyKxQKyGazSKVSiMViiEajODw8RDweRyaTEd168q4TJGzZQSdnz10njzuFAbvNdJTLiV2X+50Ufb33//73v3Xza2kdYQaDAYFAAOFweGhRyw+eNi5NwpNTVinBpVgsvvU3n88jk8kgkUggmUwimUwKsdPYXCtgGurIFp/Ofd0E34tJDh2vOmOF7D799FNd/Xpms1mUWjKbzfjkk0/w5ZdfIhgM9t2v3W6jVCqhUqkIT3q3uDnNNstkMkilUkLIFDcvlUoiIaZSqaBUKnW8R7H5Qc5DuftODdFlmHZ6VtENwmw2Y2pqCo1GA6lU6lTnug6MFbL7wx/+cDZXc0UoFAq4efMmvv/976PVaqFQKHR0JxuNhhh3Uxoq9RLkRR+bzabwqFOXnSx4Op1GoVBAuVwWoqYxvZx1N0jo2lTcXsk0F8kkz28wGOByueB0OmGz2WCz2TAzM4OZmRk0Gg28evUKR0dHaLVaomwWpwa/oa+lNxgMurL0WpxOJz7++GMsLCwIa63NvKP4ORV6kJ1+sg+AHHRyt5686jQ2p/TaUSINcuGNXqmugxqO06C13ufVsPh8Pnz44Yf4+OOPMT8/L4qWuFwutFotMRRqt9sd693riZ/97Gejd+/1Kvphw3yjhAPPEtmh1c2bfdEe+27XN0wkRB4mya9dLhdu3ryJzz77DD/60Y8wPz9/Tndy5Ri9e6/XkJ3JZBLx7n5ctNgHIVs3OUcCOPtrNxjeLL5ps9lEARGHwwFFUaAoCkwmU9caA7Q8lTYxiib4WK1WzM7OYn19HY8ePWLBj0FfVettGSDiqt23VsBaK0qNmDymHcepJltceaMCoLQOn9VqFSKnsmFURozG4GazGWazWQiffCDyJjdQlGikKApWVlawtraG2dnZkWsSMBynH4jZbO6ZADKuY+isu9rasT391b7XrTvdLYlIFiRZb6fTKTa32w2HwwGXywWHwyE2+pw+s9vtopKQLHht91+OfFBjRRONjEYj5ubmxDgeQE8/yGXviZ01vD79mFw1q68V0SDPvSwy2uTuNVlkKt9NVX39fj+CwSCCwSCmpqbg9/tFIVCqEmy1WmGxWDq67PL1DUL2SVChzWazCYfD0bG/Htb0myTsyLsmUDebhNrNqadN5KHvkDAtFgssFgsURYHNZhPddJfLBVVV4ff7xRYIBBAIBOD3++Hz+eB2u4U1PytfEEU55HvlVNu+8NRaPaDNESC65aWbzea3hE5dc1VVoaoqPB5Ph1UPBAKiyq/WotPY/izvje7rKi/iedGw6K8J2m59L+HL3yNPOll0p9MphO71euHz+RAIBDA1NYVQKISpqSn4fD5h0amHIFvbXsOJUQXaLf7fyxfBjAaL/ppBFpDG0d2gz8jSy952WpzD5/N1dOc9Hg9cLtdbJb1lJjEJqd9+NN+fxX46eEDEdOWiPN/aGYPM5GFLf83QTrDp1r2XP+/luZf3pfdp/E8e/X6FQU7bvdceR548xOP508GivyZoJ9hoc827OfJoPoG29j1NIKIZgVQ+O51OY2pqCl6vF6qqiu6+1WqFoihn6sijCTPy2J67+uPBIbtrQr+QXbdkoF4hO7PZDKvV2pFCK6+6S2E6+a8csnM4HGcWsqOS39p0XaYnHLK77pAVpCm5vZJzZAtpMBhQr9c7suDkGLicnGO327sm51ADQD2AUZJz+llqufdCq+q0Wi3Y7XaoqsqCHxMW/QCuWhqu3P2V01O13WJgtDRcagDkHoDL5erYqFdAKbiUfkvpuJSGS1GDbmm4csKNXAZLTsMNh8NwOp3iGntlTerdEchpuGNy1dJwge4C1064GQej0SgKifSaGddvwg01DjabTcy004pdDidSAyTn3lutVmQyGQDA7OwsnE6nbmeDjgtPre3CsFNrLwtaC92tUGa390dl1EaDKtpQpp/dbhcJQXLykHbCTbc0YqruqygKNjc3sb+/j+9973t4+PDhyPehd3hqbReGXeSDuqGXtQxTN5GfZ5eXKgrJogb6lwPvNuSgiAD9+9mzZ9jd3UWr1cLU1BQWFhbO43auDfo05QMgYbhcLjx69AgLCwvC8mvTW6lOHm3UAGitL4XFqFwWlcyicllUE2+S5bJ63dck6ZYu2+28kxheENlsFuVyGYqioFAoIBwOQ1EUkVHYbDaRyWRQKBQA6HcW3hdffNH1fQ7Z9eH999/Hz3/+c3x/QGFMWs+9VCqJJZtlbzXVtu9WGDOTySCfz6NUKok4ubws9KQKY55VjbyLwmAwwOl0wuVyCefi9PQ0bty4gZOTE+zs7CAajaLZbMJqtXZEMvTC4eHh6DXyPvvss+vzlAyByWQSRRVNJhM++eQTfPHFF0OVwKYy1b1KYNN8cLkEdiqVQjqdRi6XExVxqZQ2lcAuFotiAQyqd99r+NEtLq+nEthGoxGhUIhLYP9/2uPUvX/y5IluRC/HfKnqrd/vx9zc3NAPa7/FLkh45JCSq+KSuGkrlUqicaAVahOJBDKZDEqlkugNdJsjT+ejngj9mxe70B9jiR68Pj0AiC57t2WtRqkE041ey1oVi8W+y1oVCoWBy1pRmq1elrXS1gCk6NN1ud9RqdfrLPpxmcQClsOcQ15/jsb3xWIRmUwGsVgM+/v7HQtY0vLT2hLX1BjIC1hSI6BN2LnqDCoUon1/UAbgaSYGdXNqXuTcgGazObroG43G1X8qTsGw5Zi6/YaDvNrDxMzb7Tfr0clLVW9vb3csVS07DwEIKy8vi0VOQtnqXyfhM93p1b3vG7LT6wymUYQwjODpPa3Foddyw6LdV1sWmvLgvV4vksmk6ObLxzw5ORE9hFQqBbPZjHw+DwDC0Ujn1nq0B907NxJXn76i12t8cxRGaRj7JaUAbxevpPcMhjcLR3i9XgBvMiVdLheCwSCKxaJIopJDicViEalUCvF4HLFYDMlkErlcDuVyWeQFyPPrtWNi5vrCyTkTZNixYy96eZ4p9Ge1WuF2u2EwGGCz2eDz+cSYXk5jbTQaKJfLyGazSCQSODg4QDQaRSwWw/HxMQqFAiqVCk5OTjrW0Dut6GX/Bg8fLi/syDsFFIYji6ktRDnJ89C55PXtaX45gLfyAmhpbHICHhwc4ODgAIlEAul0WmQDyqvkkvOQsgepQZDj/XQ91zHh57rBIbszoNlsolgsolarwWazwe12v/WdQaIYppGQx9/UfZeXsZatvNxdr9frHQlBx8fHyGazIhFITgGmBoCSjChJiFbjpe9Rg1Cv10WosVKpdDgTe92nNm+BOVtY9BOm2Wwin88jGo0ik8lAVVWEw2F4vd6eE0u6MUrPQGthuyUCaZ101EiQJZc3SvWVrTzlCBQKBZFaTA0EfYcaB0oioo2yB+m4zMXCop8g7XYb2WwWOzs7+Oabb7C3twdVVXHr1i1EIhEEg0G43W6R893rGN1EO+i88l+i377az6gh0G7aoQNZcLLi9Jn8PUokkjMK8/k8stksMpkM4vE4kskkjo+P+1r2Qfd/2inBemWskB3zH+REi2aziUQigSdPnuAvf/kLnj9/Drvdjr29PaytrWF5eRmzs7PweDximad+izUOS7/koGHR5h7IDUmvSTra8bzs7ZeTiWgokUgksLu7i5cvX+Lp06fY3t5GPB5HtVrtek10zF73wkKfLCz6IdA+lPV6HQcHB3j8+DGePHmCV69ewWw2I5fLIZlMYmtrCzdu3IDf7xfFIuU12mmhR7vd/lbW2KSHBPI9dNt3UhmFRLPZRDabRSQSQSQSwcrKCvb395FIJHB8fIxUKoXj42McHx8jn893DANGFbf823HDMDws+iGRH6pGo4HDw0Nsbm7i4OAA5XJZpL+m02k8e/ZMCJvWZfd4PPD5fAiFQgiHw5ibm0MoFIKqqqJeHHEWEYDzSrQymUzw+XxwOp0Ih8N48OAByuUyCoUC4vE4Xr16hRcvXuDZs2fY3t5GIpFApVI5l2tj3sCiHwKtFWm1Wkin0zg8PEQ+nxdx7lwuh3w+LzLnqFCkXEI6GAwiHA5jaWkJ7777rvABOJ1OkQw1itU/y/vs9Z72c/k6afhAZbIooQh4U0lnaWkJkUgES0tL2NvbQzKZFDMHZZ9Bs9ns8C9Uq1U0m00xH6FbMhFb/uFg0Q+J/BC1Wi1Uq1Xh2e42y41CWqVSSdSTpyqyHo8H8/PzWFtbw8OHD/Gd73wHs7OzcLlc4viT7nYPwzgTRka5PpvNhoWFBQQCAdy5c0eEO+VwYKPRQK1WQ6VSQS6XE7MMKano+PgYu7u7ODg4eOv4lCehnXnIdMKiHxOyRFqrrA2Z1Wo11Go1sZ/B8Ga12FgsJtJiS6US7ty5g3feeUd09+k4FzlT6zTn7WZtjUajWEgjEAj03V8W/dHRkZhnkEwmsbOzg52dHeRyOVQqFaTTacTj8bdyBbSWX69zSbSw6MdE9mgDw4eV2u02arWaGPvn83mk02lks1k8ePAAN2/ehN/vF1V8gNPP2b8o5AZw1Gsnx6fH48GNGzdEnkC1WkUul0OxWITBYEAmk8Ef//hH/Pa3v0U6ne44BjWectYkw6Ifm15LKg3TrTQY3qwqQ9ZLToCpVqtYXl6G3++H1Wp9a7GNq0K/4Um/vHztfiT+fjidTsRiMfztb38TY/1MJtPRw2L+A4t+DKgqC9VvH3WiivywV6tV7O/vo16vI5/PIx6P48GDB1hbW0MkEulYpeQ6rNqqjffLUM9g1HtbX1/Hl19+ic8//xxmsxkbGxv41a9+1XXcz7Doh0Z+EGnGm8PhgKIoPZNOhqVSqeDg4ACFQkHEs6kQZjgchqqqsNls12LtttM6KLXDKIPBgOnpafzgBz8Q76+vr2NzcxO/+c1vALwpZW42mwfOD9ALLPoh0E55NRqNIsnGbrefWvTAm4SfVColstuy2SwODg5w9+5d3L59GwsLCx3dXIoSyNd4ER7/s0Y7FND2FGgdApmlpSX89Kc/xcrKChqNBjwej5h9yLDox8JoNMLr9WJ6ehoejwfZbHZiIaJ8Po9qtYp4PI69vT3EYjEUCgXUajVEIhGoqipErYciJ+M0ZAaDAZ9++il++MMfjryvHmDRD4n84JhMJkxNTWF+fh4vX75ENBp9q2TVuFAOgDylNZ1OY2trC7du3cLq6ioWFxfh8/kGHmeShSxGFY5WrGcpPOr1UHzeZrNdyWjHecGiHxL5ATKbzZiensbi4iKmp6fx/PnziYleplgsYnNzE9FoFBsbG7h58yY+/vhjPHr0CKurqwgEAj2tvXb++mkZV0DnITwqYHIdfB7nAYt+CLRCNplMCIVCWFxcRDAY7Fjd12g0TiQNlM5JyT3pdBqZTAbFYhGxWEyc2+fzdWwejwdWq/Utx+NlQPu7DJoEpN1X/mzQjMNJlP+66vD69KdEKyJa/WZ6ehoulwvFYvGt752Gbo1GMpnEV199hRcvXohc/pmZGSwsLGB5eRk3b97EwsICZmZm4PV6L43YZQYl7PS65lF7UMOWL9cjLPoRoTCRwWDA1NQU3nnnHSwsLIhJI2eR9y2XwKKKNkdHRwAAj8eD2dlZfPvtt3j+/DnC4TCCwaCILFDeP5XQ1pas0tbBp/PRXH/atPX/tBNe6DsWi0WsR+90OuFwOGCz2Tr2P4+hwmVs8C4LLPoRkZNHXC4XIpEI7t69i3q9jqOjI+TzeVQqlYl2Lfs1IrlcDrVaDUdHR9jY2BC57YqiCMFbLBZYLBYoiiJ8AOT46lYNV66zrygKrFYrLBaLEK52nTzax263Q1VVBINBzM7OYm5uDrOzswiFQvB4PB0zCZmLg0U/IrIFURQF77zzDt5//30oioKtrS0xXZTCbGd5DdQYkLc/m82OvO8wyA2GLHq5h2AymURx0GAwiBs3biAcDgvRe71eOBwOkdBEjRIdmxoWuXEB0FHKq16vw2QyifoEzHhwjbxTQGWz9vb2sL+/j93dXTx//hzPnz/H7u5uR/43dZOv+5JSNIWYBO50OmG1WsVQQ55mbLPZRKGRQCCAQCDQMSwhR2a1WkWhUECxWITT6cS9e/dw7949WK1WABe/ZtwlhmvkTRqj0Qi3241IJAKfz4eZmRkEAgG43W64XC5sb28jmUz2LPowabqNmQc1MIPEMmrDRKvrkGOzH1arFaqqwu/3IxgMimiEqqowm81ot9sdvZhcLgev14tqtQq3242lpSUoisKCHxEW/SmxWCxQVRWKosDpdMLlcsHv92N6ehpTU1OiMGSpVOp5DIoz07+1BTtOEwKUJ7EMOsYk4/rDQOHIYrGIZDIJl8sFu93e4XugwpuVSgWFQkH0BHw+H8xmMyKRSMeS1NwADIZFfwrIw03VbhVFgcvlwtTUFEKhEAKBAHw+H/x+P/b29kQhSLnmPPCf1WlPyzjDhstQXpqseSaTGfjdcrmMw8ND0YMaJu7PdMKiPyXaUJbBYBDjWa/Xi6WlJXz00UeiBnwikUA0GsX+/j5isdhQzjctckhNfu8yoe2t0HunbVharRaCwaDIhpSjAZx6OxzsyDsj5JJZjUYDpVIJyWQSe3t7ePHiBZ4+fYpvv/0Wh4eHSKfTYjVZ8lbLx9AL3fIDzGazKCTSbrexvLyMH//4x/jJT36CSCRy0Zd82eEVbi6adruN4+NjHB0dIRqNIh6Pi9Ra7TJT5XIZ+XweqVQKyWRS1IufxDTei4LCcdpCoaqqdmyU1EOhPCpWYjAYEAqFsL6+jvv377P3fjAs+suAnAUnb9T1bTQawlt9dHSEra0tfPvtt3j16hX29vaQSCSQzWZRLpcvbW45idpqtcJmswnhUmyexE6pxOT4nJ6eRigUgt/vh9vtFuE+Oh5l/SmK0jHfgekJi/48kcevZIlGzQWndNtoNIpoNIpkMtnRM6BMOm1BDTrnWaC1qPJinXLKLmUCUlkxOTPQYrGI2L3L5RLip42iIYNgCz8QFv1VRFsTXs6EG2dxiknSb8KMXMFXW9WHGgj6K6f9ah2jzKlg0V8GSKyDKsJe5eKXk6Df78Qz6IaGRX+Z6BUfv4517sal37PJv89QsOivGt3KRV/lMN6g+fPc4E0cFv1VZFDG3GVpBMYR6ihFNJixYNEzjM7oKnr2hjCMzmDRM4zOYNEzjM5g0TOMzmDRM4zOYNEzjM5g0TOMzmDRM4zOYNEzjM5g0TOMzmDRM4zOYNEzjM5g0TOMzmDRM4zOYNEzjM5g0TOMzmDRM4zOYNEzjM5g0TOMzmDRM4zOYNEzjM5g0TOMzmDRM4zOYNEzjM5g0TOMzmDRM4zOYNEzjM5g0TOMzmDRM4zOYNEzjM5g0TOMzmDRM4zOYNEzjM5g0TOMzmDRM4zOYNEzjM5g0TOMzmDRM4zOYNEzjM5g0TOMzmDRM4zOYNEzjM5g0TOMzmDRM4zOYNEzjM5g0TOMzmDRM4zOYNEzjM5g0TOMzmDRM4zOYNEzjM5g0TOMzjAP+NxwLlfBMMy5wZaeYXQGi55hdAaLnmF0BoueYXQGi55hdAaLnmF0xv8DppoVKdxWrNsAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 57\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 58\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 59\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 60\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "current beta: 128\n", "Current iteration: 61\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 62\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 63\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 64\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 65\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 66\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 67\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAP0AAADnCAYAAADVeFABAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAlBElEQVR4nO2dSWwb5/n/v8NtKO6kFsparCW2pNhxHNvxEiO2UyQx2iZAWhQ9dQGK9ocf0Bb/Hv7XXnr7X3+HXnroIYcCzak/FEED1GjiBrAcx6ktL5KshZIskRQpUdz3Ifk/CO+b4Yi7qHWeD0DIFoczw9F853nf530WoVQqgSAI9aA56BMgCGJ/IdEThMog0ROEyiDRE4TKINEThMrQ1XmfXPsEcXQRKv2SLD1BqAwSPUGoDBI9QagMEj1BqAwSPUGoDBI9QagMEj1BqAwSPUGoDBI9QagMEj1BqAwSPUGoDBI9QagMEj1BqAwSPUGoDBI9QagMEj1BqAwSPUGoDBI9QagMEj1BqAwSPUG0kf997MX3/+dL/NfHD7GVzB306VSkXmFMgiAaZCOexf/9ZApSsYRpfwyd5ln8vx+9ftCntQOy9ATRJjL5AqTitwWk4xnpAM+mOiR6gmgTgy4T/vvWKAQB6LUZ8X/ePX3Qp1QRoU7XWqp7TxBNkpOKMOgOhT2tWPeeRE8QxxdqdkEQBImeIFQHiZ4gVAaJniBUBomeIFQGiZ4gVAaJniBUBomeIFQGiZ4gVAaJniBUBomeIFQGiZ4gVAaJniBUBomeIFQGiZ4gVAaJniBUBomeIFQGiZ4gVAaJniBUBomeIFQGiZ4gVAaJniBUBomeIFQGiZ4gVAaJniBUBomeIFQGiZ4gVAb1pz8ClEolyHsO1uk/eKgQhIrt1Cq+X29boj2Q6A85TPBK4R8VKp1zJXELgoBSqUTC3weoa+0Bwa57tesvCIJqBUDXpm1UvEhk6Q+AYrFY13oLggCtVqvKm7tUKqFYLPJ/yxEEARqNRpXXpV2Qpd9j5Ne3lRu1UCggk8kgl8shn89DkiQuiMMO+77MMstfGo0GWq2Wv3Q6HfR6PTQa8i23EbL0+43SorMbvRm8Xi/m5ubg8Xjg9XoRDoeRTCYPtfCZ2JWC1uv10Ol06OjogNlshtVqhd1uh9PpRHd3N3p6etDd3Q29Xt/QcQqFQtPXkyBLfyAUCgVIkoRCoVA2lGViKRaLyGaz8Pv9ePbsGR4+fIinT59ifn4e6+vryGazB3n6TaPX62EwGGAwGGA0GmE2m2Gz2eByudDd3Y3e3l4MDAzg5MmTGBgYgNvths1mg06nKxvKswenwWBo+MGgcipaehJ9m2HWvZoFkiQJ8/PzmJ2dxcuXLxEKhZDJZPgNzUYFkiQhGo1ifX0da2tr8Hq92Nra2udvs3cwa88eAA6HA06nE06nE1arFUajkfs0BEGAJEnIZrPo7u7Gu+++i7feeovvq1Ao0Dy/MjS83w+qzUmLxSISiQSWl5cxOTmJu3fv4vHjx1hbW0M8Ht/nszx40uk00uk0Njc3a24nCAJ0Oh3y+TwAoLu7G1qtFufPn4fJZAJwtOIWDgMk+l3CbrhisVhm3UulEubn5zE3Nwefz4dIJIJUKoWtrS0sLCxgenoaKysrTR9Po9Eceqsmd+DJkfs32NSmHqVSiQseADY2NvDo0SM8fPgQb775JkwmE3Q6Hd/2MF+XwwKJfpfIg0rkN93Kygru3r2LO3fu4PHjx/D7/cjn89BqtSgUCi3Py4vF4qF24impJsLdWOdwOIzZ2Vm43W688sorXPRsvyT82pDo2wCbd5ZKJfj9fszMzODBgweYnJzEN998A6/XW/WztTz6zMnXaDSePGhFOc2o9aCoNSWRn4vyWJXOV7ldo+IWRREOhwNWqxUmkwlarZb7NrLZLGKxGMLhMFwuF/r7+3HixAnYbLYd506Crw+JvkUqWZRgMIgvv/wSf/vb3/D1118jEAggmUzW3M9eWe5m9llv20rCbec82mg0YmBgAMPDwxgYGIDL5YLJZEKhUEAikUAkEsH6+joCgQA6Oztx5coVvPXWW+jq6uLnQlF6jUOibxFm2ePxODY2NuDz+fDixQt88cUX+Pzzz7G+vl62rU6ngyAIKBaLDc9nax1bvrzHOCzx+Xq9HlarFS6XCzabDRaLBTqdji/BAd9GHOr1ethsNrjdbvT396O3txdOpxOiKKJQKCCZTCIej2NzcxPhcBh2ux1Xr17lgge2r8Fh93McJkj0TcJuMGBbZGtra5icnMT9+/cxNTWFxcXFHUtrbJjK/r0b5BFtbH+HQegMg8GA/v5+jI2N4cyZM5iYmMDAwABsNhtEUSxbhmPfQ6fT8TV8URR5ZB5z+EmShHw+j3w+D51OB4fDUXZMEnxzkOiboJLAPB4P7ty5gy+++KLMujNRVoshbxY2smAvuYUXBAF2ux12ux0Wi4WLRm5V5Q8K5fep9L2U4bJyK82Oz/wN7Pvq9XrY7Xb09/fj9OnTOHPmDMbHx9Hf39/28Fp5lCMJvjlI9E0iF0ehUIDH48H9+/fLBK/cbrcwAbPRghK3243z58/jwoULGBsbQ1dXF0RRLBOa3LrKz6/eeVaKm5c/JNhP9oDQ6/UwmUyw2Wz8QbQX8fQk9NYh0TeJ/GaLx+Pw+Xx4+fIl/50oisjn8211zsmdfWazGQ6Hg8exd3Z24vTp07h06RKuXbuGs2fPwmq1tu3Y7aDRegC11veV29Vz3B2mKc9BUe36kOibgDmfGKurqwiFQjsE3o6hvE6ngyRJO/Z18eJF3L59G6Ojo9BqtRBFEU6nE263G319fYdO8AfFUYtn2Auq5SeQ6BtEvkRXKBTg9XoxPT2NjY0N6PV6HjWWz+d3LXp5FJo8Q21kZAS3b9/Gz372MwwNDdX8/EFaOmUJrN0upzX6WflUg2X4ETsh0TcAExG7+fL5PBYXF/Ho0SOsrKy0pX5dtWW4U6dO4cqVKxgZGcHIyAguXLhQU/Ds8wctevn8f6/n38yxyEZGRqNxT4931CHRN4hcRJIkYWVlBU+ePIHX6y1zsLUqtkrWub+/H7du3cJHH32Eixcvwu128/eKxWJVC6o2C1fJsh/0g+8wUO0+INE3gFKQkiQhGAxieXm5bpZYLZholXPPnp4eXLp0CTdu3MDVq1fx2muvoaenp2wbSZIqetaPo1e7UjVgtoYvCAIMBsOO7f/+97/j66+/RqFQgNVqrbn6cVz5/e9/X/H3JPoWYGmyW1tbZfPIZi1LJevucDhw7do1/PznP8d7770Hu91e0SGlvNGPM8qHmTw2gD005cuCHo8Hf/nLX/DJJ58A2F7x0Gq1yOVy+3viBwyJvo2USiVks1mkUin+u0ZFz4aiSu+y2+3G6OgoXn/9ddy6dQs3b96E3W4HsH1zs9Dd41AYslbhS0a1gCL2nvzn5uYmvvzyS0QiEZhMJkxPT2NycpJvXy//QW2Q6FuEhYY2S6WgGKfTyZfi3nnnHUxMTOxwRrGss6Msdjm1vke19fpqPHnyBH/84x9x7949GI1GGAwGhMPhtpzncYRE3yJKC6XRaLhzrdZ2APjcUq/X45VXXsGFCxdw48YNvP322zh37hzfTr5sdxTn68qgHPkopZnvkkgkkEwm+egqGAwiFovBbDYjm83iH//4B+7du4dMJoNMJsM/J4oiBEEoGyURJPqWacRS1RvunzlzBh9++CFu3ryJiYkJnDhxoux9VhziKN6sleL6W/keW1tbvBIwS7GdmprCzMwMMpkMBEFAJBIpEzsjl8uVhQ0fxeu4F5Dod0GjhSSA7ZGA2WyGyWSC0WjE4OAgbt26he9+97t44403YLFY+LaSJJUlzBwUtR5atd6rt5IQDocRCoUQjUaRy+XKSo6xfRcKBW7Vl5eX4fP5EIvFEAgEMD09jWAwuGO/oijyjMZKxUfUvoTHING3gCAIEEURHR0dyGazdS2I0WiE0+nEwMAATp06hTNnzuDs2bM4ffo0BgcHywQPHHyqaLVknEar4tQ6/83NTfznP//BvXv38OTJE4TD4R0jAvmSXCaTQTKZRDqdRj6fRyaTQTQarbjvQqFQ87yIbUj0DSK/iXU6HQYGBjA2NoapqSlks1lIkgSdTgebzQabzQaz2YyOjg50dHTAZrOhq6sLAwMDmJiYwBtvvIHx8fGy2Gh5quheWfh61ln57908eIrFIuLxOGKxGHK5HIrFIiKRCBYWFvDgwQPcvXsXjx49ann/LOWXPRzkNQuI2pDoG0B584uiiNdffx3f+c53EI1G8eLFCwDby25Xr17FpUuXcPLkSZjNZuj1ej4qsFgsvMFDpWSIvbLu9bLc5OGy7ToHZtG/+uorLC0tIZVKIZPJIBKJIBAIwOfz7foYZNFbg0TfAEohGAwGTExMIJlMYmNjgw/xr127hvfffx83btzAqVOnau5TfsPutWe+lf0XCgUeS8Dmx8o2Xcr3S6UScrkctra2MD8/jy+//BL//Oc/MTMzU/PcGkEpcMqiax0SfYMoh7+dnZ14/fXXkcvlMD4+DoPBgPHxcUxMTODkyZMN7XO3HuVGHG3NThUkSUIymUQ0GkU0GkU8Hudz6mw2i2w2i1wuh1QqhWQyyV+suaYkSUilUgiFQlheXobH46l5vHp5Au1OWyaordWuKJW2C2Om02kYjUYeQcfek3PQjjlWkLPSiwUaZTIZxONxRCIRbGxsIBgMIhQKIRKJ8O+ZTqeRSqUQi8UQjUb5exT1dvgolUrUy24/qRYQstvEmFbWvCORCNbW1rC6ugq/349wOIx0Os0ts7zwZCaT4cEw8XgciUSCW/lcLlf2M5VKNWR55c7JZur4E7uDRH+MUM6vGcoadpIkIRKJYHFxEU+ePMHjx48xMzMDn8+HVCqFXC5XZvHl+5Uvf5FAjybVRE9z+l1QKd2znSmuyvVy+b6z2SwikQgSiQRfqmLWNJ/P81rxa2trWFhYwPz8PBYWFrC2toZEIrHrc5OjrLzLzne39f2JvYEs/SGnktc6lUrB7/djZWUFgUCAh6AypxhbVfB4PFhcXITf7+cNNNWWXqpmWrL0bIinNuSe770IlKkW8caQjxSUI4aNjQ3Mzc1hdnYWHo8HwWAQ6XS6bNtMJoNQKIS1tTX4/X7+fqX9A7X73jUahUccHWqKfrd/YGWOuTwIpF03T719NZr8It92v1E656o56yKRCJ4+fYrPP/8cT58+xdraGmKxGH84s4IShUKBe9orJaIo5+m03q0uaHjfAMo5cyVR7kWAjSRJiMfjPEFlaWkJX3/9Ne7fv4+FhQVEo1Hk8/myEVmlv2czD76jRrWCokDzMQrHjUKhQI68VmG12JQoxV8rl77ZB0I2m0UgEMDCwgKmp6cxPT2N+fl5rK6uIhgMIplMNjw/P45iB76tQiR/qMn/JszHcVy/f6vUtPRPnz5VzdWSizKfz0MQBJ4k006KxSJf585kMjzKjSXtsN/H43H4/X7Mz8/j2bNnmJmZgdfr3VGtp9rD5Djf6O2cHh5nWlqn//DDD1V1ZXU6HYrFIjY3N6HX6/HBBx/gt7/9LUwmU0OfZ7HnAHjTR/l7mUwGsVgMwWAQPp+PO9o2NzcRi8V4EAyrAJNKpRCJRLC1tYVIJNJSea7DRKVMvkaR36fVuv8A24VFBUGgcllo0Xv/6aef7s3ZHBFyuRzPpstms/xGkg8bmdATiQTi8Tiy2SwA8H7sTPj5fB7pdBrhcBh+vx/Ly8tYXl7my24slPU4W7B2FbRgDz+j0chFDmxnOQ4NDUGj0WBpaQl+vx+lUgkGg6FiqXG1UtPSC4JwfO/ABrDZbLh58yaGhoYgSRL3hMsdRCx6LZfL8Qg3oLweHNtOHuYaiUQQiUQQjUZ3LKkddmpVqgX2L9T27bffxg9/+EMMDg4ik8nw3vUajYYHLpVKJT7vP84P1Er84he/aH54r1bRH2dv90Ehf1A0Ul9Q+Tu21MsShIaGhvCrX/0Kv/vd76hpZ3WaH97L56RqglVk2e/otUrLfkc99t1gMMBisfCKQh0dHRBFsczrDnxbYou1p1Im6aTTaSQSCWi1WgwODuLy5ct47733SPAtQJaeaAtMsBqNhlcLstlscDgc6OnpgdvtRldXF2w2G0wmEwwGQ1m8PhsFsC69rOw3sL1kGovFsLGxAaPRiMuXL+P69eswm80Adl+X4BhD6/StIL/5atGoNVZ2djlKVpzVDOju7kZ3dzecTifsdjtvMMFWLLRaLURRhNFohNlsht1uh81mg9Vq5YKvVMuf1b1jL7no0+k0IpEIDAYDTp8+XSb4bDbLRwbyuftRurZ7QbX+9GTpjzFyC6psMsFEpUzHlafXsu30ej06Ojp43MLY2BjGxsYwMjKCEydOcOHr9Xpu7Ssdu16ji0q1B4Dy6rjMG690ppKlrwg58tSE3GoaDAaIosgLdBqNRnR0dMBgMHChAtghdp1Oh46ODlitVjgcDnR2dqKvrw+Dg4MYHBzEiRMn4HQ6D+T7sVUStbXlbhIa3qsFNr/W6XQwGo2wWq2w2WxwOp1wuVxwOp1wOBywWq3cQiuH2TqdDiaTiYvd6XTCZrPBYrHAaDRCFMUD7Zyr9rj63UCiP4awobQoirBarejs7ERvby96e3vR19eHnp4euFwu7k3X6/VlItJoNDAYDDCZTLDb7fwBUQnldKDa+ch/NnL+lY4jf5+G861Doj+mCIIAvV7PrbXb7cbAwAAGBgbQ09MDh8MBi8UCURTLnGpyLzqbDhgMhprzZmX2ofI8mjnndm5HVIbGSCqhUY92qx7vap9rZn9q97bvF2Tpjyks7DeVSiEcDsNoNEKj0fBw4ng8XnF4zyw9GyXY7Xa+BFcN5TKkkmaG99VGFIeppPhRh0R/DGHz7Gw2i3g8zivjxuNxhEIh+Hw+Pk9nDjllBpx8alDJkcfW5uV563tJtVoFJP7moSW7Y4pyyc5gMHCxsmU7tmQnX6uXYzAY+JKd3W5HV1cXTpw4wZfs+vr64HK5DuT70ZJdQ9A6vdpQJrnIM+OUVWcAlAXAyPfBxN/V1YXBwUGcOnUKY2NjGB4eRl9fX8XgHHlATqXgnEYDdBis9h+AisE5tT6rYkj0rdDuMFygPAjmKDmvWBhuV1cXurq6diz7sdgAFj/POvXabDbY7fa6YbiCIPAwXvkDiZX9jkaj0Ov1OH36NB9hUBhudfR6PYme2FuYaOVBQaw1t9vtRmdnJ+x2+46EG/ZZ5kBkCTfsfUmSeMKNKIq4cuUKrl+/DovFclBf9ajQvOj1er0qRU+pte1DnlprtVr5un+lERSbGlSy9Ol0GslkEhqNBoODg3jzzTdx+/ZtnD9//iC+1lGh+TBcVvpZbRxUk4+jLvBKsH714XCYi7haCG21AhrAt0t5kiRhcnISk5OTyGazGBkZgc1m27svcAyhJbsKMOHZbDbcunULIyMjvNQVgB3OL3mFW/bAkBeFAMArvrDimNFoFOFw+Ei2eW6lXJb8/+2oVbe6uorPPvsMRqORl8vSarVwOBzQarW8hTagXg//L3/5y4q/pzl9Da5du4Y//OEPvDDm1tbWjnrq8sKYsViMTwnkhTHl9fG2trZ4H7qlpSWsrKwgGAwiFoshmUxS8cYmYI5FZWFMQRCwvLwMn8+HUqnEg4/Udm19Pl/zc/qPPvpIVaLXarUoFosIhULQ6/X4/ve/j1//+tdNlcBmlVrZvFROJpNBNBrFxsYGfD4fvF4vL4HNLH4mk9lRQJMNj6kE9jb1SmAD2y3A1E5Lde+fPXumGtHLh6ryZhd9fX1tPU6xWEQ+ny9rdsEq6cp/z5pdzM3N4fnz55iensba2ho1uwA1u2iUlkQP6mUHYLvFVK05bLU57m7bWgWDQSwsLOD58+eYnZ3F/Pw8Xr58iUAg0FRbq+OKMsBIbv3Z8iFwvB+Atcjn8yT6VpEkqW4O917keLN4eTbE93g8vIHl/Px8WQNLeckr5XkxjuPNL7/u1RpYNvrw3U3ZrUqfPegyXi01sFTrkh2DRXm1uxS4MmKs0k3JLJXT6YTT6cTIyAhOnToFp9MJg8EAh8OBtbU1xOPxsr8TS67JZrPcR3Acxc6otcxZyXG3V6nF1T57GK99zbtZrbHM+/2HqlQQstK1t9vteO211yCKIoaGhuDxeBAIBPhSIgsqSqVS2Nragtfrhdfr3dFBp1IVWjlysbSrFRVxeKDh/SFH+fdhombLfsFgkIuarRakUikEg0EsLS1hcXERXq8XkUgEqVRK9X4ANUGOvD2gUvBJvSyyVvYvd06x/bKOtslkkq82MIudz+eRSCSwubmJtbU1zM/P89fa2hoSicSuz02OvBuN3LOuzNgj9hcS/TFCXoyy0gNBXic+EonA4/FgamoKjx8/xuzsLHw+H39YSJKEQqHAU1flte+PajYgsQ2Jfp+RWzllUMpuRgKt5I5Ho1F4vV6srq7C5/MhEonwICBJkvgrl8shk8kgmUwiHo/zKMF0Oo1MJlMWT8C2a+RhIB8JADQC2C9I9HtAqVRCLBZDKpVCR0dHWUjoYSvswCy5/FUsFrmlZ4JPJBIIh8PY2NjAxsYGQqEQIpEIYrEY0uk00uk0UqkUYrEYb7edSCQafgAQ+weJvs0Ui0Wsr6/j4cOHmJ6ehsFgwNjYGM6cOYOhoaG6SR5KH0Ar1PrbsfeabQpRKBR4HkE0Gi0LD2bRg5lMhqe6spEASzZixTg3NzexvLwMj8eDbDZb9Xj1lkOPcu+/g4ZEv0vkgRalUgmhUAgPHz7EJ598gn/9618QBAFXr17F7du3cePGDZw6dapuIAjjsIwG5LCRAJvXy30Iynm/fO7PEpMWFhbw73//G3fu3MHz58+rHqfdVYmIb6kmekqtbQC5VQa2c8RnZmbw+eef4969e1hZWQGw7TXP5XLw+XwYGhqCyWTibZtNJhMsFgtcLhd6enrQ0dGx4xjA3jwA5EKthDwgiP27UsJQowwMDKC3txdmsxkulwvLy8tIpVLIZDKIRCJYX1+H1+tFIpFoWdByPwH5CJqDLH0DMEvGRBCLxfDxxx/j448/xtTUVFk6Lesb19HRgY6ODphMJthsNt7x9dVXX8WFCxcwPj5e1kqYiXIve7TVSaNu67GKxSLi8Tji8Tjy+TyKxSIikQgWFhbw1Vdf4e7du3j06BGJfg8hS79L5DeVJEnw+XyYn59HLpfjiR+SJCEcDiMcDpd9VhRFuFwu9Pf3Y2lpCUtLSzh79izGxsZw8uRJ7gCUx5DvRSx/o/urNn+u938GE6Tdbofdbi97b3h4GC6XCw6HA6OjowiFQnxf8uOycGK2SpBOp/mqQSQS4dMKOcw/QA+B2pDoW6BU2q7AyiLh6t1g2WwWgUAAiUQCL1++xL1799Df34933nkH3/ve93DhwoWyIo/FYpFX3jkIGilPXSuZpNZ5d3Z24vLlyxgdHS0rOiIXPfMnsMhCVhAjGo0iEAjg+fPnCAaDO/bNwpDrNdRUOyT6XVAto00ZJAOUD3cB4OXLl7xMViqVwsTEBPr6+nglWPYZ4ODaMtfLKqyF0ukHfDsCcDgcvNhFPcLhMDweD7xeL6LRKPx+P/r6+jAzM8NTnsPhMLxe745VAnmW3UFnvB0mSPQtUi2jqpkCD9PT08hkMlheXsb169dx69YtnDt3jr/P6u3txVB/r2nX+TqdTkxMTGBwcBDZbBapVArXr19HLBaDxWJBNpvFp59+ij/96U87EotY9x423D9q13CvING3iPIGqtfEUY5Op+OFMufm5hAMBhGJRHi026uvvsobSMg5ajdutYeVcv5e67OCIMBsNsNsNvP3xsfHy7bVarV4/vw5JicneQuvra2tmvEBaoZE3yKsi0uzWWuVRBCJRPDNN98gHA7jxYsXuHHjBm7fvo2enh6+jdxaHeR8v100GmzTyPc8d+4cfvOb3+CnP/0pOjo6MD09jT//+c9YXV1ty7keN0j0LSAIAl97Z/PyRof0zCutJBgMIhgMYmZmBn6/H6Io4v3334fD4UCxWDxWZZzlFYWbpVJ+f2dnJ37wgx/w33s8HszOzuKvf/0rAMBisUCn0x35wqLtgkTfAhqNBlarFZ2dndjc3KwZ+FILNnyVLz1Fo1Hcv38f+XweL168wFtvvYVz586VWX0AfKmw0uu4oby+8ixCQdhusClndHQUP/nJTzA2NgZJkviSqNpKYFeDRN8ASjHpdDr09PRgeHgYoVAIGxsbLe230sNCEARsbGzgs88+w9TUFFZXV5HNZnHx4kX09vby7ZiTSg1Ue5jVitv/8MMP8cEHH/DPE99Com8QpeiHhoZw7tw5BAIBhMNhPmRvtTyzMh8eAPx+P+7evYtUKoX79+9jZGQEFy9exPnz52veyAcdnKIcdey16NjaPKuGazQaj+2opx2Q6BtAefPo9XqMjo7i4sWLmJubw7Nnz8q2bUVw1aYIi4uLWFlZgU6nw+joKH784x/DbrdjeHi46r40Gs2Bi17+cz+Ox5pfEvUh0TeI/AbWarU4efIkIpEIenp6yhxEzKO/G9GxSrjyAhcA8OTJE9hsNpRKJQwPD0On00EURTidTvT29qKvr29HSO9hoFrCj3IJstrDQu7pr+W7kP+ORfWpGeWSL4NE3wRsGMk8zwMDA3C5XFygjFatvfw41TzNjx49wsLCAm/33NXVhVdeeQWXL1/GtWvXcPbs2SPTxbWS4Bvdvh7Kaj3Et5Dom0QuZqvViv7+fgwODmJpaQkAeECIcn6+G9gNLEkSL1zB8Hg8ePnyJUKhEAKBAKanp9HV1QVRFMtu+krWsdLyl/zc5Z+TvypZbhY/oNPpeD96h8MBu91e1oWmFap9ttX4f7VDom8S5TB/ZGQE165dQzqdxvr6+o7t2iH6egkkgUAADx48wOzsLEwmE0RR3OFIYw8OZV5AtQQV+Wc0Gg3v/MqWvuSFNNm1MBgMsNls6Ovrw/j4OM6cOYPx8XH09/e3Pc6A4ulbh0TfBJWs5ejoKN577z1YLBZMTU3B4/Fgc3Nzx3xytw8BeZENJkjgW089q1d30Oj1evT392NxcRHLy8tYXFzEwMAAbDYbRFHkVl/+PbRaLYxGI4xGI0RR5A8YALwEFytQotfr4XQ6YTaby64pib9xqIjGLiiVSkgkErz19NzcHL744gvcuXMHfr+fb8ccc+wzu11SU+beHzZ0Oh0f3ttsNlgsFuj1+oqCZ6MDt9vNK+44nU6IoohCocDr+29tbWFrawt2ux03btzAm2++yY9XKBSORWjyHkBFNNoJsy5WqxVWqxWjo6MYGxuD1WpFqVTCV199xXPoWXvqdh670kNjr7z29SruKH0DkiRxkTaC0WhEX18fhoeHMTg4CJfLBZPJxIt0shJbgUAAXV1d0Ov1GBoaQnd3NwCQ4JuELH2bWV9fx+zsLB48eIB79+7h4cOH8Hq9Vbdnw9tKKAtS1kMuerkTr5HRQK1+duxcKh1PuU2rIxhRFGG323mpMXZN2LA+Go0iHA6js7MTt2/fxo9+9CNcvnwZbre7LG+exF8GWfq9golTo9Ggt7cXvb29GBkZgcvlQkdHBx49egS/3498Ps/LamWz2bKKsu06D3nRjmZo5Rx2kyGn/Gw2m+VJR7VYX1+Hz+dDIBBALBZDd3d32QOLhF8fEv0uqbbUdfLkSdy8eRN9fX149913EYlEkE6nEQqFMDc3h5mZGSwvLzd9PKUX/jBSK8hGnizT6qhAXlhDGX9/mK/LYYFEv0vYTaYcoguCgLGxMYyNjQHYvuGTySSWlpYwOTkJl8sFs9mM1dVVxOPxHRaqmiDaOTI4zMivq0aj4XUL3G43Ll68iEuXLsFkMgHYLlS621gANUGibzPKctkMQRBgsVjw6quvQq/Xw+1248qVK9ja2uL95eWBL/l8HvF4HH6/n/eg29zcPIiv1HYEQYDRaITZbC4L5HG5XHA6nbBarTAajfwasilRJpNBT08P3nnnHS54tj+icciRdwCwjDBldxhGqVRCJpOB3+/Hs2fP8PDhQzx9+hTz8/NYX1/nD4mjAithZTAYeC8Au90Ol8uFzs5O9Pb2YnBwECdPnsTg4CDcbjesVitPH5aLmgUK1WuHRQCo4sgj0e8hylZQtTz11VhdXcX8/DyvCBsOh3kNeGD3cf7tRr56wIbmOp0OOp0OBoOBd/yxWCy8MYjL5UJXVxd6enrQ3d3dsKALhcKxqii0B5DoD4Jqjr5GKRQKvHFkPp8vyx5rpvruXj4can0vZTiwMryXtc9iDwZKkmkrJPrDgLIefK1qsGp1TlWb9gDlOQFEXUj0h4lGS0CrEbo2bYNEfxRpZFRwFFGu5e93tR2VQBF5R5FKhSaOivibLYxBgt8fyNITxPGl4lOUvCEEoTJI9AShMkj0BKEySPQEoTJI9AShMkj0BKEySPQEoTJI9AShMkj0BKEySPQEoTJI9AShMkj0BKEySPQEoTJI9AShMkj0BKEySPQEoTJI9AShMkj0BKEySPQEoTJI9AShMkj0BKEySPQEoTJI9AShMkj0BKEySPQEoTJI9AShMkj0BKEySPQEoTJI9AShMkj0BKEySPQEoTJI9AShMkj0BKEySPQEoTJI9AShMkj0BKEySPQEoTJI9AShMkj0BKEySPQEoTJI9AShMkj0BKEySPQEoTJI9AShMkj0BKEySPQEoTJI9AShMkj0BKEySPQEoTJI9AShMkj0BKEySPQEoTJ0dd4X9uUsCILYN8jSE4TKINEThMog0ROEyiDRE4TKINEThMog0ROEyvj/+zH2avyH5xIAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 68\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 69\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAP0AAADnCAYAAADVeFABAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAkjElEQVR4nO2dSWwb9/n3v1yG+y6J1EJFWyRLcWzDcuIoaW0nSOKmTYAUCHrqAhTFHwXa4kWB99pLb+/1BXrqoUB7KNDegiJFe3CWuokqx7HrJdp3ShQ3UVxEisuQfA9+f5PhaLhT6zwfgLBNDmeG4/nO8/s9v2dRlUolEAShHNQnfQIEQRwvJHqCUBgkeoJQGCR6glAYJHqCUBjaGp+Ta58gzi4quTfJ0hOEwiDRE4TCINEThMIg0ROEwiDRE4TCINEThMIg0ROEwiDRE4TCINEThMIg0ROEwiDRE4TCINEThMIg0ROEwiDRE4TCINEThMIg0ROEwiDRE4TCINEThMIg0ROEwiDRE0Qb+fC/2/je/72L//nTfURTuZM+HVlqFcYkCKJOwsks/vdfH4EvljC7k0CHeR7/54PLJ31ahyBLTxBtIpMvgC9+U0A6meFP8GwqQ6IniDbR7zLh57eGoVIB3TYD/teboyd9SrKoanStpbr3BNEgOb4InfZU2FPZuvckeoI4v1CzC4IgSPQEoThI9AShMEj0BKEwSPQEoTBI9AShMEj0BKEwSPQEoTBI9AShMEj0BKEwSPQEoTBI9AShMEj0BKEwSPQEoTBI9AShMEj0BKEwSPQEoTBI9AShMEj0BKEwSPQEoTBI9AShMEj0BKEwSPQEoTBI9AShMEj0BKEwSPQEoTBI9AShMKg//RmgVCpB3HOwRv/BU4dKJdtS7dBn1bYj2geJ/pTDBC8V/llCet5y4lapVCiVSiT8Y4C61p4Q7LpXuv4qlUqxAqBr0zZkLxJZ+mNGarmr3dgajUaRN3epVEKxWBT+LkalUkGtVivyurQLsvRHjPj6NnOjFgoFZDIZ5HI55PN58DwvCOK0w34vs8zil1qthkajEV5arRZarRYajeaEz/pcQZb+uCkWi2UWnd3ojbC9vY3FxUWsra1he3sb0WgUqVTqVAufiV0saI7jhD+NRiNMJhNsNhtsNhtcLhe6urrgdrvR1dUFjuPqOk6hUKCHRBOQpT8BCoUCeJ5HoVAoG8oysRSLRWSzWezs7ODp06e4f/8+njx5gqWlJQQCAWSz2ZM8/YbhOA46nQ4cx8FgMMBiscBqtaKjowOdnZ3o7u6G1+vFc889h/7+fng8HthsNmi12rKhPHtwsn0RNZG19CT6NsOseyULxPM8lpaWMD8/j42NDUSjUWQyGeGGZqMCnucRj8cRCASwtbUlWPnzgsFggMlkgtVqhdVqhdPpFF5WqxUGgwFqtVoQPc/zyGaz6OrqwptvvolXX31V2FehUKB5vjw0vD8O1Gr5eKdisYj9/X2sr69jenoan332GR4+fIjt7W0kk8ljPsuTJ5PJIJPJ1HyQqVQqaLVa5PN5AEBXVxc0Gg2uXLkCk8kE4OzFLZw0JPoWEc/Zxda9VCphcXERS0tL8Pv9iMViSKfTiEajWF5exuzsLDY2Nho+ntj6nVbEDjwx4mvFpja1KJVKguABIBwO4+HDh7h//z5eeuklmEwmaLVaYdvTfF1OCyT6FhHfZOKbbn19HZ9++inu3LmD//73vwgEAsjn89BoNCgUCk3Py4vF4ql24kmpJMJWrHMsFsPCwgI8Hg9GRkYE0bP9kvCrQ6JvA2wZqlQqwe/3Y25uDl9++SW++OIL3L9/Hzs7OxW/W82jz5x89UbjiYNWpNOMag+KalMS8blIjyV3vtLt6hW3Xq+Hw+GA1WqFyWSCRqMRfBvZbBaJRAJ7e3twuVzo7e1Fd3c3bDbboXMnwdeGRN8kUotSKpUQDAZx9+5dfPjhh5iZmUE4HEYqlaq6n6Oy3I3ss9a2csJt5zzaYDDA6/VicHAQXq8XLpcLJpMJhUIB+/v7iMViCAQCCAaD6OzsxPXr1/Hqq6+is7NTOBeK0qsfEn2TMMueTCYRCoXg9/uxsLCATz75BJ988gkCgUDZtuJ5Z73z2WrHFi/vMU5LfD7HcbBarXC5XLDZbLBYLELwDbPMLOKQ4zjYbDZ4PB709fWhu7sbTqcTer0ehUIBqVQKyWQSkUgEe3t7sNvteOWVVwTBA8+uwWn3c5wmSPQNwm4w4JnINjc3MT09jenpaTx58gSrq6uHPNJsmMr+3griiDa2v9MgdIZOp0NfXx8uXLiAiYkJjI+Pw+v1wmazQa/XC6HF4t+h1Wqh0+lgMBig1+vBcZywfMliGvL5PPL5PLRaLRwOR9kxSfCNQaJvADmBra2t4c6dO/j0008RDAaF95koK8WQNwobWbCX2MKrVCrY7XbY7XZYLBZBNGKrKn5QSH+P3O+ShsuKrTQ7PvM3sN/LcRzsdjv6+vowOjqKF154ARcuXEBfX19Fv0GziKMcSfCNQaJvELE4CoUC1tbWMDMzUyZ46XatwgTMRgtSPB4Prly5gqtXr2JsbAydnZ3Q6/VlQhNbV/H51TpPubh58UOC/ckeEBzHCSG27EHUbsGz4xHNQaJvEPHNlkgk4Pf7sbm5Kbyn1+uRz+fb6pwTO/vMZjMcDocQy97R0YHR0VFcu3YNU1NTuHjxIqxWa9uO3Q7qrQdQbX1ful0tx91pmvKcFJWuD4m+AZjzCXh2U/l8Puzu7h4SeDuG8lqtFjzPH9rX5OQkbt++jeHhYWg0Guj1ejidTnR3d6Onp+fUCf6kOGvxDEdBpfwEEn2diJfoCoUCtra2MDs7i1AoBI7jhKixfD7fsujFUWgsM43jOAwNDeH27dv48Y9/jIGBgarfP0lLJy2B1epyWr3fFU81WIYfcRgSfR0wEbGbL5/PY2VlBV999RU2NzfbUr+u0jLc888/j+vXr2NoaAhDQ0O4evVqVcGz75+06MXz/6OefzPHIhsZGQyGIz3eWYdEXydiEeXzeWxubuLp06fY2toqc7A1KzY569zX14dbt27h/fffx+TkJDwej/BZsVisaEGVZuHkLPtJP/hOA5XuAxJ9HUgFWSgUEAqFsL6+jkgk0vR+mWilc0+3241r167hxo0beOWVV/Diiy/C7XaXbcPzvKxn/bx5taWrBOI/WUqtdO5aKpXwt7/9DV9++SUKhQKsVmvV1Y/zym9+8xvZ90n0TVAsFpFMJsuCcNhQthHkrLvD4cDU1BR+8pOf4K233oLdbpd1SOl0uuZO/owh9eiLrxdboxcHTAHA6uoq/vznP+Ovf/0rgGcrHhqNBrlc7hjP/OQh0beRUqmEbDZbFldfr+jZUFTqXXa73RgZGcHly5dx69Yt3Lx5E3a7HcCzm5uF7p6HwpDVCl8yKv1OuTr54XAY//73vxGLxWAymTA7O4vp6Wlhu1r5D0qDRN8krNxVo8gFxTidTly7dg1vv/02Xn/9dUxMTBxyRrGss7MsdjH1NsCohydPnuB3v/sdpqenYTAYoNPpsLe31+opnltI9C0gHWoy51qlbRhsbslxHIaHhzE5OYlvf/vbuHHjBi5duiRsJ162O4vzdWlQjth61/tbisUi4vE49vf3kcvlkE6nEYlEsL+/D4vFgmw2i7///e+Ynp4WqvEw9Ho9VCpV2SiJING3RKWbSDz/rDbsn5iYwLvvvotbt25hYmICPT09ZZ+zzLyzeLPKxfU3+juKxSK2t7exsrICn8+HeDyOYDCI2dlZrK6uIpPJQKVSYW9vr0zsjFwuVxY2fBav41FAom8zlQJj1Go1zGYzTCaTkD9+8+ZNfPe738XVq1dhsViEbVmFnaOIWW+ESg+rWr6Lata8VCohFothd3cX8XgcuVxO2J94np/NZpFMJrGzs4OVlRXs7OwgFoshEolgcXER8Xj80L71er2Q0ShXfETpS3gMEn0TqFQq6PV6GI1GwZpUg4XKer1ejIyM4IUXXsCLL76IsbEx9Pf3lwkewIl3tqmUjFNvVZxqw/fd3V08ePAAX3zxBR4/foy9vb1DIwJxSm0mk0EymRQafuRyOezv78vum/lYSNzVIdHXifgm1mq16Ovrw9jYGB49eoRcLgee56FWq4XMMrPZDL1eL5R57urqQl9fH8bHx3H16lWMj4+XrS+LU0WPysJXE4OcV7yVB0+hUEAymUQikRASkGKxGJaXl3Hv3j2hGnCzsJRfcVESpa3DNwuJvg6kN79er8eVK1fw+uuvIx6PY3FxEQDQ09OD69evY3JyEoODgzCbzdBqtYL4LRYLnE4n3G63bDLEUVl3uVRY6XHbXXIqEAjg4cOHuHfvHjY2NpBOp5HNZhGLxRAMBrG9vd3yMciiNweJvg6kQtDpdJiYmEAqlUIkEhGG+NevX8ft27dx48YNjI6OVt2n+IY9as98M/svFApCLAGbH4vnyeL3xeW/stksIpEIFhYWcPfuXdy5c0d4KFY6t1rIiZuy6JqHRF8n0uGvy+XC5cuXkc/nMT4+Dp1Oh7GxMYyPj9dMiGG06lGuZunEHvNGjsGKUSYSCcTjcSSTSaRSKcFSZ7NZZDIZpNNppFIp4bN8Po9CoYB8Po9UKoXd3V1sbGxgbW2t6vFq5Qm0O22ZoLZWLVEqPSuMmU6nYTQahQg69pmYk14uYpabBRWJX6wGXSaTwf7+Pvb29hCJRBAOhxGJRBCLxZBIJHBwcIB0Oo1kMolkMol4PI5YLCY42ojTRalUol52x0mlgJBWE2OaWfNOJpPw+/3Y2NgQeuIdHByA53nhxQpPMivOhC218rlcTrD2BwcHdR1f7JxspI4/0Rok+nOEeF4tRvwgYHPtRCKBtbU1PH78GA8ePMDs7Cy2t7eFCDexxRfP28XLXyTQs0kl0dOcvgWkgR9iD3g7hvNyxSfZK5fLIZFIIJ1OC2m2zJrm83kkk0mEw2H4fD4sLy9jYWEBS0tL2NzcbHvDTGl/PanTjzhdkKU/5cgFxBwcHCAcDmNrawu7u7tCOCpzih0cHCAQCAhi39raQiQSQTqdVlx6qZJpytI3k0V2HmBCO4pAGbn1cuncXzxSkI4YIpEIlpeXsbS0hPX1dYTDYUH0rEFEJpNBOBzG5uYmfD4fEolE2T6kI5Fqfe8ojPX8UVX0rf4nS5NNxEEg7bqBau1LrvhCrW1PArHwKznrkskkZmdncffuXTx69AhbW1uIxWLCw5kVlOB5XvC0y+WSS4fdtN6tLGh4XwcsvFPc4YUhtsjtfmjwPC8sjbF17/v372NmZgYrKyuIRqPIZDJlCSty8+hGHnxnjUoFRYHK3XiVQqFQIEdesxQKhYqCFk8FAPlGDc08DDKZDEKhEFZXVzE3N4e5uTksLS1hY2MDkUgEyWQS2Wy2LiGfR7ED31QhEj/UxKMkcY8C4huqWvonT54o5mqJhZnP56FSqdDZ2Qmv19vW4+Tz+bLINpY5lsvlkM/nkcvlhCAZ5oxjot/c3EQ2m6143lLO683ezunheaapdfr33ntPUVdWq9WiWCwiEomA4zi8++67+NWvfgWTyVT3PlguN3MCsoo6+Xwe6XQa0WgUwWAQW1tb8Pv9CIVC2NvbQzqdRiaTEQJgWJBMPB7H3t4e9vb2zrTnXS6Lr17Ezk+V6ln3HxZhKMVut0OlUiEWi7V0vueBprz3H3300dGczRkhl8vh8uXLeOONN5DNZoW6a9L66izefH9/Xxhys+ElEz3LA2dLbevr69jY2IDf7xeW06RW/DzRrlWAUumb7j8GgwEOh0N4iLjdbjz33HNQqVTY3NzEzs4OSqUSdDqdbKlxpVLV0qtUKkVZeik2mw03b97EwMCAUNABKHcQsUAUFp7KnGniQBoW4ZbL5XBwcIBEIoFYLIZYLIZUKiXcxGcB9psqOcmOMyhnamoKH3zwAQYGBpDJZKDRaISHQCKRwP7+PkqlkjDvV9qU4Kc//Wnjw3uliv48e7tPCmnUXi2kIcXsPdYrsLu7Gz//+c/x61//Gg6H4yhO+TzQ+PCeFWZUGqwiy3HPoeWW/c5yKKtKpYLVai17GQwGcBxXZn3Fv09aX0/sD4nH4+A4DoODg3jttdfwne98hwTfBGTpiZZgAmW95FiXXbPZDLvdDpfLha6uLng8HrhcLthsNhgMBqGstzRxiPlB2PShUCggm80iGo0iEAjAaDTi5s2bePPNN4VU5lbrEpxjaJ2+GdjNWYt6rbG44utZsuBqtRoOhwNutxs9PT1wu92HLDcTPSsRZjQaYbVaYbPZYLPZhGrAUksvFb3U0rMgpWg0Cr1ej4sXL5bVLshms7Ih02fp+h4FlfrTk6UnyhBHGDIhGwwGuFwuDAwMYHx8HJcvX8bo6Cg8Hg9sNhv0ej20Wm3ZvF3s8GPvief0lebscrAHA4uM1Ol0ZVPPZmoMKARy5BHysMqyGo0GOp0ORqMRNpsNTqcTHR0dcLvd6O7uhtfrxeDgIJ5//nl4vd5DpbuPE5ZvoLS23A1Cw3uiHLE11+l0MJlMsNlscLvd6O/vx9DQEEZHRzE4OAiPxwOHwwGz2Qyj0XjiXXOVHlffCiR6hSIWvF6vh9lsRmdnJ3p6ejA4OIixsTFcuHABIyMj8Hq9sFqth/ZRz5p8K5F41fZJQ/nmIdErEPGcmzndrFYrOjo60NfXh+HhYYyMjKC/vx8ul6uyQ0gUfFTp82rnANRXQPS0FRk969AYiZBFLn24lX3IfSb3ufR9pXvgjwKy9ApEnMDC87zQLJIlGrElNa1WKzj29Hq97H6OanhfS+xk7ZuHRK9QxBVvWZIQC4TZ399HPB5HNBpFKBTC0NAQ3G43nE6n4MjT6/Un6kyjZbrmoSU7QnbJzmq1wul0wuVyCUt2zKNfzbl3XNCSXV3QOj1RG3HwDHsYGI1GOJ1ODA4OYnx8HJcuXToUnCMOnxUH4si9V491ljoIWSceAEIwEIOsfkVI9M1AYbjPEIfhdnd3o6urCxaLBQaDATqdDmq1WgjBZb4A1qbbZrPBbrfDYrEIa/zsISBX104uDJelI+t0Oly8eBF9fX3CdzKZDIXhysBxHImeOBoqJdxYrVZ0dnaiq6sLbrdbSLgxGo1lBUaAb5JmxBWHxHUI5BJuKMOuJo2LnuM4RYr+tKXWiv88azBLb7VahZEBWx1giK29NO+eWfpUKoVEIgGtVouBgQG89tpreOeddzA5OXnsv+kM0XgYLptDKY2TavJx1ob89cAaYUor7jSScMO2UalU4HkeT58+xf3795HNZjE0NASn03m0P+KcQUt2MrCb0Gaz4datWxgaGhI6ugKHb85isYhsNiv0aBfnd4vTR3O5nFAMIhaLIR6PY39/XxHlsth77apTFwwG8c9//hNms/lQuSy1Wi1cW1YuS4n87Gc/k32f5vRVmJqawm9/+1uhMGY0Gj1UT50VahQXxmTVcMXzVrb+HYlE4PP5ZAtjUo/3xjAYDEL1WwDo6urCc889B7VajY2NDaEwJsdxsk7D847f7298Tv/+++8rSvQajQbFYhG7u7vgOA7f+9738Itf/KLhEtjiarjM0jMrv7e3h2AwiO3tbfj9fgQCAcRiMRwcHJSVwGYPCVZAc29v70xXyz2uEtg2mw0qlQrxeLy1Ez4HNFX3/unTp4oRvXi4Km520dvb29bjsIYWrOEFE3kulwPP80LN+0QigVAohOXlZczOzmJ2dpaaXfx/lFjZthmaEj2olx2AZ2Gq1eaxwOH1ZUaz9duy2azQ1mp+fh5zc3NYXFzE5uYmQqFQQ22tzivStlZslMU+YwE8Sr1G+XyeRN8sPM/XjCQ7ihxvnufL4uDX19fx1VdfYWZmBsvLy0IDS/Ewt1gsHhr2nueS3tJAHjHVGo7K0UqBTbnvnnTBzqYaWCp1yY7B1ozbWQpcuu5e6YZklsrhcMDhcGBgYACjo6Po6OiAwWCA0+mEz+dDPB4/1KqarTSkUimkUqlz7cCqtswp97trPfha7b7Tzv0dFVXvZqXGMh/nf5TcNa40arBYLJiYmIBOp8PAwADW19cRDoeFeT6zbAcHBwiFQvD5fMKDodr+pdMWsVgot/38QcP7U47cejdrY82W+5jo2VJiOp1GMBjE8vIyFhYWsLW1pYh+eUQ55Mg7AqRWUNrDrl37Fzun2H5Z4Yt0Oi34HJjFzufzQlEMn8+H5eVlzM/PY2lpCZubm0gkEi2fmxhp6CwLwjmPEYZnCRL9OUJcsUYawipuFVUsFpFIJLC2toYnT57gwYMH+Prrr7G9vS1EAvI8L6x5s2hC9l0mXHZM4mxBoj9mmICAww66VkYCzeSO7+/vY3t7Gz6fD9vb24LXn4mevViMAIsuTCQSSKVSwrRA/MpkMjg4OKjr+OK0VxoBHB8k+iOgVCohkUggnU7DaDSWhYSetsIOzJLLvXieFzz+LAowHA4jFAohGo1ib28P+/v7wgMgmUyWRQsmk8m6HwDE8UGibzPFYhGBQABffvkl5ubmoNPpMDY2homJCQwMDNRc5pP6AJql0v+fnB+gHgqFgpDGGovFBLGzMOFMJiOEFLMlwYODg7JRQyqVQjgcxsbGBlZWVqomFNW6TuIpRrXfSxymkugpy65OxIEWpVIJu7u7ePToET788EN8/PHHUKlUuH79Om7fvo0bN25gdHS0ptjaMQqotI9m963RaGCz2WCxWODxeATRiYfl0nm/WJiZTAaRSAQLCwv417/+hVKphIWFhYrHqyeNmYTeXkj0dSC2ygCQy+UwNzeHjz/+GJ9//jk2NjYAQIij9/v9GBgYgNlsFppJmEwmWCwWoTec0Wg8dAzgaKYDUqefFLETkP1drvxUvfT398Pj8cBiscDtdmNjY0MYKcRiMQQCAcGZ2Kygpe2s6cFQPzS8rwNmydg6eCKRwJ/+9Cf88Y9/xOPHj4UKO2q1WqgHZzQaYTAYyspGeb1ejI+P4+rVqxgfHy/rB8dEeZRlpWukUbf1WIVCAfv7+0gmk8jn8ygWi4jFYlheXsbMzAw+++wzPHz4kER/hNDwvkXENxXP89je3sbS0hJyuZyQ+MHzvODcEqPT6eByudDb24vV1VWsr6/j4sWLuHDhAvr7++FwOA7FkB9FLH+9+6u0TFfr3wxWL89ut5f1kQeAwcFBuFwuOBwODA8PY3d3V9iX+LgsnPjg4EBwFPI8Lzgb5XIMmH+AHgLVIdE3QalUQjabFTzWtW6wXC6HUCiEVCqFra0tTE9Po6+vD2+88QbeeecdXL16tayGPCvCcVKe/3r8BNWSSaqdd0dHB15++WUMDw8jkUgIoySx6AuFAvL5PBKJBPx+P9bW1rC1tYVEIoFwOIzFxcVDD1bgm9qGUucfUQ6Jvo2I58YADlkuVi8OAHw+H1KpFIBnYbMTExPo7e0Fx3FlKaFHPeSvRj0NKCshF0DEhuQsiagWxWIRfr8fKysr8Pl8wlLiwMAAlpeXhVHW7u4udnZ2DoUYi7PsTjrj7TRBom8BueGutMBDNYszNzeHbDaLtbU1fOtb38LNmzdx+fJl4XOW5XgUQ/2jph3nq1ar0dvbC4vFgpGREWGpcHd3F8lkElarFdlsFh999BF+//vfHyo3xnEcVCrVobqFSodE3wLim0hcv70WrNwTz/NYXFxEKBRCLBYTqudMTEzAaDQeahF91m7cSg8r6fy92nfrGRlotVrMzs7i888/F5pvRKNRSi6qAIm+SbRabVNVVuVEEIvF8ODBA8RiMczPz+PmzZu4ffs23G63sI3YWp3kfL9dVBM9Gy3V+xsvXbqEX/7yl/jRj34Eo9GI2dlZ/OEPf4DP52vrOZ8XSPRNoFKpoNfrYTab63bmMUqlkmxxklAohFAohLm5Oezs7ECv1+Ptt9+Gw+FAsVg8V2WcxRWFG0Vu6tTR0YHvf//7wvusxNhf/vIXAM/qEGi12jNVavwoIdE3gVqthtVqRUdHByKRCIDmosbYEFa89BSPxzEzMwOe57GwsICpqSlcvny5zOoDEJxYcq/zRKVKQ6XSs5ZXarX60DRoeHgYP/zhDzE2Ngae54WciPNcQagRSPR1IBWTRqOB2+3G4OAgdnd3BeE3ilyUnEqlQjgcxj/+8Q88evQIPp8PuVwOk5OT6O7uFrZjTqrzjnRFREy1uP333nsP7777bsXvKhkSfZ2IbxyO4zAwMIBLly4hGAwiFouVedpbsfrAN9ZsZ2cHn332GdLpNP7zn/9gaGgIk5OTuHLlStUb+aSDU6SjjqMWHVsSZdVwDQbDuRz1tAsSfR1Ibx6O4zA8PIzJyUksLS3h66+/Ltu2GcFVio1fWVnBxsYGtFothoeH8YMf/AB2ux2Dg4MV98U6vp4UxyV28fFYNyGiNiT6OpEO7wcGBhCLxdDV1VXmIOI4DrlcriXRsUq44gIXAPD48WNYrVaUSiUMDg4KyTwulwsejwe9vb3C/PU0WblKCT9SD32lh4V4Hl/NdyF+r1IHHCUh9XUwSPQNwIaRzPPc39+Pjo4OQaDtPE4lT/ODBw+wsrICnU4HrVaLzs5OjIyM4OWXX8bU1BQuXrwIm83WtnM5SuQEX+/2tWglS/C8Q6JvELG1slqt6O3thdfrxfr6OgAIASHS+XkrsBuY53kcHByUValZXV3F5uYmdnd3EQwGMTs7i87OTuj1+rKbXs46VoocrFTei73kLDeLH9BqtbBYLLDZbHA4HLDb7WVdaJqh0nebjf9XOiT6BpEO84eGhjA1NYVMJoNAIHBou3aIvlYCSTAYxL179zA/Pw+TyQS9Xn/IkSZXsVZcDENuFYF9hy2Lse+zDDexw1Cj0UCn08Fms8Hr9WJ0dBQvvPACLly4gL6+vrbHGVA8ffOQ6BtAzloODQ3hrbfegsViwePHj7G6uopIJNL21lLS8lfSXHK5lN6TgOM49PX1YWxsTCiX5fV6YbPZoNfrBasv/h0ajQYGgwEGgwF6vV54wADfZNyxxp8cx8HpdMJsNpddUxJ//VARjRYolUpIJpMIh8PY2dnB/Pw8Pv30U9y5c+eQ1RdnzrW6pCbNvT9taLVaYXjPSm9xHCcreDY68Hg88Hq96O7uhsPhgMFgQKFQQDqdRiwWQzQaRTQahd1ux40bN/DSSy8Jx2NBOiT8Q1ARjXbCrIvNZoPNZsPIyAief/55wYk2MzODUCgkFHxoZwhopeW9o/La16q4I/UN8DwviLQeDAYDent7MTg4iP7+frhcLhgMBhSLRaRSKaHEVjAYRGdnpxAn0dXVBQAk+AYhS99GSqUSAoEA5ufnce/ePXzxxRf46quvsL29XfE7bHhbaX+N1IkXi17sxKtnNFCtnx07F7njSbdpdgSj1+tht9ths9lgNBqFa8KG9fF4HHt7e+jo6MDt27fxwQcf4OWXX4bH4ynLmyfxl0GW/qhg4lSr1ejp6UFPTw+GhoYEi/Xo0SPs7Owgn88LZbVYb3m5sk+tnAcTXaP7bOYcagm8mgCl381ms0LSUTUCgQD8fj+CwSASiQS6urrKHlgk/NqQ6Fuk0lLXwMAAbt26hb6+Pvj9fsRiMRwcHGB3dxeLi4uYm5sTlvkaQeqFP41UC7Jhr1b8Gk6nE+Pj4+jv7z8Uf3+ar8tpgUTfIuwmkw7RVSoVxsbGMDY2BuDZDZ9KpbC2tobp6Wk4HA6YzWb4fD4kk8lDFqqSINo5MjjNiK+rWq0Waul5PB5MTk7i2rVrMJlMAJ5VGGo1FkBJkOjbjLRcNkOlUgn95TmOg8fjwdTUlNBXjm3DLCHrPLuzswOfzye0pT4vGI1GmM1mmM1m2Gw2OJ1OuFwuOJ1OWK1WGAwG4RqyKVEmk4Hb7cbrr78uCB4g694o5Mg7AVhGmLQ7DKNUetaDfmdnB0+fPsX9+/fx5MkTLC0tIRAIHKoFd9rR6XTQ6XTgOA4GgwEWi0WoR9DZ2Ynu7m709/cLr+7ublitViF9WCxqFihUqx0WAaCCI49Ef4RIW0FV89RXwufzYWlpCaurq/D7/YhGo0LvOKD5rL6jQrx6wIbmWq0WWq0WHMdBp9MJVYesVivsdjucTie6urqEV6VEESmFQuFcVRQ6Akj0J0ElR1+9FAoFoV1WPp8vyx6Tq75biaN8OFT7XdJwYGl4L2uMwR4MlCTTVkj0pwFpPfhq1WCV6pwSOyur5QQQNSHRnybqLQGtROjatA0S/VmknlHBWUQufVf6PtEyFJF3FpErNHFWxN9oYQwS/PFAlp4gzi+yT1HyhhCEwiDRE4TCINEThMIg0ROEwiDRE4TCINEThMIg0ROEwiDRE4TCINEThMIg0ROEwiDRE4TCINEThMIg0ROEwiDRE4TCINEThMIg0ROEwiDRE4TCINEThMIg0ROEwiDRE4TCINEThMIg0ROEwiDRE4TCINEThMIg0ROEwiDRE4TCINEThMIg0ROEwiDRE4TCINEThMIg0ROEwiDRE4TCINEThMIg0ROEwiDRE4TCINEThMIg0ROEwiDRE4TCINEThMIg0ROEwiDRE4TCINEThMIg0ROEwiDRE4TCINEThMIg0ROEwiDRE4TCINEThMIg0ROEwiDRE4TCINEThMIg0ROEwtDW+Fx1LGdBEMSxQZaeIBQGiZ4gFAaJniAUBomeIBQGiZ4gFAaJniAUxv8DRr8rWxYZSJMAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 70\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 71\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 72\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "algorithm = nlopt.LD_MMA\n", "n = Nx * Ny # number of parameters\n", "\n", "# Initial guess\n", "x = np.ones((n,)) * 0.5\n", "x[Si_mask.flatten()] = 1 # set the edges of waveguides to silicon\n", "x[SiO2_mask.flatten()] = 0 # set the other edges to SiO2\n", "\n", "# lower and upper bounds\n", "lb = np.zeros((Nx * Ny,))\n", "lb[Si_mask.flatten()] = 1\n", "ub = np.ones((Nx * Ny,))\n", "ub[SiO2_mask.flatten()] = 0\n", "\n", "cur_beta = 4\n", "beta_scale = 2\n", "num_betas = 6\n", "update_factor = 12\n", "for iters in range(num_betas):\n", " print(\"current beta: \", cur_beta)\n", "\n", " solver = nlopt.opt(algorithm, n)\n", " solver.set_lower_bounds(lb)\n", " solver.set_upper_bounds(ub)\n", " solver.set_max_objective(lambda a, g: f(a, g, cur_beta))\n", " solver.set_maxeval(update_factor)\n", " x[:] = solver.optimize(x)\n", " cur_beta = cur_beta * beta_scale" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can see that the optimizer quickly finds a topology that works well and slowly refines it as we continue to \"binarize\" the design." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure()\n", "plt.plot(10 * np.log10(0.5 * np.array(evaluation_history)), \"o-\")\n", "plt.grid(True)\n", "plt.xlabel(\"Iteration\")\n", "plt.ylabel(\"Mean Splitting Ratio (dB)\")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can view the final spectral response to verify that the design performs." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Starting forward run...\n" ] } ], "source": [ "f0, dJ_du = opt([mapping(x, eta_i, cur_beta)], need_gradient=False)\n", "frequencies = opt.frequencies\n", "source_coef, top_coef, bottom_ceof = opt.get_objective_arguments()\n", "\n", "top_profile = np.abs(top_coef / source_coef) ** 2\n", "bottom_profile = np.abs(bottom_ceof / source_coef) ** 2" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure()\n", "plt.plot(1 / frequencies, top_profile * 100, \"-o\", label=\"Top Arm\")\n", "plt.plot(1 / frequencies, bottom_profile * 100, \"--o\", label=\"Bottom Arm\")\n", "plt.legend()\n", "plt.grid(True)\n", "plt.xlabel(\"Wavelength (microns)\")\n", "plt.ylabel(\"Splitting Ratio (%)\")\n", "# plt.ylim(46.5,50)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And of course we'll visualize the final topology. We'll plot the minimum length scale as a circle in the upper corner." ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "opt.update_design([mapping(x, eta_i, cur_beta)])\n", "plt.figure()\n", "ax = plt.gca()\n", "opt.plot2D(\n", " False,\n", " ax=ax,\n", " plot_sources_flag=False,\n", " plot_monitors_flag=False,\n", " plot_boundaries_flag=False,\n", ")\n", "circ = Circle((2, 2), minimum_length / 2)\n", "ax.add_patch(circ)\n", "ax.axis(\"off\")\n", "plt.show()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.8.13" }, "latex_envs": { "LaTeX_envs_menu_present": true, "autoclose": false, "autocomplete": true, "bibliofile": "biblio.bib", "cite_by": "apalike", "current_citInitial": 1, "eqLabelWithNumbers": true, "eqNumInitial": 1, "hotkeys": { "equation": "Ctrl-E", "itemize": "Ctrl-I" }, "labels_anchors": false, "latex_user_defs": false, "report_style_numbering": false, "user_envs_cfg": false }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": {}, "toc_section_display": true, "toc_window_display": false } }, "nbformat": 4, "nbformat_minor": 2 }