{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Design of a Symmetric Broadband Splitter\n", "\n", "Many devices of interest can leverage some form of simulation symmetry to reduce the computational cost and storage requirements. The adjoint solver and its corresponding TO filter toolbox are built to work with these symmetries.\n", "\n", "To demonstrate this, we look at a symmetric, broadband splitter." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Using MPI version 3.1, 1 processes\n" ] } ], "source": [ "import meep as mp\n", "import meep.adjoint as mpa\n", "import autograd.numpy as npa\n", "from autograd import tensor_jacobian_product, grad\n", "import numpy as np\n", "from matplotlib import pyplot as plt\n", "from matplotlib.patches import Circle\n", "import nlopt\n", "mp.quiet(quietval=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As before, we'll define our geometry, filtering, and wavelength parameters." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "waveguide_width = 0.5\n", "design_region_width = 2.5\n", "design_region_height = 2.5\n", "arm_separation = 1.0\n", "waveguide_length = 0.5\n", "pml_size = 1.0\n", "resolution = 20\n", "\n", "minimum_length = 0.09\n", "eta_e = 0.55\n", "filter_radius = mpa.get_conic_radius_from_eta_e(minimum_length,eta_e)\n", "eta_i = 0.5\n", "eta_d = 1-eta_e\n", "design_region_resolution = int(5*resolution)\n", "\n", "Si = 3.4777\n", "SiO2 = 1.4440\n", "\n", "frequencies = 1/np.linspace(1.5,1.6,10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We'll also define our simulation domain and set up a broadband source." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "Sx = 2*pml_size + 2*waveguide_length + design_region_width\n", "Sy = 2*pml_size + design_region_height + 0.5\n", "cell_size = mp.Vector3(Sx,Sy)\n", "\n", "pml_layers = [mp.PML(pml_size)]\n", "\n", "fcen = 1/1.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,2,0)\n", "kpoint = mp.Vector3(1,0,0)\n", "src = mp.GaussianSource(frequency=fcen,fwidth=fwidth)\n", "source = [mp.EigenModeSource(src,\n", " eig_band = 1,\n", " direction=mp.NO_DIRECTION,\n", " eig_kpoint=kpoint,\n", " size = source_size,\n", " center=source_center)]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Next, we'll define our design region. This time, however, we'll include a symmetry across the Y plane (normal direction of the symmetry plane points in the Y direction)." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "design_region = mp.Volume(center=mp.Vector3(), size=mp.Vector3(design_region_width, design_region_height, 0))\n", "design_variables = mpa.BilinearInterpolationBasis(volume=design_region,\n", " resolution=design_region_resolution,\n", " symmetry=[mp.Y])\n", "Nx = design_variables.Nx\n", "Ny = design_variables.Ny" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We'll define a filtering and interpolation function. We need to include the symmetry requirements in the filter too." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "def material_scaling(x):\n", " return (Si**2-SiO2**2)*x + SiO2**2\n", "def mapping(x,eta,beta): \n", " # filter\n", " filtered_field = mpa.conic_filter(x,filter_radius,design_region_width,design_region_height,design_region_resolution,symmetries=[mp.Y])\n", " \n", " # projection\n", " projected_field = mpa.tanh_projection(filtered_field,beta,eta)\n", " \n", " # interpolate to actual materials\n", " return material_scaling(projected_field).flatten()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We also need to define a bitmask that describes the boundary conditions of the waveguide and cladding layers." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "# Define spatial arrays used to generate bit masks\n", "x_g = np.linspace(-design_region_width/2,design_region_width/2,Nx)\n", "y_g = np.linspace(0,design_region_height/2,Ny)\n", "X_g, Y_g = np.meshgrid(x_g,y_g,sparse=True,indexing='ij')\n", "\n", "# Define the core mask\n", "left_wg_mask = (X_g == -design_region_width/2) & (np.abs(Y_g) <= waveguide_width/2)\n", "top_right_wg_mask = (X_g == design_region_width/2) & (np.abs(Y_g + arm_separation/2) <= waveguide_width/2)\n", "bottom_right_wg_mask = (X_g == design_region_width/2) & (np.abs(Y_g - arm_separation/2) <= waveguide_width/2)\n", "Si_mask = left_wg_mask | top_right_wg_mask | bottom_right_wg_mask\n", "\n", "# Define the cladding mask\n", "border_mask = ((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", "SiO2_mask = border_mask.copy()\n", "SiO2_mask[Si_mask] = False" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally we can formulate our geometry and simulation object." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "geometry = [\n", " mp.Block(center=mp.Vector3(x=-Sx/4), material=mp.Medium(index=Si), size=mp.Vector3(Sx/2+1, waveguide_width, 0)), # left waveguide\n", " mp.Block(center=mp.Vector3(x=Sx/4, y=arm_separation/2), material=mp.Medium(index=Si), size=mp.Vector3(Sx/2+1, waveguide_width, 0)), # top right waveguide\n", " mp.Block(center=mp.Vector3(x=Sx/4, y=-arm_separation/2), material=mp.Medium(index=Si), size=mp.Vector3(Sx/2+1, waveguide_width, 0)), # bottom right waveguide\n", " mp.Block(center=design_region.center, size=design_region.size, epsilon_func=design_variables.func()) # design region\n", "]\n", "\n", "sim = mp.Simulation(cell_size=cell_size,\n", " boundary_layers=pml_layers,\n", " geometry=geometry,\n", " sources=source,\n", " symmetries=[mp.Mirror(direction=mp.Y)],\n", " default_material=mp.Medium(index=SiO2),\n", " resolution=resolution)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can proceed to define our objective function, its corresponding arguments, and the optimization object." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "mode = 1\n", "\n", "TE0 = mpa.EigenmodeCoefficient(sim,mp.Volume(center=mp.Vector3(x=-Sx/2 + pml_size + 2*waveguide_length/3),size=mp.Vector3(y=1.5)),mode)\n", "TE_top = mpa.EigenmodeCoefficient(sim,mp.Volume(center=mp.Vector3(Sx/2 - pml_size - 2*waveguide_length/3,arm_separation/2,0),size=mp.Vector3(y=arm_separation)),mode)\n", "TE_bottom = mpa.EigenmodeCoefficient(sim,mp.Volume(center=mp.Vector3(Sx/2 - pml_size - 2*waveguide_length/3,-arm_separation/2,0),size=mp.Vector3(y=arm_separation)),mode)\n", "ob_list = [TE0,TE_top,TE_bottom]\n", "\n", "def J(source,top,bottom):\n", " power = npa.abs(top/source) ** 2 + npa.abs(bottom/source) ** 2\n", " return npa.mean(power)\n", "\n", "opt = mpa.OptimizationProblem(\n", " simulation = sim,\n", " objective_functions = J,\n", " objective_arguments = ob_list,\n", " design_variables = [design_variables],\n", " frequencies=frequencies,\n", " decay_by = 1e-4,\n", " decay_fields=[mp.Ez]\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's plot the design and ensure we have symmetry." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure()\n", "opt.update_design([mapping(np.random.rand(Nx*Ny,),eta_i,128)])\n", "opt.plot2D(True)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We'll define a simple objective function that returns the gradient. We'll plot the new geometry after each iteration." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "evaluation_history = []\n", "cur_iter = [0]\n", "def f(v, gradient, cur_beta):\n", " print(\"Current iteration: {}\".format(cur_iter[0]+1))\n", " \n", " f0, dJ_deps, dg = opt([mapping(v,eta_i,cur_beta)])\n", " \n", " plt.figure()\n", " ax = plt.gca()\n", " opt.plot2D(False,ax=ax,plot_sources_flag=False,plot_monitors_flag=False,plot_boundaries_flag=False)\n", " circ = Circle((2,2),minimum_length/2)\n", " ax.add_patch(circ)\n", " ax.axis('off')\n", " plt.show()\n", " \n", " if gradient.size > 0:\n", " dJ_drhobar = np.sum(design_variables.get_basis_vjp(dJ_deps,dg),axis=1) \n", " gradient[:] = tensor_jacobian_product(mapping,0)(v,eta_i,cur_beta,dJ_drhobar)\n", " \n", " evaluation_history.append(np.max(np.real(f0)))\n", " \n", " cur_iter[0] = cur_iter[0] + 1\n", " \n", " return np.real(f0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally we'll run the optimizer." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "current beta: 4\n", "[1. 1. 1. ... 0. 0. 0.]\n", "Current iteration: 1\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 2\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAP0AAADnCAYAAADVeFABAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAQEElEQVR4nO3dO28cV3jG8Wd3brtLSlzZEmDDkgsBcenaXQAHcJE2gL9BkC6Nv0TafIWU6dK6cJPGRYqkCdIYbnwBfKFMkdzLzF5SCO/ocDg7Q0rcy+z7/wELkSuRmt09z5yZc+2t12sB8KO/7wMAsFuEHnCG0APOEHrAGUIPOBO3/D1N+0B39eqepKYHnCH0gDOEHnCG0APOEHrAGUIPOEPoAWcIPeAMoQecIfSAM4QecIbQA84QesAZQg84Q+gBZwg94AyhB5wh9IAzhB5whtADD+g//vtn/f2//qf+8d/+S+fX+b4Pp1bbwpgA7uj3y7m++ff/0WK11v/++lofnvyf/uUfPt/3Yd1CTQ88kFmx1GL1dgHpy9lij0ezGaEHHsiLD0b6p799qV5P+ujxQP/8d3+z70Oq1WvZtZZ174F7yhcrpfFB1Ke1694TeuB4sdkFAEIPuEPoAWcIPeAMoQecIfSAM4QecIbQA84QesAZQg84Q+gBZwg94AyhB5wh9IAzhB5whtADzhB6wBlCDzhD6AFnCD3gDKEHnCH0gDOEHnCG0APOEHrAGUIPOMNW1ffUsg0Y9qDXq929CRsQ+hbr9Vqr1ar82kJP+A9Dr9crQ29fh8/hNkLfYL1ea7lclg87AaxWq/IEQPh3Lwx5v98vH71eT1EUKYqi8nvcRugbrFYrLZdL5XmuxWKhxWKh5XKpxWJxI/zYPQu6hTyO4/Ihidq+AaHfwGrx5XKpoiiU5/mNP4uiKIOP3Qpr+DRNlSSJ0jRVmqaSVJ4MUI/QN7DQLxYL5Xmu2Wym2Wym+Xyu+Xyu5XJJbb9jVoNb7Z5lmQaDQfkZ9Pt9xXHMZ9KA0Dewe/iiKDSfzzWdTnV9fa3pdKr5fK6iKMp7feyGhT6OY6VpqsFgUJ587fmwzYVL/NsIfQur6cPQW/DD0BP83bBLe6vli6KQJEVRpDRNy/YWbEboG1iYw8v76XSqq6ur8lKfy/vd6/f7SpJEi8VCkm7c09ulPp/JZoS+hbXgLxaL8jI/z3NNp9OyVZ8CtjtW01vg4zi+cavFSbgdoW8Q9sVXwx/+SSHbHQv9er1WHMdl2MPA83k0I/R3EAY/PAHQV797vV5P6/Va/X6/fP8ZLHU/hP6OrDCFjUS7aDDqciHeRst52CLf5fdmnwj9lnkumA/x2q1mt6+39f94Qui3LCy0eOs+VwFt/5a++Psh9DtAocQhIfRbtsta3uvJpdqAx5VVM0K/JYR9N8L1Daot+ahH6DvMc9hDFvZqfz3qEfoHtotJHoT95tiJcNBUdT5EXUOq9/eP0HeI58JadzINA28TorIsU57nN5Y4q/tdHmwqL4S+IzwHXrr5+sNa3iZDTadTSW/G4o/HY0lvJubgNkJ/4LyHfROr5Yui0HQ61Wq1Up7nkqTxeFxOucVthP5AEfbNwlrevs7zXL1eT0VRKMsyxXGsy8tLxXF8a9iul/f2o48+qn2e0B8gL4XyfYQt9lbDr1YrXV1d6fLyUj///LOGw6GSJCln5Xnz9ddf1z5P6A8IYW9X7Ze3bjprtbc1D2y+veelsAn9gfNaMNvUtdpXG/HsMZ/PdX19rfPzc7169aq81/d2Wd+G0O8ZBfHdWA1v3XWTyUSTyUQXFxf6/fff9dtvv+ni4kLz+dzlpX0TQr9HBP5+qluKhXsSTKdTTSYTXV9f6/LyUpPJRLPZbJ+He7DoyHxgdw0ygW/Xtm9g2HJvwZ/NZmWrPu9xPWr6LWH4503busQOdyKy+3prxIuiqByS6/m9ryL0W+StoG3z3rmptrfQh2vmVSfecF//FqFHrS6FJAx29YHbCD0kdSvkdajR747QO3TswTj21/e+CL0TnoLgrS3lvuiyc8BT4CV/r/e+CD2ODjV9M0LfImwFZgvkw2VBJ/DtuKdvEa7SEj6Hw9Hr9cqNLcM/w8E59u9A6BuFs7m6vMrqMe+yEwa+3+8riqLy++rndazvwX01ht7zmxTO1w5XWe3qTrXHGnwLehzHStNUaZoqiqLyc8Jt3NPXCJdXsjXYZrOZ8jzXYrHoZOil47u8tVo+jmMlSaLBYKDhcKgsy5Qkyb4P72A11vTHVkjuw1ZStYUZrq+vNZvNbtT4XXQM2zzba4iiSEmSKE1TjUaj8upsPp9rtVppNBrV3tN3+bU/BO7pN1itVprNZrq6utLFxYVev35dbqgQ1vZdLUDVJaW7JooirddrxXGswWBQNtxZjf/s2TOt1+vyXr+Lr3FbGkP/ww8/7Oo4Dobd+xZFoYuLC/3yyy/6888/NZlMbjXsHUtBqluO6pBZQ52tdJskiZIkUZZlevTokdI01enp6Y2FMaXDf1270hj67777blfHcRDCyz9bhmk2m91YcsnDPPltvZ6HCF3YH9/v95UkiXq9XtnomqapPvnkE3366acaj8euV8PdpDH033777a6O46DY/XqSJBqNRhqNRmWrcBRFZYux9QdXF2nYtGjDQxb6Lmo79rr3JzzJhj9v77014llt/vjxY718+VKfffaZPvzwQ8Xx2yJOf/0bjaH//vvvd3UcB8PuA+M41uPHj/Xs2TM9ffpUo9FIWZaV3ULS29Zj+7mwgG5zpZjQMRXgTa+lenUVttqnaarBYKA0TZUkicbjsZ48eVJe5uO2xtD/9NNPuzqOg5NlmabTaVm4wlF5VtOHO6NK+7lnbPo/j+mEELJLe2u4y7KsvCIbj8caDoe3Phu8Rev9BnY/byus2r2jXU52oa/+mAu9tdZbbT8cDnVycqKTkxNlWcZ9vNi19t6sds/zXLPZTLPZTEmSdG447rEEv+41hN10dpk/GAzKe/zw9gtvMTinwkJi95E2DNf65rsUeHMswQ9Vx9zbFViSJOX4e9Rj7H2N6uqqtptKFwPvQTjZxh6EfjPG3jewxrtjWGG1q8fdptpvb113hH4zQt+iy0H3onrvTuCbEXrAGUIPOEPoAWcIfQv6eg9ftd2FNphmhL5BuMhi+Oiirh53m3CuQziOguBvxuCcChvIYrPowv5fOwHgsDCe4n4YnFMjnKxhwzzjOC5PAl0LfteO9y7CpcltYZNwAVOvZfcuGHu/wWKxUK/XuzGm2+bUdyn4XTnONnVDicNh0uEciaIoqO3FhJt7y7JMg8FAo9FIp6enGo1G5WSOrgT/0I/vfVjgF4uF8jzXdDqV9Gai1NnZmVarVafbYLapMfQvXrzY1XEchHBllSRJ9OjRIz19+lRnZ2c6PT0tZ3PZ2mxhodrXnHqPhbq6J4EtZ5bnuSTpgw8+IPANGkP/xRdf7Oo4Do6ttDocDmuXy7LgVzUVtPc9IRx7IW5bLiv8d7aOoX0/n88lSUVR6MmTJ7q8vCw/s2Pd6KNNFEW1zzeG/quvvtrKwRyqpoUxbdWcao1+nyB6CO1Dn/Sq/e/2++3zsNreav7r62tFUaSiKG4tjHmMU4ybfP7557XPN4b+yy+/3MrBHLK6JbB//fXXjUtgH2MN8j6vadvvR7Vf3rrorOV+vV7r/PxcP/74Y9n46nUVnXcK/cuXL7dyMF2wWq306tUr9Xo95XmuOI7LbiG7lDyWrqGuvYbw5JvnefmZzOdzTadTTSaT8j6/Cw2u2/LNN9/UPk/r/Qb9fl9Zlun09FTj8Vjr9Vqz2UzT6fTGIJCu3i928ZhD9hksFovyc7m+vtbV1ZX++OMPvXr1qvyswgVNweCcWrZ5gqRypVVrGbbapasF6Bg+U3sNYR/9ZDLRZDLR5eWl/vrrL52fn+v169d7PtLDRE1fo9p1NxwOy0EfNjKvi5eMxxD4UNiKXxRFWePbJT/qMfa+gY27D/c97+pQ3GMLvLHGPOttyfNcy+Wy/Jy6urvwNlHTNwg3Vehq2KXjDbx0cwy+jdKz78OuOql+o862Lthw56JNn33192z6eh+/vw6hb2FBD+/huxj8Y1YNfvUEEP67up9t+j58runkuen/OYTfX9XN1qgds5B3tfHOg7sEB29QinF0CH4zQu+At9sRb6/3vrindyIMwrHXhMf++t4XoXeoriY8pqBQ0zcj9JBU35XUJdV1DbAZoUetdwnPvk4UYeCrj66dvHaB0G9RtcAdey207QVENi2yUV29OBxQ5XEefRtCvyVtA0G8FcJtXTlY4KMoUpZlyrJMcfymWIeDc6jx36LL7oHdtXBRCNu13afbSMk4jm+sWmxLmfEe16Om3yMuO++nOkbd9iRI01TD4bAcejudTstZkbaYRvjz3hH6PXuXtfbwJvC2eOlgMCinQcdxrNVqpTiOy8VPqu+x9+AT+gNBrV9v04rD4YrEcRyXKxcPh0OdnZ2V8+ltwpT3oIcI/QGh1m8X3udb8M16vVYURTo9PdXjx481HA6VJAk1fAWhP0DU+u3C0If7DJ6cnOj58+d68eKFxuPxjf0JOKm+QegPFAV0s2qrfZqmyrJMSZLo7OxMH3/8sZ4/f67xeLzvQz1IhP7AEf56NgDH1jC0x5MnT3RycqIkSfZ9iAeL0HeE90v+8PXbKLywth8Oh3r06JFOT0+VpqkklUuUe8WutUfAc61f95qtto/juNxlONzVpvpznt+/EKF/YLsoUBTem7W9BT9JknIr8bpdaz2/XyGG4XbYse6ld1/hJBubaEPANyP0W7LL/dE9B7/ab2+BJ/SbcXm/ZRS+7auGnPe8GaHfMs+18PuqNsIR5ofB5T0O1l3nwnNivR9q+i1739qpqwX6IWvltt/FFcD9EPo7qtvlZhcbJFKgbwrv33lv3g2hv4OwT7huU8uu1sZdFLbSh49wMUw0I/QNwoIUjvUOF2tgO+TdCoffhoNxwv55gt+M0LeojviyWV02rtt2SMXu9Pt9JUmiwWBQLoZp4WdgTjtC36Bu4cXFYlEux5Sm6a3tkLF99plkWabhcFiGP03Tcv48wd+M0LcIC5gFvNfrKU1TFUWxk5rew0mlbkmrTf30tkSWnYhHo5EGg8GN2h6bEfoGVtMnSaIsy8qCF8ex5vO5VqsVl/d7YGvd2+1WOLvOVtGhtt+M0DcIC5fdw0dRVM7ftpqf0O9W2IJvbSx2AghDj3qEfoNwuyRbfNEa85bLpZbLJbX8ntRNq7U/7WtCv1mvpdC6LtG2eYIFPHyENTzB3626mXV1+9gRfNW+AYS+xXq9LvvhCfphqY7Mq+5YC0L/YAj8YSHgG9W+MdzTvwMKGbqMDk3AGUIPOEPoAWcIPeAMoQecIfSAM4QecIbQA84QesAZQg84Q+gBZwg94AyhB5wh9IAzhB5whtADzhB6wBlCDzhD6AFnCD3gDKEHnCH0gDOEHnCG0APOEHrAGUIPOEPoAWcIPeAMoQecIfSAM4QecIbQA84QesAZQg84Q+gBZwg94AyhB5wh9IAzhB5whtADzhB6wBlCDzhD6AFnCD3gDKEHnCH0gDOEHnCG0APOEHrAGUIPOEPoAWfilr/v7eQoAOwMNT3gDKEHnCH0gDOEHnCG0APOEHrAmf8HA/39ckAvbaUAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 3\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 4\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAP0AAADnCAYAAADVeFABAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAa80lEQVR4nO2dPY/kRnPHi7Mk52Xvbvd8EiA90iUClCpWZkAGFDg1oG9gOHPiL+HUX8GhM2eCgidxosCBnRhOHugJHkmApNPpdrU77zMOzsWrqa3uruZw9/a2/z9gMBwO2ezh8N9VXdVsVvv9ngAA5TB62xUAANwtED0AhQHRA1AYED0AhQHRA1AYdeJ7hPYBeHeprJWw9AAUBkQPQGFA9AAUBkQPQGFA9AAUBkQPQGFA9AAUBkQPQGFA9AAUBkQPQGFA9AAUBkQPQGFA9AAUBkQPQGFA9AAUBkQPQGFA9AAUBkQPQGFA9AAUBkQPwID8+399T3/7L/9Bf/+v/0m/Xq3ednVMUhNjAgCc/Hy5pH/6t/+mzW5P//PjBT07/V/657/77G1X6waw9AAMxGK9pc3uzQTSl4vNW6xNGIgegIF4/lcz+oe//oSqiuiDJxP6x7/59G1XyaRKPLUW894DkMlqs6O2vhf21Jz3HqIH4OGCh10AACB6AIoDogegMCB6AAoDogegMCB6AAoDogegMCB6AAoDogegMCB6AAoDogegMCB6AAoDogegMCB6AAoDogegMCB6AAoDogegMCB6AAoDogegMCB6AAoDogegMCB6AAoDogegMCB6AAoDogegMCB6AAoDj6rOJPEYMPAWqCrz6U0gAESfYL/f026365ZZ9PdV/G+jXm9TdFVVdcfnZbkO3ASij7Df72m73dJ2u6Xdbnfwkg3Asce4jW3fdVKiZWGPRiOqqopOTk5oNBrRaDTqliF8G4g+wm63o+12S6vVijabDW232+6dGwKiN2LMuchiAra+C23fpyHI3ecY8RwrPGt/FvzJyUn3quu6e8ltwE0g+gBsyVnoy+WS1us1rVYrWq/XtNlsOqt/7HFCn0PLns/e43nxCMhjnY89prTwJycn1LYtNU1DbdtS27ZERN13wAaij8CiZ7EvFgtaLpe0XC4763+Mm58SuHedXg4dYyhC4h1qfeh7/syibpqGxuMxtW3b/c7RaER1XRfVFcoFok+w2+1ovV7Tcrmk+XxO19fXNJ/PO8vP/Xui9EUcss4xcVvBw5DY+3odIYHkWObR6Gb2NyRab/nW9mzl67qmtm1pOp3SbDbrvq/r+iDmAhf/JhB9BI7cs3u/WCzo+vqarq6uaD6f03q9pu122zsYFxJzSOh6XUzkqTod26/3iEk2BHL7HMuv92PRs5XfbDZERJ2rL2MtwAaijyBFv16vb4h+uVx2oo+JwCt0/e6x9ikXf2gBaIvuEWpqOacsKXoWPFv9tm2P7nKVAESfQAt/tVp1Vl+KPlWGXrbetUA9Ys8J6MW+CzUOIWud+1nm0mP7hNbJ+pycnNB2u+3ceQ6uynQqCAPRJ2AxcvqOxc+vlOgtMXktuNedPyaIl9qGxSXJcfU9Ln5sf72ddN/ruqbNZnOQRoWVTwPRR7BcbH7JhiC0r17OceljjYVeDm3jYagBRqGGQP4OK9gn62CJX9aP3fvYQCkIPg1En4EUvV5vbauXPe56Suyh4zF9cuEpoXgtu8fi9wkIereD4H1A9D3xWNocC08Udt+1MHP7wSlyRZ8iFOzzuvTgdoHoM8jJw+dG3lNRdq9IQi60VUYq2u+J1HuOlZuuS3kyoZtqMPTWB0Q/ELlWPUfwFt4ceO79ACmhp/rdnv1yBuXosrXgcVddPhD9EfTNuUu8grdEnnKbc4QWsq5DialvObGujbcBAodA9BnEAnYeoedad4/Qve8PDf37OKMSCraCN0D0AzCU4GPj17U7ay3Ld12mZSFzhJGyqkOKTJ8f6zfxb7dSqBigEweiHwhL3J7ccepGlZjYLaFrkXstfx/3/hjR55yTWCOw3+8PBk3pux+5YZDdhIfq/XiB6HugB+rI9fLdgi/gWMAsJnqrEbCEPoTovXEAOTjnGAtriVIGF3e73cF5Y+u+2Wy6W5/H43E3JFfXUR/noRP6/yB6J7ELxdPXZzwuvLUulKqSrm5sP11+qA7e72JW1HOurEbCitrL7eS5Y5eeBT+fz4no9d12Z2dnRBRPX5YMRO8gxzL07Sd7AnIewd9GYC837ae318KOfU6tl2XyBCdV9Xpo7mq1ov1+T+fn57Rer911Lg2IPhPPSLwUuWLn96EE73XxU9bfsvYhC5573lKCZ/ed73RcLpdUVRWtVitq25ZGoxFdXl5SXdc36lRKn/6DDz4w10P0t4y84PTFdqzgdTlDY9VZfhfbr+9yqjwZ1OObnZbLZRdfubi4oIuLC/r+++9pMplQ0zQ0Go2K6cdLvvrqK3M9RN8DmSYKYbmxetljifv0w0MWWPe/PXjEnQqW5QY7re/luebzz7fTcvSeI/g8lRnHAUqx7BqIfgBiATsmFtQaQvix4JR2r3MFHvo9qW29oo8JXkfmeZ11TI7a85wGPLHJcrmkq6srevnyJb148YLm83nWHIalANEPREjsIZeel1P97ZToYn3p2D7W+tD2qfKs99ByzDvyzPnHImbrvlqtuslKr6+v6dWrV/Tzzz/TTz/9RK9evepcf/AGiP5IvGLX+8TeY/uzRcx12T0NQx9xpMTumR8g5xhs6aXol8tlN3fh77//TpeXl3R1dUWLxSL795QARJ+J9xbYlJvssfIpUoJP5cT1fsd0BTxTeXn681aunpel6OXAHDlpKc9SzGXByt8Eoh8A6+KyBOzp03uQ/d+YsJlY3MEj3BSxSHxI6KHzldpfCt4K4q1Wq26uPJ5AM5aFKBGIfiC8F1VM+Dno4by3LV7PPrEycqP11nfSysvnCcqx9zKiL4N4sPhvgOidWBfNaDQ6EJhHvKl+ux5bnsKzTW4wzrOPtU3uZ01sJJ/1uHD5Wfb1IfQ4EL0TviBDd7Hp7TxlSaxUnG5UcvAIODetFto3tG7IB21oay/FfpvHfYhA9EegR8rxulysyTL4Qu4j/JSAU/1mr/CH8DKY1Mi/mOhz6gwg+l6kgnReUk+P6SN8j4C9os9pbIbIBMTc+5zfA+JA9BmkBtYQ9budM9RgDJVySll8r9i9+f0+dU6lEGHJhwOiz8S6+UWm0HTDkOr7xiy8/Oyx9l7xxcTkHUzT51iaUE7es7+nAQY2EH1P5IUmBR/r4+uceqzs+2zRjo3Sh7bz/G5L7Pp8YvKMOBB9Ah040sihsDFrw9vcpphDXkJqO7numIzBsXjPDddRir6qqu6JtnxnnRycQwQvgIHoI8jcrx7soUVuLctyvOPkb6NRsI4dq09s/IEMuGkxDSUuq0GyfhPXtapeP7K6aRqq65pGo1H3GxDwu0lU9CWfJBa8fDS1FL4WDy97yrWWQ/sP/R+EhK+PKSejTNWR9+lz70Cojp51bNVZ7G3bUtu2nYVHvt4Glt6AxbDf77ubORaLRTe9cs7wTm+uPFbWMRevFrZnWRK7x90TtBwKXbeTkxPa7XadhZ9MJrTdbrvpstq2xV12AaKiL7kPxBf7arWiq6ur7lbN9Xp9Q/hEZFp+/Z30EG7DCoX685Y34hW//j0nJycHn3OHIUtiNwmFtpV1Go1G1LYtbTabbuosOUHmbDYz+/Qle7BEsPRBdrsdLRYLury8pFevXtHFxUXn6rPodR8/lnYaUuyeizYVGc8ZGxDrw5+cnGTVS8LnwttYyC6HPO5sNuvc+6ZpaDqd0vvvv981DKXOkRciKvo//elPd1WPewNf9Ov1mi4uLuiHH36gX375ha6vrw8Ceyx6Rt7tZlkUPcfbbeLtK+cG3kIBvdRxPeWl9pfbsuA5Ws/u/GQyoSdPntB4PKbZbEbT6bSbGLNP/R4qUdH/8Y9/vKt63AukWDebTTfv2nK5PEgR6e2rqnINnElFku+6OxWz9jFC/f+YJ5GKYXgDgTpLwq/9/vUUWuPxmP7whz/Q8+fP6fz8vOjZcENERf/NN9/cVT3uFSzgpmloNpvRbDbrosInJycHaaFQfj426i1EzsCU2LoUxzYux+wfavhSgU7d2PK5b5rmwJo/efKEPvnkE/r000/p2bNnVNf1jTJLjlURJUT/7bff3lU97g3cD6zrmp48eULPnj2j999/n05PTzs3kvuOciCIjPjr8uR7CG+6r0/E3PJOjqnHMcQ8AE9Onc81N75t29J4PKbxeEx1XdP5+Tk9ffqUHj9+TG3b3s6PeMeJiv4vf/nLXdXj3jEej2k+n3fWZLfb0XQ67YQXu0OOyBZ77OGV3kYhJx+e2sdTjndIq6d8S9SxQUDWvnr0XV3XNJlMuj78+fk5TSaTrgEu3apbIHofYLlc0nw+72ZYlUM767rurPx2u03O164v4O12e+NiTIkrt8+b2idVVmqykFSZsUE88j0k9NigIO5acRBvPB7TdDqlR48e0enpKU0mE/TjKfwfQPQB6rqm/X7fPRFVuvYyes+DRBgrJ29d4DoW4E3lhRoHK2Ogh9rmWHYtdk/j0Uf0odiHHA9gNQDa2nP0fjwed318HXgFr8HgHAWLQ0aEOTfPg0Ck6OW2vL9c1hcsX4zyOJKQeBnrSTCh3PoQgg+JPvQ5JnxdH2tQkPWuBwTJ8qXwm6bpAq4lXrteMPbegMXOY+/5JQfksKClGynXh84du/ah59SnAn/SK5ANiPye9x9a8DFBezyDkKhT3zG6Xy9fLH4ZXAU2cO8DSCutxayFLy9QPS5fC5K3tSx2rC68vxSxNXlHaFtZVk4E3yt8j3cQs+ap3x+rs9UIQPRhIPoEVh/UGmgTErtlrdg70KLNTb9Z9QxF7GM56tCsP3o5JvzUu1WfUANgNVje7AbEngZTjDiICTj10EX9ssrJrUssyh3apw8xcce2DzUOfRqLVH1APhA9AIUB0TuIRbBT01hb/cxjrJS2mJ64QN/jhdJpqe1D6bhYebF9Y/UB+aBPn8ByOy1XVc80Y/XRtfBjY/djdfF8F2qALPTjr4nse+xDEXerLlaQziv0WPwkxBBdp1KA6ANIIcu0kBarDsTJudlCQtNlWKIP5em1lY+JPdUvDnGM4PU+1nfWe+g7a9nKCoTiJ+AmGJyj4AuW8711XXcvfWedvtlGR52tQJ8Uqtft1+s9Q2RzuxLa2ofy515C6ULrPfZdrKsgX6EJTMFNMDjHgC+kqjqcZZXH3HODwC+im3lyLsOaXIO390aqJbrRiG0/lPAtrBShPmaOpY81ALrh5Ek0pNit59MDG7j3ATabDVVV1U2/NJvNunHdluglPGCHCfV7JTkBuZzGoo/wrfpYlpvXy2PFxgOkAoPeVKS27qvVilarFS0WCxqPx7RarWDtKfyfQ/QB+M6t09PTg7u32rbtrL6OzPNFpofmMpagvGKM5bhT21uERByra0xEocBlaN+QFU9tX1VVNxyaBd80Dc3ncyKibh4Ea6Yj8Jqo6J8/f35X9bgXyAuraRp6/Pgxvffee/T06dNu9hw5t7oWvi5HLktX3+IY8efsI/F4ILc9d3zI0qestHTrF4sF7XY7Wi6XRET09OlTCD5CVPSff/75XdXj3rHf76mu687as1sfmi4r5s4OlU7qG43XdYrtc9susVfkqVQg0Zv7HKTgN5sNnZ2d0XvvvXdwx12Jrr6cMVgSFf2XX355K5W5r8ig1Gaz6e6l5z5ibn9ZW/+UJbsry3SsAGIBOiYUuQ+t8+biWcC8LOe53263dH19TVVV0Xq9vjExZqrBe2h89tln5vqo6L/44otbqcx9hi8qOQX2jz/+SPP5vLMq8jZbxuqn6/68zn3fFl5Rx/LsufvmNiS5+1vnlP+P3W538DyCFy9e0HfffdfFYEqdRSck+ipxMso7U//Pbrejly9f0nfffUd//vOf6dWrVwdpIZ5Qw0pVaaR7/7YeduFd50nT9dnXIvdc6FGPPMEJ/yf8+LHr62taLpddHKUk6y75+uuvzR+O6H2A0WhE4/GYHj16RGdnZ7Tf77uLSk6moZ/SkrrAQg+GzMETmNP92JhAU252bN+7asTYlWek4K+vr2k+n3dPJHrx4gW9fPmS5vP5wYMs8dz612BwjoG8wNq2pdPTU1qv10REB9NnhSZv1H15HYAiyrsAvcKSQveIOpU3tz57U2we+l5foRz91dUVXV5e0m+//Ua//vorXVxc9Cr/oQNLbyDz7fxE1MlkQuv1mpbL5Y1RcZ78td4uldeWdTnGO/A2An0HyVjLOfXqAwft5KPEF4sFzefzLvC6Wq16l//Qwdj7CHIYrvVwC6KbF37qnKVGrcW2H4KY4D1iz02zHVtHonBXhYXPnheLfbvddv8VnlF/E1j6CHxTjTXhokzBSRGnIuJ9otTHErPmHsHnBvCG7hZa5fM6jq1YTxSWqToiO40YundAbxNr0HU5oeW3Ub4FRJ+Ahe8dgOMR/m3hFV+sHm/TMnobPDkxqXzJJwpzF+CYIKVe581s5HpDt12+BqLvibY2Vi7YagC8/fj7TCo+kbrZyNoutD50/rTgJXDp40D0meiLjC+w3BtU5DbH3Jgi8YjRcg/lu9UPtiywlaGw6n3M/QGW+2phdbVAGIg+A+1WyQtNjgf3ErrX3jreMVjBw1gfMpQtiFnmIepaeuD4roDoexDrl+VcuNI7sESpt/OgLbcVJIoJXuIZS6AHJ8l6yON56m2tC+3b525D8BqI/ghCfcoU1u2r0urr73JJRYOtiG+qobDY7/cHd3KF6n6MKK19uQsig6veEZEAonej+9Y6oESU7+bKC1THBI4NRnnHABDZaSNvPCL22XOnXarOVkxD39Ks98Nw2zgQ/RGk8tkWqZF4fW9CidXLM2CIqP8IO086ydulsOrGHgWn5bRrzy8eU+EdLVkqEL0Tj6vrKSPmUudgPa6a65EzQ08odpBbn1D03JtfTg1M0edIDpiSj6rWk5eyJwa3/w0Q/QB4Bn2kglI5F2bqqTpW+aF1oTScB6vBiDUqVrYjVlfd3ZANmhwpyXMWtm3bDZeuqupgcA4s/hsg+kxiVtQ7okpbeYucPrlHQKHtcqPsGitrkfIevMexYg68L09XxvdFTCYT2m63tFwuqWma3r+nBCD6IwldWCmrrj+HAmmhIJUnah1Ka6UGwuSgLan+DXKOeqKb04N7sBpJ6dJPJpODQVI878Fms+km05DllA5EPxCevqvVpw/hGURjCT617HWrrfWaWJrPWrYagRihGENVVZ3opeVn957o9VTYT58+PZj/PtfTeKhA9Bl4BpDEglWevLi2aFpMMqcfq1/IE8jpNgxNjqXVAUkZM5B3O7L427al7XZLp6endHZ2Rh9//HFXBiz8IRB9D2SKKOdhDX36tDFLH/ouJfhYeaGyvMeOfRdbHzuubADkoBxeNx6Pu+9GoxE9evSIHj9+TNPplJqmgYVXQPS3TMrVz7X6RG8ubk8X4BhiZXqyEfpzzPXXhLpFMqbBwTx+DkFVVXR6ekofffQRffzxx3R+ft49kESWWXr6DqLPJNYnzh3Q0sfttNz8UHcg1Yh46iiPaX0Xere2Df2ekKWPNSqcsmvbtnvGYNM0dHZ2Rh9++CE9f/6czs7OEr+wTCB6BzmWoa+ocgSZEn6oTkP2bWNi96YuY9um6snBvKZpuucOTqdTOj8/p9PTU6prXNohcGac5Lq6IaGF7rvPiezz9lVVmY+X1nWNfSe3Cf3mlDC9gk8dL7VON3Ls2rdtS9PptHvQaNu23fYlu/Kh3w7R94AFx68ci83BPy3+HLHoP1PfjCK3OSaIF9te75PrQeR4A/L37Xa7Lu0n+/Rt29JkMqHxeNw91UbXH33610D0A5FKt4UucuvRWDHLqgNgVkpPYl38sm45v0/XJfb5GFI3HekgnxyoIx9aaf1mANEPghUsI7IHrxBRMNVnCTbk8upjhd4fwnxxluXf7/cHDR9bfT1rMbgJRJ9BKCceipJLLOETxUUZ8gI8ab3YskUf9z5UTug89UVbdrlO/m79AjYQ/RFIq5pKk2lSVl8T8wJi4vZe/F7Rp9x8z345gswJMELsPiD6gUgJPGad+zyJJba9Z5iuJaZQPMDaP0Wu6FOZAgm79nJ5yJjCQweiz8CTO7aCeJ5yc4b0ho7N5DYgofK32+2Nsr3oe/51rEOXmyPakNAhfh8QfU9CQtBBPE3M6nstfu6otz7lSbxdhljDo1OJfFxvgwK3fTgg+gxCQaJctzcmfDkXnC7fM3hnyHx5DrpO1liC1FTfqTEBqfOMhsEHRB9BClxHhjk9lHIprVFhOvKs+6hEh9F6Xhe6vzwknCEFnfNZYk3tlbO/FQvg9Jx8hcoGN4HoE+gcsHx0NQvaG3zyvEthW42BftfL1mfvdzmBvFRaLnc5VI6G/wf+D+REmKFBOeAQiD5BVVUHEzWMx2NarVadu7rZbFzlxMQasvgejyC2LBlqkE5sUk69LkfsnnXSy+JpsnjYbdM0N6bABjYQfQTpxsu7uVjwPFuLlS9mYkE3z3uOZ2CR8kJyMwPWZ4tQ45AzcMfaT4p+PB7TbDaj6XTaiR8j8tJA9BH0BcbPPq+qipqmoc1m06W1vKQsdO67Xr7rYbfWmACv1Q4R25//E3l33Ww2o8lkcjD9NQgD0Sdg1348HndptaZpaLVadY1ATgQ6ts7TCMSWQ8fwfOchtw/ep88e20YG8qT3NZlMaDKZUNu2B7PoQPw2EH0EaenZwvPFttlsDm6RPYaYcHMF3kfYoX36irPPNp5ttbXnmXP47jotemAD0QdgS8EiJ6Iucr/dbru+/BBpsZyc+1D5+dviWLF5c/E6oyKfdAMXPw5EH4EvKqLXbj5bdnlr55DkDkV9FxlKjDKSr18QfZwqcfG8m1fWgMjRcVro76rwHgp6QI4eQAXIPAkQfQ8g9vsFBB7EPDFw73uAiwy8y4QfwQoAeJBA9AAUBkQPQGFA9AAUBkQPQGFA9AAUBkQPQGFA9AAUBkQPQGFA9AAUBkQPQGFA9AAUBkQPQGFA9AAUBkQPQGFA9AAUBkQPQGFA9AAUBkQPQGFA9AAUBkQPQGFA9AAUBkQPQGFA9AAUBkQPQGFA9AAUBkQPQGFA9AAUBkQPQGFA9AAUBkQPQGFA9AAUBkQPQGFA9AAUBkQPQGFA9AAUBkQPQGFA9AAUBkQPQGFA9AAUBkQPQGFA9AAUBkQPQGFA9AAUBkQPQGFA9AAUBkQPQGFA9AAUBkQPQGFA9AAUBkQPQGHUie+rO6kFAODOgKUHoDAgegAKA6IHoDAgegAKA6IHoDAgegAK4/8AfSoikNubNsIAAAAASUVORK5CYII=\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 beta: 8\n", "[1. 1. 1. ... 0. 0. 0.]\n", "Current iteration: 13\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 14\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 15\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 16\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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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 beta: 16\n", "[1. 1. 1. ... 0. 0. 0.]\n", "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": "iVBORw0KGgoAAAANSUhEUgAAAP0AAADnCAYAAADVeFABAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nO2dPW9j2/XeF0d8E99F6m1sz78w8Ic71+4COICLtAH8DYJ0afIl0uYrpEyXznDhJm2KpAkC2Ne4vnPHg5mRSPFNFCWRTHHxbD1naZ/DczRzNbr3PD+AIIfiOTzk8Nlr7bXWXruy2+1MCFEeXn3tCxBCPC8SvRAlQ6IXomRI9EKUDIleiJJR3fN3hfaF+OlSiT0pSy9EyZDohSgZEr0QJUOiF6JkSPRClAyJXoiSIdELUTIkeiFKhkQvRMmQ6IUoGRK9ECVDoheiZEj0QpQMiV6IkiHRC1EyJHohSoZEL0TJkOiFKBkSvRAlQ6IX4gvyP/73O/t3//V/2n/4b//Lxsvbr305UfY1xhRC5OTTfG3/+b//H7vf7uz/vp/ZqP3/7L/8+99+7ct6hCy9EF+Im7uN3W8fGkjPb+6/4tWkI9EL8YV4M2zZf/w3v7ZKxey817T/9G//9WtfUpTKnl1r1fdeiILc3m+tXn0R9jTa916iF+Lniza7EEJI9EKUDoleiJIh0QtRMiR6IUqGRC9EyZDohSgZEr0QJUOiF6JkSPRClAyJXoiSIdELUTIkeiFKhkQvRMmQ6IUoGRK9ECVDoheiZEj0QpQMiV6IkiHRC1EyJHohSoZEL0TJkOiFKBkSvRAlQ6IXomRI9EKUDG1V/TNkz1Zln0WlEt0pSfyEkOh/hkiYIgu590KUDFn6FwS75Xi82+0ePc66+WNj5057T4a9hUqlEv7tn896vO8+dmze4+TNPB2J/pnZJz4W8Gazse12a/f39+F2d3f36H6z2dj9/b1tNptw2263tt1uMwcG/xyAyCuVir169coODg7CfaVSCf9+9epVeA3u8ZiPwfM43h/nb/58fIu9XhRDon8CRQNlMQu82+2CKCFQCBZivru7s9vbW1uv13Zzc2Pr9dpWq1V4jPvb29tww2Bwf38fzsnijw0E2+02cX0ssmq1agcHB1atVsPjWq1mBwcHjwTNN7y+VquFxzjeDyJ8Dj4XH8/n4cc4RuLPj0RfkCwLmef1ECKECbHe3NzYarWy6+trWy6Xtlwuw+Pr62tbrVZB8BA7BL9erxPeAKw+3itm7Vn8fK1mD5aeBZomWm/d8RwGhrT7tEGDB5Z6vW7NZjPc2u22dTod63a71ul0rNPpWLPZtFqtJuEXQKIvgHe7YSEBfnRs0dmKw4JDqKvVyhaLhS0WC5vNZnZ1dWWTycQmk4ldXV3ZdDq1+Xxuy+UyYeE3m03Cref38deVJuysxzyH9m50mpuN13u3HwMGew0scv8Yg0u9XrdGo2GHh4fWarWs3+/bYDCw0WhkZ2dndnZ2ZqenpzYYDKxSqVitVpPocyLRF4AtNc+dQaVSeTQnh9DhjsOKz2azcIPYWfTT6dRms1mw8mzNf2rAC4i58j4GwF4CW/hut2uDwcBOT0/t8vLSVquVvXr1yur1eni95vj5kOgLAtFjzr3ZbMLfvAt/d3cX3HZY88lkYuPxONyurq7s6urKFouFzedzu76+tuvr62DVeY7+UwUDIA+K2+02MRjg75VKxW5vb61arYaBcrVa2XK5tMViYcvl0m5ubqxarQbr32q1rF6vf+2P+ZNBos+Jnw9zBJ3nx7DumKez635xcWEXFxf26dMnu7y8tMlkYrPZzObzecKa393dJebdlUrFqtUf/qv8lMJfY5HP4ylqJWOvf/Xq1aO/+6lAzMpz1N7MwmvMzDabja3X6+D+Hx4e2nQ6tevra7u9vQ3fk8iHRP8EWPi3t7eJoBlc+dVqZfP53KbTqV1eXgaxX1xcBFd+sVjY9fV1CMh5sfMP2YudxcWkDQqxtNxT8MfFRI7H7G774B9nBXw03w8QCOw1Gg1rNBpWr9etWq3KlX8iEv0T8Vadrfv19bXN5/PgykPsFxcXIUCHwBwPGgBuMPBCxnszaQJg6+lf4wOOWcenFejE8Pl9Ds5xkA7/5oi+fx/cqtWqNRoNa7VaNhqNgluvyH1xJPqCeBff59DZnWcLjwAdIvGYr8dy6Zw62+12qVYdxCrVcAwi5xxAA5yF4Gvgc/HxeMzvF7tmFnqz2QxReETi8bjZbIZAHJ+bp0p8PbVazZrNpvX7fTs9PbVut2uNRiMMFiIfEv0TwA8SgTpE5OHOTyYTu7i4sPF4/GjuztYdt1ilHEhzmf3cOJYag5jYouK1EDun/hCfwHt5Kw13HNcUG7BwHHLsEDry6u1229rttrVareCu4z045YlBlb8jsx+E3263bTQaWb/fT4hews+HRF8Qb+WXy6VNp9Mgdgido/OIykPwaZYVZNW9Q9D1ej1RvALL2Wg0EgUteA6vZ3H56j8u6mHBo1DGW2MOaPJnQdoN799qtYLQYeUbjYbVarVUK88xEjzGuev1unW7XVn6JyLRF4StPIJ1EPrl5WVw5cfjsc1mM1ssFgl33luutLp3wEEuzGsbjUaoTOv1etbr9YIIYEnTRMZRca7rZ9FjSuFLYf2x7CFwFgPHYqDhABwGD9w4is/fsZ928Hd2cHAQpgz1el1z+oJI9AXguSasPObuHz58CMJHcc1isQjWna2oF7z/wfpCFlj0VqtlvV7PBoOBDYdDOzo6Cm5ur9cL7jPEzpbeW1S8f6zYiN10XzIbs8axz+Zr8H0JbyxA6L9nfh8/heDBaF/MQySR6AuCH/p6vbbFYhFEj6AdLDyKSFA2i5tZesmrn6PDMh4eHlqv17OjoyM7PT2109NTe/36tR0fH9vR0ZH1er0gdFhUdp29aJmsWny/6i0WwOPS31hAL7Yab182wMc3/M1nBzSfL4ZEXwD86Ni19/XyqJVPEzxIEzusItzXTqdjvV7Pjo+P7ezszF6/fm2vX7+209NTGw6HQfBszTn9lZVyS6u9j11n2vfB30tafMK/byzbkHZuPn/svHlcewwU4gck+gJwbv7m5sZms1kI4rHYuVIva2GOn6+jAIVd+aOjIzs5ObHz83N7/fq1nZ2d2cnJiQ0GA+t2u2Fey3Nub/3y5tef8n34x/uKgPJeg/cq/OOY55F2TOzfZSDtu5boc8Lu7O3tbagHn8/noYyWBe9TcQxXmiHgxSvKut2u9fv9IPizszM7Pz+309NTOz4+tn6/b61WKywrfW6x8+fI89xTXmOWHvPIcw5Z9nQk+gL4/DzWu3tXPja3RRrMB+gwZ8dKMoh9OBza8fGxHR8f28nJiY1Go6g77+e1aUL/sUSQJczPxVcm8nO+gAnXovn9fiT6AkD03PQC1p1TSjzfxHExwfOy0X6/b8Ph0IbDYRA4yk0hdrjzXvBZpbY/tgCyXOrPJc/5fGETgqwogCoz5+fn0ecl+gLsdrtQlIMb3HmzB6uOlBL/6DAQIKrebDat0+kEsY9GIzs+Pg6CHwwGj1JxnH7LI/jnJK9Av8SxPoDIOf3lcmkfP360jx8/2nw+D01Gymj9//jHP0afl+hzwjl6BPJ4PT1bcXRxOTg4SPzgEJlHVB6dYE5PT+3k5MSOj49tOBxav98PraHSimu8G/vU+fWXIuaKg7SgWhGxx3L3fpHTYrGwi4sL+/bbb+0f//iHjcdju729/VGnIC8Zif4zwI+GS0NRhQZRIyBXqVQSbawAL0Dxgj87OwuC7/V6waojMg/vICsvHbNmz/Fj3xclT0u9+cdZ545ZdKRNp9Opffr0yf75z3/au3fv7O3bt/b999/bhw8fbDabJQqGyib6NCT6AnAgD3N4uOy73S5E433UHvl3LA3tdrshQIdiGxTZQPC8+ozLVfddX+yHHSsGSjv+qcQE7IXtu//6wh4+xlf9+WaiEPzHjx/tu+++s7/97W/2zTff2HfffWfj8dhWq5Xd3d09+fP8nJHoc+J/hGj3xCvQ0irasOLNW/mTkxM7OTl5ZOF9rTvOE7OS/F74W4x9f+fPWfR78fd8fbE2336RD6+m8yJHt2AsYUYAdTabhfLn9+/f2/fff2/v37+3y8vLUubkiyDRF4R/0BAzBMUC9Y0eEa33wbujo6Mwh4eF9w0l0spf2fLvC1btc3HTLHXeY7wlh1fkhY4AKGc/fC9ADAh4HfoGcntwVEKOx+OwzmG9XkvwOZDoC4AfN8/h2+223d/fB7H65aJYw46VZpyiQ1Vdu91OVNbF5u28IQVSgGbJNfZZ8+msoF+aa82kTRu8FU/r6889/VHQhEaXq9UqsVkH2oTjOAwO3Pcf58EKxn3XKh6Q6AuCstlarWaHh4d2d3eXyLvHVrXxunSU2KKpBFfWwaVnEfs5sV/IkhXYS6sG9HjxsrX2x/Hg4l127uvPvQLRyRY9B7BOAUuP0eCSXX6+51tsSW/s84h0JPoCQHAQfKfTCf/mJa3c/823quL6erw2tkVTLACG57zo01pY+RZcafl8L17f1YeP4cEotoEHu+5s2afTaaK/f5rgeT6P9/Bts8TnIdEXgKPw7XbbBoNBEC7cdIiZW1OxYHAObiiRteyVA1uxte4sfBzj59N+0Q97Bvibd8e5pVcsXsCCh8sdm3ujn/98Pg9LjrmxiA/ixZbpii+LRJ8Trqg7PDy0brcbfqz4N1fNcTAOIgS8si5rjTsXofge+77BBU8JvLvNTS748+A9/C48uHGnXhYg99fzG1KwhecBwO/UA1edpxP47P4axZdFoi8Au/b9ft8ODg6C6DE/T2tL5a2Y9wJ8RD4W9YYbzLvD+DZWXsS+XDgWJ0BpMYJmECtbYhal9wz8YIEBI22TzbT8vHgeJPoc8AKaWq1mrVbL7u/vrVqt2m63C8E5pNx8C6dYSyr+G0Rslqz+Y/FCkFjNx8VAED8fh2PYwsJysyfBG3TgtbFjvFWO9fzHY8zNfeAtltaT2J8fib4AmI83m03bbDZBaAjM+Tm6WdKCsxsfa33Nr4FQeONLWGDUk6M4iAeZ3W6XWPqLXXFhdXmtPwQJD4IDcLDOsd78GFh88M9bcX4fH1zEtYrnR6LPCaw9gnDb7TaIHsU3vFMLjuH5PAuN57F4zreX5sUk2OkW6/eRquJUH86FunTkwf0GG776DYMLTwnYavtcPN7Hfxb+t79J7C8Hib4APvoO6+q3ZvI18miiYZacE3NtOM/xeV4O0WLrahSkQPS8yUWlUgmi50042ENAaowj/OymI/2WFlXngYqnCFkFPl9b8CrWSSLRF4BTZbxpxL5CGYZFBnHh3ByBx2s4z41efBA9p+9wPRxV5/k5l7v6eTYEjvm7z9XHhO49GC96vB7P8f1zI88iSabo9WUlU1tcqMLWO1Yf74/jiDcH5rjDC87DwThshglLD1edRY9IPpb1cncfjqb7qjbv4vO83Lf+ypqXZwlevDxk6ffAA18s6sxCAD5gxxFyLljh7rn+fVj02BQTrjoEDGI7z3D9OufGfcCNK9/4+aJz8zwG4kvm3X/MNl0/dzJFr7nQD/gfPVtGRN3Tcu/c8AGrw3BDZRr2t+PBg9eN+zQarLXZ433gcQ5fw86WPBZQ9K67h6cyXBnI3g8/51OWuLanijW2YAjXAu8IoNQ5tjGmkKXPBKJla80LSrhENbb1E8+vEYybTCaJra+48s0PLL6m3VfIseBjZbW454BdmrfiYRHzc0g/+mtgwXthI7PgXf80y++NDQYQ3/XXf993d3dWq9Ws3++H7b6azWYinSn2iP6bb755rut4ceAHAuvNxSi+JNbXwpsli2Sur6/DnvXj8Tix1x3m57F0GJfSsmjNHnrn4735ur3Avch90JD/zUt2Wdw4N7waP8ePCd5/n94rSCM2mCFD4TfGxFoHpC2bzWbYHOTo6MharVa0wUmZyRT9X/7yl+e6jhcDB+Cq1WpYOVepVBJWk0Xq92ozS7rnWGxydXWV2A2H8+YsULPHeXAWjJklVvDtW2HHwsU5fFqRg4gxUbLwYwOJf33smvw0iY9Ly4RAzLwDEMqesUcAWoW3223r9Xo2Go1sNBpZt9sNqVUJ/oFM0f/5z39+rut4UeAHWa/XQxsr9MHzlhF4FxuuOXLkaBqBmna/is0HxWJiZUFsNptE6pDfG9MSD4sd4oY132w2wXt4ioC9C+6bfMSOi302L3TenRaWHS3Hjo+P7fz8PLHVF7bubrfbobGJYlNJKlkj4Js3b0o9PMJd5KWyXPbqf1AsVL9Qhm9s0T087/XWObb9M0Qfc8X9AOWnAz6GwMfGjvMBMf8emN7wHvS+6MhXI5o9CB5dh7ghKB7zfgHtdjts+YWtvgaDQWLRE+IIJSc62mWKvlKplFr0gH+Q3AjTR4bZ7U1bI44fu7eEeJzlLkNUfC0YjPg6/HSAl+H69fexqD2uiS0uxyt4oPMNQjDXxj0qFdna86DHgxlKmX0nYF5YxKsch8NhYqvurHZjJSX6BSh6n4Ptdhsi6CwGX6ST5vrG5q2xYFUWEA1HrOHmp7nfMXFijstCxGfEMfh8LMBYh16uTuRNOLkrEI7LGpRirnzMm8J7VqtV63Q61u12rdvtJgSv/P0Dab8rib4gcN2xQIbxwam0x94KpwnfW14vFPYg0v6D2ZKmiddfj982G009MQj4Jb3cH7DVaoVlxrFdeWJTCO+J+E5CfiDF4AVX3vcWFNmoOCcnaYG2zz0Xu/t+zsyvj83D86a9Yi64n56w+DB3hsXm3n+xOTcGB7ze9wnMEqS/Rt9ezE8J8H1hOuB7F4j9qPb+K5Im/rTBhKP2sUHHi4oFxX35uFqNPQ3fuBPNPtGim3fe4fgG58zZK4ht2OHx0xz/upjoMQj665eRyofc+68M3Fzcs5C92+5z5QxbR36Og3fs4kP4PlUGVx1ix465LHpYWJyLhc9BOC/4rClI7PrxWWNZBj81kuDzI9G/ALzw/VQCgwGXs/o8NxNz2TlIFtsnr1KpBAHDpYfw0zbUjAnfC35fJD1tsMLnxL0fDM2SUyKRH4n+hRETclagziy+EQX/LTZn9qk4H+zzkXuez8dE74XuBZ/m2uf9tyz6l0MREJELxXd+PsjSvzDSrHUWaQU9eC4WCOP8PrvPd3d3Vq1WE+vxuRVYWh7cZwu4JiHrumNeSmyKk1a+K4oj0b8A/LyWxRgTzz5X12cFuH9+rVaz29vbICxuyMmtsWJRdKwp8G5+vV5PLPnd7XapkfssNz/2mdIGLR5gRDEk+q+MF4Nvw5X2Wv9j5yAgix4pPl6jj1VnsZRdbBNJtN/y6Tie73/JlB1/1qyUHX/efXEP8YCKc3LyY7iU/CPPcolZEFzoEhO+Fz0Eg6W+OAabdXgrCzHz7jir1epRb38fuefCHBTq4O9c6+/deB9oTPtcfpkx2o/zWnkJPx8qznkCaaLbV4bLx+M+ZgV9yio2X96XrvLpLrb0sJR+JRqLr9FoJMTO0XsUxnC0H6JHUU9sy+7Yd8JpxdjefN6acxmumSWOEfmQe18QWEO/TNWvVouVy3qrXiQNBSsPwXnrmAbP2wFcfgjKX2O1WrXVapVYx87uun9vXl3H1j4mev9+scKh2Nbd+IxINbbb7cTgpZz9Y9K+D4k+B7x2nQNY+MGyyHm9eGyzxqcureXcN+94m3ehCZpmoFPP5yytBV6IsaW1PFDg/fi7YCvvl9Zy1oBfc3h4aL1eL7FNF5pmaGntfjJF/+bNm+e6jhcJmmhgLgsrm9VEA8JH8IvbUHMTjazUU2xBDSy9b6IRW+LLLjGLjS27t/KxtlyxOAJ/Tv9attj+e8I18Hv6KHxa8Q8vFKrX69btdkPnnLOzMzs+PrajoyPrdDrBy1BUP51M0f/ud797rut4UeDHXKvVCrXL4uN5UwtsIol2WdwB13eswb2/+YAXW2EWZywPj3OmWXjM92Mxidhni01hzJKtsmINN/yUJzZo+M/GN0wfWq2WDQYDOz09tYuLi9R2Weigwx5UmUiLc2SK/g9/+MOPcjEvFW/J0hpjck4ax3FwDQLjxpjYlgo71XCvPD8F8B5DTCCx2nbMcfneiyy2maa39rFlu2mxirTpCK41bSCLvUcsig8PgKcPaIz5/v17Gw6HicaY3W7Xjo+PbTQaWafTsUajEb6LsvHb3/42+nym6H//+9//KBfzU4AbR1YqD3vEcR6bN7vw9eaY03ML7MlkYpPJxMbjsU2n08QON15wvKEG/s4deNnt9pFxFjO78mmC95130zrp+oyAt/RZwvIDRNZrfXbDzB7N63kA4BbYjUbDTk9PQwts/I2nNWUhTfSZPfLMrHzDI8HWlvve59nswuxhj3nsIDubzWw8Hofe97D4LGoWJG92gft9m13wgIGBJ7bZBYucBxQeBPK2AcNr+D7r+diKOcYLk6cKvpiI4xmoPej3+3Z8fGy9Xi8xvy+b6P/0pz+pR15ROIK93W4Tc00WPaeNWPQQFIKBqFY7PDy0drtts9nMVqtV4lxmyZ1tsT89b2sV22gDQJDwRl69ehU2zTCz8ByO5WAfkxVf8NY/5gmANIHv8woYL9bY9fL73Nzc2GQyeVQYJH5AxTk5iQXLeB4dE72ZPbL+eK5Wq1mr1bKbm5sgYo60p21gycJn0XMenPeZPzg4CA09wf39fWJtPgYBXEPaIJDm7vNjHrj83/zjIvhz+AAhgymYiCNLvwcORsXcaR959oE1tvo++Fev10Mgz78fRLtcLkOjydlsZovFIrHTrQ9++a2q4QJjkQ1q7xHdx2O8N8RycHCQ2DADLjTuedDz31MaX9KIyCA9HdXe54AFbvY4kOV/8P71EBennna7XRCWn59jWrBer0OTSS57xZTAexkccES6EJFvpAl58Q3P9avVqt3f34csBa4Fr+HPzjl+4Ac4rhsQLwtZ+gJwkI3nyWb2yMLzMQzEX6/XE4MqW2u46Chj5RRWtVq1ZrMZLDLntSF6jgVwCyu/+SZ/ltvb2yB+PI5t2AEhw+pzqg+fFzdfE/C18uU8GPl/p/0N7It9xM7zks4fQ6IvAETPu9ea2SOLts+th1AhCj81wDG8Kg7AaiMgx2WyLHrsac+tqXnDTI7cYw7MW2IjbgCPIlZOjEGjWq0+ygh48X9N4adlFPb9zT+XN/j40s7vkehzgh8w70a7Xq/NzIK7vtslm0fgOO9Om8U71fp0nx8EKpUfFrdg62pkF7irrbf07Xb7UQCQxQvRr9dru7m5sdVqZTc3N2E6wMVDfnddeAN8n5b3T5sSiOdHoi8AfujIu69WK9vtdtZsNoOoeTUaH8f5fi5bZfecRe8FD4tZr9fDtMKvBYjN6XHzRUAsXoh7tVqFz4VBYr1eR0XspwW4RwASgwm/NhYPkPCfH4k+BywSbD89n89tPp/bdru1w8PD4CL7rZz4WBZczLWP1azj9WYWOtvAcvoVcBA9L/a5ublJuPXe0mKQ4CkB1gfwcSxUXzwEzwA3bsDhpwvwBnAeXId4PiT6AkAgq9XKptOpXV1dheIbuMeItvvGDj795ReCcLUZXmP2WPSYSvCSVD+dgEcRKxn2ASMeJLhTDsQKC+3nkbFpAQaM5XKZuMdjnmJg8OIYAc7NaED48kj0OeEgHhbRTCaT0DtutVpZp9N5tJ+9t9y86SOstf9hc6oPf8f8nXPzvs88rjMWR/CC91WDbLlxiy0s8t8FBgtMCVjsvLpwNpuFAqPFYhEGGB6UfLBQgv9xkOgLgEDeer225XJp0+nUrq+vrVar2XK5tPl8HtZzxzrN+CWiZsmFJBA54CpAXikWmxL4CjVfS8D4Wn2es3NgztfXew8Bwuc1Auzms/DhGU0mE7u6ugoLjpbLZciE+BgAX5dy/l8Oib4APAfGOvnZbGZmFlJjsTZR3HUH+8TB3feRe1/xxwE9s+TyU18B6K81Zil9DTun1nw6Lib4fYMFXH52/dOEjwpDuP0cBOTAIHfnxUDDN1EMib4gHMSCm89Re9/mCdaeN4bsdruPaudjQo+V+qaV/KbVywMv9tjrfH6d2VePHxsAeBDwln8+n9tisQhzfV8bwIFITBs4pYhgKvoS7LtW8YBEXwBfJotI/t3dXUJ8PveOwaDValmn00ksp8V5zR5EFOsIm+bS+8Ehz2eIESsQyaoS88d4T8HHFVjMPtqPYiNYdD9YIEaAlCI8rMvLS5tMJjadTsOaBAymIh2JviAsMvw4V6vVo0o0vBbih2vf6XRsuVw+WiLL1jK2IaR//9ht33Xn+ftTBMODFX/+NE+ABe4DeXzP/QuQCoSlR2+CDx8+2Lt37+zdu3f2/v17u7i4kOj3INHnhC0up8j4h8l95TlaztYeFXIoluFqNtzQiBPi96WrWYL/HPHvs+xZ50zzFHgwiA1wHGz0Awa/hr8n1BRMp1P78OGDvX371v7617/a3//+d/vuu+9sPB7b9fW1rH4KEn0BEEnHnB0/dritsbw4QDAPloqLVnzHXGwWgaAgDx77rq/I8099HePTef58/B1wBsILPOv8fvrAHhZaY/3qV7+y3/zmN/b27Vt7+/atffjwwWazWWrKscxI9DngABu3Y2YrzAUuXHbKPzgslvGi93XvvV7POp2OdTod22w2oTEnz+29VU4T3XN9N2ZxT8FnHvA6PiaLWJAR++dhujQcDu3Nmze2XC7t4uLCvv32W/v2229DHUXZRe6R6HPCOXMU18DimyXdUV7JxgtssO0z3HjObXOQ6ujoyI6Ojmy9Xlu3202sUMtq0hGLyj9XJDtLWF7ssbRh3mP5MeIk7XY7xAF+8Ytf2Pn5uf36178OmRWJPolEXwBYa/S643y8WVL43ISSf+wYFLzwkfefz+chf71cLu3o6ChMF/y1AM7lf6101T7x4jVFnk9LOaaV6u52O6vX69Zqtez169eJwVI8INEXAJaed2lF9V1stxtfW+5bTnEAz/fDww2pKAQK04SVFtDLmnN/CX5MK5p3IOHPhiYjIh2JPifs3qPfervdTuzQulqtoltA8dp1nAsRbY5Io3ptPp/b1dVVuKFqDVVq9/f34X15RbXsY8IAAAdiSURBVF+a659HPJ9LkfPnHYBi50ybIhQ5b9mR6AuAOTWX03a7Xet2u4kiE847p1Wy+R70sPaY389ms4Srj9tyuXy0dxv30OOqvdj15yGvSxybZ++r5HvKAJQV5c8zNSgrad+NRF8ATtk1m03r9XrW7/cTHWp5wQoX7PCcHKLyK8swYED4ED8sPmrWz8/P7ezszIbDofV6PWu1Wo+2k85bqsvXlPW5s45JK93lY9MqB/OI1qf3YjUKscFFxJHoC8CFNoeHh2H31Ovr6+iGlGaWqAv3wufnt9tt6I7rN7rACr6rqysbj8d2cXFhFxcXweJjw0bk9jml6NtpeQ+Apx++qIjThH7QiFXbxaoROc2YtqgolnXg94hdG38Wv8pQZCPRFwTWvtFoWKfTscFgkOhdzz92cHt7G/7mhc/ix4oxTAvY5UeQbzKZ2KdPn+zdu3c2HA5tOBxav98Pwu90OmHTTbj+3gvgeAO38fJbZvm94X2swm/5BfFzGzC/rXYs/hATvS/IwbnxPaLCMRbDENlI9AXADwxpu3a7bYPB4NEyWf6R89JRiJp73cfmqzwwwPpz6enl5aV1Oh1rt9tB8J1OJwgfN2yS0Wq1wt7uXELM6+E5FrHb7RKfxU8bcKwvH+Zefgh4NhqNcI/Bh8/nFxax4GN77PGg64uWRD4k+oJwMA8uPqybz+Fz/Ty2lzL7YXCI9avDfSxAxtkDLOltNBr26dOnxFp+v2ceHvtIv9nDBpsoI2bRszX1QuUqRG6ACVFysBODTrvdDnvL47q4wIm9Iz43BhMejOBl7XYPKxJl6fMj0ReE5/Ww9mYWqvS4zzwEiB/3YrEIlXlw9WO597QyVRT3wO1frVaJ+TK74ryOn9f6+y67vJSV5+bs3nOPAJQe49p8ERKuBdadU5soLW61WsEL8cI3s4R152lHpVIJi5ZGo5FVKpXgwaBASuxH39QT8FF8WEUu2mGrhh83L7pBpxi2+jHxZ9Wp8yaNPiLOnkEsmu+DcBBX7HNyXwBvkf018qCIgZG/E5TN+qAju/qxjIfZQ+FNv9+3+/t7Ozw8tF6vZ4eHh1av12XtcyLRF4TnkPhRs+j5R84BNfzIJ5OJzefzsLzWW33Ag4DvD5dVledhkWZFydN60Pnj96X+8DrfRISnCvie2AOBB4G1DPyevDS50+nYaDSyWq1mo9Eo0Zef+wuKdCT6J8LWHm5nTPSYz+J2eHgY8u0I8t3c3CQsmxc1ynb5vdMCV168n9tbPqvmH9cW+1ul8rBDrtnDlt08EPgtuWK9AnmK0Wg0bLlc2na7DalSTEtEfiT6J8DWx8wSHWO2221C9O1227rdbijkGQwG9vHjRxuPxzaZTB41h+R8P1t7nu/yPSgi6jyvzVM0gxiDh5f+bjabRErt/v7eDg4Owl58LG72KniQgJVHVyHuxy+KI9HnxBeroAd9rNiFo9rtdtt6vZ4NBgMbDod2cnJiZ2dnNh6P7fLyMnSFRcktesHxmvuv0fU1j6DSXhMbCPi7w0AQEzx/vxyYbDQa1mq1rNfr2dHRkfX7/ZCKVHFOMST6gsD64LF3u3kevtlsrNPp2O3trQ0GAxuNRqHIBiJHme1kMgluP7eIRhdYruv/qcHChkBj//YxAEyV4C0dHR3ZycmJ/fKXv7R/+Zd/sdFoZK1WK0yxRD4k+gJwgAo/1Kw13xwh55z43d1dorUzBgAv/ul0GoJ+bP3hRXBFHN6L6/1xHXxN/vG+oKAvm+USWB8gxHfCr/FiZred/+Zfw7UGLPrRaBRaZB0fH1ur1XqUVRDZSPQF8PPNvC6wLyv1e83xzjC8/xvm+vg3byOdtpe8L5bB+6VdS9pCGS9Mn/9HxoIHAN7cgwNwXKGIWgFfluvfA4FRLGNGjAS5/m63G1J/XDsg9iPRFyQt/ZWFt6ppdeVpG0Wk7QyLNfZ848ac3guIiT1toQ2EjMIZrsiL1dHHBgdfwsviT3P1s87BA4g/l0Sfn8oea6Xw6Bcm7fuOrSzjaQEseKxnvBc516rHhO3fx1+Xd+NZkP45P0h4q7/vuH3ThzzHiVSiX45E/4LImnOnWeaYkNPOlfZeacTm7Hyf53GRY556DpGKRC9EyYiKXusRhSgZCuT9TPnS1Wpyp38+SPQ/UyRSkYbceyFKhkQvRMmQ6IUoGRK9ECVDoheiZEj0QpQMiV6IkiHRC1EyJHohSoZEL0TJkOiFKBkSvRAlQ6IXomRI9EKUDIleiJIh0QtRMiR6IUqGRC9EyZDohSgZEr0QJUOiF6JkSPRClAyJXoiSIdELUTIkeiFKhkQvRMmQ6IUoGRK9ECVDoheiZEj0QpQMiV6IkiHRC1EyJHohSoZEL0TJkOiFKBkSvRAlQ6IXomRI9EKUDIleiJIh0QtRMiR6IUqGRC9EyZDohSgZEr0QJUOiF6JkSPRClAyJXoiSIdELUTIkeiFKhkQvRMmQ6IUoGdU9f688y1UIIZ4NWXohSoZEL0TJkOiFKBkSvRAlQ6IXomRI9EKUjP8Prqui+TvP5XUAAAAASUVORK5CYII=\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": "iVBORw0KGgoAAAANSUhEUgAAAP0AAADnCAYAAADVeFABAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nO2dPW8jW5Kmg6T4/U2KkgpV1caix227vQF6gTbWXaD/wWK8ceZPjDt/Yc31xmu00c64Y8w6i3XauLqYW1JJ4vc3JXGMi/fozeDJZKZKUuneEw+QoCQyySTF90SciDhxcvv9XgzDCIf8974AwzDeFhO9YQSGid4wAsNEbxiBYaI3jMA4OXK/hfYN45dLzvdHs/SGERgmesMIDBO9YQSGid4wAsNEbxiBYaI3jMAw0RtGYJjoDSMwTPSGERgmesMIDBO9YQSGid4wAsNEbxiBYaI3jMAw0RtGYJjoDSMwTPSGERgmesMIDBO9YQSGid4wXpB//Y//lP/xL/8m/+t//7sMF9vvfTlejjXGNAwjJTezjfzT//m/cv+4l//3ZSr9+v+Xf/6fv/vel3WAWXrDeCHWuwe5f3xqID1b33/Hq4nHRG8YL8TnXk3+4e//m+RyIhetivzjf/+7731JXnJHdq21vveGkZHt/aOUTt6FPfX2vTfRG8avF9vswjAME71hBIeJ3jACw0RvGIFhojeMwDDRG0ZgmOgNIzBM9IYRGCZ6wwgME71hBIaJ3jACw0RvGIFhojeMwDDRG0ZgmOgNIzBM9IYRGCZ6wwgME71hBIaJ3jACw0RvGIFhojeMwDDRG0ZgmOgNIzBM9IYRGCZ6wwgME71hBIZtVf0r5MhWZd9ELufdKcn4BWGi/xViwjSSMPfeMALDLP07gt1y/Lzf7yOH72++++OeL+k1GfYWcrmc+13/PennY7e+c9OeZ97M8zHRvzHHxMcCfnh4cMf9/b3c39/LbreT3W7nfsbf7+/v3eMeHx/dkTRo6J+ZfD4vuVxO8vm8FAoFyefz7sDvuB+DAj9Gn6efA+fwkfRcSecZ2TDRP4OsgTKfBd7v906UECgLHOLebDbuWK/XB8dms5HtdiubzUZ2u51st1v3HA8PDxHx49Z3DfyeWOyFQkFOTk7cgd9xnxY5P4aPYrEYud83EPBr4rHFYjFyq3/mAchIh4k+Iz7LmeXxEDes83a7le12K+v1WlarlSyXS1ksFu5YLpfub3gMDwQ432f18Vpx1+GbEog8ufMsbBYY/6ytcJzo9cDBR5zYS6WSlMtlqVarUqlUpF6vS6PRkGazKc1mU+r1ulQqFSkWiyb8DJjoM8BuNywogy8dC4mtOCw4LPNqtZL5fC7z+Vym06mMx2MZjUbumEwmMp1OZblcRsSu3Xn9Omnn9nE/8xxau9E8IOjH4HceEHgg0IOIz7oXCgUpFotSLBalXC5LrVaTWq0m7XZbOp2OnJ6eytnZmZyfn8vZ2Zl0Oh3J5XJSLBZN9Ckx0WeALTUOFn4ulzuYk0PocM+Xy6XM53OZzWYynU5lMpk4sY/HYxkOhzIej2UymchkMpHlcunceIj9lwYPFBgI9MDAAwE8Alj5er0uzWZTut2uDAYD+fjxo6xWK8nn81IqldzUweb46TDRZwSix5wb7rOIHLjwu93Ozb3n87lMJhMZjUYyHA7dMR6PZTweu4EA7jyEzm77LxV4EfBC8vm87Pf7yGCQy+Xk4eEhMgDAs1mtVrJYLGQ+n8tisZDNZiMnJyfO+tdqNSmVSt/5Xf5yMNGnRM+HOXrO82NYd8zTF4uFTKdTGY1Gcnd3Jzc3N3JzcyN3d3cyGo1kOp3KbDZz7jueVwfeTk5+/lfpKYW+xrTvxUdWKxn3+Hw+H7lfTxO0lddegIi430V+Hiw2m40bDKrVqvOCtttt5HMyjmOifwYsfETL8fv9/b1sNhvnxk8mExkOh3JzcyO3t7dyc3PjXPn5fC7L5dIF5Ha73UGaDfjEDlEkPYavGXyLC6zP1dfgy63jgPuOYF0+n4+45icnJ94BAvP8SqUilUpFSqWSO9/c+eyY6J+JdvMRoIN1n8/nbo4Owd/e3rr5+mq1kvV6HRk0RJ7iAvq1AN/HUwucq2Grq+/XAUcf+vy4Aht9HTqNh4g8R+WReiuVSk7cvqAhBoRyuSz1el16vZ50Oh2pVqsm/mdgos+IdvEhdKTT2J0fDocR6z4ajWSxWDhXHpYdovflyzEHPoauVsM5vnw6nhdzbJ3e4+fRaTU8B38WfN3aOpfLZalUKlKtVqVarUqtVnMpuEql4sQP152DoZyJEBFn7dvttgwGA2k2m1Iul91gYaTDRP8MIBAdZEJEHkG6u7s7ubu7k/F47ObubN1xxJXRivjLYX1zYx39hvAQ3YalZdE/Pj66YCRu2ePAc3ExDITJnwMPWLguCBTRd+TYG42G1Ot1J/xyuXzwvDyo8mck8rPw6/W69Pt9abfbEdGb8NNhos8Ivtyw8ovFwrnscOfv7u4i0XnM3SF4LRYAMcbVsUNQECKsKI5qtXrwt1KpJNVqVUqlkpRKJWexdUpxu906keEa2CWH8CEwLhPmWISIRKw8rDssPApqUFSD5+XBiEWPQClH/svlsivSMUufHRN9Btjt3O12slwunWWHVcfBkXmknmBNfQU0wBcI4yq3YrEo1WrVWcx2uy2tVktarVbEktbr9YgrDdFrS61r+LXo2dJzRF1XFnIWgz2EcrnsDr4GXcrLVl6nPnUxVKFQcIU7Vo2XHRN9RiD6zWbjrPzd3Z18/frVBetGo5HMZjNXOrvZbCLuPJ6H0dadXXcEvrhIpdfrudtOp+NEr8XOgudgGb8XXWwE0etIO4tLVxqyMHm64Su/9S2e0Z8xC18vHmIvBNdmpMdEnwF2O9frtcxmMxmNRge5d11J56uDB2zR9Yo0RLqr1aq0Wi3p9XoyGAzk/PxcLi4uZDAYSLfblVar5YQOi6pdcp77+94TR/C5cIZXveE6cf16wZAO6OngoW+VHH8GfE241WsFAJfvmpXPhok+Iwh+sej54EIbzN99go8TO5egYpFJu92W09NTOT8/lw8fPsiHDx/k/Pxcer2eEzynwFgMcRZVpwaTilviROUTp+9c35Qly3Pza/B5/N6S0HGS0DHRZ4Aj3qvVSmazmauR5xJaLXhdnw84FabFXqvVpNVquXrzi4sL+fDhg1xcXMjp6al0u11pNBrOumuLfkxsx95nmsceW7yjnyOL8HgKop+fH3Ns0Ij7PQTiPhsTfUo4iLfdbt0KOczduYw2Lu8OeM6OoBTceLjycOf7/b4T/NnZmZyenkq73Y4sK30psfP1fcvjjp2fxjJnvZasrxEyJvoMcOQeoudUnE5diTy5obD27MrznB1BOiwi6fV6cnp6KoPBwN1i/l6v1507z9HvpHnya4kgzqq/NvBGdBxB5LA02Ihios8A5+d19xpdPSYSLabBFxGC5wYRrVZLOp2Oi8b3+33p9/vS6/VcdL7T6Uij0YjM37WFx2vqa3hN+Pmf60JnOU9PI/ScH54YCqBCtvgXFxfev5voM4CAHJpgcLGNXiqKLyB/6XT+utFoSLvdduKGVe92u9Ltdl0OnqvYkOdOI/j3StoAou9xWug6dbhYLFw2ZbFYHJQWh8Sf/vQn799N9Cng6DSLnotZIGgO2kH8PBigPLXRaEir1XKdYAaDgXPh2+22aweFeT7m71wVdywK/t4GgTgR6/v03315e0yzUAqNVY13d3dyeXkpP/74o4zHY9dZ6L19Fm+Bif4FgHvPHWlFJDJHx+8nJycHOWu49LVazbV+QmT+9PRUer2eC9L5Kum4Is6X247Ld7/2fP7Y330uedx6g7gcPS9fhtgXi4WMRiP5+vWrXF1duePLly/y9etXWS6XES/M+BkTfQb0QhCRpzJZEXEFNZym48q2Uqnk+r31+30ZDAZydnYmZ2dnLueOqDwvlGHrjueMuz7ffWmj4d+S1jqWvvNV2HHRku7aq8t8efnyZrOR2Wwm4/FYrq6u5PLyUn744Qe5vLyU6+trmU6nzhMzDjHRp8RndUQkspKtXC57I/ew8ii26XQ6TvSDwUD6/X6kqo5LZtm683XEpQKPFdmknUNn+Vz0tfHffW45XHME3JD50L0J9LJl7hjM1ZBXV1dyfX0tt7e3Mp/PM7+H0DDRZwBzenyhUUzDKTMOrumWzpVKxaXlODrPeXfdFca3GIXTf/r6fMLm87NUwGl8kfqkuTeLnVt+Q8ho7b1ardzB/f1R7ITeeNwKHB2Ecd9qtZLtdpvhvxkuJvpnAEEjx16pVLwbMvDmDnrRTKfTcdF5X2ReCyzuiFu0Enfd+uc40fJ9+lzfdbHbzkLnwCcXNKETsBYuUqCw6nzgPt78Y7PZxA5yhh8TfUZ4fo4cey6Xi3SC4Tp43dACJba8DJYtPLvzPlf+8fExEifQ3gDO07dxVXpxwmWPAvgGIt/uPNxGjKsXsQwZTUKxOAklzOv1OnIeu/t6JSAGFR/fEpsIARN9BnxpNwTvsKS1VqsdpNd0FR7X13Pfdq6uY8HqhhtcxqvLb30utrbY7BlwKlKvj8dUxjed8AXbIFS9aw+sO5YhY3HSeDw+aB/Ga/P15h3Gy2CizwAi9XDT2+22W/DSbDbdAhhYbuwCw2k2pPM4FaeLbIAWFYSgV+b5+taxVWTh+ESvU2EQILf41nCuHCLXe+5xKzE0FJlOpzKdTiNzeF+HHBP662GiTwkLFm49hFWtViOix6o33Y+O0XXzjA6AsbC4s40vwg/B63oCPk+76XpjDggSllsLEfUKWHHIgtei5734WOjck49TnDw4mfBfBxN9BuDKQ+QiP39J8bt27bU19TWe1I/hQYKtr26ZjevhzjYiTy2wdKkwLwZi4fPjWaRYIsxNQHRUngN1vMuu3pgTf8cA4esRaAJ/O0z0KeB0HIseVXfc8BFzdN3o0deSSuTJTRaJpty4zJR3sl0ul07A3D0GUwm22hz5RuNLtqR4fWzQwbvm4ncMPDoF5wvg8aaa8AJ4iuILFprY3x4TfQYwp69UKnJ/f+8q8bBajqP2HFiDQH35dv5Zu+jcYns8HstsNpP5fC7r9Vru7+8P5va5XM6JlK02z515moGftWeAA1MDiBfnsOeivZi4LIB+z3ifxttjok+JDsJVq1UnNL1ji24+qV14EYmIQi+/hZXk5ps4sHU1W3vdsBJuNQTP83MtOszP2U3X+91rtz6uZkB3+fVlEnCf8f0w0WdACx8i1R1ftVUXebKqLDSu4cfzQyAQLspNkd+eTCayWCzc3JgHDD0t8Flt7VbzLje88QXc/jiR4z35agL4Zx2g+x6Ct2KdKCb6jHDwDGix65QY4AAY3GnfppXs2vOOt8Ph0LXn0ttkozsPBhSOqPMA44vE6wUwnB7k+33vxyd2nkK8B+tunkWURNHbh/UEf6njSl99X3AtKg7OIUKu01cIrHFRCw5sjcWut6/QhufjGFji0mNx83Ltsvveo771Cd54X5ilT4Gem2rx5HK5A6sLtGXHCjEUq0D4bI15YOCClvl87g3KaWurt5tK2jPP575r4evX8N3qOoTXFvxLtOkKlUTR21zoCV0sA0u63++lUCjI4+Oj65yjd4ZFNH2xWLg97zA/RzQeKTUdSUeaDkE55L9982UWsK7G0/X0PvHGRdnTwM0/RQ4X9MR5RVlI6gPIr41SZ9/GmIZZ+kTYSvL+81jdxZ1zeIENp944Cs/73g2HQ7fYhEWP4hudQuPFJ74cNws/LnXGj+PzkiLtAINY0tLcuC60vjLeNGv/AZcxc5aD24YhllEsFt3mIO12WyqVSuT/YRwR/d/+9re3uo53A0fQ+UvC9eUQIVx63qyCRQ+vAPXn2NUWi03YvWdLz91iMBDwACSS3KqKBa8HB/1YH2y1+TFJnl+SiFE45HtNHhB40OC4CQ4ETDHAYuESliXn83mpVCpuJ6Butyu1Ws31KjTR/0yi6P/617++1XW8G9gtR8cbVN5B+LqWHRVxqKdny4OGD9gNB1tXY34Oy87RdV58ovPkfJ18K3IoeP67Po/fq+9vEEocvkHhW+HSZL7lRiSoiMSCJzQi6fV60mw2XbPR09NTaTabbjAwwT+RKPq//OUvb3Ud7woIrFAouFVzuVxOdrud1+3l3Wq4HBZReO7+wjX0OqquK9x04I1fE7e6qEcH6o7Bz+U7z9d4gx9z7NrYBfdlPLiqEELnlYcYSGHdsaQZjUV59x90Em6329JoNNxKR4tNRcklfTE+f/4c7PCIOSp2oeGGFdwOK24TRQ7iwX33pc98ATVf4E1EDtpyHUsbavFq78AnBh14i9tpNu7x7IbrWAdbbt1SjKdI3HUIz4Wf0Wew2+3K2dmZnJ+fu8aiWPSEIJ4h3tEuUfS5XC5Y0TP8ReYvtK9pJW7ZUusUH6ODX0lBNwgrbqOLOMHj/jjr63sNnwXmGn/9WBGJiBb9ArBPH6ZJ+vPjc3h7bf1YtvzoKHx6eir9fj9i2eP2BQgUE/1LwV9+nQ5iwcVFwbVYfdbT93/RQS1unpF0vha8FrJu8iEi7vnhWrOrrQcElCbDEuNAd18E2lj4fA4f3EWIr4c/+1Kp5HYH4rbhehAOnVzMqGc+0DPghTIaXxpN388usW/zCl/Bi45s+4QdlxNnwUMYumMPDwa+KDn34WePBz/z3nz1et0d3NabLbE+dCmzbkDCU518Pu82DUH/grjuQ8YhVpyTgmPi/Zbn4/3uOCDHj0Xxia700wMGex06Ms/WWVtuPQfHgSafuuEnYhwYBCB4WHcteB409NTId+gBkEuEkbLEYMQdiox0WO39d0Rb6rg0Gwuf98djfFMEHkzYwvMGHexawxJDwMiBQ7y8zRYGBp67w5XHOXHbcvkCknrKw++DsxuIlXCKNC6oafgx9/6dcGyATaqG87nDDDfagFi0aLVlh3DZYrPV1sLHufpxGFi0JfdlBHweCwdD8R6wpNgs/PMw0b8DjpW3+ub7Iv60Gn7n+a8O2nFPABYs9trTgo9z1Vn4eA5+Lt0GPK3Y9fvHZ5DL5dx0SKctTfzpMdG/Y7JMr4596VkoHBnX7r0WMdx63syDH8fegm/TzTgLz9ecJHp9/Sbyb8fyGwFjMZswMUv/juE03DGSpgi431fie39/7+b62+3WWf/NZuMNvvFz6C2mcc1Jlj2rpeZ5fVxZspENE/074JhbG/c75/N5+SiLECkuRP+5LwA/l16Vp1tbo5yY991jt56nA7vdTqrVqjw8PBxs2ZV2bu8rS+ZBBufxQGAufzpM9N+ZuPlsXAmuDx2x19YQIsHKwd1uFxEMt9fSO9Usl8tIyi5uTu+rwsPjOaCnN93U6Tt+rzyo6ZQdBhCz+tmx4pwUvNYXSwuei3N0oQ3fn1QJGJffx3lo/MHWE4LcbDZSLBZdU05Y7/l8HhEwr3zjwJ8v6s8R/7i1C3HFOSx6X3GOrjI0a58OK855JnHz0mNluDgXtz4h+8TvS8vx6+j5Pw8CPBfXwueIflIZLlff8WN0GS527vVV5fm27/Yd/Lngc+BpC8pwRZ4W+dh3NT3m3j8D34IbkWjQSeRwwY0WMP7mc+1Rdcb4gmJ8jj5fw113WPC+OTYLW9/CwvKAobfh1pV8caLXi234PgifBwAsuKnX6yIikcfqwSJ04rweE30K+IvNq8R8DRr0clq2UHHVckzapbVa9EmRfl3rj7+x669fQxfz+KLy+vHsIRSLRW/Zrs4I4G98v16YwxWF6JzT6XRc1yF81qjFt6W1ySSK/vPnz291He8KiARWhZeU8pc/qSsM0mHcRIP73en+875otR4kfDXrPuHrObF+bxzR971vvs/nCfgej3N4ns1TBC1efg++JbY+LwOeBJpojEYjmc1mMhgMpNfrSavVcp6FNdGIJ/GT+f3vf/9W1/GugDBOTk5cJFpEXLsszknjS66/0I+P0f3oeNdZ7m7LeXNul6Xz6Yx28fXqvLiAlp776+f1/V0PKkmP5cfxcaxpR1yZsK4YxP+jXq9Lp9OR6+trubm5ce2yer2eW2PfaDSkXC5HehaGhp4egkTR//GPf3yVi3mvsIVE0AuW/vHxMbYxpv5y4kt2f3/v+t1Pp1OZTCaRjStY/C/RGJMDdmkCinyf9jaOnffajTHjPAFMG5rNplxdXclPP/0k/X5fOp2ONJtNaTabcnZ2Jv1+X5rNppTLZRfZDy26/7vf/c7790TR/+EPf3iVi/kloOfWyGGj5z3mkyIScWO5BTbvSYftqYbDoQyHw4MW2LwNFfLm+m964wofiG7rSrm4x+LWF4TkxySdq/927PWY57TAPjk5kfF4HFkCjKxCtVqVs7Mz1wK7Wq266D5nQ0IgTvSJ7bJEJDyfiIDLDeHxZhdodCnytNmFXt+Nyje4+JPJJLIZJe9Nx5tZ6F1ufI01fW5/XABRbyGtz9FH3GCRJPS475GvL6A+14cWp6+Ih6cNGJhPTk6k0+m43nm82UVoov/zn/9s7bKyoq0LR5rh5iO1pleW4YsIq83dZ1C51mw2XVts3uwCsQBMDY5tayUSLb/F62KKAMvP5+ipAt/Hj+fnT7oV8Qs8afBIQj+GBRuXMQHr9VpGo1GkjZbxhBXnpEDP3blIRItef8l8NecYOGq12sHOtRgkUALLG1hiAMCWWr55OJercpyAy1fxeG3V8X5Qy39sesBowccFCb8Ffq9JWQQMnoYfs/Qp4PQVH9zBhUtLfXlskacacgDhQ/A8ncAmGdPp1HV7nUwmUiqVZLlcer/YbOV5o82sW1VjapLL5SIByyR0BuG1I+ZmkJ6P1d4/Ax30Ar5qOZ3XR64Z/e4qlUrEokJ82+3WLXbhmncscGHRs2cBwfPeezo7oD0EDBQQPVbgQfjsFfB79Vlz7toTaqrsvWOWPiOcSmNLq9ec++ApAqLNpVIpcr+IOBcfraO5Og3eAYp88Nr6XAQceddbpALjBI+BAZ4HHo/3zava9NTA53rrTAD/7S3R18O/x90H8Jgkb0c/z3t6fh8m+gzgi86WFBaRhSdymPPnfwrm9bwyTBfZYNtlLrDAILFcLl2hEBcHiTylCdfrtaxWK1cMBIvvS81B7MgQ4BYDG78HnTnQwUM9oLD15y/4W5IUX0gTeziWoUh6zvfw/BoTfUq04FerlWw2GxERt+KL3WC9SozdZ5HDFBR7Cng81/ZjelAul2W9XkdqBFj0mMsjELhYLJy1x+vriDuf4/MOYPXxeLxHTgnyc3PsAL/rDAE+L+PtMdFnAAJZr9cuki4iUqlUIikypIp4Pqyj6CKHral1qk9bxULh5110kbKDleeCIFQOIuUHS88pRt974qYZSA9yfQBbeV7kojvs8LSAy4zZY/AFE423w0SfAnZVd7udq7CbzWay3++lWq26LzwaRqAcF+ezUEQk4pb7RO9bNIPac1h5nMu7vEBssNzoggMB4rXx/Fr0GMx4S2224nhtvA6mBTzlwRQBgw9+5ikRnoM/Y+NtMNGnBFYKop9OpzIej+X+/t5Z381mE1nlxSLWeexisRix5Fxrjt8ZxAF0uyhdG+BL2ekAnn5uCBfeAQTPg4VeEQgLDoFziy0+4DnM53P33KgzwHXFWX4bCF4HE30GWPSz2UxGo5Fst1s3z0anGGyqiOWd3B0HQmX33Jf6YxHz3nNJtQF8nTzd8AUStReiS40xYMB9930WXFOAKkIWPgt+Mpk472g6nUYqDPl14lYWGi+HiT4DEAjX0i+XSykWiwcNJOHi64Ie3vdNRCJVfr4MAKL3eBx+jlvTz1MRX+YAtyx6nbbjnD6scFyzD18hEFv+1Wol8/ncrTIcDodyd3cn4/FYxuOx8wC4nkB7AEn1+0Z2TPQZwJcc82V8mfP5vGse6du0kfvIoe6eG1nwfF7kcLUZngO/8zm+ZhpJuXN9q1NvOvKelP/V0XseOLi7LoQP7wjCH41GbrkxphQcD2Dvg1OLuD4rtX0eJvqMcMUc3PzHx8fIYhxf9xesA6/VatJqtQ7y7Fq0PCXwVfdpwacpyoirI8CtzuGzi+17fu1R6IMHAJQVo7cAH/P53C080jEBZCA4zsCrHTebjXd6ZMRjon8GsG4QPvrIsxUWkYilh5VvNpuyXC6d9dKBq/1+H5nzc4BPCz6uZRaei3/X9/vek+827lzf431TCx4A2PWHmDlFCBHrmAD6DvCBwWM2m7laBAwAFg9IxkSfAW2VOdWll67qRTpYVttoNGSxWLgItq5oY68BAwYPACx+beV94tfXn/TeeBqQFl+0XXsLegDgGACn8rhpCP7GFp8tP6YKNzc3cnV1JVdXV3J7eyvz+TzT9YeIiT4lLDhd9spfWF/VG1fTwWrxGnqudX94eHBxgWKx6Cy/dvf1wdd57H289Oci4q8D559Z/IhvcHYhbnqgA4UYCBaLhQyHQ7m+vpbLy0v54Ycf5PLyUr5+/SqTySSy/NiIYqLPAFfAwYXf7/euMCUpL46UG+fBuVMu/4ydYSB+fo4k9zVO0GmF/pwBISnQx3/nKkRf7CBpuqAHAQRSF4uFfPr0SX7zm9/Ib3/7W7m+vpYvX77Ily9f5ObmRubzuTcYGfpAYKLPAETPPdpF5GDOygtV2DXH1lH6gPXCgNBut6XZbDrx4zl0Ec63uPMv+ZmApAEgrtIwLoYQFyvAAFCv16Xdbku/35ePHz+6ef7t7a1cXl7Kjz/+KOPx2LU0M54w0adAB+mQa8f+bCh/hdg5163dfHZTfZHt+XwuvV5POp2O6/Cqy2c5J6+r+pjnzNFfE99UICmWEDdNwO1+v5d6vR7JFHz69Ek+ffokNzc3slgsvIVFoWOizwCvhYfosS6eC2P0AhPga2OFaDZEj4q1fr8vy+VSer1epBmmyOGWVnHW/73iyyikzRbE/YzPvlqtSqvVks+fP8du6hE6JvoMsKVHIQ4aXq5Wq4PNBbRbKvLUdFI34/D1xEMOG2lB7Tnoa8uSuksiy+DxUvPjOIHHPZanTfx3NBkx4jHRZ4Dn9NVqVRqNhqu1L5VKsl6vvYU2bKX1unOIHhYfLv5kMpHxeCyTycQJnzfaqLT4AhwAAAeDSURBVNfrkU0hdRrP50Jn4TUf/xKW11dSbBY9HSb6lOg5PUTfbDZdGSnqx4/tl46IP3LwXOyDgB4sPhapzGYzV7k2GAyk2+1Ko9FwLbV0z31f2+c0ojhWhRf32LiAXFpX/thrHHP/k64tVOI+HxN9Bjj1Vq1WpdlsSqfTkfl87opJ2JJzhRjml+xu62YUsPq8xHU2m8lkMnGWH9Z/MBi4rZuwb5tvs8i0pbpJIkmq4otLu2nrm6WIiK/H9/z8v4h7DrP68ZjoMwLRo6S20+nIYrFwbrdItG/cdrt153I3HP4Ca/FzuSoCfBD93d2d3N7eysXFhbP4rVbLtcnmACOvAeBBgOHphy4q4hJgnTXg9+lbDaerB30DUJxbHper9xU8ccWikQ4TfQbwJT45OXGi73a7rn0VP46XvKKXnkhU+CJyIH7cXygUImW+2O1mPB7L7e2t/PTTTy61x8JHnAG77aL8V8/9WUycUeAGlrzltO7swzEJzkoA385Aer/5OA/El5fXXYfwvPjdRJ8eE31GIAbsk97pdCJCRUoPc2x82THfh1sPfOLXVWTcjHM6ncrt7a00Gg1pNBqRrZkhfBwIMkL8EB8EwoFELiNm0fPqQS4/Zq+E++Lt93s3MGJwxMADD8Q3DfEFP3UlHj4TfP61Wu2gaMk4jok+AxzMQ2qo1Wq5Lzo2svC52YVCwfWcy+fzkc64IvEValz4s91upVAouPXp5XJZrq+vnbiRRWALz2lFriIUeWqiqUUPIFwtVFh7XXfAXX24WUitVoscuD5fABLXpT0QiB6B1Gaz6X7nVYnGcUz0GWEXv1QqSb1eFxGJNMnAwfXz/OVGc0htweKsPr82N7JcrVYHXXS4aYcuGdZ99NlS662veGGRT/Q4X1tl3pQDoofXgaAjry3AYOTzItjKY0ApFotSr9el3+9LLpeLNCI10mGf1DNgFx+uPUSPuTS719w+6+TkJJLeY6uvI+B8q38WkYO6ch0p53k5LKkWPSw2BKbhOAA3++Rr0tMRPBZbcGEA5KNWqx2UM7MXwRkPvpZKpSLtdts1JG21WlKr1dw5Zu2PY6LPCEelIXQWPb7g2qWF+EejUaTxg7b6IoeCT9sq2veF12ktX+WbLhdmEJw7FnHXcNNODHbwFvTUh2MN3BYM18+Bu0ajIf1+X4rFovT7fdlsNomVisYhJvpngi80d6rlOTQLn4Nr1WpVRqNRpCnker12ls335UXprkhUbL5mlRpfa+ksaGurxa6vgefl+B0Hew38ucHCs0eiPRV8vovFQvb7vXS7XVmtVgfLmI3jmOifAVt6kcP93Fj09Xpdms2mtFotabfb0ul05OvXrzIcDmU0GkV6xKHxg94mCoFCvBZI6wFo0jz2WNEMHuMbaLgakWvkkb0oFAry8PAg+Xxe1ut1pKsv3qf2FND+u1gsuuCjif15mOhTwtaHe9f7il242UO9XpdWqyWdTkf6/b4MBgM5Pz+PtILG4hruBcebTfj2on9t0ogp7jFxUwVYecRB2JpzIRA+Xw5MIkWKz7Ldbru4gI4zGMmY6DMC64OfdRUaz8MfHh6k0WjIbreTTqcjq9VKzs/PDzrCjsdjGQ6HMh6PneuPwYD3lfse4n8JWNwcUNSZB3b9C4WCmyrBW+p2u3J2diYfP36Uz58/S7/fl1qt5nYLMtJhos8ArBDPQeMWqOiKMq6t54U1vJwWoseBXWHQHhqddpBX1yktjgukzQIcCwz6jqRyWl1yy1F/Lsjh+T1nGCB4Doqy6Pv9vpyfn8v5+bmcnp5KrVbzZhWMeEz0GcCXilfRHYNTWlz2CvcfnXN4EEC9PTaThLXnveAQ+ecee7prD17LtzCG69njgoe6DFeX5OqKOh2oQwDOd8sHzuUaA6T7kOtHjAQrG5Hvx76BJvj0mOgzkjZlxcStGNMLVvTWUrzzq29zSN78QbeRRqCLC2j0whXf79qaczkxb+DhE78uDtKpOi4a0h6TdvV95+uNRPi5TPTpyR2xVhYafWHiPm+fJYa1ZgvOveF9Pfm0u+8r+vG9FqNdeZ9lZxefXXk9Z9fnaNc/afoQd55vamF48X44Jvp3hG+uHSdS36HP08/pe50ktFfDAjv283POfe5zGLGY6A0jMLyit/WIhhEYFsj7FfIaVWrmTv96MNH/CjGBGkmYe28YgWGiN4zAMNEbRmCY6A0jMEz0hhEYJnrDCAwTvWEEhoneMALDRG8YgWGiN4zAMNEbRmCY6A0jMEz0hhEYJnrDCAwTvWEEhoneMALDRG8YgWGiN4zAMNEbRmCY6A0jMEz0hhEYJnrDCAwTvWEEhoneMALDRG8YgWGiN4zAMNEbRmCY6A0jMEz0hhEYJnrDCAwTvWEEhoneMALDRG8YgWGiN4zAMNEbRmCY6A0jMEz0hhEYJnrDCAwTvWEEhoneMALDRG8YgWGiN4zAMNEbRmCY6A0jMEz0hhEYJnrDCAwTvWEEhoneMALDRG8YgWGiN4zAMNEbRmCcHLk/9yZXYRjGm2GW3jACw0RvGIFhojeMwDDRG0ZgmOgNIzBM9IYRGP8FbMnw5FSC7yEAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 32\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 33\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 34\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 35\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 36\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAP0AAADnCAYAAADVeFABAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nO2dO3Mj27GlEyRBvF98U0dtSIrrypZ3I3QjZFz3Rugf3LjeOPMnxp2/MOZ44ylkyBl3jBlnYhzFaR1JzRa7SbxBAgSBMTrW5qrkrgIKp5vNPrW+CARJAFUogFg7c2fmzl1ar9cmhCgOe1/7AoQQL4tEL0TBkOiFKBgSvRAFQ6IXomAcbHhcoX0hvl1KsTtl6YUoGBK9EAVDoheiYEj0QhQMiV6IgiHRC1EwJHohCoZEL0TBkOiFKBgSvRAFQ6IXomBI9EIUDIleiIIh0QtRMCR6IQqGRC9EwZDohSgYEr0QBUOiF6JgSPRCfEb+x//+u/3rf/2f9u//7X/Z7XTxtS8nyqbGmEKILfkwntt//u//x5artf3fq5EdN/6f/Zd/+/XXvqxnyNIL8Zm4f3i05eqpgfT4fvkVryYdiV6Iz8Sbo7r9xz//0kols4t21f7Tv/zT176kKKUNu9aq770QOVksV3Z48CrsabTvvUQvxE8XbXYhhJDohSgcEr0QBUOiF6JgSPRCFAyJXoiCIdELUTAkeiEKhkQvRMGQ6IUoGBK9EAVDoheiYEj0QhQMiV6IgiHRC1EwJHohCoZEL0TBkOiFKBgSvRAFQ6IXomBI9EIUDIleiIIh0QtRMCR6IQqGRC9EwZDohSgY2qr6J8iGrcp+FKVSdKck8Q0h0f8EkTBFFnLvhSgYsvSvCHbL8ft6vQ43/3fs5o+NnTvtNRn2FkqlUvjb35/1+6afsWO3PU7ezO5I9C/MJvGxgB8fH221WtlyuQy3h4cHe3h4CL/zY4+Pj7ZcLsOx6/XaVqtVdNDwr8VA5KVSyfb29mx/fz/8LJVK4W887n/ixsfx/Xiuv/H9/vlZx4l8SPQ7kDdQFrPALMjVamWr1coeHx+DcCHu+Xxui8XC7u/vn93m83m4LRYLWywW4VgeAPA6GAhi18DvCeLa39+3/f19Ozg4CDf8jcd4MOD78fxyufzseD7W3/hxPp7Pw7/zACS2Q6LPScydzvN8iBvWGWK9v7+3u7s7m81mNp1Ow202m4X75vO5zWaz8PzFYhEE7y0/DyJp1xGbEpg9WXoWJws+zXr756fdWNg8cHixHx4eWqVSsVqtZtVq1RqNhjWbTWu1WtZqtazRaFi1WrVyuSzh50Ciz4F3u73w8aVjIbEVhzAh1ru7O5tMJjaZTGw0GtlgMLB+vx9uw+HQRqORzWYzu7u7C1Y95s7z62w7t0/7nefQ3o3GYODvw+94LM1686CAx3kgYWterVatVqtZvV63Tqdj3W7XTk5O7OzszM7Pz+3s7My63a6VSiUrl8sS/ZZI9DlgS43barUKj5dKpWdzcgh9Pp/b/f29zWYzm0wmNh6PbTQa2XA4DGJn0Q+HQxsOhzabzYIrD7F/a7DnwFMHnqf7QeDg4CBY+UajYa1Wy3q9np2entp3331nd3d3tre3Z4eHh1Yul58NRCIdiT4nED3m3HCfzeyZC//w8BDm35PJxIbDofX7fbu9vQ23wWBgg8EgDARw5yF0dtm/VeBFwAvZ29uz9XqdGAweHx8TwcCDg4Pg2dzd3dl0OrXJZBKmOfv7+8H61+t1Ozw8/Mrv8ttBot8SPx/mOTS7+rDumHdPp1MbjUbW7/ft5ubGPnz4YB8+fAiiH41GNh6Pg/uO8/K828zs4ODTv4o9i9g1bvteYuS1krHn7+3tPXvcTxO8lfdegJmFv80+DRbz+TwMBrVaLUx7FotF4nMSm5Hod4CFv1gsgpsP6w7rNB6PbTgc2u3trX38+DEIHq78ZDKx2WwWgnFe7PxFjomdBZb1PFwz+DEusD/WX0Mst86ijgUGfRbADxD7+/thjl+tVu3w8DBMB+TO50ei3xFYdbj5HKCbzWZhvn5zcxME//HjRxsMBjYcDu3u7i5E4H1swOMfY3eZSbO8aUUxPuAYwx+/zbyZA3kcnINYEZUvl8vhBnHHAoSY81cqFWs0GnZ0dGTdbtdqtZrEvwMSfU68i885dMw9EYlnwSNAN51Ogyv/8PAQPIS0bADmwJvw1Wo4JpYTx3kR8ffpPT5PLOLOWQq++YKecrlslUolROERicfvlUoliJ/PzVMl/jxg7Tudjp2enlqr1bJKpRIGC7EdEv0OsJVHkA5iH4/HdnNzE+bsNzc31u/3w2Ns3XFLq5gzi5fDxubGLEq4zL6whfPZeB2u7sMAAAH7FBr+ZtFzyhDXiKg6R9+bzaY1m01rNBrWaDRC7r1SqYTX4PNiUMWAiPOXy2VrNBp2fHxsnU4nIXoJfzsk+pzwF5Kj8ojMI2AHsQ8GgxCVh+C9dfek1bGzENmKwpJCRLgP899arWaHh4fBvYbofe0A5/15Ls0uOAKKOB7HsDDZysO6w8KjoAZFNd7Km1nC+2BvCF5PpVIJRTqy9PmR6HOCL/tisbDZbGbj8ThYdLjzt7e3Idfu3Xm27jgf4y0WB7kg9lqtFr707Xbb2u12okoNN3alIUKcj1OLqOiDZcV1+FJYjqhDmFz2y8LkgQk3Hnh8KS+/Z19sxD9xXRhQVI2XH4k+BzzXhOgxd//HP/4RhH97e2vj8dgmk0nIt7M7j3Mx3rqz6w5XmYtUjo6Ows9ut2vtdju4zxA7W/vDw8NEsAzXwIt62Pvg+XwsyMaW3hcr+SKbmMj94pnY5xxbn8CfD0fxxfZI9Dnwrv14PLZ+v28fP34MOfh+v2/j8dim0+lWgmf33a9OYxe51WrZ0dGRnZ6e2vn5uV1cXNjp6an1ej1rt9tB6LCo7DqzaL1AfIrQB+X86jc+zgcDOR7hS3H9eXyU3l8Tv0ZsvQOX92o+nw+JPide9IPBIFFdh6DeJsF7sfuFKjwfRrT6/PzcLi8v7fLy0s7Ozuzo6CgInqPgXuRpIkurvfekCSomztixsdx9nnPza/Bx/N4wUKWdS4PCExJ9DmDZHh4eEsU3iMyjhBbFNmwFQdZ8/eDgIBGYa7fbCet+eXkZLHy327VWqxWCdDzn9pY5zaJmvc9tnhsbNDZNW7Zlm4Epy8L75xaxYi/ts5Hot4Tn87xCbjQa2WQySZTRxtxdxs+XMWevVqtWr9et1WpZp9Oxo6MjOz4+touLC7u4uLDz8/OQquJlpZ9L7Hx9uz5vm2PzDCgsfn9c1nlk2dOR6HPAaS6sfedUnE9dmT25oQhwceqN024I0nU6nRCgOzk5sZOTEzs9PbWTkxPr9XrW6XQS7jxHv7PmyV9KBF6cXwq48LHXxoDA832RjkSfA47cY5ksz9058s1BMKSxOLh1eHiYcONh2Xu9np2cnAQr3+v1rNvtWrfbtWazGRV8VqntS4iRP59dyXts2tQC/5/5fJ5Z2lwELi4uovdL9DnwXyp0vYHYfXUcCl0A7ofgG41GEDvm7sfHxyEN1+l0Eqk4ROdj83ezb8OljYk7S/BZcQOfPVgulzadTu3Dhw92fX1tk8nkWWlxkfj9738fvV+i34JYvT1WxcGacLrN7Gnezu4vB+uazaZ1u107Pj62s7Oz4MIfHR1Zp9NJ5Ny5gi0tTbXr/PqlSAvIbcogxFJ2EDkqCTHVmkwm9vHjR3v79q399a9/tcFgEFYuvqbP4qWQ6D8DXHOPGxeyHB4eWqlUssfHxyB+wC59o9FICB6iRwqu2Ww+K6zxTSBjue20fPeX/MJvY7nT0m+x+2PHsDVnsU+nUxsMBnZ9fW3v37+3q6sre/funf3tb3+zDx8+2GQySZQ6F1H4MST6HLDo4brDgptZSL35mnp4AFxVhyDd+fl5EDyCdBC77/q66UubZtFixUBpx+9KlvXG37Huv7HiHv8cbv+NGglUQ75//95++OEH+/777+3t27d2dXVl/X7f7u/vv+luQ18SiX5LYhVoEDwE6sUOi8yNHtnKo8kjBN9oNEJFnW8kGauG88Qi3Hke31X0sQKaNLH7Ft984/p/7k+A/oLoQcBrHq6vr+3q6squrq7s+vrahsPhTu+hSEj0OfBuKQQfK1nNWijDOXik4eDS86ozX3EG4YBYSa0vavGDRZ4KOCbLg8iad3OQbblcJkSMLr/c6RfxEtRCcEtwpEjRQRirG1EYtVgstv9nFhiJfgd4Dl+v1221WiXWnbNwEXzzi2bQ1JHn8Dx3j6XCYjXyPnqf5gXg8djvMQud5kkwLHC25NyUA1YcIp9Op6ETMAqbsBIR6U/fmAQ33uQDAwIKorKuUySR6HMCa4516svl0kqlUgi8+W4w3AcOgbx6vR6aSiDv7ls5A2/h/UKWrMBemnCzxOvn2Hwc/8yae/v+/rDOaBDKaxVGo1EQPaw8MiO8zp/7EPA6/rwpQCHR54IFj7QbRI30GgJxLHpeVMMr55B3j1XWmVmqCP0inbQ5f1oLLi/6mHB9xxp/HFt2FijPwzmVxv39veDZwiM6j6Cp7ywkfjwSfQ4QlKtUKmH1G4TbarWs2WyGdexeyMBv25SWivO1Abxe3Yveewex5hM8YPjXYVccooWQY8f6oBzP0/32XLyDDxYmcf96uOc8yPjeeOLzItFvCYSGgFyn0wlfUATo2F1H5B2wi84BvpiV5uezGNGhhqv/OOiH43yai/vf4fW96CF23iCT1xMwPBjx7j08B4fLDkvv1yngvfiViDzASPhfBok+Byz6VqtlpVLJVqtV+Jvn57HWUmnucqxYxQueI9wsXgQQ+bVQNci72rLwOeqP10mLqPNA46cMPHf3r8fWH+eJiT0tWyC+HBL9FnA6DjustFqtUJSD/LuPwANOW3GPe3aVfQQ+VmYK6wkBxzwG7tLLkW+40V5cuC4IFHNsL3oWO08buJsuB/L4FttoM2vpsfiySPQ5KJVKochmuVyGzrKI5PugnFnSavt5t0/B8ZwZLjcEjzTXZDIJAuZ1+Sx6Pi7W2APXheuIuem8BTYEGxMtd8PlpcU8N/dpPVn3r4tEvyUcPIPIYel5xxa2ut6SYy7u3VtOw5k99ZNHugttubidNiLcPpC3Wq1C004IHzlu72mwcGGp4ab7KL7f596Ln88VqyuQ2F8PEn0OYFlRiQeR+hbRPjiXFjFfLBaplXNw0bGohLew5o0beephZomgHAJnuLGbzcLkqQfceY4B+Jbd/hbbude/xtcUvIp1kkj0OWHh48sU2zrKH2OWjHqzRWWLj+fAWkP06KWP3Da76jygwEJzKSvc9NgGmbFyWf6ZVmLrRRwTOj/uf39J5FkkyRS9PqwnYgUuseYVPjgVq1rjKLkXPnsBcO2xew667SKYxxaWYwE4HmL3u9d4AbOLDsGbPS/79VV6sawDjhOvF1n6LYkFo9jS+kAd8IEyzLMRlIOrznNnCBWWHotKMJ9HVJ0DgHyN7KrD8rOb7i21n4/HvIGYxd4k+C9pND5Xm64ikil6zYU+wV9+v7bb7NM8+uDgwNbrdaKrDQfJ5vN5EC6CcrztFdeT8264KG7hBSaIBaQVzXA6zUfT+f3EBO7/zgvXC2St8Nvl3DHPCn/zZ4FS59jGmEKWPhN2d33BC1er+a2bEMjjHPhsNgtuOhacDIfDsPUV5uj8Wlwlx6WxsTJVH1jDz5jY+XcvcD+N8YFGL940Yh1pWZjbrP335+Kly5zxwLkeHh6sXC6HfgWdTseq1WoiKyI2iP7Pf/7zS13Hq4ODa2aWED1Xlpk91dN7y+Ln5n7BCa8Dh+fAwvc7ym5Tlx5Lp8XiDADtuWNZBPztLWVMvFnr+HE/Cpb49flcPFBw3MT3J8C6Be4ojCrISqUStv3q9XpWr9dDr0KJ/hOZov/Tn/70UtfxauAIOrZFrlQqwV1mceLLzuWwXImH/vjYux4uPfa6Q2Sdt2NGsM1vAc0lvGaWsHhsNbPEzu+R36u3hJvc8JjHsC2xqD5fl28VjkVOqI/gFY7cjAQ7/rTb7dCVqNVqhdSqBP9Epuj/+Mc/vtR1vCogmoODg7BcFvf7NBluvvkF3E2UwWK1me+Vz+WpPCePBQzNLCEKn6Nni+3FxUKPWWEII2uQ4Of71+Pnpu1KC6/C43sD8DQpJnhuOYatvs7OzkIXIjQmgfVXbCpJKWsEfPPmTWGHR7ijqLbjAJ1vZxWzuhAvLzbxC05YZLG5tRchi5zrAjwxMXLBELfpxmvxIMEi9YOb/4xir4E941GSnNbYk98LT5FwHB/v+wzyHn9oLIq9/arV6rNuxAUlOtplir5UKhVW9EyeLzIHyNhieyvMwSl/fJoLzLX2fvDxr+8HC9+7L2vrJz+P5teKRdD5utAuDF2EuKtvmpfCoka1I4ufBwascux2u8G156aivgy64Ej0nwu2tD6A5VNf/FiaBeXH+BxMbCoBwfhgGx/PIuP2XSx8HynnjTu4DTe/HgsY58S+fAiuYakxL0TCAMHTAA6CcmwktqkHrgm7A7Xb7SB4XugkzEopo55SdjuwXq/DKre0x7N+jwky6xx4Lp7PNfc+heZ/9wMF5rnsqbAAfQdfjpSz9WULzLvuom0Y787D/f98oI5fk4Uea0CCwQwBVgwqfrolslFxzhbEcuKx+3c5H7wBb6F8wMsv1WVR+Gi89yBY8CzkWG99FjusNFx1X/SCG56HoCf23eO99zA98i5+bBCIeT2+Zx/Sczivvqvbo9r7r0havto/XiqVQhyA3Xe28j6KD3wUHPNtttzexfY5cFhUtto8/+bn4uZ36WGXHtfrb7Hphq87QJwE78VnCsRm5N5/ZSDcWIGLf46HBc+WH8Uoft4MNxw3v3UWBgEIHJbbd+7l3gF8Tm4Dzi59rPFnLIXof/raAx74sqZGIhuJ/hXAws96ToyYeNjFZyvP0XVYaHbXYxYeN7TtZkvP54LQ/WDiBZ8W/ff3+c+GbxzTSEsninQk+m8Iv4gFpK3f965zbKstFrwXMd+8BcexeD7f5xuKxFJ9WeKPERO5xL4bym+IrUnLSnwNvvbrf8vI0n9DpM1hudjH7Lk4uViIa/zTuvxwVD+W+/b1/XxsWglumlVOi1f46/c3fkzkQ6J/BaQFsGLP8cQE4IuBlsul7e/vh7X9vlsvXHLfytqv8UffPj8VQByA95nD4JIVuY/97j8HHrQ4eo/zxTIZIhuJ/iuTNbeNrXpjWOSPj4/RlB2ORzERF/Usl8tEyg6BPr9jDVJwPg2Hn1yFx5F+3yE4Vsu/aZ6elbLT6rndUHHOFnypLxZ/wWMuNH/+aYJh4ccW2qCNF0SP13l8fHxWksvijwXxeP+92Oq3Wq2W2MiTo/2xSH5aYY6fqsSWFyNFyQFKWfvtUHHODmSlmMw2B7x8QU3sPMi18zG+iIVfww8ALAC/fzss5qYyXIg/VoZbKj1f5440n9/BF2lB3yI8Fj/gqQB7PLEyXHxOaFUmtkPu/Q7gy5pWMsrzUBYjW/WsvHWszNeLPq0KLVaxt7e3lxC+nw74a+ObX+Yaq5/H/RA4XHxecBMTfWzBDa9ixOfM17i392mr8EajEdz8WNxApBsliX4L2O3luW9WNN3Xi8eWvJrlb1DBQbhY2aoHgw+Ez3+nwVYY7zFWVcevjQHC1+37ct+Ya8+Cj00hfKssbBOORiT4jLW0djsyRf/mzZuXuo5XBcQGN9I30fCrwWLzbPS6Q+MMvzfcrk00vAhjKbdYGS8LH5F87z7ze+fXSguwpT2fB0aOG8SE6AuGfNFQrES42Wxar9ezs7MzG4/HoWsOdg7mZpjiOZmi/81vfvNS1/GqgAgODg7CbrR7e0970JnFq91i7bKwNdV0OrXxeJzYRdZvQOEj1Hwf8KvT2KXFwLG3t/dMxHi8VColNsnAc9I8EbxX/3x+Pf9cf41Z50gL6GGg4OkFKgWbzaZ1u107OTmxi4sLu7y8DMJvt9uJphr4nxRxzp/WPShT9L/73e++yMW8VrzlY0vvG2NyvpitFL60sPQQPTfGxNZU3NraF89kNcaMrVRjsfPCFI8XNg8uMdFnncNb+7RlwiCrKSZ//rEmG7xuAMHC9+/f27t370JjzGazae12205OTuzk5MSazaZVKpVEPr9ILv+vf/3r6P2Zov/tb3/7RS7mWyCrBTbv2272FEH221SjR97d3V1ogY096dACG/vSofgFoo/t+47BIMtqsfA3tcBmsbIgY4L2z4+dB797TyLtPHwuXLuZ2cPDQzQ9CfGPx+NEpx6kBkulktVqNTs7O7PLy0vr9Xphd2EOrBaFNNFntssys+L5RAS+wFmbXZg9BfrY2ps9bWmFzS5Go5H1+327ubkJm13A4qO3PV4PAwu8gdh+8f5a8Zo/ZrOLWGyBhRnzEvz9sb9x7k3PAb5GAffFpg/sWZXLZet0OnZycmLtdjsxvy+a6P/whz+oXVZe2Lr4gBKLnru5+hLXx8fHxDpzXqvebreD6OE5wKL7ba14w0vshhMTEU8TMD2AKBC8Y7H5+T9PcdKssx84/ONZDUHS/s56PsdR+CeD56CSsN/vJ5psiCdUnLMlnF7yrr8XPH/JYgUpOE+tVktsJQ0hI3aAACA2yOC++djAkuGsQWyveXb9WawYCPwuuHg8D2lewS7n8vhrTjsvPj8RR5Z+S9LcSrPnBS2xohezp7kzLC6CUmlbVSMWgDQU57E5psAC5a2qMSVB5mHTVtXsJu/v7ycGN54KxCLxPpiI6/pShkMGaXdUe78DLBiz+B5sjC9vrVar4f5qtfrMOsLaY7ELF6scHh4mtrf2rwkrjzjA/f19YgWdn8ez6HnJLaYuPEDExI/70qYM4vUhS58TH9wze17IgvvwfJ+ThnjNLPz07upyuQzWnVNYGDQwr+eCIbOnjMFisQjxAgQKkQnwc3GOJcCDQJrLd6H1ngIPAvw4W3nvMbw0fqrCf6c9Bvi604ygP89rOn8MiT4HLBCICPf7qjUvYi9+LGaBS8zTBYieMwFmT6Wus9ksiJerAnEsdsrF5pkIAPI21yzW1WqVmA7M5/NEmjCWAfBpQfYWvNhh+b+W8LNiC9vEHdIyFNuc8zWc3yPRbwlHxpF7n8/nZmbP5spcmsvHcUWfD+z5Y7h0lQeLw8NDu7+/T9QI4GZmicj/dDq12Wxms9ksWH9v5dfrdQh88Tr6WIqQYw5+SoABgH/nAYY/C/5Mxcsj0ecAApnP58GCrtdrq9VqiS+63/eNRe+FzyW8LHJvvfH8SqUS5uacUoToYbUxMPEuuRCk2VOQDe8JgUN4CBA/i55jATgXvAfEGLiYiL0FPoefLoiXRaLfAnZpEWAbj8c2Ho9tvV6HFNrDw0PoLsONHWLucGyJKdeJx2ICmBLwXN5XAUKQsPYI6EF8AOfnaD/qAjBQ4H15keI9IDgIr4CLiNhr4OdwKk1W/+sg0eeARY9aehTf4AvPWznxggcWHC8TNUtv72xmVi6XE3P3arUaBg3feILz7RAkrxVArp7Pz2W/ECoXAcGr8AMRXHk/LYC3wDEFLi5CXQJv2Z1m+TUQfBkk+i3hLzpE3+/3bbFYWKVSCVaSc+q+kyysOvLtEDJ/uX35Ka/d5w4xsWkBz5t9HIHjAix6L+DFYhFuad6BWXKwYK8Cwobgsb5gNBpFi4xiA8Cm9QXixyHR5wAuLWrph8OhzWazEFFHXzjeK44LdiBgdJfhIB6e4zMBvMz04ODTvwuDBZ87li2IrZyLiR7eAafuuGDIH8vnZ68CGQK2/CgjHg6HYaHR7e1tWHHIaw94/QHf/HsQPw6JPgec3rq/v7fJZGKj0cj29vZsOp0+ayLJQTbU7KPunhfr+FJdEKv+4xiAL+/11xoTStZzs1bn+eP8MTxoYFqBBUN3d3dB+IPBwG5ubsIAgGXGnFZEDILPA2+Ab7GFR2IzEn1OWPj4Mq9Wq2c93rhrjBd8u91OFPZ4y8uRezzHp/hiVn5TvXyshgDP92m8tAEjdpwfMLwwMUjC5R+NRjYajYKrD9FzqpBjBLjhPr4fGYas6xRJJPodgDuMIhi//tu3jeLebs1mM5TRevcZ5/bR/TSxx6z8pi98VtVX7Oe2x/gbF+3EliezmPF5QPA+5Yh6A/45Ho9tOByGpiRZn6lIItHnwFtlfIlns1niy87PhzjRG77ZbNpkMolWyD0+PoZae7+tVKylVFYVYNr1b3psF8HEBgz/O3sBMdedlxbz47yGgLMD4/HYbm9v7fr62q6uruzq6squr69tMBjkvv6iIdFvSczacq4aA4CfE3OwrlKphDksrBq7we12O6QAsUkEV+f5a/Gix2Ob3kcanJbL+9n4lB6fE1MWTIMQzOS1/z7wGIsVIKOAQOpgMLD379/bDz/8YN9//729ffvWrq6urN/vB7dfVv85En0OEDVHkA5fdvTCwwCALykDa4+SWN8Rh93bRqORyALgtTc1g0gT7LZC3kXwHOhLO6d/jo8bxKYU/Dwu+UV6EcK/vLy07777zn7xi1/Y1dWVvXv3zv7+97/b9fV1iLfEXr/ISPQ5YNFzrp2De1yOapYUhRc758Xhut7f31u73bZWqxV2imGPwaf2+Npi1/sSnwlIGwA2eQKx3/m+2K1Wq1mz2bROp2NnZ2f2y1/+0qbTqd3c3Nhf/vIX++GHH0IdhUgi0W+Bz5ljGycUzZglG2Swtecv8t7eXpircj985LNRvdbr9azX61mn03nWLINvXkix6PpriWSnXWfME2Big8J6vQ5Tn1qtZu12O3z20+nULi8v7Ve/+pVNp9NnHpeQ6HMBS4/+6xA/gmqctkrb0ILbWXGzC5/OQioLhSuxqjrAC3Vei8jTyPJINqUJY+4/VzSu1+vQF//nP//5s85C4hMSfQ5Y9Mi5oxjn7u4uIb5Y6srsqae7T2VhjjqZTGw8HifEf3d3l4j0p11bzN3fNOeOkWfw+Jzz4yyBZz2f33u5XLZarfbZrumniESfAxY9b8scK7sFLHwzC1tGY1DgjjVYA48e+bhB+FwPjx1c0vZ/Z+GyC70tX/L5PyZgGDvPtilL8QmJfksgJgTyEH5HWp0AAAc4SURBVEhqt9s2Ho8T1WQPDw/RYBuA2FGEg795fo+lu7D2cPen06mdnp5ar9ezZrOZ2APe7ygbew+b2KYoJ/bctAh8WlBvWzYF+jYVDhWZtM9Gos8BxMSi73Q6Nh6Pw9yc887z+TxReGOWdLf90lJ29Vn8qFnv9/vW7/dtOBza6elp2NABW0JzvX9WEU+MLJFkCSutICdmhWMWOU+FoB+QeD3CttcsJPrccHPKVqtl3W7X7u7unrWVAmipZWaJzSb4ObzW3der8zwfwv/48aNdXFwEi99ut8NGm1jWyx10/Wo/xscdfLCQMxe4nwOTXEjD7wvHZFURprnlXuj+2vB/QMUiPCaxHRJ9DjhtB9H3er1nW1x5q8q5Ygjf7Ln14uqz/f39YPX9fnjX19f27t07Ozo6sm63mxB+s9kMS3zR0MN7AXj92AIZbmDpG3X4FmAcjGSvxbf89isON3kgXux+UIk1IfkWMhevBYk+BzyvPzw8tHq9bt1uNwiet8DCFx1BOCwXhVuPL2naXJhX4fHmF6PRyG5ubuz9+/dhetFut0N8odFohBuCjBC/b+PFdQV+N14WbWxzTkxZuAqRj+V6Bgw8GHz8IOBrD3hKxKW6nAGpVCpWr9cTnoTYDok+J170KAzh/D3vXcdfcLj6cONjPeJic9fFYpEYcGD1K5WKffjwIbwesggQOYJ8uBYWPUQU2x0Xr4vr9lkCrkLk5pe4bt8spF6vJ248CPkAJD4D39SDewsiF4/XQkchWfrtkOhz4l38RqNhZvZs62QWPr7ck8kkIWK2jkxaxBr5fbj9qA3wXXV5bz0WFgqJgO9my9aU36d30bnhp7fCnOGA6DHtaDabwQvB9MMLH9fFVh6/l0qfGoE2Gg07Pj62UqkUvAl0FRKb0Se1A/zFxhZVED0LP9Y+6+DgINElhq3+phSYHxy4s6yPiLNnwJaUO+5iwPEbWvj3iWPY0ntXnAN43EMAnwk+D/5suLKRX8dnPAAG2k6nY8vlMpTgYn2CrP12SPQ54Wg25q2wQPgSe5eWLX+/3w/NIlFiy1bf7Lngt20VHfvCc9Q9K0rOr+GP35R2i12HD+bBW8DnxBaaVy2igzDOzw1JyuWyNZtNOz4+tnK5bMfHxyFNqrz89kj0O8Jze+TueU7PwufgWqPRsJubGxsMBqETzP39fdSyAczB8bq4L4YX74/dVCJm/f21xR73AwV7ChgI8LnBwvvOvjGvYTqd2nq9tl6vF1Kl6paTD4l+B9jSm1nIFcNisugbjYa1Wi1rt9vW6XSs2+1aq9Wy29tb6/f7icU1vCmFd/l5vss/wa5VblnvcdOxiDF4uBoRP0ulUmgrhnTk3t6ezefzxLQD7xMDAGdDVquVlcvlkCKV2HdDot8SX6iCiHFasQsi4o1Gw9rttnW7XTs+PrbT01M7Pz+329vbYPHRJBK93tA7DvN+jqq/FNuIKe05sYGAPzvUKrA198U8nNJDBoE/y06nE+ICvouwyEaizwmsD373PfF4Hv74+GjNZtMeHh5C5d75+XliCS12ykGJLVpDYzDAIMA7yX5rxITtFwlx0Q7m+JgqwVvq9Xp2dnZmP/vZz+zNmzd2fHxs9Xo9NDMR2yHR54Cr1PBFTVug4ivKfEdY3+TRix/CR9APwuee8LFdbPzmEGnFP2n3+/cbu2WV0/qSWxY3p/y4OpCfgzk+R/29t3R+fm7n5+d2cnJi9Xr92YahIhuJPgf4UnGuehM+rcVCjW0RzW2eeatp3/vdbxbpC2z4dWK17FzPHnsfPu/P+X+OzKfVCXAADgFPrh/gAYB/8hyesyGIkSDfj3Zi1Wo1RP7Fdkj0OdkmZeVJWzHmF6xwFRo8At4Nljd7wI0basZ2g/F161mDAAfdYDn9ph0sWi98PzhwOo6PjdUO+IGEj8E5/Ll44JDot6e0wVopNPqZSfu8Y0Lk7q9841p5vw+8X67LEW5fSOP/Bj7IlmbZvasfm6P7n7HjYtOH2Aq9tGNEKtEPR6J/RaRV5GVZ5tjj/vhNr5VGLOfOP/3vuxwTE+0uryuiSPRCFIyo6LUeUYiCoUDeT5AvUaUmd/qng0T/E0QCFVnIvReiYEj0QhQMiV6IgiHRC1EwJHohCoZEL0TBkOiFKBgSvRAFQ6IXomBI9EIUDIleiIIh0QtRMCR6IQqGRC9EwZDohSgYEr0QBUOiF6JgSPRCFAyJXoiCIdELUTAkeiEKhkQvRMGQ6IUoGBK9EAVDoheiYEj0QhQMiV6IgiHRC1EwJHohCoZEL0TBkOiFKBgSvRAFQ6IXomBI9EIUDIleiIIh0QtRMCR6IQqGRC9EwZDohSgYEr0QBUOiF6JgSPRCFAyJXoiCIdELUTAkeiEKhkQvRMGQ6IUoGBK9EAVDoheiYEj0QhQMiV6IgnGw4fHSi1yFEOLFkKUXomBI9EIUDIleiIIh0QtRMCR6IQqGRC9Ewfj/LRIehtT1K4QAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "current beta: 32\n", "[1. 1. 1. ... 0. 0. 0.]\n", "Current iteration: 37\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 38\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\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": "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\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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wp2CuuD1gYhqFCgqAkgugF1E9FuwKmGFBgKy+oFAANFoFKlUCrlcDsViEQcHBzg6OkK1WkWj0VD94Hk7qPF4jOl0CmAzYX2N+F5CyuqyZQ5568mBVyqVUC6XUSgUEIlETCFIYTNca/7h3//b8IJZZ1F5R1hqnMH7wNPR6/VUbn2tVsPV1RWur6/RbDZVuM9puFwu1VcwmUwik8ng8PAQb9++xenpKU5PT1Eul5HJZOD3+8XaW2P5oYjonxFd/HozSOoJPxgMVDttqq6rVquo1+tot9uqUyzv+673kAMebyype9d1a7rMuvK1Pq/d15NprGY8/PHLDh5WBGDK3OPtyCjOn0wmUSgUcHh4qEqNs9ksIpGI6jEgordERP/SIMHSJpLU573b7aopP20dzTeD0A+eYMMPPVOOh8H0n+l3cqZxxyQ/6D4SGk+sIfHyv/HMOV3cyw59g5BwOIxoNKr6F1CMn7+2YImI/iWix9j12QDNCPhBQuetovktHxx04eu59rrweZorCY8fPMzG+/zz1Fg6uOi5+PV8fv6zfi46h9WgIWJfi4h+l9H3mNNTYHnfPZ4Wq1t2vd7fKu7OhcWFq1tuXbhWRTpWwrZaIqxaNghbI6J/LVityfn6fdlafdNQHvA4hr/sVv952WOsfheeHRH9LvC1TS4EgWH5BZI4/QtDhC48NyL6HeIlJNE8NTLIfXtE9DuECER4CqQQWRAchoheEByGiF4QHIaIXhAchoheEByGiF4QHIaIXhAchoheEByGiF4QHIaIXhAchoheEByGiF4QHIaIXhAchoheEByGiF4QHIaIXhAchoheEByGiF4QHIaIXhAchoheEByGiF4QHIaIXhAchoheEByGiF4QHIaIXhAchoheEByGiF4QHIaIXhAchoheEByGiF4QHIaIXhAchoheEByGiF4QHIaIXhAchoheEByGiF4QHIaIXhAchoheEByGiF4QHIaIXhAchoheEByGiF4QHIaIXhAchoheEByGiF4QHIaIXhAchoheEByGiF4QHIaIXhAchoheEByGiF4QHIZnzd9d3+QqBEH4ZoilFwSHIaIXBIchohcEhyGiFwSHIaIXBIchohcEh/Ff4GkD5t2O5voAAAAASUVORK5CYII=\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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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "current beta: 64\n", "[1. 1. 1. ... 0. 0. 0.]\n", "Current iteration: 49\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 50\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 51\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 52\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 53\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 54\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 55\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 56\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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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": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 58\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 59\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 60\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "current beta: 128\n", "[1. 1. 1. ... 0. 0. 0.]\n", "Current iteration: 61\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 62\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 63\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 64\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 65\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 66\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 67\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\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": "iVBORw0KGgoAAAANSUhEUgAAAP0AAADnCAYAAADVeFABAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nO2dSXMbV9amX4yJmQAIEiBBcBRF0hSlki3LKofDrorPURVR247wP+j4dt+m/kD1rrf9F3rZu97YDjnCcqnL5bBsFyla4jyKFEEMxEDMcy8c91YilRhJkCDveSIYooFkIpHO9547nPNeTa1WA0EQ4qC97gsgCOJqIdEThGCQ6AlCMEj0BCEYJHqCEAx9i/dpap8gbi4atRcp0hOEYJDoCUIwSPQEIRgkeoIQDBI9QQgGiZ4gBINETxCCQaInCMEg0ROEYJDoCUIwSPQEIRgkeoIQDBI9QQgGiZ4gBINETxCCQaInCMEg0ROEYJDoCUIwSPQEIRgkeoK4RP7vylv85X/9P/z3//0zYpnidV+OKq2MMQmCaJNIqoC//p+XKFdrWAueY9C6gf/53+5f92W9A0V6grgk8qUKytV/G0in8uVrvJrGkOgJ4pIIuC34z8+modEAPocJ//Ufs9d9SapoWuxaS773BNEhxXIVRn1fxFNV33sSPUHcXmizC4IgSPQEIRwkeoIQDBI9QQgGiZ4gBINETxCCQaInCMEg0ROEYJDoCUIwSPQEIRgkeoIQDBI9QQgGiZ4gBINETxCCQaInCMEg0ROEYJDoCUIwSPQEIRgkeoIQDBI9QQgGiZ4gBINETxCCQaInCMEg0ROEYJDoCUIwSPQEIRi0VfUNo8U2ZDcOjUZ15yWih5DobxgkEuKikOj7BLUIzl7TaDRCiJ19X+W9kH93Ee5Dr6Fdawni9qLaQlKkvwbkDW2nkatcLqNaraJarfJzNWu4le8po6n872u1Gu9VyH86uU7lcWrnUzs/cXWQ6K8BjUbTVKiVSoW/X61WUSqVkM/nkc1mkc/nUSqVUK1WUavV+L9qqHWXlSJXO4dWq4VWq4VGo+H/diN69vfyH+VrOp0OOp0OBoMBer2e/7BjlechLg6J/ppQE1GpVEImk8HZ2RmCwSBCoRASiQRKpRLK5TLy+Tzy+TxvFJhYG4me9QaUKEWvPIea2DsRnFys8nOxc+h0ujoh63Q6LnbWCGg0Guj1epjNZrhcLoyOjmJkZAQOhwM6na7tayHehUR/jVSrVRQKBRQKBRSLRaTTaYTDYezt7WF5eRm//PILjo6OUC6XodfrUalU6qJyq+W7dpb3Gh2j1k3vFrUhgvJ3tWguSRIGBwcxNTWFR48e4eHDhwgEArDb7ZAkCZIk0fCgC0j0V0y1WkUikcDJyQmCwSASiQTy+TwKhQKy2Syi0SgODw+xurqK1dXVhtFaFPR6Pd68eYNYLIZgMIiZmRmMjo5ibGwMY2NjcDgc132JNw4SfQ+RR1E2Nk+lUtjc3MT333+PFy9eIBQKoVAooFwuo1Kp8IifSCSEFzzw28RlMBjE+fk51tfXMTExgXv37uHJkyewWq11omcTkURzSPQ9hD2A8Xgcb9++RSQSQTQaxfr6Or777ju8ePECmUym6TnUxtJqD3c/TnK1mnNol1wuh1wuh2g0imAwCLPZjPn5eRSLRRJ6F5Doe4A8qaZQKGB3dxffffcdVlZWEAqFEA6HcXR01FLw7aCccGslgIssF6qJt9E52LHlcrmjz2iFTqeD1+uFz+eDxWK51HOLAom+B5RKJWSzWWQyGRwfH+P777/HV199hZ9//hnn5+d1x8pFoyaqVjPwN2EIwGblNRoNn3lvd71eq9WiWq0il8vBbDbjyZMnePjwIaanp2G32+uOpYjfHiT6S0DexaxWq0ilUjg4OMDq6ipevHiBlZUVbG5uviN4QH1Gu1mXWC6cy46ivcBut8Pv92NsbAxutxtWqxVGoxF6vR4GgwFGo5Ev2bFei3IpsVaroVwuQ5IkPqb3er0wmUwk9C6gNNxLgD2UuVwOZ2dnODo6wurqKr799lv8/e9/RywWu9brYw2FTqfj6+LsmiuVSl0ykBrKJBomTPb3LENQPqyRJAlutxvj4+O4d+8eFhYWMDY2BpfLBYvFAqPRCEmSYDabeSMgFz07J7u2Wq0GnU4Ho9EIk8kEk8kEo9HYl3MZfQSl4V428rTVbDaL169f41//+hc2Nzexvb2NV69e1Qmeia+TCS72N42E6XK54Pf7MTw8DIfDwbvSBoOB/zDBMtEzmLDkab3y78WQd83ZWjr7Dkz07O/YNRsMBlitVgwPDyMQCCAQCMDj8cBut9dF+m4TbWgCr3so0l8AJpZcLoetrS188803ePr0KTY2NhCPx5HP53v6+R6PB4uLi3jw4AHm5+fh8/kgSRIMBgPMZjOsVitMJhMXl5pI1LrSjGZ5+Go5/HJYI6HX63kijTyiE1cCRfrLplarIRKJYG1tDT/88AOeP3+OlZUVxOPxuuNYNl27S1fysb0cNj4eHByEy+XC2NgY7ty5g7t372Jqagoej4cLiwntJqDWcDSK4hTdLw6J/gKUy2W8efMG33zzDb7++mvs7e0hlUqpHtcpakU5s7Oz+PTTT7G0tIRAIIChoSHY7XbY7XZYrVZIktQwovcznVbyEReDRN8ltVoN2WwWwWAQq6urePnyJX+v1TKcGsouM/vdbrfD7XZjdnYWH330EZ48eYLFxUWMjo62FckvIznmolx31Kbxfz0k+i7J5/M8Q0w5O6/RaDpaP280WedwOHD//n188sknePz4MaanpzE0NASXy9V2170fHvbruIZGPgIi0ei+k+jbRBktEokEtre3sbW19c4YvptzsyGAwWCA0+mEx+PB5OQkPvzwQ3z++ed4+PAhbDbbO7XxjRDdYkrE79wuJPouiUQiWFlZwfLyMiKRSN177UQVrVar2vWenp7Gxx9/jHv37sHv92N8fBx37tyBzWYDcP1d5X7kIqnFIkKi7wAW7Wu1GmKxGDY2NrC+vv5OpG9H9PLuP0s2GRkZwSeffII///nPePDgAQYHB/mSm3wNnEEP+G8o70OxWEQ2m0WxWOT5BCLeK5/Pp/o6ib4LarUa0uk0L55htLLBYmvUxWKRv+Z0OrGwsID5+XnMzc1haWkJ7733HkZGRurG7aKMSTsxBmmUsx+LxXB4eIhIJIJcLodKpSKkH98XX3yh+jqJvgPk+fXM2kr+XivRK5fubDYblpaW8Omnn+LJkydYWFiA1+uFJEm8+y/aclar76n2frFYRD6fRy6XQyQSwc7ODra3t3FycoLz83MSvQISfReUy2WUSiWUSiX+GktRLZfLbS2TTU9P48MPP8SjR494Rt3o6GhdWuptjO5qs+oXadjK5TJCoRB2dnbw+vVrrK2t4e3bt4jH40ilUkJH+kaQ6NtE/sBUKhVuRS1/DWiv1NXn8+EPf/gD/vKXv2BhYYEn2SjTU2/jQ9qp9x5LdS6Xy/yes4KcQqGAaDSK3d1d/Pjjj3j27BlWVlZ4+jOrESDqIdF3gbyyjCFfdlPCbJ0GBgbg9Xrx3nvv4bPPPsP777/Px+7K1NubJPh2C4faQV65V6lUUCgUkEqlEIlEEAqFEI/HkU6nkc/nkclkEI/HeaR/9epVXb0DCV4dEv0FaFQ4wkpLTSYTz6gbGxvD3bt3sbS0hPn5eV5mykpV5X9702jlnqN8X1kyWy6XUSgUkMvlkM1mUSgUUKlU+LwJG6dvbm7i8PAQsVgMyWQSmUwGxWKR9wIKhULPv+ttgETfBVqtlhe1AL+lyk5MTMDpdNZVt5lMJlitVjidTvh8PkxPT2Nubq4uhbZfRK5WJXdR1M7BHH9PT08RDocRj8f58lqxWEQul0OpVOJDqHw+j0QigaOjI7x58wahUEi1voGh1//2SDfbBER0SPRdoNfrYbFYMDw8jLt372JiYgLvv/8+r3RzOBy8xNVoNMJoNMJsNsNms8HhcPSV40uvhVGr1VAqlbigQ6EQtra28PLlS/z666/Y399HMpmss/9S7t7DojjbH6AZN8FN6Loh0XeBVquF1+vFo0eP4Pf7MTExgfv372NychIejwc2m61h3Xi/RZ+LNj7yrbGYhXc2m0UqlUIikcD5+TlSqRQymQx3Ftrd3cXa2ho2NjYQjUa7vm62QcZlue6KAplodEG5XOaOtrlcjk/QDQwMwGKx9DyKd/Jwd3stLDqzffPkO9DILa3YeLpUKtVNuh0eHmJ7exuHh4cIh8NIp9MoFot8U49kMolkMtnVtal9NxL8u9RqNdX/+ST6LmAPO1umY2N8+aaLndhFXwVy3zml4SQTYjqdRjqd5htlsu40W0tXip6Nu9lee0z04XAYBwcH2NzcxMHBgaohKKPV+nm7W3gR79JI9NS97wKNRgOj0djymMt+ULtZzqvVajxjje14y2bOy+UystksYrEYjo+Psbe3h8PDQ271xY5Vfi9ll1q+ls7G7ufn50gkEl15+5PAewtF+gtyVcUcTFxMwGxCS6/X13nPMZHncjkeuVOpFI/gbImLiT6dTiMSiWB/fx8bGxvY2dlBIpG49Otv1gMiegNF+hsKi6ZskiyRSGB/fx+np6eoVqtwuVxwuVzcZbZSqSAej+Po6Aj7+/s4Pj5GNBpFJpOpi/Lyc6bTacTjcUSj0abLYd2iZqpJ4r8+SPQXpNdRnrnwZLNZvty1urqKnZ0dAMDw8DC8Xi9cLhdMJhOfZNzY2MDa2hr29vYQiUSudSmLRN5fkOivmUZikDcmWq0W8XgcL168wLNnz7C2toZ4PA6NRlNnjKnX61Gr1ZBMJhEMBnF6etpVV125T3wrlOmu/Tb51i85Ef0Cif6aaZbCymbH2fbW3377Lb788kuEQiFoNBqefSb3pZfPynebe66sK7jp9Evj0y80FT3drN7QTuTRaDQolUo4Pj7G6uoqnj9/jh9++AGhUAjAvzPd2kEeudXE3G+RuRPkcwVsVeE2NVi9gCJ9Ey6zW9hIUPJ0U/Z7qVRCPp/H2dkZlpeX8dVXX+H58+d4+/ZtV599m4UgXz25rd/xsmkqehoLXR5q9zKfzyOdTiOZTOL8/Jwvr7EltrOzM6ytreGf//wnDg4O+HmYXXaj8/dj5L6sZ0lN4GoThazgSa/X03KhAor0V4zcaisWiyEYDOLo6AhHR0c4OTnB6ekpIpEILx1NJpN1vvqN6vb79YFWKxu+SEVfs2EKw2QyYXJyEsPDwzCbzXV/Q4Gsheh3d3ev6jr6DrYtss1m4/n0bGJN/sMeJLZZI9s1Fvi3QJnhQzKZ5EUoLGPt9PQUx8fHePv2LYLBIEKhEGKx2K3pqrbj099Jg6V0EWYrF8wx2GQyIRAI4M6dO1z0bGvufm0Yr5qmov/222+v6jquHfnMt1arhdFohNPpxOjoKIaHh2EwGLj5IhNxLpdDuVyGVquFyWSC2WyGxWKp28M9l8shGo3i+PgYu7u72Nvbw+npKXK5HDeOyGQyyGQyPOf9JqD0tZNH06sS2OTkJO7fv4/Z2Vl4vV6YTCZIkgSn0wm32w2LxVLXvSd+o6nonz59elXX0RewKMKiPHO88fl8XPSZTIb/m81mUSqVoNPpYDKZYLFYYLFYYDQa+UxyNptFJBLhBSh7e3tNC1Dk9CJ//7JQzhuo9UwMBgPv/cgLddRoZY7JXi+VStBqtZiYmMDjx4/x+9//HktLSxgbG4PdbodOp+M/JHZ1mubeBwKB/nziegibDdbpdDCbzbz7qNVqedoq+5dV2rEqO/aQsweOde8zmQzOz88Ri8WQTqfbuo5+KBu9SOqs1WrF2NgYRkZGuKMQSx5ik5DsXrOGQX7vlGN39tk6nQ4WiwWjo6O4c+cOZmZmMDo6ioGBgcv86reFzktrNRqNcKIn2oOt/bMIzhpKg8EAh8OBQCCAu3fvYnp6Gj6fDw6Hg4te7pGn1WrrHIZYr4CJXl4nAABms5mbjNrtdpjNZhiNRorq6lDBTb/AHmp5FOvXbrwSSZIwMDAAt9sNj8cDp9MJu90Om83G5zXsdjs8Hg9GRkYwPDyMgYGBugk1+bhfq9XWTYLKGxIGEz0raTaZTA1Lm2/KfbwKGg6VKNITrTAYDJAkqU7MExMTGB8fh9/v5wU/bKVDkiTuEWgwGPhGII2GLPI0YjVTDbUlPorsbdF5pKcb2/weKB/cVsfdlChkMBhgtVoxNDQEr9cLj8eDgYEBPivu8Xjg9Xrh9XoxNDTEo73JZOqoUKdd2rm39Ky2D0V6wdBoNDxysyhcqVT4BhM6nQ4OhwMjIyOYn5/H4uJincuvxWLh2W5siYydh4TXd9CYXnS0Wi0cDgc8Hg/cbjefXGM+d9VqFZIkYXBwEBMTE5ibm8P8/DwCgUDdDHwzrqI3Q43LxSDRC4TRaITH48Hs7CwmJyfh9XphNBq5qWW1WoXFYoHP50MgEIDf7+f77EmSVLe5ZiNIkP0PiV4gdDodrFYrvF4vpqamMDIyArPZzKv6gN+2z2aiZ248LKtNucrQKpGG6E8uf9aFuLHclIlG4mJQpBeISqWCVCqFUCgEs9mMTCbDu/cs0lssFr4zLOves226aLLudkCz9wLBJvLcbjcGBwdhs9lgNBr5ZhXVapWP+9lE3tzcHMbHx+F0OnkBSzNoIq+voNl70alWq0gmk8hmswiHw+8s2dVqNeh0OtjtdhwcHCAUCuHs7AwnJyc84lssFpjNZr5cJ0kSjEYj7wWQIPufppFeq9UKH+nlpaONXF/lx6lxU5NzWBLO4OAgnE5nXfqtz+fjyTksG09uWHFVUHJOU6jghugOvV4Pk8kEm83G03ADgQAmJyfh9/sxPDwMp9MJh8NR1wtgBTSt9vlTS8FttScgibwtSPT9wm0puHG5XHC73bDb7bzbryy48Xq9fFjA1vnlRp1qrkOstyBfJmTHG41GXlmnxk25j1eBpkHLSKInuoKJVR6hmeOQw+GA3+/H/Pw8ZmZmuPDl9fSs0k5eWssKdJTFOfJGwmQyYWBggJfWMqeiqx5W3BA6F/34+LhQopePD5kbDttzXqfT1e3Fzkw0mEee3ERDPsNdKpWQzWaRSCSEMtEwm80IBALw+XxwuVy8tBZoHOnZv2qil5tomM1m+P1+zM7OYmZmBn6/n0w01Olc9F988YWQomcRy+128wdXr9dzjzy2IyzbBZaNea1Wa13kqVaryOVyCIfDODw8xMbGBnZ3d2+FXVY7sNWBdu2ymo3T2d8ye7Lx8XE8fvwYH3/8MZaWlhAIBGCz2eoaENHR6XSdL9n96U9/6s3V9BnKSSNm1iA3xtTr9dzIspkxptzJpVqtIp/Pc2PMmZkZ7O7uIhQK8QaDGWNms1l+TkY/C74dY8xSqdT2Ljyd8urVK77l1+7u7jvGmIODg8IbY96/f1/19aaRfm9vr3+fuh6j1WohSRKP3lqtlnfvK5VKXUKL0udNHtUaWWCnUinEYjGEQqF3LLDPzs5ujQV2L5EkCQ6Hg2/eWalUYLFYMD4+jpmZGeF97//617923r0HIKzoe0WtVkOxWEQmk0E8HuebXTDhs80u2E43iUQC8XgchULhui+9K3q12UWzrbfZZhdDQ0PviL7Tz7vJfP311yT6foNta8U2v2i0rdU//vEPvh89AB7V5IiyrRU7V6ueEDP5UG7eKdIsfyQS6XxM308PzXVxWQ+rWvYeG4O63e4619dSqYRCoYCzszOMj4/z14+Pj/mwotn5+5HLvL5WnnlsLuWmbBxy1VDufQsu8rC2M/uufGD1ej0kSeImk/Lddp4+fYr19fWOr0OEraoB9VRp4l3IGLPHdHsPa7UajEYjt6qyWq1IpVKIx+M4PT3l1tEAGiazsB7Bbd+qmv17W7/jZUOR/ppptm7NtmcyGo2Ym5vDH//4R2i1Wrx+/RrxeBwA4HA4eJqr0WhEpVJBMplEMBhEMBhEIpHo+JrkPYN2UStG6peeg9qSLPvvRu8x2DHyY5Uoz9NP51eDJvJuAJVKBel0GqFQCDs7O3j58iV2dnZQq9W4FTXLeiuXywiFQtjY2MDa2hr29/cRDod7tl5O9C+1Wo1m73tBsxb6ss4vn+CLx+M4PDxEMBhErVaD0+nkpa2SJKFSqSAej+Po6AgHBwc4OjrC2dkZ0uk0zzFgCTTVahXFYhHpdBqxWIwvFV42ynmLfuoF3GZI9D2i16KXfw4TaT6fR7FYBABepMKSglgmHEsVZkuCLNuvUChw4ZfLZaTTaUSjUezv72N9fR3b29tdDQla0axUlugNJPpLpF2hXyQJpdn5OjmPvBEoFAoolUrcJadcLiObzSIWi+Ht27fY29vDmzdvcHZ2xo+VLw822mNOPnHIPiuZTCIejyOTyTS9vkY598p7R41F55DoLxH2gMstppR7ojcyf7guWE9BXrHGvkexWEQ2m+U9A1ZfUCgUUCwWefoqWzFgE0+VSoULnaUbp1IpRCIR7O/vY3NzEwcHB0gmkw2vq1mhjfwekug7h0R/iZTLZYTDYbx58wa5XA4DAwPwer3cPLLX4u5EAN1eCysfLpVKdWWtcpEy0bOfQqHARX94eIidnR0cHBwgHA4jk8nw3kM6nUYikWjaGHT63ahReBcS/SVSLBaxvLyMb775Bqenp5iYmMD9+/d5vjcrAFF2h4Hb6enGeg+s15DL5ZBKpZBMJpFMJpFOp/mcQjQaxe7uLtbW1rC+vo5oNNrVZ8qNO+SVfcS/aSR6Wqfvgmq1ilAohF9++QWvX79GIBBAJBLB1NQUd41l/nDMMZbZSDEfueuiXWF0UwSj0+n4ltbDw8P8fdZrYN4Cm5ub3Eprb28PiUSCDyHkiUTVapU79RYKhboJTKWNFtE+JPouYBNgkUgE29vbvCSWbfIot4m2WCxwOp3w+XyYnp7G/Pw8RkdHYTKZAFy9yWM74+fLhq0wWK1WWK1W2O12jI2N4YMPPkAikaibZMzlcnyykc0TxONxHB8f4/DwEKFQqKkJCXMtks9dEPWQ6LuATYCxctd0Oo3Xr1/XHcOqvGw2G9xuN/x+P+bm5hAOh3H37l2Mj4/D7XbX2UhdJ71oeNSGMszqamRkhEdrdi9zuRyy2Szy+Tyq1SpKpRIymQwikQh2dnawubmJo6MjRKNR7t9fKBT4ZCL7nWgOif4CNOtasiovVg8fDoexv7+PX375BYuLi/jss8/w+PFjjI6OqtpD37Qxf7OoqlziVKb5Go1GWCwWuFwuHuFZ175YLCKVSmFiYgKLi4tIJBLIZDLcmCSRSOD09BTb29t49epV2x6EIkOi7wJm0yx/cFmuvFqkyWQyyGQyOD09xcbGBra3t1EoFKDT6ZDNZjE8PMz3i7tpYmdc1nWzpU9GrVaDw+GA1+vFwsJCXTZhoVBAJBLB3t4eXrx4AY1Gg+XlZV5Sy3wHqJtfD4m+TeTRSm72yJA3BK1mkk9PT/Hdd98hk8nggw8+wO9+9zssLCxgdHT0nQf+pjYCjVBLulH67cmRW5GpwXbfcTgc8Pl8+OCDD3B8fIxYLIbz83Pk83lUKpW6uRPRGwESfRcwu2uDwcBfk2emtQMrhDk5OUEikUChUEChUOAGj91Uut0ElMK+aKOm1+sxPDyMgYEBvPfee4hGo9jZ2cHW1hZOTk6QSqVQLpe56EUXPECi7wgWleSmmfL3WsGcWVnFWyaTwa+//opyuYyTkxPMzc1haWkJi4uLGB0dhSRJ75z/tkV+Ja3uo9KBiDkXG41GvlTodrvh8/kQjUaRy+W4tRhrREUXPom+CzQaDSwWCy9rDYVCAFo/TGrj/WQyiZWVFWxsbMDn8+GTTz7hXVK32w2TyVS3K+xtp9V3bOcesFWRqampuqU7Ee5fO5DoO0A+9nS73VhYWMDR0RGKxSI3tWDvt2oA5GN/+Uw/W6o6ODiA3+/HxMQE7ty5U5fswlDz3RMR5X1gkZ9Qh0TfJUNDQ3jw4AHC4TCCwWDHom809t/b20MsFsOPP/6IyclJfPjhh/j8889hsVhgs9maOrDIP18kRPu+F4VE3ybKB8vpdGJ2dhaHh4f44YcfLnxunU7H16ij0Sii0Sjevn2LVCqFYrGIaDSKqakpPmY1m81tP+zXPYa9DlFe93fuBxrddxJ9l5jNZr4ds8fjqXtPzbusGaxMVXlsKpXCy5cvcXR0hJ9++gkfffQRPv74Y9WJvmbnvk4BtNq/rpefS6hDor8AFosFIyMjWFpa4iYUqVSqK5GpzUpXq1Ve4/7mzRvE43Fks1mEQiEEAgF4PB44HA7Y7XZul6Wc8Lvq3H6i/9H97W9/a/Z+0zdFhyWOMOFVq1XE4/G6TSgB8H3ZOzmvGplMBuFwGGtra9wcMxwO123qwGrg2efeBOQ21q16JtSAdcT/UHvxZjwVfYpGo8HQ0BDsdjucTicMBgOq1SrW19dxdnbGxdhpEUijhz6VSmFjY4P/t9vtxr179/DgwQPMz8/D6/VCkiQYjUaYzWZYrVYYjUZIklSX3y8feih94+UThcof+d/Kr1MpVHmtu8FggCRJfOlRmckoPycJ+mogE40LIB+7J5NJrK2tYXl5GZubm9ja2sKrV69wfHzMj2cTdp2YPsgn+dSOd7lcfDttu93OU4RZLT/7nfVK5OKXZxEqo6xciHKrLHmasLzeXQkrovF6vRgfH+fDEbvdzq+L7V/fDbcxRbkHkHNOr2ATccxk8ujoCC9fvsSzZ8/w/Pnzrt1hLhOtVstFzxoeeUVbK+RbcbPJOeYTyBokeYMhSRJcLhcmJiZw7949LCwsYGxsjPvzM3MRtp+fsgfAGiPWMLHvwP7GbDbDaDTeylTlS4Scc3oJG9vbbDa+Z7rNZoPX68Xy8jK2trYQi8Xe+Tu1h7ZZL4BFfqCzYQOzz+4W5oPXDizhKBgMcj+83d1dDA4Owmq18glHg8HAu/ysYEl+DrkzTrlchiRJmJycxL179zA1NQWn00lJOF1Aor8ElLXiNpsNMzMz8Pl8WFxcxOzsLL788kv89NNP75hBdrqkxiLsTSGVSmFrawt7e3tc1Gy4wH5XzhvIYb2KXC4Hs9mMjz76CIVCARaLBSaTCcfSyEIAAAONSURBVAaDgbr5HUKi7wEsgg0MDGBwcJCbN46MjCAUCiEcDuPw8BDxeLytdN1mu7GyMXq7k2EXydzrxNabRWk2fLhIL4NRLBbx4sULjI+Pw+/3w+12w263130mNQCtIdH3APmDJ0kSpqenYTab8ejRI0SjUaytreHZs2f46aef2nJ6Udsckn2O/L12x7fyMXKndPJ5zOzyMpODKpUKwuEwQqEQstnspZ1XJEj0PYQ97MzkYWZmBqlUCiMjI5AkCR6PB8FgkHu7MTcYNg5Op9NNJ9mUYurUGfaiTrJX5URrNpu51+DExARmZmb4eJ4ie+fQ7P0VU61WkUgkcHJyglAoxN1gi8UiMpkMzs7OcHBwgNXVVbx8+VJ4i2e9Xs8n7+7fv4/p6WmMjo5ibGwMfr8fDofjui+xn6Elu36DjXWZaw7LuNvb28PKygp+/vlnHB8fo1Qq8aw+NoknT4zpBLXjm43VLxJJlenAau+z19ncBSs5Bn5zFHa73ZiZmcH777+Phw8fIhAI8JTjm+wpeEWQ6PsdtotsLBZDKBTC6ekpEolE3V5x8qFAs7TVRvvAqc0PNMqoY7Ps3TQAaueQTzrKRc6SfliyDqsf0Ov1MJvNcLlcGBkZgc/ng8Ph6AvL8BsCib6faObmotxkkm1PzTaWZJtBKI9t9BnKBkCZPqs8BxOjUqitUPO/Y3kFynOqCV6eAKTcEuy2egb2GBJ9v3CRZbNOo7zaa2o5840ivVLw3UZ7ZVpvs7V54tIg0ROEYFAabj/TLDqLEhEbTU5229Mg1KFITxC3F4r0t4Hb5v1GkfvqIdHfMEgkxEWhNRCCEAwSPUEIBomeIASDRE8QgkGiJwjBINEThGCQ6AlCMEj0BCEYJHqCEAwSPUEIBomeIASDRE8QgkGiJwjBINEThGCQ6AlCMEj0BCEYJHqCEAwSPUEIBomeIASDRE8QgkGiJwjBINEThGCQ6AlCMEj0BCEYJHqCEAwSPUEIBomeIASDRE8QgkGiJwjBINEThGCQ6AlCMEj0BCEYJHqCEAwSPUEIBomeIASDRE8QgkGiJwjBINEThGCQ6AlCMEj0BCEYJHqCEAwSPUEIBomeIASDRE8QgkGiJwjBINEThGCQ6AlCMEj0BCEYJHqCEAwSPUEIBomeIARD3+J9zZVcBUEQVwZFeoIQDBI9QQgGiZ4gBINETxCCQaInCMEg0ROEYPx/Mc/vkz2i19YAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current iteration: 72\n", "Starting forward run...\n", "Starting adjoint run...\n", "Calculating gradient...\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "algorithm = nlopt.LD_MMA\n", "n = Nx * Ny # number of parameters\n", "\n", "# Initial guess\n", "x = np.ones((n,)) * 0.5\n", "x[Si_mask.flatten()] = 1 # set the edges of waveguides to silicon\n", "x[SiO2_mask.flatten()] = 0 # set the other edges to SiO2\n", "\n", "# lower and upper bounds\n", "lb = np.zeros((Nx*Ny,))\n", "lb[Si_mask.flatten()] = 1\n", "ub = np.ones((Nx*Ny,))\n", "ub[SiO2_mask.flatten()] = 0\n", "\n", "cur_beta = 4\n", "beta_scale = 2\n", "num_betas = 6\n", "update_factor = 12\n", "for iters in range(num_betas):\n", " print(\"current beta: \",cur_beta)\n", " \n", " solver = nlopt.opt(algorithm, n)\n", " solver.set_lower_bounds(lb)\n", " solver.set_upper_bounds(ub)\n", " solver.set_max_objective(lambda a,g: f(a,g,cur_beta))\n", " solver.set_maxeval(update_factor)\n", " solver.set_xtol_rel(1e-4)\n", " x[:] = solver.optimize(x)\n", " cur_beta = cur_beta*beta_scale" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can see that the optimizer quickly finds a topology that works well and slowly refines it as we continue to \"binarize\" the design." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure()\n", "plt.plot(10*np.log10(0.5*np.array(evaluation_history)),'o-')\n", "plt.grid(True)\n", "plt.xlabel('Iteration')\n", "plt.ylabel('Mean Splitting Ratio (dB)')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can view the final spectral response to verify that the design performs." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Starting forward run...\n" ] } ], "source": [ "f0, dJ_deps, dg = opt([mapping(x,eta_i,cur_beta)],need_gradient = False)\n", "frequencies = opt.frequencies\n", "source_coef, top_coef, bottom_ceof = opt.get_objective_arguments()\n", "\n", "top_profile = np.abs(top_coef/source_coef) ** 2\n", "bottom_profile = np.abs(bottom_ceof/source_coef) ** 2" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure()\n", "plt.plot(1/frequencies,top_profile*100,'-o' ,label = 'Top Arm')\n", "plt.plot(1/frequencies,bottom_profile*100,'--o',label = 'Bottom Arm')\n", "plt.legend()\n", "plt.grid(True)\n", "plt.xlabel('Wavelength (microns)')\n", "plt.ylabel('Splitting Ratio (%)')\n", "plt.ylim(49,50)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And of course we'll visualize the final topology. We'll plot the minimum length scale as a circle in the upper corner." ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "opt.update_design([mapping(x,eta_i,cur_beta)])\n", "plt.figure()\n", "ax = plt.gca()\n", "opt.plot2D(False,ax=ax,plot_sources_flag=False,plot_monitors_flag=False,plot_boundaries_flag=False)\n", "circ = Circle((2,2),minimum_length/2)\n", "ax.add_patch(circ)\n", "ax.axis('off')\n", "plt.show()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.3" } }, "nbformat": 4, "nbformat_minor": 2 }