{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Optimization of Dissipative Qubit Reset" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "ExecuteTime": { "end_time": "2019-02-12T04:47:26.374878Z", "start_time": "2019-02-12T04:47:25.200533Z" }, "attributes": { "classes": [], "id": "", "n": "1" }, "execution": { "iopub.execute_input": "2021-11-07T04:57:20.907766Z", "iopub.status.busy": "2021-11-07T04:57:20.901914Z", "iopub.status.idle": "2021-11-07T04:57:21.998342Z", "shell.execute_reply": "2021-11-07T04:57:21.997991Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Python implementation: CPython\n", "Python version : 3.8.1\n", "IPython version : 7.24.1\n", "\n", "krotov : 1.2.1+dev\n", "matplotlib: 3.4.2\n", "numpy : 1.20.3\n", "qutip : 4.6.1\n", "scipy : 1.6.3\n", "\n" ] } ], "source": [ "# NBVAL_IGNORE_OUTPUT\n", "%load_ext watermark\n", "import qutip\n", "import numpy as np\n", "import scipy\n", "import matplotlib\n", "import matplotlib.pylab as plt\n", "import krotov\n", "\n", "%watermark -v --iversions" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$\\newcommand{tr}[0]{\\operatorname{tr}}\n", "\\newcommand{diag}[0]{\\operatorname{diag}}\n", "\\newcommand{abs}[0]{\\operatorname{abs}}\n", "\\newcommand{pop}[0]{\\operatorname{pop}}\n", "\\newcommand{aux}[0]{\\text{aux}}\n", "\\newcommand{int}[0]{\\text{int}}\n", "\\newcommand{opt}[0]{\\text{opt}}\n", "\\newcommand{tgt}[0]{\\text{tgt}}\n", "\\newcommand{init}[0]{\\text{init}}\n", "\\newcommand{lab}[0]{\\text{lab}}\n", "\\newcommand{rwa}[0]{\\text{rwa}}\n", "\\newcommand{bra}[1]{\\langle#1\\vert}\n", "\\newcommand{ket}[1]{\\vert#1\\rangle}\n", "\\newcommand{Bra}[1]{\\left\\langle#1\\right\\vert}\n", "\\newcommand{Ket}[1]{\\left\\vert#1\\right\\rangle}\n", "\\newcommand{Braket}[2]{\\left\\langle #1\\vphantom{#2} \\mid\n", "#2\\vphantom{#1}\\right\\rangle}\n", "\\newcommand{op}[1]{\\hat{#1}}\n", "\\newcommand{Op}[1]{\\hat{#1}}\n", "\\newcommand{dd}[0]{\\,\\text{d}}\n", "\\newcommand{Liouville}[0]{\\mathcal{L}}\n", "\\newcommand{DynMap}[0]{\\mathcal{E}}\n", "\\newcommand{identity}[0]{\\mathbf{1}}\n", "\\newcommand{Norm}[1]{\\lVert#1\\rVert}\n", "\\newcommand{Abs}[1]{\\left\\vert#1\\right\\vert}\n", "\\newcommand{avg}[1]{\\langle#1\\rangle}\n", "\\newcommand{Avg}[1]{\\left\\langle#1\\right\\rangle}\n", "\\newcommand{AbsSq}[1]{\\left\\vert#1\\right\\vert^2}\n", "\\newcommand{Re}[0]{\\operatorname{Re}}\n", "\\newcommand{Im}[0]{\\operatorname{Im}}$\n", "\n", "This example illustrates an optimization in an *open* quantum system,\n", "where the dynamics is governed by the Liouville-von Neumann equation. Hence,\n", "states are represented by density matrices $\\op{\\rho}(t)$ and the time-evolution\n", "operator is given by a general dynamical map $\\DynMap$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Define parameters\n", "\n", "The system consists of a qubit with Hamiltonian\n", "$\\op{H}_{q}(t) = - \\frac{\\omega_{q}}{2} \\op{\\sigma}_{z} - \\frac{\\epsilon(t)}{2} \\op{\\sigma}_{z}$,\n", "where $\\omega_{q}$ is an energy level splitting that can be dynamically adjusted\n", "by the control $\\epsilon(t)$. This qubit couples strongly to another two-level\n", "system (TLS) with Hamiltonian $\\op{H}_{t} = - \\frac{\\omega_{t}}{2} \\op{\\sigma}_{z}$ with\n", "static energy level splitting $\\omega_{t}$. The coupling strength between both\n", "systems is given by $J$ with the interaction Hamiltonian given by $\\op{H}_{\\int}\n", "= J \\op{\\sigma}_{x} \\otimes \\op{\\sigma}_{x}$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The Hamiltonian for the system of qubit and TLS is\n", "\n", "$$\n", " \\op{H}(t)\n", " = \\op{H}_{q}(t) \\otimes \\identity_{t}\n", " + \\identity_{q} \\otimes \\op{H}_{t} + \\op{H}_{\\int}.\n", "$$\n", "\n", "In addition, the TLS is embedded in a heat bath with inverse temperature\n", "$\\beta$. The TLS couples to the bath with rate $\\kappa$. In order to simulate\n", "the dissipation arising from this coupling, we consider the two Lindblad\n", "operators\n", "\n", "$$\n", "\\begin{split}\n", "\\op{L}_{1} &= \\sqrt{\\kappa (N_{th}+1)} \\identity_{q} \\otimes \\ket{0}\\bra{1} \\\\\n", "\\op{L}_{2} &= \\sqrt{\\kappa N_{th}} \\identity_{q} \\otimes \\ket{1}\\bra{0}\n", "\\end{split}\n", "$$\n", "\n", "with $N_{th} = 1/(e^{\\beta \\omega_{t}} - 1)$." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "ExecuteTime": { "end_time": "2019-02-12T04:47:26.385786Z", "start_time": "2019-02-12T04:47:26.379865Z" }, "attributes": { "classes": [], "id": "", "n": "2" }, "execution": { "iopub.execute_input": "2021-11-07T04:57:22.000740Z", "iopub.status.busy": "2021-11-07T04:57:22.000445Z", "iopub.status.idle": "2021-11-07T04:57:22.002018Z", "shell.execute_reply": "2021-11-07T04:57:22.001719Z" } }, "outputs": [], "source": [ "omega_q = 1.0 # qubit level splitting\n", "omega_T = 3.0 # TLS level splitting\n", "J = 0.1 # qubit-TLS coupling\n", "kappa = 0.04 # TLS decay rate\n", "beta = 1.0 # inverse bath temperature\n", "T = 25.0 # final time\n", "nt = 2500 # number of time steps" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Define the Liouvillian\n", "\n", "The dynamics of the qubit-TLS system state $\\op{\\rho}(t)$ is governed by the\n", "Liouville-von Neumann equation\n", "\n", "$$\n", "\\begin{split}\n", " \\frac{\\partial}{\\partial t} \\op{\\rho}(t)\n", " &= \\Liouville(t) \\op{\\rho}(t) \\\\\n", " &= - i \\left[\\op{H}(t), \\op{\\rho}(t)\\right]\n", " + \\sum_{k=1,2} \\left(\n", " \\op{L}_{k} \\op{\\rho}(t) \\op{L}_{k}^\\dagger\n", " - \\frac{1}{2}\n", " \\op{L}_{k}^\\dagger\n", " \\op{L}_{k} \\op{\\rho}(t)\n", " - \\frac{1}{2} \\op{\\rho}(t)\n", " \\op{L}_{k}^\\dagger\n", " \\op{L}_{k}\n", " \\right)\\,.\n", "\\end{split}\n", "$$" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "execution": { "iopub.execute_input": "2021-11-07T04:57:22.009048Z", "iopub.status.busy": "2021-11-07T04:57:22.008742Z", "iopub.status.idle": "2021-11-07T04:57:22.009926Z", "shell.execute_reply": "2021-11-07T04:57:22.010174Z" } }, "outputs": [], "source": [ "def liouvillian(omega_q, omega_T, J, kappa, beta):\n", " \"\"\"Liouvillian for the coupled system of qubit and TLS\"\"\"\n", "\n", " # drift qubit Hamiltonian\n", " H0_q = 0.5 * omega_q * np.diag([-1, 1])\n", " # drive qubit Hamiltonian\n", " H1_q = 0.5 * np.diag([-1, 1])\n", "\n", " # drift TLS Hamiltonian\n", " H0_T = 0.5 * omega_T * np.diag([-1, 1])\n", "\n", " # Lift Hamiltonians to joint system operators\n", " H0 = np.kron(H0_q, np.identity(2)) + np.kron(np.identity(2), H0_T)\n", " H1 = np.kron(H1_q, np.identity(2))\n", "\n", " # qubit-TLS interaction\n", " H_int = J * np.fliplr(np.diag([0, 1, 1, 0]))\n", "\n", " # convert Hamiltonians to QuTiP objects\n", " H0 = qutip.Qobj(H0 + H_int)\n", " H1 = qutip.Qobj(H1)\n", "\n", " # Define Lindblad operators\n", " N = 1.0 / (np.exp(beta * omega_T) - 1.0)\n", " # Cooling on TLS\n", " L1 = np.sqrt(kappa * (N + 1)) * np.kron(\n", " np.identity(2), np.array([[0, 1], [0, 0]])\n", " )\n", " # Heating on TLS\n", " L2 = np.sqrt(kappa * N) * np.kron(\n", " np.identity(2), np.array([[0, 0], [1, 0]])\n", " )\n", "\n", " # convert Lindblad operators to QuTiP objects\n", " L1 = qutip.Qobj(L1)\n", " L2 = qutip.Qobj(L2)\n", "\n", " # generate the Liouvillian\n", " L0 = qutip.liouvillian(H=H0, c_ops=[L1, L2])\n", " L1 = qutip.liouvillian(H=H1)\n", "\n", " # Shift the qubit and TLS into resonance by default\n", " eps0 = lambda t, args: omega_T - omega_q\n", "\n", " return [L0, [L1, eps0]]\n", "\n", "\n", "L = liouvillian(omega_q=omega_q, omega_T=omega_T, J=J, kappa=kappa, beta=beta)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Define the optimization target" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The initial state of qubit and TLS are assumed to be in thermal equilibrium with\n", "the heat bath (although only the TLS is directly interacting with the bath).\n", "Both states are given by\n", "\n", "$$\n", " \\op{\\rho}_{\\alpha}^{th} =\n", "\\frac{e^{x_{\\alpha}} \\ket{0}\\bra{0} + e^{-x_{\\alpha}} \\ket{1}\\bra{1}}{2\n", "\\cosh(x_{\\alpha})},\n", " \\qquad\n", " x_{\\alpha} = \\frac{\\omega_{\\alpha} \\beta}{2},\n", "$$\n", "\n", "with $\\alpha = q,t$. The initial state of the bipartite system\n", "of qubit and TLS is given by the thermal state\n", "$\\op{\\rho}_{th} = \\op{\\rho}_{q}^{th} \\otimes \\op{\\rho}_{t}^{th}$." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "ExecuteTime": { "end_time": "2019-02-12T04:47:26.466604Z", "start_time": "2019-02-12T04:47:26.457181Z" }, "attributes": { "classes": [], "id": "", "n": "6" }, "execution": { "iopub.execute_input": "2021-11-07T04:57:22.013036Z", "iopub.status.busy": "2021-11-07T04:57:22.012740Z", "iopub.status.idle": "2021-11-07T04:57:22.014343Z", "shell.execute_reply": "2021-11-07T04:57:22.014044Z" } }, "outputs": [], "source": [ "x_q = omega_q * beta / 2.0\n", "rho_q_th = np.diag([np.exp(x_q), np.exp(-x_q)]) / (2 * np.cosh(x_q))\n", "\n", "x_T = omega_T * beta / 2.0\n", "rho_T_th = np.diag([np.exp(x_T), np.exp(-x_T)]) / (2 * np.cosh(x_T))\n", "\n", "rho_th = qutip.Qobj(np.kron(rho_q_th, rho_T_th))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Since we are ultimately only interested in the state of the qubit, we define\n", "`trace_TLS`. It returns the reduced state of the qubit\n", "$\\op{\\rho}_{q} = \\tr_{t}\\{\\op{\\rho}\\}$ when passed\n", "the state $\\op{\\rho}$ of the bipartite system." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "ExecuteTime": { "end_time": "2019-02-12T04:47:26.482459Z", "start_time": "2019-02-12T04:47:26.472974Z" }, "attributes": { "classes": [], "id": "", "n": "7" }, "execution": { "iopub.execute_input": "2021-11-07T04:57:22.017012Z", "iopub.status.busy": "2021-11-07T04:57:22.016719Z", "iopub.status.idle": "2021-11-07T04:57:22.018334Z", "shell.execute_reply": "2021-11-07T04:57:22.018031Z" } }, "outputs": [], "source": [ "def trace_TLS(rho):\n", " \"\"\"Partial trace over the TLS degrees of freedom\"\"\"\n", " rho_q = np.zeros(shape=(2, 2), dtype=np.complex_)\n", " rho_q[0, 0] = rho[0, 0] + rho[1, 1]\n", " rho_q[0, 1] = rho[0, 2] + rho[1, 3]\n", " rho_q[1, 0] = rho[2, 0] + rho[3, 1]\n", " rho_q[1, 1] = rho[2, 2] + rho[3, 3]\n", " return qutip.Qobj(rho_q)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The target state is (temporarily) the ground state of the bipartite system,\n", "i.e., $\\op{\\rho}_{\\tgt} = \\ket{00}\\bra{00}$. Note that in the end we will only\n", "optimize the reduced state of the qubit." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "ExecuteTime": { "end_time": "2019-02-12T04:47:26.496869Z", "start_time": "2019-02-12T04:47:26.485940Z" }, "attributes": { "classes": [], "id": "", "n": "8" }, "execution": { "iopub.execute_input": "2021-11-07T04:57:22.020728Z", "iopub.status.busy": "2021-11-07T04:57:22.020430Z", "iopub.status.idle": "2021-11-07T04:57:22.022040Z", "shell.execute_reply": "2021-11-07T04:57:22.021743Z" } }, "outputs": [], "source": [ "rho_q_trg = np.diag([1, 0])\n", "rho_T_trg = np.diag([1, 0])\n", "rho_trg = np.kron(rho_q_trg, rho_T_trg)\n", "rho_trg = qutip.Qobj(rho_trg)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Next, the list of `objectives` is defined, which contains the initial and target\n", "state and the Liouvillian $\\Liouville(t)$ that determines the system dynamics." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "ExecuteTime": { "end_time": "2019-02-12T04:47:26.506011Z", "start_time": "2019-02-12T04:47:26.501241Z" }, "attributes": { "classes": [], "id": "", "n": "9" }, "execution": { "iopub.execute_input": "2021-11-07T04:57:22.025450Z", "iopub.status.busy": "2021-11-07T04:57:22.025127Z", "iopub.status.idle": "2021-11-07T04:57:22.026926Z", "shell.execute_reply": "2021-11-07T04:57:22.027170Z" } }, "outputs": [ { "data": { "text/plain": [ "[Objective[Ļā‚€[4,4] to Ļā‚[4,4] via [š“›ā‚€[[4,4],[4,4]], [š“›ā‚[[4,4],[4,4]], uā‚(t)]]]]" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "objectives = [krotov.Objective(initial_state=rho_th, target=rho_trg, H=L)]\n", "objectives" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the following, we define the shape function $S(t)$, which we use in order to\n", "ensure a smooth switch on and off in the beginning and end. Note that at times\n", "$t$ where $S(t)$ vanishes, the updates of the field is suppressed." ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "ExecuteTime": { "end_time": "2019-02-12T04:47:26.514731Z", "start_time": "2019-02-12T04:47:26.508936Z" }, "attributes": { "classes": [], "id": "", "n": "10" }, "execution": { "iopub.execute_input": "2021-11-07T04:57:22.029247Z", "iopub.status.busy": "2021-11-07T04:57:22.028946Z", "iopub.status.idle": "2021-11-07T04:57:22.030542Z", "shell.execute_reply": "2021-11-07T04:57:22.030244Z" } }, "outputs": [], "source": [ "def S(t):\n", " \"\"\"Shape function for the field update\"\"\"\n", " return krotov.shapes.flattop(\n", " t, t_start=0, t_stop=T, t_rise=0.05 * T, t_fall=0.05 * T, func='sinsq'\n", " )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We re-use this function to also shape the guess control $\\epsilon_{0}(t)$ to be\n", "zero at $t=0$ and $t=T$. This is on top of the originally defined constant\n", "value shifting the qubit and TLS into resonance." ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "ExecuteTime": { "end_time": "2019-02-12T04:47:26.524627Z", "start_time": "2019-02-12T04:47:26.517577Z" }, "attributes": { "classes": [], "id": "", "n": "11" }, "execution": { "iopub.execute_input": "2021-11-07T04:57:22.032749Z", "iopub.status.busy": "2021-11-07T04:57:22.032457Z", "iopub.status.idle": "2021-11-07T04:57:22.034131Z", "shell.execute_reply": "2021-11-07T04:57:22.033831Z" } }, "outputs": [], "source": [ "def shape_field(eps0):\n", " \"\"\"Applies the shape function S(t) to the guess field\"\"\"\n", " eps0_shaped = lambda t, args: eps0(t, args) * S(t)\n", " return eps0_shaped\n", "\n", "\n", "L[1][1] = shape_field(L[1][1])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "At last, before heading to the actual optimization below, we assign the shape\n", "function $S(t)$ to the OCT parameters of the control and choose `lambda_a`, a\n", "numerical parameter that controls the field update magnitude in each iteration." ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "execution": { "iopub.execute_input": "2021-11-07T04:57:22.036186Z", "iopub.status.busy": "2021-11-07T04:57:22.035896Z", "iopub.status.idle": "2021-11-07T04:57:22.037502Z", "shell.execute_reply": "2021-11-07T04:57:22.037205Z" } }, "outputs": [], "source": [ "pulse_options = {L[1][1]: dict(lambda_a=0.1, update_shape=S)}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Simulate the dynamics of the guess field\n" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "execution": { "iopub.execute_input": "2021-11-07T04:57:22.039393Z", "iopub.status.busy": "2021-11-07T04:57:22.039102Z", "iopub.status.idle": "2021-11-07T04:57:22.040329Z", "shell.execute_reply": "2021-11-07T04:57:22.040560Z" } }, "outputs": [], "source": [ "tlist = np.linspace(0, T, nt)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "ExecuteTime": { "end_time": "2019-02-12T04:47:26.545108Z", "start_time": "2019-02-12T04:47:26.537953Z" }, "attributes": { "classes": [], "id": "", "n": "13" }, "execution": { "iopub.execute_input": "2021-11-07T04:57:22.042920Z", "iopub.status.busy": "2021-11-07T04:57:22.042581Z", "iopub.status.idle": "2021-11-07T04:57:22.044223Z", "shell.execute_reply": "2021-11-07T04:57:22.043920Z" } }, "outputs": [], "source": [ "def plot_pulse(pulse, tlist):\n", " fig, ax = plt.subplots()\n", " if callable(pulse):\n", " pulse = np.array([pulse(t, args=None) for t in tlist])\n", " ax.plot(tlist, pulse)\n", " ax.set_xlabel('time')\n", " ax.set_ylabel('pulse amplitude')\n", " plt.show(fig)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The following plot shows the guess field $\\epsilon_{0}(t)$ as a constant that\n", "puts qubit and TLS into resonance, but with a smooth switch-on and switch-off." ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "ExecuteTime": { "end_time": "2019-02-12T04:47:26.773279Z", "start_time": "2019-02-12T04:47:26.547926Z" }, "attributes": { "classes": [], "id": "", "n": "14" }, "execution": { "iopub.execute_input": "2021-11-07T04:57:22.053586Z", "iopub.status.busy": "2021-11-07T04:57:22.053292Z", "iopub.status.idle": "2021-11-07T04:57:22.157025Z", "shell.execute_reply": "2021-11-07T04:57:22.156759Z" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAEGCAYAAAB/+QKOAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAAAixklEQVR4nO3de5Skd13n8fenu/p+mfuEYa4BohKRXGgDq1kNLokJBwmuwibegguOBxJFXVwD6yFsXM5hxUUPisKgc5J4MNGA0VGDIUcCURGYHhJyg5BhcpshyfRMz0xfZvpS3d/9o57qKTrVMzU9/Vy6+/M6p07X83vqqedbU8nzrd/l+f0UEZiZmc3WlHcAZmZWTE4QZmZWlxOEmZnV5QRhZmZ1OUGYmVldpbwDWEhr166Nbdu25R2GmdmisWfPnkMRsa7eviWVILZt20Z/f3/eYZiZLRqSnp5rn5uYzMysLicIMzOrywnCzMzqcoIwM7O6nCDMzKyu1BKEpM2S7pP0mKRHJb2nzmsk6WOS9kp6SNLFNfuuk/RE8rgurTjNzKy+NIe5loH/ERFfl9QD7JF0b0Q8VvOaq4DzksdrgT8DXitpNXAT0AdEcuyuiDiSYrxmZlYjtQQREc8BzyXPhyV9E9gI1CaIq4HbojLn+FckrZS0AbgMuDciBgEk3QtcCdyeVrzzdd/jB3ngmaNQlGnTpbwjAKAYUVQU5J8EFeRfpTj/HsVQlH+Pi7es4kdesTbvML5HJjfKSdoGXAR8ddaujcCzNdv7k7K5yuu993ZgO8CWLVsWJuAGfWdghP9+y24iivEfWVFylJmduVKTuO+9l7F5dWfeocxIPUFI6gY+C/xGRAwt9PtHxA5gB0BfX1+ml8jP7NlPs8SX3/8TrO9pz/LU1qCiLIhVkDAoSBjF+V7yDiDx3NExfuwj97HrG9/l+te/Iu9wZqSaICS1UEkOn46Iv63zkgPA5prtTUnZASrNTLXlX0wnyvn72pODXLh5pZNDgakIVTuKUcMsFv+D1NqyppPvO6ebrz45yPWvzzuak9IcxSTgL4BvRsRH53jZLuCXktFMrwOOJX0X9wBXSFolaRVwRVJWGBPlaR4+cIyLt67KOxQzWwL6tq3mgWeOFKZ2BenWIH4U+EXgYUkPJmXvB7YARMQngLuBNwJ7gePALyf7BiX9HrA7Oe7maod1UTwzOMpEeZrzN/TmHYqZLQHft76b4bEyA8PjrO8tRqtEmqOY/o3T1COT0UvXz7FvJ7AzhdAWxL6BUQDOXduVcyRmthS8Yn0PAHsPjhQmQfhO6nl68lAlQWxzgjCzBfCK9d0A7B0YyTmSk5wg5unJQ6Os7W5lRUdL3qGY2RJwTm8bHS3NPH34eN6hzHCCmKf9R06waVVxxiub2eImiQ0r2nnu2Im8Q5nhBDFPzw+N8ZKCtBOa2dKwYWU73z06lncYM5wg5umFY2O8ZIUThJktnA0rOlyDWOxGx8sMj5c5xzUIM1tAG1a0c3B4nMmp6bxDAZwg5uWFoUoV8JzetpwjMbOlZMOKDiLg4PB43qEAThDz8nySINwHYWYLacPKyjXluaPFaGZygpiHmRqE+yDMbAGt6660Shwamcg5kgoniHl4/lil+uc+CDNbSGu6WwE4POompkVrYHicztZmutsyWU7DzJaJ1V2VBDHoGsTideT4xMwXaWa2UNpKzfS0lzg86gSxaA2OOkGYWTrWdrdxaMRNTIvWkeMTrOp0gjCzhbe6q5XDbmJavAZHJ1jjGoSZpWBNVyuDbmJavI6MTrDKCcLMUrCmu23pj2KStFPSQUmPzLH/tyU9mDwekTQlaXWy7ylJDyf7+tOKcT7GJqcYnZhyH4SZpWJtd6UGMT2d/9KjadYgbgGunGtnRHwkIi6MiAuB9wFfmrWs6OuT/X0pxnjGjh6fBHAfhJmlYnVXK9MBR09M5h1KegkiIu4HGl1H+lrg9rRiWUjVqt/qLi8UZGYLr/rj8+jx/Pshcu+DkNRJpabx2ZriAD4vaY+k7ac5frukfkn9AwMDaYYKwJFR1yDMLD3VVSqXdA3iDPwU8O+zmpcujYiLgauA6yX92FwHR8SOiOiLiL5169alHSuDSVZ3H4SZpWFFZyVBHHOCAOAaZjUvRcSB5O9B4C7gkhziqutIMvzMo5jMLA3VGsSx48s8QUhaAfw48Pc1ZV2SeqrPgSuAuiOh8lAdn7yyw30QZrbwqteWItQgUpttTtLtwGXAWkn7gZuAFoCI+ETysp8GPh8RozWHngPcJaka319FxD+nFeeZGhqbpKe9RKm5CJUvM1tqZvogClCDSC1BRMS1DbzmFirDYWvL9gEXpBPV2Rs6Uaa33bUHM0tHqbmJ7rZSIWoQ/hl8hobGJul185KZpWhFRwtHT3iY66IzdGKS3navA2Fm6VnR0cKQaxCLz9BY2TUIM0vVys6WQvRBOEGcoaETlU5qM7O0rOhocR/EYjQ0NulOajNL1crOFt9JvdhMTwcj425iMrN09SY1iIh8Z3R1gjgDw+NlInAntZmlamVHKxPlacYmp3ONwwniDFRHFbgGYWZp6u2o/AgdGsu3mckJ4gxUvyz3QZhZmrrbKglieKycaxxOEGdg6ETly6pmdzOzNFR/hA67BrF4uAZhZlmoDqV3DWIRqfZBrHAfhJmlqDtJECPjThCLRvXGFdcgzCxNPW5iWnyGkupet4e5mlmK3Em9CA2dmKSnrURzk/IOxcyWsGqCGHKCWDw81beZZaG5SXS3lRhZqglC0k5JByXVXS5U0mWSjkl6MHl8oGbflZIel7RX0o1pxXimhk6UPVGfmWWiu620pPsgbgGuPM1r/jUiLkweNwNIagY+DlwFnA9cK+n8FONs2LAn6jOzjPS0l5ZuH0RE3A8MzuPQS4C9EbEvIiaAO4CrFzS4eRqdKNPV1px3GGa2DPS0l5b9MNf/JOkbkj4n6QeTso3AszWv2Z+U1SVpu6R+Sf0DAwNpxsrIWJlu1yDMLAPd7S1LuonpdL4ObI2IC4A/Bv5uPm8SETsioi8i+tatW7eQ8b3IyPgU3a5BmFkGlnQT0+lExFBEjCTP7wZaJK0FDgCba166KSnL3eh4eWb4mZlZmnrbSwwv1yYmSS+RpOT5JUksh4HdwHmSzpXUClwD7Morzqry1DQnJqfocoIwswwUYRRTalc7SbcDlwFrJe0HbgJaACLiE8DPAu+SVAZOANdEZfmksqQbgHuAZmBnRDyaVpyNGp2YAnANwswy0dPewtjkNJNT07Q05/NbPrWrXURce5r9fwL8yRz77gbuTiOu+RpNqnpOEGaWheo9VyNjZVZ1teYSQ96jmBaN6nAzNzGZWRaKMB+TE0SDRlyDMLMMVWd0zXPZUSeIBs00MXmqDTPLQG8B1oRwgmhQddKsrlYnCDNLX3cBVpVzgmiQm5jMLEvV/s7jEwVOEJK+T9K/VGdllfRqSb+bfmjF4iYmM8tStbWi6E1MnwLeB0wCRMRDVG5eW1ZOjmLyVBtmlr7qtWa04AmiMyK+Nqss3/u/czAyPkVLs2grOUGYWfpO1iCmcouhkQRxSNLLgQCQ9LPAc6lGVUCeh8nMstTUJDpbm3OtQTRyxbse2AH8gKQDwJPAL6QaVQGNjJd9k5yZZaqrrVTsBBER+4A3SOoCmiJiOP2wimfENQgzy1h3W76LBs15xZP0W3OUAxARH00ppkIaGXOCMLNsdbUVt4mpJ/n7/cAPc3LK7Z8CZndaL3mjE2VWdeYzYZaZLU9drSVGc+yknjNBRMT/BpB0P3BxtWlJ0geBf8okugIZGS+zeXVn3mGY2TLS3VbiuWNjuZ2/kVFM5wATNdsTSdmyMjJWptvTbJhZhrraSozmeCd1I1e824CvSbor2X4LcOvpDpK0E3gTcDAiXlVn/88DvwMIGAbeFRHfSPY9lZRNAeWI6GsgzlSNehSTmWVsMYxi+pCkzwH/OSn65Yh4oIH3voXKgkC3zbH/SeDHI+KIpKuoDKV9bc3+10fEoQbOk7rp6WB0YsrTbJhZprrbmos5iqlK0hbgEHBXbVlEPHOq4yLifknbTrH/yzWbXwE2nTbanFSreN2eZsPMMtTVVmJscpry1DSlHJYdbeQn8T+R3EUNdADnAo8DP7iAcbwD+FzNdgCflxTAJyNix1wHStoObAfYsmXLAoZ0UnUUgZuYzCxL1aH1oxNTrOgoYIKIiB+q3ZZ0MfDuhQpA0uupJIhLa4ovjYgDktYD90r6VkTcP0d8O6g0T9HX1xf1XnO2PNW3meWhs/XklN8rOloyP/8Zp6SI+Drf21cwb5JeDfw5cHVEHK45x4Hk70EqTVuXLMT55ssJwszykPeMro30QdTeUd0EXAx892xPnPRt/C3wixHx7ZrymSk9kudXADef7fnOxujMVN9OEGaWneqP0rxmdG3kitdT87xMpU/is6c7SNLtwGXAWkn7gZuAFoCI+ATwAWAN8KfJ9B3V4aznAHclZSXgryLinxv8PKlwDcLM8lD9UVrYGgTwWETcWVsg6a3AnXO8HoCIuPY0+98JvLNO+T7gggbiykx1PWonCDPL0skaRD4JopE+iPc1WLZkVYe5uonJzLJU2BpEcvPaG4GNkj5Ws6uXZbaiXDV79/hGOTPLUJE7qb8L9ANvBvbUlA8Dv5lmUEUzMlamuUm0lbIfh2xmy1dhO6mTeZG+IenTEbGsagyzjY6X6WptnlkLw8wsCx0tzTSpgDUISX8TEW8DHkjuaP4eEfHqVCMrkJHxKXras79JxcyWN0l0tea3qtypmpjek/x9UxaBFNnI+ORMW6CZWZbynNH1VE1MzyV/n84unGIaHZ/yEFczy0VXW3Nua0KcqolpmJOT9EFl3Yao/o2I3pRjK4zh8TK9HsFkZjnobisVspO6Z659y83oeJmXrmjPOwwzW4YK2cRUK5nB9VIqNYh/a3DBoCXjuFeTM7OcdLWVGBw9nsu5TzuwX9IHqCwxugZYC9wi6XfTDqxIRpJhrmZmWetqLWAfRI2fBy6IiDEASR8GHgT+T4pxFUZEZblR1yDMLA+VJqZ8+iAauTX4u0BtA3wbcCCdcIpnvDzN1HQ4QZhZLiqd1MWtQRwDHpV0L5U+iMuBr1XnZ4qIX08xvtyNeqpvM8tRV1uJifI0k1PTtGS8LnUjV727kkfVF9MJpZiqVbtO90GYWQ5qZ3Rd2dma6bkbWZP61iwCKSovFmRmeepOZnEYySFBNDKK6U2SHpA0KGlI0rCkoUbeXNJOSQclPTLHfkn6mKS9kh5KhtNW910n6YnkcV3jH2lheS0IM8vTyRpE9h3VjTRo/RFwHbAmInojoucM7qK+BbjyFPuvAs5LHtuBPwOQtJrKEqWvBS4BbpK0qsFzLiivR21meerKcVW5RhLEs8AjEfGiGV1PJyLuBwZP8ZKrgdui4ivASkkbgJ8E7o2IwYg4AtzLqRNNaqpZ201MZpaH7hxXlWvkqvc/gbslfQkYrxZGxEcX4PwbqSSgqv1J2VzlLyJpO5XaB1u2bFmAkL5X9UtxJ7WZ5aGrNb8E0UgN4kPAcSr3QvTUPAohInZERF9E9K1bt27B39+d1GaWp+4cm5gaueq9NCJeldL5DwCba7Y3JWUHgMtmlX8xpRhO6bg7qc0sR3muS91IDeJuSVekdP5dwC8lo5leBxxL1qG4B7hC0qqkc/qKpCxzI+NTtDY30er1qM0sBzOjmCayH8XUyM/idwHvlTQOTHIG60FIup1KTWCtpP1URia1UHmDTwB3A28E9lJpxvrlZN+gpN8DdidvdXNEnKqzOzWj42U6vZqcmeWkrdRES7OK2cR0NutCRMS1p9kfwPVz7NsJ7JzvuRfK6Hh5ppPIzCxrknJbE6LR9SBWUblXYWbSvmQI65I3OlF2B7WZ5aqrtcTIWAEThKR3Au+h0lH8IPA64D+An0g1soIYHZ+a6SQyM8tDXjO6NtLz+h7gh4GnI+L1wEXA0TSDKpIRryZnZjnrastn0aBGEsRYzWJBbRHxLeD70w2rONwHYWZ562orMZLDXEyNXPn2S1oJ/B1wr6QjwNNpBlUkx72anJnlrLutxHPHxjI/byOjmH46efpBSfcBK4B/TjWqAhkZL89Mt2tmlodCj2KqiogvpRVIEUVEpYnJNQgzy1GRO6mXrfHyNGWvR21mOetOahDzmFT7rDhBnMLx5Nb2Ls/kamY56morMR0wNjmd6XkbShCStkp6Q/K8Q1JhZnNNkxcLMrMiqF12NEuNLDn6K8BngE8mRZuojGha8jzVt5kVQVdOiwY1UoO4HvhRYAggIp4A1qcZVFG4BmFmRZDXsqONJIjxiJiobkgqAdn2lORkZCZBuA/CzPKT16JBjSSIL0l6P9Ah6XLgTuAf0g2rGGY6qV2DMLMcFbmJ6UZgAHgY+FUqazj8bppBFcVMDcJTbZhZjvLqpG7kTupp4FPApyStBjZF1oNxczLqTmozK4CTNYhs52NqZBTTFyX1JslhD5VE8YeNvLmkKyU9LmmvpBvr7P9DSQ8mj29LOlqzb6pm364z+EwLxp3UZlYE3Tk1MTVy5VsREUPJuhC3RcRNkh463UGSmoGPA5cD+4HdknZFxGPV10TEb9a8/teoTCVedSIiLmzwc6RidGKKlmZ5PWozy1W1mbuIndQlSRuAtwH/eAbvfQmwNyL2JaOg7gCuPsXrrwVuP4P3T53nYTKzImhqEp2tzYXspL4ZuIfKxX63pJcBTzRw3Ebg2Zrt/UnZi0jaCpwLfKGmuF1Sv6SvSHrLXCeRtD15Xf/AwEADYTVuxGtBmFlBdLWVMl80qJFO6jupDG2tbu8DfmaB47gG+ExE1PbAbI2IA0lC+oKkhyPiO3Xi2wHsAOjr61vQzvPRca9HbWbF0J3DokFzXv0k/TGnuCEuIn79NO99ANhcs70pKavnGip3bNe+/4Hk7z5JX6TSP/GiBJGm4xNTdPomOTMrgK627JuYTvXzuP8s33s3cJ6kc6kkhmuAn5v9Ikk/AKwC/qOmbBVwPCLGJa2lMtXH759lPGdsxDUIMyuIrtYSI2MFSRARcevZvHFElCXdQKX/ohnYGRGPSroZ6I+I6tDVa4A7Zt1b8Urgk5KmqfSTfLh29FNWRsfLnNPTnvVpzcxeJI9lR0/78zhZZvRFTU0R8ROnOzYi7qZy53Vt2QdmbX+wznFfBn7odO+fttFxr0dtZsVQyE5q4L01z9updFBnv/ZdDkYnvB61mRVDHutSNzKKac+son+X9LWU4imU0fEyna5BmFkB9LRnvy51I01Mq2s2m4DXACtSi6ggxstTTE6FO6nNrBC6WkuMTU5Tnpqm1JzN7A6NXP32UOmDEJWmpSeBd6QZVBFUJ8XyetRmVgTVdWlGJ6ZY0VGQBBER52YRSNF4oj4zK5LaCftWdLRkcs5GmpjagXcDl1KpSfwr8ImIyHa8VcaGk/HGPe3ZfBFmZqeSx6JBjfw8vg0YBv442f454C+Bt6YVVBFUO4N62l2DMLP85bHsaCNXv1dFxPk12/dJyvymtawNj00CXizIzIohj0WDGunp+Lqk11U3JL2Ws5+Go/BcgzCzIumaWXZ0MrNzNnL1ew3wZUnPJNtbgMclPQxERLw6tehyNJT0QXQ7QZhZAZxsYsquBtHI1e/K1KMooOqkWD1t7qQ2s/zlsexoI8Ncn84ikKIZGZ+k1CTaW7zcqJnlryuHTmpf/eYwPFamu72EpLxDMTOjrdREqUmZ1iCcIOYwMua1IMysOCRlPmGfE8QchsfLvknOzAol62VHU00Qkq6U9LikvZJurLP/7ZIGJD2YPN5Zs+86SU8kj+vSjLOe4bFJelyDMLMCyXrZ0dSugJKagY8DlwP7gd2SdtVZGe6vI+KGWceuBm4C+qhM77EnOfZIWvHONjJeZr1XkzOzAsl60aA0axCXAHsjYl9ETAB3AFc3eOxPAvdGxGCSFO4l4+G2I2Nl3yRnZoXS3VaamScuC2kmiI3AszXb+5Oy2X5G0kOSPiNp8xkei6Ttkvol9Q8MDCxE3EAyislNTGZWIL3tLctqmOs/ANuSu7HvBW490zeIiB0R0RcRfevWrVuwwNxJbWZF09NeYuhEdlNtpJkgDgCba7Y3JWUzIuJwRIwnm39OZVqPho5N03h5ionytJuYzKxQejtaGBpbGgliN3CepHMltQLXALtqXyBpQ83mm4FvJs/vAa6QtErSKuCKpCwT1Wk23MRkZkXS215ZdnSiPJ3J+VK7AkZEWdINVC7szcDOiHhU0s1Af0TsAn5d0pupLGU6CLw9OXZQ0u9RSTIAN0fEYFqxzuaZXM2siKrN3sNjk6zpbkv9fKleASPibuDuWWUfqHn+PuB9cxy7E9iZZnxzGXYNwswKqLejck0aGitnkiDy7qQupGFP9W1mBdRbU4PIghNEHdUmpl6PYjKzAqk2MQ2dyGaoqxNEHV5u1MyK6GQTk2sQuanWINzEZGZF0jtTg3CCyE31H9+jmMysSKrXpKym23CCqOPYiUnaW5poKzXnHYqZ2Yyu1hJNchNTro6dmGRFhzuozaxYmppET3uLm5jy5ARhZkXV25HdjK5OEHU4QZhZUfW0ZTcfkxNEHcdOlJ0gzKyQejtKvg8iT0MnJul1gjCzAuptdw0iV25iMrOi6mlvcR9EXspT04yMu4nJzIqp0sTkGkQuhpLM7ARhZkXU297C8HiZqelI/VxOELMcSzKzE4SZFdHKzsq16VgGtQgniFmcIMysyFZ3tQJw5PhE6udKNUFIulLS45L2Srqxzv7fkvSYpIck/YukrTX7piQ9mDx2zT42LU4QZlZkKzuTBDGafoJIbTY6Sc3Ax4HLgf3Abkm7IuKxmpc9APRFxHFJ7wJ+H/hvyb4TEXFhWvHNxQnCzIpsdTVBHF/cTUyXAHsjYl9ETAB3AFfXviAi7ouI48nmV4BNKcbTECcIMyuyah9EFjWINBPERuDZmu39Sdlc3gF8rma7XVK/pK9IestcB0nanryuf2Bg4KwChpP/6NVqnJlZkWTZB1GIBQ8k/QLQB/x4TfHWiDgg6WXAFyQ9HBHfmX1sROwAdgD09fWd9bivwdEJetpLtJbcf29mxdPZ2kxrc9Oib2I6AGyu2d6UlH0PSW8A/hfw5ogYr5ZHxIHk7z7gi8BFKcY64/DoBGu6XHsws2KSxMrOlkXfxLQbOE/SuZJagWuA7xmNJOki4JNUksPBmvJVktqS52uBHwVqO7dTMzg6PlOFMzMrotVdrYu7iSkiypJuAO4BmoGdEfGopJuB/ojYBXwE6AbulATwTES8GXgl8ElJ01SS2IdnjX5KzeGRCTat6sziVGZm87Kys2VxJwiAiLgbuHtW2Qdqnr9hjuO+DPxQmrHNZXB0ggs2rczj1GZmDVnd1cq3XxhJ/Tzuia0RERw5PsHqbjcxmVlxrexs5ehiv5N6sRkaKzM5Fe6kNrNCW93ZypHjk6lP2OcEUWMwGRXgTmozK7L1vW1MTcfMNSstThA1Bkcro2ydIMysyNb3tAFwcHgs1fM4QdQYGK4kiLXdbTlHYmY2t/W97QAcHBo/zSvPjhNEjeePVbLxS1a05xyJmdncqjWIF4Zcg8jM80PjtDY3zcyWaGZWROtmmphcg8jM88dOsL63jaYm5R2Kmdmc2krNrOpscQ0iS88PjfGSXjcvmVnxre9pdw0iS88fG3P/g5ktCut72zjoGkQ2IsI1CDNbNDau7ODA0ROpnsMJInFoZIKxyWk2rurIOxQzs9PauqaLQyMTDI+lty6EE0TiyUOjAJy7tivnSMzMTm/bmsqs008fPn6aV86fE0TiqSRBvGxtd86RmJmd3rbkx+xTh0dTO4cTRGLfoVFamsVLV7oPwsyKb2tSg6j+uE2DE0TiW88P8bK13ZSa/U9iZsXX2Vpi48oOvvn8cGrnSPVqKOlKSY9L2ivpxjr72yT9dbL/q5K21ex7X1L+uKSfTDPOiOCBZ45y0ZaVaZ7GzGxBXbhlJQ8+czS1908tQUhqBj4OXAWcD1wr6fxZL3sHcCQiXgH8IfB/k2PPp7KG9Q8CVwJ/mrxfKh797hDHTkxy8dZVaZ3CzGzB9W1dxYGjJ9h7MJ3V5dKsQVwC7I2IfRExAdwBXD3rNVcDtybPPwP8F1UWp74auCMixiPiSWBv8n4Lbmhskvfe+Q1aS01c/spz0jiFmVkq3vTql1JqEu/+9J5UFg9KM0FsBJ6t2d6flNV9TUSUgWPAmgaPBUDSdkn9kvoHBgbOOMiethI/8JIePnbNRazyOhBmtois62njD956Aa/ZuormFOaQKy34O2YsInYAOwD6+vrOOIVK4o+uuWjB4zIzy8JbLtrIWy6q+/v5rKVZgzgAbK7Z3pSU1X2NpBKwAjjc4LFmZpaiNBPEbuA8SedKaqXS6bxr1mt2Adclz38W+EJERFJ+TTLK6VzgPOBrKcZqZmazpNbEFBFlSTcA9wDNwM6IeFTSzUB/ROwC/gL4S0l7gUEqSYTkdX8DPAaUgesjYiqtWM3M7MVU+cG+NPT19UV/f3/eYZiZLRqS9kREX719vm3YzMzqcoIwM7O6nCDMzKwuJwgzM6trSXVSSxoAnp7n4WuBQwsYzmLgz7z0LbfPC/7MZ2prRKyrt2NJJYizIal/rp78pcqfeelbbp8X/JkXkpuYzMysLicIMzOrywnipB15B5ADf+alb7l9XvBnXjDugzAzs7pcgzAzs7qcIMzMrK5lnyAkXSnpcUl7Jd2YdzxZkPSUpIclPShpSc5uKGmnpIOSHqkpWy3pXklPJH+X1CLkc3zmD0o6kHzXD0p6Y54xLjRJmyXdJ+kxSY9Kek9SvmS/61N85gX/rpd1H4SkZuDbwOVUljXdDVwbEY/lGljKJD0F9EXEkr2ZSNKPASPAbRHxqqTs94HBiPhw8mNgVUT8Tp5xLqQ5PvMHgZGI+IM8Y0uLpA3Ahoj4uqQeYA/wFuDtLNHv+hSf+W0s8He93GsQlwB7I2JfREwAdwBX5xyTLYCIuJ/KGiO1rgZuTZ7fSuV/qiVjjs+8pEXEcxHx9eT5MPBNKuvXL9nv+hSfecEt9wSxEXi2Zns/Kf1DF0wAn5e0R9L2vIPJ0DkR8Vzy/HngnDyDydANkh5KmqCWTFPLbJK2ARcBX2WZfNezPjMs8He93BPEcnVpRFwMXAVcnzRNLCvJ0rbLoX31z4CXAxcCzwH/L9doUiKpG/gs8BsRMVS7b6l+13U+84J/18s9QRwANtdsb0rKlrSIOJD8PQjcRaWpbTl4IWm/rbbjHsw5ntRFxAsRMRUR08CnWILftaQWKhfKT0fE3ybFS/q7rveZ0/iul3uC2A2cJ+lcSa1U1sTelXNMqZLUlXRsIakLuAJ45NRHLRm7gOuS59cBf59jLJmoXiQTP80S+64licra9t+MiI/W7Fqy3/VcnzmN73pZj2ICSIaC/RHQDOyMiA/lG1G6JL2MSq0BoAT81VL8zJJuBy6jMg3yC8BNwN8BfwNsoTIt/NsiYsl06s7xmS+j0uQQwFPAr9a0zS96ki4F/hV4GJhOit9PpU1+SX7Xp/jM17LA3/WyTxBmZlbfcm9iMjOzOThBmJlZXU4QZmZWlxOEmZnV5QRhZmZ1OUGYzZOklZLenTx/qaTP5B2T2ULyMFezeUrmwfnH6sypZktNKe8AzBaxDwMvl/Qg8ATwyoh4laS3U5k9tAs4D/gDoBX4RWAceGNEDEp6OfBxYB1wHPiViPhW1h/CbC5uYjKbvxuB70TEhcBvz9r3KuC/Aj8MfAg4HhEXAf8B/FLymh3Ar0XEa4D3An+aRdBmjXINwiwd9yVz9Q9LOgb8Q1L+MPDqZCbOHwHurEytA0Bb9mGazc0Jwiwd4zXPp2u2p6n8f9cEHE1qH2aF5CYms/kbBnrmc2Ayf/+Tkt4KlRk6JV2wkMGZnS0nCLN5iojDwL9LegT4yDze4ueBd0j6BvAoXu7WCsbDXM3MrC7XIMzMrC4nCDMzq8sJwszM6nKCMDOzupwgzMysLicIMzOrywnCzMzq+v+zZZTMkShxNAAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plot_pulse(L[1][1], tlist)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We solve the equation of motion for this guess field, storing the expectation\n", "values for the population in the bipartite levels:\n" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "execution": { "iopub.execute_input": "2021-11-07T04:57:22.161748Z", "iopub.status.busy": "2021-11-07T04:57:22.161460Z", "iopub.status.idle": "2021-11-07T04:57:22.163070Z", "shell.execute_reply": "2021-11-07T04:57:22.162703Z" } }, "outputs": [], "source": [ "psi00 = qutip.Qobj(np.kron(np.array([1,0]), np.array([1,0])))\n", "psi01 = qutip.Qobj(np.kron(np.array([1,0]), np.array([0,1])))\n", "psi10 = qutip.Qobj(np.kron(np.array([0,1]), np.array([1,0])))\n", "psi11 = qutip.Qobj(np.kron(np.array([0,1]), np.array([0,1])))\n", "proj_00 = qutip.ket2dm(psi00)\n", "proj_01 = qutip.ket2dm(psi01)\n", "proj_10 = qutip.ket2dm(psi10)\n", "proj_11 = qutip.ket2dm(psi11)" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "ExecuteTime": { "end_time": "2019-02-12T04:47:26.872504Z", "start_time": "2019-02-12T04:47:26.775372Z" }, "attributes": { "classes": [], "id": "", "n": "15" }, "execution": { "iopub.execute_input": "2021-11-07T04:57:22.200282Z", "iopub.status.busy": "2021-11-07T04:57:22.199981Z", "iopub.status.idle": "2021-11-07T04:57:22.201268Z", "shell.execute_reply": "2021-11-07T04:57:22.201498Z" } }, "outputs": [], "source": [ "guess_dynamics = objectives[0].mesolve(\n", " tlist, e_ops=[proj_00, proj_01, proj_10, proj_11]\n", ")" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "ExecuteTime": { "end_time": "2019-02-12T04:47:27.116092Z", "start_time": "2019-02-12T04:47:26.874340Z" }, "attributes": { "classes": [], "id": "", "n": "16" }, "execution": { "iopub.execute_input": "2021-11-07T04:57:22.214850Z", "iopub.status.busy": "2021-11-07T04:57:22.212983Z", "iopub.status.idle": "2021-11-07T04:57:22.323461Z", "shell.execute_reply": "2021-11-07T04:57:22.323150Z" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAEGCAYAAAB/+QKOAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAAA/PklEQVR4nO3dd3gU5fbA8e8hJITee4CEKkhPQARFFJGmdBEQFCzYsGC76rWg91quYi+IBZZeRaoioqhUIYHQOwSSUEJICAnpyfv7YxZ+EQIEyGayu+fzPPuwszO7e4ZNcnbecl4xxqCUUkqdr4jdASillCqcNEEopZTKlSYIpZRSudIEoZRSKleaIJRSSuWqqN0B5JdKlSqZwMBAu8NQSim3EhYWFmuMqZzbPo9JEIGBgYSGhtodhlJKuRUROXSxfdrEpJRSKleaIJRSSuVKE4RSSqlcaYJQSimVK00QSimlcqUJQimlVK40QSillMqVSxOEiHQTkd0isk9EXsplfx0R+U1EtojIHyISkGNfloiEO28LL/deJ0+eJDw8HICsrCwcDgdbtmwBICMjA4fDwbZt2wBITU3F4XCwc+dOyEgheelbOD79D7sXfAShE0natADHN1+wb2sYGENCQgIOh4MDBw4AEB8fj8PhICIiAoDY2FgcDgeRkZEAxMTE4HA4iI6OBuDYsWM4HA6OHTsGQHR0NA6Hg5iYGAAiIyNxOBzExsYCEBERgcPhID4+HoADBw7gcDhISEgAYN++fTgcDpKSkgDYvXs3DoeD5ORkAHbu3InD4SA1NRWAbdu24XA4yMjIAGDLli04HA6ysrIACA8Px+FwnPu/DAsLY/Lkyee2N2zYwLRp085tr1u3jhkzZpzbXrNmDbNnzz63vWrVKubOnXtu+88//2TevHnntlesWMGCBQvObS9fvpxFixad2162bBlLliw5t7106VKWLl16bnvJkiUsW7bs3PaiRYtYvnz5ue0FCxawYsWKc9vz5s3jzz//PLc9d+5cVq1adW579uzZrFmz5tz2jBkzWLdu3bntadOmsWHDhnPbkydPJiws7Ny2w+G4up89IDk5GYfDwe7duwFISkrC4XCwb98+gEL3s7d7zx6+/X4Cmw8eY+PheBavDOOzcd+yYlskYYfi+HVNGOO/m8CJhESMMfqz5wY/e5fisolyIuIDfAl0AaKADSKy0BizI8dhY4HJxphJInIb8C4wzLkvxRjT0lXxnZOWCH+PA9MT4sNg0wGgBNATfvgWlsRDhZaQ2AL2pEDp28An10mHSnmM2MQ0Nhw5xpad0STEJPHQpFD2ncqiRGoszYrG89H4daTgS60ip7i+6Gm+nBpGGr7UKRJP46LxjH33d/z8itGsZCKB2ad5e8kOGtUoT8kzZ8jK1jVo3IW4asEgEbkRGGOM6ercfhnAGPNujmO2A92MMZEiIkCCMaaMc1+SMaZUXt8vJCTEXPVMamMgKwMykiH9DCQdg9NHICEKYvfA8R0QsxPSrG9RlKgIddpDw27QsDuUrHh176tUIREVn8zKvbGs3HuCsEPxHD+dBoAI1ChbnDoVS1CnYkmqlilGxZJ+lC/pR6liRSlapAg+RYQiAqmZ2ZxJyyQpLZNTyekcTUjl6KlUjiSksD8miTPp1lVDEYHrqpWhTWB5QgIr0K5uRSqXLmbn6Xs1EQkzxoTkts+VpTZqApE5tqOAG847ZjPQD/gU6AuUFpGKxpiTgL+IhAKZwHvGmPkui1QEivpZt+LloGxNqBn8z2OMgbgDcGiNdTv4J+xcBFIEareHFvfA9f2gWJ5zmlK2Mcaw4+hpFm0+yrLtxzgQewaA6mX9aVe3Ii0CytGiVlmaVC9LcT+fa36/7GxD9KkUdh1LZFt0AqGH4pgdGsWktVaVhxYBZbntuqp0blyF62uUwfq+qOzmyiuIAVhXBw85t4cBNxhjRuU4pgbwBRAE/AX0B5oaY06JSE1jTLSI1AV+BzobY/af9x4jgZEAtWvXDj506KIlRfKfMXA0HHYtge3z4eRe8CsFTftD24ehWrOCi0WpPDqWkMrs0Ejmh0dz4MQZfIoI7etVpFOjKnRsUIn6VUoV2B/njKxsdhw5zcq9J/htVwzhkacwBmpVKE7vFjXp06oG9auULpBYvNmlriBsbWI67/hSwC5jTEAu+xzAYmPM3Aue6HRNTUzXyhiIXA8bJ8P2eVZTVb3OcNMzEHizdYWilE2MMazed5Kp6w7x687jZGUb2tWtwF0tatC9aXUqlPSzO0QAYpPSWLErhoWbj7B6XyzZBq6vUYZBbWrRt3UApYp5TG3RQsWuBFEU2AN0BqKBDcAQY8z2HMdUAuKMMdki8jaQZYx5XUTKA8nGmDTnMWuB3ud1cP+DrQkip5R42PA9/P01nDkBAW2hy5tWn4VSBSgr2/DT1qN8uWIfu44lUqGkH3eHBHBv2zrUrljC7vAuKSYxlUWbjzJvYxTbj5ympJ8P/VoHMOzGOjSsqlcV+cmWBOF84x7AJ4APMMEY87aIvAWEGmMWOpuh3gUMVhPTE86k0B4YD2RjDcX9xBjz/aXeq9AkiLMyUiB8Gvw1FhKPWh3and+Aqk3sjkx5uMysbH7cFM24P/ZzIPYM9SqX5NFb6nFXixr4+157f0JBMsYQHnmKKesOsXjLUdIzs7m5QSUe71SfdnUraF9FPrAtQRSkQpcgzkpPtq4mVn0C6YnQ5iG47VXwL2t3ZMrDGGNYsTuG937exZ7jSTSpXoZRt9Wn2/XVKFLE/f+Qxp1JZ8b6w0xcHUFsUhqtapfj8U716XxdFY84P7togigMkuNgxTuw4TsoVQW6vWuNetJvQCofbItO4O0lO1l74CRBlUryYtdGdGtazSO/YadmZDEnLIrxf+4nKj6FJtXL8EK3RnRqWNkjz9fVNEEUJtEbYfFoawRU/duh1+dQpobdUSk3lZSWyYfLdjNpTQTlSvjxdOcGDLmhNr4+nl9FJzMrm4Wbj/DJ8r0cjkumbWAFXuzWiJDACnaH5lY0QRQ22VnWlcTyMeDjCz0/gmYD7I5KuRFjDL9sP8aYhTs4npjK0Bvq8HzXRpQt7mt3aAUuPTObWRsO89nv+ziRmMbtjavwSo/G1K2sc5LyQhNEYXVyP/z4CERtsJqben4IJfTbj7q0uDPpvDJvK0u3H6Nx9TK807cprWqXtzss2yWnZzJxdQTj/thPWmYWD9wUxJO3NdDhsZehCaIwy8qENZ/CinehdHUY6LhwFrdSTr/vOs6Lc7dyOiWDZ+9oyEM3BVHUC5qTrkRMYirvL93N3LAoKpcuxr+6XUe/VjW1I/siNEG4g6gwmDPcGhLb9R1rNrZ2uCmn5PRM/rN4JzPWH+a6aqX5+J6WNK5exu6wCrVNh+MZs2gHmyNPEVKnPO/2a0YDnUNxAU0Q7iI5DuY/BnuWwvV9odcXWttJsS8mkUenbmT/iSRGdqzLs10aUqyoe81nsEt2tmHuxije+WknZ9IyeeLW+jzWqZ7+/+WgCcKdZGdbTU6/vQVVmsDgGVCutt1RKZssCI/m5XlbKeHnw6eDWtGhfiW7Q3JLsUlpvLVoBws3H6F+lVL8r38zgutofx9cOkFo42VhU6QI3DQa7p0LpyLhm1vh8LrLP095lLTMLF6bv42nZ4ZzfY0yLHnqZk0O16BSqWJ8NrgVE4e3ISU9iwFfr+XNRdtJzciyO7RCTRNEYVW/Mzz8mzXjetJdsGna5Z+jPMLJpDSGfvc3U9Yd4pGOdZn+cDuqlvG3OyyPcOt1VVg2uiP3tavDxNUR9PxsJZsjT9kdVqGlCaIwq9QAHloOtW+EBY9bM7E9pElQ5W73sUR6f7maLVEJfDa4FS/3aOwVk94KUsliRXmzd1OmPngDyelZ9Bu3ho9/3UNGVrbdoRU6+pNX2JWoAEN/gFZD4c//waKnraGxyuOs2BVD/3FrSMvMZtYjN9Krhc6wd6WbGlRi6TMd6d2iBp/+tpd+X61hX0yi3WEVKpog3IGPrzWiqeMLsHESzB5mFQFUHmPqukM8OGkDdSqWYOGoDrSsVc7ukLxC2eK+fHRPS8bd25qo+GTu/HwVszdE4imDd66VJgh3IWJVge0xFnb/DFP6WMNilVszxvDxr3t4df42bm1UhTmP3kj1ssXtDsvrdG9WnV+e6Ujr2uV58YctPD0znMTUDLvDsp0mCHfT9mG42wFHNoHjTkg6YXdE6iplZRtenb+NT3/by4DgAMYPC6aEn5aFsEuVMv5MefAGnr+jIUu2HqXnZ6vYEnXK7rBspQnCHV3fB4bMhrgD4OgBp4/aHZG6QqkZWYyavpFpfx/m0Vvq8cGA5loyoxDwKSKMuq0Bs0a2IzMrm/7j1vDdygNkZ3tnk5P+RLqrerdandenj8DE7tacCeUWUtKzeHhyKD9vO8arPRvzUvfrdB2DQiYksAI/PX0ztzaqwn+X7GTklDASUryvyUkThDsL7ADD5lt9ERN7WFcUqlBLTs/kAccGVu2L5YMBzXno5rp2h6QuolwJP8YPC+aNu5rwx+4Yen+xip1HT9sdVoHSBOHuarWB+xday5lO7KlJohBLSstk+MQN/H3wJB8PbMndIbXsDkldhogwokMQM0e2Izk9i75frebHTVF2h1VgNEF4ghot4f7FkJkCk3rBqcN2R6TOk5iawfAJ6wk7FM+ng1rRp1VNu0NSVyAksAKLn7qJ5gHlGD1rM28s2EZ6pudPrNME4SmqNbWam9JOW6U5EqLtjkg5JaVlct+E9YRHnuKLwa24SyfAuaUqpf2Z9tANPHxzEJPWHmLQN2s5mpBid1gupQnCk9RoCUN/hDMnYXIvSDxud0ReLzUji4cmbWBLVAJfDGlN92bV7Q5JXQNfnyL8u2cTvhzSml3HErnr81WERnjufCRNEJ4mIBiGzrWGvk7uBWdi7Y7Ia6VnZvPY1DD+PhjHRwNb0K1pNbtDUvmkZ/PqLHiiA6WKFWXwt+uYtcEzm3U1QXii2u1gyEyIj7BmXKcm2B2R18nKNoyeFc6K3Sd4u08zerfUPgdP06BqaRY8cRPt6lbkXz9sZczC7WR6WME/TRCeKqgjDJoGMbtgxmDI8Oy20sIkO9vw0g9bWLL1KP/u0ZghN+iCT56qbAlfJg5vw0M3BeFYE8H9E9cTfybd7rDyjSYIT1b/duj7NRxaA3Mf1CqwBeSdn3YyJyyKpzs34OGOOs/B0xX1KcKrdzZh7N0t2HAwnt5frmbPcc+oCqsJwtM1GwDd34fdS2Dx07qehIt9t/IA3606yPD2gTxzewO7w1EFaEBwADMfaUdKRhZ9v1zNrzvcf5CIJghvcMNIuOVfsGkqLH/D7mg81qLNR/jvkp30aFaN1+9souUzvFDr2uVZNOom6lUpxcgpoXy5Yp9blw7XBOEtOr0MbR6C1Z/C6s/sjsbjrDtwkudmb6ZNYHk+GtiSIkU0OXiramX9me1c8OmDX3bz/JwtbjupTmsLewsRq6kp+ST8+hqUrgbNB9odlUfYczyRkZNDqV2xBN/eF4K/r4/dISmb+fv68Mk9LalbqRQfL99DZHwy44cGU76kn92hXRG9gvAmRXyg73gIvBnmPw4HV9odkds7lpDK8Anr8ff1wTGiDeVKuNcfAOU6IsLTtzfgs8GtCI88Rd+vVrP/RJLdYV0RTRDepmgxuGcKVKgLs+61hsGqq5KcnslDkzeQkJLBxBFtCChfwu6QVCHUq0UNZjzcjsTUTPp+uZo1+9xn8qomCG9UvDzcOwd8isG0u7Ukx1XIzjY8N3sz24+c5vMhrbi+Rlm7Q1KFWHCd8sx/ogPVyvpz34T1zFzvHjOvNUF4q/J1YMgsSI6F6QMhzb0ufe32yfI9/LztGK90b8xt11W1OxzlBmpVKMHcx9rTvn4lXpq3lXd+2klWIV+pThOEN6vZGgZMhGNb4AedSJdXC8Kj+ez3fQwMCeChm4PsDke5kTL+vky4P4T7bqzDN38d4NGpYSSnF97fO00Q3q5RN+jxAexZCj+/qBPpLiM88hQvzN1C28AK/LdPM53roK5YUZ8ivNW7KWPuasJvO49z99drOZaQandYuXJpghCRbiKyW0T2ichLueyvIyK/icgWEflDRAJy7LtfRPY6b/e7Mk6v1+YhaP8UhH4Pa7+0O5pC62hCCg9PDqVK6WKMG9oav6L6/UpdveEdgvj+/jZExJ6h95er2BpV+IpquuwnXER8gC+B7kATYLCINDnvsLHAZGNMc+At4F3ncysAbwA3AG2BN0SkvKtiVcDtb0Lju6w5Ent+sTuaQic1I4tHp4SRkp7F9/e3oWKpYnaHpDzArddV4YfH21O0SBEGjl/L0m1Hr/xFkmLgSHi+xwauvYJoC+wzxhwwxqQDM4He5x3TBPjdeX9Fjv1dgV+NMXHGmHjgV6CbC2NVRYpYcySqNrUK+x3fYXdEhcqYhdvZHJXAhwNb0KhaabvDUR7kumplmP9EB66rXppHp27kqz/yWJ4jOxvWfgWfB8O8kS5pHnZlgqgJRObYjnI+ltNmoJ/zfl+gtIhUzONzEZGRIhIqIqEnTpzIt8C9ll9JGDwT/ErAjHt0sSGnGesPM3NDJKNurU/X63XRH5X/KpcuxoyH23FXixq8v9Qqz5GWmXXxJ5yJhWkD4JeXodYNMGi6VS0hn9ndiPo8cIuIbAJuAaKBS/yv/JMx5htjTIgxJqRy5cquitG7lK0Jg2ZYl62zhkJmmt0R2So88hRvLNhOx4aVGd2lod3hKA/m7+vDZ4Na8sztDfhhYxTDvltPXG5rS5zcD9/eBhGr4M6PrTlNleq7JCZXJohooFaO7QDnY+cYY44YY/oZY1oB/3Y+diovz1UuFBAMfb6Cw2th0TNeO7IpNimNx6aGUbVsMT4b1BIfLcCnXExEeOb2hlZ5jqhT9PlyNfticqwtcXQzTOgKaYkw4mcIecAlVw5nuTJBbAAaiEiQiPgBg4CFOQ8QkUoicjaGl4EJzvu/AHeISHln5/QdzsdUQWnaH255CTZPtyrAepnMrGxGTd9I3Jl0xt0brDWWVIHq1aIGM0e2Izk9k75frWHl3hMQHQaOO60KCA/8Yn2RczGXJQhjTCYwCusP+05gtjFmu4i8JSK9nId1AnaLyB6gKvC287lxwH+wkswG4C3nY6og3fIvuL4vLB8Du5bYHU2B+t/SXaw7EMe7/ZrRtKaW0VAFr3VtqzxHzXLFedcxlzRHH6tMzoO/QOWCae4Ud17MIqeQkBATGhpqdxieJz0ZHD3gxB7rB7NaM7sjcrml247x6NQw7ruxDm/1bmp3OMrLnTmyg8zvunMmqwizm37DqH6dKeqTf9/tRSTMGBOS2z67O6lVYedXwuq09i8DM4bAmZN2R+RSkXHJvDB3My0CyvJqz/On7ShVwOIOUnJGP8oU92V+s6/4JCydhyaHcjo1o0DeXhOEurwy1eGeaZB0HObcD1kF88NZ0NIzrX4HgC+G6ExpZbOEKJjcCzJTkfsW8PiA7rzTtxmr9sbS/ZOVrNnv+mHo+hug8iYgGO76FCJWwi//tjsal3j3551sjkrggwEtqFVB13ZQNko8DpN7Q8opGPYjVL0egCE31GbWIzfiV7QIQ779m9GzwomIPeOyMDRBqLxrORjaPQHrx8PGyXZHk69+2X6MiasjGNEhkG5NdTKcslFyHEzpA6ePWHMcarT6x+7gOuX56ambefSWevy87Si3fvgHj00Nc0kouia1ujJd3oKY7bD4Wah8HdRqa3dE1ywyLpkX5lj9Di93b2x3OMqbpZ6GKX2tyXD3zoba7XI9rLifDy91v44HOgQy9e/DLpurpFcQ6sr4FLXWkChb05ppffqI3RFdk7P9Dgbtd1A2y0iFmUPg+DYYOBnqdrrsU6qU8efZLg159o5GLglJfxvUlStRwRrZlJYEM++1frDd1Hs/73L2OzTXfgdln6xMa9GuiJXQZ5y1TkshoAlCXZ2qTaDfeDiyERaPdstyHL/vOs6E1QcZ3j6Qbk2r2x2O8lbGwOJnYNdi6PY/aD7Q7ojO0QShrl7ju/6/HMe6cXZHc0ViElN5Yc4WGlcvw8s9rrM7HOXNlo+BTVOg44vQ7lG7o/kH7aRW1+aWf1ltpstehSqNod6tdkd0WdnZhufnbCEpLZOZg1pSrKiP3SEpb7X6U1j9CYQ8CLe+Ync0F9ArCHVtihSBvl9DpYYwZzjEHbA7osuauCaCv/ac4NU7m9Cgqi7+o2yyaSr8+jpc389aF74Qrm+uCUJdu2KlYfB06/7Me63O60Jqx5HT/O/nXdzeuCpDb6htdzjKW+1cDAufhHq3WSs5FimcV7GaIFT+qFAX7p4IJ3bBj49YyyEWMqkZWTw9cxNlS/jyv/7NkEL4jU15gYMrYe4DUKM1DJwCRQtvKXlNECr/1LsNuvzHGo3x1wd2R3OBt5fsZG9MEh8NbEHFUsXsDkd5oyPhMGMwVAiyZkkXK2V3RJekCULlrxufgOb3wB/vFKo1JJbvOM6UdYd46KYgbm6gy9MqG8Tug6n9oXg5GDrPmk9UyGmCUPlLxCrqV6MVzBsJMTvtjoiY06m8+MMWmlQvwwvdXDPjVKlLOn3EKqEBMGy+VYnADWiCUPnPt7hVHty3hFU6ICXetlCMMTw/dwvJ6Zl8NliHtCobJMdZySElHobOhUr17Y4ozzRBKNcoWxPumQKnIq0OuaxMW8KY+vdh/tpzgn/3aEz9KjqkVRWw9DMwfSDEHYTBMy6ozFrYaYJQrlO7HfQcC/t/h9/GFPjbH4w9wztLdtKxYWWGtqtT4O+vvFxmOswaBtFhMGACBN1sd0RXTGdSK9cKHg7HtsKaz6Fa8wKrM5OZlc1zs8Px9RHe799ch7SqgpWdDfMfhf2/Qa8voPGddkd0VfQKQrlet/egTgdrYtCRTQXyluP/OsDGw6f4T5+mVCvrXyDvqRRgFd9b+i/Y9gPcPgZaD7M7oqumCUK5no8v3D0JSla2Zlonxbj07bYfSeCT5Xvo2bw6vVrUcOl7KXWBv8bC+m/gxlHQ4Rm7o7kmeU4QIuIjIjVEpPbZmysDUx6mVGUYNM0a0TFrmNU+6wJpmVk8O2sz5Ur48d/eTbVpSRWs0Amw4r/QYrA1adTNf/7ylCBE5EngOPArsMR5W+zCuJQnqt4Cen8Bkevg5xdd8hYf/bqH3ccTeb9/c8qXLLwlDJQH2j7fWoq3QVfo9blVyNLN5bWT+mmgkTHmpCuDUV6g2QCr03r1J1CtGbR5MN9eekNEHN/8dYDBbWtz63VV8u11lbqsA3/CvIetNdrvdljNqh4grykuEkhwZSDKi3R+Hep3sa4iDq3Jl5dMSsvk2dnh1Cpfgld7Ns6X11QqT45ssiaEVqwPQ2aBn+csXZvXBHEA+ENEXhaRZ8/eXBmY8mBFfKD/d1A+0OqPOBV5zS/59pKdRMWnMPbuFpQspqO3VQE5uR+mDoDiFWDoD1C8vN0R5au8JojDWP0PfkDpHDelrk7xcjBoBmSlw6x7IT35ql9qxa4YZqw/zMib69I2qPAXQFMe4vRRmNLHuj/sRyjjeSPm8vRVyxjzJoCIlHJuF94VYZT7qNwQ+n0LMwZZcyT6f3fFoz4SkjN4ad4WGlUtzeguDV0UqFLnSYmHqf2sUXnDF7tVfaUrkddRTE1FZBOwHdguImEicr1rQ1NeoVE3uO1V2DYX1nx2xU//z5IdxCalM/buFvj7aiE+VQDSk2H6IDi5DwZNd7v6Slcir01M3wDPGmPqGGPqAM8B37ouLOVVbn4OmvSB5WNg7/I8P23FrhjmhkXx2C31aBZQ1mXhKXVOVgbMHQGRf1tXv3VvsTsil8prgihpjFlxdsMY8wdQ0iURKe8jAn2+gipNrMqvJ/df9ikJKRm8PG8rDauW4snOnnl5rwoZY2DhU7BnKfT8EK7vY3dELpfnUUwi8pqIBDpvr2KNbFIqf/iVtC7Xi/hYSzKmnr7k4W8v2cGJpDTG3t1C13hQBePX12HzdLj13/k6f6cwy2uCeACoDMxz3io7H1Mq/5SvAwMnQdz+S64h8cfuGGaHRvFIx7o0DyhXsDEq77T6U6uPrO1I6PiC3dEUmDwlCGNMvDHmKWNMa+ftaWOMfcuEKc8V1BF6jIV9v8Kyf1+w+3Sq1bTUoEopnr69gQ0BKq8T5rCuHq7vB93+5/b1la7EJYe5isgnxphnRGQRYM7fb4zp5bLIlPcKGQGxe2Hdl9bs1LYPn9v1zpKdHD+dyrjHO2jTknK9bT/Aomesmf99x3tEfaUrcbl5EFOc/469mhcXkW7Ap4AP8J0x5r3z9tcGJgHlnMe8ZIz5SUQCgZ3Abueh64wxj15NDMpN3fEfq6np539BhSCofzt/7TnBzA2RPHpLPVrWKmd3hMrT7VkG80ZC7Rth4GQo6n3FHy+ZDo0xYc67LY0xf+a8AS0v9VwR8QG+BLoDTYDBItLkvMNeBWYbY1oBg4Cvcuzbb4xp6bxpcvA2Z8txVGkMc0ZwJmobL/2whXqVS/KMNi0pV4tYDbOHQdXrYchMj6qvdCXyer10fy6PDb/Mc9oC+4wxB4wx6cBMoPd5xxigjPN+WeBIHuNR3qBYaRg8E4r6kzZ5AOmnY/hAJ8QpVzuyCabfA+Vqw9B54O+9c2wumSBEZLCz/yFIRBbmuK0A4i7z2jWxqsCeFeV8LKcxwFARiQJ+Ap7MsS9IRDaJyJ8ikutq3yIyUkRCRST0xIkTlwlHuaVytQi/6WtKpMXyY8WvaF3DO7/JqQISswum9LOK7g2bDyUr2R2RrS7XB7EGOApUAj7M8XgisCUf3n8w4DDGfCgiNwJTRKSp8z1rG2NOikgwMF9ErjfG/GNwvDHmG6xZ3oSEhFzQia7cX1JaJk/8KdxR/BneSPrAqtnUd7xXjSRRBSQ+wiq+5+ML982Hsud/n/U+l0wQxphDwCHgxqt47WigVo7tAOdjOT0IdHO+11oR8QcqGWNigDTn42Eish9oCIReRRzKjb37006OJKRw56NPQEQxaznHig3gFu8Zi64KQOIxmNwbMlJgxE9QsZ7dERUKeS3W105ENohIkoiki0iWiFx6qitsABqISJCI+GF1Qi8875jDQGfnezQG/IETIlLZ2cmNiNQFGqAzt73O6n2xTPv7MA/dFERwnfLQ8XloPshKEptn2h2e8hTJcTC5DySdsNZ0qKp1SM/K68oqX2D9gZ8DhAD3YX2jvyhjTKaIjAJ+wRrCOsEYs11E3gJCjTELcRb9E5HRWB3Ww40xRkQ6Am+JSAaQDTxqjLlcn4fyIElpmbw4dwt1K5XkuTsaWQ+KWGv9Jh6BBU9AqapQ71Z7A1XuLeWU1awUdwDunQ0BIXZHVKiIMZdvuheRUGNMiIhsMcY0dz62yTk8tVAICQkxoaHaAuUpXpu/jal/H2LOIzcSEnjeIkCpCTChO5w6bDUHVG9uT5DKvaWetpLD0S1WHbCGd9gdkS1EJMwYk2tmzOsw12RnM1G4iLzv/MbvXVMKVYFZsz+WKesO8UCHoAuTA1jDDu+dA/5lYNrd+bJkqfIyaUkwbQAc3WzV//LS5HA5ef0jPwyrmWgUcAar87m/q4JS3utMWib/+mELgRVL8PzZpqXclK0J9861OhWn9rdW+FIqL9KTrVUMo0Kh//dwXU+7Iyq08lqs75AxJsUYc9oY86Yx5lljzD5XB6e8z/tLdxEVn8L7A1pQ3O8yE+KqNoFB0yD+IMwYAhmpBROkcl8ZqTBzMESssoZLe8GaDtficsX6tpJLkb6zzvZHKJUf1h04yaS1hxjRIZC2Qbk0LeUm6GboMw5+eBB+fAQGTPS6gmoqjzLTYNZQOPCntUBV87vtjqjQu9wopjsLJArl9ZLTrVFLdSqW4IWul2hayk2zAXD6CPz6GvxU0VrtSyfSqZyyMmDOCKuM/F2fQsshdkfkFvIyUU4pl3t/6W4OxyUza2Q7SvjldfR1Du2fhDMnrEVdipeHzq/lf5DKPWWmWclh9xJrrZHg4XZH5Dby9JsoIon8f1OTH+ALnDHGlLn4s5TKmw0RcUxaG8H9N9bhhroVr+5FRKDLW9YQ2JVjoXg5K2ko75aRalVl3bvMSg451hZRl5enBGGMKX32vogIVlXWdq4KSnmPlPQsXpy7hYDyxXmx23XX9mIicOfHVpJY9qo1HLb1ffkTqHI/GSkwcwjs/x3u/MRaiEpdkSvuzTOW+UDX/A9HeZsPl+3mYOwZ/te/OSWLXUXT0vmK+EC/b6FeZ1j0NGyff+2vqdxP+hmYPhD2r4DeX2pyuEp5bWLql2OzCFa5DR1TqK5J2KF4vl99kHtvqE37evlYVrmoH9wzxSrb/MND1roS9Tvn3+urwi0tyUoOh9dC36+hxSC7I3Jbeb2CuCvHrStWue/zF/9RKs9SM7J4Ye5mapQtzss9Guf/G/iVhCGzoPJ1MPNea2ij8nypp62Jk4fXWVeSmhyuSV77IPT6TOWrj5fv4cCJM0x5sC2l8qNpKTfFy1l1/R13WiuE3TvHmjehPNOZWCs5HN8GAyboJLh8kNdy33VFZJGInBCRGBFZ4CzDrdQVC488xbd/HWBQm1rc3KCya9+sZCW4fxGUr2M1O0Ssdu37KXskRMGEbnBil1V4T5NDvshrE9N0YDZQHaiBVfZ7hquCUp4rLTOLF+ZspmoZf17p6YKmpdyUqmwlibIBVnG/Q2sL5n1VwYjdC993haTjMOxHaKjjZ/JLXhNECWPMFGNMpvM2FWtxH6WuyGe/7WVvTBLv9GtGGX/fgnvjUlWsJFGmulXF8/DfBffeynWOhFtXDllpMHwx1Glvd0QeJa8J4mcReUlEAkWkjoi8CPwkIhVEJI9Fc5S32xqVwNd/HmBAcAC3NqpS8AGUrgb3L7YWGprazyrYptxXxGqrf8m3OIxYCtVb2B2Rx8nrgkEHL7HbGGNs74/QBYMKt/TMbHp9sYq4M+n8OvoWypYowKuH850+Yq0/fOow3DMNGtxuXyzq6myfD/NGWn1Lw+Zb5d/VVbnmBYOMMUGXuNmeHFTh98WKfew6lsg7fZvZmxwAytSAET9DpYbWugA6mc59GANrvoA5w6FGS+vKQZODy+R1FJOviDwlInOdt1EiYvNvuXIX248k8NWKffRtVZPbm1S1OxzL2dFNNVvD3BEQPt3uiNTlZGfBzy/Csn9Dk15w3wIoeZW1u1Se5LUPYhwQDHzlvAU7H1PqkjKysnlhzhbKlfDjjbua2B3OPxUvZ416CeoI8x+Dv8fbHZG6mPRkmDUM1n8DN46CAQ6r70G5VF5nKLUxxuTsAfpdRDa7IiDlWcb9sZ8dR0/z9dBgypXwszucC/mVhMGzYO4D1rfTxKNw2+u66FBhknjMKroXvRG6vw83PGJ3RF4jr78FWSJS7+yGc5JclmtCUp5i17HTfP77Xu5qUYNuTavZHc7F+frDwMkQ8gCs+hh+HGmtIaDsFx0G39wKMTut5WU1ORSovF5BvACsEJEDzu1AQMtvqIvKzMrmxblbKOPvy5u9rrc7nMvzKQo9P4KyteC3N61vrfdMtZqhlD22zIaFT0LJKvDgMqjWzO6IvE5eryBWA+OBbCDOeV+no6qLGvfHfrZEJfBW76ZUKFkIm5ZyIwI3P2sVeTu8zpqAdSrS7qi8T3YW/Po6zHsYaobAyBWaHGyS1wQxGQgC/gN8DtQFprgqKOXeth9J4DNn01LP5tXtDufKNR8IQ3+A09Hw7a1amqMgJcdZhRVXfwohD1rFFkvmYyl4dUXymiCaGmMeMsascN4eBtyg3UAVtPTMbJ6bvZlyJfx4yx2ali6m7i3w0G/WqnST7oLQCXZH5PmiQmF8Rzj4p7Uy4J0fgY+OprdTXhPERhE5t8SoiNwA6LRldYHPftvLrmOJvNu3GeXdpWnpYio3tJJE3U6weLR1y0y3OyrPYwysG2c16YnAA79YAwaU7fLaSR0MrBGRw87t2sBuEdmKVWqjuUuiU25l0+F4vvpjH3cHBxSeCXHXqng5a+Gh396C1Z9Yo2n6f6+zd/NLyilYOAp2LoJGPaDPV1C8vN1RKae8JohuLo1Cub3UjCyem7OZamX8ea2wTYi7VkV8oMubVkfpwqfg65ug73hoeIfdkbm3gyvhx0etuSd3/NeaACdid1Qqh7yuKHfI1YEo9zb2l90cOHGGqQ/eULBlvAtSswFWxdA5w2H63dD+Kej8uraTX6nMNPj9P1ZNpQp1rSGsAbnWilM20+mi6pqtPxjH96sPMqxdHW5q4OEjTio1gIeWW23kaz6Did3h5H67o3Ifx7fDt7fBms8heDg8ulKTQyGmCUJdkzNpmTw/ZzO1ypfgpe7X2R1OwfAtbo2yGTARYvfAuA5WHafsbLsjK7wyUuH3t2H8LdbKb0Nmw12fWKVOVKGlCUJdk3d/3klkfDJj725ByWJ57dLyEE37wePrIPAmq47T5F4Qr62xF4hYbfXb/PX+//+f6bKgbkEThLpqK/eeYOq6wzzYIYi2QV66sGCZGnDvHLjrMziyCb660Wo+ycqwOzL7nYm1SmU4elhLgg79Afp9oxPf3IgmCHVVEpIzeHHuFupVLsnzXRvZHY69RCD4fnhsDQR2gGWvWhO+vHUGdma61QH9WWvYNM0anfT4OqivK/e5G5cmCBHpJiK7RWSfiLyUy/7aIrJCRDaJyBYR6ZFj38vO5+0WEb0eLWReW7CNmMQ0PhrYEn9fH7vDKRzK17Ha1u+ZBqmnYWI3axhnQpTdkRUMY2D3zzDuRmtRn1pt4PG10PVt7WtwUy5rNBYRH+BLoAsQBWwQkYXGmB05DnsVmG2MGSciTYCfgEDn/UFY5TxqAMtFpKExRkuMFwILwqNZuPkIz3VpSIta5ewOp3ARgcZ3Qr1b4a8PYO2XsG2eVab65mc9cxKYMXDgD1jxNkRtgIoNYMgcnSfiAVx5BdEW2GeMOWCMSQdmAr3PO8YAZZz3ywJHnPd7AzONMWnGmIPAPufrKZtFxSfz6vxtBNcpz2Od6l3+Cd7KryTcPgaeDLM6Ztd8Dp+2gL/GQmqC3dHlD2OsyW6OnjClD5w+Cnd+YjW1aXLwCK4cdlITyFkrOQq44bxjxgDLRORJoCRwtpGyJrDuvOdeUNtAREYCIwFq166dL0Gri8vKNjw3ezPZ2YaPB7akqI92YV1WudrQ92urHf63t6wJYqs/hTYPQrvHoVQVuyO8clkZsGMBrP3C6pgvVQ26f2D1wxQtZnd0Kh/ZPS5xMOAwxnwoIjcCU0SkaV6fbIz5BvgGICQkxLgoRuX07coD/H0wjg8GNKd2xRJ2h+NeqjWFe2fDkXBr1bpVn8Dar6zZ2cEjrMlihb3MxOkjsHkGbJgAp6OspqQ7P4YWg3V9aA/lygQRDdTKsR3gfCynB3HWeTLGrBURf6BSHp+rCtC26AQ+XLab7k2rMSA4wO5w3FeNljBwkjX7es3nsHUOhE+Dqs2sb+BN+kCpynZH+f8yUmHvL7BpKuxbDiYbgjpapbjrd9G1uz2cGOOaL94iUhTYA3TG+uO+ARhijNme45ifgVnGGIeINAZ+w2pKagJMx+p3qOF8vMGlOqlDQkJMaKhWIHeF1Iws7vx8FadTMvjlmY7uX8a7MElLtJLEhglwfCtIEQi8Ga7vC426Q2kb1vJOPQ37frUqrO5ZBhlnoHQNaDnEulXUvidPIiJhxphc65247ArCGJMpIqOAXwAfYIIxZruIvAWEGmMWAs8B34rIaKwO6+HGyljbRWQ2sAPIBJ7QEUz2ee/nXeyLSWLyA201OeS3YqWtuk7BI+D4Ntg+H7bPg8XPWLcqTaDurdYCRjVau+bqIuUUHNlodThHrITojWCyrLWgmw+ExndZa2IU0eHM3sZlVxAFTa8gXOOP3TEMn7iBER0CeeMuN14hzp0YYyWLfcut4aOH1lozkQHK1rIqylZuBOWDoEIQlA2A4hWsZJNbP4YxkH4GUuKsNbZPHYZTh6zCece2QHyEdVyRolYSCupoTWqr1VaTghe41BWEJgh1UTGJqfT4dCUVSvqxcNRNOiHOLhkp1nKcR8OtUUNHwq0/6udfVIuPtURqkaJWopAikJlqNRnldgFeoS5Uaw7Vm1tJp1Y7KFaqAE5IFSa2NDEp95btHNKalJbJ9IfbaXKwk29xCLrZup2VlWHN0I4/CAnRkHoKUuKt5iKTZV01YMDHz0oa/mXBvxyUqwXl6lhXHTokVV2GJgiVq/F/HWDl3lje7deMhlVL2x2OOp+Pr9W8VCHI7kiUB9MxauoCYYfiGbtsNz2bVWdQm1qXf4JSyiNpglD/kJCSwVMzNlG9rD/v9GuGFPbJW0opl9EmJnWOMYZX5m3l+OlUZj96I2WL61rLSnkzvYJQ58xYH8mSrUd57o5GtK7tgVVHlVJXRBOEAmDXsdO8uWg7NzeoxCMd69odjlKqENAEoUhMzeCxqRspU9yXDwe2oEgR7XdQSmkfhNczxvDi3C0cjktm+kM3UKW0v90hKaUKCb2C8HLfrzrIz9uO8WLXRtxQt6Ld4SilChFNEF4sNCKO937exR1NqjJS+x2UUufRBOGlYpPSeGL6RmqWL84Hd7fQ+Q5KqQtoH4QXyso2PD1zE6eSM/jx8bY630EplStNEF5o7LLdrN53kvcHNKdJjTJ2h6OUKqS0icnLLNp8hHF/7Gdw29oMDNE6S0qpi9ME4UW2RSfwwtzNtAksz5u9dPEfpdSlaYLwErFJaTwyJYwKJfz46t5g/IrqR6+UujTtg/AC6ZnZPD51I7FJafzwWHsql9aFYpRSl6cJwgu8tXg76yPi+HRQS5rWLGt3OEopN6HtDB5uytoIpq47zKO31KN3y5p2h6OUciOaIDzYil0xvLFwO7c3rsILXRvZHY5Sys1ogvBQ248kMGr6RprUKMOng1rhoxValVJXSBOEBzqakMIDjg2ULe7LhPvbULKYdjUppa6c/uXwMImpGYyYuIEzaVnMfexGqpTR8t1KqaujCcKDZGRlM2r6JvbGJDFxeBuuq6ZlNJRSV0+bmDxEdrbh+Tmb+XPPCd7u05SODSvbHZJSys1pgvAAxhjeXLSdBeFHeLFbIwa1rW13SEopD6BNTB7gs9/2MWntIR6+OYjHbqlndzhK2SojI4OoqChSU1PtDqVQ8ff3JyAgAF/fvJf31wTh5iavjeDj5XsYEBzAKz0a68I/yutFRUVRunRpAgMD9ffByRjDyZMniYqKIigoKM/P0yYmNzY3LMo5Ea4q7/Vrpr8MSgGpqalUrFhRfx9yEBEqVqx4xVdVmiDc1LyNUbwwdzMd6lXiiyGtKOqjH6VSZ2lyuNDV/J/oXxU3NH9TNM/N2Uz7ehX59r4Q/H197A5JKeWBNEG4mQXh0Tw7O5x2QRX57r42FPfT5KCUu3M4HIwaNSrXfe3btwcgIiKC6dOnX/Q1Jk2aRIMGDWjQoAGTJk3Kl7g0QbiRH8KiGD0rnLZBFfh+eIgmB6W8wJo1a4BLJ4i4uDjefPNN/v77b9avX8+bb75JfHz8Nb+3jmJyExNWHeStxTu4qX4lxg8LpoSffnRKXc6bi7az48jpfH3NJjXK8MZdl16y9+2332bSpElUqVKFWrVqERwczPPPP0+nTp0YO3YsISEhxMbGEhISQkREBACRkZF06tSJ6Ohohg4dyhtvvAFAqVKlSEpK4qWXXmLnzp20bNmS+++/n9GjR597v19++YUuXbpQoUIFALp06cLSpUsZPHjwNZ2rS//KiEg34FPAB/jOGPPeefs/Bm51bpYAqhhjyjn3ZQFbnfsOG2N6uTLWwsoYwyfL9/Lpb3vpdn01Ph3ckmJF9cpBqcIqLCyMmTNnEh4eTmZmJq1btyY4OPiyz1u/fj3btm2jRIkStGnThp49exISEnJu/3vvvcfYsWNZvHjxBc+Njo6mVq1a57YDAgKIjo6+5nNxWYIQER/gS6ALEAVsEJGFxpgdZ48xxozOcfyTQKscL5FijGnpqvjcQXa24a3FO3CsiWBAcADv9Wumo5WUugKX+6bvCitXrqRv376UKFECgF698vbdtkuXLlSsWBGAfv36sWrVqn8kCDu48q9NW2CfMeaAMSYdmAn0vsTxg4EZLozHraSkZ/H4tI041kTwQIcg3u/fXJODUm6uaNGiZGdnA1wwJ+H8YahXMiy1Zs2aREZGntuOioqiZs1rX0HSlX9xagKRObajnI9dQETqAEHA7zke9heRUBFZJyJ9LvK8kc5jQk+cOJFPYdsvJjGVQd+s5Zcdx3i1Z2Neu7MxRXTBH6XcQseOHZk/fz4pKSkkJiayaNGic/sCAwMJCwsDYO7cuf943q+//kpcXBwpKSnMnz+fDh06/GN/6dKlSUxMzPU9u3btyrJly4iPjyc+Pp5ly5bRtWvXaz6XwvKVdBAw1xiTleOxOsaYEGAI8ImIXFBkyBjzjTEmxBgTUrmyZ1Qv3XM8kb5frmHP8STGDw3moZvr6qQfpdxI69atueeee2jRogXdu3enTZs25/Y9//zzjBs3jlatWhEbG/uP57Vt25b+/fvTvHlz+vfvf0HzUvPmzfHx8aFFixZ8/PHH/9hXoUIFXnvtNdq0aUObNm14/fXXz3VYXwsxxlzzi+T6wiI3AmOMMV2d2y8DGGPezeXYTcATxpg1F3ktB7DYGDM3t/0AISEhJjQ0ND9Ct82SLUd5ce5mShYryvf3t6FZQFm7Q1LK7ezcuZPGjRvbHcY5Y8aMoVSpUjz//PN2h5Lr/42IhDm/jF/AlVcQG4AGIhIkIn5YVwkLzz9IRK4DygNrczxWXkSKOe9XAjoAO85/rqfIyMrmv4t38MT0jTSqVpqFo27S5KCUsp3LRjEZYzJFZBTwC9Yw1wnGmO0i8hYQaow5mywGATPNPy9lGgPjRSQbK4m9l3P0kyc5lpDKUzM3sf5gHMPbB/JKj8b4FS0sLX9KqWs1ZswYu0O4ai6dB2GM+Qn46bzHXj9ve0wuz1sDNHNlbIXBT1uP8vK8raRnZvPJPS3p0+raRx0opVR+0em4NkhMzWDMwh38sDGKFgFl+fieltStXMrusJRS6h80QRSwZduPMWbhdo6dTuWpzg148rb6+Or8BqVUIaQJooAcTUjhjQXbWbbjONdVK80X97amde3ydoellFIXpV9dXexMWiafLN9D5w//5K+9J/hXt+tY9ORNmhyU8lAnT56kZcuWtGzZkmrVqlGzZs1z22fLb+S0e/duOnXqRMuWLWncuDEjR47M9XVdUc77cvQKwkXSM7OZGxbFx8v3cCIxjR7NqvFSt8bUrnjhD4hSynNUrFiR8PBw4MI5EKVKXdjX+NRTTzF69Gh697YqEW3duvWCY86W8w4NDUVECA4OplevXpQv79ovmpog8llyeiYz10fy7coDHE1IJaROecYPC9YrBqXs8PNLcOzCP7jXpFoz6P7e5Y/Lo6NHjxIQEHBuu1mzCwdwuqqc9+VogsgnB04kMWtDJLNDI4lPzqBtUAXe7deMWxpW1lIZSqmLGj16NLfddhvt27fnjjvuYMSIEZQrV+4fx7iqnPflaIK4BicS0/h1x3EWhEfz98E4fIoItzeuwsiOdQmuc+11UJRS1ygfv+m7yogRI+jatStLly5lwYIFjB8/ns2bN1OsWDG7Q9MEcSVSM7IIjzzF+oNxrNx7gtBD8RgDgRVL8ELXRtwdHECVMv52h6mUcjM1atTggQce4IEHHqBp06Zs27btH4sM1axZkz/++OPcdlRUFJ06dXJ5XJogcpGYmsGxhFSOJKSy93giu48lsvt4IruOJZKemY0INK5Whqc7N6Bb02o0qlpam5GUUldl6dKldO7cGV9fX44dO8bJkycvWMuha9euvPLKK+fWmV62bBnvvntB3dN85/UJIu5MOveMX0tqZhYp6dkkp2eSnJ71j2MqlfKjUbXSDG8fSNvACrQJrEDZEr42RayUclfJycn/6JB+9tlniYqK4umnn8bf32p9+OCDD6hWrdo/npeznDeQb+W8L8dl5b4L2tWW+z6Tlsnzczbj7+uDv68PxX19qFKmGNXL+lO9bHHqVi5JpVL2twUqpfKmsJX7LkyutNy3119BlCxWlHFDL7+guFJKeRudSa2UUipXmiCUUh7HU5rO89PV/J9oglBKeRR/f39OnjypSSIHYwwnT5481xGeV17fB6GU8iwBAQFERUVx4sQJu0MpVPz9/f8xgiovNEEopTyKr68vQUFBdofhEbSJSSmlVK40QSillMqVJgillFK58piZ1CJyAjh0DS9RCYjNp3Dchbeds7edL+g5e4trOec6xpjKue3wmARxrUQk9GLTzT2Vt52zt50v6Dl7C1edszYxKaWUypUmCKWUUrnSBPH/vrE7ABt42zl72/mCnrO3cMk5ax+EUkqpXOkVhFJKqVxpglBKKZUrr08QItJNRHaLyD4RecnueAqCiESIyFYRCReRK1+Gzw2IyAQRiRGRbTkeqyAiv4rIXue/5e2MMb9d5JzHiEi087MOF5EedsaY30SkloisEJEdIrJdRJ52Pu6Rn/Ulztcln7NX90GIiA+wB+gCRAEbgMHGmB22BuZiIhIBhBhjPHYykYh0BJKAycaYps7H3gfijDHvOb8MlDfG/MvOOPPTRc55DJBkjBlrZ2yuIiLVgerGmI0iUhoIA/oAw/HAz/oS5zsQF3zO3n4F0RbYZ4w5YIxJB2YCvW2OSeUDY8xfQNx5D/cGJjnvT8L6xfIYFzlnj2aMOWqM2ei8nwjsBGrioZ/1Jc7XJbw9QdQEInNsR+HC/+xCxADLRCRMREbaHUwBqmqMOeq8fwyoamcwBWiUiGxxNkF5RFNLbkQkEGgF/I0XfNbnnS+44HP29gThrW4yxrQGugNPOJsmvIqx2la9oX11HFAPaAkcBT60NRoXEZFSwA/AM8aY0zn3eeJnncv5uuRz9vYEEQ3UyrEd4HzMoxljop3/xgA/YjW1eYPjzjbcs225MTbH43LGmOPGmCxjTDbwLR74WYuIL9Yfy2nGmHnOhz32s87tfF31OXt7gtgANBCRIBHxAwYBC22OyaVEpKSzcwsRKQncAWy79LM8xkLgfuf9+4EFNsZSIM7+kXTqi4d91iIiwPfATmPMRzl2eeRnfbHzddXn7NWjmACcw8E+AXyACcaYt+2NyLVEpC7WVQNYS85O98RzFpEZQCesMsjHgTeA+cBsoDZWafiBxhiP6dS9yDl3wmp2MEAE8EiOtnm3JyI3ASuBrUC28+FXsNrlPe6zvsT5DsYFn7PXJwillFK58/YmJqWUUhehCUIppVSuNEEopZTKlSYIpZRSudIEoZRSKleaIJS6SiJSTkQed96vISJz7Y5Jqfykw1yVukrOWjiLz1ZOVcrTFLU7AKXc2HtAPREJB/YCjY0xTUVkOFb10JJAA2As4AcMA9KAHsaYOBGpB3wJVAaSgYeNMbsK+iSUuhhtYlLq6r0E7DfGtAReOG9fU6Af0AZ4G0g2xrQC1gL3OY/5BnjSGBMMPA98VRBBK5VXegWhlGuscNbrTxSRBGCR8/GtQHNnNc72wByrvA4AxQo+TKUuThOEUq6RluN+do7tbKzfuyLAKefVh1KFkjYxKXX1EoHSV/NEZw3/gyJyN1hVOkWkRX4Gp9S10gSh1FUyxpwEVovINuCDq3iJe4EHRWQzsB1d7lYVMjrMVSmlVK70CkIppVSuNEEopZTKlSYIpZRSudIEoZRSKleaIJRSSuVKE4RSSqlcaYJQSimVq/8D9MNvjRppDKcAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "def plot_population(result):\n", " fig, ax = plt.subplots()\n", " ax.plot(\n", " result.times,\n", " np.array(result.expect[0]) + np.array(result.expect[1]),\n", " label='qubit 0',\n", " )\n", " ax.plot(\n", " result.times,\n", " np.array(result.expect[0]) + np.array(result.expect[2]),\n", " label='TLS 0',\n", " )\n", " p0_TLS_init = np.array(result.expect[0][0]) + np.array(result.expect[2][0])\n", " ax.legend()\n", " ax.axhline(p0_TLS_init, ls=\":\", c='gray')\n", " ax.set_xlabel('time')\n", " ax.set_ylabel('population')\n", " plt.show(fig)\n", "\n", "\n", "plot_population(guess_dynamics)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The population dynamics of qubit and TLS ground state show that\n", "both are oscillating and especially the qubit's ground state population reaches\n", "a maximal value at intermediate times $t < T$. This maximum is indeed the\n", "maximum that is physically possible. It corresponds to a perfect swap of\n", "the initial qubit and TLS purities. However, we want to reach this maximum at\n", "final time $T$ (not before), so the guess control is not yet working as desired." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Optimize" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Our optimization target is the ground state $\\ket{\\Psi_{q}^{\\tgt}}\n", "= \\ket{0}$ of the qubit, irrespective of the state of the TLS. Thus, our\n", "optimization functional reads\n", "\n", "$$\n", " J_T = 1 -\n", "\\Braket{\\Psi_{q}^{\\tgt}}{\\tr_{t}\\{\\op{\\rho}(T)\\} \\,|\\; \\Psi_{q}^{\\tgt}}\\,,\n", "$$\n", "\n", "and we first define `print_qubit_error`, which prints out the\n", "above functional after each iteration.\n" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "ExecuteTime": { "end_time": "2019-02-12T04:47:27.124250Z", "start_time": "2019-02-12T04:47:27.118668Z" }, "execution": { "iopub.execute_input": "2021-11-07T04:57:22.326048Z", "iopub.status.busy": "2021-11-07T04:57:22.325754Z", "iopub.status.idle": "2021-11-07T04:57:22.327183Z", "shell.execute_reply": "2021-11-07T04:57:22.327411Z" } }, "outputs": [], "source": [ "def print_qubit_error(**args):\n", " \"\"\"Utility function writing the qubit error to screen\"\"\"\n", " taus = []\n", " for state_T in args['fw_states_T']:\n", " state_q_T = trace_TLS(state_T)\n", " taus.append(state_q_T[0, 0].real)\n", " J_T = 1 - np.average(taus)\n", " print(\" qubit error: %.1e\" % J_T)\n", " return J_T" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In order to minimize the above functional, we need to provide the correct\n", "`chi_constructor` for the Krotov optimization. This is the only place where the\n", "functional (implicitly) enters the optimization.\n", "Given our bipartite system and choice of $J_T$, the equation for\n", "$\\op{\\chi}(T)$ reads\n", "\n", "$$\n", " \\op{\\chi}(T)\n", " =\n", " \\frac{1}{2} \\ket{\\Psi_{q}^{\\tgt}} \\bra{\\Psi_{q}^{\\tgt}} \\otimes \\op{1}_{2}\n", " =\n", " \\frac{1}{2} \\ket{00}\\bra{00} + \\frac{1}{2} \\ket{01}\\bra{01}.\n", "$$" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "ExecuteTime": { "end_time": "2019-02-12T04:47:27.144420Z", "start_time": "2019-02-12T04:47:27.132277Z" }, "attributes": { "classes": [], "id": "", "n": "18" }, "execution": { "iopub.execute_input": "2021-11-07T04:57:22.329713Z", "iopub.status.busy": "2021-11-07T04:57:22.329376Z", "iopub.status.idle": "2021-11-07T04:57:22.331089Z", "shell.execute_reply": "2021-11-07T04:57:22.330793Z" } }, "outputs": [], "source": [ "def chis_qubit(fw_states_T, objectives, tau_vals):\n", " \"\"\"Calculate chis for the chosen functional\"\"\"\n", " chis = []\n", " for state_i_T in fw_states_T:\n", " chi_i = qutip.Qobj(np.kron(rho_q_trg, np.diag([1, 1])))\n", " chis.append(chi_i)\n", " return chis" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We now carry out the optimization for five iterations." ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "execution": { "iopub.execute_input": "2021-11-07T04:57:22.335810Z", "iopub.status.busy": "2021-11-07T04:57:22.335510Z", "iopub.status.idle": "2021-11-07T04:57:28.956304Z", "shell.execute_reply": "2021-11-07T04:57:28.955995Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Iteration 0\n", " objectives:\n", " 1:Ļā‚€[4,4] to Ļā‚[4,4] via [š“›ā‚€[[4,4],[4,4]], [š“›ā‚[[4,4],[4,4]], uā‚‚(t)]]\n", " adjoint objectives:\n", " 1:Ļā‚‚[4,4] to Ļā‚ƒ[4,4] via [š“›ā‚‚[[4,4],[4,4]], [š“›ā‚ƒ[[4,4],[4,4]], uā‚‚(t)]]\n", " chi_constructor: chis_qubit\n", " mu: derivative_wrt_pulse\n", " S(t) (ranges): [0.000000, 1.000000]\n", " iter_start: 0\n", " iter_stop: 5\n", " duration: 0.2 secs (started at 2021-11-07 05:57:22)\n", " optimized pulses (ranges): [0.00, 2.00]\n", " āˆ«gā‚(t)dt: 0.00e+00\n", " Ī»ā‚: 1.00e-01\n", " storage (bw, fw, fw0): None, None, None\n", " fw_states_T norm: 1.000000\n", " Ļ„: (7.97e-01:0.00Ļ€)\n", " qubit error: 1.1e-01\n", "Iteration 1\n", " duration: 1.2 secs (started at 2021-11-07 05:57:22)\n", " optimized pulses (ranges): [0.00, 2.06]\n", " āˆ«gā‚(t)dt: 8.64e-03\n", " Ī»ā‚: 1.00e-01\n", " storage (bw, fw, fw0): [1 * ndarray(2500)] (1.2 MB), None, None\n", " fw_states_T norm: 1.000000\n", " Ļ„: (7.98e-01:0.00Ļ€)\n", " qubit error: 1.0e-01\n", "Iteration 2\n", " duration: 1.3 secs (started at 2021-11-07 05:57:23)\n", " optimized pulses (ranges): [0.00, 2.36]\n", " āˆ«gā‚(t)dt: 4.72e-02\n", " Ī»ā‚: 1.00e-01\n", " storage (bw, fw, fw0): [1 * ndarray(2500)] (1.2 MB), None, None\n", " fw_states_T norm: 1.000000\n", " Ļ„: (7.92e-01:0.00Ļ€)\n", " qubit error: 5.5e-02\n", "Iteration 3\n", " duration: 1.3 secs (started at 2021-11-07 05:57:25)\n", " optimized pulses (ranges): [0.00, 2.44]\n", " āˆ«gā‚(t)dt: 6.88e-03\n", " Ī»ā‚: 1.00e-01\n", " storage (bw, fw, fw0): [1 * ndarray(2500)] (1.2 MB), None, None\n", " fw_states_T norm: 1.000000\n", " Ļ„: (7.76e-01:0.00Ļ€)\n", " qubit error: 4.8e-02\n", "Iteration 4\n", " duration: 1.3 secs (started at 2021-11-07 05:57:26)\n", " optimized pulses (ranges): [0.00, 2.42]\n", " āˆ«gā‚(t)dt: 7.32e-04\n", " Ī»ā‚: 1.00e-01\n", " storage (bw, fw, fw0): [1 * ndarray(2500)] (1.2 MB), None, None\n", " fw_states_T norm: 1.000000\n", " Ļ„: (7.82e-01:0.00Ļ€)\n", " qubit error: 4.8e-02\n", "Iteration 5\n", " duration: 1.3 secs (started at 2021-11-07 05:57:27)\n", " optimized pulses (ranges): [0.00, 2.43]\n", " āˆ«gā‚(t)dt: 1.25e-04\n", " Ī»ā‚: 1.00e-01\n", " storage (bw, fw, fw0): [1 * ndarray(2500)] (1.2 MB), None, None\n", " fw_states_T norm: 1.000000\n", " Ļ„: (7.80e-01:0.00Ļ€)\n", " qubit error: 4.7e-02\n" ] } ], "source": [ "# NBVAL_IGNORE_OUTPUT\n", "# the DensityMatrixODEPropagator is not sufficiently exact to guarantee that\n", "# you won't get slightly different results in the optimization when\n", "# running this on different systems\n", "opt_result = krotov.optimize_pulses(\n", " objectives,\n", " pulse_options,\n", " tlist,\n", " propagator=krotov.propagators.DensityMatrixODEPropagator(\n", " atol=1e-10, rtol=1e-8\n", " ),\n", " chi_constructor=chis_qubit,\n", " info_hook=krotov.info_hooks.chain(\n", " krotov.info_hooks.print_debug_information, print_qubit_error\n", " ),\n", " check_convergence=krotov.convergence.check_monotonic_error,\n", " iter_stop=5,\n", ")" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "attributes": { "classes": [], "id": "", "n": "20" }, "execution": { "iopub.execute_input": "2021-11-07T04:57:28.958947Z", "iopub.status.busy": "2021-11-07T04:57:28.958534Z", "iopub.status.idle": "2021-11-07T04:57:28.960608Z", "shell.execute_reply": "2021-11-07T04:57:28.960344Z" } }, "outputs": [ { "data": { "text/plain": [ "Krotov Optimization Result\n", "--------------------------\n", "- Started at 2021-11-07 05:57:22\n", "- Number of objectives: 1\n", "- Number of iterations: 5\n", "- Reason for termination: Reached 5 iterations\n", "- Ended at 2021-11-07 05:57:28 (0:00:06)" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "opt_result" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Simulate the dynamics of the optimized field" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The plot of the optimized field shows that the optimization slightly shifts\n", "the field such that qubit and TLS are no longer perfectly in resonance." ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "attributes": { "classes": [], "id": "", "n": "21" }, "execution": { "iopub.execute_input": "2021-11-07T04:57:28.983935Z", "iopub.status.busy": "2021-11-07T04:57:28.972721Z", "iopub.status.idle": "2021-11-07T04:57:29.033964Z", "shell.execute_reply": "2021-11-07T04:57:29.033626Z" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plot_pulse(opt_result.optimized_controls[0], tlist)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This slight shift of qubit and TLS out of resonance delays the population\n", "oscillations between qubit and TLS ground state such that the qubit ground\n", "state is maximally populated at final time $T$." ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "attributes": { "classes": [], "id": "", "n": "22" }, "execution": { "iopub.execute_input": "2021-11-07T04:57:29.036332Z", "iopub.status.busy": "2021-11-07T04:57:29.035942Z", "iopub.status.idle": "2021-11-07T04:57:29.170992Z", "shell.execute_reply": "2021-11-07T04:57:29.170660Z" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "optimized_dynamics = opt_result.optimized_objectives[0].mesolve(\n", " tlist, e_ops=[proj_00, proj_01, proj_10, proj_11]\n", ")\n", "\n", "plot_population(optimized_dynamics)" ] } ], "metadata": { "hide_input": false, "jupytext": { "formats": "" }, "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.8.1" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": {}, "toc_section_display": true, "toc_window_display": false }, "varInspector": { "cols": { "lenName": 16, "lenType": 16, "lenVar": 40 }, "kernels_config": { "python": { "delete_cmd_postfix": "", "delete_cmd_prefix": "del ", "library": "var_list.py", "varRefreshCmd": "print(var_dic_list())" }, "r": { "delete_cmd_postfix": ") ", "delete_cmd_prefix": "rm(", "library": "var_list.r", "varRefreshCmd": "cat(var_dic_list()) " } }, "types_to_exclude": [ "module", "function", "builtin_function_or_method", "instance", "_Feature" ], "window_display": false } }, "nbformat": 4, "nbformat_minor": 2 }