{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Fourier Fields Optimization in Waveguide Bend\n", "\n", "Previously, optimization of eigenmode coefficient in a waveguide bend was presented. We set up a similar example but directly optimizing Fourier Fields instead. We point out a few subtle differences.\n", "\n" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import meep as mp\n", "import meep.adjoint as mpa\n", "import numpy as np\n", "from autograd import numpy as npa\n", "from autograd import tensor_jacobian_product, grad\n", "import nlopt\n", "from matplotlib import pyplot as plt\n", "from matplotlib.patches import Circle\n", "from scipy import special, signal\n", "\n", "mp.quiet(quietval=True)\n", "Si = mp.Medium(index=3.4)\n", "SiO2 = mp.Medium(index=1.44)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The code for eigenmode coefficient uses Yee grid directly. The implementation of Fourier fields doesn't use Yee_grid directly. We thus increase the resolution from 30 to 40 to achieve the desired level of accuracy." ] }, { "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", "\n", "waveguide_length = 0.5\n", "\n", "pml_size = 1.0\n", "\n", "resolution = 40\n", "\n", "frequencies = 1 / np.linspace(1.5, 1.6, 3)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.20124611797498096\n" ] } ], "source": [ "minimum_length = 0.09 # minimum length scale (microns)\n", "eta_i = (\n", " 0.5 # blueprint (or intermediate) design field thresholding point (between 0 and 1)\n", ")\n", "eta_e = 0.55 # erosion design field thresholding point (between 0 and 1)\n", "eta_d = 1 - eta_e # dilation design field thresholding point (between 0 and 1)\n", "filter_radius = mpa.get_conic_radius_from_eta_e(minimum_length, eta_e)\n", "print(filter_radius)\n", "design_region_resolution = int(1 * resolution)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "Sx = 2 * pml_size + 2 * waveguide_length + design_region_width + 2\n", "Sy = 2 * pml_size + design_region_height + 2\n", "cell_size = mp.Vector3(Sx, Sy)\n", "\n", "pml_layers = [mp.PML(pml_size)]\n", "\n", "fcen = 1 / 1.55\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, Sy, 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": "code", "execution_count": 5, "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)\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": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "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", "left_wg_mask = (X_g == -design_region_width / 2) & (np.abs(Y_g) <= waveguide_width / 2)\n", "top_wg_mask = (Y_g == design_region_width / 2) & (np.abs(X_g) <= waveguide_width / 2)\n", "Si_mask = left_wg_mask | top_wg_mask\n", "\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": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "def mapping(x, eta, beta):\n", " x = npa.where(Si_mask.flatten(), 1, npa.where(SiO2_mask.flatten(), 0, x))\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", " # interpolate to actual materials\n", " return projected_field.flatten()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "When building the geometry, we removed the symmetry requirement to have more flexibility." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "geometry = [\n", " mp.Block(\n", " center=mp.Vector3(x=-Sx / 4), material=Si, size=mp.Vector3(Sx / 2, 0.5, 0)\n", " ), # horizontal waveguide\n", " mp.Block(\n", " center=mp.Vector3(y=Sy / 4), material=Si, size=mp.Vector3(0.5, Sy / 2, 0)\n", " ), # vertical waveguide\n", " mp.Block(\n", " center=design_region.center, size=design_region.size, material=design_variables\n", " ), # design region\n", "]\n", "\n", "sim = mp.Simulation(\n", " cell_size=cell_size,\n", " boundary_layers=pml_layers,\n", " geometry=geometry,\n", " sources=source,\n", " default_material=SiO2,\n", " resolution=resolution,\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Defining mpa.FourierFields is similar to define mpa.EigenmodeCoefficient, but we pass a component of interest intead of mode number. We can define several components, and let the objective be a function of them simultaneously.\n", "\n", "The first axis of the value returned by Fourier Fields corresponds to the index of frequency; the rest has the dimensions of the monitor. In this case, it is 1D, so we simply provide the index of point at which we would like to optimize the fields.\n", "\n", "The objective function can involve several fields component, at several frequencies, and involve several points. Since we specify the points by indices, it is probably more common to have an objective as an average/sum of values at all points, where we don't need specific indices and just use `:` instead.\n", "\n", "Also note that the optimization problem includes a wider frequency spectrum, but the particular objective defined below depends on one frequency only. Alternatively, we can define a single frequency from the start." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "Ez_top = mpa.FourierFields(\n", " sim,\n", " mp.Volume(\n", " center=mp.Vector3(0, Sy / 2 - pml_size - 0.1, 0),\n", " size=mp.Vector3(x=waveguide_width),\n", " ),\n", " mp.Ez,\n", ")\n", "ob_list = [Ez_top]\n", "\n", "\n", "def J(top):\n", " power = npa.abs(top[1, 7]) ** 2\n", " return power" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Just as we increased the resolution, we decreased the decay_by to $10^{-6}$ to increase the accuracy of the adjoint gradient. We also increase the number of iterations for each `beta`." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "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-6,\n", " decay_fields=[mp.Ez],\n", ")" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "rho_vector = np.random.rand(Nx * Ny)\n", "opt.update_design([mapping(rho_vector, eta_i, 1e3)])\n", "opt.plot2D(True)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 12, "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)]) # compute objective and gradient\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", " ) # backprop\n", "\n", " evaluation_history.append(np.real(f0))\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.savefig('media/bend_{:03d}.png'.format(cur_iter[0]),dpi=300)\n", " plt.show()\n", "\n", " cur_iter[0] = cur_iter[0] + 1\n", "\n", " return np.real(f0)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 1\n", "Starting forward run...\n", "Starting adjoint run...\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/usr/local/lib/python3.8/site-packages/meep/adjoint/filter_source.py:91: RuntimeWarning: invalid value encountered in true_divide\n", " l2_err = np.sum(np.abs(H-H_hat.T)**2/np.abs(H)**2)\n", "/usr/local/lib/python3.8/site-packages/meep/adjoint/filter_source.py:91: RuntimeWarning: divide by zero encountered in true_divide\n", " l2_err = np.sum(np.abs(H-H_hat.T)**2/np.abs(H)**2)\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "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": "iVBORw0KGgoAAAANSUhEUgAAAQkAAADnCAYAAAANUaMiAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/d3fzzAAAACXBIWXMAAAsTAAALEwEAmpwYAAAgWklEQVR4nO2du29kW5nFV73fLj8aJO4VCBGRMBpIiJCGfPLJCIaIfP6QiUhIJhoRIwIiJBICJiRpkSDNXCENj2tX2fV+TYDW9jqfT+2+fW97u+f2+kklt+3yqVNu77W/926cTicYY8w5mi99A8aY9xuLhDEmi0XCGJPFImGMyWKRMMZkab/h+059fIk4HA742c9+ht/85jdot9t4m8xWo9HAfr/HD3/4Q/z4xz9Gq9V6xjs1L0Dj3DfeJBLmS0Sj0cDr16/x85///HNf42tf+xqaTRugHxL+3/7A+KILvN32vvKhYZEwb4WL7z48LBLGmCwWCWNMFouEMSaLRcIYk8UiYYzJYpEwxmSxSBhjslgkjDFZLBLGmCwWCWNMFouEMSaLRcIYk8UiYYzJYpEwxmSxSJi3otE4O8DIfEmxSJi3wvMkPjwsEsaYLBYJY0wWi4QxJotFwhiTxSJhjMlikTDGZLFIGGOyWCSMMVksEsaYLBYJY0wWi4QxJotFwhiTxSJhjMlikTDGZLFIGGOyWCSMMVksEsaYLBYJY0wWi4QxJotFwhiTxSJhTA0Pmz1+/fp/cbvYvvStvDjtl74BY95H/vU//gu/++On+NarEX79b//00rfzotiSMKaG//l0CQD45G6F/eH4wnfzstiSMKaGf/+Xf8R//u6/8c//8BHarQ97L7VIGFPD9791g+9/6+alb+O94MOWSGPMG7FIGGOyWCSMMVksEsaYLBYJY0wWi4QxJotFwhiTxSJhjMlikTDGZLFIGGOyWCSMMVksEsaYLBYJY0wWi4QxJotFwhiTxSJhjMlikTDGZLFIGGOyWCSMMVksEsaYLBaJD4hGo/FeXcf8/8DTsgtyOp1qP+aIC/JNP9NoNCrPOR6P6bFer7Hf73FxcYHD4YD9fo/j8fyZEo1GA41GA81mE71eD71eD41GA7PZLP272Ww+ucfnEBFeM340z49FohC6KA+HQ1q4uqDf5WI7Ho/Y7/dYr9eYzWb405/+hD/84Q9YrVb47ne/iz//+c94eHjAdrtNQkFR0IXY7XYxGAxwdXWFjz/+GO12G7/4xS/w8ccf4+bmBqPRCN1uF61WKwlGs9lM/47XVIF8k1iqSLVarfTg582mDeESWCQKcTqdsN/vsd/vsdvt0r+5WM7tlCoUn8Xy0OfudjusVivM53Pc399jvV6j0+ng4uICm80G7XY7iQQXdavVerI4h8MhptMpRqMRTqcT7u7u0O12sd/vMRwO0e/3K4u31Wqh3W6nr6m1wfdLgdSHwnvgtTqdDrrdbkWQTBksEoU4Ho/Y7XbYbrdYrVbYbDbYbrfY7/fpObo4Cf8d3YLc7svv73Y7rNdrzOdzrFYrnE4n9Ho9jMdj7Pd79Pt97Pf7tBg7nU5a5CoSnU4Hg8EA4/EYjUYDq9UKn376KdbrNXq9HtrtdkUguJi73W66pt4XramcRcVHt9tFv9/HYDDAcDgEAHS7XbTb/tMthX/ThaBIrFYr3N/fY7FYYL1eY7fb4Xg8PjHTo68fd924A0fL43Q64XA4YLPZYLFYYLFYYL/fo91uYzQaAQBGoxGOx2PapXu9Xvo3xUnFot1uJ+tjNpvh/v6+cn/NZjNdp9/vo9/vp2u2Wi0ASOJAS4qf6/vge+h0OknULi4u0mvwdUwZLBKFoEhsNhssl0vM53MsFgtsNpvkbnABRJ9eBUFjGjkznc9lXGK5XGK326HRaKSg4+FwQLvdTnGHwWCQFna73U6Llbs9FzQtlO12i81mkxY78Liwh8NhckV6vV6yJigQ2+02uV1qSejvod1uYzAYYDqd4ng8pnvtdrvZgKt5t1gkCsGYBN2NxWKB+/v7ikjEoJxaEtxtuVB1B9YFo64KF7Yu6tPphFarlYSi3W6j3+9jOBxiPB5jNBqh3+8n35+vTVdpuVxiuVxiu91ivV7j4eEBq9XqybWHwyEGg0EKbHY6nXRPvBbdrRg41d/DcDhMFhDvUS0P8/xYJArBXZ87qS6U4/GIVquFw+GAVqtVCSSqVaA/y92bu3zu9eh2aLBU4xB0D2hNUCgYazgej9hsNinYeTqdkrhRgNbrdbImer1eev52u03XoiXB9873oVaExkQ6nQ5OpxO63S6Wy+UTq8WUwSLxHhFThioSwGPQTwUj+vTxudypt9ttWqAUCfr4+vOMPWgmAfj7wl+v12g0GsmF6XQ6T1wIABX3gUJVZ0nw3iiKrVYrPZ+BSQppdE1sSZTDIlEIXfTqc3OB8mu6k3KBciGrhQFURUMtCv36brd7YoFwgXEhdjod7Ha79FzeI1OP3NWbzWayHpbLJfr9fgpKxrSmBjwBpOvqvfA98Z41YBvrKeJ7NOWwSBREBUKLgygSMSah6c8oEEA1nag1FxrcpPWgC1ODjABSxoKCFRc57xH4+2KnW0JLI7pErVar4lLpoo/Cxdeia6EWgv5MrqbCPC8WiRcgCkLcRWMBUl0qVMWBbgcXHUWF34sP3aWbzWaluEtdj1jZ2Ol00oPFUrQU9J4AVArHaAnxefwerQLGPdSqqHu/USxMGSwShVBXI7odaiVodiLupJrV0EUfA5n6HFoS/MhrNRqNFDDVn431Cur28Plq5cQAqcYUNH7C66qgURQ6nU6yQM65GfH+TDksEoVRqyD2NQBIhVVcQDGroVkRrVOgAMQUaXQzuKNTlGIg8FzwVO89Vk2qm1L3XvmeosBRrFQgVBjVjYkxD1MOi0RBuGjqCqYAVBYNP6fbwEIsphvX6zU2m00SDhUJbSRTNyJmHXTn1vqEWNgVYwq8J7VW9Dp0RXIuCe+HKd86VyIGLO1qvAwWicLU7dAkBue4mJgCpDDwI0UiljhHkYjmOgOFsYmK2QxmLM7ValCUaMXQ6tH6hl6vl9KozIpE8ePX1Irg9xjHyPV4mDJYJF6AmA6NC0R3a3Uv1IJgoZK6EjTho8tR5w7w9bXDkgtbA5OaYVH3RQWKwsPiKy3MohhRTNjQdm6xq3WhAc1cKbp5XiwShVGXIxZM1VVWMu6grgYFgmlLLUqK6c9Yuq3BUwpEbMhil6VmWGKJt3axcmGzgnM0GlWqNpn23O/3lawOrYiY2YmuTZ1AWCjKYZEoiAYAcy6HVjDmBEKtCM0ixKxC7O1QceCOzwe7NmlJMLhJK0DvZ7PZJBeCLgtbysfjMfr9PprNJvb7fUq1MiWq8yu01VzjM/xd1MUlTDksEoWpq7xUlyMGHNXd0OxGTCXGwJ4Kg4qT9muwEYs7P7tA4wwI3hNFa7lcpqYuCgDbt0ejESaTCcbjcWoiYyk4xYeVnsfjseLu1HWe1gU2TVksEi9AzoqI8Qh9RHGIAT1dRPTn9fW4a9OC4I4fuz9VJLibMybCLlCKBF9Du0lHoxHG4zG63W6KV2y32yQSGjTVgKmWcGvaU4OvpjwWiRcmmtfnKiXVpYj9GnV1DgDSotMFSYHgjs9dn7MfohWhrg9b3BeLRerKZE9Gq9VKcQ29Fn+esQgVBH7Oh7o2wOOcTrWMbEmUxyLxQtRlNGKxUbQkNM2pMYe6rEVdvQNdjNFohIuLC0yn0yQSGo+IGQ0KxMPDA+7v79MMCcZENHUarRFaEry3ZrOZekbiyLzT6ZRcEwqEFmFZIF4Gi0RBVBQ0/lCX0dCgpcYj4hDdGJTUYiYuSPX76WZQJC4uLjAajSpj5urcjMViUREJHWKji/9cwJPvWZvGtCYDeLRaNI0LwC3iL4xFojAxQKnFSRQG7tzMaMRJTrHASFOVcbq0BikZqByPx5hMJri4uEhWhA6ZAR5NfU6jenh4SFO36WqwdLpOIPgeKXBM1/IeteCKwUkOstHfTSwdj3Ec8/xYJAoRYw7avl1XDxHTntqDEedCssQaQFqwjD0wTqBpTgYqR6PRk1gEr6duBkftcYAv74eWAWMKtF7oNhwOB6zX6yR4tDxidSfTpGrBUAy1JDymkE0ZLBIFiQVP5wqmVqsVlstlEgl1N2L9g3Zkar0BRYIDaZni5Oc6qDYGK3lfvBe6GioQANL4fFop3W437fyHw+Okbr4XpkuBp6Pq+PuJwVrtL4kt9KYMFomC1LkZFAC6GbF4KloSGtMAqoNstC+DroVmLygKamHE6kqKGO+FAsGFzt2dloNmM9inwffGdCnFhXURtFj096JxiFj7oc1nFonyWCQKEbMZsZ2bC0vFQmMSdUNhACRR0JoI7vBMdcZiqdijQfO9rmiKNRHr9TrFIOgmdLvdSl2Eug7qqnCcP2H9hD7OzcaIDWh1k8TN82KRKERs3qqrkOTXtHhIU6IxFhEbxLjD66lXdDFUICgOOuCGi1LdDBUJntmhVZP9fr8S12A/BoOQGo9gOTZTmrFiVJvGeA2gWkYeu1NNGSwShVBzmgs6lmjrH34UlVydgPr3sWEruhZ1cQANqNKCeHh4SG6GBhz583QzVCAoDio22uPBZi+KAGMbjF/oMF4GY3V6t4qEKYdFohBcCNw5tY+CrkY0qblIuJvqfErg0dXQszejFRGtBx1Fp92WvAe6CPP5PBVNsWKSr6cCMRwO01kcjK9o6pMPZkJi6blaEXo2CFDN1OgxhLYkypIVCReuvBvYu6DZAY0l6G6+2WzQ6/WenG7FnVjRXZZByslkkuIPWkUZ05t6XW0B18pKnlfKRiuKD/s9hsNhymjoeR51RVT8PcRybwCpYIvCwuerZaTTuW1JlCUrElbrd8d+v8ft7W1apI1GIx16q1Oz1VcHHtOMWlmpP6PpzslkgsvLS1xcXGAymdSWWquprzu9xiEYbGQBVKPRSOXc4/EY0+k0tYLThaBbAaAifABScFQtJd6LBkopjFqZqZaEpmr9t1mOrEj8/ve/x8PDg/9D3gG3t7e4vb2t1DLQjdjtdrVuAE17jWPowT28BmMQ7MnQSko9hYtFTjF7ogLBj3QbaEGwDTyWctOKYGBTrU++P6YuueC1r0MrTimQ+rM6MSsOwjFlyIrET3/6U/zyl79MB6eYz0e73cYPfvADfO9730Ov18N4PK7sqnGWAkVgMBhUJj9px6RaEprRYJyAVoSe56mBSS2QiqlOfc3BYJCEiCXdFCDGItTKYaaFoqCugy52AJWYhGZvKCp63KC6GrYkypIVibu7O3zyySel7uVLzTe+8Q189NFHuLq6SguOC4aLSkfbdbvdym6uC0azDHoimNYvqPDQ/Gdg8v7+HrPZDLPZrNLVSZOfmQwGPXVWBMWn1+ulmgiixU9sS+fsiHhPcWaExkmY7dHUp2skXo6sSOg8AlsSbw9/b81mE/P5HH/5y1/Q6XRwdXVVKUric7VJq9frVYqXtPQ5pgLjz+pi0kVIK2I+nyf3Zz6fpwClipLu3rRSdA6mVk1qTQdTl3oEoFoRrMjUAC6AJ8FNFYhYNm7KkhUJD/r4YmiK8eHhAXd3d7i6ukqLg7u/NmoBjyKh1ZOxjLqutDl+zkAoP7LMej6f4+7uDnd3d5jP5ylIGSsqNY6gVoW2gmsPCuMJnU4Hw+Ew/ZsCp6nSZrOJ7XabLAvtQaEQRoGwSLwMrpMoBEe/6fBYLg4AaQYkgFRPEBepmuxqKcQZFXEeA+MRMYPBtm9aEcBjJoJCpQVZGk/QVnIdyqtVmXXpS3aGnk4nbDab9J5i2bYKS3yvnitRFotEIWhi08zWqVJadamLInZZamYgnsUZB9hQKGIGQVvR9XhA4LHugjETBipjloRCpM1oTJcyyMk4hp5A3mg0UmEW0660kNj8pQVbakXEcnZTDotEIeLsCP6bolDXDh2rKeNgFwBPdlUdzKLiUXfcH4VIZzz0+/00lIaFWayH4PvgNXUwLi0kChh7RljYxZ+nxUDBYkUnR+4Dj6nf2Hped1yheX4sEoXgzqsLi+nFWEmpdRB1mYzon8eJTVr6rFOsVIjoCgCouAkckDudTjGdTlMWhmlUVkRqlycnZ9NFYiZEp3BTjNjjoQVUFKntdgsAlfcNILk1WkthkSiHRaIQOoRlPp9jPp+nRRozATFQl/PHz7Wfx50XeBQHWguNRgODwSAt3jjejlWb2rwFoFKhSYGgFRHdFaZMdcT/fr9PQsIgLkvRYxm3Tshi7MQiURaLRCGYXXh4eMBsNsPt7W3KbND/ZrAPeAxeMqag0f94/F4cZBPnMugwmsFgkPpAhsNhZYhMPNFLTX7GLjSuoWdvxDJqTdnSpdLJ2hQSplx7vV4lTsLX07kWzMLERjfzvFgkCsE/+Pv7e9ze3qbuyePxmNqtWRuhwUygOrkpFhTFcXiaktQyZy5Emvaj0ajSbam1DDpvQuc/xBkRKhC0FmJNh86t0IAsn0cXhTERDsNl7Ib0+/3KGDyLRDksEoXQGQvz+TzFI+if0zzXKdi64GNcgsTRbzEOwdoHntPJGoYYvNRHvOc4io7VmcxUaLpSg6yxYzP2dWiNCF0qChd/V7SOut1uGuWvGRnz/FgkCsLg5XK5xGw2q2QM1ArY7/eVXZgxCj1wB3h6+leMWWhMg/GPWNmohUzaKcq6ClpArKvQg3lYPs4KzLoCqDizIsZItAeFz6dA0L2g6FAkbEmUJSsS+sfo/5TPjw5yBZB6KGazGYDqlGjOVqhbaHq9uqlWcdFx4WqGJGZJYraEOzehWOi0Ks1IAI/t7FzM8ewOXvdcKlYDr3oY0P39PXa7XXJNtH3df4/lyIoE/Vn/h3wx6HfT3Ace6wQWiwWAxwXFKkQtXIoNUMCjf68zJ1lXEYuvtKMyplRVIHgPTHECqAgX4xBc+HztKBCMYxCdYREPF9LWdVaDUowWiwW2220SCM1umHJkReLq6gpf//rX3Sr+BTmdTqnFGkDqjKQoMJPBXZsLWDMW3IW1v0MXKAOfo9GoUvfA51JAtEU9Bkd1QjU/12yD7uBRkFTYNK4QB/lqrESFkZYD08Ocr6nTq9SK8N9jObIi8ZOf/AQ/+tGP3FjzBWm1Wvjtb3+LX/3qV+h0OpUzNLlIKBIsTebnekSeugFaIcmBM6PRKL0eMyXA+eIsioTOhNBCrFgGrVkIjuzXuRVAtfycAqGFUHFcn4qEtq/TcqBboy3ppixZkfjOd75T6j4+CF6/fo3j8Yj5fF4JwNEXZzBQd1ldYHw+Fzkbo+LgWF2QdTturM6MwqC7vdZYsPKSgdBzAqHvSQ881pmdmpHRIrPZbFbJYvC5Os3LMyXK4kG4zwz/wEejEb797W9jPp/jr3/9K2azWaVFWzs21cznjqwDYrloNUvAYqh4kI/u3ioCXPyaQo1j5LSGgYVYrIvQUXS0iCgqWlNR19SmQlE3xp8pVhZaxVmXni1RFg/CfWb4OxyPx/jmN7+Jv/3tb+nrfND90JO89BTx2K/QarVSU1Ssj9DhtnqEoGZK4iLT+IOeXM7ncho3hYnui06Z0vhJPOw4XpOwRkRTnkyvqgWj55qyOtV/m+VwnUQh+v0+vvrVr6ZhK9zVAaQOyFgURZdDU4XnFodmD7hINdugMY84ULaueEvFgDUWrBCNvRW0PuoG7OqYfH0fFAwVRD13g+lZBmOn02nqJdE0q3l+LBKF6Ha7mE6n2O/3qbVax+av12sASKXXXCjnaiK42GN2YrvdYrlcVlKo3KnjIT1xocWYBF+H4sRsRWwi04OO6SrwRK44OyMKkmZPNGZB92k8HuPy8hLX19e4vLysdKWaMlgkCsHR9DxER+MRWlVZ197NcfUA0sLVKkl1NSg2NOV1sIv2U6hFURcM1HhErObk4qalEE9Aj+6FPmjxqPXB6xG6GKPRCJeXl7i5ucHNzU1qXbe7URaLRCG4uPW0bwbndIGeK6/WdKZOsCJaRk2XY7VaPalliENsYim1njLO1+LYOd6HVmFqw5emPTVtSiGjwGgdBp9PVCCm0ylevXqFr3zlK7i+vsZkMkkDcCwS5bBIFCJ2PzIQxzSfxgfiaDuOrtfPVVjiLEs9t0IrMTlLQgfb6hRsnigWhQJ4dGc0yMgH05Xx3AwVHd7ndrutdJbqa9DF4CFD19fXePXqFW5ubnB5eYnRaOTsxgtgkSiELm49TIdBveiva6oQQGVoC68HVAVCF45aAhQLWhScPTkajSoBSi5qJRY9qUBwFL+WajPeEWdyauOWukgUFQApzTqZTHB1dYWbm5sUi9AxehaJslgkCqNCwR1eU5ixdJlme90xerQstMemzlXh4md8Qq0SCtab4gcUiMVikR46lUrFTwfXsEOUMZLlclmxVDRIq3GIq6srXF1dpXNHGYvweP3yWCRegLpdvtvtVgJ6WgylAcM4R4FioCnGWI9AMYi9HL1e70mxVbwOA5M6ip8ZDGY7dCweDxVmmTizKWw5Z4WmipcOrmE2Q8VBR+ub8lgkCvKmnZ4LV1OCOp1af+5cNey51+CAGDXzVRC0LoPX0QAoH1pByWIr9pBMJpN0YPFkMqmkKw+HQ6UFnsLCE9MpEsPhMB1ITPdCjw/Q92jKYJEoRJybEHsjtFOTQsGBK7GgipkGJX6u7dQ6qCbeD4CKQNB90SwGBSJOhdJOVArE5eVlEgkWPlGktFOU90SRaDQaqbJTC6Y05VpXtWmeH4tEQWJwsq7DMloTdVOvz/njde3emm2IQ2Y0DqJZB35PYxHapq21Gt1uN43hp5tAS0Cbv5h1UeuFwkBxouBooFMrOBlPsVCUxSJRiGjSq0hofII7a12TFp+bC9qxpkFrE/T6NPVpSXAhAo/VnrxfDVpqdaimSjmen9YDT/xiSlWzMofDIcUoer1esnY0kEqh0vH67OFgMZpFoiwWiYLUxQC0fyPWJGjWg4uCzVp1VoVaDhQLdQ00dchsA0WBC5NWR+yxoMjw52lF6CwLZjPUrdB740OtGY038PfB2pFWq5UKtDjIdzweWyQKY5EoREwtakxABULdhHOuSRxlR/gcBgp1F9fiKHUzVqtVKpLSwbuxTFtP1NIzNri7xwwEXR5d+HXHHGq3a8ywMJh5OBzQ7XYxHo894/IFsEgUpC7zoGdR1O2s2kwFPGYqNAvBj1EUolBoTIDt6cyiaDFVfOiwl1hNGc/WUFeBr6eVmjGVGtOpaj01Gn8/YQwAhsNhJXBqkSiHRaIw8Y87lllHl6OuXoI/o9YGd2014/X5dfUU/J6KBPs4YoCSqUsVDO0kpThQeGJso67egiXdnNKl1gTwKGo8AjBaVKYMFon3hLiwNSW62+3SzEouID3dCkCt+xFLuTXOEF+XMQeNYcRgaewY1ZgFhSD2lTAIWycS2j2qVgRfn+9f6z08uq48Fon3hFj8FBcvZ1dyIce4Rh0xE0IrQl8vWh50fbbbLdrtdlq8GizVa9S9phJFgqXdKhA6v5OvDyBZL3HSt4WiLBaJFyYGNAE8cQc0BtDpdCqLNmdBME7Ba6sro2a7uiNqLbB2gvek7kW0SmKshT9D6+DcYBp1I/g+ddAvG9FY6u0u0PJYJApzbmcHqoHFuIg1BsBFxMAkRSFaBHwNPi+WNevrc/fWsf0AUq1E7L5UodFOVBUKuiI6e1PFgelNvV/GRNgNymav6XSaRMLzJMpikXgh4o4bP8YgnZZu62LU7/PnFIqHzpnQcmxd0HpvTFt2Oh2sVqvatCifWyc6KiI64JeFWbQgtNpSu0jZLn59fY2rqytcXFykXhBbEmWxSBSkboFF/17N+FgxqV2TMY3K2AHLoHXRMp2o53pEiwZ4PLi41Wql52qwUDMwWtfBe1DRUYtI51lqpyuFSesuOJHq+vo6ja27vLxMU6m0XdyUwSLxwuii4kd96NyFXGCTIhEXKb/O9KR+Xe9BxarutCx9Te78MSWq96/WkI6pY51DbBJjeTddDArE9fV1mm3J2RQOXJbFIlEI3XnjTnwuQ8GFpwNrNbDHQKb2gmggUXdwonEMWiB8fsyaqHDEGRh6z3UVo9Gdil/T4jFWbXLgDF0MWhDaLGYrojwWiYLoIucC1xLkupqG6O/HcfbxMGENJmqHp2YmYleoHvQDPAYcY01FPImcY+oYJ9A+EMYgeG09S4PXZv8HezJoPdzc3FSClWwWqzsJ3Tw/FolC6HAZzrY8Ho9PdmUSd14ViigWWoikD4oIaxS07Vp7KVRQ9GMsB9eaBc7JZFOXHphDgWBPBns11CWiy8JBM7QgdPAtrYgYi7BAlMUiUQia6RxEezo9npZ9zt04Jx51zV/xoZaGnqzFFCSzDFy8OglL29S13oK1CxSI4XCYjt5jW7imPNm8VXdgMNu/e70eJpMJptPpk7mWfB0dqOt4RHksEoXgouCio0WhwcY3/fHHoGT8GP+t9Qm6YOM5o3WPGGBU90IFQk8Wj30cseMzll3zd8BiKc6jUOFh3YQ2mtmaKItFohC0JIBHwYiDbT/LH/65LEh8aCHTOUtB52fq8/RrKmCsY9DR/FzILHDSGgsNnOrRAfr70HNI+FFLsDVQG/tCTBksEoVgJ6VWSH6Rjsa61Ck/xmBndE1UAOJz4kPhouXi1h1ed/e616ur7aBQ6CFCMbUa6zQsFOVpvOGP1D257xBdJJ9XHM5d922+n3v+Z7mvWEgVv/42rxevpdf8LP8274yzv1SLhDEGyIiETzsxxmSxSBhjslgkjDFZLBLGmCwWCWNMFouEMSaLRcIYk8UiYYzJYpEwxmSxSBhjslgkjDFZLBLGmCwWCWNMFouEMSaLRcIYk8UiYYzJYpEwxmSxSBhjslgkjDFZLBLGmCwWCWNMFouEMSaLRcIYk8UiYYzJYpEwxmSxSBhjslgkjDFZLBLGmCwWCWNMFouEMSaLRcIYk8UiYYzJYpEwxmSxSBhjslgkjDFZLBLGmCwWCWNMFouEMSaLRcIYk8UiYYzJYpEwxmSxSBhjslgkjDFZLBLGmCwWCWNMFouEMSaLRcIYk8UiYYzJYpEwxmSxSBhjslgkjDFZLBLGmCwWCWNMFouEMSaLRcIYk8UiYYzJYpEwxmSxSBhjslgkjDFZLBLGmCwWCWNMFouEMSaLRcIYk8UiYYzJYpEwxmRpv+H7jSJ3YYx5b7ElYYzJYpEwxmSxSBhjslgkjDFZLBLGmCwWCWNMlv8D/Z4A60ZPHVAAAAAASUVORK5CYII=\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": "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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 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": "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\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": "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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 iteration: 25\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: 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": "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\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": "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\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": "iVBORw0KGgoAAAANSUhEUgAAAQkAAADnCAYAAAANUaMiAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/d3fzzAAAACXBIWXMAAAsTAAALEwEAmpwYAAAn40lEQVR4nO2dSW9c5/nlT8235pksFkkNppREchwnToD/KkBn3/veedFZZd8fpFfZJIteNfIBvP4DQXZpwIYRQJYTS5YtUhxrngdW9cI4r566pq7bQ+qqrfMDChrIqrpF6T33mZ/Ier2GEEK8imjYFyCEeL2RSAghApFICCECkUgIIQKRSAghAol/w9eV+vgRcX19jT/96U/461//ing8jm+T2YpEIlgul/jd736H3//+94jFYv/GKxUhEHnVF75JJMSPiEgkgsePH+Mvf/nLd36Nvb09RKMyQN8k9K/9hvF9D3g8rvvKm4ZEQnwrVHz35iGREEIEIpEQQgQikRBCBCKREEIEIpEQQgQikRBCBCKREEIEIpEQQgQikRBCBCKREEIEIpEQQgQikRBCBCKREEIEIpEQQgQikRDfikjklQOMxI8UiYT4VmiexJuHREIIEYhEQggRiERCCBGIREIIEYhEQggRiERCCBGIREIIEYhEQggRiERCCBGIREIIEYhEQggRiERCCBGIREIIEYhEQggRiERCCBGIREIIEYhEQggRiERCCBGIREIIEYhEQggRiERCiBsYzpb4z8fn6IzmYV9K6MTDvgAhXkf++//6P/j75228VcviP//Hfwn7ckJFloQQN/C8PQYAHHcnWF6vQr6acJElIcQN/M//9kv8779/if/6iybisTf7XiqREOIG/uOtKv7jrWrYl/Fa8GZLpBDiG5FICCECkUgIIQKRSAghApFICCECkUgIIQKRSAghApFICCECkUgIIQKRSAghApFICCECkUgIIQKRSAghApFICCECkUgIIQKRSAghApFICCECkUgIIQKRSAghApFIiG9FJBIJ+xLElpFIvEH8EAf8+vr6B7gS8f8TEok3hPV6jfF4jOl0+p2eH4lEUC6X0Ww2sVwuf+CrE68zEok3hOVyiePjY8xmMxSLxW9lVUQiEeTzefz2t7/Fb37zGyyXS6zX63/j1YrXCYnEG8B6vcZ6vUYikcDdu3ext7eHVCr1jUIRiUSQ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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 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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\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": "iVBORw0KGgoAAAANSUhEUgAAAQkAAADnCAYAAAANUaMiAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/d3fzzAAAACXBIWXMAAAsTAAALEwEAmpwYAAAnX0lEQVR4nO2dyW9j57nmH84zeUhKHKSSVLLK5XhEkCzuKsDNvve9C4LOKvv+Q3oVIMjmrhrZJ+sLZBXgXgQJbATlsTzUIFES53kSe2E8n14eq47j2OFxu54fQFRJJZKHVfU9553fyGazgRBCvIho2BcghPh+I5EQQgQikRBCBCKREEIEIpEQQgQS/5o/V+rjB8R6vcbvfvc7/OlPf0I8Hsc3yWxFIhGsViv8/Oc/x69+9SvEYrF/4ZWKEIi86A++TiTED4hIJIL3338fv//97//p12g2m4hGZYC+TOhf+yXj2x7weFz3lZcNiYT4Rqj47uVDIiGECEQiIYQIRCIhhAhEIiGECEQiIYQIRCIhhAhEIiGECEQiIYQIRCIhhAhEIiGECEQiIYQIRCIhhAhEIiGECEQiIYQIRCIhvhGRyAsHGIkfKBIJ8Y3QPImXD4mEECIQiYQQIhCJhBAiEImEECIQiYQQIhCJhBAiEImEECIQiYQQIhCJhBAiEImEECIQiYQQIhCJhBAiEImEECIQiYQQIhCJhBAiEImEECIQiYQQIhCJhBAiEImEECIQiYQQIhCJhBB3MJqv8J/vt9AdL8K+lNCJh30BQnwf+V//8d/4r087eGUvh//83/8e9uWEiiwJIe7gSWcCAHjam2K1vgn5asJFloQQd/B//ueP8X//6wv8j3cOEI+93PdSiYQQd/Bvr1Txb69Uw76M7wUvt0QKIb4WiYQQIhCJhBAiEImEECIQiYQQIhCJhBAiEImEECIQiYQQIhCJhBAiEImEECIQiYQQIhCJhBAiEImEECIQiYQQIhCJhBAiEImEECIQiYQQIhCJhBAiEImEECIQiYT4RkQikbAvQewYicRLxHdxwNfr9XdwJeL/JyQSLwmbzQaTyQSz2eyfen4kEkG5XMbBwQFWq9V3fHXi+4xE4iVhtVrh6dOnWC6XKJVK38iqiEajKBaL+NnPfoaf/vSnWC6X2Gw2/8KrFd8nJBIvAZvNBpvNBslkEqenp2g2m0ilUoFCEYlEEI1GkUwmUSwWcXp6irfffhue57nXEy8HWs4TIv7D9k3u7v5Dap9rf8/32Gw2SKVSePXVV/HOO+9gNpuh3W5jsVi414pEIohEIkgkEojFYkin0yiVSjg4OMCPf/xj/OQnP0GxWMRms8HNzc3Wc/6Zz/6PfI+vrYBpeEgkQmCz2WC9XmO1WmG1WmGz2bjDFo1GEY1Gtw4HD4898Dykdz3XPt++XzQaRbPZdC7D48eP0e/3sVwuEYlEEI/HkU6nUSwWUSqVUK1W0Ww2cXp6irOzMxwfHyOXywHYDmDyvXgtX/fZX/R57K98rXg87kQrGpXhGwYSiRBYr9eYTqfo9XoYDodYrVaIRqNIpVJIJBJIJpOIx+PuwAPAzc2NE5blconVaoX1eo3NZoNoNIp4PI5kMuke8XgcsVjMiQzFqFAo4OzsDPP5HKVSCVdXV5hOpwCATCaDYrGIWq2GRqOBRqOBWq2G/f19lMtl5PN5pFIpdz1WqPh7i18w+HP8LFYo+bn42VarFWKxGAqFAiqVCvL5PBKJhCyKEJBI7Jibmxssl0t0u108fvwYT58+xXw+RzKZRC6Xc49sNusOO5+3WCwwm80wmUwwmUywWCxwc3PjYgf5fB6FQgH5fB7ZbBapVArxeByRSMQdylgshnK5jJOTE8TjcZTLZYzHY9zc3CCdTsPzPNTrdRweHmJ/fx/VahX5fB6ZTMbd0SORiDvs9oBTtIDbmIa1Mvjzy+USi8UC8/kc0+n0zl/n8zni8TgajQYePHiAe/fuIRaLIRaLhfZv97IikQiB5XKJXq+HJ0+e4JNPPsFkMkEqlUIul0OpVILnee6wJ5NJd8hnsxnG4zGGwyFGoxGm0+mWFUI3oVwuo1AoIJfLIZVKIRaLOXGi25FOp5HP5zGbzZylkUgknCWTSqWQzWaRyWSQTqeRTCadyc8Dv16vsVgsMJlMMJ1OMZvNXHo0Go26Q01rhj8/n8+d0PG5fMxmMycUkUgE4/EYhUIB1WoVmUxGIhECEokdQ397tVq5AzGZTFxaMRaLucNKKyIWizlLwLoci8UCy+XSvS7992Qy6dwUmu20RCgwo9EIw+EQg8EA/X7f/dx6vXYZDc/zXOyBcQ9r7lN4ZrMZ+v0+hsOhq8Ow7hMPNkWCYkeRmM1mznqYz+fu62g0iuFwiPF47NylfyTuIb5bJBI7xqYWM5kMMpkMlsuliyHQRLd3Yv4Z8OVBo99OYQCAZDK5dSB5gMlyuXRxkKurK5yfn+P8/BydTgej0QjL5RKxWAzj8RibzcYFMIvFIrLZ7J2ZB77HaDRCu91Gu93GZDJxmRR+Pl4Xr50iQYthuVzi5uYGkUjEfV5+TbFTyjU8JBIhEIvFkMlknGvBO2Mqldo67Dww8XjcmfipVMoFLQE4IUgkEu75Nm6wWCy2AqVWIK6urtDv9zGdTnFzc+MOcjqdRr/fx2g0wnw+x3q93gpSWtdhOByi1Wrhiy++wMXFBUajESKRCHK5HIrFIgqFArLZrPsMFAm/QPDvxW+xMC4j6yE8JBI7hndH1iBUKhVEo1Gs12uXgmRmw6ZBmQ5crVYuk8FAJPClSPC5/B6tjdlshsFggKurKzx//hzPnj3D5eUler0eRqMR1us1IpEIksnkVnaBYmTTk1Z8hsMhLi4u8PHHH+PDDz9Eq9XCfD53WYlyuYxKpYJCoeCyIqvVyrkUi8UCwG38wp/R4edS6jNcJBIhYCsZKRK0CBhXsME+60IAt6IRi8W26gls9J8/u1gsMBqN0Ol0cHFxgWfPnuH8/Bzdbhej0cgVU9kgI60S677YNCcF4vz8HO+//z7effddPH78GL1ezwVAi8Wiizd4nod0Oo1IJILlcon5fI7VauUyM3w/CgWvgeldWRHhIpEIAR6MXC4Hz/MAwLkFALbSnjTrge14hL3DA9tuAFONdDP6/T6ur69xcXGBVquFdruNwWCA2WzmDirv5syyMDvCOzlfe71eYzwe4/LyEh999BHee+89PHr0CK1Wy9Vb0CUidGEAbNVCAF9aCsxaWLeDn0MCET4SiR1jXQemIW9ubpz5bYuS6C7YQ8rswHw+d8ISjUbvLGayQcVWq4XLy0tcX1+j1+thOp1uxTOAL8Upn8/D8zyXRk2n085iWa/XmM/n6Pf7ePLkCR49eoQPPvgA5+fnGAwGW+4Iy7ozmQzi8bj7bLQieN10Q5h2pWjZSkwbExG7RyIREqySZBaAsQoefGYOeMfl16wzmM1mru6BrgdTo7RE5vM5er0eWq0WWq0Wrq+v0e/3MZlMXEDSmvgMpu7v76NSqaBYLDqRiEQiLm3b6XTw+eef49NPP0Wr1cJwOHTXwsyEDXRS7Pj8+XzuxODm5gbxeHwry2OtFlu6rgxHOEgkQoRCwYc9FBQKW8ZsRcJaEsCXJvpsNttKN06nUxeLaLVa6Ha7GI/HW0VPhBWflUplq9KSVZvAlwfeCs/V1ZWrYbD1FHRb0um0K8TiZ6DA2ThIKpVyImMFkpYT4xciHCQSIWPvjjauYGMP/JVBP79I2JoCBhqXyyXG4zG63S4uLy9doNIGDW1TWCqVQqFQwN7eHvb29lAqlVxpuI0XrFYrjEYj9Pt9jMfjrdkStEpokVQqFZTLZSQSCXe9/JwUFZZy294UAE4cmCa1Jd9it0gkQsLfCWqrKPnwC4XfkrD+vTXveQcej8fo9XquYIouCgOeNj6SzWadFWGbufxNVbQGWBIOYCu7wmBso9HA4eGhay0fDoeuhNv2ddCKslkZXj9F0dZSiN0jkdgxfmuBB872LTCISQHgg5kB+6Cg8M9Zw0CRGI1GWy7GiwSCsYhqtepiEf4KTuBWJKyrwzqGTCYDz/PQbDZxcnKCZrOJbDaLxWKBaDTqmtNs/IIuiXVrrGvFh83kiN0ikQgBmykYjUYuHUmBsCY2D4cVCmt9+C0PHi7bH2EtDuC2oIv1Cfl8HtVq1VkRuVxuq3KTsMmM9Q/WZUkkEu51jo6OcHR0hFqthkQigclk4twUxjBYPcpGNqZb6VZQQK31I8JBIhECjPSzhoEpSVuqzIg+f966J9bl8N9x+T0eLoqJvxCLmZV8Po9yuYx6vY79/X0Ui0VX2ESXwLoALMwaDoeYz+cuRZtIJJDNZlEul1Gr1bC3t7dVck6LIZPJuGth7KJUKiGdTjtrg4FL61ZpSnd4SCRCgCIxmUwwHA7R6/WcS2Dv+v6ORzuPwR4ga0HYoTT+ACXTi7aYiwLRaDRQqVRcn4VtrOKhZRk2KzZ5rTb4mc/nt+ZPWAuA78vaCZZuFwoFJJPJrWu2rhhFQu5GOEgkQsDWDNDd4HyIF4mEHdpiLQd7sPjnNtvAzIR9LfZ5eJ6Hvb09NJtN1Go1d0e3MyBo+o9GI1xcXODx48f44osv0Ov13F2f78fsip2GRYuJn411EXZ2Rj6fRzQaxWQyAXDbsTqZTBCLxdyAHYlEOEgkdox1HXinpK/OASy0DPjz/ilQNphn6x38TWGxWMwNrWHhkk137u/v4/DwEAcHB6hWq8jlcq6wys69mEwmuLq6wuPHj/HRRx/h/Px8a8YDf966JePx2MUw2u02rq+vXeyFQcpMJoNsNotsNuuqTpfLpbOwRqMRNpvNliCJ3SORCAG/VXDXjAWa2P4UqE2X8tDQlaAo0IKgG8AqSOC2Tb1SqaDRaODg4AD1et01YdlsBg8uKyzff/99fPbZZ+j1es7iAeDcmM1msxW34NCYq6srtNttjMdjAEAul0M+n3fXQ5GZz+fO/er1ei4TwiIwv0UkdoNEIgRstsIvADZ7YGsh7BxJPnhgWMTE3gfbMs6+DADua46DazabqNfrKJfLLhZhXYXlconBYICLiwt88sknePz4MdrtNmazmXt/igoP+3q9xmAwcBZFp9Nx/SKLxQKJRAKr1Qq5XM6lelkt2u/3ndXR7/ddvKXb7WI4HCp4GRISiRCwdRI21UnLwqYvaWnQvfB3f/qnOQFwgsHJ2bQqaOIXi0Xs7++jVquhWq26eQ9s5KL1Mh6PcX197fo0Li8vMZlMtqwSvhezFwBcPIGHvtPpuOdxDkY6nXYNZEwFt1otXFxcuOIv1mJ0u10MBgOtFwwJicSOoatBMbBVlbQqOCjWDpel/+8vKrIpSn6dTCbdXT6TybjKSTaTeZ7nCqfu6vSkm9HtdvH8+XM3dYpxBqZQ7QDecrmMUqmERCLhLBC6GUyXAnDXxmvhawwGAzcMx07LAoDBYOAsCQUvd49EYsfYGonRaLTVkWkrDW1JMrMXFAK/SPBrG78A4OZo5nI5V6OQz+fdkNt8Pv8VgaA1w6EyT58+xfn5udsPQveFjVnFYtH1exQKBUQiERd07PV6GAwGW23pFJlUKoVUKuXmdPL9ut2u+3m6U8yOyN0IB4nEDuFB5LxJmtE8FLyL24Cl/d6L2qVZC8GfB26nX2WzWRSLRbeLI5vNuipHFjCxLoGCNBqNcH19jS+++AKff/45rq+vMZ1OXeqSMywrlYpb3lMqlVygcjgcYjqdutoPOyeDdRqj0chZFQAwHo/Rbre35moC2Pr8IhwkEjuEZny73cbz589xeXmJwWCwlcmw8yTtyrt/ZJ6CnTDFoqVCoYBSqeTcCu7SSCaTAOCsGgZIx+MxOp2OczOePXuGXq/nJmjH43F4nodarYbDw0M0m014nodEIoHpdIpnz54BgOvvsDUczEpw+AzrIjabjRuvbxvQ7OdizESZjd0TKBLy/747WDPAsW8fffQRLi4u0O/33d/z190trWvBr4G7xYFpRi7sYVcnp3ED2Lpjs7Wc8yfOz8/RarVcuhOAsx6Oj49x//59HB0doVKpIJ1OuwBjt9t1g31tFuYuWDS12Wy2hMoflGX5ts3UiN0RKBJS7e+O2WyGDz74AI8ePcK7776LTz/91A2OZeYBuD3wdvEvH/4aAR4iigMzBpzlUK1WUS6Xt7o66V4wjcm063A4RLvdxtXVFS4vL12GgdOvs9ks8vk8Dg8P8eDBA5ydnaFeryOXyyEajTrLgaXY1nqwYmbnXnBMHWMwVhz484lEAnt7e6jVaq4wTOyWQJF477333B4F8e34+OOP8de//tXdoWlqczw+DwSnZfNA37Wgxm4Rt9YDg4hc9ssmK3ZYArcj7RkzYPFSp9PB1dUVut2uq3BcrVYuyMgdpdwTyvoKxhUYa7CuAgXMfs1rZdblrmG3tgmtWCzi5OQEjUbDuUhitwSKxG9+8xv88Y9/dOPNxbeDI+pYW5DNZl33pL0D2xZpAC6oCWzXRdB64CIcBhIbjQbq9brbxs3DxS7Rfr/vipyur6/RbrfR7XbdQh47W9M2e2WzWTck12ZG7AxL1jbY66TVwLQnF/ZwxD4H51IYaDFlMhk0Gg08fPgQtVpNMYmQCBSJXq+Hp0+f7upafvBwuArjA+zCLBQKiEajzvWw1ZUAXKEU3RJmLeha8OByXBxdDFoQkUjEmfSDwQCXl5d4/vw5zs/PXTUk93ja5jJboh2JRJwg0XWx1ZlsVuNIO07LZhUnXSHP87bqKbiHlJvVSTKZhOd5eOWVV/DgwQMUi0Ut6QmJQJHgfxJ/wEz8cywWC2dKFwoFHB4eotFoIJvNYr1eYzKZOKuNd1PusOBdNp/Po1QqoVqtuvoEbiHP5XLOjOd6PHZx3tzcuNSrf0nPeDzeykTY2IfdEMbaBruXlEHHwWCwVRnJITRMl5bLZecCcbfoYDBAq9Vy9SF2OG4mk8HBwQFeffVVHB4euuU+YvcEioTNbYtvD/32XC6Hk5MTvPHGG2g2m4hGo24ADeMTrJzklm5uxapUKmg2m+7A2YG1/vWAdiy/fwdHq9XaCk6+aLcF3Qa7ZYvCw6Bjv9/H5eWly4Ysl0tXEl4oFFCv13F0dISDgwM3GHc6naLdbiMSiWyN2Wd1aLFYxPHxMU5OTlAul7UPNERUJ7Fj4vE4arUa3njjDbz11lsol8uuKSqVSjmTmkNlGcPI5/PY39/fCkr6sxb+CVZ2yjT3gXa7XXQ6HTft2gqE7SoljCVks1mkUinnujB1ORqNcHV1hSdPnuD58+eukSuZTCKfz6PZbOLs7AwnJyeo1+uu+3M8HiOdTru28tls5grCUqmUa0Db29tz5dsiHCQSO4TBuOPjY7z22ms4Pj5GLpdzqUPbO8G7aTQa3RoLV6vV3BJeGxsAbidNL5dLV6vApTqcVD0YDNyhtFWc1oqwcytZgMX4BudLMI7Q7Xbx7NkzV3jV7/dxc3Pj2tGPjo5wenqKo6MjlMvlrU7VzWaD8Xjs5kwwCJpOp1GpVOB5HrLZrAQiZCQSOyQajSKTyTh3oVQqOTdhsVi49un1eu0W2vCOXKlU3MMKhH/MnL/hy99daudn+qsaga8KBAuymI3gwh/GFC4vL/Hs2TNcXFy4wqtEIuECjyzbZkbEdqsykLm3t4fxeOysFLopFE5Nyg4XicSOYWbCtnD7Z0Lwz2l52KwAU48cd2/dDHuQ7GQp2/TlT03auBODqja1yvflli2mSieTiautuLq6Qr/fdy4Dn89GMooa4y20lDghy/M8N5BmOp06oWLJuLV6FJfYPRKJHcMOS3Z/MvjHJqhoNOpMcdZQcListR5sFabt9bANYrZvwjZ8ZbNZ11VpC6B4wJmeLZVKbsS+7e5ksJKFV7YVnMFNdpwylsHAIx+cosUiMLowrJ1Yr9duHsVgMMDe3p5bLix2i0RihzDN+fTpUzx58sTNeOTIN9YY2MNqF9f4Z0nakfu2zXs2m7nuSxZkWbeFpdbpdHprE5ddYExholVjJ2ZxvgNb3bm+j/ERuiksmnpRZsIKVz6fd6/POZeLxQLPnj1z7lkul3PpV7E7JBI7hIG6jz/+GH/729+wXq9RLpdd9oF3UpvOpDvBbAXwZWm1rT70j9q3ezn4mpyOzYEvpVLJBQwZv2AswdZDUIBGo9HWZG9aQrwmWjh0M+yofH4GujbWcrHCxPfk+H5aV/V6XanQEJFI7Jj5fI7nz5/jL3/5C8bjMer1uos/0PzO5/OuNoGj5NkxaRu/gO2hurYmwrofzJAwlVqtVt0gFxZRAbfNZQBcFeV4PHaLh+0QGX/5NQWiXC67Qi8u+gFuMy+2Fd7O6ORr0NpiinY2m6FareJHP/oRDg8PXRpW7A6JxI7hUJfPPvsM8/kc+/v7KBQKzjcvl8sAsNUh6Xcz7KwJG3j0t1izUYz7PvP5/Nbr2BkWNpbBEuvr62sMh0OMx2O3aYwxCf+k7nQ67faJNptNN6LfFl8x+2IHAduZGbYjle81nU7x9OlTXF5eYj6fI5fLhfMP9xITKBI2LaYU1HcHeyjofrAHg9WVPFjz+dwF8vxTtO/azmVNdxvwtOY8sxrWVbGWCEusGdTkkFpOm6IFwepRCkSxWEStVtsa0U8rggJh6x1YDcqgLa2Wfr+Pfr/vYh6cwXF9fa0FPSERKBJ3zVQU3w4eTk6BArB16FiWzE1X/LnBYOC6NBm/oLmeTCZd0RN7O0qlkssycB6lzTQwAEjLgvGMSCTiApsclGOXGFs3wQ7C3d/fx8HBARqNBsrlsquStP0g9vNTmChKbFdn/wetiNVq5YSDAVKxWwJFolwu4+joSK3i35LNZuPMZ3sXpxnOrVZ2zgMFejabuWU1XFhjJ0pRABjL4EHnfg1aG+wepQjZpTi0Gph2ZXk0g6D+OzhjF3zPSqWCer3uZkxkMhlnATHm4V8FANxOpup2uzg/P8fFxQXa7babls33tYNw9f9w9wSKxK9//Wv84he/UKDoW8CD94c//AG//e1vEY/HXUbBPx+BB3Y2mzkffTgcurFw1uS3dQ20Kmj60yWwm8Q5oIaFVHZjOK0YYDtTwriBHXLDdm6mVKvVKur1Omq1mgtU2mwNZ2P4R9Px89mReRypz8wGA6r+zyJ2S6BIvP3227u6jh88qVQK0+kUn332GT799FN0u10sFguXFWB7N90A3sE5INbWPtiJ2Pbw8CDbkXH+Oy+/bw+bDVrakf60MGiB2BZ2zp3kiDzuEeX1scdjPB47F4niRheHn6/X631lKhZdG6Y8rYskdosG4e6Ik5MT/PKXv8Tf//53/PnPf8ajR49wdXXl2qpZuMRBLbbZy5rZdAuA29F33KnBSdjsJrV9HDYrYpu57irCsvUVTMuyO5MzH+xWcG7uophRIBhD4Y5Tuz+EawC5f8Rfe2H/73GUv2ZchoMG4e6IXC6H+/fvOyHIZrP48MMP0e/3Xf2C3abFRidWXs5ms609GbzD2+pI9nZwZD6FxhZZceCuXelHgeB6Ps52YFk4h8iwcIpuDTtDWUI9GAy2MiR3bUq3VgsFwR/7sOlVDq3xPE8iERKqk9gRzATs7e3h4cOHrpGp1WoBgLMCaEWwF4KmPw+tLbO2o/M5qNZWS9Kkn06nrsGK1oWt5LSj5+y2rWQy6aZhZzKZrYwKYxw84NYy4OvYrlNb4EVXhs+j5XBXFiSRSLhOUQ3CDQeJxA7h3b9SqeD+/fuYTqdusAxLsYHbqD9wOx0skUi4hjDeyWlBUBz4fB40vg5rKKww2CInHmybOWGsBIALhlKwePDZX8HgJF0V27Dmf9jmM1vI5RcIBnWz2SyazSb29/dlSYSERGLHsLGqXC7j4OAA8XjcDYkBbkfe2yAd7+T+gbRWIGgh0HXwpx15uLjRm5O7aUnQLeDhphCxW3M2m7m6B1aNWuvDuhQ2nnBX+Tgf/uU99joZD/E8D8fHx6hWqwpchoREYscwUp/L5VCtVgFg665r4wY84JzYZAunOPiWrgVTp3wO7/o2U8AYBQfDAHDZDLuz097JKV60HmazmSvR5lwJ/3vYvRlMu/rnZ9oZGP4Aua3DODo6woMHD+B5nkbqh4REIgToduRyOWc52LFz9NuTyeRWoRMPDuMPmUzGFbrZLVgUB979GWOwI/Bt0RSFwg52oaVBa4Rxi263i+vra3Q6na1shk3LslybVpMd6w/cjuj3Y2dNpNNp1Go1vPbaay7gK4EIB4lECNgWaY6KZ9ESB9+yK5LFTyyc4vYr21rN59qWcsYHADj3wW7UYprUnxblIaVgcLZDv9/H9fX1V1YAUpgoLrR8mNbl/g8AbqS/TYPag28rQz3Pw9nZGd58803U6/WtWZ5it0gkQsDeMe3MR/9IfGC7VsW/IxTAlhvBmACrFW0LOC0NG++g+e4PGjJ+wOauXq/ntn11Oh23Cd3fl2GXBxWLRTQaDbd1PBKJoNfr4fz83Imhf2UDxaVcLuP09BTvvPMOHjx44PpQJBLhIJEICX+FpO2QtOPoeMcF4GITtBbsLEiKgP/gEn9mgUJhi7OITWcOh0O3ErDb7W5ZEP4x/BS+bDaLer2O1157Daenp6hWq4hEIuh0Ou7A8zPRzeHw3VKphOPjY7zzzjt488030Wg0tlYNiN0jkfie4B9i6y+VJv7BMDxwPLj+2IAVIvva/spL+550V2x3JjszrQXhD1Qy81KpVHB2doa33noLZ2dn8DwPwJdrIzlQh6nc4XDo+lgKhQIODg7w+uuv4+2338bx8TEKhYIL5Ipw0N9+SARF9+3PMIhpi434ezt9mi6GnfbE4iN/16e/85PvRQuCKVFuHWcNhX0PQhFiMDafz+PevXt4+PAhHj58iHv37rmYBKduA3DX3+l0sFwu3UKes7MzvP7667h//77bWm57UcTukUiEgN9qsK4H4xQ2eAnAuR305Ver1VZDmI1BcCoVn/uiQTO2PoOvycIo1j4wAPqiNm1rrWQyGVSrVRwdHeH4+BiNRsP1drAbltWk8/kc0WgUnudhuVwim82iVqvh/v37ODo62irDtoFRsXskEiFh/+Mz4LfZbFzHZTqdRjqddhWMtgDJLtxhsJPfY6qUomAFiNaCFRNi+yn4YNwBuA1K8jr5Pf7KoTZ7e3toNBrY3993U7HsPJJsNgvP89BsNrFarZDP593Wrlqthnq9jmKx6Oo47JYxEQ4SiZDwWw/WamAqk/EBv0DwAHN+pZ0yxZiEDYb650r6x8nZ96Mo2WE1FCw7QYtxCQYcOaOzVCqhUChsdaJarKAUi0UnbmxUoztCwWIvCsVJ1sTukUiECO/Otq3bigVwO3DFCoR1O5bL5daYeX/sgvDQ2yVA9jn+wbis7szlcu5ripLNpPAzsFWdnao2JUtsZsafFeE1zudzTCYTJ2wUKetaid0ikQiBICvCP7HK9jvY5ioeaKZFedjuCohaS4J1Gf6hMxQiwuIlOx+TA3E56p4BVcYjWKXJgbaFQsFZDsDt9rLhcOiyJaPRaKsTlAVctGgSiYRrfxfhIJEICVtMBWCrwMkfTGRXJd0M63rwwPvNcH/Ltd0bai0Iv+XhD6DSzWAzWSaT2RpUay0FTgG/vLxEoVBwczFYUj2fz90UKk7AHo1GWK1WiMfjrsy7WCy6mRaFQmFrwbHcjd0jkQgJfzGVLW6i68EWbe7uZCu3nWHpL5zyN1LZLWD2fRhfsJ2YVrgYB2AsgG6Rf4iNLeDi5+L7zedzDAYDZ1H4RaLT6WA8Hruy8fF4vDXkN5vNbomgBCIcJBIhYv/z88E7Jg+rzXZkMpmtOZf+WQwvcjOIDThal8U/TIYpSxsItZOk2DzGVCmtCbt/lA1hnU4Hnue5gTmDwQCdTscVaE2nU/d5l8ulG40XiUTcFHDWg4hwkEh8T/Cb0rZIiTs6KRQ28EdsObZNUdKdsD0aduAtLQLbP8ER/yzC2mw2X1mewz2idAt4zXSNWJQ1Go3cop6bmxtMJhMXkxiPx64zlGIIwO0qrVQqrgBLvRvhIZEIEXuA7SH2lzxTKDgbk8+hiHDzF4Ct4KPfpfF3idKFoctAbGqVAU2KBGMRLM+2z+P70zKhxTKZTNwuDjsB3A7cZaqTm8CazaarmZAlES4SiZCwYsCvbQemnSplh94yfRmPx7d2fVpT37obDFjazks7i9LGOfzl1gDcz1urwzZ3+d0Zuh5cbmxXBLDPhMVhNtWazWbdtK7j42McHBygWq26RceyIsJDIhES9k4LYOtub2MGwG0LtRUMxinG4/FXhMIGImlJUIxYW0Erwj/u3p/t8M+k5Gv7BYKHmBaRLc5iCTbXF9qZE5FIxE3pOjo6wunpKY6OjlzFpi0vF+EgkQgBm3q0VYx3WRKsegRuJ1qx14FTsLnYhylEaxX4qy1tSpUuh02t2uAnD7uto7irRNp/lw/KRNgsDvBl/MHzPBwdHeGVV17BycmJEwgWUMmKCBeJRIjYwwjcHmh/utJaEv527kwm48qmuQaQaUS+rjXxbQrUrvLzT662FoM/g2LhAbZj6+zULYoYA6G2VJzt4fV6Haenp7h//z5qtZoTiLvKusXukUiEAA8IF9vYMmnbuu0viPK3elMo6DYwxmDnTtpy7tFo5JqtWL1pU6nsCqVlY/eA2mu/67OwMpOTvIvFIorFIgqFgquYtC3rDMR6noeDgwOcnJzg3r17rmtUFsT3h8jXdNep9e5fgG3LZqDRHsa7xOFFQkH3gS3edjcGDz9/hrMq2+02Li4ucHV1hevr661t5XYoL60POwnbXpsNqBYKBZTLZezt7bn9oKVSyVVpsjiLwUxuBysWi6hWqy7dyXH/Kp7aOS/8y5ZIhIA95DbV6SfoDs7X8Y+5u6vIyu+ijEYj9Pt9dDodtNtt9Hq9reEyNj1KC4XWCZvQuBxob28P9XodzWYTtVoNe3t7ThzoYlAc7OwJCgWtD+uOKFAZChKJ7yP/SBDwH3kN/68v+p4NRvotEJvetN9nTQMrKzebjesO9TwP5XIZnuehUCggm826TWQUBGsB2c9oMy/2Z2U9hIZE4mUj6N/VX8L9ooe1SGwzmX+Clr37f53140ei8L1BIiG+nq/5v/BCdNB/ELzwH1HZDeHQYRd3oQiRECIQiYQQIhCJhBAiEImEECIQiYQQIhCJhBAiEImEECIQiYQQIhCJhBAiEImEECIQiYQQIhCJhBAiEImEECIQiYQQIhCJhBAiEImEECIQiYQQIhCJhBAiEImEECIQiYQQIhCJhBAiEImEECIQiYQQIhCJhBAiEImEECIQiYQQIhCJhBAiEImEECIQiYQQIhCJhBAiEImEECIQiYQQIhCJhBAiEImEECIQiYQQIhCJhBAiEImEECIQiYQQIhCJhBAiEImEECIQiYQQIhCJhBAiEImEECIQiYQQIhCJhBAiEImEECIQiYQQIhCJhBAiEImEECIQiYQQIhCJhBAiEImEECIQiYQQIhCJhBAiEImEECIQiYQQIhCJhBAiEImEECIQiYQQIhCJhBAiEImEECIQiYQQIhCJhBAiEImEECIQiYQQIhCJhBAikPjX/HlkJ1chhPjeIktCCBGIREIIEYhEQggRiERCCBGIREIIEYhEQggRyP8DesWckiIQxg4AAAAASUVORK5CYII=\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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\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": "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o74nnS8MiT6Rhiu9gu6JxZPo7k1oG3evpVFhMplgsVjUTkqn0/nUjVRu+xoZGcHCwgKuXbuG5eVljI+Pw+v1wmazdZwK1faOtKsydP4wJPpIGqXexqfjaCcDuycye+3GlMlNbe/E4/EgEolgY2MDBwcHar+EnOPQq2qtvYJwYWEBly5dUhcIBwIB2O32I6uAd79GOp8Mxzy1eBnot0yvf89evRTtRqpMJqPu6zw4OMDh4SESiYT6XbZZV6tVAF+f6wgGg5iYmMD09DTm5uYwNzeH0dFR+P3+jguGTrJVnM6FI/9xGBIvuO5VFNmspa0rkcvlUCqV1CYru90On8+HgYEBhEIhNe/AEPhWY0gQka4jQ4JzEnQsvVoV9N3HkKBjMQxebFxzIiJdDAki0sWQICJdDAki0sWQICJdDAki0sWQICJdDAki0sWQICJdDAki0sWQICJdDAki0sWQICJdDAki0sWQICJdDAki0sWQICJdDAki0sWQICJdDAki0sWQICJdDAki0sWQICJdDAki0sWQICJdDAki0sWQICJdDAki0sWQICJdDAki0sWQICJdDAki0sWQICJdDAki0sWQICJdDAki0sWQICJdDAki0sWQICJdDAki0sWQICJdDAki0sWQICJdDAki0sWQICJdDAki0sWQICJdDAki0sWQICJdDAki0sWQICJdDAki0sWQICJdDAki0sWQICJdDAki0sWQICJdDAki0sWQICJdDAki0sWQICJdDAki0sWQICJdDAki0sWQICJdDAki0mU+5u2G5/IqiOjcYk+CiHQxJIhIF0OCiHQxJIhIF0OCiHQxJIhI1/8Hhzsja7o302gAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "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": "iVBORw0KGgoAAAANSUhEUgAAAQkAAADnCAYAAAANUaMiAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/d3fzzAAAACXBIWXMAAAsTAAALEwEAmpwYAAAqUUlEQVR4nO2dyW9b9/X2H87zPIkaKdmSbMeyrcRJjCZuExQt0CLIsr9dF29X3RbvX9HVu+qmm3f1okCAroJmkxYImhRpnDSO5UDypFkiRVKcZ/KS78I4x1/S1HUcO7pufD6AECe2yEs597nne4bnmAaDAQRBEE7CbPQFCILwYiMiIQiCLiISgiDoIiIhCIIuIhKCIOhifcLvS+njR4Smafjzn/+MTz75BFarFU9T2TKZTOj1enj33Xfxu9/9DhaL5Qe8UsEATCf9xpNEQvgRYTKZsLGxgb/85S/f+zWSySTMZglAXybkb/sl41lvcKtVnisvGyISwlMhzXcvHyISgiDoIiIhCIIuIhKCIOgiIiEIgi4iEoIg6CIiIQiCLiISgiDoIiIhCIIuIhKCIOgiIiEIgi4iEoIg6CIiIQiCLiISgiDoIiIhCIIuIhLCU2EynWhgJPxIEZEQngrxk3j5EJEQBEEXEQlBEHQRkRAEQRcRCUEQdBGREARBFxEJQRB0EZEQBEEXEQlBEHQRkRAEQRcRCUEQdBGREARBFxEJQRB0EZEQBEEXEQlBEHQRkRAEQRcRCUEQdBGREARBFxEJQRB0EZEQBEEXEQlBEHQRkRCEMdTaPfxj4wjFesfoSzEcq9EXIAgvIv/r/97AF1sFLEQ9+Mf/fsfoyzEUiSQEYQx7hQYAYL/URE/rG3w1xiKRhCCM4f/8zxX8vy928d6lSVgtL/ezVERCEMbw5kIEby5EjL6MF4KXWyIFQXgiIhKCIOgiIiEIgi4iEoIg6CIiIQiCLiISgiDoIiIhCIIuIhKCIOgiIiEIgi4iEoIg6CIiIQiCLiISgiDoIiIhCIIuIhKCIOgiIiEIgi4iEoIg6CIiIQiCLiISgiDoIiIhCIIuIhLCU2EymYy+BOGUEZF4yXjWm7zX6z2nKxH+WxCReIno9Xqo1Wrf+/s9Hg/OnTuHwWDwHK9KeNERkXiJaDabaDab3/v7V1dX8dOf/lSOHC8ZIhIvETabDZcuXUIsFnvq743H43jrrbcQCoV+gCsTXmREJF4ibDYbrl27hjfeeAMej0f3z5rNZjgcDgSDQaysrOA3v/kN3nvvPfh8vlO6WuFFQTZ4GcxgMMBgMOAQ/ruE8iflBJ70vSaTCQsLC3j//ffRaDSwvr6OWq0GTdNgsVhgtVrhcrkQDocRjUaRTCaRSqXwyiuv4PLly5idnYXD4Xj6D/kdUT8X/dpkMsnxxmBEJAxiMBig0+mg2WwO3aRWqxUWiwUmkwlms3nozw8GA/T7fWiaBk3T0O/3WWDo+y0WC8xm82M3F/05r9eLN998E71eD1988QX29vbQbrdhs9kQDAYxPT2NhYUFzM/PY3JyErFYDMFgEC6XCzabjV/7+37m0c+jfi71s/V6PZhMJjidTjidzqGfhXC6mJ6QqZY09g9Eq9XC3t4e7ty5g2q1CrfbjVAohFAohEAgALfbDbvdzjelpmnodrtoNpuoVquoVCqo1+vo9Xqw2Wzwer0IBoPw+/3weDyw2+0sNoSmaeh0OiiVStjf38eDBw9weHiIarUKi8WCcDiMmZkZzM3NIR6Pw+v1wuFwnCg8wKMbn272cZwkBr1eD71eD51OB+12G41GA/V6HZVKha8plUphfn4ePp9PIooflhN/uBJJGMBgMECtVsPa2hr+8Y9/IJ/Pw+12Y2JiAnNzc5idncXExAQCgQAcDgdMJhN6vR4ajQYKhQIymQwODw9RKBTQarVgs9kQCoUwNTWF6elpJBIJBAIBOJ1OWK1WmM3moSjEZDLB7XYjGo1C0zQ4nU4MBgP4fD643W44HA7Y7XbYbLYnCgR9jUY3o3+O3rvb7aLT6aDVanG1pV6vo1qtolQqoVAoIJfLoVAowGw2Y3V1la/LapX/XY1AfuoGMBgM0O12USwWkU6nkc/n4XA40Gq1MBgMYLVaORIAAIvFwk/cVqvFT9tisYhmswmz2Yxutwu73Q6XywWXy8U3FB0RBoMBer0eWq0WyuUy8vk80uk0Dg4OUCqV0Ov14PV60Wq1YLFY4HQ6Ybfb+XX0nuIUobTbbXS7XWiaxt9jMplYJLrd7lDEUK/X0Wg00Gg0UKvVUC6XUSgUkM/nUSwWMRgMkEgkUK1W0e/3f+C/FeEkRCQMwGQy8RHB6/WiUqnAYrE89kSmvAQdGxwOBzweD/x+P4LBILrdLouAz+fjvAEAfmrTU12NROio8eDBA2QyGVSrVY4oDg4O0Gg0YLFY4HA4OJpQk6sqdPPXajWUSiVUq1V0u12YzWbYbLahSGZUJBqNBtrtNjqdDucgbDYbRzL9fp+/VzAOEQmDsNvtiMViSCaTHEFQBGA2m4dCfAr5HQ4H3G43AoEAms0m+v0+XC4XLBYLfD4f5zKsVitMJhPfwNRpmcvlsLW1hY2NDdy/fx/7+/solUrodDoAAJfLhUajwdeWSCTg8/lYKFQoOqAcx9bWFra2tpDNZtHtduF0OuH3++H1ejnx2O/30W63+ZjR6XQ46gAell2dTic8Hg9arRZ6vR7nZQTjEJEwAJPJxDfi3NwcHyNIBOjJrSYDKaqgJ63X6+UjhsVi4ajE6XTCZrNxslPTNDQaDWSzWdy/fx9ra2vY2NjAwcEByuUy2u02NE2D1Wrlm7JcLqNWqz12ExN0XZ1OB8fHx/jmm2/wr3/9C+vr6ygUCgAetnBHo1FEo1HOj6jRBEU5FLFQgtRisfBnpIqNiISxiEgYhMViQSgUQiqVQq/XQ7lcBvDw5rJarZxD6PV6fNwYLXna7XYMBgN+AlMOgfIAvV4P7XYbpVIJu7u7+Pbbb7G2toadnR1UKhW0220+6/f7fRYnukkpmlErGPTPTqeDXC6Hf//73/jwww9x48YNHB8fo9PpwGw2c8QTiUQQCoXgcrmGqjR03W63eygKUsu5dOSS44axiEgYhNlshsfjQTKZRKfTQbFYRKvV4hwE3eCUY6AKB53hKUGontvVEiP9frVaxdHRER48eIA7d+5gb2+PqyIkEGpPhtPpRDAYRCgU4qiGblT6JyVdv/zyS/z1r3/FZ599hnw+j16vxzd/u93mJGupVOIqTb/f50lSu90Oj8eDUCgETdMwGAzgcDiG8jInVUyE00NEwiAoxxAKhdBut2G321GtVvlJ3O120Wg0WBzUMmilUkGtVuMjAQkJNWPR07jdbiOfz2NnZwf37t3D7u4ujo+P+bxPIkGRi9Vqhd/vx+TkJOLxODwez1AughKr9XodGxsb+Oijj/DZZ5/h6OhoKEmqPv1JGChKIREzmUywWq3cTEbi6PF4ONqgowmJj2AMIhIGYrFY4HK5EAgE+IalBql2uw0A3CxlMplYOCqVCucNut0uLBYLms0m31iNRgNmsxn1eh37+/vY2NjA5uYm8vk8ms0mer3eUK6BbkCHw4F4PI7Z2VnEYjFOpFJVgyKUfD6PGzdu4IsvvkAulxsSCHq90d4ItZOS3ttms3EkRHkJ+l76PK1WC51OR0TCQEQkDISepg6HA06nk3sl6DhBlQB6mqsiQdEEVSYcDgcqlQpKpRInCcvlMnZ2dnDnzh2k02kWIArt6RoAcPJzenoaMzMzCAaDQ3kJotvt4ujoCOvr68hkMmOf8nR8sdvt/EXHDFUk6GjSarW4LErHnkajgU6ng3q9LiJhMCISLxAUzrfbbbTbbc4DqH0GrVaL27JrtRparRaH65RwpEpFqVTC4eEh9vf3US6XuVox7qa22WyIRqNIpVJIJBKcjxitLGiahlKphKOjI37vUaxWK+c2AoEACwGVTOmzjs6iqMcLVSTU/Ilw+ohIGAiJAnUrNptN7j6kG0NNKpKANJtNbmuu1+tDVQp63Xa7zV2ZVOo86WxPVYbp6WnMzc0hGAw+NsxF39fv9/n9x924NpsNbrcbyWQSc3NzCIfD6PV6yOVy/BlIHNRKBpU6e70eiyE1XpFgCsYgImEgmqbxwFapVEKxWEShUEC1WuUbX72BqKypZv7VczvdYJTToBCenvjjbjS6ScPhMBYWFjA1NTVU1Ril3+8P5QnUyofFYoHb7cbMzAyuXLmC5eVlBINBVKtVbG5u8jXT61ATWDAY5PkMABxJ0TFkVASF00VEwiAo9C6Xy8hkMshms8jlcigWi5w7oF4Iao+mrkViNKFIN1en0+EGrW63e2IJkW5sj8eDmZkZLC4uIhKJnDgSTv0RlUoFjUZjqIRKbePxeBxXrlzB9evXsbCwALvdjlKpBLvdzk1U1ANB1R0aR7fZbBwdUZKTIgqJJIxDRMIgKIOfy+Wwt7fHg16VSoXP7WQC4/F44HQ6YbFYuISofo3zZqAk4ahAqDc+JU2j0SjOnTuHVCr1WNlTvV5N01CpVLhbUxUJutbp6WmsrKzg3LlzSCQSMJlMcLlcaDab3AvicrkAAIFAAPF4HLFYDG63mysnxWJxaKBNchLGIiJhEP1+H/V6HYeHh9je3kY6neYoghKR1Kbdbrd5eIvyDZSToLbqUScnSjrS1+iAFkUpgUAAZ8+exSuvvIJEIsFNT+OiiFarhZ2dHayvr6NYLPL70p+32WyIRCJIJBJsVAM8PD54PB4Eg0Huv3A4HDy7EgqFYLFYUC6X0Wq1uDOTEpf0MxGMQUTCIKgpKZvN4vDwEEdHR6hUKjy4ZTab+elMPQTU9ERHC8oNqBGF2q5NN/FouVOdQp2bm8Ply5extLSEQCAwNhdB75nNZvHFF19gfX0djUZjSJyonEnHFLVqoUYD9Fmi0SimpqYwMTEBr9fLwphOp/mY0Wq1uKzb7XZP9y9IYEQkDICOBM1mE6VSCaVSCeVyGZVKZSi0JqFQLe0oaanmGtQnOQ1IqWPmoz4PVqsVHo8HU1NTWFlZweXLl5FMJsfaxJHYVKtVfPPNN/j000+RTqeHGqhIiHq9Hur1OgqFAgqFAotZJpPhaKnVasHn88Hn8yEajSISicDlcqHdbqNYLPLYeb1e5x4RKreeNK4u/LCISBgEHRvIV4GenFSJUEN59XtIYOjXo9OhNDpOA1/kMEUiQTmCeDyOCxcu4OrVqzh79iwCgcBQdyW9H1Uztre38cknn2B9fZ2jndHP0+12USgUsLOzww1ipVIJe3t72NvbQ7lchtVqRTKZRDKZ5Oumlu1Go4F8Po98Ps+lXQDIZDLPtFRIeDZEJAxiXDmTEo5UxhyXlKQbl6DwnobCqGxqt9vhdDrZqYp6JMjwdn5+Hqurqzh37hxisRgnRtW+CLrGQqGAr7/+Gl999RUKhcLY/AAdMajcWS6XoWkacrkcMpkMSqUSNE2Dy+VCq9VCMBhEMplEMBjkBq2DgwNsb29z+zgJZTqdRqlU4rKpcLqISBiEWoFQG5VUg1j6dzWvMO51AAzlB0gg6PxPN746ebq4uIgLFy4gmUxyRWM0iqC8ydbWFr766iscHByc2LFJ+Yh2u43Dw0NkMhnOJ1D3JF1bu92G0+nkbkyXy4V0Oo3bt2+zwNBxStM0trQTkTAGEQkDoCf0uEYh1cLupAaocVCeggxt3G43i4LH4+FOSDLMXVhYwOTkJPx+/5D7kypYNEVKTlb1ev2xBirKhVCp1mw2o1qtsrkt9WqoNnr9fh/37t2D3W5HvV6H0+nE3t4ebt68iaOjo6GfyWAwQKVSQS6Xg6ZpPPEqnB4iEgZA5cRisciekOpNoeYdngZ68tKA2GAwgNvtRjgcRiAQgN/v56U7yWSS3bhH269JcMrlMra3t3Hnzh0cHx8/9iSn3IdqGtPtdlEqlVCr1XiSU/0cVLnIZrMwmUwolUqw2WzcL6I2aRHtdnuoL0M4XUQkDEDTNBSLRRwcHAwZwIxWC77va6vLbdxuNyKRCOLxOMLhMCKRyJClnBpBkEBQV+XW1hbW1tbw4MEDNJtN2O12AI+OLeFwGMlkEhMTE/D5fGi329jd3eXjwqhAEL1eD81mE9lslj0zarUaGo3G2FKnOhgmnD4iEqdMv99HrVbD5uYm7t+/j1wux0/c5+nARJZ2wWCQTW0povD5fBxB0DXRF9ndbW9v4z//+Q++/PJLHB4eotfrcVQSj8dx5swZnDt3DrOzswiFQpxg7Pf72NraeuJRiSIKcqkiURkHbfKS8qcx6IqE9Ms/fxqNBu7evYt//vOfuHPnDmftgUer+J4FMpP1er0cQSQSCUSj0aHtXqqbNvDIcj+bzeLu3bv4+uuvcfv2bezv76NarcJkMiEYDGJhYQGvv/46rly5glQqxQ1Y7XYbgUCAy5/fBVVI9NynnE4nYrGYJC0NQlckRLmfH4PBAEdHR7h16xY++ugjfPrpp8hkMpxsVJfgfN+fOzVf+f1+JBIJzMzMYGpq6rF9ngCGDGAoP7Kzs4Pbt2/j1q1bePDgAfL5PNrtNsxmM7xeL8LhMFZXV/HWW2/hzJkz8Pv9/Ho07h6JRPhY8l1/Lk86XoVCIczOzsoGL4PQ/amvra2hVquJWDwjg8EAOzs7+Oqrr3Dz5k3cv38flUqF26/pyU5lSLXv4btCsx7BYBBzc3M4f/48FhcXMTk5yW7V1LREU6KNRgPFYhGHh4e4e/cuvv32W9y/fx9HR0c8iQo89Iig2YuFhQVMT08PrSCk/gu1fVzd3jWKOltCP5+TsNlsWFxcxNTUlFjrG4SuSPzpT3/Chx9+yINFwveHOispvCdxsNlsbIVPsw1UJnySnbxq2uJ2uxGLxTA/P4+VlRVcvHgR8/PziEajLBCUc6hWq8jn89jb28O9e/dw584dPHjwAEdHR6hWq0MWc/SA0DSNcxJer5fHyVXoWlVD3tEJVNVkhsx96fXHEQqFcO3aNcTj8e/5kxeeFV2RoO3TwvOFBMJqtSIQCMDr9cJqtfLRg6oT1E9x0o3mcDi4rDk9PY2FhQWcOXMG8/Pz3M04uj2rUqlgb28PGxsbuHXrFjY2NpBOp9nebly7NZVWyZZuXPs2HVuazSaAh0JBRrcAeAmP2+2G1+uFxWJBp9PhOY3Rz0r9HsvLy3j99dfh9Xp/6L8W4QR0RYISRbIg5fnjcDgwOTmJVCoFn88HTdNQLpc5aiOrOnUXJomLz+dDLBbD7OwsFhYWkEqlMDU1hXg8zi5P6iYvdb1eJpPB7du3cePGDayvryObzbKD9kl/x+qNO1oyBR7Z6hWLRR4hJ+dr4GHikYRscnISgUAA3W4XmUwGm5ubODw8RLlcZkGiwbRoNIpr167h7NmzkrQ0EF2RULPuwvPDarVicnIS169fx8WLF2G1WlEoFHBwcMClPpPJxPsygYftzLQTg1qqz5w5g6mpKW5kUhf0jrpW9Xo9VKtVbG9v4/bt29jY2MDR0RELhB4UvdCRheZM6PXb7TaOj4+xs7ODdDrNRxO3241gMIizZ89iZWUFy8vLSCQSsNlsqNVq2Nrawo0bN1gcyDeCbPCWlpZw9epVRCIRyYsZiKSLDSAQCOD69et4//33MT09zTb1VC2giKFWq6Hf78PpdCISiWB+fh4XL17E+fPnMT09zccJdV8mRX3qgBbwsPpQKBSwt7eH7e3toSU9T4KqL3Qkos1iJpOJX/fu3btYW1vD3t4eOp0Ol2AvXryIa9eu4cKFC4jH43A6nQCAZrOJcDjMYqhpGrLZLB9r4vE4Ll68iFQq9VTVEuH5IyJxypjNZqRSKfz85z/HpUuX4PF40Ol0eFcmPaG9Xi9arRasVitisRhSqRSWl5c5GUnzGKNelKpA0Gg4dSxWq1Xkcrkhe/0nQbMZFOHU63X2faAJ0c3NTdy8eRO3b99mrwm/34+zZ8/ijTfewKuvvoqJiQm4XC4+PtHUKdnaNRoNWCwWtFotOJ1OzMzMYG5ujofABOMQkThl7HY7zp49i+XlZfZwoD0ZsVgMjUYDg8GAuxh9Ph8mJycxMzODyclJ7ndQy4zjUFu86cih+lV8lyMkCQQNjA0GA+Tzed5kTrMdNACWy+V4O7rX6+WcCVVY1ISnyWTiidTl5WWUSiWYTCZUq1VYrVZEIhF4PJ6hzyIYg4jEKWO1WhEMBjnDTyPW1IsQDofR7/cRCoXY+yEej3PHpFpdUEVi3I006j9BdnjUVKU3X0GNWQ6Hg9u46/U6Njc3kU6n0Wg0kMlksLu7i3Q6zQa+ZJ/n9Xq5FZyiBjUioM9MIri4uMgWed1uFzabjXeQqKsOhdNHROKU6fV6PMykHgco9CebeVqzFwgEuExKI90niYMqCvSlWtb5/X5MT0+zjRw9+UeNdEkgaOu3z+eDxWJBPp/nRT/lchmFQoEt92igzOFwwGKxIBAIIBwOw+PxPFYyVd/HbrezAU25XEav12ND4P39fezv72NmZkZmNwxEROKU6XQ63MAUDod5vJqEg56a5P+g2unrRQ0AeEBMnQSlKILcqc+dO8dzGLRlXK2iUA8GHTPoWtrtNm8WazQa7IWhRiKUQPV4PIjFYgiHw9xNOu4Gp6oJGdDQZColQ0ulEgKBAFKpFILBoCQwDUJE4pTp9/u4f/8+/va3v8FisWB6eponQ8nTkfwp1c1daoOVGk2oJjGqQzWVKalzk4akyN9yeXkZ2WyWd32o28bJNavVaqFer/MWczKTIRt/en3VJdvlcvHciCoSaqSi9lioxxqbzcamu2R+2+/3cebMGczNzYlIGISIhAGUSiX8/e9/R7lcxvLyMq+3oydqJBLhs73aLUnn+tEn86hAqDtEKTHqdDrhdDrh9/t51Jts+WlLFjVcVSoV5PN57O7uYmtriysiJGSjjVdkRuN0OhGPx7G0tIT5+XmeEFUZ59mp9nTUajXk83kcHx/zisIbN27gzTffhN/vl0qHAYhIGECv10M6ncann36Ku3fvsscD7aKgtXbdbpfHrimSUE1yR1f+qeE7tT9Ty/e4Ris1f0GvTSXJ/f199r1QjxfqEYbelwQtHA5jeXkZKysrmJmZ4Z2i9D6jwqYei8jo5vj4mB27yPpubW0NBwcHmJ+fF5EwAF2RGG3QEZ4f3W6X+wPIHzIej3OI3e12eV6h0WgMJQrr9TrPWVCVwOl08qQmbcaanJzk8iXt46CjgYo6n0GiVC6XYTabeenwOIEAHolEIBDAmTNnsLq6isXFRa7OAI9yJer7UaOXOo2ayWTYWZuSoZqm4fDwEPv7++j1ejIubgC6P3HKjItA/DCoQ1w0HUpHikajAbvdjmaziUKhgGw2i+PjY37CUkWCbn7ymqSZjm63C5fLhWAwyHkMmolQexXU3AANl9FEaqPRGNpwPs4lmyZQp6enceXKFVy4cAGJRIKrEeoRaFzvBm0x29nZwebmJjKZDI+p0/9/5XIZR0dHsurPIHRFIhQKYWZmRkbFnxFqQhpdMKN2RVKoT87QdOSgELxQKHBOQL3h6OYn5+lutwuLxcJzHp1OZyhpqP5T/fWoWW2j0RhKaJ4kEE6nE4lEAhcuXMCFCxe4s5LGwDVNQ7fbRafTGdoloprdbG9v45tvvsG9e/eQz+e5G5Tek6ZFxQjXGHRF4ve//z1++9vfSn36GRgMBrDb7fjggw/wxz/+ETabjcuNo8k/ap+mBiJyni6VSkMh/7jRcYoWyLei0Wiwd+aTdneoFRJ6utPaQbpWNVlK70k9HQsLC1haWuKFw5qm8XvTa5XL5SEvT+oXyeVy2NzcxJ07d7C7u8ueG6M/G3lIGYeuSKysrJzWdfzo8fv9sFqt+Pzzz3Hr1i3ecAU8eirTUYOSls1mkysPqlHuk4xogOHlP+PC/dFNXZRApGimUChwizhFK7SwWO2WTCaTmJmZ4YoM9Vy0Wi0UCgUcHR0hnU5zJEXlUxKQ4+NjXu1HS3xGPx+Z+krS0hjECPeUSKVS+MMf/oBbt27hgw8+wMcff4xMJoNOp8Pt0jReTZOSJzVPqZEdCYu6C5S6Hnu9Htrt9lCoT8lOgvIDowJB3Y92ux0Oh2Ooe9NiscDlciEWiyEej8Pr9aLT6SCXy6FYLKLZbLLzFW1Mr1arfHSh6IZKsOpC43H/zzkcDoTDYfGUMAgxwj0laGbjjTfegMfjgcvlwscff4x8Pg+z2Qyfz4dgMMgbteiJSgNTJ+UFKOx3uVy8gIc2adHTul6v89ToaNJSbZyqVqv8ZK/X67y3IxAIwG63c/7EarXC6/UiGAzCarWyT8Xu7u5QojWbzfIxg/IMak+H+mu9B5LX68XExIRUNgxCfuqnCM02LC8v47333oOmaVhbW4OmaQgGgwgGg9xYRdUNtdOS+gaAR52K1BNBbc1+v59fg8a6/X4/+1wCGJqloGiDBCKXy6FUKvH4OpUy6WkPPGrdNplMqFQqnEOh1m1KeFIZk65f7ct40rFJ/ZlFIhFMTExIJGEQIhKnjNlshtvtxvLyMt59912Ew2G0Wi14vV72W6AVe+pQk9VqHTLSdTgcQzMPXq8Xbrebb15KelITFd1gZLZLuY9Op8NicnR0hOPjY96qRREJHSco10DGM6VS6bGuTTpOkCCoSVE1J/JdcTgcOHv2LOLxuES2BiEiYQBmsxl+vx/nzp2Dy+VCs9kcco9uNpvsSA2AexGazSb6/T6sVis3TgWDQXg8Hj6SNJtNboCipznlEqh6QZOZ/X5/6JhRLBZRq9V4VJuEixqeaG9ptVrlWQ4SjXEJUuDxvMrT5rkCgQAuX76McDj8PH70wvdARMIAyAk6Go2yGxPwyFC2VqsNhdbkit3tdjkSCQQCLBDkDVEqldhchqzxK5XK0EBWt9vliUoSiUqlwq3Q7Xabj0V2ux29Xg9msxmtVgudTgflcplHxsl27iQTXRIIdZ3g04iE2WzG/Pw8VldX+QglnD4iEgZBZT0ysVXdowBwA1Kn0+HEJt28tMWbog1N0zgPQD0KdMOT6xUZ2QIPm5OogkKj39TqrZY81dbpcrmMXC6HbDaLUqk0dmP4KKqBLvCoLPtdm6ICgQDefvttLC0tST7CQEQkDIKqBFSu1DRtKE9A27DINo7yDR6PB36/H16vl3sHKCdA/RW0/6LVag2NcNPxgaoWFouF+zHohqeEqGrDn8/nkU6nkclkuMSpZ8Gvfj5ywgLA1zWuF2IUh8OBixcv4mc/+xmi0ajkIwxERMJA1G5JKkmqq/5Uhyjg4Si51+vlaoXdbmdhIIcryg+ofQeUaKSIgW5aNVoggSDbfMo95HI5HB4eIp1Os0CctP1bxWazIRAIYHp6GlNTU7BYLDg6OsLOzg6KxSJHTCd978zMDH75y1/i0qVL33kBsfDDICJhMKpX5ejTUvVboBuYqhU09k03+GhugJqs1IEudSScmrhUD0z6M9RfUSgUkE6ncXR0NHTEeBLkTnX+/Hm89dZbWFpagtVqxfb2Nj7//HPcvHkTuVyOW75VbDYbEokE3n33XbzzzjsSRbwAiEi8oIwzZ6H/ToIAYChqAMBCQmVOs9nMXZhUQaEGJlU86L91u100Gg2USiVks1num/iuOzqAh47gqVQKv/jFL/DOO+9gcnISZrMZ58+f55v+xo0bbM0PPHLmjkaj+MlPfoJf//rXWFxcZGcrwThEJAzmpC5KigIop0Di0Ol0uHOSyo7Udk2bxb1eL0cEtA3L7XZz/gPAUKcjiQ4dScrlMq/s05sEHQd1lr722mt4++23sbi4CK/XC5PJxPMrZIu3vr6OWq0GTdNgs9kQDoexurqKX/3qV7h48SJ8Pp/Ma7wAiEi8QFAOgvwh6IuOCep+UNVpm57yNDJONyWJBHVlqrtBVb8Gylk0m03UajXumtQzmzkJWmG4urrKe04pp2I2mzE5OYnXXnsNx8fHAICDgwNe5rO0tITr169jZWUFoVBorMu2cPqISLwAqIt4bTYbXC4X38SUk1CHo6jyQBFGp9PhsJ0cqsjwhXoyaKEOJSoJtfRKG75rtdrQWDcA9tp80udwOp2YnZ1lgVBXEFK1I5lMYmVlBfV6HYFAAO12G7FYjFcYRiIRbiRTJ1YFYxCRMBhVIEZNbkcTmjRKTa7aAIaOIRRNqEKjHl8oggDAoqJOY6rzFqrrFTVejfpqjkKDX+FwmHd1jN7g1B8SjUYxOzvLohWJRJBMJvmIQY5W0h9hPCISBkICoT4tKdmo2tSTEFBPw+hTXk06kgior003NwkDiQl9H81kqANktPeDohF6PXVga/SzkKjYbLYhLws1QapWYWhAjUbSgYeNXs1mk8VB/TkIxiAiYRAnRQujAgGAb+R6vQ4AnD8YNaKh3AGZ5KqmNnRTkiCpuQnq7CRrPIoIaINXvV5HtVrlvRs0D6KOeFPUMBgMUC6XeUycjg30OcizgmZFVPMd8tIwmUw8Wk7lXokojENEwkDUowb9O4X5ALiU6Xa7uXlKHQJTjwaqN4R6NFB7LEg46D1JIGgnqDoKTvMiwCOPyUKhgOPjY5TLZZ5IVY8gg8EAjUYDe3t7+PbbbxGJRACA92V0Oh0cHx9jd3cXm5ub2N7eRj6fh6ZpvOmcIpBOp8OTqNT8JRiDiMQLwDiDWrV5ityhKPkIPPKBUM1c1O1b6hOeXgd4lAikm5GW8tANr7pvkzD1+314PB5uH6fIg94PeHSUIJG4ceMGbDYbms0mkskkO3+n02ncvXsXGxsb2N3dRblcRr/fh8vl4tZyev9wOCzHjBcAEQkDGXcDUDShHkNUsbDZbCwUqh0/NVTRF6Eu5SFLO+DR2Z8iEprdoJKpei0AWExUYVJHw9WGr0KhgI2NDQwGA1SrVSwsLMDj8aDVauHw8BCbm5u8GYzas1utFvdY9Ho9LtvSFjPBOEQkDOZJJT5VKOx2+5AXJomDur9D7X9Qd23Qe1GkQXMc5D1JFv6jkQSNoVMXZqlUQq1W46OBmsCkORFaIQA8FJdsNotgMAhN03hYLJfLsXcFfUYSh1gshomJCYTDYe4cFYxDRMJARt2r1X8ffTpTnoC8JdWqg1oBUaMINR9BNxqVPEet7kkkgEdNXSQu1GxFnhJPGhGnY0yxWITJZEKr1UIoFGLLf7XNWz3ihMNhzM/PY3FxEZOTk9xnIRiL/A0YzLibbVQk1LHrUCjEDVI0hk1P+NFKCXlR0hGFnta0KbxUKqFSqQzdsKNu2mrr9pMMa1VUAx3Ka9DOEXVUnI434XAYS0tLuHz5MlKpFAKBwJBxr2AcIhIGcpIZ7KhhLA0/0fJfWulHi4bJW4IEgW56Kh86HA7uwKRcBLVfU05i1JxWrVh8n9UK9H3UzUlCQdUVEgez2cyLhq9evYrl5WUEg0HeWyoYj4iEQYweLdQnpmoiq+Yj6Mjh8XhYJPx+Pztk2+12FAoFXvcHgI8No1OetVoNjUbjsZ6H57Vr5aSkLK2MJAHweDxIpVK4evUqVlZWEIvFJA/xgiEiYTAn5SWARzkFOm6oRxCKCjweD7xeLzweD9xuN/x+P5/51RZqSjQCGDKuHZf/eFZI2CjqoWQruYHT+zgcDiQSCVy6dAmvvvoqpqamZFPXC4iIhEGoVQu6aVRnabpRTqp+UG8B2dmFQiHE4/HHXKzV5TvFYhE+n2/IrWqc8cuzfi7y4YxEIkgkEkgkEgiFQmzBR/Mlfr8f09PTWFpawuzsLM97CC8Wpic8PWTP3w/MuOPG036vOhOhlkXVLVnq7s2dnR3cvXsXd+7cwc7OztCeTnqtp0lSkoN3KBRCMpnE9PQ05ubmMDU1hUQigXA4zMchdS2hy+WC3++Hz+eD0+kcOxAmnBon/uBFJH4kjCufqv9dFYtms4lSqYRMJoO9vT1kMhne41mtVlGr1Xi3BiU4yZYfAPtW+P1+JJNJzM/PY35+HrOzs5iZmUEikUAwGOSOTdW3U/0aN6ciGIaIhPAQVTzUAS/awEX/bDab7C1Rr9eHNn7T4FcwGEQ0GkU8HkcoFOJoQEVu/v8aRCSEZ0Md5KKnv/CjQkRCeHpGE6rf9feE/0pEJARB0OVEkZCYURAEXUQkBEHQRURCEARdRCQEQdBFREIQBF1EJARB0EVEQhAEXUQkBEHQRURCEARdRCQEQdBFREIQBF1EJARB0EVEQhAEXUQkBEHQRURCEARdRCQEQdBFREIQBF1EJARB0EVEQhAEXUQkBEHQRURCEARdRCQEQdBFREIQBF1EJARB0EVEQhAEXUQkBEHQRURCEARdRCQEQdBFREIQBF1EJARB0EVEQhAEXUQkBEHQRURCEARdRCQEQdBFREIQBF1EJARB0EVEQhAEXUQkBEHQRURCEARdRCQEQdBFREIQBF1EJARB0EVEQhAEXUQkBEHQRURCEARdRCQEQdBFREIQBF1EJARB0EVEQhAEXUQkBEHQRURCEARdRCQEQdBFREIQBF1EJARB0EVEQhAEXUQkBEHQRURCEARdRCQEQdBFREIQBF1EJARB0EVEQhAEXUQkBEHQRURCEARdRCQEQdBFREIQBF1EJARB0MX6hN83ncpVCILwwiKRhCAIuohICIKgi4iEIAi6iEgIgqCLiIQgCLqISAiCoMv/B9YjTy3EzyyAAAAAAElFTkSuQmCC\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": "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\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": "iVBORw0KGgoAAAANSUhEUgAAAQkAAADnCAYAAAANUaMiAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/d3fzzAAAACXBIWXMAAAsTAAALEwEAmpwYAAAqsUlEQVR4nO2dyY9b59HuHx7O89QkexZ7lFpDy7IlJ5bjzzFiIIERZxXg7rK4WWUb3L8iq7vKJpu7ugiSTRaJgSyc2BCgDFe2I8lqtayeRzbnmYfzXRhVfkmxjywPffRZ9QMEO1Gzm5T8PqfeqqeqLP1+H4IgCKehmf0GBEF4vhGREATBEBEJQRAMEZEQBMEQEQlBEAyxPeX3pfTxHaLb7eJ3v/sdPvzwQ9hsNjxLZctisaDT6eCtt97CL3/5S1it1m/xnQomYDntN54mEsJ3CIvFgvX1dfz+97//yt9jYmICmiYB6IuE/G2/YHzdA26zyXPlRUNEQngmxHz34iEiIQiCISISgiAYIiIhCIIhIhKCIBgiIiEIgiEiEoIgGCIiIQiCISISgiAYIiIhCIIhIhKCIBgiIiEIgiEiEoIgGCIiIQiCISISgiAYIiIhPBMWy6kDjITvKCISwjMh8yRePEQkBEEwRERCEARDRCQEQTBEREIQBENEJARBMEREQhAEQ0QkBEEwRERCEARDRCQEQTBEREIQBENEJARBMEREQhAEQ0QkBEEwRERCEARDRCQEQTBEREIQBENEJARBMEREQhAEQ0QkBEEwRERCEARDRCQEYQTVZgd/Wz9BodYy+62Yjs3sNyAIzyP/8//8P/x7O4/5MS/+9r9+aPbbMRWJJARhBPv5OgDgoNhAp9sz+d2Yi0QSgjCC//0/XsL//fcefro6CZv1xX6WikgIwgi+Nx/F9+ajZr+N54IXWyIFQXgqIhKCIBgiIiEIgiEiEoIgGCIiIQiCISISgiAYIiIhCIIhIhKCIBgiIiEIgiEiEoIgGCIiIQiCISISgiAYIiIhCIIhIhKCIBgiIiEIgiEiEoIgGCIiIQiCISISgiAYIiIhCIIhIhLCM2GxWMx+C8IZIyLxgvF1D3mn0/mG3onw3wURiReITqeDarX6lV/v9Xpx4cIF9Pv9b/BdCc87IhIvEI1GA41G4yu//tq1a3jjjTfkyvGCISLxAmG323H16lXEYrFnfm0sFsPNmzcRDoe/hXcmPM+ISLxA2O12vPbaa3j11Vfh9XoNv1bTNDgcDoRCIVy6dAk///nP8e677yIQCJzRuxWeF2SDl8n0+330+30O4b9MKH9aTuBpr9U0DclkEj/72c9Qr9extraGarWKbrcLi8UCu90Ol8uFYDCIaDSKiYkJLCws4MqVK7h69SqSySQcDsezf8hngD7bs/6ZCN8eIhIm0e/30Ww20Wg00O12YbVaYbPZYLPZYLVaoWkaLBYLHxASk16vh263i263i16vh36/D03TYLVa+dfwa+n1AOD3+/G9730PrVYLU1NT2NvbQ71eh9VqRSAQwNTUFBYWFrCwsICZmRmMj48jEonA4/Hwe/uqh1YVN/o8APhzqJ+t0+nAYrHA5XLB6XRC0yToNQsRCZPQdR17e3tYX19HpVKBx+NBOBxGNBpFMBiE1+uFw+Hgw9Hr9dBut9FoNFCtVlGpVFCr1dDpdGC32+Hz+RAMBhEIBODxeOBwOPhAWywWPpRWqxWxWAw3btxAMBjE7u4uSqUSACAYDCKZTGJ+fh5TU1MIBoNwuVyw2WwjhQcYfPIbVT1UkSMx6HQ66HQ6aLfbLJj1eh2VSgWVSgVWqxWzs7M4d+4cfD6fRBQmISJhAr1eD9VqFffu3cP777+PXC4Hr9eLRCKBc+fOYXZ2FpOTk3xILRYLOp0O6vU6CoUCUqkUUqkUcrkcms0m7HY7wuEwpqamMD09jXg8jkAgwAecDhcdTk3T4PV6EYvF+PXtdpsFhp7edrv91MgEwEAkQJFNr9fj31OjIFUYWq0WdF2Hruuo1+uo1+uoVqsol8vI5/PI5XLI5XLQNA1Xr16Fz+eD2+2GzSb/uZqB/KmbRLvdRqFQwMnJCTKZDJxOJ5cnKTdAB9xqtQ4crlqthnK5jFKphFqtBrvdjm63C6fTyYecDhRFI/1+H51OB7quo1wuI5fLIZVK4fDwEJlMBq1WC263G7quw263w+v1wuVycQ7itKc4CUCn00Gz2US73WahUK8I6tc0Gg3UajXUajUWiVqthkqlgkKhgFwuh3w+j16vh/HxcVSrVfFmmIiIhAlQktDv98Pr9aJUKrEgqE9ji8UCTdM43O92u/B6vQgGg6jVami32/y09/v9cLvdsNvt/H3oXg+ABaJQKODg4AAbGxtYX1/HwcEBisUi2u02nE4nUqkUdF2Hw+GAx+PhfIAaGaiQ+NRqNZRKJVSrVXQ6HVitVtjtdtjtdn59q9VCq9UaEAgSFopwSOgoV0OfXTAPEQmTcDqdiMfjmJycRKvVQr/f50Op5gAoKakeoGAwiGazCQCcdPT7/QiFQvB4PCwU/X6fD2C9Xkcul8Pu7i4ePnyI9fV17OzsoFAoQNd19Pt92O12NBoNuFwuTE1NcV7CbreP/Az0/cvlMvb397Gzs4NMJoNOpwOPx4NAIAC/389C0+12B64YzWaTKyuapnEEQ1FTp9OB2+2G1Wo9y78aYQgRCROgSCIWiyGZTPJT3uVyDRzy4ddYrVY4HA64XC4+TE6nE1arFT6fDz6fb+CaQnkAXdeRy+WwtbWF+/fv48GDB9jd3UU+nx+ortA1p1qtol6vo9PpcFQzDCVSC4UCHj58iNu3b2NtbQ35fB4WiwWBQACJRALxeBzBYBBOp3OgoqPrOnq9Hmw2G1wuF9xuNxwOBxwOB7xeL1qtFkc3EkmYi4iESdhsNkQiEczNzaHX66FSqcBisXBVA/j8SU0lQTr0APip63A4WDzcbjcnG9UcRKvVQqlUwsHBAdbW1nDv3j1sbm6iUCiwQADg8qnFYoHT6eRE4ahkJX3vQqGATz75BO+99x5u376NdDqNVqsFq9UKj8eDsbExJBIJRKNRuN1uAJ/nYkgAbDYbPB4PQqEQwuEwfy71s416D8LZIiJhElRhmJycRLfbRbFYRLPZhM1mg91u51C+1Wrx19Ohb7fb6HQ6TxixADzhN6hWq8hkMtjc3MTa2ho2NzeRzWbRaDT4e1DlgnwJ0WgU0WgUXq93INSnn9ftdlEul3Hv3j386U9/wt///nekUim+NlmtVtTrdU5QFgoFuFwuABj4TA6HA36/H61Wix2emqbxFYs6TiVpaS4iEiZBOYZwOIx2uw2Xy8W+B5vNxtcEussDnycf6eDRvZ68BnTI6KqiaRparRZyuRx2dnawvr6Ora0t5HI5dllSspDCeZvNhlAohOnpaYyPj8Pr9fKTXC13NhoNbG1t4a9//Ss++OADHBwcoNVqcaTT7XbZ5FUqldDtdmG32/mK0m63YbFY4HA40Gg0WJw8Hg+LkmqqIrOVYA4iEiZC1wTqh9A0DfV6fcA4Rfd24POnMJmNyuXygKg0m002JrndblgsFtRqNRweHmJ9fR0bGxs4OTnh6gMJD11lLBYL3G43xsfHkUwmEY/HOWmo+h3Ua8bt27dxdHSEZrM50k1JEQ0lISmKoJ9NEZPT6YTP50MgEGCR03UdzWYTuq6j3W6LSJiIiISJUHnT6XTC6XTC4XCg1Wqh2WzyoW82mwMlxEajgXK5zI7LVqvFeYRKpYJSqQSn08lXmJ2dHaytrWF/f39AIOjQkQBomgafz4fp6WnMzMwgGAwOuDaBL0Qim81ibW2NI4jhA0yRjMPh4M9FZisSCwAsgLVajd2WTqcTFosF9XqdKyF0LRLMQUTiOUF1RVLegf5/tZypuhOr1SpXCdRDqWkams0m8vk89vb22AtBwjPqUDscDsRiMczPzyORSHCvxnC+g8QnlUqhVqtxVKB+L0pIRqNRhMNh2Gw2VKtV/kxqbkMVDzKL9ft9/my1Wu2JSEU4W0QkTITCcepdoCcnRQiUVBx2TFIJkZ6+5DcgKHdRLBbZvajr+qkCoWkaPB4PpqamcO7cOfZGkFcDGLRg05VnlEBQH8ns7Czm5+cxNjaGdruNVCqFbrc7IFTU1Ga32weuVCSGJIgiEuYiImEi3W6Xrw/FYhH5fB7FYpHdlAC4M1TTNH7i0j/pvk+iQQes1WrxAaNDpl4xVKjsGA6HMT8/j4mJiYEE4jCUuKQnPvBFFGSz2eD1ejE/P4/r169jZWUFfr8fpVIJHo+H8wz0fRwOx0BjGuVSSCRqtRpHFCIS5iEiYRJ0rSiVSty/kc/nUSqV+AphtVo5X0GuRzXTTyG7GonQP9Uo47Q7PXksPB4Pzp07h6WlJUSjUb5mjPIn0HumBCuJl6ZpcLlcmJycxCuvvILXX38dyWQSNpsNhUIBAFCpVNBoNPg15KWYmpriK06z2USlUuHPQCJ3mqlL+PYRkTCJfr+PRqOBdDqNvb09pFIpFAoFVCoVLmmSDZvs2larlaMHtURI/65GElRRUGc1qFDuwOl0YmxsDMvLy0gmk094I1TIH3FwcIBCocD5BAAsNrOzs7h8+TKWlpYwNjYG4PMIo1QqYWJiAqVSiY1SoVAIk5OTmJycRCgUAgAUi0UA4OoOJTVFJMxDRMIker0earUajo6OsL29jZOTExSLxYGyJ9mvvV4v3G73QJVDDcVVQSDU9m7KO/R6PY4OyOIdDAaxsLCAS5cuIZFI8AEejiJ6vR50Xcfu7i4+/fRT5PN5vsLQ15PgqK3qdK1wu93w+XyIRCLs6BwfH8fs7Czi8TicTifq9TrnYprN5kDT2HD+Qzg7RCRMotvtolarIZ1O4+joCOl0GqVSiZN0FEm43W7u5yCTVbvd5nkM1EWpRgv0dWRgGlXutNls8Pv9mJ6exurqKpaWlhAIBEZOnqLKSjqdxr///W8ee6deY9QkK30+MnpRRNDpdNjwFY1GkUwmMTMzg1AoBIvFwq3zdOWg+Rn5fF72fZiIiIQJ0IGmCkSxWESpVEKlUuEcAl0HqPGKrgCUyyCxUJ/kVJEggQEGhWH4ajA5OYnV1VVcvXoVExMTcLlcTzRTUd6jUqng3r17uHXrFo6Ojp7wR1D1hWZCFAoFtNttNnRtbW3h6OgI9XqdjVNjY2OIRqPw+Xz8Wl3XUSwW2SxmsVhwcnLCyUvp4zh7RCRMQjVHqSVNNTIYPhTqXEv6p9pO7nQ6B6ZK0f9vs9l4GAwlGGOxGFZWVvDyyy9jcXERwWBwpC9CvWZ88MEHePDgASct1a+jz1MoFLC7u8uNWvl8HltbW9yWrmkaEokEpqamBgSQBOXk5ASpVIpFotvt4vDw8GstFRK+HiISJkFPXjXxSNEB5RjUsqUqDAAGOkKpSqHmCKib1OVyDTSE0Zj8ZDKJl156CRcuXEAsFuMoYnjwbqfTQT6fx8cff4w7d+5wLmIUZLTa3NzkQTapVGrAzOV0OtFsNhGNRjE7O4toNAqLxcIJUcrPUB6i0Wjg6OgIpVJJIgmTEJEwCdXrAAyOgSPrMpmtjIbMDjdVkUlJnc9Ajk2r1cqzNM+fP4+VlRVMTk7C5/Od6q6s1WrY3t7GnTt3cHBwMNJvoUYsrVYLh4eHfLCz2Sybw4DP8yWdTgc+nw/RaJT7NjKZDB48eIDHjx8jn8/zdabb7SKdTiObzXIkJJwtIhImQE9o6k9QQ/dhw9SXNRFRU5jFYkGz2eSeDqqMUFRBXZ6Li4uYnp7mpiqKIujnURdqJpPB2toaNjY2UKvV+Gmu5kKoeuHxeKBpGveWULVGbdCiBrHNzU243W60Wi34fD4cHR3hk08+weHh4cCfSb/fR6VSQTab5XF2wtkif+Im0O/3ed4kJSuHo4XTHJJGqD0Q5Nh0u90IhULsaiTzEk3jJv8FvS/6PmSa2trawsOHD5HNZrnqQgfVarXyMp9wOMwJyEKhgHK5jEaj8USCk6oUuVwO6+vrqFarcDqdSKfTODg44CqIiq7rKJVK4pUwCREJE+h2uzyQNpfLQdf1gevC03ZYGKGOt1cnRI2NjSESibCPIRQKweVyDQgEXXlarRaKxSK2trZw9+5dbGxsoNFowGazsXWaGrjIDBUMBtHpdLC3t8f5iNNavKksmk6n0Wg0YLVaeVo2idvw19N1RTh7RCTOGNq5sbW1hcePHyOTyXBIrobYXxcqgwYCAcRiMSQSCUQiEYRCITY6UVlU7cakCGd7exsfffQR7ty5g+PjYx5K63Q6EYvFsLi4iJWVFczNzXHyMZVKod/vY2tr66lXJWpWo89MCdtRr1HFSTh7DEVCmmq+eer1Oh49eoRbt27h0aNHKBaLAxUM4OvtvqTrgNvtRiQSQSKR4IG0gUAAXq+XPRQU1lM1pVar4fj4GJ999hn+85//4MGDB+xtsFgsvOHr+vXreOWVVzA/P49QKMQl1mAwiP39fR4m87T/fshiTjma077e7XYjFovJ1GyTMBQJUe5vjn6/j1Qqhfv37+O9997DrVu3kE6n0W63+WCrNmo1ifhlUZ2UiUQCMzMzvNErFArxXg7yNFB3KE3TJsv12toadnd3USgU0Gw2YbFY4PP5EA6HcfXqVbzxxhtYXl5mgaDOzWaziXA4zBWVL/vn8rTxdNFoFNPT05K0NAnDP/X79++jWq2KWHxN+v0+dnd38dFHH+Hjjz/G1tYWyuXywLAYcljSoVMdkl8G+j5UvTh//jyWlpYwPT2NSCTCo+jIe6DrOqrVKnK5HI6OjrCxsYHPPvsMu7u7yGQyA1cBm82Gfr+PUCiEhYUFzM7OIhQKDSzuIQ8Gbf0ie7dR9+mXiQycTicuXLiAqakp+e/QJAxF4re//S3+/Oc/89NH+OrQ8FpKzKmTpMglSdu7qASqbvMaBR02ul6MjY0hmUzi0qVLuHTpEucLqDmMxuHRPtGdnR1sbW1ha2sL+/v7vIdjlOOz2+1yEtTv9w9YxQl6jbrlXK1UqFZzEkbyiZwWTcRiMbz22mvcUSqcPYYiUSwWcXBwcFbv5YVBFQgqT9LSXnraU7Vj1Oh8OoAulwt+v5/LmnNzc1hYWMDc3BzGx8cHnvZUUSgUCtja2sKDBw/4WjEqeUqo1wG73c5XlmFTU6/X48U71EeiXqHIDk5LhMh4RWP46GeQUFDi9cqVK7h+/To8Hs/Z/OUIT2AoEvSk+Cr3Y8EYGtCysLCASCSCbreLUqmEXC438HXqtYPExev1Ih6PY3p6GvPz80gmkzy4JRQKwe/3D2zyIrt3vV7H8fExPv30U3zyyScD9mmjLkv6u1evCOqBVveM0qJfl8vFUYLX68XY2BhmZmZ4dWCr1UIqlcLW1hb29vae6Ca1Wq2YmprCzZs3MTc3J05LEzEUiW+yJCd8gd1ux8zMDN566y1cuXIFDocD5XIZqVQKe3t7HK47HA42WtGC4fHxcS4/LiwsYGpqineAUi5A7cFQI5JSqYTd3d2BPaDqvgwjVIFQh81QBEFDd2lJDw3LiUQiWFxcxJUrV7C8vIx4PA673Y5KpYKdnR3cuXMH/X4fe3t7qNVq7O/w+/24fPkyXnnlFQSDQclHmIiki00gGAziBz/4Ad59911MT0+j2+0il8txZYCuEuVyGe12Gw6HA5FIBMlkEisrK1heXsb09DRXLIaFAfjimkC0220Ui0Xs7+/j6OgI5XLZcNenirp+j/IalFNotVrI5/PY2NjA/fv3sbe3h3a7DY/Hg3g8jsuXL+P73/8+VlZWMDY2BpfLxY7TcDjM4/Pb7TYvG6aFxaurq5iZmTl1YbFwNohInDGapmF+fh5vv/02Ll26BI/Hw0YlqhRYrVYEAgHeGB4KhXj6NHVO0natUVfCYYGgp325XEY+n0e1Wh1YkmME5Rfo+lKv11EsFrkRjXIcd+/exaefforDw0N0Oh2eePXqq6/ipZdeQjweH5hXQfs16Jqi6zpHTl6vF3Nzc5idnYXf75cowmREJM4Yh8OBxcVFLC8vw+/3c9mz2+0iEonwNOlgMMjDYuPxOCYmJgbGwo0aVqsKxXBUQRHAl71e0Peg5b0ejwe9Xg/ZbJajnWKxiN3dXTx8+BCbm5tIp9PcDu71ejE7O4tkMskVluGpV9SRury8jHK5DE3TUK1W2TxFS4blumsuIhJnDO3bpLH1FD3QTMtAIIBut4tAIACbzcZzIamByuFw8Ih94AsxGHWQ1H4M+tlutxsul4uvDqc1kqmDcv1+P9xuN+r1Ora3t3F8fIx6vY5UKoXd3V0cHx+jXC7zRnESlVgsxhUW+qwEXWF8Ph8mJiawuLiIbrfLjWQ2m43H3tEoPsEcRCTOGBrTVq/XB/Zx0mGlBKXP5+NZCz6fj+dcDj+Nh0fIkSjQL/X70nTq4+Nj6LoOAHztUCso6qQrn88Hv98PTdOQzWZ55D/tCSmXy7z4h4bhapqGQCAwIIbDUFmUysATExOoVqvo9/s8/JbmUoyPj/PGceHsEZE4Y1qtFh49eoRHjx4hHA7D6/Wi0+mgWq3yUh4a6+Z2u3kWxPBOTmJ44zcNalE3ctPW7kQigYsXLwIA/H4/Dg8PUSwWuQsVGExSktHLbrej2Wzi6OiI93nQTg+105O8ENQ3olq0R+UVqNTpdru53TybzSKXyyGXy6FYLCIQCGBmZoaFSjh7RCTOmF6vh42NDfzlL3+BpmmYmZlBv9/ncfL0dB0eBEPbv9VhL6poqJGD2tVJr3O73UgkEjzf8vz580ilUshmszyAdtj9OGr3qLoRjH6mGn243W7E43HMzMwgHA7zlnA1VzJsmqKrlsvlAgCUSiW+0vR6PczNzWFiYkKuHCYhImEC+Xwe77//PkqlEs6fPw+fz8cHORwOIxqNsi+BzFCUhzASiOEcg2qPplxEIBDA+Pg4Lly4wFEBDeCl7V9qT8fOzg5vFiOBGO7YJG8DjcpfWlrC3NwcD9el9zlcgVGdpGQaq9fryOfzODk54Y1fi4uLeOmll6TSYRIiEibQ6/VwfHyMW7du4bPPPuOpUbFYDLOzszxghdq3VdcktXWrdm2Cwnfa/OX1etkCTTZpNTohgaGrCU3vLhQK2N/fh67r2NnZ4b4TEgi1OkIHnARieXkZly9fxvT0NI+zG06gAk9GP+12m8UpnU7z6Dtd13H37l0cHx9jenpa2sVNwFAk1Ay6lKG+Wcjc1Gg04Ha74fV62QFJh4YijHq9jlKpNLBQmEJ+NVyn5buxWAzj4+OYmJjg+ZM2m20gtzE8FZsiEXVOpdVqfWKn6GnrAv1+P+bn53Ht2jUsLy8jGo3C4XAAGN28RVcoWjREO1GPjo6Qz+f5+tVut7G3t4fDw0Ncu3ZNRMIEDEVCneQsfPNQ0o+mY5MvwWq1Qtd1uFwuNBoN5HI5XipMIThFEtTP4Xa7eYbluXPn2KBFOzYpb0C/VOj7WCwWXstHA3XVhb3D/x2QQNAO0KtXr+LixYsYHx+Hy+XiCGjUxG+KIOjzHRwcYHNzEwcHByiVSgP7TovFIk5OTmTVn0kYikQ4HGZbrAjFV6ff7yObzY5cMEOJRVqQWywW4XK5eNhLuVxGOp3mciNdN4bzDna7ne3NDocD4XAYk5OT/LXDuYzTqg10sCk3QeXN0wTC5XIhHo/jwoULuHjxIiYmJnjUHOVIaN6l+n1oune5XMbe3h7u3r2Lhw8fIpVKDfxMcmVWKhUZhGsShiLxq1/9Cr/4xS8kWfQ1oGEsf/zjH/Gb3/wGdrudcw7DT1YaQkubxekpms/nByoQ6lPdarXy4aH9oPSr3W4PJDKNBILeDzkzKQ+hlkbV11PuIxQKYW5uDouLixxB0ApD2spFKwzVgb/0NdlsFtvb23j48CG2trY4ihi2mEsUYR6GInHlypWzeh/fechBefv2bdy/fx/lcnngAKpJRQB8V6fdHGSnHg77qQSprvsjy7aaHFTDfXU2xXACkzaWVyoVLsmST4IiSroW+f1+TExMYGZmBmNjY9A0jcfo67rOVYrj4+OBPAOJES0ETqVSyOVyHCkNRwzkvxCfhDnIINwzIplM4te//jV+9KMf4Q9/+APef/99pFIptNtttkv7/X6eBUEdlkYMT3ryeDzs1qSQn8J8ikBG5SMoidhsNlGv19kR2u/3uVKi5hZoVH80GkUsFoPX60W73UY2m0WxWES9Xkc2m2XHJOVS6BpBVw2qplBPyWnDcGksnyQtzUEG4Z4R1LPx6quv8iH+29/+hkwmw/MTwuEwQqEQHA4HRxm0UFjdIK56C8iZGQwGEY1GkUgkEA6HuSWbBtS2Wi2OMKxW60BUQQLRaDRQLpf5ie5wOHhAjMPh4Pdgt9vh8XgQCoVgt9tRrVaxvb2Nvb09NBoNjiDIX0HRxbDhS3WHGj2QfD4f4vG4iIRJiE/iDCF79Pnz5/HTn/4U3W4X9+/f5yGzoVAIPp+PS48Oh4NLk8DnYbd6RaGyJxmwxsbGeDIVjcOr1WqoVqu8iEcVGeCLbV2NRgOVSgXlcpmjCJooRS3iVOUggbJYLJxvoEoFXVUoQhj2dJAwDFc7TkPTNIyNjWF8fFxEwiREJM4YTdPg8Xhw4cIFlMtlRCIR6LoOv9/PzVDdbheVSoX9DWTVpoiCrifBYJA3coXD4SeaqWq1GvL5/ICRihKp9O+UqCTrNa0dtFqtCAaD0DQNfr+fE5kU2VCTF7k0dV3nXg66UqhCoE45e5ZrrMPhwMLCAuLxuES2JiEiYQKapiEYDGJlZQVutxuNRoN7NSjrXy6X4XQ6uV07GAxC13WORkKhEOLxOGKxGO/0JFtztVrlgzw8XIbmT9KVgwbkVioVLnmSkND39Xg8nDgkQSgWi7zvc7iXY9gFSjyrQABAKBTC1atX2e8hnD0iEiZAm7ipIkBt2xT61+t1boyia0U4HObD6/f7EYvFEIlEEAgE+FpSrVa5bEohv91u54NPP4OuI5SzoGsClSg1TeOp2DabDb1ej12e5XIZmUyGE5Rk6T5tJgXwhXP3aUt4htE0jfs2vF7v1/1jF74iIhImQQcxHA5zUo+mTtMIfPI5UNLTarXC6/UiFAohHA7D7/fzyj61TNpoNLghS9M0vj6Qm7PX6/H4OPqZasShTr0ia3SpVEI6neZy5qiN4cNQ9YVEgkTpy5qiQqEQXn/9dSwtLUk+wkREJExCNSTRNYOqB+SapN0cdKhozwYlJylnQa5G1edAbd102Gk2A83G7Ha7LBj0WgB8DSHRqtVqyGQyODg4wOHhIfsdTtsYrn4+qrz4fD72UJD/4mlC4XK5cOXKFfzXf/2XLOYxGREJEyHzE2X8qeV6GBr95nQ6ueWb8hVU8aBDTS3fVPbUNI33flKzFiU4aX2femDpqU9dmScnJ9jf38f+/j4ymQwPxnkaZA1PJpOYnZ2F3W7HyckJNjY2cHJyMnAFGvXac+fO4Sc/+QlWV1e5UUwwBxEJkxleEkyo8yE6nQ4f6FEj6siYRL+oxKg2dKnt4VSWHB4AQz+31WqhWq1yBHFwcIBsNsuNZU/DZrMhEAhgdXUVb775Js6fPw+73Y6DgwP84x//wD//+U8cHBzwThH1z8LhcGBiYgJvv/02fvjDHyIajUpVw2REJJ4zVC8B5SXo4NtsNui6zoNlybNAZUjVx0C5Cho4QwN06Weo/RCqwYnKofl8HsfHxzg8PEQ2m+UI4mmJR/rZCwsL+PGPf4w333wT4+Pj0DQNy8vLiMVisNls+PDDD9lxSk5Qu92ORCKBN998E++88w4WFhaeaUO58O0gImEyo7or1aiCIgp68lNkQMlHAFyhoENM1xIa1+/1erlaoY7DI0iMdF1HrVZDsVhEJpNBOp1GoVBAtVr90ot8rFYrwuEwbty4gZs3byKZTHJlgqZ907Xoo48+QiaTQa/XY4G4fv063nnnHVy8eJFzGYK5iEg8J6gNWrTrgp7+ais5RQGtVmugQkHVBgrZacAuzXug6AMAJzipvEkVjlqthnK5zDs9qcx5WolzFHa7HdPT07h27RpmZmbg9Xp5NqXVakU0GsWVK1dQKpUAANvb29B1HaFQCBcuXMDNmzdx8eJF6dV4jhCReA4YFgiqCFACklyM1ARFjVg0aarf73PnJVUtSGBoIhVFH/R6EpphW3apVEK5XB7wTdB7fBqapvFSntnZWXi93oEp35R8jUajWFlZga7rvJAoGo3i/PnzWF5eRiQSeWI2pmAeIhImQwJB/65eM9T5k5SbIONVtVplEaCJUupgl+HRg+qVgsqsAFh8qPuTTFjqaH9a5EPf5zQoaqE1hMP7Sen92O12BINBTE5OclQTDocxPj4Or9c7MNFKognzEZEwERIItatTrUYAX0xwouhBvXaoZiU110BVEXq9+rPo+9HhUyMTNXqgTs9AIMCvp2lZ6jIfgt43RTc0jYomb9F7Ud8fCQYA7lnRdR2NRoM/z/Cfh3D2iEiYhDrlSY0ghmdQqlbtcrnMy3+pX4JMWaqrkaIQADwpWy2nkn9CbSWnHox2u81uUPonTd2mjk/q7qRSq9oV2ul0kMvlkEqlMDU1xb0nJC7Ul5LNZpHJZJDNZlmo6LN3u12erUF+DokozENEwkRGzZ0cnhrl8Xh41R41ZtETV7VF0/dRfQ8kIA6Hg8fKUZSgjulXcx9UQqWR/P1+H2NjY3ywabMWRTVqzqLf76PRaGB/fx/3799HKBRCv99HIBCApmls797f38fjx4+xubmJTCaDbrcLt9vNw27q9Tqi0SgvTKbFwYI5iEiYzPDcSTWioKSjx+PhX+QboLu8erVQB8nQ91DzCRRlqPZv8ljQ96LX0Lo+ah4j+zh5KejrAQxcPWq1GnZ3d/Gvf/0LmqahVqthcnISTqcTuq7j5OQEm5ubWF9fx97eHorFIvr9PosEGayoX0UwHxEJExmV1FP/Xa140KF1u91sySaxIB+Fes2gKELtyVAt11T2VDd40Wg6p9M5sMxYrZ6QaUsdiac6QYHPN5Str6+j0+mgWCxifn4efr8fzWYTqVQKOzs72N3dZZMWAI50vF4vJicnWRxlUbD5iEiYzHCJb5S5aniGpd/v53mRahJRbdumpCZVPtRNWb1ej30RFOJTWZQiGJohQUJTrVZRLBbZXDVqJiVFJ/1+H7lcDv1+H81mE+l0GqFQCL1ej0fbpdNp1Go19nYA4DF50WgU4+PjiEQiMgD3OUBEwkSGp1er/1t9MlPVgEbV0YBcKoHSPo/h0fNqxYS+P10xqtUqH/hqtfpEJ6gaeVDUQdeSp9mzyR1aLBa5KhIKhaBpGm8jU1vbKTlJDWFLS0uYmpqC3+9nv4RgHvI3YDKjDtuwSJCL0u/3cw8HGa5oPWCxWByoDgBfVDbUmQ7U3UmvUTeCjdpt8SwDa1XIl0F+jk6nw8N01QQpXW9o0fDq6iovG5a+jecDEQkTOW2cmyoSap4gEAiwfyEYDCISiSCXyyGTycDj8Qws8QHA5UcyRA2Pza9UKuyN+KZmUqqoV5xmsznwe+osjXA4jOXlZdy4cQMrKyuIRCKSi3iOEJEwieGrxXBegg6t+rRVFwPTdKpQKIRgMMhj+guFAmq12kClgno0VJGo1WoD5qlnmWD9ZRnl/6BxfJQv8Xq9SCaTuHHjBlZXVxGPx1k8hOcDEQmTOS0vAXyRtKTDrpYxO50OJzEDgQB7KTKZDMrlMputyISkeirUkP9ZR9x/Geh9UyTjdru5hKsefqfTiUQigdXVVbz88suYmppiE5fw/CAiYRL0lFUX5agmKtVBOXwvV8XC5/PxYp7JycmBvZtUfSCnYz6f57bt4elV39SuTZon4ff7EYlEkEgkeGEQjc6jsm4gEMDMzAyWlpYwMzODQCAgzsrnEMtTnh6y5+9bZtR141lfq9791Q3e6vQqmn2ZzWaxu7uL9fV1PH78GHt7e+xXoDLosyYp1aG+ExMTmJ6exuzsLKanp1kgaJYEVU4ot0JrCdXlQYIpnPoHLyLxHeG08qmaiCS3Zb1eR7FY5MlTx8fHyGQyHIVUq1VuG6cSqboRnEqytDB4bm4Oc3Nz3CKeSCQQCoXYDEWHf/jXqIY2wTREJITPUcWDchvkpqQrCHkiKLlZrVbZcNXvf74LlEb7qxvE3G73E9cFOfz/bRCREL4equV7uFNV+E4gIiE8O8OVllG/J5HCdwYRCUEQDDlVJCRmFATBEBEJQRAMEZEQBMEQEQlBEAwRkRAEwRARCUEQDBGREATBEBEJQRAMEZEQBMEQEQlBEAwRkRAEwRARCUEQDBGREATBEBEJQRAMEZEQBMEQEQlBEAwRkRAEwRARCUEQDBGREATBEBEJQRAMEZEQBMEQEQlBEAwRkRAEwRARCUEQDBGREATBEBEJQRAMEZEQBMEQEQlBEAwRkRAEwRARCUEQDBGREATBEBEJQRAMEZEQBMEQEQlBEAwRkRAEwRARCUEQDBGREATBEBEJQRAMEZEQBMEQEQlBEAwRkRAEwRARCUEQDBGREATBEBEJQRAMEZEQBMEQEQlBEAwRkRAEwRARCUEQDBGREATBEBEJQRAMEZEQBMEQEQlBEAwRkRAEwRARCUEQDBGREATBEBEJQRAMEZEQBMEQEQlBEAwRkRAEwRARCUEQDBGREATBEBEJQRAMEZEQBMEQEQlBEAwRkRAEwRARCUEQDLE95fctZ/IuBEF4bpFIQhAEQ0QkBEEwRERCEARDRCQEQTBEREIQBENEJARBMOT/AyB8INYCNd1mAAAAAElFTkSuQmCC\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 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": "iVBORw0KGgoAAAANSUhEUgAAAQkAAADnCAYAAAANUaMiAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/d3fzzAAAACXBIWXMAAAsTAAALEwEAmpwYAAAX2UlEQVR4nO3dW3AT590G8Gd3dVhZkg+SkFXL4AM2YDBgTEwwKWCGJk3DN0zSpqQwLZQv7UU6ncy0k4te9bbTu8yk0840N1+mbQ49JSmkaTq0lCSFUBPKcPQpHH1GtmXZ1lm730VmdyDYrw/Ylmw9vxtmsCWtJe2z776H/yvpug4ioqnI2T4AIsptDAkiEmJIEJEQQ4KIhBgSRCRkmebnHPpYRjKZDF599VWcOnUKFosFsxnZkiQJ6XQae/bswfPPPw9FURbwSCkLpKl+MF1I0DIiSRLa2trw5ptvzvk5vvSlL0GW2QDNJ/y088zDnuAWC68r+YYhQbPCyXf5hyFBREIMCSISYkgQkRBDgoiEGBJEJMSQICIhhgQRCTEkiEiIIUFEQgwJIhJiSBCREEOCiIQYEkQkxJAgIiGGBM2KJE1ZwIiWKYYEzQrrSeQfhgQRCTEkiEiIIUFEQgwJIhJiSBCREEOCiIQYEkQkxJAgIiGGBBEJMSSISIghQURCDAkiEmJIEJEQQ4KIhBgSRCTEkCAiIYYEEQkxJIhIiCFBREIMCSISYkgQTWI8kcY/2wYwMpHM9qFknSXbB0CUi/73/1rxnxvDqPY58c+XWrJ9OFnFlgTRJO4MRwEA3eEY0hkty0eTXWxJEE3i5eca8Pp/buN/NpXBouT3tZQhQTSJR6u9eLTam+3DyAn5HZFENC2GBBEJMSSISIghQURCDAkiEmJIEJEQQ4KIhBgSRCTEkCAiIYYEEQkxJIhIiCFBREIMCSISYkgQkRBDgoiEGBJEJMSQICIhhgQRCTEkiEiIIUFEQgyJPCNJUlYfT0sPQyKP6LqOSCTyUM+RTCah6/o8HREtBQyJPKJpGsLh8Jwfb7VaIcsyQyLPMCTyiCzL2L17N4qKiub0eJvNBo/HM89HRbmOIZFHFEXBN77xDTzzzDOwWq2zfrzf70djYyP7JfIMd/DKM36/Hz/60Y9gsVjw5z//GcPDw9M+RlVVlJWV4ejRo2hqaoIs89qST6Rp7i9587nANO3zzWglSVq0K7Smaeju7saJEydw/PhxdHR0YHx8HJlMBoqiwG63Q1VVFBQUoLS0FI2NjWhubkZDQwO8Xi9DYnma8svHkMiiaDSKwcFBJBIJuN1uuN1uqKoKRVEeOBF1XYemaUilUojH44jH48hkMrBYLHA4HHA4HLBYLLMKmmQyibt372JwcBChUAiJRAIFBQUoKiqCy+WCqqqw2+1wu91wOp3z/edTbmFI5BpN09De3o5jx44hFAqhpqYGGzduRFVVFYqKimCz2cwTXtd1pNNpjI2N4c6dO7hy5Qq6uroQiURQXFyMuro6bN26FcFg8L7HzfZ4dF2HJElsKeSnKb807JPIEmM4sq2tDX19fUgmkygpKYHP54PT6YTFYoGiKAA+D4lUKoWhoSGcO3cO77//Pq5du4ZYLAaXy4WtW7eiuLgYfr8fNpttTsfDYKCpMCSyRJZluN1uBINBZDIZ+Hw+FBUVmbcNsiybLQLj6p7JZDA0NIQ7d+5gcHAQyWQS0WgU/f39SCQSHHWgBcGQyBJJkuDz+bBhwwa43W6sXLkSgUDAbEXcGxKyLENRFNhsNui6jng8jmQyiXQ6jVQqBQAoKCiYdZ8E0UwwJLJEkiS4XC7U1tbC5XLB6/XC4/HAbrffFxAGRVFQUFAAt9sNRVGg67o589HpdKK4uBgWCz9Omn/8VmWR3W5HIBAwRydcLpc59flekiRBURS4XC5UVlYiEAjg1q1b0DQNqqqivLwcHo+H/Qq0IBgSWaQoitkysFqtU7YigM+DwuFwYN26ddixYwcGBgYwMDCAiooKbN68GcXFxbzVoAXBkMgiSZLM0QhFUcy+iKlYLBaUlZVh3759sFgs6OrqQnV1NZqamjiPgRYM50lkWSqVQiqVgizLsFqt5rDnVIyOy/7+foRCIXOExOVysSVBD4OTqXJVOp1GJpOBJEnTtiTulclkzMdNNkNzJozJU0TgZKrcZazZmO3aDUVRpm11TEbTNESjUUSjUdhsNjidzjmtCKX8wZDIAYuxuEvXdSQSCVy/fh2ffPIJbt26hfLycuzevRtVVVUMCpoSQyLL5tKKmC1d1zExMYHW1lb85je/walTpzA2NobS0lIMDQ3hyJEjCAQCvPWgSTEksmyutxuzkUgk8Omnn+IXv/gFTpw4gbGxMQBAOBzGe++9h+bmZqxYsYKTsWhSnH2TAxYyIDRNQ29vL9555x2cPHkSkUjEnK2ZSqVw69YtdHZ2mtO7ib6Il44sW+jbjFQqhc7OTrS2tpotiHsZ9SlY3JamwpDIAQsZFOl0GiMjI5MGhCRJKCkpwcqVK3mrQVPi7UYecLlc5gKwewOpqKgILS0tqK+v5+gGTYmXjxxyb5N/utaF8bvGv1P1a1itVlRWVmLHjh24e/cu+vr6oOs6SkpK8JWvfAXf+c53UF5ezpENmhJnXOYQo47lZCe+ruvmLEuj2EwkEkEqlYLD4UBxcTHcbvcDszYzmQwmJibQ1taG06dPo6OjA1arFfX19WhubkZNTQ1UVc3K30s5hdOyc50RAvF4HJFIBMPDw5iYmEAikUA8HsfY2Bj6+vpw48YNdHd3IxQKIRqNAgBKSkrw6KOP4qmnnkJdXR0KCgruCwpN05BIJDAxMYFYLAaLxQK32/3A71Fe47TsXGYMSSaTSfT39+OTTz7Bhx9+iPb2dgwNDSEajSIejyMWi5mVsu8lSRI+/fRT9Pb24gc/+AHWr19/XytElmU4HA6zxbAUbi2M0ATATtUs47ufZUZApNNp87bgL3/5C06dOoXh4WGk0+kZPcfg4CBOnDiBbdu2oba2dtITaymEgyEWi2F0dBROpxNut3tJHftyw7ZmFmmahnQ6jWQyiUQigZGREbS3t+Pq1asYGRmZUUDcKxQK4c6dO7N+XK5JpVIYHBxET0/PA60mWnxsSSwyY3m2pmmIxWKYmJiApmnQNA2jo6Pm7YXR1J7tcxtFc3PFbPfzMCaAJZNJqKoKVVXZisgyYUhwFt78MvoJ4vE4enp68Nlnn2F8fBwrVqxASUkJ0uk0CgsLzZJ2xhaAM+XxeFBZWQm73Z4TJ5amaYjH40in07DZbDM+LkVR4Pf7zeK/lF3CkMiFL9pyMjo6ihs3bqC1tRWnTp1Cb28vfD4fdu3ahUceeQQulwvr16/Hli1b0NfXh7t37874uS0WC5qamtDY2JgzLYl7K3rP9LtklPSzWq2Luj8qTU0YEpcuXcL4+Dg/qIek6zr6+/tx5swZnDx5EtevX0c0GoUkSVi5ciVqampgsVjg9XrhdrshyzLS6TQ++OADhEKhaZ/fZrOhqakJhw4dQlVVVc58XrIsw263A/i8dTCboMiVv4GmCYlf/vKXOH78OKxWK289HlI4HMbo6OgD7+PExATsdjtKSkpQXFwMWZZRXFwMn8+H8vJyvPvuu7h58+akHXh2ux2lpaV47LHHcPDgQezatSunmudGST5a2oSfYDgcRnd392IdS15yuVyoqKiA1+s1S+rbbDY0NjYiGAxi69at+Pvf/44LFy4gFApB13XY7Xb4/X5s3LgRO3bsQFNTEyoqKua1L4L1L8kgDAnj3laSJLYkFoAsy6itrcWGDRvgdDrNPTeM+/Ly8nLs378fzc3N6OvrQygUQiaTgcvlgs/nMzs857pJ8GTS6TRisRgymQxUVc2ZTlDKHmFIGL3rDIiF4fV6sXPnTrNP4osnoyRJsNvtKC8vRzAYNIcTZVlekOnUqVQKPT09uHTpEuLxOOrr61FdXW32K1B+4g1jFm3YsAE7d+5EYWHhtFdro3T+QjH287h+/To++ugjxGIxqKqKsrIy2Gw2tibyGEMiS1RVRWNjI9auXZsTi6yMTkaPx4Pa2lrEYjFuHUgAGBJZU1hYiNWrV+fUzlt2ux21tbXw+/1IJpNwu91wOBw5c3yUHQyJLLFarTl3AsqyDKfTiYKCArMfKhdaOZRd/AZkyfj4OPr6+pBMJnOuY9hYZzGbgMi1v4HmD1sSWRKJRNDa2oobN26Y9R8e1mynQM/1NTKZDBKJBGKxGFKpFBRFMetVTDZKQ0sbQyJLdF3H6dOn8de//hVlZWUoKSmZ1cll1KCIRCLo6+vD8PAw7HY7gsEg/H7/vM6dMKTTaQwPD+PKlSu4fPkyent7kUgkUFJSYq45CQaDHA1ZZhgSWTQ4OIg33ngDtbW1+NrXvjajWpNGBau+vj6cPXsWZ8+eRUdHB4aGhqCqKrZs2YJnn30WjY2N81q7Utd1jI6O4r333sPrr7+Oy5cvY2JiAgDgdDqxceNGHDx4EE8++SR3A1tm+Elm2cWLF/Hqq69i5cqVaGxsFPYDGDUnPv74Y/zhD3/AmTNn0N3dba7rkCQJFy5cQDgcxksvvYS6urp5u6JrmoYbN27gT3/6Ez7++OP71pJMTEzgv//9L4LBIOrq6lBYWHjf7FFa2oQ9U8YXlh/0wtE0DSdPnsSvf/1r3L59e8oOQKNE3e9+9zv89Kc/xZtvvomurq77TlZd1xEOh3Hq1CmcP38eiURiXo/z5s2b6OzsfGCxmaZpGB8fR3t7O9rb2xEOh5FMJpHJZMxZovcuG6elRdiSMKoj8cNdWPF4HG+//Taqqqrw/e9/H16v975g1nUdkUgE7777Ll555RV0dHQIny+RSCASicx7GbtUKjXlnqGapmFoaAiXL19GeXk5Kisr4XA4zJ9brVYUFBRAVVWzlUFLgzAkjC3guFT84ei6jqGhoUm32jOEQiG89tprqKiowP79++F0Os2FdZlMBpcuXcJbb72Fzs5O4WsZ/RLr16+f1125ZFlGMBiEz+fDzZs3J/0+RCIRXLhwAZlMBoFAAAAQjUaRSCSgqioqKiqwefNm1NTUmAvaKPcJQ+KFF17A4cOHmfoPQdd1qKqK1157DS+//LJwRW1HRwd++9vfora2Fg0NDbBYLNB1HYlEAm1tbejs7BSGdUlJCZ588kkcPXoUW7ZsmdcRDlmWsXr1auzYsQNdXV0YHR01FwAa349YLIb29nazvEA8Hkc0GkUymYQsy/B4PNi0aRP27duHPXv2oKysbNIKVLPZyYwWnjAkNm7cuFjHsewNDQ3h+PHj93U0fpGu67hy5QouXbqE+vr6+5bq22w24YhBMBjE0aNHcejQoQVZuSlJEnw+H55++mncvHkTH374oVnE15BIJHD37l3cvXsX6XQamUzmvhN+eHgYd+7cweXLl9Ha2oonnngCmzZtgsfjMcPC2MVM0zRYrVaoqpoz5fjyFQvhLpIdO3bgjTfewM9+9jO88847Uxa5NU6se8u92e12bNq0CQ0NDbh9+/YDjw0Gg3jxxRdx5MgR+P3+Bbv62mw2NDQ04PDhw8hkMjh37hxGR0fNDsp0Oj1tB2UikUBHRwd6e3vxr3/9C7W1tVi1ahW8Xi8cDgcsFgusVis8Hg/q6+uxbt26+/o2aPGxEO4icTgc2Lp1K1588UV0dXXh4sWLk/5eZWWl2Z9gvP+KomDt2rU4cOAA2tvbce3aNfP3/X4/vve97+HIkSMoLS1d0GCXJAlutxvbtm1Dd3c3BgYGEIvFzC0AZvPa4+PjaGtrQ0dHh1n4VlEUc01LRUUFDh8+jOrqaoZElnGexCKSJAnbt2/Hvn370NHR8cBth9vtxuOPPz7pNG1VVbF37150d3fjV7/6FXp7e1FcXIxDhw7hu9/9Lvx+v/kaC0mWZRQWFiIYDKKgoACZTMZsQcyFUXb/3vdClmUkk0mEQiF2buYAhsQis9lseOaZZ3Ds2DFcvnzZ/H9ZltHS0oKvf/3rcLvdDzzO6BM4cOAAFEXB2bNnUVdXh+eeew6rVq1a1FZfOp1GKBTCwMAA4vH4vLdejP4Ir9fLHc9zAENikUmShNraWmzbtg3t7e1IpVKQZRmPPPIIXnjhBaxbt27Kq6csyygvL8ehQ4ewd+9eeDweBAKBebvaTrdAzBiOvXXrFj766CN0d3cvyJaCxntkjPBQdvETyAK3241vfetbuHr1Ktrb21FfX48f/vCH2Llz57QnhbG7lc/nm1OtS2MbvXg8jmQyCUVRYLfbzUlOIplMBtevX8dbb72Ff/zjHxgfH5/x66qqala6GhsbEz521apV+OY3v4l169axXywHSNM0FTm8sUDC4TA++OADXL16Fdu3b8djjz22KLtnR6NRXLt2Df/+979x/fp1yLKMsrIyVFdXIxAIwOPxwOPxoLCw0FzNmUqlMDIygmvXruH3v/893n77bfT398/o9SwWCxoaGtDS0oI1a9ZAURTcvn0bFy5cwPnz59HX12e2Roy5GM8//7zZz8KQWDRTvtEMiSzRNA2RSASxWAxut9ucYbmQMpkMurq68Morr+DYsWMYGhpCJpOBzWaDw+FAUVERgsEg1q5di6qqKni9XlgsFkxMTKCzsxOnT5/G1atXZ9yCkGUZTzzxBH784x9j27ZtcDqdAD7v0+jp6cGZM2dw/vx5fPbZZ0ilUqiursbu3buxZ8+eB6am04JjSOSie0vkL8YJkUwm8be//Q0/+clP7htG/SJjgyCbzQZZls0RiGQyOavXa2pqws9//nPs2rVryglRY2NjGBgYQCaTwYoVK8xdzGjRTfkFZJ9EFmXjZBgdHRWuIQEmH5acLbfbjf3792P79u3CGZNut3vS0RzKHYzsPKIoCkpLSxdlv9Camho89dRTHMJcBhgSeURRFNTU1GD16tUL/loVFRWorq5mv8IywJDIM4FAAF/96ldRXFy8YK8hyzL8fj9bEcsEQyLPFBQUYO/evWhsbFyw17BarXC5XOyAXCb4KeahmpoaPPvss/B4PAv2GixXt3wwJPKQqqp4/PHH0dLSsiDPb0y+mqrUHS0tDIk8VVVVheeeew5VVVXz/tyapqG/vx/hcJitiWWAIZGnFEVBS0sLnn766QWp19DT04Ouri6GxDLAkMhjXq8XBw4cQHNz87x3Mvb09ODixYtmxXVauhgSeUxRFNTX1+PgwYOorKyc1zkN4+PjuHHjxkPN2qTcwJDIcw6HA7t27cLu3btRVFQ0b0GRSqUwPDyMaDQ6L89H2cOQyHOyLKO0tBTbtm1DIBCY1yIvos18aOngAq8l7t75CHPZe9Mo119aWgq32z1vfROKokBV1XndIIiygyGxRBml5FKplFm0xWq1mlWn5/pcU5X6ny1VVREIBFjpehlgSCxBxgY2xp6fxga9LpcLHo8Hbrd7xrcNuq6bhW3nc/9Qn8+HdevWzesuYpQdDIklyrjNSCaTCIfDCIfDUFUVuq6bm/PO9NbBmCEZjUbnZV6DqqpoamrCpk2bWMh2GeAnuARJkmQWsPV4PLBYLCgpKYGu63A4HLPuV7Db7aisrEQgEMDAwMCcg8JqtaKiogJf/vKX8e1vfxs1NTXcom8ZYPm6Je7evTN1XTcDZDZBoWka+vr68P777+OPf/wjWltbMTIyMqOwsNvtWLVqFTZu3Ig1a9agubkZW7duxYoVK+7bhYxyHmtckpiu64hGo+jq6sK5c+fQ1dWFa9euob29HaFQCMlk0qzHWVRUhLq6OmzevBllZWVYs2YNtmzZAp/Pd98mx7SkMCRodhKJBHp6etDT04PR0VFzKz9ZluF0OrFy5UpUVVWxY3L5YEjQzBm3LfP9u5TTGBI0N1N9PxgMyw5L6tPcMAyIazeISIghQURCDAkiEmJIEJEQQ4KIhBgSRCTEkCAiIYYEEQkxJIhIiCFBREIMCSISYkgQkRBDgoiEGBJEJMSQICIhhgQRCTEkiEiIIUFEQgwJIhJiSBCREEOCiIQYEkQkxJAgIiGGBBEJMSSISIghQURCDAkiEmJIEJEQQ4KIhBgSRCTEkCAiIYYEEQkxJIhIiCFBREIMCSISYkgQkRBDgoiEGBJEJMSQICIhhgQRCTEkiEiIIUFEQgwJIhJiSBCREEOCiIQYEkQkxJAgIiGGBBEJMSSISIghQURCDAkiEmJIEJEQQ4KIhBgSRCTEkCAiIYYEEQkxJIhIiCFBREIMCSISYkgQkRBDgoiEGBJEJMSQICIhhgQRCTEkiEiIIUFEQpZpfi4tylEQUc5iS4KIhBgSRCTEkCAiIYYEEQkxJIhIiCFBREL/DzC527wKSBcdAAAAAElFTkSuQmCC\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": "iVBORw0KGgoAAAANSUhEUgAAAQkAAADnCAYAAAANUaMiAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/d3fzzAAAACXBIWXMAAAsTAAALEwEAmpwYAAAqOUlEQVR4nO3d6W9c13k/8O+sd/aFM0NySA5XkZQoaq8sKZaTyIbkCIm8JEgNBI0BJ0iAoC/7A/o39N3vVdE2b34o4DROGtdtjLZeJCdO5GixbFMSxUXc1+Fw9rmzz9z7e2E8J0OKvCQlSkNHzwcQEovbJcX7nXPPec5zdKqqgjHGNqOv9wUwxvY2DgnGmCYOCcaYJg4JxpgmDgnGmCbjFm/npY+/INVqFT//+c/x+9//HkajETtZ2dLpdKhUKjh37hx+/OMfw2AwPMYrZXWg2+wNW4UE+wui0+kwOjqKX/7ylw/9OYLBIPR6HoA+Tfhf+ynzqDe40civK08bDgm2I1x89/ThkGCMaeKQYIxp4pBgjGnikGCMaeKQYIxp4pBgjGnikGCMaeKQYIxp4pBgjGnikGCMaeKQYIxp4pBgjGnikGCMaeKQYIxp4pBgO6LTbdrAiP2F4pBgO8L9JJ4+HBKMMU0cEowxTRwSjDFNHBKMMU0cEowxTRwSjDFNHBKMMU0cEowxTRwSjDFNHBKMMU0cEowxTRwSjDFNHBKMMU0cEowxTRwSjDFNHBKMMU0cEowxTRwSjDFNHBKMMU0cEowxTRwSjG1ALlZwZXQFiWyp3pdSd8Z6XwBje9GP/t9N3JiOo9tvx5X/8816X05d8UiCsQ3Mx3MAgIVkHpWqUuerqS8eSTC2gf/72lH84sYcvnO4BUbD0/1ayiHB2AZOdftwqttX78vYE57uiGSMbYlDgjGmiUOCMaaJQ4IxpolDgjGmiUOCMaaJQ4IxpolDgjGmiUOCMaaJQ4IxpolDgjGmiUOCMaaJQ4IxpolDgjGmiUOCMaaJQ4IxpolDgjGmiUOCMaaJQ4IxpolDgu2ITqer9yWwJ4xD4inzqDd5uVzepSthXxUcEk8RVVWRyWQe+uMtFgtOnToFVVV38arYXsch8RRRFAWxWOyhP35wcBDnzp2DXs+/Nk8T/td+iuh0Onzta1+D0+nc8cdaLBY899xzsNvtj+HK2F7GIfEUMRqNeOmll3D69OkdfUxrayveeOMN/PSnP4XNZnuMV8j2Ij7B6ykTCoXw4x//GIlEArdv30ap9OdTs3U6HUwmE+x2OxobG9Hd3Y2jR4/i+PHjOH36NFpaWvhR4ynEIVFn1WoViqJAr9dDp9Nt+yZUVXXNBKJOp9vWyoUkSTh//jxUVcWvfvUrDA8PI5vNQqfTwev14sCBAzh16hQGBwcRCoXQ0tICt9v90N/fTtH3Rd8b/VxY/ei2mKnmaezHKJFIYHx8HLFYDC6XC01NTWhoaIDdbofJZFpzg9CNU6lUUCwWkc1mkcvlUC6XYTKZ4HA4YLfbIUkSDAaD5o1VqVSQTCYxPDyMzz//HHNzc1BVFR0dHTh69CgOHDgAn88Ho9EovvbjuFHpd09RFCiKgnK5jGKxiEwmg1QqBZ1Oh9bWVng8Hg6Kx2/THzCPJOqkXC7j9u3b+Od//mfMzMzA5/Oht7cXzzzzDA4fPoyWlhZYrVZxw6uqilKpBFmWsbi4iPHxcUxPTyOdTsNms6GzsxMDAwNob2+Hy+WCyWTa9MbS6XTiY8rlMmw2G4rFIpqbm+H3+2G1WgH8ORx28wZdHwwUerlcDvF4HMvLy5iYmMD9+/eh0+lw8eJFPPvss+Ka2JPHIVEniqJgZWUFo6OjmJ+fx8LCAqLRKBRFgcPhgMPhgNFoFDepqqpQFAWlUgnpdBrLy8uYmZlBPB6HxWJBuVyG2+2Gx+MR4bLRUJ1uzEwmg7m5Ody5cwfj4+PIZrPw+XzI5/MwmUxob2+HwWDY8fe1VQ0FfR/ValWMHPL5PNLpNKLRKBYXFzE9PY2JiQlUKhUcPHgQJ0+e5JCoIw6JOjEYDPB6vfD7/VhdXRU3ZLVaRbVaXfMqrtfroaoqjEYjbDYbfD4fQqEQ8vk8bDYbJElCMBiE2+0WIwi6WWtv2mq1imKxiEgkgi+++AIfffQRPv30U6ysrKBcLsNqteL+/fvI5/P41re+hdbWVvHIsRVVVR+4dr1ev+EjU7VaRaVSQblcRrlcRrVahV6vh9VqRUNDA4LBIBKJBAqFAmw2Gz9q1BmHRJ0YDAa0tbVhYGAAyWQSqqrC6/XC6XSumVeoHe4bDAZIkoSGhga0t7dDVVUEAgGYzWY0NzejsbERNptN3Jh0s9KNmcvlsLi4iKtXr+J///d/8dlnnyEWi6FcLosQyufzCAQCOHToEBobG7ec3wC+HJ0UCgXE43HEYjFUKhU4HA643W5YrVYxvwJABESxWESpVEK5XBYTt3a7HYFAAOVyGfl8HrIsw+v1PtSIhu0eDok60el0aGxsxOnTp8Vw2+12w+/3w2KxPHBjUlgYDAZYLBZ4PB4Ui0U4nU6YzWb4fD64XC6YzeY1NxUFRD6fx9zcHK5cuYL/+q//wvDwMJLJpAgICpN8Po9UKoV8Pr+t8mtFURCPx/Hpp5/id7/7Haanp6HT6dDS0oLBwUH09fWhqakJVqsVOp0OlUoFhUIB+XwepVJJLLuazWYxARsIBJDJZJBOp+F0OnnZtc44JOrI4XDgyJEjUFUVKysrIjjohlq/HEhq6xmMRiPMZjMcDocYgRD62FKphHA4jD/84Q9455138MUXXyCbza7ZrEXvazAY4PF4tnVzKoqC5eVl/Md//AfefPNNjI6OolAowGAwwOl0orOzE8eOHcPAwACam5thMplQLBYhyzJyuRz0ej2cTif8fj/8fj8cDof4vrxeL/R6/YaByZ4sDok6MplMCAaDAIDV1VXkcjlIkgSLxSJGAIqiAPgyGGjCr/bZn962/kait5XLZaRSKQwNDeG9997D7du3IcsyKpXKhtfkdDrR3d2NxsZGMXG6EVVVEQ6H8eabb4oVGrpWAOJxIRaLYXJyEk1NTTAajWIUUalUYLFY0NzcjN7eXgBfVndarVYRfGazmesk9gAOiTrS6/Ww2Wxobm6GzWZDJpNBtVqF2WwWqxB6vV7MC1SrVZRKJeRyOTEcp8k/k8kESZLExKVer0e1WoUsyxgfH8fly5dx69YtpNPpTQPCYDCgtbUVBw8eRENDg+ZIIpPJ4N1338XPf/5zTE1NPfB2mqdYWVlBsVjE3NwcdDodisWieMSxWq0Ih8OoVCqw2Wyw2+0wGAwiBCuVypowZPXBIVFn9Oqp0+nExCEFRKFQEI8AVEiVy+WQTCYRiUQQi8VQLBZhsVhQKBTESIM+X6FQwPT0NC5fvoyPP/4Yq6urmwYE8OUmrv7+fvT29orPsZFqtYrbt2/j3/7t3zAxMbHp56MCKZp/oNUVGiGZzWaUy2XY7XYx8Wo2m8X3Kcsy8vk8qtXqI/+c2cPjkKgzmoykyTuqHaCbqVwui5CgasRIJIKlpSWsrKwgm83CaDTC4/EgHo8jEAjA4XCIOoxr167h/fffx8zMzJp9GhvxeDw4ePAgWlpaNB818vk8rl+/jqGhIc3PZzQaYbFYIEkSVFVFoVBAqVSCoihiDkSWZbEqkkqlYLVaUa1WkUgkEI1GkU6nOSTqjENij6GCqXK5LAKE6iQKhQJSqRRWV1cRDoexvLyMZDKJSqUCs9kMl8sFt9sNs9mMXC6HmZkZ3LlzB3NzcygUCppfV6/XiyXZrbaSJxIJjI6OQpblTd/HZDIhEAigvb0ddrsdsVgMy8vLYsmz9vulR4tCoYBcLod8Po9IJIKVlRWxRMvqh0OizqgCkW4SWZaRTqdRLBbFIwgVNNHKgCzLYn9DNBpFLpdDpVIRE5iVSgXZbBaxWAzxeBzFYnHL53qz2Yz9+/eju7t7y9qITCYj5hI2+1w9PT14/vnnMTg4CAAYHR3F9evXMTk5CVmW1xSHeTweuN1uSJKESqWCdDqN1dVVLC0tIRKJoFgsPuRPl+0GDok6q1arKBQK4saIRCKifoFuIovFAqPR+MBEHn0s1TUUi0VUKhWUSiUUi0UxvN/OxJ/f78fhw4cRCAS2XE2QZVkUgK1nMpkwMDCAv/mbv8ELL7wAv9+PUqmEnp4e8dixsLAgKjw7Ojpw6NAh9Pb2oqGhYU1hVjQaxcrKypajIPZ4cUjUEd0Qq6urWFxcxNzcHMLhMDKZDHQ6HRwOBzwej9iPQR9DqxdUS7G+QIlWPGgVYSt6vR69vb04duyY5oQlff1YLLZpG7zW1la89tpr+N73vofm5mYYDAaxekFFW8PDwygUCggEAhgcHMTBgwcRDAZhMpmQSCRQrVaRSqUQj8cRiUSQy+Ue7gfMdgWHRB1Vq1XEYjEMDw9jZGQEMzMzYgVCkiR4vV40NTWhWCzC4/HAaDSKUQKFQaVSESMM+l9aPdju0qHb7cYzzzyDnp6eLUugc7kcxsfHEY1GH3ibJEk4duwYnn/+eXHTU6C53W709/dDURR0dnZCVVUEg0F0dHTA7/dDkiSxj0NVVWSzWTFJm81mH+rny3YHh0QdlctlzM7O4k9/+hPu3r2L5eVl5HI5qKoKSZLEikUymURDQ4O4kZLJJMLhMCKRCNLpNAqFgpgQXN+IZqugoMeDb3zjG/B6vZqjCFVVMT8/j48++giJROKBt1ssFvT09KC5uXnNDla9Xg+j0QiXy4Wenh40NTWJ78/hcMBsNgOAWM6tVCpIpVLiESyZTIr9HezJ45Coo3w+j8nJSQwNDWFyclJMWAIQQ296FHE6nTCZTGJSMpVKIZPJrFlWrF010Ov1W44m9Ho9gsEgzp8/j0OHDsFkMmlebzabxeXLl3H9+vUNJy1porX2ZqalTro2q9UKq9UKm822ZvMXvY9er0cikRC7QCORiJgkpTBhTxaHRB0VCgUsLi5iaWkJyWRSlCvTcqcsy0ilUlhZWRGvzPRYQX82amFHr9706FAbHkSv16OhoQFf//rXceHCBfj9fs1X6kqlgrt37+LXv/41wuHwhu9TLpfFxGsgEBBfv1wuI5vNiglZ2qNhMpkeeLxJp9OYnZ1FIpFAqVRCMpnExMQECoUCh0SdcEjUEd0EsiyLOYb18wnrl/822vAF/Lkoi+oqaBmTyrPpc9KrvcvlwunTp/Hqq6+iv78fZrNZc59GPB7H22+/jc8++2zT76dcLmNqagojIyNwuVywWq3I5/NYXl7G5OQkIpEIXC4XBgYGYLVaxR4VeiwqFAoYHx/HyMgIZFmGoiiQZRnDw8OQZRkul+sRftrsYXFI1BEtV9JNTIVFtSGw3clHWuVQFAUmk2lNfQWNPoAvqyCdTicOHz6MV155BSdPntxyx2e5XMaNGzfw3nvvaRZQKYoitqMnk0kAwOzsLO7du4fZ2VnRq+LcuXN46aWX0NfXJ3Z5lstlLCws4A9/+AOmpqbE9SqKgunpafF1H1e/TbY5Dok6UVUV5XJZ1DHs1iYmChpFUcSGLwoAg8EAl8uF3t5eXLhwAc899xwCgYBm9ylFUbC6uooPP/wQk5OTW379dDqNTz75BENDQ2J1IpVKiarJ6elpRCIRAMB3v/tddHR0wGAwIBqN4v3338fvfvc7pNPpNZ8zmUyKv+OAePI4JOqkdpmvdm/CboQFLYPq9Xq4XC7Y7XbYbDbR4+HkyZM4efIkgsHglo8Z5XIZd+/exY0bNzTrFegxplqtYnl5ec2W8FqFQgETExN46623UCwW8fWvfx0WiwWff/453nrrLczOzj7wuWkCk0cR9cEhUSflchkrKysIh8O7Ppqgz0VNXej8jLa2NvT29qK/vx+tra1bFk5Vq1VEIhFcv34dc3NzG74Pdd52Op2w2Wyif8VGAUEqlQomJyfxy1/+EkNDQ5AkCWNjY5ient5wnwZtOa9Wq9vuucl2D//E6ySTyeDevXtYXFwUOz53E20x9/l86OvrQ39/Pzo6OtDa2opAIAC73b5pQxdqeJNIJHD9+nV88sknyGQyMBgMYpnSYrHA7/eju7sb/f39ouXcrVu3MDQ0pLklHfgyJOfm5rC6uiq2tW/2MTSpyX0l6oND4gmjeoDJyUlcvXoVkUhEjCQ2Wqp8WDqdDna7HaFQCAMDA+jv70djYyPcbjdsNtuGm7hoBFIul7G6uopPPvkEv/nNbzA8PCxexWm/xZkzZ/C1r30N/f398Pv9MBqNCIfDUFUVo6Oj27pGRVG2VU1JLfW4mKo+NEOCk3t30U05MzODt956Szzn7/bPWafTQZIktLS04ODBg+jr60NLS8uaTtwAHlhFqVarSCaTGBsbw+XLl/HBBx9gfHxc7CXxeDw4deoU/vqv/xpnzpxBc3MzJEkSrfVcLhf279+/64cK22w2hEIh7ppdJ5ohwZNEu0uWZdy9exdvvvkm/v3f/10cxgNgV18lTSYTmpubcfz4cRw9ehStra3iTI7agKDaCTr2b2JiAlevXsWHH36I4eFhJBIJ8QhgNpsRCoXw6quv4vz586K9Hf2OUCs+auS7m6iDNl03/14+WZohcefOHciyzP8oj0hVVUQiEdy6dQvvvfce7ty5s+YZu/aw4EedwDQajQgGgzh79izOnTuH7u5u0Yhm/dkX+Xwe0WgU9+/fx82bN3H16lUMDw8jHo9vOD9AbfLdbvcD8xl0/VarFZIkPfT1r6fT6XDq1Ck0NDSI/2ZPlmZI/OM//iPeffddmEwmfvR4RKlUCqlU6oF5B9r8VDuS2GrSbyM6nU50uj537hxefPFFDA4OwuPxrDnVi/Z+hMNhDA0N4dq1a7h58ybu37+/4fXVcrvdaGho0GxtR9ey3Wve6veqqakJly5dgt/v39bnZLtPMySSySQWFhae1LU8dXQ6nTgzg5rK5PN5ANsPCovFAp/Ph/b2dhw9ehSnT5/GsWPH0NraCpvNJm5omnPIZrO4f/8+Ll++jPfffx/Dw8NbhgOhVvebrYhQA9vaUutaer0eDodDXBedjL5ZYxydTodvfvObOHHiBI8g6kgzJOj5dTuJz3bO5/PhwIEDaGpqEpujlpaWEIvFNJcEJUlCIBBAV1cXBgcHcfz4cezfvx+tra3wer0PHBhce0jP0tISPvjgA7z99tsYHx/fUdcnrTMwVFVFLpcTnaSosEpVVdhsNgSDQRw4cAADAwMIBoMolUprWtpt1GKvq6sLr776KkKh0PZ/qGzXaYYEvbpwQOy+pqYmfP/738eFCxfgcrkQjUYxMjKCW7du4d69e1hZWVlTkGQwGGC328WI4dlnn8Xx48cRCoXE6V0bzRPQv52iKMjlcrhz5w4uX76M+/fv7yggaAMZBU7t16Fl0/n5eYyMjCCXy4lO2U1NTXj22Wdx4cIFHD9+HH6/HyaTCaVSCfPz8+jq6sKvf/3rNddDKymXLl3CmTNneFWjzrhOog4sFgtefvll/O3f/i1CoZBoLR8KhdDQ0ACr1YqRkRHE43HRC7KtrQ3Hjh3D2bNncezYMTQ1NcFisawZ7W2EgkJRFKRSKdy9e1dsvd4J2jBG29NrTy2nG/7KlSu4efMm8vm8qKd45ZVX8Morr6C7uxtWq1XMvSiKIo4pzOVyeOedd7C4uCj+/q/+6q/w4osvorGx8RF+0mw3cEjUQVdXF37wgx+gp6cHRqMRqqrCbDaLCUxJkhAMBpFIJGA2m9HW1oZDhw5hcHAQzc3NsFgsOz7+jvpGzs3NiW7VO0HXRn00jUajKIaanJzEBx98gP/+7//G5OQkSqUSvF4vzp49i0uXLqGvr0/UUxA6+LirqwsXL15ELpfDtWvXkMvl0NLSghdeeAF9fX1chr0H8L9AHfT19WH//v2iExRtjnI4HGhra4Ner0draysqlQpcLheCwaAopd5qZWEz9Iq/3ea4tag4q1AoYGlpSWzvjkajuHv3Lj766CNcu3YNS0tLosu31+vFkSNH0N7evulkJy2Z9vX14cUXX4TD4UA0GkVjYyP27du360VZ7OFwSDxhRqNR9KusRc/8drsdLS0t8Pl8MBgMos3bbhyeSyshNpsNuVxu22Xg1J9iZWUFV69exb1795BIJDA2Noa7d+9idnYW2WxW7Dw1GAzwer0IhUKw2WyahWK0ff3AgQPQ6XSYn58XoVkoFFCtVnlOos44JJ4wqm6kI/fWLxdSMND+CqqSfNiAqP28Pp8PJ06cwNjYGD7//HOk02nNUQXdrHRextTUlNi1Go/HkUgkNtztaTAYEAgEtuxVQV/DZDLB6/Wio6MDqqpiZWUFS0tLMJvNcDqd8Pl8vARaRxwSdTA6Oorh4WF4vV6xYkBVkLTLklrRPUpA1KIRzJkzZ6DT6dDW1oY7d+6IDt21/TLXt8LT6/UoFotYXFwU3bTWH9dXy2q1or29fcuTyYlerxf1IpIkIZFIYHx8HMPDwwCAM2fO8KNHHXFI1MHU1BT+5V/+BSaTCX19fdDr9aKNHS0drg+G7e5ZWD8yqC39ttls6Orqgt/vx4kTJzA1NYW5uTnRPapQKKBQKKBYLCKXyyGRSIiW/lT0tL757npUFn7o0CG4XK5tXXNtKBUKBUxOTuL69euiEXBTUxMOHjzIo4k64ZCog2KxiHfffRfRaBQnT56Ez+eDJEnw+/1oa2sTRVE03K99hScb9cGsXZqsPeWL/j+NUKgXxMDAAMrl8ppwyOfzotL2xo0buHr1KqLRqDhCUAvVN5w+fRqHDx+GzWbb9o1NtRbLy8u4d+8eZmZmREXm4OAgOjs74XA4dvRzZruDQ6JOZFnGlStXcOvWLXEaeFdXF06dOoVnnnkGXV1dcLlcIiQqlYo435MO46FelgBEAJhMJtjtdlH+bDab19RSrF+GNJvNsNvtAP68XbxQKKCpqQmJRALXrl0TI4itWCwWHDlyBBcuXEAoFNr2Skxtk5vR0VFMTU1BlmVUKhUsLS3hvffewyuvvMIhUSeaIUHPk1yW/XgoioJEIoFkMgmz2YxIJIJMJiP2QPh8PiiKgmQyicXFRczOzmJxcRGJREKsJgBfrj5YrVZ4PB60tLSgv78fAwMD6OjogMfj2fSU8PV/RyFisVjgdDphNpuRz+c3bCm3ntFoxL59+3Dp0iWcOHECDodjRwGRy+UwMTGBzz77DJFIZM3XnJycxMrKCrq6urb8fGz3aYYE/RJyQDxeVMNAE3YmkwnxeBwulwupVArT09OYnp7GysqKCBHaF1H7PE/9HA4fPixqLOggnO2qHW3IsoxsNrutx4xAIIDz58/jG9/4Bvx+vwimzX53ak9Gz+fzmJmZwccff4yRkZEHqkEzmQwWFhZ4ObRONEOC1rp5q/ijUVUV0WhU88wKeiZPpVJi27bBYEAsFkMkEhEH+Gz0cYqirDk8mM7kPHToEFpaWh7qmmmZczudsxwOB06ePIkXXngBbW1ta7am0/WtP4awdgQxMzOD//mf/8GVK1cQi8Ue+HrFYhGRSASKonBI1IFmSPzsZz/D66+/zrPKj4BKrn/1q1/hH/7hH7Z833K5DFmWxZJoJpPZ9pC/Wq2KichsNivOCN1JwNPNK8syEonEll/XbDajo6MDZ8+eRU9PD8xms5hDofmNTCaDVCqFbDYrPp+iKGKEcOPGDXzyySeYmZnZMAgVRdl0Ozl7/DRD4tChQ0/qOv7iBYNBOBwO/Pa3v8XQ0NADx/cBfx7qK4qCYrGIUqm07UlD+ngqfqJdoTtFN3gmkxEjn80eG4xGIzweD/bv34/Ozk6xu5OCanV1FVNTUxgbGxPnexaLRSiKgkqlAlmWxbECNFG5EToagF+s6oMb4T4BqqoiGAzi7/7u7/Dtb38b//RP/4S33noLqVRKvA9VHkqSJOokdtKhihrYuFwuNDU1iQ5SNJLYTp0FPRrQq7+qqrBYLDCbzQ/0ezAajbDZbAgEAvB6vcjn85ifn8fS0hLS6TSmpqZw584djI6OYn5+HplMRgQEXRONlrb6PbNYLAgGg7zZq064Ee4TQD9Hq9WKI0eO4O///u8hSRLefPNNJJNJsfPT6XTC6/XC6XSiUqmI4T49RmyGPt7v96OjowM9PT3iVG86zWuzFY5a9LiTy+XEdu+Ghgbk83kxwqFDf0wmE2w2G0wmE8LhMP74xz/ixo0bSKfTWFxcxMLCAiKRiHhUepTendSXgkY0/Hv5ZHE0P2E6nQ4dHR34yU9+gkKhgA8++ACKosDn84mDcywWC7LZrNjsRDfX+lddCge3241gMIiuri50dHSgvb0dLpcLlUoFhUIBVqtV1CxsdoPRIwDNZ1SrVfh8PnR2dkKv1yOZTIp9GhQUAERFJjX3pT80H7IbXC4XnyheRxwSTxgtWfb29uL1119HMBhEJpNBc3Mzmpqa4HA4RP3E1NQUHA4HJiYmEI1GxU1KRVAejwft7e3o6enBvn370NTUJDaGGQwGZDIZxGIxMYrYqEkNvcJTsRaNIgwGA4LBIFRVhdfrRSQSQSwWQzKZhCzLYr9HKpVas+9kt+n1ehw5cgQej2fNdbMnh0OiTiRJwuHDh+H3+5HL5cR2cJ1Oh2KxiGQyiYaGBjgcDrjdbszPzyOVSomeka2treJcz1AoJNrc5/N58eqeTqfF0qmiKPB6veJwntpS7mq1ilKphHw+j1wuh3K5DEmSRPcrOueTultRmNCS6+PkdDrx/PPPi5b67MnjkKgTnU4Hh8OBjo4OVKvVNW3mSqUSbDYbJEkSI4auri7k83nxfN7R0YG2tjb4fD5YLBYAXx6sG4vFxGHEsVhMFGbREqLH41lTqk01FhQQdB4INZbR6/UoFArQ6XTIZrNIJpNiEvJJTGxTvQcFG48knjwOiTqiOYXaSb3aqkKadJQkCa2trdDr9XC5XPD7/fB6vbDb7WL0Qfs4qIybVhpUVUUikYCiKGJ1wOl0ioInGkXQBi8aGdBekEqlgng8jvn5eczNzSGRSOy4P+bDkiQJL730Evr7+wHwo0a9cEjUGZ3aBazdzUlnXFitVrjdbnGOJ03i0coCfTwFRD6fRywWE/UHNFJwOByiKxXtBKUVC6ptqG1tpygKZFnG0tISRkdHMTIyItrl7xQFmVYPio0cP35ctLVj9cMhsQfULu1ttB2cdndSxypJkkRj2tryZzqdi04Ly2azUFUV2WwW6XRaPCrQFm69Xr+mpLv2cYea5g4NDWFoaAiLi4vi4KDtMplMCIVCOHDgAGw2G2ZnZzE2NramPmQzra2t+OEPf4gjR47s7IfJdh2HxB6xvqqRbl56la+dbCTrJx+pHwTNF9CqBgUKLXPSqMFgMEBRFLE6QZWSqVQKCwsLGB4exhdffIH5+XnkcrkdfT9GoxFHjx7F66+/jlOnTsFisWB2dhb/+Z//id/+9rdYWVnZ9GO9Xi9+8IMf4Dvf+c6uHz7Mdo5DYg+im55u2lwuB4PBILpW0cQjhQC9L80pGAwGWK1WcXygx+NZc4APBUPt5rBSqYRcLodkMomlpSXR5HZhYUGMSHais7MTP/3pT/Hyyy+joaEBOp0Ovb296OzshMvlwi9+8QuEw+EHPs7v9+O1117Dj370o4fenMZ2F4fEHrHRTUiPELUnWxmNRjGxSZOP9D60gmGz2eD3+8Vjic/ng9/vFy35AYiJThqBUECEw2FMTk5ibGwMc3NzYmv6TlitVrz44ou4ePHimj6XkiShv78fb7zxBlRVxW9+8xsxb2I0GtHS0oKXX34Zb7zxBrq7ux9q7wnbfRwSe0Tt4wadNG42m0UviNolRyqfppEBbbmmpUqHwwG/3y96SXg8Hng8HnFADo0e6PGDAmJ1dRXz8/OYmZnB4uIi0un0Q9VBtLW14fz58/D7/Q/06qTmND/84Q9ht9vx8ccfI51OIxgM4ty5c7h48SL27dsnApDVH4fEHkNLj5IkweFwrFmapH0QhUIBDocDFotF9PooFouinJpKtWkFhJZKadNYsVgUe0IKhQLS6TRWV1exuLiI+fl5hMNhERA7raLU6/Xo7u5GX1/fhofy0EE/vb29+P73v4++vj6kUimEQiEMDg4iGAxuepgPqw8OiT2EbgzaQGW320WtRKVSQSwWEysXJpMJFotlzeiAJi6pOUvt4wl1v6o9J4N6VyQSCXHWRSwWE/0sqIR8J0FhNpvFtngtkiShpaUFJpMJxWIRbrcbDQ0NPILYgzgk9qDaLtdOp1MEQDqdRj6fF6/ytIejdvWCJiEpCGgOgp7vK5WK2EJOo4hoNIrV1VXE43HIsizmCCRJEgGxnS3dAEQ40ftvdsPT56JGv+vrPXbjrBG2Ozgk9ih6FafHDnp8oK7SqVRKLGPSid+1pd00mqD6imKxKEYatIWc2ufHYjFEo1Gk02lxlicVb9HqCi2tbtWpijpcLy4uikeH2glIWrmhoq/l5WUxkqhUKvB6vbBYLGIExO3q6o9DYg9bHxQOhwMGg0Fs4qJXfTpTg155aRRClZV2ux1OpxOFQkHsBKXOUHQATyqVEpu7jEaj2F4OfLknJJFIiHDS2rdRLpcxMjKCDz/8EE1NTQiFQmKOgVZrZFnG7Owsbt++jcnJSeTzefh8PnR1daG7uxuNjY1iUxmPKOqPQ2KPqw0Ku92+ZjOXLMviUN3alQ/6GLrZXS6XKMqiastisYhUKiXO9MxkMiiXy2JikVr0OxwOVCoVuN1uGAwGcdLYZiMKRVEQDofx9ttvQ5IkXLx4UZwsXq1WRaPfq1ev4tNPPxVHB7pcLnR3d+P48eM4evQourq6xL4WDon64pD4CqCJTCqQold5KqEuFosPtIKjRxBqLEujDVqxyGaziMViYjK0tleFxWJZszOVSrvpfeiohc2USiWMjY3hX//1XxEOh3H27Fk0NzejXC5jZmYGN2/exKeffoqFhQXk83moqgpJkpDJZGC1WkWNxHa6abHHj0Nij6ObhKooGxoa0NjYiNXVVWSzWTHXQL0dKCgoJIxGoyi0olEHPT6srq4ikUhAlmVRN0ErIplMBvF4HCaTSSy/yrIsVk+2UiqVMDU1hXfeeQfj4+Po6OgAACwuLmJiYgIrKyvI5/MijKjWw2w2IxAIwOVy8UrHHsEh8RVAm7Ho8J3u7m6xSlF7CE7tKzwdPly7q5NGHalUSqxoUFOa9UcGZrPZNd27t7u6UatUKiEcDiOfz2Nqagomk0lsQKNRCU2w6vV6NDY24vjx4+ju7obdbudJyz2CQ+Irgh4DAoEA9Ho97HY7Ghoa0NDQgOnpaVHjQK/O9IhCHbjp8SSXyyEejyMWi4nmMesDYDfb0JXLZVHaTfMStV+PHit8Ph+ee+45nDlzBl6vlwNiD+GQ+AqgkQSVYVNFZVNTE4LBIJqbmzE6Oorp6WnRCxOA6MBNcxi1W8llWd7Wkuajqt2sRv9N3xONgjweD5599ll8+9vfRnt7+46OJWSPH4fEVwQtBVIBldVqFS34A4EAfD4fvF4vpqenEY/HUS6XRY1E7YpINptFLpdb04XqcaJHFvpD9Rz0/TgcDpw4cQLf+973cOjQIXGtbO/gkPgKqK1/oOpEKpSipVG3241AIIBQKITl5WXIsgxVVUX3KnoMASDmIJ7U4Ut6vV7Ua5jNZvG92O129Pf349KlSzh9+jSf0rVHcUh8xdQGBoWF2WyG3W5HY2Mj9u/fL8q3a8/dzGazogpSkiSMjY0hmUw+tuvU6/Vwu91oaWlBKBRCMBiE1+sVm86ooW9/fz/27dsHj8fDW8P3KN0WryZ8zt9XCJVk1/4v/T0tfUajUdy7dw83btzAZ599htHRUayurooj+B4W7TPp6OjAvn37EAqF0NnZiX379qGtrQ1ut1tUe9Ifs9ks9p7wCKLuNv0H4JB4ilBhVLVaRTabxdzcHMbGxrC4uIhkMin+xGIxRCIRRCIRpNPpDQ8tpirQ7u5unDhxAu3t7fD7/ejt7UVfXx98Pt+aOoeNQoCDYU/hkGDaaNNVNptFJpMRW9JzuZwIido6CgqJ5uZm9PT0wOv11vk7YI+IQ4JtrHZJci98HlY3HBJsZ3ay8sHB8Bdh039EXt1gG+IbnxFec2KMaeKQYIxp4pBgjGnikGCMaeKQYIxp4pBgjGnikGCMaeKQYIxp4pBgjGnikGCMaeKQYIxp4pBgjGnikGCMaeKQYIxp4pBgjGnikGCMaeKQYIxp4pBgjGnikGCMaeKQYIxp4pBgjGnikGCMaeKQYIxp4pBgjGnikGCMaeKQYIxp4pBgjGnikGCMaeKQYIxp4pBgjGnikGCMaeKQYIxp4pBgjGnikGCMaeKQYIxp4pBgjGnikGCMaeKQYIxp4pBgjGnikGCMaeKQYIxp4pBgjGnikGCMaeKQYIxp4pBgjGnikGCMaeKQYIxp4pBgjGnikGCMaeKQYIxp4pBgjGnikGCMaeKQYIxp4pBgjGnikGCMaeKQYIxp4pBgjGnikGCMaeKQYIxp4pBgjGnikGCMaeKQYIxp4pBgjGnikGCMaeKQYIxp4pBgjGkybvF23RO5CsbYnsUjCcaYJg4JxpgmDgnGmCYOCcaYJg4JxpgmDgnGmKb/DzHBUxiwZkyMAAAAAElFTkSuQmCC\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": "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SZIwNjaGSCQCRVEQj8cxNzeHTCbDg4kVh7Gj8OyaQ7bTQbqLQuI3BLt5OxwOIxaLodVq8Sa12Wy2426L1XeCsoImFiaSJPGmNGzK0n4vhiAIKJfLHXeRbnZ3o50sy0gmk6hUKpiZmYEoivzCHzZtYTsdoigiEAjg9OnTGB4e5ofQSPdRSOxy7bd0Wa1WhEIhiKIIl8uFYDAIn8+HmZkZ3mSGdY5q777N7gNl1ZVsmsGG+KtvCt/ONnRs7YRNZVbfocFGLh6PBy+++CLOnTuHQCBAN3XtIvQ38RugvQqT/bfH40EoFEJfXx/6+vowNjaG2dnZjlu32i8PZguHbNrALsp52u3n2g+Qsf8NoOO2c4fDgbNnz+LixYvYt28fX28huwOFxC7Hqg/Zm4oVUFmtVjidTvh8PvT09CAQCMDr9WJmZoa3utPr9bwqk/WbYGXeW7n05+s+//Z/ZiMcdgrVYrHgyJEj+P73v4/jx4/zO0fI7kEh8RuAvWnaA4PtVphMJthsNrhcLgQCAUSjUSwtLaFUKkFRFP6pXKlUeCiwHYqd6FHZarWg1+thMpl4a3/GbrfjwIEDuHDhAl566SW4XC4KiF1It8G/KHSF1y7XfmFwpVJBsVhEoVDghVFsa7RUKiEej+Pu3bu4ceMGHj9+jGKx+NSelyAIcDqdCIVCiEQiCIVCcLvdvMGv2WxGT08PDh06hOHhYXi9XlqH6K5105lC4rdI+w3eqztYsTMbiUQCDx48wKefforbt2/j0aNHSKfTX/syHZ1OB7vdjoGBARw4cACRSAQDAwPYt28f+vr6eECwtnmshoOVX9MIousoJAg6AoPd6D0xMYHl5WW+45HP55HJZJBKpZBMJvnNXasXONkUYnBwECdPnkQ0GkUwGMT+/fsRi8Xg8/k6joqvFQIUDLsKhQTRxk6ElstllEqljmkLC4n2OgoWEj09Pdi/fz88Hk+XXwH5migkyNra6xV2w88hXUMhQbZmKzsfFAy/Fdb9S6TlZLImeuMThhoJEkI0UUgQQjRRSBBCNFFIEEI0UUgQQjRRSBBCNFFIEEI0UUgQQjRRSBBCNFFIEEI0UUgQQjRRSBBCNFFIEEI0UUgQQjRRSBBCNFFIEEI0UUgQQjRRSBBCNFFIEEI0UUgQQjRRSBBCNFFIEEI0UUgQQjRRSBBCNFFIEEI0UUgQQjRRSBBCNFFIEEI0UUgQQjRRSBBCNFFIEEI0UUgQQjRRSBBCNFFIEEI0UUgQQjRRSBBCNFFIEEI0UUgQQjRRSBBCNFFIEEI0UUgQQjRRSBBCNFFIEEI0UUgQQjRRSBBCNFFIEEI0UUgQQjRRSBBCNFFIEEI0UUgQQjRRSBBCNFFIEEI0UUgQQjRRSBBCNFFIEEI0UUgQQjRRSBBCNFFIEEI0UUgQQjRRSBBCNFFIEEI0UUgQQjRRSBBCNFFIEEI0UUgQQjRRSBBCNIkb/LluR54FIWTXopEEIUQThQQhRBOFBCFEE4UEIUQThQQhRBOFBCFE0/8HKV2pKW8TOkIAAAAASUVORK5CYII=\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": "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\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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2WyW96XQ6/V85ySfz294i/hGyuUyZmZmUCgUMDExgc7OTtRqNSwuLmJubg6JRIIvsLI1C0VRYLVa+TWHVCuxP1BIfAmwUYHFYoHf78fBgwd530pRFBGPx5sWLDfrJ8k6SBUKBcTjcX4TGJtCsIdfEAQUCgX+8G63Ye16lUoFkUgExWIRs7OzEEURhUIBuVyOh1vjyMfn8+HkyZMYHBzk6y+k9SgkviTYNIBVMdpsNrS1tcHtdmN+fh6rq6tIpVL8gBer2mS3dbNKS7boyRY+WQ+KxgDYzTZ0rG8m67ytKEpT/0tWYerxePDMM8/g6aefhs/no5u69hH6k/gSaNzlYAVSTqeTd8YOBoO4e/cu5ufneUUmuxTIYrHwo+Vs2sAWKrd7EfCDaDyoxv678Tg8K6x68skncfbsWfT19VFA7DP0p/ElwR6qxpvDnU4nPB4P/H4/fD4f2tra+HxfURTe/LZxR6RUKvG1jJ1c+nO/Gg+tse+jsWu3xWLB2NgY/u7v/g7Hjh3jxVVk/6CQ+BJofNAaFyXZVMJqtcLpdMLn86G7uxsrKyv8Riz2QBaLRd6rcv1OyMPGSsitVmtTJaXNZkN/fz9ee+01nDlzBg6HgwJiH9Jt8ReFrvDa51iJM2tmm81meWcq1vyW3bu5srKCmzdv4sqVK5idndVs/PKgBEGAw+FAIBBAKBRCIBCA2+3mlZQmkwl+vx9DQ0MYHByEx+OhaUZrbZrOFBJ/RRpv8G7c5WBBUSqVsLa2hvHxcVy9ehXXrl3D1NQU4vH4A1+mw0YGPT09vM1/T08P+vr60NXVBZfLxQOCjYTYlYZb3S5G9gSFBGnueJXP57GwsIDJyUmEw2Gk02leXJVMJhGNRhGLxZDJZJoa5TJsIbW3txcnTpxAKBRCe3s7+vv7cejQIbS1tTXVOWwUAhQM+wqFBNHGRhqsjmF9uXbjDV2CIPCQ8Pv96O/vh9vtbvF3QB4QhQTZWGMx0374PKRlKCTIzuxk54OC4a/Cpn+ItJxMNkQPPmGokSAhRBOFBCFEE4UEIUQThQQhRBOFBCFEE4UEIUQThQQhRBOFBCFEE4UEIUQThQQhRBOFBCFEE4UEIUQThQQhRBOFBCFEE4UEIUQThQQhRBOFBCFEE4UEIUQThQQhRBOFBCFEE4UEIUQThQQhRBOFBCFEE4UEIUQThQQhRBOFBCFEE4UEIUQThQQhRBOFBCFEE4UEIUQThQQhRBOFBCFEE4UEIUQThQQhRBOFBCFEE4UEIUQThQQhRBOFBCFEE4UEIUQThQQhRBOFBCFEE4UEIUQThQQhRBOFBCFEE4UEIUQThQQhRBOFBCFEE4UEIUQThQQhRBOFBCFEE4UEIUQThQQhRBOFBCFEE4UEIUQThQQhRBOFBCFEE4UEIUQThQQhRBOFBCFEE4UEIUQThQQhRBOFBCFEE4UEIUQThQQhRBOFBCFEE4UEIUSTtMWv6/bkVRBC9i0aSRBCNFFIEEI0UUgQQjRRSBBCNFFIEEI0UUgQQjT9f8B+hsRNfycOAAAAAElFTkSuQmCC\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" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 73\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: 74\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: 75\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: 76\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: 77\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: 78\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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0WjEsmXLYLFYkJ+fj+rqarjdboSEhCA7OxuLFi1CaGiovMxcq9UiJiYGS5cuRXV1td+nht8MjUaDxMRE5ObmYvXq1cjOzobFYpH7I3yzQWl8E4YZkuJ41QTh9XrlPgmv1wuNRgOdTgetVjtgtaUoirDZbDh8+DAOHjyIc+fOoaSkZFRqFqGhocjMzMSMGTMQHR2NpUuXIisrCyaTSQ4qGpeG/GAYEnc539mjFy9eRG9vLzweD3p6elBZWYkLFy6gsbFxyMlZgiAgPj4eK1askFebhoWFIScnB0lJSX4dUkzjBkOC/CeKIhobG1FZWYmOjo4hRyBUKhUiIyMxd+5cmEymMS4ljTKGBCn79vdgpM2CGx/PJsWExJCgkfN9N4b6jvjCgKFwR2BIEJGiIUOC8ySISBFDgogUMSSISBFDgogUMSSISBFDgogUMSSISBFDgogUMSSISBFDgogUMSSISBFDgogUMSSISBFDgogUMSSISBFDgogUMSSISBFDgogUMSSISBFDgogUMSSISBFDgogUMSSISBFDgogUMSSISBFDgogUMSSISBFDgogUMSSISBFDgogUMSSISBFDgogUMSSISBFDgogUMSSISBFDgogUMSSISBFDgogUMSSISBFDgogUMSSISBFDgogUMSSISBFDgogUMSSISBFDgogUMSSISBFDgogUMSSISBFDgogUMSSISBFDgogUMSSISBFDgogUMSSISBFDgogUMSSISBFDgogUMSSISBFDgogUMSSISBFDgogUMSSISBFDgogUMSSISBFDgogUaYa5XRiTUhDRuMWaBBEpYkgQkSKGBBEpYkgQkSKGBBEpYkgQkaL/D/MWUh0tNjGDAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 79\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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TCaDQqEQNpgJ17lz5/DXv/4VNTU1Yw678kcJjgw2MjNRn8QsxQ+BDg0NYXBwEFarFcFgEH6/X+ijUKlUMJlMow7pkUqlMBqNiI+Ph1QqFR3liLQGMZLH48GBAwcQCATw5ptvIi8vD0qlUgi3oaEh9Pf3w+l0Qq1WIzExEUajUehDITMHhcQsxjc3HA6HsKLT5XKB4zjhRO7CwkLExsZCJpMJd2++w3OiLe34IOL/O1JOpxMHDx5Eb28vnnvuOeTk5IBhGHR1daGmpgZNTU2w2+2Ii4vD+vXrsXHjRiQnJ09YLjK9KCRmKb6zkj8pKxAIwOfzwefzoaOjAxcvXhRWi86fPx86nU44Kau/v190tehID9qn4PF4hCMCsrKyIJPJ0NfXh66uLgwPDyMYDMJgMCA2Nhbr1q2jWsQMRCExC/EjGjExMcjOzsZjjz0m7EvJ1y66u7tRVVUFs9kMrVaLpKQkMAyD7u5u1NbWoqOjY9r2kvD5fGhra0N/fz/kcrmwQS+/2Y5EIoHZbEZcXBzNtpyBKCRmKZZlodfrkZ+fj1WrVqG9vV0Y5eA4Dl6vFxaLBXfu3EFKSgo4jgPHcbh16xauXbuG/v7+ae0sDAQCwvZ7/PsyDAO5XI7CwkKsWbOGTg2foSgkZin+AktNTcXGjRvR19eHY8eOwWKxCM0Ir9eL/v5+dHR0gGVZOJ1OXLp0CXfv3n3o6zfEsCwLlmUhkUiQk5ODl156adTpX2RmoZCYxRiGgUqlQk5ODl555RXodDpcunQJfX19wkKq9PR0GAwGsCwLh8OBvr6+sPsjppJcLkd8fLww6qJUKpGSkoKnnnoKTz75JLRa7bSWh4SPQmKWY1kWWq0WS5YsQWZmJrq7u4W9JXQ6HeLj46HT6cCyLIaGhoRt9cvLyyM+YzRScrkcc+bMQVZWFrKysjB//nykpKRAp9NBr9fDZDLBZDJBo9FQh+UMxkzQe03T5WYZvu+BXzR17ynefr8fnZ2dOHXqFC5evIhr164Jezo8KIZhkJ6ejqKiIphMJiQmJmLVqlUoKCgQ1o7wHZP82hMyY4yb0hQSjyA+QJxOJ65du4YbN27A7XYjGAzC5XLBYrGgtrYW9fX1cDgc454nyjAMMjMzsXHjRiQlJUEqlWLevHlYsWIF4uPjp/lTkQdEIUHCNzg4iPb2dnR3d8Ptdo87CsKyLBITE7FkyRI6YWv2o5Ag47v3b2Ay/QP3Ligjsw6FBInMvbthjeXerenIrEYhQQgRNW5IUPcyIUQUhQQhRBSFBCFEFIUEIUQUhQQhRBSFBCFEFIUEIUQUhQQhRBSFBCFEFIUEIUQUhQQhRBSFBCFEFIUEIUQUhQQhRBSFBCFEFIUEIUQUhQQhRBSFBCFEFIUEIUQUhQQhRBSFBCFEFIUEIUQUhQQhRBSFBCFEFIUEIUQUhQQhRBSFBCFEFIUEIUQUhQQhRBSFBCFEFIUEIUQUhQQhRBSFBCFEFIUEIUQUhQQhRBSFBCFEFIUEIUQUhQQhRBSFBCFEFIUEIUQUhQQhRBSFBCFEFIUEIUQUhQQhRBSFBCFEFIUEIUQUhQQhRBSFBCFEFIUEIUQUhQQhRBSFBCFEFIUEIUQUhQQhRBSFBCFEFIUEIUQUhQQhRBSFBCFEFIUEIUQUhQQhRBSFBCFEFIUEIUQUhQQhRBSFBCFEFIUEIUQUhQQhRBSFBCFElHSCx5lpKQUhZMaimgQhRBSFBCFEFIUEIUQUhQQhRBSFBCFEFIUEIUTU/wdBuB9vOm8RyQAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 80\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: 81\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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4IMPoqioCJFIBJcvX8bBgwfx3//+F4ODg8KtktPphMfjQWpqKmpra5GZmTkH/4tkJigkbiP8+o3CwkIYDAaYzWZh0hQ/0sEbfbIHAgH4/X64XC4Eg0H4fD6YzWYhIPjXAxD6IPjOTr4EHf9v09Hf34833ngDjY2NqKioQDwex5UrV3DlyhW4XK4xz+VbGWq1+pa2OSSzj0LiNiKRSKDRaLBkyRLY7XZEo1E0NTXBarUiEAgI07j5PxmGEf4eDoeF5eAjIyNjRkfGw8+/mOnCLp7H48GZM2fQ3NwMiUSCUCg04RyMoqIibN26ddp7d5C5RSFxG5FIJEhKSkJ+fj42b96MjIwMZGdno76+HkajEV6vd8xtAz+te/Qtg8/ng81mEw2I2cZX2+L7Jca7ZdFqtdi5cydWr15NVbEXGPpp3GakUilUKhUKCwuRlpaGgoIClJeX48iRI2hubsbIyIhw8rMsC4VCgaSkJEilUmHHcP4WZT5NFA7A9UVddXV1ePzxx4Wq2GThoJC4DfGb76SmpkKlUiE7Oxv5+fn4+uuv0djYiOHhYWHqtkqlEsrb+f3+KQ9jzoXR9S94LMtiw4YN2Lt3L8rLyxNyXEQcFcK9zfEdlh6PB52dnTh//jza2tqE3bf4UnQejwcdHR3o7OyE2+1OyLHK5XJIpVJh5EWj0eBHP/oR9uzZg82bN09ro2Ey6ybsBKKQ+IHgS+IHAgF4vV5hWBO4PnnJ7Xbj6tWrOHnyJE6fPo2urq45r1epUCiQn5+P/Px86PV6pKWlQalUQiaTQa1Wo7y8HHfddRfy8/MnXetB5hyFxJ1o9M+WL17jcrnQ0NCAEydOoKWlBRcuXJh0L86pYlkWFRUVqK2thU6nQ1ZWFlatWoWlS5dCq9WOmUU5umOVLAgUEmQsjuNgNBpx9uxZDA8PCzUr+NoS7e3t6O3tFYZWx8MwDEpLS1FXV4eMjAwoFApUV1djxYoVQjUqgErh3yYoJMjU8Pt2DAwMwGq1iu6zIZFIkJ2djeXLlwtl8chti0KCjO/Gn/9Mr/ijp4ST2xKFBJme0b8XYrcbo/8ktzUKCUKIqAlDghbsE0JEUUgQQkRRSBBCRFFIEEJEUUgQQkRRSBBCRFFIEEJEUUgQQkRRSBBCRFFIEEJEUUgQQkRRSBBCRFFIEEJEUUgQQkRRSBBCRFFIEEJEUUgQQkRRSBBCRFFIEEJEUUgQQkRRSBBCRFFIEEJEUUgQQkRRSBBCRFFIEEJEUUgQQkRRSBBCRFFIEEJEUUgQQkRRSBBCRFFIEEJEUUgQQkRRSBBCRFFIEEJEUUgQQkRRSBBCRFFIEEJEUUgQQkRRSBBCRFFIEEJEUUgQQkRRSBBCRFFIEEJEUUgQQkRRSBBCRFFIEEJEUUgQQkRRSBBCRFFIEEJEUUgQQkRRSBBCRFFIEEJEUUgQQkRRSBBCRFFIEEJEUUgQQkRRSBBCRFFIEEJEUUgQQkRRSBBCRFFIEEJEUUgQQkRRSBBCRFFIEEJEUUgQQkRRSBBCRLGTPM7My1EQQhYsakkQQkRRSBBCRFFIEEJEUUgQQkRRSBBCRFFIEEJE/T+8dyOMnxLQ4QAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 82\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: 83\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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VBn7wIEDOHDgAHp6eqT1IH19fRgYGEBWVhYqKyuRk5MznR8lmQAKiZsIy7LQ6XQoKiqC1WpFZ2enVIdSXKuRSqXAsixSqZTUjyBu3CO2RAYHB9Hd3Q2XyyWtEB168YvVpaLRKPr6+qTCvBNd4NXV1YU33ngDp06dwoIFCwAAly9fxoULF+D1eoe9p1gVS6fTSYvPyOxAIXETEadYz507F2vXrpVaAOKqT3GEQwyHoS0NsXhMMpmE2+0ec7hTHAm5UX6/H8eOHcPZs2fBsqy03+hILZLy8nJs2LBhQruRk+lHIXETEW83CgsLsW7dOqlz8uTJk2hvb0ckEhm2L6j4HODqRR8MBhEIBNDb2yu1IGaCuEJ16HqTa5lMJjz44IO44447qBUxy1BI3GTEkYfi4mJkZWXBarWirKwMhw4dwsWLF+Hz+aQWgDjaodFoIAiCNMPyRidMTYYYDCMFhFqtxt13342HHnoI2dnZM3peZGwUEjchcQQjOzsbixYtQn5+PqxWKz799FOcO3dO2v9CqVQiMzMTBoNBGvoUi+qma0+VazefVqlU2LBhA55//nnMmzcvLedE5FEh3JucuJTc7/fj22+/xenTp9HU1ASfzwfg6sY2arUawWAQ7e3taG5uHnU7vekmzv4U61sYjUbcfvvteO6557Bp0yZotdq0nBcBIFMIl0LiO0KcgxCJRBAKhYbNexAEAYFAAC0tLfjqq69w/PhxtLa2Tnu9SnF7PpvNhry8vGGl9wwGA+bPn4/ly5djzpw5tBFw+lFI3IqG/m6HVq86deoUjh07hgsXLuDs2bPjLik3FqVSifnz52Pp0qXIycmBxWLBihUrUFVVBZPJBKVSCZZlAVy9ZWJZljopZw8KCTKcIAjo6OjA119/DZfLhWQyiXg8jkAggJ6eHjQ3N0t7eI72N8IwDMrLy3HXXXdJpfoXL16MlStXwmg0DnsvGtKc9SgkyPjE43H09/fD4XDA4/EgFouNelsilvtfvnw53S7c/CgkyMiu/f1P9ht/aIk6clOikCATc21/xkiunbBFbmoUEoQQWaOGBDuTZ0EIuflQSBBCZFFIEEJkUUgQQmRRSBBCZFFIEEJkUUgQQmRRSBBCZFFIEEJkUUgQQmRRSBBCZFFIEEJkUUgQQmRRSBBCZFFIEEJkUUgQQmRRSBBCZFFIEEJkUUgQQmRRSBBCZFFIEEJkUUgQQmRRSBBCZFFIEEJkUUgQQmRRSBBCZFFIEEJkUUgQQmRRSBBCZFFIEEJkUUgQQmRRSBBCZFFIEEJkUUgQQmRRSBBCZFFIEEJkUUgQQmRRSBBCZFFIEEJkUUgQQmRRSBBCZFFIEEJkUUgQQmRRSBBCZFFIEEJkUUgQQmRRSBBCZFFIEEJkUUgQQmRRSBBCZFFIEEJkUUgQQmRRSBBCZFFIEEJkUUgQQmRRSBBCZFFIEEJkUUgQQmRRSBBCZFFIEEJkUUgQQmRRSBBCZFFIEEJkUUgQQmRRSBBCZFFIEEJkKcd4nJmRsyCEzFrUkiCEyKKQIITIopAghMiikCCEyKKQIITIopAghMj6f070TtpHHtrTAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 84\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAQkAAADnCAYAAAANUaMiAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/d3fzzAAAACXBIWXMAAAsTAAALEwEAmpwYAAAnR0lEQVR4nO3daXBb1f038O+VrizJWrxJtrzHdmzHxEtiyB4S4kBMWZsmQwplKQ8NTOBFGdoZ6PRFO9Nph+mL9hnmPy1DSnmAJiEEaAjQJgRMNrLaJo4dxw5eZFleZcmStUv3Ss+LzL1/O7Gvl9iWQ36fGSZDfGVdxb7fe+45v3MOE41GQQghE5HF+gQIIQsbhQQhRBKFBCFEEoUEIUQShQQhRBI7yddp6OMHhOd57N69G8ePHwfLspjOyBbDMOA4Dps2bcJzzz0HuVw+h2dKYoCZ6AuThQT5AWEYBi0tLfjggw9m/D3S09Mhk1ED9HZCP+3bzM1e4CxL95XbDYUEmRYqvrv9UEgQQiRRSBBCJFFIEEIkUUgQQiRRSBBCJFFIEEIkUUgQQiRRSBBCJFFIEEIkUUgQQiRRSBBCJFFIEEIkUUgQQiRRSBBCJFFIkGlhmAkXMCI/UBQSZFpoPYnbD4UEIUQShQQhRBKFBCFEEoUEIUQShQQhRBKFBCFEEoUEIUQShQQhRBKFBCFEEoUEIUQShQQhRBKFBCFEEoUEIUQShQQhRBKFBCFEEoUEIUQShQQhRBKFBCFEEoUEIUQShQQhRBKFBCHj8AQ51LQMYNgbivWpxBwb6xMgZCH6P//vAs53OpBv0KDm1/fE+nRiiloShIyj2+EDAFidfnB8JMZnE1vUkiBkHP93xzLsPW/BQ+UZYOW3972UQoKQcazKT8Gq/JRYn8aCcHtHJCFkUhQShBBJFBKEEEkUEoQQSRQShBBJFBKEEEkUEoQQSRQShBBJFBKEEEkUEoQQSRQShBBJFBKEEEkUEoQQSRQShBBJFBKEEEkUEoQQSRQShBBJFBKEEEkUEoQQSRQSZFoYhon1KZB5RiFxm7nZizwcDs/SmZBbBYXEbSQajcLtds/49Wq1GuvXr0c0Gp3FsyILHYXEbSQSiaC/v3/arxNaH0VFRbjnnnsgk9Gvze2Eftq3EZlMhnXr1kGtVk/rddFoFDKZDBs2bIBKpZqjsyMLFYXEbUQul+Ppp5/G6tWrp/walmWRlJSEXbt24bXXXoNGo5nDMyQLEe3gdZsxGAx44YUX0N/fjytXrtzwdZZlodVqodVqUVpaiqqqKhQWFmLt2rVITU2NwRmTWGMm6YSiHqofoEAggKNHj+Kdd97BhQsX4PF4IJPJYDQasXbtWlRXVyMnJwepqanIzc0Fy9K95DYw4bAXhUQMBYNB9Pb2YmRkBDqdDklJSdBqtVAoFJKv4zgOgUAAPp8PHMeBZVloNBqo1eopdyqGw2F0dXWhoaEBra2tYFkWpaWlKCsrQ2Zm5pjvE41G56U+IhKJiJ/N4/GAYRgkJSVRP8j8mPAHTLeIGGptbcUf/vAHtLa2IiUlBStXrsTDDz+M8vJyaLXaGy74aDSKcDiMnp4enDhxAmfPnsXQ0BCSkpKwevVq3HPPPcjKykJcXNyk782yLBYtWgSNRoPU1FSEQiHk5eUhNTUVDMOIw5wMw8xZQESjUUSjUfA8j1AoBJfLBbPZjPPnz+P8+fNQqVT4xS9+gbVr187J+5OpoZCIAeHOPDg4iPPnz8NisSAuLg6dnZ2Qy+VIS0ubsFXA8zwcDgcuXryIkydPwm63Q6VSwePxICcnB0ajEQqFYtILm+M4WCwWnD59GvX19fB4PMjPz8fdd9+NZcuWQavVztXHB3Ct1RCJRBAOhxEMBuF2u2G1WlFXV4eamhrU1tZCoVBgw4YNWL16NQ27xhCFRAwlJiYiPT0dfX19kMvlAK49BkQikXEvcoZhoFAokJaWhoqKClitVnR1dUGr1aKoqAgGg0H8PhOJRCIYGRnBhQsX8NFHH+HYsWPo7+9HOByGRqPBt99+i5deegmbNm2adjN/vEfX0Z9D+LrwWBEKhRAKhRAOh8HzPJRKJdLS0pCbm4uuri7wPI+4uDgqBY8xCokYEH7pc3JysGnTJvT29iIcDiM9PR0ZGRmSdQxyuRzJycmorKyE3+9HR0cHkpKSsGrVKmRmZkpeVBzHYWBgAIcOHcL777+P7777DoFAQPy63+9HTU0NMjMzUVZWhqysrCl/pnA4jKGhIZjNZvj9fhiNRqSlpUGr1YJlWchkshv6HLxeL3ieB8uy4qhKbm4uRkZG0N/fD7fbjeTkZAqJGKOQiKHk5GQ8+OCD8Hq9sFqtyM7ORkFBAVQq1YQXhtCaSE1NRVlZGUwmExITE1FQUACdTjdhS4LnefT09OC9997DO++8A7PZPO6dX+jz8Pv9U/4cNpsNhw8fxscffwyz2QyO45CcnIzi4mLceeedKC4uRkJCAniex/DwMPr7+zE4OIhAIICEhATk5OQgMzMTer0eer0eOTk5WLx4MYaGhub8sYdMjkIihliWRXl5OTQaDaxWK+RyOXJycqBUKiVfxzAMlEolDAYDVCqVeHFNNFQZjUZht9vx4YcfYvfu3eju7p7we8vlcmRkZEy5aKq9vR1vvPEGPvzwwxtKvs+dO4fDhw8jKysLSUlJAICRkRE4nU74/X6wLAuj0Yhly5Zh3bp1KC4uhkajgU6ng9FoRCQSoZGNBYBCIsa0Wi2WLFmC7OxshEIhKBQKySHQaDSKSCQCnufFcmm5XD5hx140GkUwGMSpU6ewZ88eyYAAAL1ej8rKSvGiltLR0YE//vGP2Ldv35jHFkEoFILVakV/fz/kcjkYhgHP8+B5HsC1QOrr68PIyAgUCgV0Oh0yMzPB8zxkMpn4WUlsUUjEmEwmg0qlgkKhAMdx4oUP3FifIAwXBoNBuFwuDA4Owu/3IxqNQqvVQqlUQiaTia8Rjm9pacGePXtw+fLlSc8nPz8fy5Ytm3R+h9vtxrvvvosPP/xw3IAYjeM4cBx3w98LfRRmsxl1dXXIyMiAQqFAOBzG8PAwhoeH4fP55q1Og4yPQmIBYBhGvNNGIpExd1ChTkH4u0AgALvdjra2NrS2tsLr9cJkMoHjOOTl5SEhIUF87OB5Ht3d3di7dy9qamrGvVBHY1kWq1evRmFh4YTHCBfsmTNnsG/fPni93pv67NFoFH6/H2azGU1NTeLQr8ViQX9/PxwOByKRyKSjNmTuUEgsEKOLloSgYBhGbFVEIhGEQiE4nU60tbWhrq4OTU1NGBkZgV6vR09PD+666y4UFBRAr9cjEonAarXik08+wb59++B0Oic9B71ej2XLliElJWXCuzfDMAgEAjh9+jTa2tpm5bNzHIeRkRF0dHRAr9cDuNbXMTQ0hP7+foRCoWnPXCWzh0JigRGqKoW7vnCh8jwPj8eD3t5etLS0oLm5GW1tbXA6nWAYBh0dHWhqakJ+fj4SExPhdrtx8eJFnDt3DjabbUrvXVJSgrKysjHve/25MQyDnp4e1NXVTWnxmbi4OPEzSeE4Dk6nExaLRezL8Hg8sFgs8Pv9FBIxRCGxQAj9B4FAAG63W+xrEDolhSKooaEh2O12OBwOjIyMwOVyIRQKwWazwWw248yZM2AYBn6/Hy6XC8FgcMrnUF5ejuLi4kmPczqdMJvNksdoNBosX75cHMqsra2dcMEbhmHEWgq32w2n0wmXywWfzweLxSLWS5DYoJBYAIQ7rdvtxsDAAPr7++HxeMCyLHQ6HeLj4yGXy+H3+8U7slwuF18XDAYRiUTg9XrFsJnuqEBSUpI4Z2Qyfr8fIyMjE37daDTiqaeewrZt25CVlYX+/n7s3bsXe/bswdDQ0A3HK5VKmEwmcWKZ8IgRCoXQ09MjLrlHHZixQSERY5FIBH6/H4ODg2hpaUFTUxN6enrA8zySkpKQlZWFjIwMsZ8BuHZRqdVqcY6GEAzCsOhMlJWVYePGjVM61u/3T1hspdVq8eyzz+KXv/wl0tPTAQAmkwksy8JiseC///2vOBoik8mg1+tRVlaGu+66CyaTCWazGV1dXeA4DpFIBDabDT6fb0aficwOCokY8/v9uHLlCo4dO4bTp0+js7MTXq9XLDQqKChAcXExMjIyoFKp4Ha74fF4EAwGZ9RiGI9SqcSaNWuQl5cneRzDMAiFQmhpaYHH4xn3mCVLlmDbtm3IyMgQ7/wKhQKFhYV48MEHcfXqVZjNZsjlcmRmZuKee+7Bli1bkJ+fD57ncfbsWVy4cEEMO+GzktihkIgxi8WCffv24ciRI+jp6UEgEBBrJQYGBjA4OIienh5kZmZCo9EgEAigr68PXV1dcDgcYljcTCuipKQEW7dundIU8+7ubnz88cfjtiQYhsHSpUuRmZl5w9fi4uLEMm21Wo1Fixbh/vvvx4YNG5Ceng6FQgG/34+BgQGoVCqx4CoQCEyrRJzMPgqJGOJ5Hk1NTfjyyy/R1tYmzgAFrl1wwWAQPp8P/f390Gg0UCgU4HlebO6HQiGxAGum9Ho9fvKTn2Dp0qWTTscOh8P48ssvcfHixQmPGa/6MxqNirM+k5OTsWbNGlRVVWHNmjVISUkZUwOhUqnGjO4Eg0EMDg5Sf0QM0ST9GAoGg+js7ITVakUoFBrz6DC6eMrpdKK3txddXV2wWq0YGhqC1+tFOBy+qYBgWRbV1dXYsWPHpB2W0WgUDQ0N2L17N1wu14THdHZ2jumcjEaj8Hq9uHDhAg4dOoQrV65ApVIhLy8PSUlJYhGZUBMijN4I/H4/6uvrJTtKydyilkQMBYNBDA0NiY8YUmZ7QxyZTIbVq1fj+eefn7QvAgB8Ph/27t2LxsZGyeNaWlpw8uRJpKSkgGVZdHR04KuvvsLRo0fR3NwMjuPAMAwcDscNJeeBQAD19fXo6+sT/z4cDuPMmTNwuVxISEigFkUMUEjEUDgchsfjmfcdsYT1LHft2oU1a9ZMuqYmAHzzzTf49NNPJy3tHhoawj/+8Q9cunRJ7ORsbm4e0/o4f/48Tpw4gdLSUhgMBnEZu6amJpw8efKGUu/BwUGEQqGZfVhy0ygkYigUColFU3Ph+vUphclkpaWl2LlzJ+6//37Ex8dP+n3cbjf+85//oKOjY9Jjw+EwGhsbceXKlRseoQQOhwMHDhxAcXExHnjgAahUKvT29mLv3r2ora294XhhIhiJDQqJGPJ6vbDZbHN6ASgUCiiVSsTFxYk1Cdu3b8d9992HxMREyaa70LQ/f/48jh07NuX3nGjW52jNzc34y1/+ApvNhvT0dBw7dgz79+8fd0apULIN0K7msUAhEQOjF8K1WCxztmYCwzBQqVRIT09HQUEBysvLsWHDBlRWViI5OXnS0QyGYeByufD1119P2ooQHlmmOtoSjUZRW1sLi8UCtVoNm8024YxSn88Hs9mMFStW0GzQGKCQiAFhJmVDQ8Oki8DcDJlMJq5/WVVVhYqKCuTk5ECn00264Y6wWM2xY8fw+eef31DQxDAMEhISkJ6ejoqKCmRlZaGnpwfHjh0b0/E42XsMDAxMehzP83A6nTRlPEYoJOaZ0Iowm804dOjQlKZwzxTLsigqKkJ1dTVWr14No9EItVo94YU2euRgZGQENTU1eOONN27YDtBoNGLjxo149NFHUVJSgtTUVGg0GgwMDEAul2PPnj2z2s+iVCqRnp5OAREjkiEx373uP3RCR2JfXx/efPNNnDp1ak7fz2QyYcuWLVi9ejVMJhPi4uLGfcQQwoFhGHi9XrS1tWH//v34+OOP0dbWNuZxaMmSJXj55Zfx4IMP3nDhJicnY9myZTh48OCEZdszoVarkZeXJy5pR/0S80syJOiHMbuCwSBaWlrw5ptv4l//+teclhvrdDpUV1ejuroaJpMJSqVywt24GIaB0+nE999/jyNHjuDf//43mpubb+hETE5Oxs6dO/HEE09Ap9MBGHsjYRhGXEZ/NkOCYRhaTyKGJEOisbFR3JORzFw0GoXL5UJtbS0++eQTNDY2zumIhlarxUMPPYRnnnkG+fn54tqXo89HmGbe29uLpqYmnDp1CocPH8b3338/YXhlZ2fj3nvvhVarHdP6GE2n0836Bb18+XJxxSr6XZx/kiHxt7/9DZ9//jkUCgU9etwkl8sFl8s1p6s/KxQKZGdn48c//jGefPJJlJSUiC0IQTQaFVd+On78OL788kucOXMGvb29kwaXsNS91IU623uHJiQkYMeOHUhLS5u170mmRzIknE4nrFbrfJ3LbUtYCHcmMzkVCgVSUlJgMpmwYcMGVFdXo7KyEkaj8YaOPiEgmpqa8Pbbb+Ozzz6b1s9XoVBMOiri9XonndqtUqnENTsnU1FRgfLycvH8qSUx/yR/4sIv2ehdpsnsUalUKCkpgclkgtfrRVdXF/r7+6e0foLJZEJeXh7uvPNObNmyBcXFxTAajZIFUpFIBN3d3XjrrbfwwQcfTHvSlFQrQXiEEVbVup7BYEBBQQFyc3ORmZmJQCCAxsZG1NXVSS5g89Of/hRLliwR35/MP8mQEJrGFBCzLzExEc8++yx27NgBg8GAgYEBnDx5EgcPHkRDQ8O4Fw7Lsli8eDFWrlyJ+++/H3fffTeSk5OhUqmmtOu2UPfwxRdfzGhW5UT7jAp3eIvFgvr6+jFFUTqdDuvWrcP27dtRVVUlbmocDofR0dGB//mf/8H+/fvHLaRav349Nm/eTOEQY1QnEQMKhQKPP/44XnvtNRgMBgDXOgVzc3ORmpoqbuYrrFmpVqtRUFCAjRs34oEHHsCqVaug0+mmFAwCofO0pqZmysVO11MqlRPeMGw2Gz744AN8/fXXYt+GwWDAz372M7z44ovIz88Xp4ULysrK8PLLL8PpdOLzzz8f8/hhNBrxyCOPYPHixTM6VzJ7KCRiIC8vD88+++yYTsC4uDikpaWhuroaarUaR48eRV9fHxISErB06VKsW7cOlZWVSEhImNF7RqNR2Gy2GZeBy2QyxMXFiQEghAXHcWhvb8eePXvw/vvviwGkUChQVVWFl156CYsXLx63NcCyLIqLi/HCCy/AZrPh3LlziEQiYFkW69atw7p166YVhGRuUEjEgMlkGvfCEda1rKqqQklJCXw+H5KSkpCRkQGdTnfTzW6fzzfj9SJlMhl8Ph/6+vrEBWoGBgZw/PhxfPrppzh+/PiY6eBJSUnYuHEjFi1aJHnecXFxWLVqFXbu3Ang2v6iycnJWLFiBVJTU2d0rmR2UUjEgEajmfDCYVkWycnJYgekMJowG8/lWq1WrDeYifb2duzduxdZWVno7e1FY2MjLl68OO7ji8lkQmlp6ZRKqXU6He69917wPI+amhoEAgGo1WpxGj31ScQWhUQM+P3+CX/xheHQ0SNLs4FhGKSnp2Pz5s1obm6ecKOciUQiEXR1deHdd98FwzDiBkITSUtLQ25u7pTOXyaTwWAwYMOGDeB5HqdPn0ZDQwOMRiOSk5Nn/IhFZgeFRAxYrVZcvnwZa9euFZ/tR19Mc3HnFGZtPvbYY5DJZPjiiy/Q1NQEj8czpepPYX+QqZSSsyyL/Px8JCUlTfmzCC0oo9EIp9OJ+vp6tLW1IT4+Hg899NCUVvImc4NCIgba29vxpz/9Cb/73e9w5513QiaTiYVUwoKwcxEUwsX74osvYvPmzWhqakJ/fz9sNpu4baDP54PH44Hdbsfg4CA8Hs+0l44zmUzYtGnTtMqzhUcrn8+Hzs5OceFftVqNoqIilJaWTvfjkllCIRED0WgUR44cgcvlwsaNG5GSkoLk5GQUFhZi8eLFSExMFHfnmsn3BiZujQi7Zq1YsQIrVqwQtwf0eDwIBAIIBoNwu93o7OzEJ598giNHjkwrJOLi4lBVVYW1a9dOae3M0efNcRza2trQ3d0tvufJkydx4MABLFq0aEpbEJLZRyERIxzH4dSpUzh79iw0Gg30ej1KS0uxfft2bNmyBWlpaWP2sOB5XtwfU1geTtgKTxjSlMvlUCgUiI+Ph0qlAsuyU1qeTqfTibM6BYWFheLoxXRUVFTgqaeeErf4m47BwUFcunQJDodD/LtgMIhDhw7h5z//+ZiJZWT+SIaE8AtKZdlzh+M4cfLXwMAAHA4HwuEwqqqqkJSUBI7j4HA40NHRgYsXL+Ly5cviMvzCUnFCU12j0SA7Oxtr167F+vXrkZOTA6VSOeF7T1Q9CVwrnBLmWExVdnY2nn/+eaxZs2bSOR7XvyfHcairq0Ntbe0N7zk8PDyrU8/J9Ej+JIWt1igg5kcoFEJDQwP++c9/oqOjAyaTCQMDA7h48SJaW1vFTXmkfh4qlQq1tbXw+/3Yvn37pLM2ryccK2zWO97CtOPRaDTYsWMHHnrooSmtwC0Q5nx0dHTg0KFD4y7nFwgE0NXVhdLSUmpFxIBkSCQlJSE7O5umit+kaDSKoaGhKd0NA4EALl26hJ6eHigUCjidToyMjEz5jh4IBNDW1oazZ8+KcyVmcmEFg0GYzeYph8S6deuwY8cOpKamTuv9hIrNt956C4cPHx53pMXn8+H7779HOBymUY4YkAyJXbt24emnn6b0vgnRaBRxcXE4cOAAXn/99Sm9JhgMYmBgYEx/w3SEw2E4HI6b2tNjZGRE3H5wMllZWdi6dStKSkrER1PhT2FKuNvtxsjIiBg6HMfBbrfjypUrqKmpwTfffDPhep8cx03agiJzRzIkysrK5us8fvDy8/Oh1+uxf/9+NDc3IxwOT3hsNBq9qV3CGYaZcMbmVPA8j6GhIQwPD096rEKhQFlZGSorK8eMZgSDQTidTly5cgWnT59GS0uL2JcC/G9fTG9v75i9Q8ejVCqRlZVFC+HGCC2EOw+i0SgSExPxyiuvYPv27fjrX/+Kt99+e8K79M203ITRitTUVLAsO6OfYTgcRl9fH3w+36Sd1hqNBgaDQdz9PBqNwm6349KlS/j666/R0NCArq4uuN3uGf8+aTQaFBUVTaszlMweWgh3Hgj/jkqlEoWFhfj9738PmUyG3bt33xAULMuKq0JPdaOb0e+j0WiQmZmJjIwMcbWr66doS4lEIvD5fLDZbACutRQmCjPhom1tbcV7770HjUaDwcFBdHR0oLu7G3a7fVbW8hRW3wJodapYoGieZ9FoFKmpqfj1r38Nl8uFjz76CKFQCPHx8dDpdNDr9eLcCIfDMaUdx4FroxopKSnIyMhAcXExkpOTxeIolmWn1FQXgsnlciEQCCA5ORlJSUlwuVxiTcbocxECpbGxUdwxfCpb/E2XTCajR40YopCYZ8JdMCcnB6+88gqMRiOsVisyMjKQkZGB+Ph4+Hw+tLa2or6+Hp2dnXC73eN2YLIsi8TERGRlZaG4uBiZmZnQ6/WQy+XgOA5msxnx8fHIzMxEfHz8pGszCPMzRkZGEBcXhyVLlkChUKC/vx/Dw8Nwu90IBAIIh8NjOiXnWkVFhVhtSa2I+cdMcpeiTok5xHGcOD8iPj5eXPnJ4/Ggs7MTJ0+eRE1NDa5evQqXywWe58EwDJRKJQwGA5YuXYpVq1ahrKwMJpMJcrkcQ0NDaG1thdlsBgAUFRVh5cqVKCwshFarnTAoIpEIAoEAhoeH0dPTg56eHthsNgwNDcFisaC1tRXt7e2w2WwIBoPz1l+l0Wjw5ptv4sknn5yX97uNTZi+1JKIIZZlkZGRAeB/i4qi0Sj0ej10Oh00Gg10Oh3Onj0rDkcmJiaiuLgYq1atQnl5ObKyshAfHy/uvhUKheBwONDQ0AC73Y76+nqYzWY8/PDDKCsrE4Ni9B05EokgHA4jEAggEAhALpfDaDQiISFBLMYym80IBoPT7ie5WXl5eVi6dKn4b0QtiflHIbFACCtRC3UVOp0OixYtAnBtvUe73Q61Wo2cnBwUFBTAZDIhPj5efFbneR4KhQI+nw8dHR3o6OiA0+mExWKB3W4XdxgvLi6GWq0Wg0LohxDmhUQiESiVSrAsi2AwKJaLd3V1wel0zummQuP9mzz++OPiDFAKiNigkFhghAuBZVnEx8fDZDKBZVnwPA+9Xo+UlBTodLob9vVkGAY8z4vrWA4PD4s1CT09PTh//jwKCwuRkpKC1NRUsY5CqMkQ6jKEYVNhNuiVK1dw7tw5dHV1zUv/w2grVqzAfffdN63ZpGT2UUgsQEKrQi6XQ6lUIiEhAXK5HDqdDlqtVgwIIVCE5n8gEMDAwADsdrvYKgCu1T3Y7XZ0d3fD4XAgISEBMplMHGrleR6RSERcy4LneQwPD+PSpUv46quvcPny5RnvW6rX65GbmwulUgmr1TrlFbESExPxzDPPYMWKFTN6XzJ7KCQWMKGPQpjlKdRQjNfsFoYjXS6XeMcXwkZ4LQBxiHL05D0hZIS+CaFSsqamBhcvXoTb7Z7R+efn52PXrl3YuHEj4uLixDka33zzjWSrRKFQYMeOHXj00Udn9L5kdlFILHCRSAQ8z4sX9ujgGH1xcxyHQCAAnuehVCqhVCoRCoXAsiz0ej0yMjJgMBjEqeOjO0qF1weDQQwPD+Pq1as4fvw46urqxqyAPR2pqan41a9+haefflocvqyoqMCiRYvw+uuv4+DBg+OWpisUCjz22GN49dVXkZmZOcN/NTKbKCQWMKH5D0DsXAyHwzes8yG0AMLhMNRqNYxGIzwej/j/WVlZuOOOO5CbmwuNRiM+ZggTyISRjeHhYbS3t+PcuXOor6+H3W6f8R4djzzyCB5//HFxoRhBZWUlfvOb34DjOHzxxRdjWhQ6nQ7btm3Db3/7W+Tl5dFoxgJBIbFAyWQyKBQKqFQqhMNhcfRB6IxUKBRjyrf9fj/C4TB0Oh1yc3PFrfQSEhKQl5eHJUuWwGg0ilOtRweE3++Hw+FAV1cXGhoa8N1336G/v19yEpqUrKwsPPHEE0hMTBz3Qq+oqMBrr70GjUaDo0ePwufzITMzE1u3bsVzzz2H/Px8CogFhEJigRL6EoQFXIQaCI/Hg2AwCIVCAblcjmg0inA4LC5xHx8fj6ysLHER2sTERGRnZyMtLQ0qlUoMFeExxu/3i0OlTU1NaGhogNVqvalp5hkZGSgqKpJcZ7OyshKvvvoqli9fjqGhISxfvhwbNmyY9noUZO5RSCxgwtZ6wkXD87xYGi2MRgDXVrQSLnZhHogw3yEhIQE6nQ4KhQI8z4uvBSDWQfT29qK1tRXNzc2wWq3weDw3NU09IyMDKpVK8ji5XI6ioiIYDAYEg0EkJSVJblpEYodCYoETHjuEHa18Pp9YIOX3+8VJVzzPIxwOIxgMIhQKIRqNQqlUIhgMIhAIwOPxiHM6hLoLr9eLgYEBdHZ2orW1Fd3d3eJIxujirukQ1rKY6rEqlQoKhYKmgS9g9JO5BQhBERcXh3A4DIvFgubmZjgcDnFvT6HuYXSNhVqthl6vh8fjgc/ng9frhVarBcuy4lCn1WpFe3s7urq6YLfbxY5RlUolTjUXHk+mQtjpa2hoCCkpKRP2LUQiEYyMjKC7uxt+vx9GoxEmkwlqtZpmfC4wFBK3COHRAwDsdjs6OzvR398/Zr/M0VsEsiwLpVIJvV6P5ORkpKenIzU1FYmJiWBZFoFAADabDV1dXbBareJEM47jxJaL0DkaCoXEjXumUpbd0tKCQ4cOYefOneNu0cdxHHp6enDixAmcPn0abrcbeXl5WLNmDcrLy2EwGG6oKCWxQyFxixA6MhUKBcLhMFwul1h6PXqpu9E7gCmVSjgcDjidTvh8Pvh8PnHjH7fbjb6+PlitVthsNrjdbjEA4uLixKHUhIQEcByHvr4+9Pb2Tqm/Ynh4GH//+9+hVquxbds2pKWliY8uwWAQV69exYEDB/DZZ5/BYrGA53loNBqcP38eW7duRXV1NTIzM2e8QRGZXRQStwihlaDRaKDVasWRjdGb9Iy+eGUyGYLBIILBoDjFnGEYcREbh8OB3t5e2Gw2saZCeL1Q0i30XUSjUfh8vjHHTKazsxN//vOf0dnZiUcffRS5ubkIBoNobGzEwYMHcfToUQwODorfTxidSUlJwapVq6iQagGhkLiFyOVyJCYmIi8vD5mZmbDZbOKcCqHzUsDzvNj3EAwGxcVkhMIpm82GwcFB+Hw+saNTEA6HwXEcfD6fGBQcx027bqK7uxu7d+8WJ5dFIhE0NzejpaVl3FJvjuOQkJCAlJQUakUsIBQStxBhSLO8vBzDw8OIRqNobGyE3W4XWwhCUIyuxhTKroVHDqfTieHhYXi93gkv/Nlahs7tduPbb7/Fd999J7ZuJpq3kZ2djerqaqSnp1NALCAUErcQmUwGtVqN/Px8qFQqmEwmZGVl4dy5czCbzfB4POKUcaFfQujEZBgGoVAIPp9v0oCYbcLjitSQqk6nw9atW7Fu3TqaGr7AUEjcYliWhVarRV5eHgwGA/Lz81FcXIyvvvoKDQ0N4l6iwrEqlUoczgyFQvB6vWIJ93waPdv0eizL4r777sMTTzwBo9E4r+dFJkchcQuSyWRQKpVQKBTQarVIT09Hbm4uDh8+jNraWvT19SEUCkEmkyE+Pl6sZBR20JrvgBBcv/4FcC0g1q9fj5deegklJSUxOS8ijRbCvcUJ/RAejwft7e2oq6vD5cuXYbPZxKpLmUwGt9uNtrY2tLe3z3h9iJs1erEcYQr7smXL8Pzzz2Pz5s3QaDQxOS8CQGIhXAqJHwhhOFQowR5d+MTzPJxOJ1paWnDixAl8++23aG9vn/MFbZVKJbKzs5GdnQ2DwYDExERxXU6dTofFixdjxYoVyM3NnXSuB5lzFBK3o+s30hHC4uzZszh+/DgaGxtRV1cHh8MxK+/HsiyKi4uxbNkyJCYmIi0tDStXrsQdd9yBhIQEcVhT+E8mk9GcjYWDQoKMFYlE0NHRgTNnzmBwcFBc1MbpdKKnpwetra2wWCySU8YZhkF+fj5+9KMfwWg0QqlUory8HHfddRd0Op14HK0NcUugkCBTEwgEMDQ0JG7Oc32h1WgymQwmkwmVlZXisnjklkUhQcZ3/c9/pnf80XNHyC2JQoJMz+jfC6nHjdF/klsahQQhRNKEIUET9gkhkigkCCGSKCQIIZIoJAghkigkCCGSKCQIIZIoJAghkigkCCGSKCQIIZIoJAghkigkCCGSKCQIIZIoJAghkigkCCGSKCQIIZIoJAghkigkCCGSKCQIIZIoJAghkigkCCGSKCQIIZIoJAghkigkCCGSKCQIIZIoJAghkigkCCGSKCQIIZIoJAghkigkCCGSKCQIIZIoJAghkigkCCGSKCQIIZIoJAghkigkCCGSKCQIIZIoJAghkigkCCGSKCQIIZIoJAghkigkCCGSKCQIIZIoJAghkigkCCGSKCQIIZIoJAghkigkCCGSKCQIIZIoJAghkigkCCGSKCQIIZIoJAghkigkCCGSKCQIIZIoJAghkigkCCGSKCQIIZIoJAghkigkCCGSKCQIIZIoJAghkigkCCGSKCQIIZIoJAghkigkCCGSKCQIIZLYSb7OzMtZEEIWLGpJEEIkUUgQQiRRSBBCJFFIEEIkUUgQQiRRSBBCJP1/PR73Kx8HIjkAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 85\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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AUJmj2JItLS0yHsykpkTRRGBQADHjx/H66+/jpaWljkd0bBYLLj++utx1113obKyEjqdLu2Wgb29vWhpacHBgwfx3nvv4fz582nDq6ysDNdeey3MZvOY1seF7z3bF/Ty5cthtVoB0I0rExRD4u9//zveeecdaDQaevT4igKBAAKBwJyu/qzRaFBaWorvfOc7uOOOO1BfXz9uByxRFJFMJtHT04P9+/fjgw8+wKFDh9Db2zvpsKXFYoHdble8UGd779CsrCx873vfQ35+/qx9TTI9iiHh9/vh8Xjm61wuWdJCuFLJ8nRoNBrk5uaioKAAGzZswNatW7FixQrk5eWN6+iTAuL06dN46qmn8Oabb05rdIVlWXmR3XQikcik1ZF6vV5es3MyjY2NWLp0qXz+1JKYf4q/8dGz86glMfsMBgPq6+uRn5+PSCSCzs5O9Pf3T2nJuYKCAlRWVmLFihXYunUramtr4XA4YLPZ0l5IoijC4/Hgn//8J3bt2jXtSVPpZnhKX1sURfT398srSY2Wl5eHqqoqVFRUoLi4GIlEAp9//jlOnjyZtj7CbDZjx44dqKurA0CPGpmiGBJS05gCYvbZbDbcc8892LFjB+x2OwYGBnDw4EG88cYbOHXq1IT9AizLYtGiRbjyyiuxbds2XH311cjOzobBYJjSrttS3cPbb789o1mVSjuEMQyDrq6ucRe91WrF+vXrcfPNN2Pz5s3ypsY8z6OjowN/+9vf8MILL0wYFFdffTU2b95M4ZBhVCeRARqNBrfddhsee+wx2O12AEBpaSkqKirgcDjwzDPP4LPPPpPndRgMBlRXV2Pjxo247rrrsHr1algslikFg0TqPN27d++YWZbTodfr094wvF4vXnzxRezevVvulLXb7fj+97+PH//4x6iqqhrXEmloaMBPf/pT+P1+vPXWW2MePxwOB2644YYxM0VJZlBIZEBlZSV++MMfIi8vT75otFot8vPzsXXrVhgMBnz00Ufo6emR51usXbsWK1asmHS+RTqiKMLr9cLtds+o81SlUkGj0cgBIIUFz/Nob2/H888/j2effVauttRoNNi8eTMefvhhLFq0aMLWAMuyqKurwwMPPIDBwUEcPnwYgiBAo9Fg/fr1WL9+/bSCkMwNCokMKCgoQHV19bgLR61Ww263o6mpCYsXL0YsFoPNZkNRUREsFstX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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 86\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAQkAAADnCAYAAAANUaMiAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/d3fzzAAAACXBIWXMAAAsTAAALEwEAmpwYAAAnbUlEQVR4nO3dWVBb5/k/8O/RviEJkJAQOxhsgxfiFRPHgcRpUjuJs3Riu0kzzT9NHCfTZibpTHvZ6bQz6fSmvWjTydL84jhLU6fO4mbx0uLEC04MgUAMmEUIgQRGIAnt6/lfeM4pxHAQGCwcP58Z3xiBjgTnq3d53vdlWJYFIYTMRJTuCyCELG0UEoQQQRQShBBBFBKEEEEUEoQQQZJZvk5TH98jiUQCL7/8Mk6ePAmJRIK5zGwxDIN4PI76+no8/vjjEIvFi3ilJA2Ymb4wW0iQ7xGGYdDZ2Yl33nln3j8jNzcXIhE1QG8k9Nu+wVztDS6R0OfKjYZCgswJFd/deCgkCCGCKCQIIYIoJAghgigkCCGCKCQIIYIoJAghgigkCCGCKCQIIYIoJAghgigkCCGCKCQIIYIoJAghgigkCCGCKCQIIYIoJMicMMyMGxiR7ykKCTIntJ/EjYdCghAiiEKCECKIQoIQIohCghAiiEKCECKIQoIQIohCghAiiEKCECKIQoIQIohCghAiiEKCECKIQoIQIohCghAiiEKCECKIQoIQIohCghAiiEKCECKIQoIQIohCghAiiEKCECKIQoKQafgjcfyncwTuQDTdl5J2knRfACFL0f/7v6/wpXUcpQY1/vPLunRfTlpRS4KQadjHgwCAQU8I8UQyzVeTXtSSIGQaf9pdjbe+HMDdayyQiG/sz1IKCUKmsbk0G5tLs9N9GUvCjR2RhJBZUUgQQgRRSBBCBFFIEEIEUUgQQgRRSBBCBFFIEEIEUUgQQgRRSBBCBFFIEEIEUUgQQgRRSBBCBFFIEEIEUUgQQgRRSBBCBFFIEEIEUUgQQgRRSBBCBFFIEEIEUUiQOWEYJt2XQK4xCokbzNXe5LFYbIGuhFwvKCRuICzLwufzzfv7lUoltm7dCpZlF/CqyFJHIXEDSSaTGB4envP3ca2PiooK1NXVQSSiP5sbCf22byAikQg333wzlErlnL6PZVmIRCJs27YNCoVika6OLFUUEjcQsViMRx99FDU1NSl/j0QigV6vx759+/CrX/0KarV6Ea+QLEV0gtcNxmAwYN++fRgeHkZHR8cVX5dIJNBoNNBoNKisrMTtt9+O8vJy1NbWwmQypeGKSboxswxC0QjV91A4HMbx48fx97//HefPn4ff74dYLIbBYEBtbS1+8IMfoLCwEEajEUVFRZBKpem+ZLL4Zpz2opBIo2g0CofDAZ/PB41Gg8zMTGg0GkgkMzfwWJZFPB5HIBCA3+9HLBaDTCZDRkYG1Go1xGJxSs8dj8dhs9nwzTffoLu7G1KpFJWVlVi1ahVyc3OnDE6yLHtN6iO41xYOhxEIBMAwDPR6PeRy+aI/N6GQWJLa2trw+9//Hh0dHcjOzkZtbS3uvvtuVFVVQaPRXHFjsiyLcDiM7u5ufPLJJ/jyyy8xMTEBrVaLLVu2YMeOHSgrK0vppmJZFolEAmNjY+jv70csFkNRURHMZvOUkFrscOCuIx6Pw+fzYXBwEOfPn8fZs2chl8vx2GOPYdOmTYt6DQSAQEjQmEQacJ/Mo6OjaGxshM1mg1wuh91uh1QqRU5ODpRK5RUtCpZlEYvFMDg4iLNnz+LcuXMIBAKQSqXweDwoLCxEbm4uZDLZrDd3PB7H4OAgzp07h9bWVgQCAZSWlmLr1q2orKyESqVazLcALMsimUwikUggFoshGAxiZGQEHR0dOH36NL744guIRCLccsst2LhxI1V6phGFRBrp9XpYLBY4nU4+EOLx+IzFSgzDQC6Xo7CwEKtXr8bQ0BBGR0ehUqlQXFyMnJwcwa4KcLlWwufzoampCYcOHUJDQwOcTicSiQTUajXOnj2LZ555BjU1NZDJZHN6PdNd93Stocmth3g8jkQiAZZloVQqYbFYUFFRAZvNhlAoBKVSSQGRZhQSacD90RcWFmL79u38TVpQUIC8vDwoFIppbwyGYSCVSpGbm4vNmzfD7Xajv78fOTk5qK+vR1lZ2YzfCwCJRAIjIyM4cuQIDh48iPPnzyMUCvFf9/l8OHr0KEpKSrBy5UoYjcaUX1MsFoPb7YbdbkcoFILBYIDRaIRKpYJUKgXDMHw4RKNRhMNhRCIRsCwLiUTCz6oUFhYiGo3C5XJhfHx8TtdAFgeFRBplZmZi586dCIfDcDgcKCgoQGlpqWDBEsMwUCqVKC4uxoYNG2CxWJCbm4u1a9ciMzNzxoHLRCKBoaEhHDx4EK+99hp6e3un/eQPhUIYHh5GJBJJ+XWMjY3h+PHjOHToEPr6+pBMJpGVlYXKykps2rQJFRUV0Gq1SCQS8Pv9cLlccLvdSCaTyMzMRH5+PoxGI5RKJTIyMlBYWIi1a9fC6XRCr9enfB1kcVBIpJFYLEZVVRXUajXf5cjLy5t1TEEkEkGj0SAvLw9qtRpmsxkGg2HG72NZFm63G++99x5eeukl2Gy2GX+2TCZDQUFBymMSVqsVf/3rX/HOO+9gcHBwytfOnDmDI0eOoKSkBDk5OWAYBl6vFx6PB+FwGAqFAsXFxbjllluwefNm/rVnZGQgLy8PIpFoztWhZOFRSKSZSqXCsmXLYLFYEIvFIJVKBesSJvfngcs3tUKh4Jv00z0+Go3i7NmzOHjwoGBAAEBWVhbWrFkDrVY767X39/fjD3/4Aw4cODCl28IJh8Po7+/H0NAQP76RSCSQSCQAXA7J/v5+hMNh6PV66PV6SCQSiMViKBQKKJXKlKd0yeKhkEgzkUgEuVwOiUTCD+CJRCJ+gG/yjZ9MJvkaidHRUTgcDkSjUSiVSphMJmg0GojFYv57uBmE3t5evP3222hvb5/1eiorK7Fy5cpZB0ADgQAOHjyIt956a9qAmCwWi027xDwWi8HlcuHrr79GWVkZSkpKoFAokEwmEYvFEA6HaWn6EkAhsQQwDMPf3Mlkkr+5ua8B/2tBBAIBOBwOXLhwAd9++y2i0Si8Xi8UCgUUCgV0Oh3fEkkkEhgeHsa7776LY8eOIRqNCl6HXC7H5s2bUVJSMuNjuOBqbGzEm2++eVVLz4HLQTE6Ooq2tjasX7+eH4NwuVxwOp3w+/3XrJiLTI9CYolgGIZvQSSTSf4fNyuQTCYRCoX4WoKmpiZ0dXUhEonAbrfD7/cjHA6jvLwcOp0OLMtiZGQE77//Pt544w24XK5Zr8FgMKCyshJqtXrGG5NhGL77cvHixQV57VzlaV9fH3Jzc8GyLKxWK3p6elBdXU0hkWYUEksIFwaxWIyvl+BCgmsx2Gw2dHV1oa+vDw6HA8FgEA6HAyMjI+jr68OKFStgMBjg9/vR3NyMkydPXjGgOJOqqiqsWrUKgHClpcPhQHNzM9/aEcLN1HDTnTO97sldqHA4jAsXLqC3txcOhwOxWIxKs9OIQmKJ4LoT4XAYfr8foVAIyWSSH7jj6hBcLhc8Hg8CgQBCoRD8fj+SySQ8Hg8GBgbQ2NgIsViMYDCIsbExBAKBlK+hqqoKpaWlgtfIMAzcbjf6+voEf5ZOp8PmzZtRXl6O8fFxnD17FjabbdqgEIlEUKlU/OyH0+lEb28v7HY7X1RFIZE+FBJLAFdu7ff7MTIyguHhYQQCAYjFYqjVar7qMBwOg2VZiMVifjYjmUzyn9JcMHDlznPZZi4nJwerV69O6WYMhULwer0zft1sNuPJJ5/EfffdB4vFgtHRUfzrX//CK6+8ArvdPuWxDMPwNRUlJSUQi8UYHR3FyMgIxsfHYbVa4fP5qF4ijSgk0owbaxgdHUVnZyfa29sxNDSERCIBvV6PvLw8mM1mZGRkIB6Pg2EYqFQqqFQqflqRa4VwwTCfPSirqqqwdevWlB4bDAYRDAan/ZpOp8P+/fvx9NNPIzs7GwCQnZ2NPXv2YHBwEO+++y4mJiYAAFKpFHl5ebj99tuxfft25OXlweVyIRwOw+fzIRQKwWazwev1oqCggMYm0oRCIs1CoRA6OjrQ0NCAM2fOwGq1IhgMQiqVwmAwoKSkBBUVFfzCrYmJCQSDQcTj8SljAlw4zCcgFAoFampqUFhYKPg4hmEQi8Vw8eLFGbsxa9euxX333QeDwcDf1GKxGAUFBbj33nvR3d2N9vZ2SCQSrFy5EnfffTfq6+thsVjAMAw/9RoOhxGPx+F0OufUZSILj0IizQYGBvD222/js88+w9DQEN+lEIlEfNdjcHAQFosFKpUKwWAQTqcTdrudr1xMJBL81Ol8rFy5Evfff39KC7rsdjsOHTo07Y0rkUhQXV0Ni8UCYOrgp1QqRXl5Oerq6pCVlYWysjJs374d1dXV0Ov1EIvFiMfj0Ol0iMfjfH0EN/5C0odCIo0SiQTa29tx9OhR9PT0IBaLTamPmDxOoVQqIZPJEI/HEQwG+U9aoVWjqdBqtXjggQewcuXKlJaXHz9+HF9//fWMjxGLxdPups2Nk5jNZhiNRmzatAnLly+HWq0GwzD8LA4AeL1efu1IOBzG+Pj4vF8fuXq0EW4aRSIR9PX1YXBwENFo9IruA7dLk8fjwfDwMAYGBuBwOOB2uxEKhRCLxa4qICQSCe6880489NBD0Gg0go9lWRZtbW14+eWX4fF4pn1MPB6H1Wrlb2ru2qLRKLq6uvDZZ5+hra0NUqkUJpMJKpUKIpGIDyeGYXDp0iXY7Xa+7DwYDKK5uRk+n4/GI9KEWhJpFIlEMDY2xncxhCz0gTgMw2Djxo144oknBCssOaFQCG+//TZaW1sFH9fa2orGxkZkZWVBLBZjaGgIJ0+exLFjx9DS0sIP1G7evBkWi+WKWpAvv/wSVquV/3nRaBRffPEF9u/fj4yMDBq8TAMKiTTiuhPX+kQskUiEqqoq7N+/H1u2bElpo9vTp0/jgw8+mHUthcPhwCuvvIL29naEw2F0dHSgtbUVIyMj/GOOHz+O9evXo7i4mL/xAaC7uxvHjx+/oqUyPDw8a0k5WTwUEmkUjUYRCoUWNSS4/j5HJpNhxYoV2LdvH3bs2JHSORrBYBAff/wxuru7Z31sJBJBY2Mjvv76a0QikWn3pRgYGMDrr7+O4uJi1NfXQyqVYnR0FG+99RbOnDlzxeO5sReSHhQSacSVIi/WDcDtZMX9U6vVWLlyJR566CHs3LkTmZmZgk13rmnf3NyMhoaGlMNspnCYrLm5GX/84x8xMjICk8mEkydP4sCBA/D7/Vc8Nh6P88Vb1NW49igk0mDyRrgDAwMprYGYL67eoqCgAKtXr0Z9fT1qa2thNBpnPdOTYRgEAgE0NDSgq6tL8LHc9Gmqg6nxeBynTp1CT08PVCoVhoeH+SKr7wqHw7DZbFi/fj3tL5EGFBJpwJVYt7S0XFGmvNDPk5GRgerqatTV1WHDhg2oqKhAZmbmrOMQXKn4mTNn8NFHH12xZwR3JkZeXh5uuukm5Ofnw+l04sSJEym/Jm7H7lQe5/F4pqxlIdcOhcQ1xrUibDYbPvzwwxmnExeCVCpFWVkZ7rzzTtx6662wWCxQq9UzbigzeebA7/fjzJkz+POf/4yWlpYpjzOZTKivr8e9996LFStWICcnB2q1GqOjowCAAwcOLGjrSCaTITc3d9aNcMjiEHzXr/Wo+/cdN4jodDrx4osv4tSpU4v6fEajEdu3b0ddXR0KCgqgUCim7FzF4cKBYRgEg0H09fXhvffew6FDh9DZ2cmPmTAMg9WrV+PZZ5/FXXfdBbPZPKXLotfrsXbtWqjV6qvejGYypVKJoqIifqqUxiWuLcGQoF/GwopEIujs7MTf/vY3HDx4cNZt366GRqPB9u3bcc8996CwsBAKhWJK4dJkDMPA4/Ggt7cXx48fx+HDh9He3n5FObTBYMATTzwxpfhq8gcJwzAwmUzQarULGhIMwwjuIE4Wl2BItLW1we/3U1hcJZZl4fV60dzcjEOHDqGtrW1Rp/Q0Gg127NiBxx57DCtWrIBSqbzibE9uzMHhcKC9vR2nT5/GZ599hu7u7hnXSuTl5aGurm7KzlXf/dvQaDQLvsP1xo0bodPpANAHVzoIhsRf//pXHDlyBFKplLoeV8nr9cLr9S7qTIZMJkN+fj527dqFhx9+GJWVlVcc1sOyLL/lHVcJ2djYCKfTOWuhlFarhcFgELxRpwuOq6HX67F7927k5ORQVyNNBEPC4/GkvPUZmT9uOfVcN4oBLgdDVlYWLBYLtm3bhjvuuAM33XQTcnJyrpgJ4AKira0Nr776Ko4cOYKhoaGUn0ssFqe0i3Y4HBZ8jEKh4K9lNhs2bMDq1atTvkay8AR/49wf2eQVemThKBQKrFixAmazGYFAADabDSMjIyndPHl5eSgpKcGGDRtwxx13oLy8HAaDAXq9fsZP22QyCbvdjpdeegn/+Mc/5jxuIJFIZvzZXBfG6XRO+3NzcnJQWlqKkpISFBYWIhwOo7W1FefPn5+2gAq4vIHN7t27UV5eDoC6GukiGBJc05gCYuHp9Xr89Kc/xe7du2EwGDA8PIzTp0/j/fffR2tr67SDmlKpFBUVFdi0aRN27NiB2tpa6PV6flByNpFIBA0NDfjkk0/mNbA429Sp3W5Hc3PzlJtep9OhtrYWDz30EOrr65GVlQWJRIJYLAabzYYXX3wRBw8enPZ6brvtNmzfvp3CIc1o4jkNpFIp9uzZg1//+tf8gbiFhYUoKSmB2WzmD/MNBoP8adsVFRXYtm0bdu7ciY0bN0KtVqcUDByWZTExMYGTJ0/C6XTO67rlcvmMHxgulwvvvPMO/vOf//CDskajEY888gj279+P0tLSKbMrSqUSlZWV+PnPfw6Px4PDhw9P6aYUFBRg165dKCoqmte1koVDIZEGxcXFeOyxx/jzMYHLYwtmsxl33nknNBoNTpw4AafTCZ1Oh6qqKtTU1KC6uhoZGRnzek6WZeFyueZdBi4SiSCVSvkA4MIiHo+jt7cXb731Fg4cOMCPcUilUtx+++14+umnsWzZsml/plgsxrJly/DUU09hfHwcn3/+OeLxOFQqFbZv346tW7dSK2IJoJBIA7PZjPLy8ituALFYDIPBgLq6OlRWViIUCkGn08FsNqe0WnM24XB4TqeFTyYSiRAMBjE8PMzXSIyMjODzzz/HBx98gJMnT06pHs3KysKtt946a0tAKpVi3bp12LdvH6RSKbq7u2E2m1FbW4usrKx5XStZWBQSacCdMTEdsVgMvV4PrVYLkUg0YwHUfGg0mqu68Xp7e/Hmm28iPz8fDocDbW1taGlpmbb7YjKZUFVVldJaC7VajW3btkEikeDUqVOIxWLQarWIRqM07bkEUEikgdAUITcdyo03LNQNwlVD3n777Whra5vT1CdweRDbZrPh9ddfB8Mw/Jb3M8nJyUFhYWFK188tFtu4cSPEYjGamprQ1tYGrVaLW265ZUFaUWT+KCTSwG6348KFC6itrRU8c3MhcStCH3zwQYhEInz00UdobW2Fz+dLqfqT23YulVJyiUSC0tLSWfermEwkEiEjIwOZmZlwuVw4deoUWlpaIBaLUV9fT4u70oje+TSwWq343e9+h9/+9rdYt27dlNPEF7J78V0SiQRFRUV48sknUVdXh/b2djidToyNjcHlcsHv98Pv9yMQCGBsbAwjIyOYmJiY89ZxJpMJdXV1cyrP5lpQwWAQnZ2d6OjoQFtbG8RiMYqKilBRUTHXl0sWCIVEGrAsi2PHjsHv96O+vh65ubnIzc1FRUUF8vPzoVKp5r1vAjfrMFPQiEQiaDQarFu3DuvWreOPB+ROJY9EIvD7/bBarXj//ffx73//e04hIZVKUV9fj5tvvjmlvTMnSyQS6OnpQVdXF99iOXr0KGpqavCLX/wCKpVqTj+PLAwKiTSJx+P44osvcO7cOX5NxJYtW7B3715s2rQJGRkZV6yDiEajiEaj/J6P8Xh8ysE8DMNAJpNBqVRCqVQKVkgC/wsUtVp9Rb+/vLwcLpcLDQ0NcLvdKb+utWvX4ic/+Ql/QE+qWJaF2+3G+fPnpwyEhkIhHD58GHv37kVRURENZKaBYEhMHjyjqsvFEY1G4XK54HK5MDg4yJ8vsW7dOqhUKiQSCXi9XgwNDaGtrQ3nz5/HwMAAAoEAYrEYEokEgMtdCZVKhby8PGzZsgXbtm1DcXExZDLZjDfVdP/P/Z5lMhnUajX/81NRUFCAJ598ErW1tXMaQ2BZFslkEi0tLWhsbLyi5TIyMrKgS8/J3Aj+Jrk/EAqIa8Pv9+PEiROQSCRwOp0wGo0YHh7GuXPncO7cOdjtdni9XsHVmgqFAk1NTQgGg9izZw+MRuOcPnm5xyaTSf4QoFRoNBrs2bMH99xzz5xmI7i/LbvdjsOHD0+7I3ckEoHT6cSqVauoFZEGgiGRmZmJgoICWip+lbhqx5kWMk3m8Xhw4sQJ9PX1QaFQwOFwYGhoKOWbNRwOo7e3F42Njbjjjjv4su+5isViGBwcnHVFJ2fr1q3Ys2fPlCrSVCQSCdhsNn5V6nTFXqFQCL29vairq5vzOAe5eoIhsX//fjz66KOU3leBZVnIZDL885//xAsvvJDS491uN39oTyQSmXNAx2IxuN1ufu3HfITDYTidzpS6G0VFRfjRj36E5cuXT9lijmVZJBIJRKNR+Hw+TExM8CGQSCTgdrvR1dWFhoYGHD9+HC6Xa9qfn0wmr+q1kKsjGBK0jn/hlJaWQqvV4p133kFHR4dgl4G7MeezvwRweSxJLpfPeyyJZVn4/X54vd5ZQ0Imk2HdunVYv349pFIp/5yRSARutxsXLlzAmTNn0NXVBZfLNSUkJiYm4HA4MDo6KnidUqkUZrOZdspOE9oI9xpgWRZ6vR7PPfccHnzwQfzpT3/Cq6++OuPU4tW03BiGgUajQU5ODmQy2bx+h4lEAj6fD7FYDBKJRPA6dTodTCYTwuEwRkdHkUgkMDY2htbWVpw4cQItLS0YGBiAz+eb99+TSqVCWVkZhUSa0Ea41wD3PsrlclRUVOA3v/kNAEwbFDKZDDKZjP8En8temAzDQK1WIz8/H/n5+RCLxVOmR1PBnWYeCoWQkZEBlUqFeDw+7cpRboq1o6MDBw4cgFKphNPpRE9PDwYGBjA6Orog2/VJJBLo9Xr++ujv8tqiOolrjGVZ5OTk4Je//CW/j0I0GoVarUZ2djaMRiMUCgXfFPd4PLPuPQlc3p/BaDQiLy8Py5cvh9FoRCQSQTgchkQiSflTOJlM8uMgxcXFWLZsGd8S4GoyJt/4ExMTaGpqwtdff41EIoFIJLLgm/yKRCIqy04jeuevMe5TsKioCM8//zyMRiOcTieKiopQVFQEg8GAZDKJgYEBfPnll2hqasLIyAi/InIymUyGzMxMFBcXY8WKFSgsLERGRgbfghgYGIBSqeQP5ZktKJLJJOLxOCKRCORyOdauXcsv37ZarXA6nfB6vQiHw4jH44jFYikF2NXasGEDv48GtSKuPWaWfiINSiyiWCyGS5cuIRAI8FvRi0QivsCqra0Nx48fR2Nj45RpUKVSCZPJhFWrVqGmpgZVVVX8wN74+DguXryI3t5eRKNRlJSUYOPGjaioqIBWq50xKJLJJBKJBEKhEPx+P3w+H3w+HzweD/r7+9Hc3IyzZ8/CarXC5/Mt6q7fk2k0Grz00kvYu3fvNXm+G9iM6UstiTSSSqXIy8sD8L9BYq76UKVSQa1WQ6fToaCgABcvXoTP54NKpUJ5eTmqq6v5TXS5hVThcJiv0Gxvb8fQ0BC++uor9PT0YOfOnbjpppug0+mmlGtzG9jG43G+7Bu4PFgol8uhUqkQDochlUoRDAYRCoWuWUAAQElJCVasWMFfK7Ukrj0KiSWC++Pn1mvI5XJkZ2ejsrISmZmZ2LhxIxiGQXZ2NsxmMzIzMyGXy/nS+WQyCYlEwp/AffHiRVy6dAkA+O6KWCzGmjVr+BbF5FqGWCzGrwthGIYPEq6o6ptvvsHQ0NCcV4Re7Xvy8MMP81PxFBDpQSGxBDEMw+8pmZGRAZFIBJPJxH+yKxQK/iaeXLzElVIPDAzA5XLx3ZORkRE0NTWhsLAQ2dnZEIvF/LmgXDeDCwhOMpmEz+dDR0cHjh49ipaWlhlP9losmzdvxvbt22nQMs3o3V+iuADgbmhuhadcLp+yc9VksVgM4+PjGBsbQywW47sF8XgcXq8Xg4ODGB4e5jeD4W6+yatJk8kkYrEYfD4fLly4gA8//BCnTp2a9+nnOp0OJSUlUCgUGBwcxNDQUEr1EgaDAT/72c+wfv36eT0vWTgUEksUN1bA/Zu83+VMqzej0SgCgQDi8fiUx0ulUigUCkilUr5rMbnVkEgk+KXn0WgUXq8XXV1d+OSTT9DQ0DBjufRsysvL8dRTT+HWW2+FXC6H1WrFa6+9hk8//VRwLYpCocDDDz+MnTt3zut5ycKikFjCuPGCyatxuX8Apgw+ci0Abhs4jUYDkUgEsVjMT5MWFBTw3Reu1cANWsZiMQSDQbjdbvT09OC///0vPv/881lLpmdiMpnw/PPP4+GHH+Z31161ahWWLVsGs9mMN954Y9oFb2q1Go888giee+45mM3m+b51ZAFRSCxxkwcX4/H4FV2NybMTyWQSWq0WpaWliEQi/GxIfn4+1qxZg4qKCmRmZvJ7THABFI1G4ff7MTY2hr6+Ppw9exZnzpyB0+mcV2GUSCTCrl27sHv3bmg0mikhs3LlSjz//POQy+V4/fXXp2xoU1BQgL179+KZZ55BYWHh1b1xZMFQSCxR3HgE10WYHBIA+NkJ4H/dBZZlkZWVhaqqKuh0OkQiEWi1WlgsFhQXFyM3N5cvtuKCh9uuzuVywWq1orm5GU1NTXA4HPOeySgoKMCPf/xj6HS6aactS0tL8eyzz8JkMuHDDz+Ex+NBeXk57r//fuzYsQM5OTlX9+aRBUXFVEvYd+sXEokEHx7fncLkWg7cLleBQAAMw0ClUkGv10Ov10OtVkMmk/HdDe57RkdH0d/fj2+//RYtLS3o7OzE+Pj4vENiy5YtOHTokOAWdizLwuPx4Ntvv4XH40FZWRlKS0shl8vn+3aRq0PFVNejyfUKDMPwazG4mQuuq8GNR3BrLrgxCYlEwu93yc2KsCzL10RwATEwMICOjg50dXXB6XReVcEUwzDIz8+f9WbnVpDW1NRMGZglSw+FxBI3udvBzUCMjY3B4/EgFApNGTOYPG0qlUr5KU6uFoLDDVKOjY1hcHAQvb29sFqtGB4eRiAQmLK1/1wHLcViMWQyWcqvjSx9FBLXAe7Gl0gkSCQSGB0dnfKpD1wu8ZbL5VAqlVCr1dBoNMjIyOBbFdwUKDdV6vV64XQ60d/fj/7+fjidTvj9fn7cg2t5cK2UVFsW8XgcNpsNY2NjyM7OnvFxXFeKKyWXy+V8V4jCY2mhkLhOcEEBXN4Hs7u7Gz09PfB4PEgmk/xuVEqlEhkZGdBqtcjKyoLBYEB2djYyMzOhUqkgEokQiUQwNjYGm80Gq9UKu92OsbEx+P1+JBIJSKVSqFQqvjUSDocxMTGBYDCY0mzHt99+iyNHjuDxxx+HVqu94qbndr6yWq3o6upCMBhEbm4uysrKYDKZ+IVuFBZLA4XEdYLrSohEIn4XKIfDAbfbPeVgXa5FwS0Oy8nJgcVigcViQXZ2NmQyGcLhMIaHh9HT04Oenh4MDw9jYmKCDwCZTAapVAqj0YjMzEzEYjE4nU4MDQ3xe28Kcbvd+Mtf/gKVSoUHHngABoOBv+Hj8ThGRkbQ0NCAjz/+GBcuXEAkEoHJZMKWLVtw1113TVlfQtKPQuI6wq3n4Lali0QiCIVCiEQifFk1NwAokUigVqvhdrvh8/kQDocRDAahUCjg8/lgt9vR3d2NwcFBeL3eKftVRKNRJJNJvnvCbUQbi8VSHqPo6+vDCy+8AJvNhl27dqGoqAiJRAJ9fX349NNPceTIEXR3d/N7Xvb19cFut0OpVPL7gZKlgULiOsIwDBQKBUwmE3Jzc9Hb2wu3280PTHKbxnCrN7mNdCUSCb/+QyKRYGxsDFarFTabDR6Phw8FDjdAGgwG4XQ6+XGMuW4wY7PZ8OKLL+LcuXNYvXo1GIZBZ2cnWltbcenSpSnPyc22cIcM0UzH0kEhcR0RiURQKpUoKSnBli1b+FO8hoaG+BWak8u2uanOUCgEn88HqVSKWCwGh8MBu90Ot9s97TkX3KDiQmxD5/V6cfLkSTQ3N/MHAs90TEBZWRlqa2uh1+tpPGIJoZC4jnArQXNyclBTUwOtVovs7GycPn0a3d3d/A7X3A04efAvHo/D4/Hwq0E9Hs+0AbEYkskkJiYmpqw1+S6DwYAHHngAN910E41FLDEUEtcZrjXBlVjn5uaipKQEx44dQ3NzM8bHxxGJRPjxC4VCAYVCAZZl+eKpyYfkXCtCYxlyuRw7d+7E/fffD51Odw2viqSCQuI6xM1i6HQ6rFixAgaDARaLBbm5ufjqq6/gdDoRjUYhl8uh1Wr5lZ/BYBB+v3/aTXWv9fVPPpj4tttuw759+1BaWpq2ayIzo5C4jolEIshkMphMJmzduhUWiwVr1qzBhQsX+NWVXEn2xMQEkskkBgcHr8kO19ORy+V8mblYLIZOp8P69euxb98+VFdX02DlEkULvL4nJlcw+v1+vpKR29bO5/Ohu7sbJ0+eRENDA7q7uxf8fIzvUigUKCgoQEFBAYxGI7Kysvg1JVqtlt/QN5W1HmTRzThSTCHxPTb5d8utFp2YmMD58+fR0NCA1tZWNDc349KlSwvS/ZBIJFi+fDmqq6uh1+thNpuxadMmVFVVQavVQiKRTNldi9sUhywJFBJkKpZlYbPZcPbsWTgcjimnf9vtdnR2dsJut/MLvqbDMAxKS0vxwx/+EEajEXK5HGvWrJlymA73XDSlueRRSJDUcAcDDQ0NYXR0FJFIZMbFXSKRCGazGevWraPuwvWPQoJM77u///l+4n93301y3aGQIHPz3fGM6Uw+UIhc9ygkCCGCZgwJmpgmhAiikCCECKKQIIQIopAghAiikCCECKKQIIQIopAghAiikCCECKKQIIQIopAghAiikCCECKKQIIQIopAghAiikCCECKKQIIQIopAghAiikCCECKKQIIQIopAghAiikCCECKKQIIQIopAghAiikCCECKKQIIQIopAghAiikCCECKKQIIQIopAghAiikCCECKKQIIQIopAghAiikCCECKKQIIQIopAghAiikCCECKKQIIQIopAghAiikCCECKKQIIQIopAghAiikCCECKKQIIQIopAghAiikCCECKKQIIQIopAghAiikCCECKKQIIQIopAghAiikCCECKKQIIQIopAghAiikCCECKKQIIQIopAghAiikCCECKKQIIQIopAghAiikCCECKKQIIQIopAghAiikCCECKKQIIQIopAghAiikCCECKKQIIQIkszydeaaXAUhZMmilgQhRBCFBCFEEIUEIUQQhQQhRBCFBCFEEIUEIUTQ/wcBz+jCmuMP9AAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 87\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: 88\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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NDU14Tvf+Q6ysrIQDAZRXV2Njz76CJ999hl6enqk1/N4PPD5fEhMTMTixYul1bEk9igk7iFKpRIWiwU5OTlITU2VNukRRxJiqTWAYaMLces+t9uNYDAIv98Ph8MhXWKITWREYncpjuPAsqw0LzHRuom2tjbs3r0bFy5cQH5+PqLRKGpqalBbW3tHqbd4l8ZsNiMhIWHS2xySqUchcQ9RKpUwm80oKSnBwMAABEHA1atXpQnMoUExtKW9WNotbgbscrnQ398v1V6MRFwZerc8Hg9Onz6NqqoqKBQKBAKBUd8zIyMD69evh91up4CYRSgk7iEKhQJarRa5ubnQaDSw2+04ceKE1JRG3PwnGo1KtzCVSqV0+RAIBMBx3JgBMdXEYjAxuEa6ZDEajdiyZQuWL19OS8NnGQqJewzLsjAYDMjJyYHVakVOTg4KCgrw+eef48qVKxgYGJBOfpZlodFooNFopDkKr9cLv98/YwEhGi0cxOPcsGEDnnrqKdhsthk9LjI2Col7kHjnQqVSwWAwICUlBdnZ2Thy5AguXLiAnp4ehEIhaaJTr9eDYRipWnOmA0J0e/8L4FZAPPjgg3jxxRdRUFAQk+Mi8qgR7j1OnIfweDxoaGhARUUFqqur4XQ6pVZ0SqUSHo8H9fX1aGhogMfjicmxDm2Wo1KpYDQasWDBArzwwgtYu3bthDYaJlNu1EkgComviaGrQW+/pOB5HoODg6itrcXJkydx+vRpNDQ0THsZtFqtRkZGBjIyMqSaC7Evp9FoxNy5c7FkyRJkZmaOudaDTDsKifvR7RvpRCIRuFwunDt3Dl9++SWuXLmCysrKMffiHC+WZVFQUIAFCxbAYrEgOTkZS5Yswfz582EymaTiqKEds6gEe9agkCDDRaNRNDY24uzZs3A4HNLisKGrQltbW2V3JmcYBrm5ufjmN78Jm80GtVqNkpISLFq0SFqqDlAr/HsEhQQZn0AggL6+Pqka8/ZCq6EUCgXsdjvKysqgVqtn+EjJFKOQICO7/fc/2W/8oWtHyD2JQoJMzNB/F3KXG0P/JPc0CglCiKxRQ4IW7BNCZFFIEEJkUUgQQmRRSBBCZFFIEEJkUUgQQmRRSBBCZFFIEEJkUUgQQmRRSBBCZFFIEEJkUUgQQmRRSBBCZFFIEEJkUUgQQmRRSBBCZFFIEEJkUUgQQmRRSBBCZFFIEEJkUUgQQmRRSBBCZFFIEEJkUUgQQmRRSBBCZFFIEEJkUUgQQmRRSBBCZFFIEEJkUUgQQmRRSBBCZFFIEEJkUUgQQmRRSBBCZFFIEEJkUUgQQmRRSBBCZFFIEEJkUUgQQmRRSBBCZFFIEEJkUUgQQmRRSBBCZFFIEEJkUUgQQmRRSBBCZFFIEEJkUUgQQmRRSBBCZFFIEEJkUUgQQmRRSBBCZFFIEEJkUUgQQmRRSBBCZFFIEEJkUUgQQmRRSBBCZFFIEEJkUUgQQmRRSBBCZFFIEEJkUUgQQmRRSBBCZFFIEEJkUUgQQmSxY/ycmZGjIITMWjSSIITIopAghMiikCCEyKKQIITIopAghMiikCCEyPr/vYoKbz/G1qEAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 89\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: 90\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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fHT+Q4zL5cIvf/lLDAwM4OGHH4bT6UQul0NPTw+OHj2K48ePw+v1CsHEB5ler8eaNWtm/SgAsnAoJG4hUqkUer0eNTU1qKyshN/vFwKAr5zkTdz8JZfLhUYyiUQCsVgMIyMj8Pv9SCQSkx7yA0AIlHg8Dp/PN+npYbPhdrvx+9//Hu+//z7uuOMOFAoFdHd3o7Oz84ZKTn5ZVqvVwmAwUCeqJYRC4hbCP8dz7dq1CIVCYFkW7e3tCIVCk7pQAxBGAPxyZyaTQTQaRaFQQCgUQiAQEEYQH8WXec/HtvBoNIp3330Xly5dgkQiQTqdnrYBcG1tLXbt2kWjiCWGQuIWIpFIoFarUVtbi/vvvx8VFRWw2+14//334Xa7kUwmAXwYEPyyIj9HwTe45YunEonETbXtnw2O4xCPx4V5ialuWYxGIx599FFs3ryZumIvMfTbuMVIpVKhqrK8vBzLly9HQ0MD3nzzTXR0dCASiQgjAJlMJjSQ4a/i/CrFbJ4UPh8mbkb7KLlcjgceeAB79+6F2Wxe1OMiM6OQuAVJJBIolUqUl5dDq9XCbrfD6XTixIkTaG1txcjICPL5vFDWze/X4NvbLXZATPTRAi25XI67774bX//619HQ0FCy4yLTo5C4hfGVlXyXbYfDgbVr16KrqwtjY2MoFApQqVSQyWSIx+Po7e3F2NjYovaonIivu+BvgfR6Pe6880489dRT2LhxIxVRLVHULftjYmJPiXg8PqnwiWVZRKNR9PT04J133sGZM2fQ29u74E9oUyqVcDgccDgcsFgsMJlMQpGWVqtFQ0MDNm7cCIfDMeNeD7Lgpp0pppD4GJv4u+VXOiKRCN5//32cPn0aHR0daGtrm/FZnMWSyWRoaGjAnXfeCaPRCJvNhk2bNmH16tUwGAzCPg1gcrctsiRQSJDJOI6Dy+XC2bNn4ff7heYz0WgUXq8X3d3d8Hq9ok8QYxgGdXV1+NSnPgWbzQalUok1a9Zg06ZNwsN0AGqFf4ugkCDFyWQyCAaDGBoawujo6A2FVhNJJBLYbDZs2LABSqVykY+UzDMKCTK1j/7+53rF578OjRhuWRQSZHY++mDgqfCBQMHwsUAhQQgRNW1I0MI0IUQUhQQhRBSFBCFEFIUEIUQUhQQhRBSFBCFEFIUEIUQUhQQhRBSFBCFEFIUEIUQUhQQhRBSFBCFEFIUEIUQUhQQhRBSFBCFEFIUEIUQUhQQhRBSFBCFEFIUEIUQUhQQhRBSFBCFEFIUEIUQUhQQhRBSFBCFEFIUEIUQUhQQhRBSFBCFEFIUEIUQUhQQhRBSFBCFEFIUEIUQUhQQhRBSFBCFEFIUEIUQUhQQhRBSFBCFEFIUEIUQUhQQhRBSFBCFEFIUEIUQUhQQhRBSFBCFEFIUEIUQUhQQhRBSFBCFEFIUEIUQUhQQhRBSFBCFEFIUEIUQUhQQhRBSFBCFEFIUEIUQUhQQhRBSFBCFEFIUEIUQUhQQhRBSFBCFEFIUEIUQUhQQhRBSFBCFEFIUEIUQUhQQhRBSFBCFEFIUEIUQUhQQhRBSFBCFElGyGjzOLchSEkCWLRhKEEFEUEoQQURQShBBRFBKEEFEUEoQQURQShBBR/x8aNAygNv6ccgAAAABJRU5ErkJggg==\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 = 15\n", "for iters in range(num_betas):\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", " solver.set_xtol_rel(1e-4)\n", " x[:] = solver.optimize(x)\n", " cur_beta = cur_beta * beta_scale" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We'll wait for a few minutes (or longer) and visualize the results. We see that every time `beta` increases it either drives the cost function out of a local minimum or into a poorer spot. It gets harder to converge as `beta` increases. This is expected as the gradient starts to swing wildy at these thresholded transition regions. Regardless, we are still able to generate a somewhat smoothed structure after just 72 iterations." ] }, { "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((evaluation_history), \"o-\")\n", "plt.grid(True)\n", "plt.xlabel(\"Iteration\")\n", "plt.ylabel(\"FOM\")\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "image/png": "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GRkJp9OJ2tpaFBcXo6amBmazGS6Xq8fALZFIhICAAGg0Gn5Zf19WqgIAg8GA999/HyqVCsuXL+eneXMB1NTUhO+++w5fffUVrl69CpfLhaCgIMyfPx+bNm3C3Llz+UlrxP8oJO4wcrm8z4ZBrrvUbrfzC8i4XC5YrVaEhYXBarWirq4OTU1N6OzsvC1oWJaF0+mE1WqFRCLhu1j7o6qqClu2bMHly5exevVqpKamwuFw4PLly/j888+xd+/eHsPHbTYb9u3bh+DgYKSlpVFIjCIUEncQhmGgVCqRkZGB5ORk6PX6PhsauYFSJpMJjY2N6OjogNls5msG3h4hWJaF1Wr1ed+N3tTW1uKjjz7CiRMnMGHCBLjdbly9ehXFxcW9jrZkWRYajabfGw2T4UXjJO4w3B4e+/fv5+dW9DUyUiQSQalU8gOsLBYLbDbbqFvoODU1FR9//DHuu+8+fxflbkTjJH4pGIZBaGgoVqxYgejoaOzZswdHjhwR3CNDJBLB7XbDZrPxjx+jLSBkMhnWrFmD6dOn+7so5BZUk7hDcTM26+rqcPjwYXz55Ze4ePHibTNAGYaBVCrtMT5iNG5ys2LFCrz//vtITk72d1HuVl5rEhQSdziWZdHV1YUzZ87giy++wNGjR9Ha2gqXy8UHBNel6HA4evRijBa//vWvsXXrVkydOtXfRbmbUUj80rlcLlRXV+P48eM4fvw4mpubAdzsDZFKpfzgqd425PUHmUyGkJAQTJ06FVu2bMGcOXMGteMYGTQKibuF3W6HxWLht9MDbtY2zGYzzp49i0OHDqGwsBCVlZXDXhaGYZCcnIz4+HjIZDLIZDIolUp+te/MzEzMnDmTX7mK+BWFBLk5W9RqteLMmTPIzc1FaWkpzpw50+9dy4VwszkVCgU0Gg2WLFmCmTNn9jqfQ2g5PjLiKCTI7erq6nDs2DHodDr+Brbb7WhoaMCJEyf63BgIuLlE3eOPP46QkBAwDIOZM2di1qxZNLT6zkMhQXxnMBhw5coVtLa29tkTEhYWhnnz5lGN4M5HIUF619vPfyDTtbvP+yB3JAoJ0j/dGz2F+LKKN7kjUEgQQgR5DQl6kCSECKKQIIQIopAghAiikCCECKKQIIQIopAghAiikCCECKKQIIQIopAghAiikCCECKKQIIQIopAghAiikCCECKKQIIQIopAghAiikCCECKKQIIQIopAghAiikCCECKKQIIQIopAghAiikCCECKKQIIQIopAghAiikCCECKKQIIQIopAghAiikCCECKKQIIQIopAghAiikCCECKKQIIQIopAghAiikCCECKKQIIQIopAghAiikCCECKKQIIQIopAghAiikCCECKKQIIQIopAghAiikCCECKKQIIQIopAghAiikCCECKKQIIQIopAghAiikCCECKKQIIQIopAghAiikCCECKKQIIQIopAghAiikCCECKKQIIQIopAghAiikCCECKKQIIQIopAghAiikCCECKKQIIQIopAghAiikCCECKKQIIQIopAghAiS9PF9ZkRKQQgZtagmQQgRRCFBCBFEIUEIEUQhQQgRRCFBCBFEIUEIEfT/AUeWAK8OzImoAAAAAElFTkSuQmCC\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()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can plot the fields of the monitor at different for the frequency of interest. We can see that indeed the point with index 7 has the largest value, as expected." ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "f0, dJ_du = opt([mapping(x, eta_i, cur_beta)], need_gradient=False)\n", "Ez_coef = opt.get_objective_arguments()[0]\n", "plt.figure()\n", "plt.plot(np.abs(Ez_coef[1, :]) ** 2, \"-o\")\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "src = mp.ContinuousSource(frequency=1 / 1.55, 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", "]\n", "opt.sim.change_sources(source)\n", "opt.sim.run(until=500)\n", "opt.sim.plot2D(fields=mp.Ez)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "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": 4 }