{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Examples for OptPulseProcessor" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Author: Boxi Li (etamin1201@gmail.com)" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from numpy import pi\n", "from qutip import sigmaz, sigmax, identity, basis, fidelity, tensor\n", "from qutip_qip.device import OptPulseProcessor\n", "from qutip_qip.circuit import QubitCircuit\n", "from qutip_qip.operations import expand_operator, toffoli" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The `qutip.OptPulseProcessor` is a noisy quantum device simulator integrated with the optimal pulse algorithm from the `qutip.control` module. It is a subclass of `qutip.Processor` and is equipped with a method to find the optimal pulse sequence (hence the name `OptPulseProcessor`) for a `qutip.QubitCircuit` or a list of `qutip.Qobj`. For the user guide of `qutip.Processor`, please refer to [the introductory notebook](qip-noisy-device-simulator.ipynb).\n", "\n", "## Single-qubit gate\n", "Like in the parent class `Processor`, we need to first define the available Hamiltonians in the system. The `OptPulseProcessor` has one more parameter, the drift Hamiltonian, which has no time-dependent coefficients and thus won't be optimized." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "num_qubits = 1\n", "# Drift Hamiltonian\n", "H_d = sigmaz()\n", "# The (single) control Hamiltonian\n", "H_c = sigmax()\n", "processor = OptPulseProcessor(num_qubits, drift=H_d)\n", "processor.add_control(H_c, 0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The method `load_circuit` calls `qutip.control.optimize_pulse_unitary` and returns the pulse coefficients." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "********** Gate 0 **********\n", "Final fidelity error 6.248201955827426e-11\n", "Final gradient normal 3.8525826831468874e-05\n", "Terminated due to Goal achieved\n", "Number of iterations 7\n" ] }, { "data": { "image/png": "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6QQsAADg6rNfRXCwhCVgAQAAV602WB/WsQJWVX16Vf1+Vb2yqv75lW4UAAAwt/Nl2nfajEt26qgnVNXJJN+X5C8meW2Sl1bVL7TR+uoAAIDhjJY7jgxYST42yStba3+YJFX140meckVbBQAAMKDjDBG8Jclth35+7fI7AACAK6IUuQAAAOhrjUUubk9y66GfH7X8DgAA4IpaYw/WS5N8cFV9YFU9KMnnJfmFK9ssAABgZrXUERwtYB1Z5KK1tldVX5Hkl5OcTPJfWmsvv+ItAwAAprcZLGEdp4pgWmvPTfLcK9wWAACAexkrXh0zYI3mzz324XnQKfU7AABgVG+960x+/Q/vHC5hrSpgfcqHvm8eceN1edJHvH9OnRSwAABgVHed2csHPPy98vhbb9p1Uy5JXcadkQfLkgAAAN3UxX6pmwcAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKATAQsAAKCTU5fx2urWCgAAgBXQgwUAANCJgAUAANCJgAUAANCJgAUAANCJgAUAANCJgAUAANDJ/wevpUic/TD+DQAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "qc = QubitCircuit(num_qubits)\n", "qc.add_gate(\"SNOT\", 0)\n", "\n", "# This method calls optimize_pulse_unitary\n", "tlist, coeffs = processor.load_circuit(qc, min_grad=1e-20, init_pulse_type='RND',\n", " num_tslots=6, evo_time=1, verbose=True)\n", "processor.plot_pulses(title=\"Control pulse for the Hadamard gate\", use_control_latex=False);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Like the `Processor`, the simulation is calculated with a QuTiP solver. The method `run_state` calls `mesolve` and returns the result. One can also add noise to observe the change in the fidelity, e.g. the t1 decoherence time." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Fidelity: 1.0000000052177915\n", "Fidelity with qubit relaxation: 0.9933419853438271\n" ] } ], "source": [ "rho0 = basis(2,1)\n", "plus = (basis(2,0) + basis(2,1)).unit()\n", "minus = (basis(2,0) - basis(2,1)).unit()\n", "result = processor.run_state(init_state=rho0)\n", "print(\"Fidelity:\", fidelity(result.states[-1], minus))\n", "\n", "# add noise\n", "processor.t1 = 40.0\n", "result = processor.run_state(init_state=rho0)\n", "print(\"Fidelity with qubit relaxation:\", fidelity(result.states[-1], minus))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Multi-qubit gate" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the following example, we use `OptPulseProcessor` to find the optimal control pulse of a multi-qubit circuit. For simplicity, the circuit contains only one Toffoli gate." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "Quantum object: dims = [[2, 2, 2], [2, 2, 2]], shape = (8, 8), type = oper, isherm = True\\begin{equation*}\\left(\\begin{array}{*{11}c}1.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 1.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 1.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 1.0 & 0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 0.0 & 1.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 1.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 1.0\\\\0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 1.0 & 0.0\\\\\\end{array}\\right)\\end{equation*}" ], "text/plain": [ "Quantum object: dims = [[2, 2, 2], [2, 2, 2]], shape = (8, 8), type = oper, isherm = True\n", "Qobj data =\n", "[[1. 0. 0. 0. 0. 0. 0. 0.]\n", " [0. 1. 0. 0. 0. 0. 0. 0.]\n", " [0. 0. 1. 0. 0. 0. 0. 0.]\n", " [0. 0. 0. 1. 0. 0. 0. 0.]\n", " [0. 0. 0. 0. 1. 0. 0. 0.]\n", " [0. 0. 0. 0. 0. 1. 0. 0.]\n", " [0. 0. 0. 0. 0. 0. 0. 1.]\n", " [0. 0. 0. 0. 0. 0. 1. 0.]]" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "toffoli()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We have single-qubit control $\\sigma_x$ and $\\sigma_z$, with the argument `cyclic_permutation=True`, it creates 3 operators each targeted on one qubit." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "N = 3\n", "H_d = tensor([identity(2)] * 3)\n", "test_processor = OptPulseProcessor(N, H_d)\n", "test_processor.add_control(sigmaz(), cyclic_permutation=True)\n", "test_processor.add_control(sigmax(), cyclic_permutation=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The interaction is generated by $\\sigma_x\\sigma_x$ between the qubit 0 & 1 and qubit 1 & 2. `expand_operator` can be used to expand the operator to a larger dimension with given target qubits." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "sxsx = tensor([sigmax(),sigmax()])\n", "sxsx01 = expand_operator(sxsx, 3, targets=[0,1])\n", "sxsx12 = expand_operator(sxsx, 3, targets=[1,2])\n", "test_processor.add_control(sxsx01)\n", "test_processor.add_control(sxsx12)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Use the above defined control Hamiltonians, we now find the optimal pulse for the Toffoli gate with 6 time slots. Instead of a `QubitCircuit`, a list of operators can also be given as an input." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "def get_control_latex():\n", " \"\"\"\n", " Get the labels for each Hamiltonian.\n", " It is used in the method``plot_pulses``.\n", " It is a 2-d nested list, in the plot,\n", " a different color will be used for each sublist.\n", " \"\"\"\n", " return ([[r\"$\\sigma_z^%d$\" % n for n in range(test_processor.num_qubits)],\n", " [r\"$\\sigma_x^%d$\" % n for n in range(test_processor.num_qubits)],\n", " [r\"$g_01$\", r\"$g_12$\" ]])\n", "test_processor.model.get_control_latex = get_control_latex" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "test_processor.dims = [2,2,2]" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "********** Gate 0 **********\n", "Final fidelity error 2.525584519297297e-08\n", "Final gradient normal 1.9592094768434787e-05\n", "Terminated due to function converged\n", "Number of iterations 262\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "test_processor.load_circuit([toffoli()], num_tslots=6, evo_time=1, verbose=True);\n", "\n", "test_processor.plot_pulses(title=\"Contorl pulse for toffoli gate\");" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Merging a quantum circuit\n", "If there are multiple gates in the circuit, we can choose if we want to first merge them and then find the pulse for the merged unitary." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "qc = QubitCircuit(3)\n", "qc.add_gate(\"CNOT\", controls=0, targets=2)\n", "qc.add_gate(\"RX\", targets=2, arg_value=pi/4)\n", "qc.add_gate(\"RY\", targets=1, arg_value=pi/8)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "********** Gate 0 **********\n", "Final fidelity error 9.288031862508817e-07\n", "Final gradient normal 1.0009544656595555e-05\n", "Terminated due to function converged\n", "Number of iterations 351\n", "********** Gate 1 **********\n", "Final fidelity error 3.309241769500204e-12\n", "Final gradient normal 2.303187094527492e-05\n", "Terminated due to Goal achieved\n", "Number of iterations 8\n", "********** Gate 2 **********\n", "Final fidelity error 4.594247204892099e-11\n", "Final gradient normal 7.96388756111269e-06\n", "Terminated due to Goal achieved\n", "Number of iterations 28\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "setting_args = {\"CNOT\": {\"num_tslots\": 20, \"evo_time\": 3},\n", " \"RX\": {\"num_tslots\": 2, \"evo_time\": 1},\n", " \"RY\": {\"num_tslots\": 2, \"evo_time\": 1}}\n", "\n", "test_processor.load_circuit(qc, merge_gates=False, setting_args=setting_args, verbose=True);\n", "fig, axes = test_processor.plot_pulses(title=\"Control pulse for a each gate in the circuit\", show_axis=True);\n", "axes[-1].set_xlabel(\"time\");" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the above figure, the pulses from $t=0$ to $t=3$ are for the CNOT gate while the rest for are the two single qubits gates. The difference in the frequency of change is merely a result of our choice of `evo_time`. Here we can see that the three gates are carried out in sequence." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "********** Gate 0 **********\n", "Final fidelity error 1.3890985953723956e-06\n", "Final gradient normal 1.7036117990856595e-05\n", "Terminated due to function converged\n", "Number of iterations 354\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1gAAAGoCAYAAABbkkSYAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAABkZklEQVR4nO39eZyddX3//z/fZ599skx2kpAAsi8BBEERFRUXsGLrAi7giq2t1aqfrx+pheJSt1bR+hH187FVEGlt9ae4UWoRRBEkLGENhITsyWQms89Zr/fvj+ucM3OSwJzJXDPv95l53G+33IYJMyfPOXOd61yv6/VejLVWAAAAAICpi7kOAAAAAACzBQUWAAAAAESEAgsAAAAAIkKBBQAAAAARocACAAAAgIhQYAEAAABARCiwACBixpgtxpgLpuFxLzfG/HYaHvdTxph9xpjdUT/2bGKMudoYc8M0PfaQMWbNdDy2K8aYfzHGfGoK3/+IMeb86BIBwMygwALQkIwxlxpj/li+MN1ljPmFMeaFETzulC4KG40xZqWkv5F0vLV2ies8c5W1ttVa+7Q0945B6dA/s7X2BGvt7Y4iAcBho8AC0HCMMR+W9GVJn5G0WNJKSV+X9LoZ+LcT0/1vzLCVknqstXsn+42+Pxe+55suc/XnBgBfUGABaCjGmA5Jfy/pL6y1/2mtHbbWFqy1P7XWfrT8NWljzJeNMTvLf75sjEmX/9/5xpjtxpi/McbsLXe/rij/v/dKukzSx8qdsZ+W/36LMeZ/GWMekjRsjEkYYy4uD2HqM8bcbow5rs78/2KM+YYx5r+MMYPGmN8YY1aV/99qY4wdf4Fcfux3H+JxjDHmn8o/w4AxZoMx5sRxP/8XjTFbjTF7yv9e0yEe4wJJ/yVpWfnn/Zfy3z/rz3ao5+IQj/sVY8y2cq77jDEvmuD5+Hq5AzlkjLnLGLOk/Dvbb4x53Bhz2rivX2aM+Q9jTLcxZrMx5q/G/b+rjTE/NMbcYIwZkHS5MeZIY8wd5ef6NmPMP48f5meMOdsY87vyz/rg+CFp5e/9Tfl7/0vSwuf4OQ4avln+XR417uf8Z2PMz8qP9wdjzNoDv/Y5jsH/zxizqfy9jxpjXn/Av31X+XjokfT3xpheY8xJ475mkTFmxBjT9Sz532mMeaz8nP9q3DH5f4wxXzzga/9/JrzJIWPMceVjpK98zFw82efnOX7m6lBbc5ivaQBwgQILQKN5gaSMpB89x9d8QtLZkk6VdIqk50u6atz/XyKpQ9JySe+S9M/GmHnW2m9KulHS58tDti4a9z1vkfQaSZ2S1ki6SdJfS+qS9HNJPzXGpOr8GS6TdK3CC/YHyv/mZL1C0nmSjin/LG+U1FP+f/9Q/vtTJR2l8Of85IEPYK29TdKrJO0s/7yXG2OO0cQ/W/W5sNYWD5Ht3vK/PV/S9yX9uzEm8xw/yxsV/n4WSspJ+r2k9eXPfyjpHyXJGBOT9FNJD5Z/ppdJ+mtjzCvHPdbryt/TqfB5/b6keyQtkHS1pLdVvtAYs1zSzyR9qpz1I5L+Y1wR8n1J95VzXCvpHc/xM9TjzZKukTRP0lOSPn3gFzzHMbhJ0osU/q6vkXSDMWbpuG89S9LTCju610r6gaS3jvv/b5H039ba7gP/TWPM6yT9b0mXKPyd36nwGFD545uMMab8tfMUHns/MMYkFf4+bpW0SNJfSrrRGPO8STwnz/Uzj3dYr+nJ5ACAqFBgAWg0CyTte5YL+4rLJP29tXZv+YLyGo27sJZUKP//grX255KGJE10UXidtXabtXZU0psk/cxa+1/W2oKkL0pqknROnT/Dz6y1d1hrcwovHF9gjDmizu8d/zO0STpWkrHWPmat3VW+EH6vpA9Za3uttYMKh1K+uc7HrednG/9cHMRae4O1tsdaW7TWfklSWs/9/P7IWnuftTarsHDOWmu/a60tSbpZUqWDdaakLmvt31tr8+U5S9864Gf7vbX2x9baQGGxcKakT5a//reSfjLua98q6efW2p9bawNr7X9J+qOkV5twbtqZkv7WWpuz1t6hsJiYih9Za+8pH7s3KiwW6mKt/Xdr7c5yzpslPamwyKjYaa39avk5H5X0r5LeUimMFB7/33uWh79S0mfLx1BR4fFyarmLdackq7C4k6Q/Vfgc71RY8LRK+ofy8/trSbcoLOaiNh2vaQCYFhRYABpNj6SF5rnnmSyT9My4z58p/131MQ4o0EYUXig+l23P9vjli/ltCu+e16P6WNbaIUm9B+SbUPli9muS/lnSXmPMN40x7QqLimZJ95WHbfVJ+mX57+tRz8+27cBvGs8Y85HycLP+8r/foecYXidpz7j/Hj3E55XfzSqFwxn7xv1s/1th1+ZQ2ZZJ6rXWjjzL/18l6c8OeLwXSlpa/t791trhcV8//pg6HONXaaznmKsyxrzdGPPAuJwnqvY5rfmdWGv/UP43zjfGHKuwkzm+uBxvlaSvjHvsXklG0nJrrVXYDasUTZdqrOO6TNK28jFS8Yzqfx1MxnS8pgFgWlBgAWg0v1c4jOxPnuNrdiq8aKxYWf67etg6/r7m8ctdgiMk7ajz36h2q4wxrQqHp+2UVLmYbx73tc+6sp+19jpr7emSjlc4JPCjkvYpLEpOsNZ2lv90WGvrvdis52d7tudIJpxv9TGFw/7mWWs7JfUrvGCfqm2SNo/7uTqttW3W2lc/S7ZdkuYbY8Y/n+M7hdskfe+Ax2ux1v5D+XvnGWNaxn39yufINqxxvzdjzFRWZKx5fsudpG9J+oCkBeXn9GHVPqeH+p38q8Iu3dsk/bDcITyUbZLed8Dz0GSt/V35/98k6U/LOc6S9B/lv98p6Yjy0M2KlTr062Ci5+dZj6lx/9bhvqYBYEZRYAFoKNbafoXzif7ZGPMnxphmY0zSGPMqY8zny192k6SrjDFdxpiF5a+vd/+iPQrnWD2Xf5P0GmPMy8rzUP5GYdH3u+f+tqpXG2NeWJ7XdK2ku8tD7roVXpy+1RgTN8a8U9LaQz2AMeZMY8xZ5X9/WFJWUlDuJnxL0j8ZYxaVv3b5AfOUpvNna5NUlNQtKWGM+aSk9jq/dyL3SBo04SIbTeXn6ERjzJmH+mJr7TMKh/xdbYxJGWNeIGn8/J4bJF1kjHll+bEy5QUTVoz73mvK3/vCA773QA9KOsEYc2p5vtnVU/g5DzwGWxQWIN2SVF7A4cQ6HucGSa9XWGR99zm+7huSPm6MOaH8+B3GmD+r/E9r7f0KC/dvS/qVtbav/L8qXbKPlV+D5yt8jn5wiH9joudnotfdVF7TADCjKLAANJzyvJ4PK5zk3q3wDvwHJP24/CWfUnhx/JCkDQoXTKh3X6H/K+n48nCpHx/qC6y1Tyi8aP2qwgvPiyRdZK3N1/lvfF/S3ykcinW6ahcjeI/CTlSPpBP07IVNu8JCar/C4VI9kr5Q/n//S+EiCnebcDW921TnfJQIfrZfKRySuLGcK6sJhhTWqzwn67UK5y5t1thFf8dzfNtlChdG6VF4DNyssGCUtXabwkUx/rfGjqOPauy98VKFHZtehb+vZy1SrLUbFa5ueZvC+VFT2RC65hi01j4q6UsKu7d7JJ0k6a6JHqT8861XWJzd+Rxf9yNJn1O4cMWAwu7Yqw74su9LuqD8sfJ9eYXHx6sU/i6+Lunt1trHD/FvTPT8TPS6m8prGgBmlAmHVwMAZoIJl0Lfbq29aqKvRfSMMTdLetxa+3eus8wEY8z/U7gABscbAMwQNiMEAMxa5eGDvQo7Xq9Q2LH6B6ehZogxZrXCpddPm+BLAQARYoggAGA2WyLpdoXLdl8n6f3lOUWzmjHmWoVD/b5grd3sOg8AzCUMEQQAAACAiNDBAgAAAICITMccLFpiAAAAAGa7Q+7xyCIXAAAAmLKRfFH9owXXMWrEjVFXW1rhnunAzKDAAgAAwJS9+Au3q3sw5zrGQT7z+pN06VkrXcfAHEKBBQAAgCkpBVbdgzktbE1pYWvadZyqJ/cMafO+IdcxMMdQYAEAAGBKCqVAktTRlNTyzibHacY80zPi3bBFzH6sIggAAIApyZcLrJhnc50ScaO+EQoszCwKLAAAAExJoRgWWJ7VV4rHKLAw8yiwAAAAMCW+drCSMaP9I3nXMTDHMAcLwJz2m43d+vTPHlUQ+LWF34nLO/TlN5/mOgYA1KVQDM+hMb/qKyXiMeZgYcZRYAGY0377ZLee3Dvk1apXI7miNnUP6x/feKpivl2tAMAhVDpYvu03lYwb9Q7TwcLMosACMKcN5UpKJ2I6eXmH6yhVW3tH9OTeIQ3miupoSrqOAwATKlSHCDoOcoBkLKZcMVC2UFImGXcdB3NEJHOwjDEtxph/NcZ868Ybb4ziIQFgRgzlikp4dkVQyTPAsBYADSJf9HMOViIeXupyPsVMiqqDdYmkH1prf/qmN73p3ZdddllEDwsA02s4V/TugiBZviDoHy3oCMdZAKAeBY+HCErS+q19Wjm/2XGaMW2ZhI7wKA+iFVWBtULSBkmKx2m/Amgcg9mCdwVWonxBwMRsAI0i7+kQwVQivGF15Q33OU5ysNs+/GIdtajVdQxMg0kXWMaYUyR9VdJCScdKMpK2KCywHgiCIMp8ADCtBrPFakHji0RsrIMFAI3A1yGCnU1JnXpEp0oerRQ7nCvq6X3D2juQpcCapSZVYBljMpJulvR2a+09xphrJWUkXS3pa8aY19xwww3Rp8Sc1zOU0w/u3aZiyZ8TpCQtn9ekPz19hesYmIKhXFFxz265JulgAWgwhfL7s2f1lYwxWtCSch2jxkAypqf3DWsoV3QdBdNksh2sCyStt9beU/78IUkXWmuHJV1R/rsrowoHVNzy0C594VdPuI5xSBcct0idzX6dvFG/oVxRLSm/FlRliCCARlPwdKNhH1UWMhrOU2DNVpO9qjhR5blWZeskrY8uDnBoldV/zj+my5vx3bsHcnp014B6h/PeFVi/fnyPNu0ddh2jhjHSxacs06L2jOsoNUbyJbVn/FoKPW6MjCiwMD32D+e1eyDrOsZBjlzYwjLaDWxsiKDjIA2gMmpiKFdynATTZbIFVo+kl0qSMeYYhasHnhN1KOBAQ/mi4sZ4NZQrVe4y7B/x6yI4CKze9737qsM1fNI9lNPHX3Wc6xhVhVKgfDHwbpl2Y4xSiRgFFiJXCqxefd2d2tXvX4HVlIyrs9mvmx2ZZFzffscZWtvFPJmJVDcall/nUx9V5tkOM0Rw1ppsgXWTpIuNMQ9L2ifpLdbaHmPMSknvlXTkpZdeKvbCQtSGPFyIoLKUdt+IXzvE7x/Jq1CyOqqrVcs7/ekW3be1T093+9VVq7y5+VS4VyTiRhu29+tff7fFdZQaLzx6IRebDeyezb3a1Z/V6gXNasv4MzTW2vBmVeDRQgTFINDm/qwe2zXAMV+H6hDBSHZYnd0qbzkUWLPXpM6u1tohSRcd4u+3GmP+r6RrvvnNb0aVDaga9nAz2EqB5VsHq3soJ0nKJGPVDRZ90JSMa9PeIdcxalQmGPt2bElSczKhDTv6tWFHv+soNc47eqG++66zXMdoCF+//Sl96daNrmPUCAKrRMxo9YIW724sLPZs+HC2UFL3UI9GGMZVF19XEfSRMUbJuGGRi1kskttXxpjVClcSfH9LS8vbonhMYDyfV3rbP+xXB6t7MCywKnt/+KI5FdfW3hEVS4E3hd+Qxx2sk5a3ezfMc+PeQT2yc8B1jIbxs4d2KZ2IaVFb2nWUGu2ZpJfHvG/iLEQwKdWNhh3naBSJWIwO1iwW1fiAn0v6laSP9/b2av78+RE9LBAayhW9uysWjxkZEw7J80mlwEp7WGAVA6t/+d0WbxYF2doTDln0sYMVzsPyK1dbOqmnuofUO5zXfM+WPfbNaL6kx3cP6oh5TQwva1CVAmskTwerHpUbQjEPz6c+iseMhjm2Zq1ICixr7fHjPv1EFI8JjDeQ9a+DZYxROhHzb4igpx2synyPT/3sMcdJDsbKZfVpLf8Of7Nxr05a3uk2zDj7hnL6+YZdXnX8+kfzKgVWHU1+LdqA+sWMUcwwT6ZeuSIdrMng2Jrd/JnhOo2++/stun9rn/7pTae6joLDNJT1bw6WJCVjMe8Wudg7mFMiZqqrFPmiLZPUi45aqJJHk9il8C6ib8Wor9rS4VvGh25+0HGSgyVixruFcNoyCXVSYDW0RCxGB6tOhVKgmAlvPmJi8ZjRUJYCqx6f+NEGrZjXrPefv9Z1lLrNiQLr8d2D+uXDu5QrcpJsVN2DOb32lKW69nUnuo5S463f/oPu2NitV3/lDtdRqnb0ZbWss0n/fNk611EwC927pVd7B3KuY9SIx4zOWbtA7RQziNj5X7hdtz22R3sH/VvW3jeP7RpQOhHnvadO77/hPq3f2qc/v/E+11G8d/sT3brwxCWuY0zKnCiwJClbCHTHxn2uY9TobErqeUvaXMdoCIVSoM6mpHdDuZ63pE1/fGa/Ht016DpKjbOOnO/dc4XZ4UVHd7mOAMyY5lRcQ7micoXAdRTvFYpWybjhvadO7U1JFUsBx9YErLXKFQMtbPVrsaCJzIkC65LTlmsoW5RPA5Me3dmvbb2jFFh1sNaqGFi1pP07XD/1Jyfqb17xPNcxDsK8DwCYupZ0gg2/6xRYW92+BBNrSSdUCKwGs34dX+lE3Kth8yVrVQpswy2s5N8V6zQ4Y/V8nbHar5UNv/brJ/XFWzeqFFjvFm/wTbE8Z6fVwwLLGNNwL3oAQH1a0nHv5o36ylpRYE3CgpaU8sVA92zZ7zpKjUwypnPXLnQdo6pQDF9/jXat5d8V6xxRaXUWSoHiMb/a6aXAevWGUpk752OBBQCYvVpSCQXWn/dDnwXWKs3wwLq997w1Oml5hzy63NL/PL5XN/9xmwqlwJtiOV/eX20BBRbq0VXeeDJXDLwar5wrlvT7Tb0qefiGwrA3AMBMak5TYNUrsFLKs5U8fdaWSeoVJ/i1cIMx0s1/3KbRfEnJJj8KrMoG1guYg4V6VDpY+aJfkxsHs0WVrNWVL16rZZ0Z13GqMom4XnLsItcxAABzSEuKIYL1stYqlfDnhjEmb9WCZknSSKHkzaqsletkOlioS6WDVWl9+mKovOnd+89fS8cIADCnNacS1XnAPukfLahn2K89GIfzJSUTdLAa2cr5YYGV9Wjvt0oHizlYqMuC1vBA8a2DNZwralFbmuIKADDntaTjKpSsrLXebKBrrdWjuwa83AD5uCXtriNgCppTCS1oSWnXQFYjBT+Or8FsQalETM2pxuqOUmA5kk7E1ZZJaM9gVllPDmJJ2j9S0POP9GvFRQAAXGhOhZdJG3YMyJP6SsXAaiRf0lffcppee/JS13Ewy1x8yjL94uHd8mXqYWs6qecfOd+bGxz1osBy6JUnLNEdG7u9Gn7Q2ZTUq0/ihA0AwPOPnK9jl7RVhyn54sRl7XrlCUsa7qIT/vu7i0/Q3118gusYDc/Y6EtUf6oFAAAAAJgeh7zL4ccajAAAAAAwC1BgAQAAAEBEKLAAAAAAICIUWAAAAAAQEQosAAAAAIgIBRYAAAAARIQCCwAAAAAiQoEFAAAAABGhwAIAAACAiFBgAQAAAEBEKLAAAAAAICIUWAAAAAAQEQosAAAAAIgIBRYAAAAARCThOgAAAADq993fb9H3/7DVdYyDvP605Xrfi9e6jgE4R4EFAADQQH764E5t6h5SR1PSdZSq/tGCfvHwbgosQBRYAAAADaV3OK/O5pROXt7hOkrVg9v6lCuUXMcAvMAcLAAAgAbSO5xXKm5cx6gRixnlioHrGIAXKLAAAAAahLVW/aMFJeN+XcLFjCiwgDK/Xp0AAAB4VgPZogIrDwssozwFFiCJAgsAAKBh9I3kJUlJ34YIGqNckTlYgESBBQAA0DB6hysFll+XcDEj5Ut0sACJAgsAAKBh9I0UJHlYYMUYIghURLJMuzFmjaRPSOqw1kbxkAAAADjAWAfLryGCxhgFViqWAiU8K/6AmRZJgWWtfVrSu4wxP4zi8QBgptz26B5d/dNHFAR+3Rw6cUWHvvm2M1zHAOa0323ap4/8+4Mqlvw5P4yW95ryrYNVqffyFFgAGw0DmNvu3dKrHftHtbg94zpK1VCuqNse3SNrrYzx6y41MJf84ele7ezLammHP+eH1nRCXa1p7wqsWPlclS8Gak45DgM4NukCyxhziqSvSloo6VhJRtK11tpPRpwNAKZdrhgoGY/phGXtrqNUbdk3rE37isqXAqUTcddxgDmreyindCKm45f6c37wVeVmEHthAZNc5MIYk5F0s6SPWGuPl/RpSV+U9BVjzDcknfbZz342+pQAME1yxZLiMb+6RLFyntE8Sx4DLnUP5pRK+NUp8lWlocZCF8DkO1gXSFpvrb2n/PlDki601vZIurL8d/4MVAaACWQLgTyrr6oF30i+pM5mx2GAOax7MKekbycIT411sLgxBEz2tsyJkjaM+3ydpPXRxQGAmZUrlryb5zS+wALgzt6BLB2sOsXL59FsgQ4WMNkOVo+kl0qSMeYYSZdIOifqUAAwU3I+drAMQwQxffYOZrWtd9R1jBrGSMctaVdTyp85h9Za9QznvVoAx2dm3CqCwFw32QLrJkkXG2MelrRP0lustT3GmJWS3ivpyEsvvVQ33nhj1Dkxg257dI96R/KuY9RIJ2K68MQlTPhH5HLFwOMOVtFxEsxGb7r+bm3eN+w6xkEuOnmpvnrpOtcxqoZyReWKgVKerdbnq8oqgjk6WMDkCixr7ZCkiw7x91uNMf9X0jXf/OY3o8oGB57uHtK7v/tH1zEO6R/feIouWbfCdQzMMqOFkn8drEqBVaCDheh1D+a0sDWlFZ1NrqNU7R3M6ZaHdmkge498ud+RLb/+GCJYn8p5iw4WENE+WMaY1ZKulvT+lpaWt0XxmHBja++IJOmk5e1qyyQdpymz0j1bevXQ9n4KLEQuWyhV77z6giGCmE7ZQkkLWlJa0Jp2HaWqvSmpbDHQA9v6XEep0dmcVGeTJ++FnqucRnPcGAIi22j455J+Jenjvb29mj9/fkQPi5m2sy8rSWrPJJVJ+jMcrzWd0MM7+l3HwCyUK5Sqy6L7gkUuMF0KpUDFwHq3NUEyHtNpR3S6joEpqG40TAcLiKbAKu+JVfGJKB4zSjfc/Yw+8/PHZD1bQP4Faxfo/11+pusYNXb1j8rIvyERrZmENuzo17W3POo6So0V85p0xblHuo6BKcgWA8X9utYctw8Wc7AQrUrR7luBhcYXq3awKLCAqDpYXnt014ByxUDLO/xZCWgwV9SvH9+r3uG85rekXMep2tE3qqZU3LshUwtbU9o7kNN3f7/FdZSqUmAVWOn1py1XZ7M/v0NMTq4QKOlZhVWZU08HC1GrDDv17RyPxkcHC9Pl14/vUUdTUqevapwRcnOiwJKktnRCn/+zU1zHqHpi96D+7ieP6FO3PKrnLWlzHafqvi37dcT8Zr3nvDWuo3jvfx7fq+vveFrX/2YTBVYDG8kXde5RC/XOF/rTiQys1W827tOdT3a7joJZpmc4XCH2guMX6UVHdzlOg9lkIFvQXZt69OvH9mhgtOA6Dg7TnU/u05N7B13HqLFnIKeXHrtI/+9yCiyv/K8Lj9VfX3C0FrX508E6bWWnPv3zx/TTh3bqV4/4MxxvtFDSa05eprPXLHAdxXs9Q+GFyvpn+tSamRMvpVkpVwy0emGLd8d8OhHT1t5R3bO513UUzCKD2fDC96Tlnd4d82hsw7lwSPPmfSMKPJuSgfo9sK1PbZmETl7R4TpK1ZquVn3wZUe7jjEpc+KqsKMpKcmvVYDSibg++drjtf6Z/a6j1DLSpc9f6TpFQ2hJh4uAFHknaVjWWpUCq7Rncw4lqSkZV4ljCxGrHFPNHm3oi9mhch4dzhe1f9ijvTSN1JFJereYka9KgdWLj+nSP7zhZNdRGtqcKLB89dazV+mtZ69yHQOHqTUdvnxKAePNG5Ut//GywEpRYNUrWyjpyb1DCjxbySgZj+nYJW1ezXeiwMJ0ScRjaknHtas/q139WddxahzV1apVC5pdx2gIhVJQvb7B4eMZBA5TZVggHazGFZR/d+mEfxebzam4ugdz2tU/6jpKjc7mlJo82sJBCucV7R3M6ZjFrYrH/CiWh7IFbds/qpXzmr0aQlwqF6FNFFiYBj//qxdVt3vxxTv/5V5liywYVA9rrYqB9eqc1ah4BoHD1JKqdLAosBpV5VeXSfpxUT7e8nnN2tQ9rEd3+TXZuKs1pZNXdLqOUSNXDLvIt/zli7zZYuKezb164/W/V64UqNV1mHHGOli8/SN6qxa0aNWCFtcxaixsTSlfZKRJPSo3jOlgTR3PIHCYxoYIUmA1qsqQMh87WN982+naM+DXneCrfvywHtjW5zrGQXKFkuY1J70priSpqy0tScp7due8soI2QwQxVyxoTWtrz7DrGA2hcj3TRgdryngGgcPUkmaIYKOrvJmkPexgZZJx7+4EH72oTb/f1CNrrYxH84pyxUBL2v1ZJVYaX2D5dee8cswzRBBzxcLWlJ7uHnIdoyGMdbD8WhiuEfl3VQE0iFQipmTc0MFqYGMdLE6F9Vgxr0nFwKpQ8uuYL5QCLe1sch2jRms6oUwyVh2+6IvKHKxmz+bRAdNlXnPKu3OWr4rl54k5WFPHMwhMQXMq4WUH66nuoeqeJL4wMlq1oLm8bYIfKr+6NBebdTlifrgK12ih5NVwvHwx0OL2tOsYB+lqTStf8qvACgKrZNwoEffn9wdMp/mtKeWKJe867z6qrIrMHKyp4xkEpqAlFfdumfZCKdAzPSNa2pFRZ3PKdZyqnX2jemTngJZ1+DOUa7QQzo+hg1WfFfPCLtHOvlENlDes9UG2GGixZ0MEJWlRe8a7oUmlwCrDDQXMIQtaUgpseOwn4hRYz6XIHKzI8AwCU9CaSajXpw0VJQ1mw87VF/70FL3w6IWO04z545ZeveM792jTPr8mG2eSMa3oZH+Ueqxa0Ky2TEI7+7NSv+s0tY5d0u46wkEWtaX14LY+PbS9z3WUqsFsUe0edZGB6Ta/pTwfshTQuZ0AqwhGh2cQmILWdFLdgznXMWoMljsLJyzz64LzjNXz9eAnXyHfRlTGjHjTrVNzKqF7P3GBd8NPE7GYOpr9KxouPHGJnu4elpU/B/28lpRefEyX6xjAjFnQEo7k+OMz+2XkTwcrHjM67YhOrxacYQ5WdHgGgSlozSTUP1rQPZt7XUepyhZLWtqR0bwWf4YHVlDINL5MMs4Qszq97tTlet2py13HAOa0s9bM15+fv1YjeX+2TLDW6oY/bNXW/SNas9Cf1WIrc0Zb2CdvyngGgSl4+9mr1OZhK/0lxy5yHQEAAOeaUwl97MJjXcc4yN7BnH7x8G5t3z/qOkqNtkxC8Zg/nb5GZayNfOiCP2MhAAAAAM/s7s/qV4/s1jRch0/JMYvbdM5R/szfbgCHrEYpsAAAAABg8g5ZYDEhAgAAAAAiQoEFAAAAABGhwAIAAACAiFBgAQAAAEBEKLAAAAAAICIUWAAAAAAQEQosAAAAAIgIBRYAAAAARIQCCwAAAAAiknAdAAAAAJhLtu8f0U8f3CUr6zpKjWOXtOmlxy52HaPhUWABAAAAM+jLtz2pH9633XWMg7RlEtpw9Stdx2h4FFgAAADADLHW6o6N3epqS+uEpe2u41Q9vW9YO/pGXceYFSiwAAAAMCv1jxb0qVse1Ui+5DpKVb4UaO9gTscuaVM8ZlzHqYrHjEqBVbEUKBFnmYapoMACAADArPTgtj79+33b1ZSMK+FRMdPRlNTC1rTrGDXi5acnWwzUSoE1JRRYAAAAmJVyxUCSdOLydrVnko7T+C1WLkCzhZJa05QIU0F5CgAAgFkpVwyHBsaMP90rX8XNWIGFqaHAAgAAwKyUK4QdrDgF1oTGOliB4ySNjwILAAAAs1JliKBH06+8RQcrOpEUWMaYPzHGfMsYc/Ott94axUMCAAAAU1IdIkiFNaHKU1R5znD4IimwrLU/tta+R9KVN998cxQPCQAAAEzJWAeLAmsiDBGMTtRLhFz1F3/xFxE/JGZaKbAqBdZ1jBoxI/ZkwJyyrXdEj+zsdx3jIOtWztOi9ozrGABQl8ocLBpYE2OIYHQmXWAZY06R9FVJCyUdK8lI+pSklKRfrFu37sORJsSM6hvJ60Wf/x8NZouuo9SIx4x+8N6zdebq+a6jADPigz94QOu37ncd4yAXnbJMX33Laa5jAEBdssWSYkYydLAmRAcrOpMqsIwxGUk3S3q7tfYeY8y1kjKS9kl6u6SOb3zjG7ryyiujT4oZsWcgp8FsUYvb02pN+bEHgpW0pWdY//3YXgoszBn7hnJa0JLS2q5W11GqHt01oP7RgusYAFC3XCFQnPZVXSpPEx2sqZvsFfQFktZba+8pf/6QpAuttR+V9JXy370vqnCYeZUX1ZL2jFc7jPcM53Xvll7XMYAZM5wrKp2IqS3jx40OSUrEDG+8ABpKrlhi/lWdqkMEWeRiyib7zn2ipA3jPl8naX10ceBa5eLJt5NRR1NS92/dr5f/429cR6mxYl6Tvv2OM727O/Z095B29I26jlEjZoxOXzVPmWTcdZSGMJwvqjnlz00OKRyqS4EFoJHkinSw6sUQwehMtsDqkfRSSTLGHCPpEknnRB0K7mQ9XW1nWUdG2UJJfSP+DE/KFkp6cu+QeoZyXk36t9bq4q/dpaGcX/PoJOljFz5Pf37+Ua5jeC8IrLKFQAnPLgpixmiUAgtAA8kVAxa4qFOMRS4iM9kC6yZJFxtjHlY47+ot1toeY8xKSe+VdOSll16qG2+8MeqcmCGVF5VvC/a1pBM6aXmH6xg19gxk9fDOAfWO5L0qsAZzRQ3lilrR2aTF7f50QB7a0a+9AznXMRrCcD4sjuMxv16IsRhvvAAaS65QYoGLOlX3weI8P2WTKrCstUOSLjrE3281xvxfSdd885vfjCobHPB1iKCPUuUqtHc47zhJrd6hME97U0KdzSnHacYk4zHvVqf01XAufB0m4n69DmPGMHQEQEMJO1h+nUt9ZYwJh4IXOc9PVSSzp40xqyVdLen9LS0tb4viMeFGdb8I+ukTSibCAmv/sD/DFqVwQRApLGh8Eo8ZDWb9eq58VRne6du8gbgxGi74VyQ/uWdQf/H99d4Vf/NbUrrx3WepJe3PQiXAXJMrluTXmdRvzLWNRlRn/Z9L+pWkj/f29mr+fJbSblSVlWPi3O2ZULLcXegd9mvYW6WjlvKtwDJGAxRYdRkuF1jezcGKGeU8vLP54PZ+bdwzpIWtKW+K0kLJamvviB7Y1qdzj1roOg4wZ2ULATeNJyFuKLCiEEmBZa09ftynn4jiMeHG2BBBx0EaQLI6RNCvoqFS8FU6bL5IxIz6R/3rfvjI1w5WzITDbay1Xs1pGCoX7sctaVfKk+M+Xwx051P79MjOfgoswKFsocQ1zSTEYlLfSEF7B7Kuo1R1NCeVTjTWCsRzYtxC/2hBuWJJi9r8WYjAV1mGCNYtZoyScaP9I37Nwdo35GcHKxFniGC9fC2wKnnypcCrN7vhfHnOmkfPVyoRU1Myrkd3DriOAsxpzMGanLgxuvXRPbr10T2uo1Qt7cjoJx94obra/Fm4ayJzosD63C8f188f2qVvvO1011G8t6l7SHFjdPaaBa6jNIQHtvVp455B3f10j+soVY/s7FcqHtML1vr1O9w/ktem7mGvnitfPbitT5K0buU8zW/xZ6ESSdrUPazfPrnPq3lFT+weVCJmdLZnx/wzvSP62YZd+u1T+1xHqXHKik6957w1rmM0hEIp0MY9gwo8Gxk7ryWpFfOaXcdoCKP5oha1p/X8I5m+Uo9VC5q106N9NIuB1W82duvj//mQvv2OM13HqZs/75DTLFss6Vt3PO06hvc27hlUOhnT+1681nWUhvDzh3fpkZ0D+qf/2ug6StWm7nAuim+/w4FsQfdv7dM3f7PJq+FlPtq+f0SS9K4XHelV570lndB/P75X37lrs1cdrMd3D6olnfDumD9j9Tz9273bXceoce8zvfrdJm5y1Ovp7iFt7hlxHeMgMSO9+OguRpvUoW+0oJccu9i78wPq97OHdmlNV4vrGJMyZwos1CewVmlP5jA0gqXtTXpwW7/+sLnXdZQa61bOcx3hIG2ZpKykwEqerT7unWJgJUmtHnWJJCmTDIsq3+7ml4LAu+dKkk5fNV+nr/Lrrvm1tzyqf/3dFtcxDmKt1bb9oyqU/Dq4dvVnde5RC/TXFxzjOkrVzzfs0nfu2qKStYqxPt6EgkBc1zS415y81HWESfPvHQlOlYKxiyhM7OqLT9BrT/Hvhe/bpsyS1JYJTzfFUqB4zJ9jbDBb1Pa+Ecm6TjJmMFtUzEhNnr0WM8nwIqVkPXqyFBakHU1+PVe+ak0nVAysdwuVDOdKenLvkCR5VTKkEjH99QXH6MzV/hTKT+4Jn6dSYOXZKcJLJWuVTlJgYWZRYKFGYK1aUhwW9VrSkdFrT17mOkZDaMskJYUXwz5NU31635D6RwvqbPJnrlMmGdcZq+d5dQEsSZlEpYPlV4FVCqzampKuYzSEyo2OUmC92sg6X+5cff89Z+mctay6+FwqNzoCz250SNLW3pHqNhO+KAXWqyHNmBu4kkaNILDe3TXH7NBevrDb1D3k1SbIPcN5vf/Fa/WxC491HcV7le62bx2swFovhwj6qNpJDqx8uuYslseddlAoT8jXobrWWj25d0gtqbhXi+As7cjotJWdrmNgjvHnFQAvlKxliCCmxfOWtGn1gmYN5YrVu9U+OGJes97y/JWuYzQEX++clwL/5qv5qjU91kn2SbEU5uls9qeT7Ctfh+pW8vzVy45mQQnMebwjoUZgpaaUP90FzB5LO5p0+0df4joGpsDXO+elgA5WvVqrcyH9ujgvlPPQwZpYdaiubwVW+bzQlOImLTBn3pGKJaun9w27jlGjLZ3wbtM0a2315A0A4/nawSqU/FxF0Edjc7D8qpILQaCYkVq4OJ9QOunnXMhKHqYZAHOkwFrb1apiYLXZswIrHjM6t3mBV/NRAssqggAOrTJRvOTRhZ21VsXAejXnw2dt6bE5WD4plqzam5LeLezio7Ehgo6DHKAyRLCZhbKAuVFgveuFR+qd5652HaPGhh39uvhrd+mxXYNq9uiOXa5YYjlTAIdUOTfsHcxptFBynCZUaaZVOjN4bq0ZPwusQilgeGCdMp52sCo3Xny6pgFcmTPvSL7dFTtpeYfOWbtA927pVd+o6zRjjDFe7qEEwL3OppSWdWa0qy+r3uG86zhVqXhMz1vS5jpGQ6hul+BZ+6NYCtTZnHEdoyFUCyzPhupWCizmYAFzqMDyjTFG33/P2a5jAEDdUomYfvf/vcx1DExBczIuI//mYJWs1TxWEKxLJuHnKoKBpYMFVFBgAQAwR8RiRs2puAayRe3qz7qOU5UrMESwXj6v5imxyAUgUWABADCnrJjXrCf2DKrHo2GekrRyfrPrCA0hnfBzNU+GCAJjKLAAAJhD/vPPz1H3YM51jBrGhJt+Y2KJeEzxmPFuiODYIhdcWgK8CgAAmENa0gmWtW9w6UTMv1UEmYMFVLEeNwAAQANJJ2JeDhE0GhvCCMxlvAoAAAAaSCYZV8mzRS6CwCqdjHm3LQ7gAgUWAABAA8kk4/51sKxlBUGgjAILAACggTQl4/7NwQpY4AKooMACAABoIJlk3MtVBFngAghxqwEAAKCBNKViGsoV9eD2PtdRqvpHC1rWmXEdA/ACBRYAAEADufCEJeodysunHtbC1rRefdJS1zEALxgbfYvZp9c7AAAAAEyHQy6byRwsAAAAAIgIQwQBAAAwdQM7pYFdrlPUisWkxSdJcS55MXMYIggAAICp+4eVUrbfdYqDvfKz0gv+3HUKzE6HHCJIOQ8AAICpCUphcdW2TGrzaLGL3Q9K/dtdp8AcQ4EFAACAqSnlw4/pVqm1y22W8eIpKdvnOgXmGBa5AAAAwNRUCizj2aVlLCmN7nedAnOMZ68CAAAANJyirwVWXBrpdZ0Cc4xnrwIAAAA0nGoH65Bz/t2JJ6VRCizMLOZgAZjbHvmxdMtfSzZwnaTW0lOld/zEdQoAqA9DBIEqCiwAc9v2e8OVrzpWuE4yJtsvbb5DCoJwDxcA8F2lwPJtcFQ8KQ3vdZ0CcwwFFoC5LTcgJdLSouNdJxmzf0tYZOX6paZ5rtMAwMR87WDFk2G2wqiUbHKdBnNEJK8CY0yLMeZfjTHfuvHGG6N4SACYGbkhyXh2rymWDD+O9jmNAQB183UOVvV8yjBBzJyorioukfRDa+1P3/SmN737sssui+hhAWCa5Qb9G4YXL18QsHcLgEbh6yqClfPpE7+QOle6zTJeul064vn+FaSIRFQF1gpJGyQpHo9H9JAAMANyg5Lx7LwVK5+a6WABaBS+DhFMZMKPP/uw2xyHcuVd0pITXafANJh0gWWMOUXSVyUtlHSsJCNpi8IC64Eg8GwlLgB4LrmBsYLGF3SwADSaUiH86FuBlemQVp0rBSXXScbkBqW9j0jD3a6TYJpM6qrCGJORdLOkt1tr7zHGXCspI+lqSV8zxrzmhhtuiD4l0L9duusrYydwX3QeIb3ob1ynwFTkBv0rsJiDBaDRlHLhR9+GvBkjpdtcp6hVKULzQ25zYNpM9qriAknrrbX3lD9/SNKF1tphSVeU/+7KqMIBVY/9VLrnm+VWvycn76AoBQVp3eVSywLXaXC48kNSqtV1ilrx8qmZDhaARuHrEEEfxcrD0nMUWLPVZAusE1Wea1W2TtL66OIAzyI3GH488jx/Tt4DO6XdD0kjPf4VWPffKO191HWKWiYmnX65tGCt6yS18sNSptN1ilomHj5fdLAwHXqfDv/4ZsnJUusi1ylwuHwdIuijyqgJOliz1mQLrB5JL5UkY8wxClcPPCfqUMBBKvNkfDpxx1Phx9FetzkOFJSkn/ylJOvX8xUUw2wXfsZ1kjHFfHjX1bchgsaExxcdLEStVJC+9TL/zlsVvr0WExnpnb+UlpzkOon/ipUhgh697/iKAmvWm+yZ7CZJFxtjHpa0T9JbrLU9xpguSZ+X9LdXXHGFrr/+eiWTyaizYi7LDfn3xltZiGDEswuV4X2SLYUb5/q0JO0zv5N6nnKdolblzS3m2SqCUnh8bb1buu0a10lqHftaacXprlM0Bmv9Oz9suTMsrrqODSf/+8LacJ8i69FCBKWC1L9N6n6CAqsevu6D5SMTk2QYIjiLTeqK1Vo7JOmiQ/x9tzFmq6QvXXfddRRXiJ6PCxFUCizf7gQP7Qk/Vjpsvkg2S/s2uk5RKzcQfvTt2JLCPVL2bfTrObOBtP1e6fJbXCdpDLf9Xbg4j2/iKaljpX/7vzXPd52gVmE0LLDyw66TNAaGCNbPmPAagg7WrBXJVYUxplXSGknF1lbPJotjdsgP+ddlqBQwIz1ucxxoaG/4MZF2m+NAqWZp/zPhm3Dck5swlbuHPhZYS07y76757oel3RvCbgN3qSe28dZw9bL2Fa6T1Mq0+1dc+ag6jIsCqy4lhghOSixBB2sWm/JVhTEmIek6SVdJeuPtt99+6fnnnz/VhwVq5Qb8O2lXFiLwbQhQtYPlW4HVEg7/+fWn/Bma1L89/OhjgeWjdKs0sD08xtqWuE7jt+yA1P14uKjLvFWu0+BwVG7qFSiw6sIqgpMTi0v5QdcpME2mfFVhrS1Kemf50y8onIsFRCvr4WawxoRdIl+HCCY8GyKY6QjfeO/6susktUw8HL6IiVX2ktnwQ7+6a8Pd0qM/9mufvOyAJOvfCpWon4mFf+hg1af6+qO7XRcTp4M1i3l2xTpN7viitPkO6dKbXSfB4coPh0PyfBv2Fk+Hi0oURl0nGTOwM3yuUi2uk9RKpKVjXxMOL/OJMdxxrVfLwvC5uvUTrpMcLNns3/mhdZHUtti/m0OoXzwlZfv9Osf7Kj9cvmGVcZ2kMcQS4egcjq2J/fBd0sKjpZd7tujTc5gbZ/3+7dK2e6R/v9x1EhyuwV3SKW+RLvqy6yS1vvNqadP/SP/Ho90KhvZK7cukN37XdRLMRt0bw46RT2IJadlp/nVt0fi+dJy08VfhjSs8t72PhTc5eO+pz02XSlt+y7VpPTbfITV1uk4xKXOjwDJGKo5KT/236yS1mhdIy051naIxBMVw/odvVp4tbfuD1LfVdZJaq1/kOgFmq65jwj/AXJBuKQ/3xISs9WcBo0ZQmZeM52atVMyGIygayNwosM54Vzh8xKehSc/cJe15xHWKxmCDcoHV7jrJwV72yfAPAGD2SbVJI/tdp2gMNvBvexCfpVvDhUF8GxGQbJJSHt3QDkrhsdVMgeWfJSdKSz7tOkWtO78k7XogPHB8W37cN0H5Do9PL3gAwOyXbqXLUDcKrElpWxoWWDvuc52kVjwtrTnfn604KqtT0sFCXVoXhx9LOSnm2QpmhVEp8Gg1rmJ5bw0fhwgCAGavVGt49xwTs4GUYIGLup3719JRL/NrdNWjP5Z+99VwRUhf5rRW9lejg4W6tCwKPxbzfi0RXRgNJxPKoxd8RYO9uAAADS7VMjaKAs/NWv9W8vRZIiUtP911ilrD+8ICqzDiUYFVvuFPBwt1aS0XWJXK3BeVvVte8Wm/NsdMNIUtawAAZkqymQKrXjbwb4N7TM78I8OPhRF/Vu1jiCAmpVJgFT0rsPLlTe9Ov5wheQCAuS3VGi6y5Juhbml4j+sUtXIDUqdHN2YxeZ0rw4+FEbc5xqsUWA02iokCy5WWrvBj5cDxRX5Qal9OcQUAQKolnJNsrT+T/m0g7X1EkgmXkfdFuk06ki1CGlqyKVwjoH+7NOrJ6pn5kfLKhh5Np6kDBZYr8aSU6ZT6d0ijfa7TjMn2S2tf4joFAADupcoFzLY/SPKlwCqF+wJd+m/SMa90nQazzfPfKz3xC9cpah1xlusEk2Zs9KuXeLg6gqf+62pp8+2uUxzASOf+lXTC610HAQDArd0PS7dd7dfKupLUsUK66Dq2eQHcO+SdFwosAAAAAJi8QxZYsZlOAQAAAACzFQUWAAAAAESEAgsAAAAAIkKBBQAAAAARocACAAAAgIhQYAEAAABARCiwAAAAACAiFFgAAAAAEBEKLAAAAACICAUWAAAAAESEAgsAAAAAIkKBBQAAAAARocACAAAAgIhQYAEAAABARBKuAwAAAGASbv+cdM/1rlMc7LS3SS+/xnUKwDkKLAAAgEay6b+l/LDU0uU6yZjhbmnLna5TAF6gwAIAAGgkw/ukTKe0+ATXScbsuE8qZl2nALzAHCwAAIBGMtorxZOuU9QycalAgQVIFFgAAACNIwikbL8UT7lOUsvEpFLedQrACxRYAAAAjSLbJ9nAww5WjCGCQBkFFgAAQKMY3R9+9LGDVcy5TgF4gQILAACgUYz0hB9962DFGCIIVFBgAQAANIqR3vCjjx0sCixAUkTLtBtj1kj6hKQOa20UDwkAAIAD+drBMrFwblipKMXZBQhzWySvAGvt05LeZYz5YRSPBwAz5qF/l37ygfDCwCdLT5HefZvrFMDc9sQvpX97qxSUXCcZUzlXedfBiocfi1kp3uo2C+AYtxgAzG27HwyHtXSucp1kzOj+cNNOayVjXKcB5q4dfww7MvPXuE5SK9kkxTy7hKucqxgmCEy+wDLGnCLpq5IWSjpWkpF0rbX2kxFnA4DpV8xJsaTU9TzXScb0bgqXYi7mpGTGdRpg7hraKyUy0sKjXSfx3/gOFjDHTWqRC2NMRtLNkj5irT1e0qclfVHSV4wx35B02mc/+9noUwLAdClmw9WvfFK5UCmMuM0BzHVDe6WEZ0PxfGXK51GWagcm3cG6QNJ6a+095c8fknShtbZH0pXlv2OVCwCNo5AdK2h8URn6kx+Wmue7zQLMZUO7ww43JhajwAIqJnvb9kRJG8Z9vk7S+ujiAMAMK2bH7rz6gg4W4IfBPXSw6lU5j5YosIDJdrB6JL1Ukowxx0i6RNI5UYcCgBlTzPm3kESsXGDlh93mwOzU/UT4xzerzpVaFrhOMcZaabhb6ljhOkljYIggUDXZAusmSRcbYx6WtE/SW6y1PcaYLkmfl/S3V1xxha6//nolk7TUG5K10n3fGdtnwxeJjHT6FVKapV8RMR87WDE6WJhGN/6p1LfVdYqDHfVy6a0e7faS7ZeCgpRIu07SGCiwgKpJFVjW2iFJFx3i77uNMVslfem6666juGpkex+TbvmQ6xSHlumQ1r3ddQrMNoVR/wqsyhDBPAUWpsFIr9S21K+lxwd2Sk/9l/T1F7hOMqZUCD/6tt+UryiwgKpINlEwxrRKWiOp2NpKh6Gh9W8LPx5xVljQ+OLp/5F2PkCBheh53cFiiCCmQXFUal0kpdtcJxmzYG04d2d4n+sktdqWSM0eDVv0WeXGEHOwgKkXWMaYhKTrJF0l6Y233377peeff/5UHzZ6uSF5t8BhsnnsQsoXlQIr0eTXRWeqTdr1gOsUmI2KHnawYnSwME2KeSko+bly5pKTXafAVFQ7WOyDBUy5wLLWFiW9s/zpFxTOxfLLnf8o/fc1rlMcbNlp0ntvd52iVv+O8CTp25jzTLu06yHph++c+GtnUscR0gVX+7dIAupXyPl3sckqgpgula6obzf30PiqBVbebQ7AA5EMEfRe39bw7tj8ta6TjMn2STvvlwZ3h0MQfNG/XUo2+VcwtC4O5w1svNV1kjFBPhxrfs5f+bXyFSanOCrFPbuhwCqCmC6VrqhvNxXQ+GJ0sDBN1n8vvA485hWuk9RtbhRYUjif6M++4zrFmL2PSv/x7nBBia7nuU4z5pnfSQuPkV72SddJ/Pf4z6T/+bT0P5/ya74aJic/LD3vxdKLPuw6yRgbSE/dJj3x8/BmDBCVkd7w40l/1lAXK2gA2X7p6dulR38s9T3jOg0O16ZfS/uecp1iHBuO5jj+TxrqnDU3CqyLvhz+8cnC50k/+SvpiV9IG3/lOs0YW5JWnystPsF1Ev/1lE9A3U/4NVkck1PKS+1L/TvmExlpaE+4sicQlWx/+LHrGP+OeTS2Ssd9YFd4/kJj6nk6HFm19qWuk4xZeLR05rtdp5iUuVFg+SiekF5/vbTjPtdJahkT3tnExFLlFTODotscOHzWhr+/RJPrJAdLNoeLEQBRqhxTyWa3OTD7VIZaZ/vDZfd9YYzU3BVed2FiQVFa/ULpNV90naShcbS5dPzF4R80pkrXigKrcdnyyqK+LeoiSSkKrLrlh6U9D4dDK30ST0lLT/VrQQlbPqZSLW5zYPaJJ8Il7Yd2h398svBov+bh+ywoMConAhRYwOGqdrC4CG5YlYtNH4ezJFukgR1S79Ouk9Rq6fLvzXekRxrdL615iT+bwg53SzvXh6v2pdtdpxlDBwvT6S/v828vs2++JFwtFhOzQXjT2KdzVoOiwAIOV5ohgg2v0vHwsYO16Hhp3xPSvo2uk9Qa3S8tP911ilrFnCQjXfbvUjzpOk1o6x+k//eKMJtPh1e1g0WBhWnQNC/845OWhVJh1HWKxlC5nslQYE0VBRZwuJiD1fgqBVbSwzlYf/YdqfB11ylq/ed7pM2/cZ3iYMVceBHlS3ElSa2Lwo9Fz+6cVztYDBHEHNHSNbYoFZ5b5XrGt1EKDYgCCzhczMFqfD4PETTGvy7DvNXhyqfW+rVXXjErdSx3naJWpcAqebbpakAHC3NMS5fU/bjrFI2hcn6gwJqymOsAQMOKJ8P5HszBalyBx0MEfdS5KixKfSsaSgWpbZnrFLVSLWGXyLcOlmUOFuaY5vnhOQITo4MVGTpYwFSkWvzsYO3eMLYniS+MkeavCe8m+qI6B8vDDpaP5q0KPxZG/CpKS9lwLzPftHaF3TWfBKVwOW2fVjYEplPLQqmU86/z7qNSpcBiDtZUUWABU5Fq9a/AKubC1ecWnyi1e3RXf+9j4VLaLYtdJxlTKncXKLDq07ky/Lh/S7hKni+KOf86WJLUtjTciNwnQcnPOYfAdGleOLY6nk/zNH1EBysyFFjAVKTb/FuSNjcQfnzV58LNAn2x+2Hp5reGq9D5pOOIsLOGic07MiyyBnZIIx4d94mMtMKzlQ0lqW2JtO0eaevdrpOMKYyEF5zAXNFSPt6LWcl4NDPGGL/ySBRYEaLAAqYi3SYNerahYrZcYC05yW2OAy05UfrgA65TYCqSGemvN7hO0ThOvUzKDbpOcbAjz3OdAJg5lWHpz9zlNseBTFxaebZfxQwFVmQosICpyHSEHZlNv3adZExQDFd7y3S4TgLMbUe/PPwDwJ3VL5Je9QUpP+Q6yThWuv1zUu9maf6RrsOMKYxIMmzjEAEKLGAqXvghP4eXrX2p6wQAALiXSElnvdd1ioPte0p68PvS4E7XSWo1L5Bing1dbEDGWhv1Y0b+gAAAAMCsMdonbb5D3l02z18bDulHvQ65NCUFFgAAAABM3iELLHqAAAAAABARCiwAAAAAiAgFFgAAAABEhAILAAAAACJCgQUAAAAAEaHAAgAAAICIUGABAAAAQEQosAAAAAAgIhRYAAAAABCRhOsAAAAAwJyy9zHpvn+RrHWdpNbSk6XT3uo6RcOjwAIAAABm0h1flB7+Dymecp1kTFCUkhkKrAhQYAEAAAAzJQikTb+W2paGHSNf7Nso7X/GdYpZgQILAAAAs9NQt/Sj90n5IddJxpQK0mivtOQk10lqmZhkS2G+eNJ1moZGgQUAAIDZafeD0qb/ltLtfhUNLYvCPz4x8fBjYdSv56oBUWABAABgdirmwo+LT5Qy7W6z+C5WXly8mJXEczUVLNMOAACA2amYDT8aLnknNL6DhSnhaAMAAMDsVOlgxbjknZAZ38HCVHC0AQAAYHaig1W/GB2sqERytBlj/sQY8y1jzM233nprFA8JAAAATE2lg1UZ/oZnV3mO6GBNWSQFlrX2x9ba90i68uabb47iIQEAAICpoYNVv8pzRAdryqJeRfCqv/iLv4j4ITHjRvdLuUHXKWrF01LbYtcpgJmz8wFp2z2uUxxs7UulhUe5TgEA9al2sCiwJhSjgxWVSRdYxphTJH1V0kJJx0oykj4lKSXpF+vWrftwpAkxs4b3SV86VgoKrpMc7K3/IR11gesUwMy45UPSzvWuUxzs+NdJb/yu6xQAUJ9iNiyujHGdxH90sCIzqQLLGJORdLOkt1tr7zHGXCspI2mfpLdL6vjGN76hK6+8MvqkmBlDe8LiqmOlX/tF7H1MeurXFFiYO0Z6pdbF0uITXCcZs+M+/7rbAPBcijkpxravdWEOVmQme8RdIGm9tbYybuUhSRdaaz8q6Svlv3tfVOHgQKH8ompZKLV6tMP4wE7pmbtcpwBmTn5ISmakeMp1kjEmPnaOAIBGUOlgYWIxOlhRmWyBdaKkDeM+XyfJwzEsOGzF8osq5tlqO02d0q4HpH9Y6TpJrY4jpPfeLsWTrpPU2voHqXeT6xS1TFw65hVS0zzXSRpDfkhKt7pOUcvEpMKI6xQAUL9ClhUE60UHKzKTLbB6JL1Ukowxx0i6RNI5UYeCQwVPV9vpOEIKSpKs6yRj8sPSnoel4W6pfZnrNGOslb77urFi2Sfn/2/p/P/lOoX/glL4BufbsJZY3M/jCgCeDR2s+hn2wYrKZN+9b5J0sTHmYYXzrt5ire0xxnRJ+rykv73iiit0/fXXK5n07I4+6lO5ePLtbk+ySVp0nOsUtQZ3SyM94R+fCqxsX/h7nL9W6ljuOs2YrXdLI/tcp2gM+aHwo2+dZBNjiCCAxlLMUWDVq7IQCB2sKZtUgWWtHZJ00SH+vtsYs1XSl6677jqKq0ZWuXiKcTKaUGVuzEiP2xwHGi7nSTVLyWa3WcaLJ6XsgOsUjaGykITxrINl4tzZBNBYillWEKyXMeHICc7zUxbJu7cxplXSGknF1lbP5gxgcnztYPnI1wKr0iXyaXEEKTxp5yiw6pKrdLA8K7BiMSnn4Z3NnfdL33u9f3ddmxZI7/8t8w4BlyiwJicW9+9c2oCm/O5tjElIuk7SVZLeePvtt196/vnnT/Vh4Up1DhYF1oQqC1sMe1ZgDXtaYJmYlO13naIxeDtEMD62aadP9jwSbpDescKforSYlwa2S9vvk45mewnAmSKLXEwKq8VGYsrvRNbaoqR3lj/9gsK5WGhU1VUEGSI4oUqBRQerPrFkOD8ME6sMEfSlWKgwMamUCxdS8emOcKXjt/AYf477UkEa3CntfogCC3CpMMocrMkwcWlwVzgywBedq6Tm+a5TTIpn797TpG9reOd8yUmuk/iPDlb9TEyKp/0rsIa7w4++XGhWxBLSKB2suuR9HSJYWcI3F+7R5QsfC9J4Ukq1hAUWAHeKWW4aT0Y8IW367/CPL9Id0pV3SPNWu05SN4/ejabRnf8oPfIj6XVfc53Ef3s2hBcpx73WdZLGsPMBafcG6bGfuk4yZtu94aqLx1/sOkmtwkh4R8yn58pXm+8MPx51gdTa5TbLeJv+R9q3UXr0x2Hx4ItdD4QFzXEHrcHk1uCu8L3nkR+7TlJr+TrphR9ynaIxFEalHeslG7hOUqtlgbToeNcpGkN+WJq3Sjr2Na6TNIaVZ0sDO12nGBMUpQd/IN3yYelt/+k6Td3mRoElhXdc77/BdQr/7X1MSmSkdW93naQxrP+utPdR6a6vuE4ypvdpqbnLv9/h/mfCwmH99/waXuajvmfCj+veJrUucptlvKAoPfKf0oM3hecJX+x5REq1+XfMLz8jLLB88uSvwnMW74f16X5c2r/FdYpDMOENGN/mafooOyAtOsG/8wPqd/yfSPOPdJ1iUuZOgYX62JJfF06+61wpbb83/OOT1Z7tGSZJmXZJNjzGfFt+3DdBKfyY8mxV1kRT+DHw7G5+UPTvuZKkxceHf3xSGAkLUt/YQNr3ZDh3zSfDe6TjLpZe/veuk4x58CbpN58Lz6WiwJoQ1zWNb82LXSeYNK5yUCsI/Jpb4bvX/pN05rtdpzjYwmNcJzhYpiP8WCr6NVdmdH/Y9fNJfjic45dscp2kVuXcYEtucxwoKErNC1ynaAzp9vD58nGhkv2bw/NEPO06zZjWJdJ5H/Xr7nllY/sgoL6qR1CSEh4dU5gTPLrKgRdsSUp4tDmt7zId0qpzXKdoDOn28GNQkORREd/zVDiEeP5a10lqLT3FrwtgaayD5dt8lKAkpdtcp2gMlecpKI6thOqDoNy5evP3pdUvdJvFd9XXoWc3OqRwSGVlVU9f0MGCAxRYqGUDKUmBhWmQKRdYex7x68JupEd6ySekF3/MdRL/VTpYgWcXdrY0VsDjuflaYFWGBmY6ncZoCNVOsmc3OqwN56u1LZXalrhOM2be6oYcYobGRoGFWkHJv2FJmB2WnCKteuHYktq+WHA0k5/r5W0HK5DSHs7B8lHlRkdQdJvjQJUCq6nTaYyGUJ0L6eGNDkk6+8+lc//KbRbAMQos1LIBBRamR2uXdMXPXKfAVPg8B4shgvUZ38HySWWIYNM8tzkagbevw8riPIyCAeZOgVXK+7dyUqZD6ljhOsUB7NjdMQAYrzKPwbtVBAt+riLoo8pQypJnBVapEC5+wxD1iXnbSS4XWPwOgTlSYK04Q3r8lnB5Wl8Uc9LADqmly6/VbSyrCAJ4FgkP75zboNzBYg5WXXzuYGU6/FvYxUc+z4WUKLAAzZUC67S3hn98svdx6etnSbse8GtIXmGUDhaAQ6ucq/q3S6N9TqOMKd/FZw5WfdK+zsEqMjywXr53sFItbnMAHpgbBZaPFh0rnfxmactvXSep1bZUOvI81ykA+KhpvrT8dKlvWzjs2hcdK8JcmJjPHSwKrPp4u4ogHSygggLLpUuud50AAOoXT0jv+bXrFJiKVIsk42GBRQerbr6uIsgiF0AVBRYAAHOFMeGCIKO9Uu9m12nGFLIUWPWqzNv2rYPFIhdAFQUWAABzyeLjpW1/kEb3u05Sa9HxrhM0hspcSJ8Wm5EYIgiMQ4EFAMBccsUvpGLWdYoDGIaW1SsWD5e0926IYHnYKYtcABRYAADMKbE4F8GNLpHxb4hgJQ8dLEAx1wEAAAAwCYmMf0MEg5JkYn7t7Qk4QoEFAADQSJIZKfCsgxUUwxUO2SwaoMACAABoKD52sGxpbAEOYI6jwAIAAGgkyWb/5mAFAfOvgDIKLAAAgEaSbPJvFUFbYiVIoIxVBAEAABpJsknKDUhb73adZEx+SOo4wnUKwAsUWAAAAI3ktLdJsaTrFAc74U9cJwC8YKy1UT9m5A8IAAAAAJ455LKZzMECAAAAgIgwRBAAAABT9kTvE9oxtMN1jBpxE9eZS85UMyscYgYxRBAAAABTduYNZypbyrqOcZAPnf4hvfPEd7qOgdnpkEME6WABAABgSkpBSdlSVstalmlJyxLXcaoe6n5I3SPdrmNgjqHAAgAAwJTkg7wkKZ1Iqy3V5jjNmFQ8pYH8gOsYmGNY5AIAAABTUggKkqSYZ5eWcRNXf67fdQzMMX69CgAAANBwCqWwwDLmkFNSnInHKLAw8xgiCGDOK5QKsp6tz5OIJRQz3AMD0BiqHSzPzluJWEJ9uT7XMTDHUGABmNN+9OSP9MnffdJ1jIMc1XmUfvS6H7mOAQB1qXSwfBsimIwl6WBhxlFgAZjTNu7fqJiJaVXbKtdRqvpyfXqq7ymVgpLisbjrOAAwoUoHy7chgolYQoP5QVlrvcuG2YsCC8CcNlIcUSqW0sr2la6jVMUGY9qf26/B/KA6M52u4wDAhCqrCPo4RLBoixotjrLZMGaMX68CAJhhQ/kh77pEiVh474ulhQE0iuoiF4fed9WZpElK4nyKmUUHC8CcNlwcVtxQYAHAVPi8yIUk/eipH2lx82LHaca0Jlv18lUvZ9jiLEWBBWBOG84Pe3dBkIyV77jmKLAANIbKEEHfCoamRJMk6esPfN1xkoP94LU/0AkLTnAdA9Mg8gLrne98p2655RYtWrRIDz/8cNQPDwCRGiwM0sECgCnydRXB1lSrzll6jkq25DpK1VBhSI/0PMLqhrNY5AXW5Zdfrg984AN6+9vfHvVDYw7b3L9Z162/TsWg6DpKjaWtS/Xx53/cuzt2qN9wYbha0PiCAgtAo/F1FUFJSsaTSirpOkZV5VpmpDDiOAmmS11XFcaY4yRdL6lT0vckvc9ae9Shvva8887Tli1bosoHSJLu3H6nbtt6m1qTrd6cvAulgrKlrN578nu1sGmh6zg4TCOFEbUmW13HqEGBBaDR+LqKoI8qCysNF4YdJ8F0mbDAMsYkJN0o6V3W2vuNMf9HEmP/MKMqJ6F1i9Z5U2DtHdmrx3ofU3+u37sC69sbvq2N+ze6jlEjZmK6/ITLdez8Y11HqTFSGFFHusN1jBpxE1fMxJiDhWmxoXuDnup7ynWMgxy/4HivFiGQws5HS7LFdYyG4Osqgj6qDEunwJq96ulgXSLpQWvt/eXPH5W01xjTIunrkvKSbrfW3jhNGQENF8KV3nwprqSxhQj6cn1ugxygGBR13frrlIwllYz7MyRipDCijlSHPn7Wx11HqcqX8iraondzsCQpFUvRwULkssWs3n3ruzVSZGhSPWKK6Xuv/p5O7jrZdRTvVYa90cGaWKWDxetw9qqnwDpZ0gPjPj9R0i8VFl4/tNb+1Bhzs8IuFzAthgpD3s6T8a3A6s32yspqVfsqLWtd5jpO1fq967VlYIvrGDWGCkOS5N2xJYWZ7t51t6767VWuo9R41ZGv0rnLz3UdoyHkS3lt7t/sOkaN9XvXa6Q4ouPmH6f2VLvrOFVWVn25PgU2cB2lKl/Ka+vgVm0f3E6BVYd8iSGC9YopJiPDHKxZrJ6rih5Jx0iSMeZUSW+V9DlJb5K0ofw1/izNgllppDDi3UVwpYPl2ypA+0b3SZJS8ZTjJLWa4k3eXWxWhmf42MGal56nfdl9uvWZW11HqcqVcto6uJUCq06fv/fzuvmJm13HOEg6nlZXU5dXIwKkseW0fZErhsc7XYb6+LzIhW+MMUrEEgwRnMXquWL9nqSfGWM2SLpd0hZr7dPGmO2SVijsblVvV7zlLW/R7bffrn379mnFihW65ppr9K53vWsaomMuGS76u1eRbx2saoEV86zASjRp6+BW5Ut5b4q/yt3DynANn6zpXKM1WuM6Ro2N+zdq4/6NstZyEVWHu3fdrfZUu1a0rXAdpUZLooXfXx2qw7joMtSlutGwZ8u0+4oCa3arp8DKWmvPkiRjzEcl/aj89/8p6WvGmNdI+mnli2+66abIQwJD+SHvCqyYiSlmYurL9rmOUqNntEeShx2sZJOsrK75/TXerNrXPdotSUoYv7qjvmpNtmrX8C7tGdmjJS1LXMfxWn+uX88MPKMj249UV1OX6zg4DJX3HDpY9akMEaR4r0/cxDm2ZrF6rio+ZIx5s6SCpLskfViSrLXDkq6YxmxA1VBhyLuLYGOM0vG0vx0szwqsjlSHMvGMfrn5l66j1GhKNKk50ew6RkOorKZ28xM3a23nWsdpxvSM9uhXW37l1T55o8VRSfJqnhMmp3ITjYvg+lSHCLKKYF1iJkYHaxab8IrVWnutpGtnIMu0+cf7/lF3bLtD17/8etdRcJhGCiNqSbaoq9mvO8GZeEZ7RvZoz/Ae11Gqtg5uVTqe1uIWv5Y7lqQj2o9wHQFT0Jnu1MM9D+vbG77tOspBOtOdyiQyrmPUWNW+Sms613g5BBX1ScVS6h3t9eoc76u+XJ/iJq5FLYtcR2kImURG/bl+jq06fOj2D+l585+nv3vB37mOUje/WgLTZCg/pO1D23X17652HaVGzMRopdepe7Rbr1v7Ov3tC/7WdZQazww8oz/u/qMu+/llrqNU9ef6taRlSUOdiNA4PnLGR9Sf92thl7iJa3nrcs6niNyd2+/U3bvu9m6kgo+e6ntKqXiK9546ffDXH9Q9u+/RtXc3dA9jRjy5/0kdPe9o1zEmZU4UWHETV66U0293/tZ1lBqd6U6d0nWK6xgNoRAUvNzs8cUrXqytA1tdx6jRke7Qy454mesYmKU6M53qzHS6jgHMiJZkC/vR1claW138CRNrSbaoZFmEeyLWWuWDvOal57mOMilzosB6xwnv0Iq2FbLWuo5SdceOO3T/nvsn/kIosIECG3hZYL3jhHfoHSe8w3UMAMA0aE42a392v+sYDSFQQIE1Cc3JZhVKBe0a3uU6So3mRLM60h2uY1SVbEmBDTQvQ4HlnRVtK7y7CA4U6N7d96oUlBifP4HKHR4fCywAwOxFl6F+1lol4xRY9Tqi7QgVbVEb9290HaVGIpbQOUvP8WbIdWV1yvmZ+Y6TTM6cKLB8tCCzQJKUD/Jqivm1ueJAfsCr1bgqLy4KLADATGpONHs1+sVngQ2Uifu10IzP3n7823Xh6gtl5c/x9ZNNP9FX7/+q8kFe6XjadRxJY6tTUmChLgubFkoKiwefdq8fLY7q/r1+Dl30bQVBAMDs1pxspoNVJ2utdxvc+8wY491qv8fNP06SlC1mvSuwGCKIuixoGutg+WQoPyRJ+swLP6OV7SsdpxmTiWd0zLxjXMcAAMwhzQkKrHoFChgi2OCOaAu3UhktjnozD6tQooOFSagMEawcOL4YLgzLyOiCVRd41VkDAGCmNSeaVQr8K7D2DO9R92i36xg1BvODWtG2wnUMTMHy1uWKKaZsMes6SlWlEUEHC3WZl5knI1OdX+SL4eKwlrUuo7gCAMx5zclmFW1R1lpvJv2XbElP9z+t1lSrupr8GTq/sGmhXrHqFa5jYAqS8aQWNS/SzuGd6s32uo4jScqWsmpKNHkzZLFeFFiOJGIJdaQ7woM458dBLEkjhRGdt+I81zEAAHCuOdEsSfrjnj86TjImsIHyQV5fOO8Lev7S57uOg1nmfae8T7/d4de+sSd3new6wqSZaVgdx5/lUDz33Ue+q3v33Os6Rg0jozcf+2ads+wc11EAAHBq28A2fWvDt7xaWVeSlrQs0V+e9pfedNWAOeyQL0IKLAAAAACYvEMWWLGZTgEAAAAAsxUFFgAAAABEhAILAAAAACJCgQUAAAAAEaHAAgAAAICIUGABAAAAQEQosAAAAAAgIhRYAAAAABARCiwAAAAAiAgFFgAAAABEhAILAAAAACJCgQUAAAAAEaHAAgAAAICIJFwHAAAAwOQENnAd4SBGRsYY1zEA5yiwAAAAGsjn7vmcbnjsBtcxDnLJUZfomnOvcR0DcI4CCwAAoIE8tO8hNSWatKh5kesoVXtH9mrj/o2uYwBeoMACAABoIPuz+9WabNXq9tWuo1QN5YeUK+VcxwC8wCIXAAAADaQv16dkLOk6Ro2YiVFgAWUUWAAAAA2iFJQ0lB/yssDKB3nXMQAvUGABAAA0iIH8gKysEjG/ZnnETEz5EgUWIFFgAQAANIy+XJ8kKRn3q4NlZCiwgDIKLAAAgAZRLbAYIgh4iwILAACgQfRl+yT5WWAVS0VZa11HAZzzawAvADgwkB/w7qKgOdHs3RAgYC7qz/WrGBRdx6jaMbRDkp8FVqBARVtU0viVDZhpFFgA5rR/e+LfdO3d17qOcZCVbSv1s0t+5joGMKf9YvMv9LE7PuY6xiH5WGBJUqFU8C4bMNMosADMaVsHtipmYjqy/UjXUap6s73aNrhN1loZY1zHAeasJ/c/KSOjtZ1rXUepkYlnFI/FXceoUSmwcqWcmpPNjtMAbkVaYBljjjj//PO1Z88eGWP03ve+Vx/84Aej/CcAIFK5Uk4Jk9CKthWuo1QFNtD+3H7lSjllEhnXcYA5a9/oPqXjaS1vXe46ivdi5Wn9rCQIRN/BKn7pS1/SunXrNDg4qNNPP10vf/nLdfzxx0f8zwBANPJBvnrn1ReVO9OjxVEKLMChnmwPcyHrVOm2U2ABda4iaIw5zhhzhzHmIWPMR40xTx3q66y1u9atWydJamtr03HHHacdO3ZEGBcAopUr5bwrsCp5RoujjpMAc1v3SDfzieo0foggMNdNeFVhjElIulHSB621J0taI+nhib5vy5Ytuv/++3XWWWdNPSUATJNc0b8CK27GOlgA3Oke7VYqlnIdoyFUzqPshQXUN0TwEkkPWmvvL3/+qKS9xpg1kj4hqcNa+6fjv2FoaEhveMMb9OUvf1nt7e3RJgaACOVKOe8WkqDAwnRav2e9Hu993HWMGsYYnbfiPK/mOgU2UF+2T0tbl7qO0hCqBRZDBIG6CqyTJT0w7vMTJf3SWvu0pHcZY344/osLhYLe8IY36LLLLtMll1wSXVLMiFJQ0jce+ob2Z/e7jlIjHU/rPSe9R52ZTtdRMMvkSjkZ+VVgMUQQ0+ljd3xMe0b2uI5xkF9u/qX+5cJ/8eaGx0BuQEVbpINVJxa5AMbUU2D1SDpGkowxp0p6q6TPHeoLjTHmbW97m4477jh9+MMfjiwkZs6TfU/qGw9+Q8lY0pthU1ZW+VJeK9tW6k3Hvsl1HMwyPs7BqixyMVIYcZwEs9FgflBLW5Z6tTXB7pHdWr93vc67+TzXUaoCG0iSUnEKrHowBwsYU0+B9T1JPzPGbJB0u6Qt5e7VoZz7ve99TyeddJJOPfVUSdJnPvMZvfrVr44iK2bArqFdkqQTF56o9pQfwzuttbp71916rPcx11EwC2WLWf8KLIYIYppYa5UtZbUwttCr1fGWty5XISioGBRdR6nRlmrTvMw81zEaAnOwgDH1FFhZa+1ZkmSM+aikH5X/e4GkT0s6zRjzcWvtZ621v52+qIevFJS0fWi7rLWuo9Toau5SS7LFdYwau4bDAisT92dpaGOMWpIteqTnEddRMAt52cGiwMI0KQQFBTbw7piPmZjWdKxxHQNTwDLtwJh6CqwPGWPeLKkg6S5JH5Yka22PpCunMVtk/vmBf9a3NnzLdYyDrGpfpVtef4vrGDV2j+xWzMS8W5a2NdWqjfs36vJfXu46So2lLUv16Rd+2ruLFdTPxwKrkmekyBBBRKtStFeKeCAqLHIBjJmwwLLWXivp2hnIMm36cn1KxBI6qvMo11Gq+nP9embgGe0c2qllrctcx6naPbRbmXjGm0nGFYuaFmkoP6Sn+g65BZsT+VJe9+25Tx8986Oan5nvOg4OU76U926OBR0sTJdqgRWjwEK0mIM1O1hrvRqqa2X1nYe/o2Wty3TR2otcx6lbPR2shteaatXKtpX62ku/5jpK1aa+TXrfbe/Tx+/8uFa0rXAdp+oPu/+gY+Ydo789+29dR/HerVtu1ef/+Hl99g+fVWuq1XUcHKahwpBeteJV+sCpH3Adpcpaq1f8xyv0qy2/0o4hNmtHdAbyA5KkPz36T/XSlS91nAazyUB+QJf85BL9ZNNPmDPdwO7eebe2D213HeMgbzj6DRRYvvnw6R/Wh0/3a1XDruYutafatX7veq3fu951nBrnrThPi1sWu47hvcreKN0j3XQaGlgxKGpeep53x3w6ntZgflDdI92uo2AWGcwPSpKWtCzx7phHY2tLtUkKCy3OW41rf26/njfveXrl6le6jlK1qn2VXr7q5a5jTMqcKLB8FDMxfeUlX/Fys8fzjzjfdYyG0JxsliSVbMlxEhwua61KtuTdEEFJyiQy1WWigahUzldNySbHSTDbVM6jfdk+r/YWNDJa1LzIy/O8j4pBUSd3naz3nPwe11EaGgWWQ2csOUNnLDnDdQwcpsoKkD6NVcbkWIUri2YS/qyaWdGUaKJ4r9NQfkiP9T7mXUGajCV1StcpXs13KgXlAitBgYVoJWIJLW9drh1DO7Q/t991nBpFW9Tq9tWuYzSEYlBUa5JpD1NFgQUcppZEWGBxEdy4qhuJxvy7s9mcaNaOoR1eLewiSV1NXepId7iOUaM/36+R4oguWnORN3epdw/v1l0779JIcaQ6dMoHlWOeAgvT4ZbX3+LdIhcv/+HLVSgVXMdoCIENVLIl77YQakQUWMBhqpyAKLAaV+ViMx1PO05ysDOWnKHdT+9WX67PdZSq0eKoRgojOrnrZNdRauRLecVMTNeee6033aIHux/UXTvv8m7J6uoQQQosTINELKFEzK9Ly3npeWx5UadKh5uFu6bOr1cB0ECqc7ACCqxGVe1gedL1GO+qs6/SVWdf5TpGjY/85iP67Q7/9pPPlXKan5nvTXElSQubFkqS8gEFFuDSgqYFGugfcB2jIRRtOOWBDtbU+bW7JtBAqnOwLHOwGlWlwPJxDpaPlrUu02hxVNZa11Fq5Et5LW72a0W8BZkFkvzbdLVyzDcnmh0nAWbG/Mx85krXqdrBYg7WlFFgAYcpEUsoFUvRwWpglbv5PnawfLSidYUCG3hXNBSCgncFViaRUUuyRYXAr7kflfMVNxUwV3SmO717HfqKDlZ0GCIITEFzstm7OVjWWj3S84iGC8Ouo9Qwxmh1+2otal7kOkqVz3OwfLSsdZkkKVvKKp3w5znLl/JeHVcVC5sWevc6LNmS0vG0Yob7q5gb5mfmK1/Ky1orY/xZPt5HdLCiQ4EFTEFLssW71Ynypbx6sj06Y/EZWtW+ynWcqoe6H9KTfU+qe9SfDSgrvzsKrPosb10uSdoysEWZuB8dECurfOBngbWoaZE2Zje6jlEjsIE3vztgJszLzJOVVTEoKhlPuo7jtcoN45YUHayposACpqAl2aJ9xX2uY9QYLAxKkj647oM6ddGpbsOMs21wm6767VXqz/W7jlJjdcdqrelY4zpGQ1jRukKndJ2iXcO7FMifPaeWty7XmUvOdB3jIAubFuqPe/6oe3bf4zpKVb6UV1dTl+sYwIyZl5knSRoqDClj/bm5EDdx74anV+aq0cGaOgosYApak63aM7zHq2GCg/lBGRkdM+8Y11FqHNF2hP71Vf/qOgamIBlP6oZX3+A6RsO49LhLvRpKWXH64tNdRwBmzKKmsLv90L6HHCc52GmLTlN7qt11jKrKtQwF1tRRYAFT0J5qV3++37ulq4/sOLK6jDwAN05ddKpXXWRgLjp98en6p/P/yau9sKy1+swfPqOtA1urc1t9MFQYkpFhG4cIUGABU/CX6/7Sywso7lADACDFY3FdsOoC1zEO8kjPI7rp8ZvUk+1xHaVGV1MXi4FEwEzDfiZ+bZACAAAAeCRXyumxnsdcxzjIkpYlWtKyxHWMRnLIapQCCwAAAAAm75AFFhthAAAAAEBEKLAAAAAAICIUWAAAAAAQEQosAAAAAIgIBRYAAAAARIQCCwAAAAAiQoEFAAAAABGhwAIAAACAiCSm4TEPueEWAAAAAMx2dLAAAAAAICIUWAAAAAAQEQosAAAAAIgIBRYAAAAARIQCCwAAAAAiQoEFAAAAABH5/wNwVUWA5gLGqQAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "qc = QubitCircuit(3)\n", "qc.add_gate(\"CNOT\", controls=0, targets=2)\n", "qc.add_gate(\"RX\", targets=2, arg_value=pi/4)\n", "qc.add_gate(\"RY\", targets=1, arg_value=pi/8)\n", "test_processor.load_circuit(qc, merge_gates=True, verbose=True, num_tslots=20, evo_time=5);\n", "test_processor.plot_pulses(title=\"Control pulse for a merged unitary evolution\");" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this figure there are no different stages, the three gates are first merged and then the algorithm finds the optimal pulse for the resulting unitary evolution." ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "qutip-qip version: 0.2.0\n" ] }, { "data": { "text/html": [ "
SoftwareVersion
QuTiP4.6.3
Numpy1.22.2
SciPy1.8.0
matplotlib3.5.1
Cython0.29.27
Number of CPUs12
BLAS InfoOPENBLAS
IPython8.0.1
Python3.9.0 | packaged by conda-forge | (default, Nov 26 2020, 07:53:15) [MSC v.1916 64 bit (AMD64)]
OSnt [win32]
Thu Feb 10 23:43:00 2022 W. Europe Standard Time
" ], "text/plain": [ "" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import qutip_qip\n", "print(\"qutip-qip version:\", qutip_qip.version.version)\n", "from qutip.ipynbtools import version_table\n", "version_table()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.0" } }, "nbformat": 4, "nbformat_minor": 2 }