{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "0",
   "metadata": {},
   "source": [
    "# Simulation & optimal control of a single spin qubit\n",
    "\n",
    "In this tutorial, we'll show you, step-by-step, how to simulate the dynamics of a single spin qubit and perform quantum optimal control using `qruise-ml`. \n",
    "\n",
    "The tutorial consists of the following:\n",
    "\n",
    "1. [Defining the Hamiltonian](#1-defining-the-hamiltonian)\n",
    "    \n",
    "    1.1. [Physical model](#11-physical-model)\n",
    "\n",
    "    1.2. [Time-dependent drive function](#12-time-dependent-drive-function)\n",
    "\n",
    "    1.3. [Drive parameters and channels](#13-drive-parameters-and-channels)\n",
    "\n",
    "    1.4. [Constructing the Hamiltonian](#14-constructing-the-hamiltonian)\n",
    "\n",
    "2. [Defining the quantum simulation problem](#2-defining-the-quantum-simulation-problem)\n",
    "3. [Starting a session and solving the problem](#3-starting-a-session-and-solving-the-problem)\n",
    "4. [Plotting the qubit dynamics](#4-plotting-the-qubit-dynamics)\n",
    "5. [Performing quantum optimal control](#5-performing-quantum-optimal-control)\n",
    "\n",
    "\n",
    "## 1. Defining the Hamiltonian\n",
    "\n",
    "### 1.1. Physical model \n",
    "\n",
    "The system we are interested in is a single electron in a single quantum dot. With spin qubits, spin-up corresponds to the ground state, i.e. $|0\\rangle = |\\uparrow \\rangle$, and spin-down corresponds to the excited state, i.e., $|1 \\rangle = |\\downarrow \\rangle$.\n",
    "\n",
    "Our stationary (time-independent) Hamiltonian, $H_0$ (also known as the drift term), corresponds to the Zeeman interaction between the electron spin and an external static magnetic field:\n",
    "\n",
    "$$\n",
    "H_0 =\\frac{\\gamma}{2} \\vec{B} \\cdot \\vec{\\sigma} .\n",
    "$$\n",
    "\n",
    "Here, $\\vec{B}$ is the external magnetic field vector, and $\\vec{\\sigma} = (\\sigma_x,\\sigma_y,\\sigma_z)$ is the vector of Pauli matrices. The gyromagnetic ratio, $\\gamma$, quantifies the response of an electron to a magnetic field and can be expressed by $\\gamma = \\frac{-g\\mu_B}{\\hbar}$, where $g$ is the $g$-factor ($\\sim 2$ for a free electron), $\\mu_B$ is the Bohr magneton quantifying the magnetic moment of an electron, and $\\hbar$ is the reduced Planck's constant. \n",
    "\n",
    "Let's assume we only want to apply our external magnetic field in the $z$-direction, i.e., $B_x=B_y=0$. Our Hamiltonian then simplifies to\n",
    "\n",
    "$$\n",
    "H_0 = \\frac{\\gamma}{2} B_z \\sigma_z.\n",
    "$$\n",
    "\n",
    "Substituting in the eigenvalues of $\\sigma_z$ (±1), we see that the two spin states have an energy (Zeeman) splitting, $\\Delta E$, given by\n",
    "\n",
    "$$\n",
    "\\Delta E = \\frac{\\gamma}{2} B_z (1) - \\frac{\\gamma}{2} B_z (-1) = \\gamma B_z .\n",
    "$$\n",
    "\n",
    "The corresponding qubit transition frequency is\n",
    "\n",
    "$$\n",
    "\\omega_q=\\gamma B_z\n",
    "$$\n",
    "\n",
    "which is also known as the Larmor frequency. This is the frequency at which the spin precesses about the magnetic field. In the simulations that follow, we use $\\gamma = 2.8 \\times 10^{10}~\\mathrm{Hz~T^{-1}}$ and an external magnetic field of $B_z = 0.1~\\mathrm{T}$.\n",
    "\n",
    "To manipulate the qubit, we apply a time-dependent drive $c(t)$ that couples to the spin through the $\\sigma_x$ operator. The full Hamiltonian is therefore\n",
    "\n",
    "$$\n",
    "H(t) = \\frac{\\gamma}{2} B_z \\sigma_z + c(t)\\sigma_x.\n",
    "$$\n",
    "\n",
    "The first term determines the natural evolution of the qubit, while the second term drives transitions between the $|0\\rangle$ and $|1\\rangle$ states."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1",
   "metadata": {},
   "source": [
    "### 1.2. Time-dependent drive function\n",
    "\n",
    "For the drive, we’ll use a Gaussian pulse modulated by a cosine:\n",
    "\n",
    "$$\n",
    "c(t; \\{a,\\sigma,\\mu,\\omega_d\\}) = \\frac{a}{\\sigma\\sqrt{2\\pi}} \\mathrm{exp}\\left[-\\frac{(t - \\mu)^2}{2\\sigma^2}\\right] \\cos(\\omega_{d}t).\n",
    "$$\n",
    "\n",
    "This is characterised by four parameters:\n",
    "\n",
    "(i) $a$, a scalar that adjusts the amplitude of the pulse\n",
    "\n",
    "(ii) $\\sigma$, which controls the pulse width\n",
    "\n",
    "(iii) $\\mu$, the time at which the pulse reaches its maximum amplitude\n",
    "\n",
    "(iv) $\\omega_{d}$, the local oscillator frequency, which is often chosen to match $\\omega_q$.\n",
    "\n",
    "In QruiseML, <a href=\"https://docs.qruise.com/latest/qruiseml/building-blocks/drives\">drive functions</a> are defined as annotated Python functions. This means that each input parameter, as well as the function output, must have a type annotation. These annotations must use the types defined in the [`types`](../src/qruise/toolset/types.py) module in QruiseML. Here, we'll set $\\mu=\\frac{t_1}{2}$ and use type `Float64` for all the inputs and the output. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "2",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-20T10:11:25.379863Z",
     "iopub.status.busy": "2026-08-20T10:11:25.379036Z",
     "iopub.status.idle": "2026-08-20T10:11:30.557173Z",
     "shell.execute_reply": "2026-08-20T10:11:30.556186Z"
    }
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "from qruise.toolset.types import Float64\n",
    "\n",
    "\n",
    "def drive(t: Float64, amp: Float64, sigma: Float64, omega_d: Float64) -> Float64:\n",
    "    \"\"\"Envelope: Gaussian pulse modulated by a cosine\"\"\"\n",
    "\n",
    "    factor = amp / np.sqrt(2 * np.pi) / sigma\n",
    "    gaussian = factor * np.exp(-((t - t1 / 2) ** 2) / (2 * sigma**2))\n",
    "    # Note: mu is set to t1/2\n",
    "    return gaussian * np.cos(omega_d * t)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3",
   "metadata": {},
   "source": [
    "Now we need to define the time, qubit, and initial drive parameters for the simulation."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "4",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-20T10:11:30.559576Z",
     "iopub.status.busy": "2026-08-20T10:11:30.559260Z",
     "iopub.status.idle": "2026-08-20T10:11:30.563275Z",
     "shell.execute_reply": "2026-08-20T10:11:30.562520Z"
    }
   },
   "outputs": [],
   "source": [
    "# time parameters\n",
    "t0 = 0.0  # initial time (s)\n",
    "t1 = 20e-9  # final time (s)\n",
    "N = 1000  # number of time points\n",
    "ts = np.linspace(t0, t1, N)  # time array\n",
    "\n",
    "# spin qubit parameters\n",
    "gamma = -2.8024951386169e10  # gyromagnetic ratio of an electron (Hz/T)\n",
    "Bz = 0.1  # magnetic field strength (T)\n",
    "omega_q = gamma * Bz  # Larmor (qubit) frequency (Hz)\n",
    "\n",
    "# drive parameters\n",
    "amp = 2.0  # amplitude\n",
    "sigma = 0.2 * t1  # width\n",
    "omega_d = omega_q  # frequency (Hz)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5",
   "metadata": {},
   "source": [
    "It’s a good idea to check your drive behaves as desired before proceeding, so let’s quickly plot it."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "6",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-20T10:11:30.565248Z",
     "iopub.status.busy": "2026-08-20T10:11:30.565073Z",
     "iopub.status.idle": "2026-08-20T10:11:36.924893Z",
     "shell.execute_reply": "2026-08-20T10:11:36.924117Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<script type=\"esms-options\">{\"shimMode\": true}</script><style>*[data-root-id],\n",
       "*[data-root-id] > * {\n",
       "  box-sizing: border-box;\n",
       "  font-family: var(--jp-ui-font-family);\n",
       "  font-size: var(--jp-ui-font-size1);\n",
       "  color: var(--vscode-editor-foreground, var(--jp-ui-font-color1));\n",
       "}\n",
       "\n",
       "/* Override VSCode background color */\n",
       ".cell-output-ipywidget-background:has(\n",
       "  > .cell-output-ipywidget-background > .lm-Widget > *[data-root-id]\n",
       "),\n",
       ".cell-output-ipywidget-background:has(> .lm-Widget > *[data-root-id]) {\n",
       "  background-color: transparent !important;\n",
       "}\n",
       "</style>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/javascript": [
       "(function(root) {\n",
       "  function now() {\n",
       "    return new Date();\n",
       "  }\n",
       "\n",
       "  const force = true;\n",
       "  const version = '3.9.0'.replace('rc', '-rc.').replace('.dev', '-dev.');\n",
       "  const reloading = false;\n",
       "  const Bokeh = root.Bokeh;\n",
       "  const BK_RE = /^https:\\/\\/cdn\\.bokeh\\.org\\/bokeh\\/(release|dev)\\/bokeh-/;\n",
       "  const PN_RE = /^https:\\/\\/cdn\\.holoviz\\.org\\/panel\\/[^/]+\\/dist\\/panel/i;\n",
       "\n",
       "  // Set a timeout for this load but only if we are not already initializing\n",
       "  if (typeof (root._bokeh_timeout) === \"undefined\" || (force || !root._bokeh_is_initializing)) {\n",
       "    root._bokeh_timeout = Date.now() + 5000;\n",
       "    root._bokeh_failed_load = false;\n",
       "  }\n",
       "\n",
       "  function run_callbacks() {\n",
       "    try {\n",
       "      root._bokeh_onload_callbacks.forEach(function(callback) {\n",
       "        if (callback != null)\n",
       "          callback();\n",
       "      });\n",
       "    } finally {\n",
       "      delete root._bokeh_onload_callbacks;\n",
       "    }\n",
       "    console.debug(\"Bokeh: all callbacks have finished\");\n",
       "  }\n",
       "\n",
       "  function load_libs(css_urls, js_urls, js_modules, js_exports, Bokeh, callback) {\n",
       "    if (css_urls == null) css_urls = [];\n",
       "    if (js_urls == null) js_urls = [];\n",
       "    if (js_modules == null) js_modules = [];\n",
       "    if (js_exports == null) js_exports = {};\n",
       "\n",
       "    root._bokeh_onload_callbacks.push(callback);\n",
       "\n",
       "    if (root._bokeh_is_loading > 0) {\n",
       "      // Don't load bokeh if it is still initializing\n",
       "      console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n",
       "      return null;\n",
       "    } else if (js_urls.length === 0 && js_modules.length === 0 && Object.keys(js_exports).length === 0) {\n",
       "      // There is nothing to load\n",
       "      run_callbacks();\n",
       "      return null;\n",
       "    }\n",
       "\n",
       "    function on_load() {\n",
       "      root._bokeh_is_loading--;\n",
       "      if (root._bokeh_is_loading === 0) {\n",
       "        console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n",
       "        run_callbacks()\n",
       "      }\n",
       "    }\n",
       "    window._bokeh_on_load = on_load\n",
       "\n",
       "    function on_error(e) {\n",
       "      const src_el = e.srcElement\n",
       "      console.error(\"failed to load \" + (src_el.href || src_el.src));\n",
       "    }\n",
       "\n",
       "    const skip = [];\n",
       "    if (window.requirejs) {\n",
       "      window.requirejs.config({'packages': {}, 'paths': {}, 'shim': {}});\n",
       "      root._bokeh_is_loading = css_urls.length + 0;\n",
       "    } else {\n",
       "      root._bokeh_is_loading = css_urls.length + js_urls.length + js_modules.length + Object.keys(js_exports).length;\n",
       "    }\n",
       "\n",
       "    const existing_stylesheets = []\n",
       "    const links = document.getElementsByTagName('link')\n",
       "    for (let i = 0; i < links.length; i++) {\n",
       "      const link = links[i]\n",
       "      if (link.href != null) {\n",
       "        existing_stylesheets.push(link.href)\n",
       "      }\n",
       "    }\n",
       "    for (let i = 0; i < css_urls.length; i++) {\n",
       "      const url = css_urls[i];\n",
       "      const escaped = encodeURI(url)\n",
       "      if (existing_stylesheets.indexOf(escaped) !== -1) {\n",
       "        on_load()\n",
       "        continue;\n",
       "      }\n",
       "      const element = document.createElement(\"link\");\n",
       "      element.onload = on_load;\n",
       "      element.onerror = on_error;\n",
       "      element.rel = \"stylesheet\";\n",
       "      element.type = \"text/css\";\n",
       "      element.href = url;\n",
       "      console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n",
       "      document.body.appendChild(element);\n",
       "    }    var existing_scripts = []\n",
       "    const scripts = document.getElementsByTagName('script')\n",
       "    for (let i = 0; i < scripts.length; i++) {\n",
       "      var script = scripts[i]\n",
       "      if (script.src != null) {\n",
       "        existing_scripts.push(script.src)\n",
       "      }\n",
       "    }\n",
       "    for (let i = 0; i < js_urls.length; i++) {\n",
       "      const url = js_urls[i];\n",
       "      const escaped = encodeURI(url)\n",
       "      const shouldSkip = skip.includes(escaped) || existing_scripts.includes(escaped)\n",
       "      const isBokehOrPanel = BK_RE.test(escaped) || PN_RE.test(escaped)\n",
       "      const missingOrBroken = Bokeh == null || Bokeh.Panel == null || (Bokeh.version != version && !Bokeh.versions?.has(version)) || Bokeh.versions?.get(version)?.Panel == null;\n",
       "      if (shouldSkip && !(isBokehOrPanel && missingOrBroken)) {\n",
       "        if (!window.requirejs) {\n",
       "          on_load();\n",
       "        }\n",
       "        continue;\n",
       "      }\n",
       "      const element = document.createElement('script');\n",
       "      element.onload = on_load;\n",
       "      element.onerror = on_error;\n",
       "      element.async = false;\n",
       "      element.src = url;\n",
       "      console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n",
       "      document.head.appendChild(element);\n",
       "    }\n",
       "    for (let i = 0; i < js_modules.length; i++) {\n",
       "      const url = js_modules[i];\n",
       "      const escaped = encodeURI(url)\n",
       "      if (skip.indexOf(escaped) !== -1 || existing_scripts.indexOf(escaped) !== -1) {\n",
       "        if (!window.requirejs) {\n",
       "          on_load();\n",
       "        }\n",
       "        continue;\n",
       "      }\n",
       "      var element = document.createElement('script');\n",
       "      element.onload = on_load;\n",
       "      element.onerror = on_error;\n",
       "      element.async = false;\n",
       "      element.src = url;\n",
       "      element.type = \"module\";\n",
       "      console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n",
       "      document.head.appendChild(element);\n",
       "    }\n",
       "    for (const name in js_exports) {\n",
       "      const url = js_exports[name];\n",
       "      const escaped = encodeURI(url)\n",
       "      if (skip.indexOf(escaped) >= 0 || root[name] != null) {\n",
       "        if (!window.requirejs) {\n",
       "          on_load();\n",
       "        }\n",
       "        continue;\n",
       "      }\n",
       "      var element = document.createElement('script');\n",
       "      element.onerror = on_error;\n",
       "      element.async = false;\n",
       "      element.type = \"module\";\n",
       "      console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n",
       "      element.textContent = `\n",
       "      import ${name} from \"${url}\"\n",
       "      window.${name} = ${name}\n",
       "      window._bokeh_on_load()\n",
       "      `\n",
       "      document.head.appendChild(element);\n",
       "    }\n",
       "    if (!js_urls.length && !js_modules.length) {\n",
       "      on_load()\n",
       "    }\n",
       "  };\n",
       "\n",
       "  function inject_raw_css(css) {\n",
       "    const element = document.createElement(\"style\");\n",
       "    element.appendChild(document.createTextNode(css));\n",
       "    document.body.appendChild(element);\n",
       "  }\n",
       "\n",
       "  const js_urls = [\"https://cdn.holoviz.org/panel/1.8.10/dist/bundled/reactiveesm/es-module-shims@^1.10.0/dist/es-module-shims.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-3.9.0.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.9.0.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.9.0.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.9.0.min.js\", \"https://cdn.holoviz.org/panel/1.8.10/dist/panel.min.js\"];\n",
       "  const js_modules = [];\n",
       "  const js_exports = {};\n",
       "  const css_urls = [];\n",
       "  const inline_js = [    function(Bokeh) {\n",
       "      Bokeh.set_log_level(\"info\");\n",
       "    },\n",
       "function(Bokeh) {} // ensure no trailing comma for IE\n",
       "  ];\n",
       "\n",
       "  function run_inline_js() {\n",
       "    if ((root.Bokeh !== undefined) || (force === true)) {\n",
       "      for (let i = 0; i < inline_js.length; i++) {\n",
       "        try {\n",
       "          inline_js[i].call(root, root.Bokeh);\n",
       "        } catch(e) {\n",
       "          if (!reloading) {\n",
       "            throw e;\n",
       "          }\n",
       "        }\n",
       "      }\n",
       "    } else if (Date.now() < root._bokeh_timeout) {\n",
       "      setTimeout(run_inline_js, 100);\n",
       "    } else if (!root._bokeh_failed_load) {\n",
       "      console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n",
       "      root._bokeh_failed_load = true;\n",
       "    }\n",
       "    root._bokeh_is_initializing = false;\n",
       "  }\n",
       "\n",
       "  function load_or_wait() {\n",
       "    // Implement a backoff loop that tries to ensure we do not load multiple\n",
       "    // versions of Bokeh and its dependencies at the same time.\n",
       "    // In recent versions we use the root._bokeh_is_initializing flag\n",
       "    // to determine whether there is an ongoing attempt to initialize\n",
       "    // bokeh, however for backward compatibility we also try to ensure\n",
       "    // that we do not start loading a newer (Panel>=1.0 and Bokeh>3) version\n",
       "    // before older versions are fully initialized.\n",
       "    if (root._bokeh_is_initializing && Date.now() > root._bokeh_timeout) {\n",
       "      // If the timeout and bokeh was not successfully loaded we reset\n",
       "      // everything and try loading again\n",
       "      root._bokeh_timeout = Date.now() + 5000;\n",
       "      root._bokeh_is_initializing = false;\n",
       "      root._bokeh_onload_callbacks = undefined;\n",
       "      root._bokeh_is_loading = 0;\n",
       "      console.log(\"Bokeh: BokehJS was loaded multiple times but one version failed to initialize.\");\n",
       "      load_or_wait();\n",
       "    } else if (root._bokeh_is_initializing || (typeof root._bokeh_is_initializing === \"undefined\" && root._bokeh_onload_callbacks !== undefined)) {\n",
       "      setTimeout(load_or_wait, 100);\n",
       "    } else {\n",
       "      root._bokeh_is_initializing = true;\n",
       "      root._bokeh_onload_callbacks = [];\n",
       "      const bokeh_loaded = Bokeh != null && ((Bokeh.version === version && Bokeh.Panel) || (Bokeh.versions?.has(version) && Bokeh.versions.get(version)?.Panel));\n",
       "      if (!reloading && !bokeh_loaded) {\n",
       "        if (root.Bokeh) {\n",
       "          root.Bokeh = undefined;\n",
       "        }\n",
       "        console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n",
       "      }\n",
       "      load_libs(css_urls, js_urls, js_modules, js_exports, Bokeh, function() {\n",
       "        console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n",
       "        run_inline_js();\n",
       "        if (Bokeh != undefined && !reloading) {\n",
       "          const NewBokeh = root.Bokeh;\n",
       "          if (Bokeh.versions === undefined) {\n",
       "            Bokeh.versions = new Map();\n",
       "          }\n",
       "          if (NewBokeh.version !== Bokeh.version) {\n",
       "            Bokeh[NewBokeh.version] = NewBokeh;\n",
       "            Bokeh.versions.set(NewBokeh.version, NewBokeh);\n",
       "          }\n",
       "          root.Bokeh = Bokeh;\n",
       "        }\n",
       "      });\n",
       "    }\n",
       "  }\n",
       "  // Give older versions of the autoload script a head-start to ensure\n",
       "  // they initialize before we start loading newer version.\n",
       "  setTimeout(load_or_wait, 100)\n",
       "}(window));"
      ],
      "application/vnd.holoviews_load.v0+json": "(function(root) {\n  function now() {\n    return new Date();\n  }\n\n  const force = true;\n  const version = '3.9.0'.replace('rc', '-rc.').replace('.dev', '-dev.');\n  const reloading = false;\n  const Bokeh = root.Bokeh;\n  const BK_RE = /^https:\\/\\/cdn\\.bokeh\\.org\\/bokeh\\/(release|dev)\\/bokeh-/;\n  const PN_RE = /^https:\\/\\/cdn\\.holoviz\\.org\\/panel\\/[^/]+\\/dist\\/panel/i;\n\n  // Set a timeout for this load but only if we are not already initializing\n  if (typeof (root._bokeh_timeout) === \"undefined\" || (force || !root._bokeh_is_initializing)) {\n    root._bokeh_timeout = Date.now() + 5000;\n    root._bokeh_failed_load = false;\n  }\n\n  function run_callbacks() {\n    try {\n      root._bokeh_onload_callbacks.forEach(function(callback) {\n        if (callback != null)\n          callback();\n      });\n    } finally {\n      delete root._bokeh_onload_callbacks;\n    }\n    console.debug(\"Bokeh: all callbacks have finished\");\n  }\n\n  function load_libs(css_urls, js_urls, js_modules, js_exports, Bokeh, callback) {\n    if (css_urls == null) css_urls = [];\n    if (js_urls == null) js_urls = [];\n    if (js_modules == null) js_modules = [];\n    if (js_exports == null) js_exports = {};\n\n    root._bokeh_onload_callbacks.push(callback);\n\n    if (root._bokeh_is_loading > 0) {\n      // Don't load bokeh if it is still initializing\n      console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n      return null;\n    } else if (js_urls.length === 0 && js_modules.length === 0 && Object.keys(js_exports).length === 0) {\n      // There is nothing to load\n      run_callbacks();\n      return null;\n    }\n\n    function on_load() {\n      root._bokeh_is_loading--;\n      if (root._bokeh_is_loading === 0) {\n        console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n        run_callbacks()\n      }\n    }\n    window._bokeh_on_load = on_load\n\n    function on_error(e) {\n      const src_el = e.srcElement\n      console.error(\"failed to load \" + (src_el.href || src_el.src));\n    }\n\n    const skip = [];\n    if (window.requirejs) {\n      window.requirejs.config({'packages': {}, 'paths': {}, 'shim': {}});\n      root._bokeh_is_loading = css_urls.length + 0;\n    } else {\n      root._bokeh_is_loading = css_urls.length + js_urls.length + js_modules.length + Object.keys(js_exports).length;\n    }\n\n    const existing_stylesheets = []\n    const links = document.getElementsByTagName('link')\n    for (let i = 0; i < links.length; i++) {\n      const link = links[i]\n      if (link.href != null) {\n        existing_stylesheets.push(link.href)\n      }\n    }\n    for (let i = 0; i < css_urls.length; i++) {\n      const url = css_urls[i];\n      const escaped = encodeURI(url)\n      if (existing_stylesheets.indexOf(escaped) !== -1) {\n        on_load()\n        continue;\n      }\n      const element = document.createElement(\"link\");\n      element.onload = on_load;\n      element.onerror = on_error;\n      element.rel = \"stylesheet\";\n      element.type = \"text/css\";\n      element.href = url;\n      console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n      document.body.appendChild(element);\n    }    var existing_scripts = []\n    const scripts = document.getElementsByTagName('script')\n    for (let i = 0; i < scripts.length; i++) {\n      var script = scripts[i]\n      if (script.src != null) {\n        existing_scripts.push(script.src)\n      }\n    }\n    for (let i = 0; i < js_urls.length; i++) {\n      const url = js_urls[i];\n      const escaped = encodeURI(url)\n      const shouldSkip = skip.includes(escaped) || existing_scripts.includes(escaped)\n      const isBokehOrPanel = BK_RE.test(escaped) || PN_RE.test(escaped)\n      const missingOrBroken = Bokeh == null || Bokeh.Panel == null || (Bokeh.version != version && !Bokeh.versions?.has(version)) || Bokeh.versions?.get(version)?.Panel == null;\n      if (shouldSkip && !(isBokehOrPanel && missingOrBroken)) {\n        if (!window.requirejs) {\n          on_load();\n        }\n        continue;\n      }\n      const element = document.createElement('script');\n      element.onload = on_load;\n      element.onerror = on_error;\n      element.async = false;\n      element.src = url;\n      console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n      document.head.appendChild(element);\n    }\n    for (let i = 0; i < js_modules.length; i++) {\n      const url = js_modules[i];\n      const escaped = encodeURI(url)\n      if (skip.indexOf(escaped) !== -1 || existing_scripts.indexOf(escaped) !== -1) {\n        if (!window.requirejs) {\n          on_load();\n        }\n        continue;\n      }\n      var element = document.createElement('script');\n      element.onload = on_load;\n      element.onerror = on_error;\n      element.async = false;\n      element.src = url;\n      element.type = \"module\";\n      console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n      document.head.appendChild(element);\n    }\n    for (const name in js_exports) {\n      const url = js_exports[name];\n      const escaped = encodeURI(url)\n      if (skip.indexOf(escaped) >= 0 || root[name] != null) {\n        if (!window.requirejs) {\n          on_load();\n        }\n        continue;\n      }\n      var element = document.createElement('script');\n      element.onerror = on_error;\n      element.async = false;\n      element.type = \"module\";\n      console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n      element.textContent = `\n      import ${name} from \"${url}\"\n      window.${name} = ${name}\n      window._bokeh_on_load()\n      `\n      document.head.appendChild(element);\n    }\n    if (!js_urls.length && !js_modules.length) {\n      on_load()\n    }\n  };\n\n  function inject_raw_css(css) {\n    const element = document.createElement(\"style\");\n    element.appendChild(document.createTextNode(css));\n    document.body.appendChild(element);\n  }\n\n  const js_urls = [\"https://cdn.holoviz.org/panel/1.8.10/dist/bundled/reactiveesm/es-module-shims@^1.10.0/dist/es-module-shims.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-3.9.0.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.9.0.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.9.0.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.9.0.min.js\", \"https://cdn.holoviz.org/panel/1.8.10/dist/panel.min.js\"];\n  const js_modules = [];\n  const js_exports = {};\n  const css_urls = [];\n  const inline_js = [    function(Bokeh) {\n      Bokeh.set_log_level(\"info\");\n    },\nfunction(Bokeh) {} // ensure no trailing comma for IE\n  ];\n\n  function run_inline_js() {\n    if ((root.Bokeh !== undefined) || (force === true)) {\n      for (let i = 0; i < inline_js.length; i++) {\n        try {\n          inline_js[i].call(root, root.Bokeh);\n        } catch(e) {\n          if (!reloading) {\n            throw e;\n          }\n        }\n      }\n    } else if (Date.now() < root._bokeh_timeout) {\n      setTimeout(run_inline_js, 100);\n    } else if (!root._bokeh_failed_load) {\n      console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n      root._bokeh_failed_load = true;\n    }\n    root._bokeh_is_initializing = false;\n  }\n\n  function load_or_wait() {\n    // Implement a backoff loop that tries to ensure we do not load multiple\n    // versions of Bokeh and its dependencies at the same time.\n    // In recent versions we use the root._bokeh_is_initializing flag\n    // to determine whether there is an ongoing attempt to initialize\n    // bokeh, however for backward compatibility we also try to ensure\n    // that we do not start loading a newer (Panel>=1.0 and Bokeh>3) version\n    // before older versions are fully initialized.\n    if (root._bokeh_is_initializing && Date.now() > root._bokeh_timeout) {\n      // If the timeout and bokeh was not successfully loaded we reset\n      // everything and try loading again\n      root._bokeh_timeout = Date.now() + 5000;\n      root._bokeh_is_initializing = false;\n      root._bokeh_onload_callbacks = undefined;\n      root._bokeh_is_loading = 0;\n      console.log(\"Bokeh: BokehJS was loaded multiple times but one version failed to initialize.\");\n      load_or_wait();\n    } else if (root._bokeh_is_initializing || (typeof root._bokeh_is_initializing === \"undefined\" && root._bokeh_onload_callbacks !== undefined)) {\n      setTimeout(load_or_wait, 100);\n    } else {\n      root._bokeh_is_initializing = true;\n      root._bokeh_onload_callbacks = [];\n      const bokeh_loaded = Bokeh != null && ((Bokeh.version === version && Bokeh.Panel) || (Bokeh.versions?.has(version) && Bokeh.versions.get(version)?.Panel));\n      if (!reloading && !bokeh_loaded) {\n        if (root.Bokeh) {\n          root.Bokeh = undefined;\n        }\n        console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n      }\n      load_libs(css_urls, js_urls, js_modules, js_exports, Bokeh, function() {\n        console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n        run_inline_js();\n        if (Bokeh != undefined && !reloading) {\n          const NewBokeh = root.Bokeh;\n          if (Bokeh.versions === undefined) {\n            Bokeh.versions = new Map();\n          }\n          if (NewBokeh.version !== Bokeh.version) {\n            Bokeh[NewBokeh.version] = NewBokeh;\n            Bokeh.versions.set(NewBokeh.version, NewBokeh);\n          }\n          root.Bokeh = Bokeh;\n        }\n      });\n    }\n  }\n  // Give older versions of the autoload script a head-start to ensure\n  // they initialize before we start loading newer version.\n  setTimeout(load_or_wait, 100)\n}(window));"
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/javascript": [
       "\n",
       "if ((window.PyViz === undefined) || (window.PyViz instanceof HTMLElement)) {\n",
       "  window.PyViz = {comms: {}, comm_status:{}, kernels:{}, receivers: {}, plot_index: []}\n",
       "}\n",
       "\n",
       "\n",
       "    function JupyterCommManager() {\n",
       "    }\n",
       "\n",
       "    JupyterCommManager.prototype.register_target = function(plot_id, comm_id, msg_handler) {\n",
       "      if (window.comm_manager || ((window.Jupyter !== undefined) && (Jupyter.notebook.kernel != null))) {\n",
       "        var comm_manager = window.comm_manager || Jupyter.notebook.kernel.comm_manager;\n",
       "        comm_manager.register_target(comm_id, function(comm) {\n",
       "          comm.on_msg(msg_handler);\n",
       "        });\n",
       "      } else if ((plot_id in window.PyViz.kernels) && (window.PyViz.kernels[plot_id])) {\n",
       "        window.PyViz.kernels[plot_id].registerCommTarget(comm_id, function(comm) {\n",
       "          comm.onMsg = msg_handler;\n",
       "        });\n",
       "      } else if (typeof google != 'undefined' && google.colab.kernel != null) {\n",
       "        google.colab.kernel.comms.registerTarget(comm_id, (comm) => {\n",
       "          var messages = comm.messages[Symbol.asyncIterator]();\n",
       "          function processIteratorResult(result) {\n",
       "            var message = result.value;\n",
       "            var content = {data: message.data, comm_id};\n",
       "            var buffers = []\n",
       "            for (var buffer of message.buffers || []) {\n",
       "              buffers.push(new DataView(buffer))\n",
       "            }\n",
       "            var metadata = message.metadata || {};\n",
       "            var msg = {content, buffers, metadata}\n",
       "            msg_handler(msg);\n",
       "            return messages.next().then(processIteratorResult);\n",
       "          }\n",
       "          return messages.next().then(processIteratorResult);\n",
       "        })\n",
       "      }\n",
       "    }\n",
       "\n",
       "    JupyterCommManager.prototype.get_client_comm = function(plot_id, comm_id, msg_handler) {\n",
       "      if (comm_id in window.PyViz.comms) {\n",
       "        return window.PyViz.comms[comm_id];\n",
       "      } else if (window.comm_manager || ((window.Jupyter !== undefined) && (Jupyter.notebook.kernel != null))) {\n",
       "        var comm_manager = window.comm_manager || Jupyter.notebook.kernel.comm_manager;\n",
       "        var comm = comm_manager.new_comm(comm_id, {}, {}, {}, comm_id);\n",
       "        if (msg_handler) {\n",
       "          comm.on_msg(msg_handler);\n",
       "        }\n",
       "      } else if ((plot_id in window.PyViz.kernels) && (window.PyViz.kernels[plot_id])) {\n",
       "        var comm = window.PyViz.kernels[plot_id].connectToComm(comm_id);\n",
       "        let retries = 0;\n",
       "        const open = () => {\n",
       "          if (comm.active) {\n",
       "            comm.open();\n",
       "          } else if (retries > 3) {\n",
       "            console.warn('Comm target never activated')\n",
       "          } else {\n",
       "            retries += 1\n",
       "            setTimeout(open, 500)\n",
       "          }\n",
       "        }\n",
       "        if (comm.active) {\n",
       "          comm.open();\n",
       "        } else {\n",
       "          setTimeout(open, 500)\n",
       "        }\n",
       "        if (msg_handler) {\n",
       "          comm.onMsg = msg_handler;\n",
       "        }\n",
       "      } else if (typeof google != 'undefined' && google.colab.kernel != null) {\n",
       "        var comm_promise = google.colab.kernel.comms.open(comm_id)\n",
       "        comm_promise.then((comm) => {\n",
       "          window.PyViz.comms[comm_id] = comm;\n",
       "          if (msg_handler) {\n",
       "            var messages = comm.messages[Symbol.asyncIterator]();\n",
       "            function processIteratorResult(result) {\n",
       "              var message = result.value;\n",
       "              var content = {data: message.data};\n",
       "              var metadata = message.metadata || {comm_id};\n",
       "              var msg = {content, metadata}\n",
       "              msg_handler(msg);\n",
       "              return messages.next().then(processIteratorResult);\n",
       "            }\n",
       "            return messages.next().then(processIteratorResult);\n",
       "          }\n",
       "        })\n",
       "        var sendClosure = (data, metadata, buffers, disposeOnDone) => {\n",
       "          return comm_promise.then((comm) => {\n",
       "            comm.send(data, metadata, buffers, disposeOnDone);\n",
       "          });\n",
       "        };\n",
       "        var comm = {\n",
       "          send: sendClosure\n",
       "        };\n",
       "      }\n",
       "      window.PyViz.comms[comm_id] = comm;\n",
       "      return comm;\n",
       "    }\n",
       "    window.PyViz.comm_manager = new JupyterCommManager();\n",
       "    \n",
       "\n",
       "\n",
       "var JS_MIME_TYPE = 'application/javascript';\n",
       "var HTML_MIME_TYPE = 'text/html';\n",
       "var EXEC_MIME_TYPE = 'application/vnd.holoviews_exec.v0+json';\n",
       "var CLASS_NAME = 'output';\n",
       "\n",
       "/**\n",
       " * Render data to the DOM node\n",
       " */\n",
       "function render(props, node) {\n",
       "  var div = document.createElement(\"div\");\n",
       "  var script = document.createElement(\"script\");\n",
       "  node.appendChild(div);\n",
       "  node.appendChild(script);\n",
       "}\n",
       "\n",
       "/**\n",
       " * Handle when a new output is added\n",
       " */\n",
       "function handle_add_output(event, handle) {\n",
       "  var output_area = handle.output_area;\n",
       "  var output = handle.output;\n",
       "  if ((output.data == undefined) || (!output.data.hasOwnProperty(EXEC_MIME_TYPE))) {\n",
       "    return\n",
       "  }\n",
       "  var id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n",
       "  var toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n",
       "  if (id !== undefined) {\n",
       "    var nchildren = toinsert.length;\n",
       "    var html_node = toinsert[nchildren-1].children[0];\n",
       "    html_node.innerHTML = output.data[HTML_MIME_TYPE];\n",
       "    var scripts = [];\n",
       "    var nodelist = html_node.querySelectorAll(\"script\");\n",
       "    for (var i in nodelist) {\n",
       "      if (nodelist.hasOwnProperty(i)) {\n",
       "        scripts.push(nodelist[i])\n",
       "      }\n",
       "    }\n",
       "\n",
       "    scripts.forEach( function (oldScript) {\n",
       "      var newScript = document.createElement(\"script\");\n",
       "      var attrs = [];\n",
       "      var nodemap = oldScript.attributes;\n",
       "      for (var j in nodemap) {\n",
       "        if (nodemap.hasOwnProperty(j)) {\n",
       "          attrs.push(nodemap[j])\n",
       "        }\n",
       "      }\n",
       "      attrs.forEach(function(attr) { newScript.setAttribute(attr.name, attr.value) });\n",
       "      newScript.appendChild(document.createTextNode(oldScript.innerHTML));\n",
       "      oldScript.parentNode.replaceChild(newScript, oldScript);\n",
       "    });\n",
       "    if (JS_MIME_TYPE in output.data) {\n",
       "      toinsert[nchildren-1].children[1].textContent = output.data[JS_MIME_TYPE];\n",
       "    }\n",
       "    output_area._hv_plot_id = id;\n",
       "    if ((window.Bokeh !== undefined) && (id in Bokeh.index)) {\n",
       "      window.PyViz.plot_index[id] = Bokeh.index[id];\n",
       "    } else {\n",
       "      window.PyViz.plot_index[id] = null;\n",
       "    }\n",
       "  } else if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n",
       "    var bk_div = document.createElement(\"div\");\n",
       "    bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n",
       "    var script_attrs = bk_div.children[0].attributes;\n",
       "    for (var i = 0; i < script_attrs.length; i++) {\n",
       "      toinsert[toinsert.length - 1].childNodes[1].setAttribute(script_attrs[i].name, script_attrs[i].value);\n",
       "    }\n",
       "    // store reference to server id on output_area\n",
       "    output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n",
       "  }\n",
       "}\n",
       "\n",
       "/**\n",
       " * Handle when an output is cleared or removed\n",
       " */\n",
       "function handle_clear_output(event, handle) {\n",
       "  var id = handle.cell.output_area._hv_plot_id;\n",
       "  var server_id = handle.cell.output_area._bokeh_server_id;\n",
       "  if (((id === undefined) || !(id in PyViz.plot_index)) && (server_id !== undefined)) { return; }\n",
       "  var comm = window.PyViz.comm_manager.get_client_comm(\"hv-extension-comm\", \"hv-extension-comm\", function () {});\n",
       "  if (server_id !== null) {\n",
       "    comm.send({event_type: 'server_delete', 'id': server_id});\n",
       "    return;\n",
       "  } else if (comm !== null) {\n",
       "    comm.send({event_type: 'delete', 'id': id});\n",
       "  }\n",
       "  delete PyViz.plot_index[id];\n",
       "  if ((window.Bokeh !== undefined) & (id in window.Bokeh.index)) {\n",
       "    var doc = window.Bokeh.index[id].model.document\n",
       "    doc.clear();\n",
       "    const i = window.Bokeh.documents.indexOf(doc);\n",
       "    if (i > -1) {\n",
       "      window.Bokeh.documents.splice(i, 1);\n",
       "    }\n",
       "  }\n",
       "}\n",
       "\n",
       "/**\n",
       " * Handle kernel restart event\n",
       " */\n",
       "function handle_kernel_cleanup(event, handle) {\n",
       "  delete PyViz.comms[\"hv-extension-comm\"];\n",
       "  window.PyViz.plot_index = {}\n",
       "}\n",
       "\n",
       "/**\n",
       " * Handle update_display_data messages\n",
       " */\n",
       "function handle_update_output(event, handle) {\n",
       "  handle_clear_output(event, {cell: {output_area: handle.output_area}})\n",
       "  handle_add_output(event, handle)\n",
       "}\n",
       "\n",
       "function register_renderer(events, OutputArea) {\n",
       "  function append_mime(data, metadata, element) {\n",
       "    // create a DOM node to render to\n",
       "    var toinsert = this.create_output_subarea(\n",
       "    metadata,\n",
       "    CLASS_NAME,\n",
       "    EXEC_MIME_TYPE\n",
       "    );\n",
       "    this.keyboard_manager.register_events(toinsert);\n",
       "    // Render to node\n",
       "    var props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n",
       "    render(props, toinsert[0]);\n",
       "    element.append(toinsert);\n",
       "    return toinsert\n",
       "  }\n",
       "\n",
       "  events.on('output_added.OutputArea', handle_add_output);\n",
       "  events.on('output_updated.OutputArea', handle_update_output);\n",
       "  events.on('clear_output.CodeCell', handle_clear_output);\n",
       "  events.on('delete.Cell', handle_clear_output);\n",
       "  events.on('kernel_ready.Kernel', handle_kernel_cleanup);\n",
       "\n",
       "  OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n",
       "    safe: true,\n",
       "    index: 0\n",
       "  });\n",
       "}\n",
       "\n",
       "if (window.Jupyter !== undefined) {\n",
       "  try {\n",
       "    var events = require('base/js/events');\n",
       "    var OutputArea = require('notebook/js/outputarea').OutputArea;\n",
       "    if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n",
       "      register_renderer(events, OutputArea);\n",
       "    }\n",
       "  } catch(err) {\n",
       "  }\n",
       "}\n"
      ],
      "application/vnd.holoviews_load.v0+json": "\nif ((window.PyViz === undefined) || (window.PyViz instanceof HTMLElement)) {\n  window.PyViz = {comms: {}, comm_status:{}, kernels:{}, receivers: {}, plot_index: []}\n}\n\n\n    function JupyterCommManager() {\n    }\n\n    JupyterCommManager.prototype.register_target = function(plot_id, comm_id, msg_handler) {\n      if (window.comm_manager || ((window.Jupyter !== undefined) && (Jupyter.notebook.kernel != null))) {\n        var comm_manager = window.comm_manager || Jupyter.notebook.kernel.comm_manager;\n        comm_manager.register_target(comm_id, function(comm) {\n          comm.on_msg(msg_handler);\n        });\n      } else if ((plot_id in window.PyViz.kernels) && (window.PyViz.kernels[plot_id])) {\n        window.PyViz.kernels[plot_id].registerCommTarget(comm_id, function(comm) {\n          comm.onMsg = msg_handler;\n        });\n      } else if (typeof google != 'undefined' && google.colab.kernel != null) {\n        google.colab.kernel.comms.registerTarget(comm_id, (comm) => {\n          var messages = comm.messages[Symbol.asyncIterator]();\n          function processIteratorResult(result) {\n            var message = result.value;\n            var content = {data: message.data, comm_id};\n            var buffers = []\n            for (var buffer of message.buffers || []) {\n              buffers.push(new DataView(buffer))\n            }\n            var metadata = message.metadata || {};\n            var msg = {content, buffers, metadata}\n            msg_handler(msg);\n            return messages.next().then(processIteratorResult);\n          }\n          return messages.next().then(processIteratorResult);\n        })\n      }\n    }\n\n    JupyterCommManager.prototype.get_client_comm = function(plot_id, comm_id, msg_handler) {\n      if (comm_id in window.PyViz.comms) {\n        return window.PyViz.comms[comm_id];\n      } else if (window.comm_manager || ((window.Jupyter !== undefined) && (Jupyter.notebook.kernel != null))) {\n        var comm_manager = window.comm_manager || Jupyter.notebook.kernel.comm_manager;\n        var comm = comm_manager.new_comm(comm_id, {}, {}, {}, comm_id);\n        if (msg_handler) {\n          comm.on_msg(msg_handler);\n        }\n      } else if ((plot_id in window.PyViz.kernels) && (window.PyViz.kernels[plot_id])) {\n        var comm = window.PyViz.kernels[plot_id].connectToComm(comm_id);\n        let retries = 0;\n        const open = () => {\n          if (comm.active) {\n            comm.open();\n          } else if (retries > 3) {\n            console.warn('Comm target never activated')\n          } else {\n            retries += 1\n            setTimeout(open, 500)\n          }\n        }\n        if (comm.active) {\n          comm.open();\n        } else {\n          setTimeout(open, 500)\n        }\n        if (msg_handler) {\n          comm.onMsg = msg_handler;\n        }\n      } else if (typeof google != 'undefined' && google.colab.kernel != null) {\n        var comm_promise = google.colab.kernel.comms.open(comm_id)\n        comm_promise.then((comm) => {\n          window.PyViz.comms[comm_id] = comm;\n          if (msg_handler) {\n            var messages = comm.messages[Symbol.asyncIterator]();\n            function processIteratorResult(result) {\n              var message = result.value;\n              var content = {data: message.data};\n              var metadata = message.metadata || {comm_id};\n              var msg = {content, metadata}\n              msg_handler(msg);\n              return messages.next().then(processIteratorResult);\n            }\n            return messages.next().then(processIteratorResult);\n          }\n        })\n        var sendClosure = (data, metadata, buffers, disposeOnDone) => {\n          return comm_promise.then((comm) => {\n            comm.send(data, metadata, buffers, disposeOnDone);\n          });\n        };\n        var comm = {\n          send: sendClosure\n        };\n      }\n      window.PyViz.comms[comm_id] = comm;\n      return comm;\n    }\n    window.PyViz.comm_manager = new JupyterCommManager();\n    \n\n\nvar JS_MIME_TYPE = 'application/javascript';\nvar HTML_MIME_TYPE = 'text/html';\nvar EXEC_MIME_TYPE = 'application/vnd.holoviews_exec.v0+json';\nvar CLASS_NAME = 'output';\n\n/**\n * Render data to the DOM node\n */\nfunction render(props, node) {\n  var div = document.createElement(\"div\");\n  var script = document.createElement(\"script\");\n  node.appendChild(div);\n  node.appendChild(script);\n}\n\n/**\n * Handle when a new output is added\n */\nfunction handle_add_output(event, handle) {\n  var output_area = handle.output_area;\n  var output = handle.output;\n  if ((output.data == undefined) || (!output.data.hasOwnProperty(EXEC_MIME_TYPE))) {\n    return\n  }\n  var id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n  var toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n  if (id !== undefined) {\n    var nchildren = toinsert.length;\n    var html_node = toinsert[nchildren-1].children[0];\n    html_node.innerHTML = output.data[HTML_MIME_TYPE];\n    var scripts = [];\n    var nodelist = html_node.querySelectorAll(\"script\");\n    for (var i in nodelist) {\n      if (nodelist.hasOwnProperty(i)) {\n        scripts.push(nodelist[i])\n      }\n    }\n\n    scripts.forEach( function (oldScript) {\n      var newScript = document.createElement(\"script\");\n      var attrs = [];\n      var nodemap = oldScript.attributes;\n      for (var j in nodemap) {\n        if (nodemap.hasOwnProperty(j)) {\n          attrs.push(nodemap[j])\n        }\n      }\n      attrs.forEach(function(attr) { newScript.setAttribute(attr.name, attr.value) });\n      newScript.appendChild(document.createTextNode(oldScript.innerHTML));\n      oldScript.parentNode.replaceChild(newScript, oldScript);\n    });\n    if (JS_MIME_TYPE in output.data) {\n      toinsert[nchildren-1].children[1].textContent = output.data[JS_MIME_TYPE];\n    }\n    output_area._hv_plot_id = id;\n    if ((window.Bokeh !== undefined) && (id in Bokeh.index)) {\n      window.PyViz.plot_index[id] = Bokeh.index[id];\n    } else {\n      window.PyViz.plot_index[id] = null;\n    }\n  } else if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n    var bk_div = document.createElement(\"div\");\n    bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n    var script_attrs = bk_div.children[0].attributes;\n    for (var i = 0; i < script_attrs.length; i++) {\n      toinsert[toinsert.length - 1].childNodes[1].setAttribute(script_attrs[i].name, script_attrs[i].value);\n    }\n    // store reference to server id on output_area\n    output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n  }\n}\n\n/**\n * Handle when an output is cleared or removed\n */\nfunction handle_clear_output(event, handle) {\n  var id = handle.cell.output_area._hv_plot_id;\n  var server_id = handle.cell.output_area._bokeh_server_id;\n  if (((id === undefined) || !(id in PyViz.plot_index)) && (server_id !== undefined)) { return; }\n  var comm = window.PyViz.comm_manager.get_client_comm(\"hv-extension-comm\", \"hv-extension-comm\", function () {});\n  if (server_id !== null) {\n    comm.send({event_type: 'server_delete', 'id': server_id});\n    return;\n  } else if (comm !== null) {\n    comm.send({event_type: 'delete', 'id': id});\n  }\n  delete PyViz.plot_index[id];\n  if ((window.Bokeh !== undefined) & (id in window.Bokeh.index)) {\n    var doc = window.Bokeh.index[id].model.document\n    doc.clear();\n    const i = window.Bokeh.documents.indexOf(doc);\n    if (i > -1) {\n      window.Bokeh.documents.splice(i, 1);\n    }\n  }\n}\n\n/**\n * Handle kernel restart event\n */\nfunction handle_kernel_cleanup(event, handle) {\n  delete PyViz.comms[\"hv-extension-comm\"];\n  window.PyViz.plot_index = {}\n}\n\n/**\n * Handle update_display_data messages\n */\nfunction handle_update_output(event, handle) {\n  handle_clear_output(event, {cell: {output_area: handle.output_area}})\n  handle_add_output(event, handle)\n}\n\nfunction register_renderer(events, OutputArea) {\n  function append_mime(data, metadata, element) {\n    // create a DOM node to render to\n    var toinsert = this.create_output_subarea(\n    metadata,\n    CLASS_NAME,\n    EXEC_MIME_TYPE\n    );\n    this.keyboard_manager.register_events(toinsert);\n    // Render to node\n    var props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n    render(props, toinsert[0]);\n    element.append(toinsert);\n    return toinsert\n  }\n\n  events.on('output_added.OutputArea', handle_add_output);\n  events.on('output_updated.OutputArea', handle_update_output);\n  events.on('clear_output.CodeCell', handle_clear_output);\n  events.on('delete.Cell', handle_clear_output);\n  events.on('kernel_ready.Kernel', handle_kernel_cleanup);\n\n  OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n    safe: true,\n    index: 0\n  });\n}\n\nif (window.Jupyter !== undefined) {\n  try {\n    var events = require('base/js/events');\n    var OutputArea = require('notebook/js/outputarea').OutputArea;\n    if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n      register_renderer(events, OutputArea);\n    }\n  } catch(err) {\n  }\n}\n"
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.holoviews_exec.v0+json": "",
      "text/html": [
       "<div id='c19155b8-950b-44dc-99bd-0f60942c8ba4'>\n",
       "  <div id=\"ca7797e5-8e97-431e-aa3e-592c288d4d9d\" data-root-id=\"c19155b8-950b-44dc-99bd-0f60942c8ba4\" style=\"display: contents;\"></div>\n",
       "</div>\n",
       "<script type=\"application/javascript\">(function(root) {\n",
       "  var docs_json = {\"913a0bd0-1de7-45f3-b0fd-d5fde9bc4285\":{\"version\":\"3.9.0\",\"title\":\"Bokeh Application\",\"config\":{\"type\":\"object\",\"name\":\"DocumentConfig\",\"id\":\"4dc0c8ed-6382-4cab-935f-bd39ac48a18f\",\"attributes\":{\"notifications\":{\"type\":\"object\",\"name\":\"Notifications\",\"id\":\"c2dea4cd-4bdc-4331-929c-3767fed9ae28\"}}},\"roots\":[{\"type\":\"object\",\"name\":\"panel.models.browser.BrowserInfo\",\"id\":\"c19155b8-950b-44dc-99bd-0f60942c8ba4\"},{\"type\":\"object\",\"name\":\"panel.models.comm_manager.CommManager\",\"id\":\"7716167b-59ea-4b73-907a-c259513c07a5\",\"attributes\":{\"plot_id\":\"c19155b8-950b-44dc-99bd-0f60942c8ba4\",\"comm_id\":\"56ef682f48cb4cc58fb42e6d6bb32ad5\",\"client_comm_id\":\"be13ff0858184c108322f16533b2057b\"}}],\"defs\":[{\"type\":\"model\",\"name\":\"ReactiveHTML1\"},{\"type\":\"model\",\"name\":\"FlexBox1\",\"properties\":[{\"name\":\"align_content\",\"kind\":\"Any\",\"default\":\"flex-start\"},{\"name\":\"align_items\",\"kind\":\"Any\",\"default\":\"flex-start\"},{\"name\":\"flex_direction\",\"kind\":\"Any\",\"default\":\"row\"},{\"name\":\"flex_wrap\",\"kind\":\"Any\",\"default\":\"wrap\"},{\"name\":\"gap\",\"kind\":\"Any\",\"default\":\"\"},{\"name\":\"justify_content\",\"kind\":\"Any\",\"default\":\"flex-start\"}]},{\"type\":\"model\",\"name\":\"FloatPanel1\",\"properties\":[{\"name\":\"config\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}},{\"name\":\"contained\",\"kind\":\"Any\",\"default\":true},{\"name\":\"position\",\"kind\":\"Any\",\"default\":\"right-top\"},{\"name\":\"offsetx\",\"kind\":\"Any\",\"default\":null},{\"name\":\"offsety\",\"kind\":\"Any\",\"default\":null},{\"name\":\"theme\",\"kind\":\"Any\",\"default\":\"primary\"},{\"name\":\"status\",\"kind\":\"Any\",\"default\":\"normalized\"}]},{\"type\":\"model\",\"name\":\"GridStack1\",\"properties\":[{\"name\":\"ncols\",\"kind\":\"Any\",\"default\":null},{\"name\":\"nrows\",\"kind\":\"Any\",\"default\":null},{\"name\":\"allow_resize\",\"kind\":\"Any\",\"default\":true},{\"name\":\"allow_drag\",\"kind\":\"Any\",\"default\":true},{\"name\":\"state\",\"kind\":\"Any\",\"default\":[]}]},{\"type\":\"model\",\"name\":\"drag1\",\"properties\":[{\"name\":\"slider_width\",\"kind\":\"Any\",\"default\":5},{\"name\":\"slider_color\",\"kind\":\"Any\",\"default\":\"black\"},{\"name\":\"start\",\"kind\":\"Any\",\"default\":0},{\"name\":\"end\",\"kind\":\"Any\",\"default\":100},{\"name\":\"value\",\"kind\":\"Any\",\"default\":50}]},{\"type\":\"model\",\"name\":\"click1\",\"properties\":[{\"name\":\"terminal_output\",\"kind\":\"Any\",\"default\":\"\"},{\"name\":\"debug_name\",\"kind\":\"Any\",\"default\":\"\"},{\"name\":\"clears\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"ReactiveESM1\",\"properties\":[{\"name\":\"esm_constants\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}}]},{\"type\":\"model\",\"name\":\"JSComponent1\",\"properties\":[{\"name\":\"esm_constants\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}}]},{\"type\":\"model\",\"name\":\"ReactComponent1\",\"properties\":[{\"name\":\"use_shadow_dom\",\"kind\":\"Any\",\"default\":true},{\"name\":\"esm_constants\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}}]},{\"type\":\"model\",\"name\":\"AnyWidgetComponent1\",\"properties\":[{\"name\":\"use_shadow_dom\",\"kind\":\"Any\",\"default\":true},{\"name\":\"esm_constants\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}}]},{\"type\":\"model\",\"name\":\"FastWrapper1\",\"properties\":[{\"name\":\"object\",\"kind\":\"Any\",\"default\":null},{\"name\":\"style\",\"kind\":\"Any\",\"default\":null}]},{\"type\":\"model\",\"name\":\"NotificationArea1\",\"properties\":[{\"name\":\"js_events\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}},{\"name\":\"max_notifications\",\"kind\":\"Any\",\"default\":5},{\"name\":\"notifications\",\"kind\":\"Any\",\"default\":[]},{\"name\":\"position\",\"kind\":\"Any\",\"default\":\"bottom-right\"},{\"name\":\"_clear\",\"kind\":\"Any\",\"default\":0},{\"name\":\"types\",\"kind\":\"Any\",\"default\":[{\"type\":\"map\",\"entries\":[[\"type\",\"warning\"],[\"background\",\"#ffc107\"],[\"icon\",{\"type\":\"map\",\"entries\":[[\"className\",\"fas fa-exclamation-triangle\"],[\"tagName\",\"i\"],[\"color\",\"white\"]]}]]},{\"type\":\"map\",\"entries\":[[\"type\",\"info\"],[\"background\",\"#007bff\"],[\"icon\",{\"type\":\"map\",\"entries\":[[\"className\",\"fas fa-info-circle\"],[\"tagName\",\"i\"],[\"color\",\"white\"]]}]]}]}]},{\"type\":\"model\",\"name\":\"Notification\",\"properties\":[{\"name\":\"background\",\"kind\":\"Any\",\"default\":null},{\"name\":\"duration\",\"kind\":\"Any\",\"default\":3000},{\"name\":\"icon\",\"kind\":\"Any\",\"default\":null},{\"name\":\"message\",\"kind\":\"Any\",\"default\":\"\"},{\"name\":\"notification_type\",\"kind\":\"Any\",\"default\":null},{\"name\":\"_rendered\",\"kind\":\"Any\",\"default\":false},{\"name\":\"_destroyed\",\"kind\":\"Any\",\"default\":false}]},{\"type\":\"model\",\"name\":\"TemplateActions1\",\"properties\":[{\"name\":\"open_modal\",\"kind\":\"Any\",\"default\":0},{\"name\":\"close_modal\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"BootstrapTemplateActions1\",\"properties\":[{\"name\":\"open_modal\",\"kind\":\"Any\",\"default\":0},{\"name\":\"close_modal\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"TemplateEditor1\",\"properties\":[{\"name\":\"layout\",\"kind\":\"Any\",\"default\":[]}]},{\"type\":\"model\",\"name\":\"MaterialTemplateActions1\",\"properties\":[{\"name\":\"open_modal\",\"kind\":\"Any\",\"default\":0},{\"name\":\"close_modal\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"request_value1\",\"properties\":[{\"name\":\"fill\",\"kind\":\"Any\",\"default\":\"none\"},{\"name\":\"_synced\",\"kind\":\"Any\",\"default\":null},{\"name\":\"_request_sync\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"holoviews.plotting.bokeh.raster.HoverModel\",\"properties\":[{\"name\":\"xy\",\"kind\":\"Any\",\"default\":null},{\"name\":\"data\",\"kind\":\"Any\",\"default\":null}]}]}};\n",
       "  var render_items = [{\"docid\":\"913a0bd0-1de7-45f3-b0fd-d5fde9bc4285\",\"roots\":{\"c19155b8-950b-44dc-99bd-0f60942c8ba4\":\"ca7797e5-8e97-431e-aa3e-592c288d4d9d\"},\"root_ids\":[\"c19155b8-950b-44dc-99bd-0f60942c8ba4\"]}];\n",
       "  var docs = Object.values(docs_json)\n",
       "  if (!docs) {\n",
       "    return\n",
       "  }\n",
       "  const version = docs[0].version.replace('rc', '-rc.').replace('.dev', '-dev.')\n",
       "  async function embed_document(root) {\n",
       "    var Bokeh = get_bokeh(root)\n",
       "    await Bokeh.embed.embed_items_notebook(docs_json, render_items);\n",
       "    for (const render_item of render_items) {\n",
       "      for (const root_id of render_item.root_ids) {\n",
       "\tconst id_el = document.getElementById(root_id)\n",
       "\tif (id_el.children.length && id_el.children[0].hasAttribute('data-root-id')) {\n",
       "\t  const root_el = id_el.children[0]\n",
       "\t  root_el.id = root_el.id + '-rendered'\n",
       "\t  for (const child of root_el.children) {\n",
       "            // Ensure JupyterLab does not capture keyboard shortcuts\n",
       "            // see: https://jupyterlab.readthedocs.io/en/4.1.x/extension/notebook.html#keyboard-interaction-model\n",
       "\t    child.setAttribute('data-lm-suppress-shortcuts', 'true')\n",
       "\t  }\n",
       "\t}\n",
       "      }\n",
       "    }\n",
       "  }\n",
       "  function get_bokeh(root) {\n",
       "    if (root.Bokeh === undefined) {\n",
       "      return null\n",
       "    } else if (root.Bokeh.version !== version) {\n",
       "      if (root.Bokeh.versions === undefined || !root.Bokeh.versions.has(version)) {\n",
       "\treturn null\n",
       "      }\n",
       "      return root.Bokeh.versions.get(version);\n",
       "    } else if (root.Bokeh.version === version) {\n",
       "      return root.Bokeh\n",
       "    }\n",
       "    return null\n",
       "  }\n",
       "  function is_loaded(root) {\n",
       "    var Bokeh = get_bokeh(root)\n",
       "    return (Bokeh != null && Bokeh.Panel !== undefined)\n",
       "  }\n",
       "  if (is_loaded(root)) {\n",
       "    embed_document(root);\n",
       "  } else {\n",
       "    var attempts = 0;\n",
       "    var timer = setInterval(function(root) {\n",
       "      if (is_loaded(root)) {\n",
       "        clearInterval(timer);\n",
       "        embed_document(root);\n",
       "      } else if (document.readyState == \"complete\") {\n",
       "        attempts++;\n",
       "        if (attempts > 200) {\n",
       "          clearInterval(timer);\n",
       "\t  var Bokeh = get_bokeh(root)\n",
       "\t  if (Bokeh == null || Bokeh.Panel == null) {\n",
       "            console.warn(\"Panel: ERROR: Unable to run Panel code because Bokeh or Panel library is missing\");\n",
       "\t  } else {\n",
       "\t    console.warn(\"Panel: WARNING: Attempting to render but not all required libraries could be resolved.\")\n",
       "\t    embed_document(root)\n",
       "\t  }\n",
       "        }\n",
       "      }\n",
       "    }, 25, root)\n",
       "  }\n",
       "})(window);</script>"
      ]
     },
     "metadata": {
      "application/vnd.holoviews_exec.v0+json": {
       "id": "c19155b8-950b-44dc-99bd-0f60942c8ba4"
      }
     },
     "output_type": "display_data"
    },
    {
     "data": {},
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.holoviews_exec.v0+json": "",
      "text/html": [
       "<div id='3142d7fa-a8ff-4639-904d-dbc915dc3f29'>\n",
       "  <div id=\"e2eb01e1-0804-4466-866a-18b3b18be821\" data-root-id=\"3142d7fa-a8ff-4639-904d-dbc915dc3f29\" style=\"display: contents;\"></div>\n",
       "</div>\n",
       "<script type=\"application/javascript\">(function(root) {\n",
       "  var docs_json = {\"fd904c4f-f353-4e48-90ae-3d19fb7e452e\":{\"version\":\"3.9.0\",\"title\":\"Bokeh Application\",\"config\":{\"type\":\"object\",\"name\":\"DocumentConfig\",\"id\":\"045ea590-2ff3-4610-b898-303a8bea0023\",\"attributes\":{\"notifications\":{\"type\":\"object\",\"name\":\"Notifications\",\"id\":\"5f2c1195-83b4-4a00-82e5-be8efd29a537\"}}},\"roots\":[{\"type\":\"object\",\"name\":\"Row\",\"id\":\"3142d7fa-a8ff-4639-904d-dbc915dc3f29\",\"attributes\":{\"name\":\"Row00296\",\"tags\":[\"embedded\"],\"stylesheets\":[\"\\n:host(.pn-loading):before, .pn-loading:before {\\n  background-color: #c3c3c3;\\n  mask-size: auto calc(min(50%, 300px));\\n  -webkit-mask-size: auto calc(min(50%, 300px));\\n}\",{\"type\":\"object\",\"name\":\"ImportedStyleSheet\",\"id\":\"a16af602-8ec6-4385-8785-f58397e27d2c\",\"attributes\":{\"url\":\"https://cdn.holoviz.org/panel/1.8.10/dist/css/loading.css?v=1.8.10\"}},{\"type\":\"object\",\"name\":\"ImportedStyleSheet\",\"id\":\"e1a94a94-8dc1-44ea-8425-fe6ea8b0fefa\",\"attributes\":{\"url\":\"https://cdn.holoviz.org/panel/1.8.10/dist/css/listpanel.css\"}},{\"type\":\"object\",\"name\":\"ImportedStyleSheet\",\"id\":\"c863221e-31ae-42a9-ac9c-333a27697527\",\"attributes\":{\"url\":\"https://cdn.holoviz.org/panel/1.8.10/dist/bundled/theme/default.css\"}},{\"type\":\"object\",\"name\":\"ImportedStyleSheet\",\"id\":\"39e50f5f-794c-4b7b-b8d2-0c60c1f979bf\",\"attributes\":{\"url\":\"https://cdn.holoviz.org/panel/1.8.10/dist/bundled/theme/native.css\"}}],\"min_width\":700,\"margin\":0,\"sizing_mode\":\"stretch_width\",\"align\":\"start\",\"children\":[{\"type\":\"object\",\"name\":\"Spacer\",\"id\":\"ef8f005b-f4b8-4e92-b52d-4e4bda43528d\",\"attributes\":{\"name\":\"HSpacer00300\",\"stylesheets\":[\"\\n:host(.pn-loading):before, .pn-loading:before {\\n  background-color: #c3c3c3;\\n  mask-size: auto calc(min(50%, 300px));\\n  -webkit-mask-size: auto calc(min(50%, 300px));\\n}\",{\"id\":\"a16af602-8ec6-4385-8785-f58397e27d2c\"},{\"id\":\"c863221e-31ae-42a9-ac9c-333a27697527\"},{\"id\":\"39e50f5f-794c-4b7b-b8d2-0c60c1f979bf\"}],\"min_width\":0,\"margin\":0,\"sizing_mode\":\"stretch_width\",\"align\":\"start\"}},{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"e019151e-822c-43d6-bc75-192757eb61e2\",\"attributes\":{\"width\":700,\"height\":300,\"margin\":[5,10],\"sizing_mode\":\"fixed\",\"align\":\"start\",\"x_range\":{\"type\":\"object\",\"name\":\"Range1d\",\"id\":\"73a3e6ac-f3f6-4e36-89ee-e30c8e854730\",\"attributes\":{\"name\":\"time\",\"tags\":[[[\"time\",\"s\"]],[]],\"end\":2e-08,\"reset_start\":0.0,\"reset_end\":2e-08}},\"y_range\":{\"type\":\"object\",\"name\":\"Range1d\",\"id\":\"bffd54cd-5fa1-4b4c-ab4b-996e2920950d\",\"attributes\":{\"name\":\"Amplitude (arb. u.)\",\"tags\":[[[\"Amplitude (arb. u.)\",null]],{\"type\":\"map\",\"entries\":[[\"invert_yaxis\",false],[\"autorange\",false]]}],\"start\":-238656852.03173673,\"end\":232190178.28773406,\"reset_start\":-238656852.03173673,\"reset_end\":232190178.28773406}},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"9dbb9760-f776-4346-983e-2001a6fa0e53\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"d299a56e-f51c-4671-bdc5-dc3ed591d9c4\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"40ccce3f-4963-4c5f-a316-d66e2392c059\",\"attributes\":{\"text_color\":\"black\",\"text_font_size\":\"12pt\"}},\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"9ef1a5a5-1ee5-4cb2-9191-e6d090cfa553\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"99e43222-8baa-49e7-9327-8b478175cb3e\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"8b804405-0c54-4acd-853f-7b7019d59852\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"ddc2a5bb-c1d9-49d4-91c8-e9d9083c1d52\"},\"data\":{\"type\":\"map\",\"entries\":[[\"time\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"H4sIAAEAAAAA/y2XZVRUbRuFsVBEEUEUFJUukW6YzXTHmTMzdjcGL3ZhN2J3d2J3d6GI3d3Y3fV9a7n9w1JhOOd57nvv63Jy+vfn98vV/QPK7JD8+3pC8mcTbjUefp5/vyr5FeLp/XLELf77fcmg4p4RB+SP+P9PJYNc7p4afbSE3/dSkqvUdrQo3/D730kOZN4onf/wPX/uo0TS3E18t/QTf/6LZP8AxRJ726/8nG+SjNn93u0K/MHP+ynZt319Zu3Hv/i5fyQZlx5OHLb8Lz/fCS2+ub7tEVcK/35PKdQes7L6iqml8e85y+COlwzXPpTBv99bFguW32rvYiuHf+/rjObxfSakb3XGv+coj9pH3Ld386yAf+9VAXeEgtuLerrg33NVxPx7qrIXL1XEv3NxRbPs+/XKJlTCv+esBN/fA2xJ0yvj3zm44fZ4r4GdPrnh33NXgblyI6spwh3/ztkdG+zB7TvcdOd7VIXb/A/9huRV5ftURfajg/mz0zz4Xh44GzFh8eYXHnw/T9Tv0WTb6bmefE9PTNgdeuqRvhrftxpeO32+9etHNb63F0zaI2+9Crz4/tWxftKkMtFNq/McqqPytWY1tK41eB410K1ORL3We2vwXLxxtv1XDOjizfPxRv31x8RptXx4Tj7I/zSlw7ozPjyvmniV3nLA8YE1eW41YRwROfFuvVo8v1pYd/r7kq+3avEcfVHJ4+R293xfnqcvujaeXhieUZvnWhtFi1vfkb+qzfOtg8iSqPdN59fhOddBfvSvsr2NdXnedfGqT6H3xF91ee5+CGlpmGlr4Mfz98PV0nF+rTb48R78MHql99quzv68D38k6f/G92/hz3vxx9PXT/aP2uHP+/HHzClFmqluAbynAKgSt15Y2CGA9xWAz9fnNC04EMB7C8CK3KFPdlYP5P0FwuHX8b9j2YG8x0CUO2b6fv5EIO8zENs7Joy4UyeI9xqE9q61Kr/oE8T7DYLXxlKzvhQH8Z6DcFws8SsTGsz7DkbvL8VrqwwJ5r0HI3ju9gTfa8G8/xBckcw/EBYdwjkIwagHw7WJY0I4DyFIHJV1UXYvhHMRiidhQjNzcijnIxQzipKeNpkUyjkJhSqndk7HZ6GclzB89iz7o2dmGOcmDCt2vhgxdFYY5ycMjqYXKk94G8Y5Cke5vztnzdGEc57CsX3pQv+Vi8I5V+Fopx5VsOVrOOcrAtVedEk8aIngnEXg2ATx4JlVEZy3CPSKTdVd/xvBuauHoCt1Lz1uWI/zVw+X+zk3f7+xHuewHkb6vn76u3wk5zESCYcu5VRsFcm5jMTjtnt+VN8VyfmMxPTyS0YGutfnnNaHsmCMW0yn+pzX+vhkzp6dcag+57Y+ln+wB+i8ozi/UbDPTF/nyIniHEehbFpAUptTUZznKGy7U+FQtl805zoa7Ya91Q3sF835jka14KuXxpyP5pxHo027u1H6ajGc9xik7bjQU5DGcO5j4FHh+K4GXWM4/zF40XjX72azY7gHMThSUCBveyyG+xCDub8Xjsl6F8O9iEUPy9Si/3xjuR+x0C8ZVbWPNpZ7EouAj/0a5PaK5b7E4oey67zhi2O5N7G4OLPl/bFFsdyfWKwtEYMnfYvlHsVheJq684ygOO5THJrkp26cJ8Rxr+IQezfy05LcOO5XHFxi/FJXr47jnsXhwTDPwRsux3Hf4rD7kvPRbU7x3Lt4TAn+UX5vZDz3Lx5ZfV8bDzeK5x7GQ1Z4f8rJkfHcx3j41Lp89eymeO5lPN53PVnr8u147mc8Cg/saXWzQgL3NAFL3DesuJ+QwH1NQP82S148bZXAvU2Addv06Nf5CdzfBIQ7j+31cVcC9zgBpRoN3P39cQL3OQE31mT/+eueyL1OxOafrRXOkkTudyLGmRxjK2Ulcs8T0XqR9qzHjETueyJS36d7+BxO5N4noqoiumHd14nc/yQ8nx4wP9gniTmQhMNPvR7UUyUxD5IwJ8UlJK57EnMhCd3zfnVOWZDEfEiC7vbbjShMYk4kwT/q0Sfl5yTmRTK+D7maavBPZm4k48KFwsFWUzLzIxlrAvcfbdg/mTmSjGG9N1VosSKZeZKMxieXmdpdSGauJCPWZ9bUzr+TmS8pcOmSdy0nPIU5k4IH+wb59nWkMG9SsNute+tBw1KYOymY0qrdyhHrU5g/Kcja0vDluBspzKEUyMoaYiaXS2UepcKnAXrPjE1lLqXi/arYPfObpzKfUlH4Pejv0nGpzKlULDZ4K9dsT2VepaLfAtdxGx+kMrdSIbz9c3Z75TTmVxrCZB889qWmMcfS4DTtScMj7dOYZ2m4/vj6/FNT0phradiUVPSgeH8a8y0NY8ceDLnyPI05l4ZWN7d0ueWVzrxLR0rkyk0PZOnMvXS4D57z+Vm3dOZfOkrO5ae9mZPOHEzHIf+hQz4dT2cepmN2z57HfrxPZy5mIOd4B5dSdTKYjxnQ1mhiLq/PYE5mwC/LNK1ynwzmZQa+7ZFe91yawdzMwPlKCbVrFmcwPzOwukVoG78fGcxRCYZuqrkqJETCPJWgUWm3V5GihLkqQYy9VGz8YAnzVYIKKz/1Tl0rYc5KcP/rsz2ZVyXMWwl26W79VZUGcxeYPK9YaYwC8xfo9PrwOLEJmMOANHN7caPRYB4D3lNWe7bcAuYy8O7hvEbt74L5DJxKmLSgS8VM5nQmFo8e/rB7UibzOhP9rvcO7dcmk7mdCSEiq+vgiZnM70yE5TbbPHJPJnM8E07Fli95TzOZ5///OmnJAq2LlLkuxfWUWocMdaXMdymOPZj+0JwoZc5LsSnPrZxokDLvpZgfPzbU0VrK3Jdi7O1S+kZ9pcx/KXqNGti16QQpe0CKVlGfJ7ZYJmUfSGG8lr259W4pe0GKlKEll9qdk7IfpAgKb/Ol4xMpe0IK94u3vLv8lLIvZPg1wJGeXVXG3pChJPBc8+6hMvaHDJeLtEN7SWTsERkO9T6ytK9Nxj6RYV2djOMDsmTsFRlmn9z+bNAQGftFhpE50RWHzZCxZ2TI8VkTObJAxr6RodmRAMuYwzL2jgzaLvO7512TsX9kSKhWffqE1zL2kAx++yftmFxGzj6So1IHlxvTfOTsJTm+uY34OTNazn6S4/HOX7XnquTsKTnOteojXdBUzr6SY6/LuzaLu8vZW3Ks2pI1atkYOftLjmlNH61auUDOHpNjSNnmp9dslbPP5Oiy/uqrdYVy9pocDRsIVTbdk7Pf5FD8LYzd+lnOnlMgerXCvsNVwb5ToJZ1f5/d/gr2ngLlfyTN2ZesYP8p8HHppr0HTQr2oAL3DBF3j7RVsA8VOPNpmdOJ/gr2ogI7F9QOLJykYD8qsEw9S1W0QsGeVGDSW/dO5/Yq2JcKDJydl3fxgoK9qUBHWdn1V54p2J8K2F4MOnf9t4I9qkTmtK/vb3kq2adK1MvoXu1euJK9qkSNJy+SHmYq2a9KlJnYrvETh5I9q8TbpLsDS7oo2bdK3LrXcOHLYUr2rhInx1449GaWkv2rxNZYw6P365XsYSUW3TxW7vNRJftYifEjEPbthpK9rETfyF36n2+V7Gcl2l6J7fannIo9rYJlcMGkUr4q9rUK6aHBW8rGqdjbKoSeX3i5vFbF/lbBs7/314otVOxxFf76T/Vx66Vin6vw8rRrRtU8FXtdhWs9R7WotljFflfhqO/foTV2qNjzKmw83m9ZzSIV+16Fedkfjtd+qGLvqzCmRtcSv28q9r8aPQ89qRjkpiYHqNEyq2X90CA1eUANg8cNS0SamlygRvJesUd9QU0+UCOwXdH0mA5qcoIaVSqrd8bnqskLavzcfvBG0lQ1uUGNZy1Sf6WuVpMf1LhUfmsdyQE1OUKNg5siZdLLavKEGgWNV7ZVvFCTK9SYVdpvtNpJQ77QYETBnNW66hpyhgb/2T3PGCM15A0Nmv7Of22Ra8gdGmhWOrvbGmnIHxrEW4bGNcjWkEM0qPvtu73xSA15RAPXJT37NpurIZdo8FX3ek7LTRryiQaPPnTY1+aEhpyiwbl59++2v60hr2iwV9mkVNYHDblFg1WvLwV2raAlv2gxbaZJ/V8dLTlGiyGZJzv1SNCSZ7ToUiId31uvJddo0XDKnvX9WmnJN1oo0hLOD+yjJedoEf1o/YfB+Vryjha18kO9hi/Vknu0KJ+4JHnULi35R4uPd2o2GVusJQdpcW/09Nzxj7XkIS3ORLstmvhDSy7SYef1MYenuOvIRzosG1bq8fQQHTlJh0kRA51nZ+jISzoMvPQpbJ6oIzfp0DE327Cwk478pIMtuKTbksE6cpQOmcWtJy+friNP6VCv760tq9bqyFU6VPdzXFl7SEe+0qF0YfHX9Vd15Cwd3nTX1tz8Skfe0uFmzSMZ20rryV16nDia3nKnt578pceWrtuH7YnSk8P0WOgVvXy/Uk8e0yPvwOoTh5royWV69OkY8Pxojp58pkcb9/muJ0fryWl6mHd7RZ2eryev6ZHWZpJwdoue3KZHiKtLz/On9OQ3PTy2DZ9x6a6eHKfHn2a/dl79pCfP6fGiXJ+bNyoayHUGXN3w9tdtPwP5zoAjDbPq3k8ykPMM2OD0SPbIaCDvGTB3TbN2T9sYyH0GjBavjn7ez0D+M6DHT8uaVxMN5EADWiwvPPN2uYE8aIDepHjzYY+BXGhA0pd97l/OG8iHBgQsSor//tRATjTATbvJ8euXgbxoxI934f3+ehjJjUY8nbNsbulwI/nRiIvy2vvLZRrJkUYceDnzXgWHkTxpxNrp7qUrdTGSK42YKckLqjLMSL40YvjTMhqPWUZyphHZkwZlea03kjeNaJLydbz3USO50wj1g5wNtW4YyZ9GxOW9OF/nrZEcakSd+HYf/cuZyKMmVLx9xyu4lolcasKXkQ1TwmJN5FMTHta/0KSexkRONaH4qn5QVHMTedWEPUOOLYrtaSK3mrAyDEcSxpnIryZMvbDzcfIiEznWhMEDYsunbzeRZ03oHFgQjjMmcq0JDYqCjLIHJvKtCfLeC7OVX03kXDOi6nhP0VQ2k3fNqHlyylZ9oJnca4ZzjutVU6qZ/GvGB+9R3wSLmRxsxt3Df2ra25vJw2ac7txP0nCgmVxsxg7PDy2bTDGTj81Yuq/L8OarzORkMya2f7K81X4zedmMAW4tT7a9ZCY3m9Fh5/XnHZ6byc9miK3ESp3/msnRFsClKKqbl4U8bUHEFpU1p56FXG1B9aYHe/aUWcjXFpQumzqzT0MLOduCN+u27OrfzULetuCmI/JW7ggLuduCE39W/B4yx0L+tmDLqrp+IzZayOEWLBTmyEcft5DHLcj77tF+3C0LudyCPkvzx+S/t5DPLdgcXObKyTICOV1A6I/MDoVuAnldwILi3K+nfQRyuwDPZbvHFgUJ5HcB4/p+8SmOFsjxAv4a4gvOpQnkeQG9/XIyLqgEcr2Al5/Wnb0oCOR7Aa0Ln7e43FQg5wu4tiDk3ZUOAnlfgKlH22HXugvkfgFH1Ys9buQK5H8BqbXuLLs5RqAHCNj41ifx9lSBPiAg+FiDE3cWCPQCAfNmT2t4b7VAPxBQtdv5kvtbBXqCgDGyygMeHhDoCwJ+e+ldHxcK9AYBPV+Mnv/kskB/EPD8wNH6z+4J9AgBLac5HSx5IdAnBFzpKBFefBboFQIMGQMevHSy0i+sOOy+s8drVys9w4rkJx/LvK1upW9YsX53zIx3/lZ6hxWBE7uFfIi00j+smNNm7c6PyVZ6iBVVkp9pP8ut9BErRrkG3fxistJLrPh5r1WXb42s9BMrum9b8Ot7Wys9xYpnY29O+Jltpa9Y0bx5jbq/+1vpLVZcirVv+jPSSn+xQuc8ReY02UqPseLgzbMXS82z0mesSNxYsV2ZlVZ6jRUFIzSfy2620m+s8G80crTzPis9x4pZkYdrVDhppe9YUbnUn9UuF630HitGXElLc71jpf9Y8X1N3zOVSqz0ICv+G7ytmdtHK33Iiifi+9dV/ljpRSKahkYNqeoi0o9EXPjZ2d2zmkhPEqE5v2pJtboifUnE/uWP46pHiPQmEfH9/Y/VSBTpTyLWmFo4fKQiPUpE3YB5T2saRPqUiBlfrvX1bSDSq0RUPFPNpU5rkX4lYugi69y6XUV6logvPSfW8+8r0rdEdNWe2RcwXKR3iXjoW8EcNEGkf4lo9F55L3i2SA8TUXx8WE7oMpE+JkI590Cp8A0ivUzEnuyfUyN2i/QzETGKlKDIYyI9TcTKGr231z8n0tdE+L7arI6+KdLbREw99OZazBOR/iaiwox6WXHvRHqciMFZnX7E/xTpczZ8kqwYn+hso9fZ0NnjoW9yVRv9zob7T+tsSPG10fNsaLC3aWZaqI2+Z0PRpNnn0+Ns9D4b5O2utJZIbPQ/G3aleHyE1kYPtCGqsmWk1GajD9qw/MF4L3kLG73Qhpo7Tq1UZNnohzZMziuXouployfa4NxSXqgeYqMv2pAbP6SJNs9Gb7ThQ/l9L3UzbPRHGzrd/pZrWGyjR9pwd1Oim6nARp+0wT6qxyLzDhu90obTjTfGCIdt9EsbpFGvDluLbPRMG3aUDrfZrtnomzZEXmv/2P7QRu+0YWnB0t4NXtvonzZ4D73n3OibjR5qw0S77+zGZez0UTvKhjcOb+pmp5faMeD3jD3NfOz0UzveXbhoaBFkp6fa0WFllTsto+30VTtuDzBmt06z01vtEC3j/rZR2emvdpwKPDG5nWCnx9qBb6UDOjS102ft2FaUubVjBzu91o6IJbnKrO52+q0di3vvvtI5107PtaO6/kuHrmPs9F078uvEf+s21U7vtaP0x//G/bfATv+1o9/JdTW7r7bTg+14M+95QY+tdvqwHe1yQiS9DtjpxXbcVLYt7l1opx/bIfgsbtn3sp2ebMeJ17ff9btnpy/bkXHEZ/iAF3Z6sx1bZjbwzP1spz/bEdZl2vJBTg56tAMLM88nDnF10KcdqFat8smh1R30agfySnSNhvs76NcOOO0f/XxEpIOe7UCfKUcHjEp20LcdeNXeqdIYuYPe7UCbNMmCsSYH/duB624DovIaOejhDpgf7Tg4vq2DPu7AsZ0fhQnZDnq5A2n5MQ8n9nfgf7ALgvVAHwAA\"},\"shape\":[1000],\"dtype\":\"float64\",\"order\":\"little\"}],[\"Amplitude (arb. u.)\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"H4sIAAEAAAAA/w2ZZzwVbhTHSWZCRihllygaVkY5KCUqIzKys/fe89rz2tvFdZGRQqVUTqFU/siIjCgiiiRSqL9X5/O8eF4953d+3+d3BKpmXpjdtwB65T5Jy88WQJ1vcesfvSX8Pssz07nfEloFxBa1BC0hT6ar/wSPJRyl15IXoLKE6V/HprqHLYAvP+nsZqkFnAy8uuxvYgGzyU4KB2ktoOQD1wJF2RxaTc7+2qdjBonhl2mK1W/AK2e1YR0eUyjN0ZPyeWMMDS/0jtpYGkFMi0Vb7jtDOEEYXbklZQB00pN7dRz1QbLR7Z15nC68nMxTepVwFR6d5WBWm9GCFJXBiSORF+D9Wbf6j4tqcPmcuVCU6RnwJkqQKmOkwcv5M1dghwhYX1002kwktfWupJ3ZaSuKM3eWLRuzZFAoP21mn74KxqxnnaBdPoftZTMGkkWX8HzpsvCOW1fxrO3QYfs4PWwQpJK7YWeAJ3j9PG3VjZB9k29jg88UHc8xzCYsmuF/zYIUxVEL1CJ1SrGetsK+pv90nVOtcRdnzb6/YzZI+JlHcBOwxc5a3tvO1+1wN4cYKznKHmkL9W+9IDkgf0Wpfkq9I7pyiS031TghFb19079sZ1wlHLFTdHPBE5SuqjOnXJHP65XUwpQr+gv60UsFumHlZccu2g03tI+anGs94Y6EHst7ukbuKHDD9u+IlzveIxUkLoe7I/u7lNewXX99MtEN8XDHtWWO65b67jg1f17qntj2PQ4l+5IxN7zFvmK7X9MNtQtZMx7kueKn1jJX+9cu+IHR54bsB2ckStMcuTDohM1qqW4TdY7ofsl9S9/BATnZ3rMKM9jjfIlt+GiCLQZnPB4++sMGWZReaE+dscaLyd9KJzws0WOMeuwSjzl+yRkmUQ6Y4A+nlZ2KawY4+eIv5RZZFycX0w5nGmrhlSqmqjMH1LCu9jxPBJzCcc3vL/0OvlApriSVhdBtv+uBweRjfOow2parcMT4MqjyaKVnGOvDgG99oHO6ESiLdOgb9ZrBsW4ruU16K8ia5Bm1o9iA+cgebjGwg+cVrB1fBx3g7CW3VTMrZ7BhPDEuNO0KYe94vjjXukMmK4M4+wcPUDPjYHvL4AXpIn6Hw8S84ZVdbOuikg88eXJk+be6L4RT6w+EnvUDk+zCQEsJf6iL/bQ3mT4ATtftZV99GwBnhVkFs5MCIYwnytDvVBDo3topV9MZBFyCtC1XzwWDtm2/bmZ9MBgzJf9ooA4BW/Kfle/KIZDeqct82yoElo59lDB0C4EPqoX6dtYhUOVYaON+JgQKuCv791KFQOdimxVHVTCI4J/WU7LB0OOVz2ByKwgUNfrtIncGwdSxS/Yt6oEwzXrf4pBTACx8mn5E5+8Pd11yj9928oOxw/Uzied9QfQGfaQAow/41r49zNDkBcl8g8arGp5g4+LQd6fDHbiX/pgrmbpC5IHeG9Y7naB0g/HaSrQd8LkeVzz5yRqqHPYxpx20ALmyxV5Nn+sw3fWIw8b7KpxsZpd2DleB1vL9rN+yJ9teH37APasL2P5Okp9BVwe5hf8+PchpjD0avS+NvS3Rb27IQ3v6Juo2XdU/beCIkX5qXGadrlj6xe6vT64H3skWJ9B0eWE2OYlp5ocPqg9Esoly+qMlo1/PG/FAjLQc/TYjHYwic6/kg4+H4u4K8p2e3eEY0NNvc/JPOPoKdhR4j0VgsVOEYXVjJNb+yOT+EhqFM3WXW3WVCfhrv5Ad8yIBr+8zvq6eFo0sRzS7TgjHoPdZiWdclBj83N83r8gTi/TrTtc2/GOxw9Nf9f6LWExIER//QBOHBXMeSz+OxiF5YSopWDUOLdpbGrnV45ASp/fJ9UQcCq1pVCoxxaFhXsFerf9i8ZmB7vmAkFiMPtZTf4c7FncVuUX9LIxBDd2xDd3dMXi1PCPlu300Nowp89E0ELDFz25X/8coZF+6qP+IOgqpGYyCj+yOxOW/hhFFtBH4hCfNTu9dGLooCVDPhIVg0NNcPVO6ILxsHjN+wdkfNXp5zps2+uBqAYujw7gnDsDR1M5hN/xJlsm43+6AR2+Kf94ZZY0CTNq1iceN8cc/D939opqY9vTBk5/BP1TeWznsUWm+BPI3N8O7Mk1g4mYn46N7NnBaM7yysdYJ+P5CzwU9D3hmxGR+tscb7IKYxC9o+EOcvu8O2wdB0JJWZZnNHwZSh7bWvyhFgHvmmXTmj5FQzKZgfyeEAJfcJFyMWGJARJnFPT49FtZ6zni/ZogHzjAHxga3BOBdyyrr6UgEJT7ehdeMyeBeLMOjo5ACoUMnZLkNUuHsi4H7y8fSwDdimaJekQYJ5/3XfdiIkP1cpuSfKxFsKt5E2rRt18tzu07sTAcG+b/VG6fT4dpVNt2blukgzDq7yhuYDl5rZ1Z6o9KBv9ExUDs0HbL2Ly+YOaTDlaGmo1Pq6UAIUvjeypYOdAnV67NviMAWdlTrZgARDr80NT+3lwglnO7SlPI06G6dcW0UTIN3W+v3tARTwe1G9HDiVDJIyyjodBOSwK3CQGhwVyLoKK8uRvjFw0wEfcabl7FAq7ha+oIqBlZHabqLBQiQWN12IvtIJMyTnqQxHgiHvl8H3w+tB8Gpxfkjcel+MCf6XMySyQvoYks0Yl44w9G2chN7dWugNRE+6CmqB7Ki6jtYQ6lxZTR6d2eQPnq2sTzepW2DEpOLmxedXFH4pVjS4QveOPJSxXbIKAA3WRY4XW1D8V8A4UhfUwQ62M4PpEkRkH1hK1mrNAav+CQvjtLHo8lnhXhey0RMyXr3ZvpWMl7S4vsi/CkVV+3iRz7SELH7d9tzy13peIFxMHMPfQby8125vLmagZ7cz/+cepeJ8xmJ6f3VWcg5eXH0n3M2XrDUhzn+HDx3AG69wBxs3vvk7IxOLpb2fDuR1ZOLPHei3E8r5GHv+Y9GqsQ8fH2EYC41kIeFfFQlqTvy0VqO2m0HXz5WMmd9kBPIxwRrxWPLLPmY43/sEPVcHjaTb0Ro1eSheNejQ6+u52HDZwP7qO+5KPOa6mimZy5KPxKllfiQg35mOWfiZXMw9Bf3wI6AbCyijjD5S8nC3ErX8Z9tmfiA177I40UGSsYm9u15lI7Vpv0XCYVE9DLlpY93TsMgyb2EKcMUPOpObpe/n4iH3ke9WV+Pw+72t74C/DHYEb/C9loiCttW1vskBcNxpC7NRZZme34ZqcUtFnuhg4/l07/SjthmSJd1+KsRtvRvsLXu3Q0St4/93PXPBN7eer7kRnICc2aR078qvCG/5Vu1UVAQmLEEh14TjYAub25F7lgCpOxz/LhnMhZ2ajKt3TyWCAE0C/vknFOA5eaE5rs3aRCwl2U61CgdSmwkDRreZwDN1/FDbFeygKvXskizORvq7w784mTOBd5J+QJJ3TwoeXFN2SomH+7QatHHVhaAknvP7YimQlBt20g8V1sEz0qeZA0mFwM//Yjtuesl0LTWxnGDlgTf6ybuy+iSwNpLdbduOgmYG38SLDtI0NXa8O3AAgl4vZ51XKIpBTkOIDzcXQq/OvVH1JlKwWW30kzvOgl47nffvDpCgrpjSu/bakhQSz1bKOFOgv1ybCsVh0ggS1spUlZcAjIHkuWaBorh6LgN78+lIjCWeHpx4XshqA99IygMF0DGML1dHiUf5nSM/wya5sHr0KgTAxs5oFccq51MyAY5CdXjrOuZIMZWVRBkmAFzwZZm9GQi6J+tHPvxOBXm/WM/6XEkgdHDArcdl+Lg6NYP+GZHAPWApOWDLuHws/jmTr9H/iAdwfJsI8AdvI7yCA/KW8BE0Szzg2IuvICd3rduW6KskcjhOgsP/GjdIfD7SwCWp5+r1ZGNwMKMzeEX7tG42df6uZcUj6xPs1KmniVj/f7ysw+/pOH9Q/NNMbPp+EG0kPbgSCZ+/Cad29OajdIhrCMrabnY0ffi7je9fGyxfv1PYmchKuS8XBEnFaHU47tBPodK0Nkw8WK/JgnFhvG8zBoJjyY5HmnLLMWR9Lzz46JleF9pyJqqugyrZsTPVB0ox+CLPgzmUeX4qj1o8uFIORaE6ymYCZCRMbYG1g3IKHMs7/i5EDLGsSUWsGSQ0W3vnrsSuWSUsjnhHZFExt88zGM73Ml4qj5vo0GVjNVyxiwFO8lIrTEUOtFcjufnxj5QDMoxiMpn5NhsGV6AKMZHdmX4bOT4cPlwKcrSiatcUihFCeJQgmAyCc1dPakvlJdgwwUTvha2Yox+mtLyzLoQb/YqPa8qysfnv9uw42ku0m2w/hf/OhsvfjvnHvAsE+VDlZyOUtKxalPIV8s/Dd/QnX912CcJjyUaEXLHYzEqV7w+71gUbh7aqpruC8bMFJ3WrUNeuHWO4cb9divc4cZ1tYb6AKQ3lixLVtlAokNhVpOMN0ztFSTcZQuFyGj2ao/FKJDunn3J0hUHd6JbqwUzk+H0CJ3GW1EifKYhSvf4ZICx5/tDHA+ywLh12r5xPgfW/HTu9u7KB1uhn125vIUgqh918AJ7MXBc+KMn8bME4i8JWfVOkGCE6+t60r1S2HLx9UkJL4PsUbr/hJTKYd9327jyuXK4O9l61TeaDDPNBjG72Sug69/047nkCrhAUyOftV4BTK9PXa3XoUCas+jQeC4FCnmH7Ma6KaAjr9Ps8Z0C9g3Rj7ypKiFiyHL59RYF9g7V2rnMUeCJaMCoWRsFvlhzP2qOpsC+heADOfIUMHE7UCs3UgGmO9TCRu0q4OfHja+D02S47oua8VfJMH2Lvsy2phy2niwZflstA8M1m5e3jpdBzb7VgdOmpUDdjHaqASQgW3waXGYrAdstcUdFriKQbF8ZXKcqALaTE/VDg7kQXH3IKysrG37vd+dkUM2EsRkaT/ZxInTuqom90pcCH99rLxG748HslwsNXSMBzE4/jm/aFQbf89QSCjO9IcFRRbGV3QZKFxWb+GsEcQZ8/Iq0bTF6quSo+kMffH3ork8ofzgKjLWeFzaIxvQdt2jbghPwGNOvZLbUVORnkzJ3V0/Htfkv9AyNmZjefzxFc08Ozj+1jFe5kYcBNh/iqbMKUMPy4KPme0VYPFful9NWgqmrL20Dh0mYLikTwPO8FD8vWLy1KilDjgl95TLncoTgwd1Hxcm4cKH4rtU7MorvMla651WBf2imhsl/K3BXzFXVR34UlN+fL5g1QUHG0FM24ycrMWFvIeGydyVmGvl33C2rxOgrrObTjytRr3hHSXdHJV6pFf1j/7ASLz2zYcOCSqzwain77lCJsz9kgoREK5Gio6xB7KYg4SuTTaw1Be/Y3S8ym63A4ZzVyTCjim1f7/5g9ZCMUy2U6mQmMib8+yebqbmtT26FL9xBZXhk8MvfzsJSNCQd3TJpICFj7q4DCi4lOP+g8vY9iyJMEFqInVYqwGyDkORkmjxU/PxCKvleNkav8Xb/Z5iJ52bDmbW+EFHzUrbh3vcpyF5qH6PwKh7fsUZTna4kYJlB2s3q+VBkVE5YuufhjRuaYvXxw9v/x7P/LDxKhOHun5lzd1VtYd89DYJ4rg8IuW6qDq6HgdzAoWLHA9FQOVs1PSWeAI5rAY63BVJB6tvrFestIsjWfywqNM4EkRuKE3sp2XDqpWbTr/FcUNtTH+az3W8Ho/uCRnYVwan+JPGIv8WQpaky5OZEAv41hqinF0thyuZ3ZThvGXhx831he18GDpT4naMJ5dBtJXHRUIIMX05GUTM/IkPIHaG3yacrQK45Zlc4pQL2d3AvZVJTICV5/2yyJgUO8bvdUYygAHfWt+DQCgpMlXv+PnefApYh3sbEexTYvKGk5VZOgcjF3tGtEAoo3byj43ieAozzif++b1bAr6Oi1OOlFRBy9e73WJkKUJZbTjF6QIbO2WvmL8TJYERTL6+fXA4zpytepU6WwbJYCc9e0TKoFLWZTzEpBVvWw6fqCCTIeTo9YapaAoOJIquN1kXgLH/iAZVbAZT8U+RbvZkHVw3eBuhq5sDfD9eo5w5kQWI+jQjxYzqYCq6vnMpPgyTeS79Dk5OgwsJBXH8gFlSmi00/MEeBuLiul4pvMOTeGk6U6fQEV6fDr64IW8Gf35HOXl+F8S6tcv1svA2qP+mSEnrnhVzH3ooJXg7BgIJNH0GdKPxysmrw30wsBnpkfduyTEKOiw2pzy3SMEGk0J0Yno7t07UvHqVkYrFyVyolPhs3hDTev3DLRSppZ/rqs/louvjq6+yvAjxqSZyTyynCJ+LfJ634StA+34FbVI2E0/6FLStfSDhsql5zKLIUIbueR39XGXryHLrCH12GCVmif+SXypCKdEff/GI56rk9vWyWse1T5BwKa3c5PhSRWjNeK8cP44FNMqxkvD/WLV7OTca2RhOzpu1zbRTNYuyvcsyQTJ++2FOO8zJNYadyylEmaGQh4Uo5UhIMVsvWy1D6FM/t9+llWLxynrXoYBk6HlaJtNjW1e93ut4U5lJUKm9++8eNhAWRNgyzydv6yuVoMhcpxhU+2ZXb5EL8Y9AYKs9WgHJi+nIO9nlYo+0z8LQ+B20ffo3rnM7CwHDLEnbmTDTQNmFVO5SOfvO6zP+k0/DPkIDAF68kXLG+9LzOJQ5r8qqlHxoTMA2t9CLOhKP8F3GHJXl/9GbTQtVJN+yKi6KMVpjh53f1Tr9ihcC65ptsEsESqog0Yr9H3GFOV7puYMAfCm7z6SoZhIN3nLqk4TECiFTStt77Ggt0/7GauBMTt3ODfvVmnlT4rzH/xvxZItDTlTHzb/fTrUVRK/TIhM2XS1s137Kgu/mh2hv9HKCdOikgTMkFTvqCRx2TeXDIvIR3gqYAzCsWK2pYCsFvQq0uiqoINp2KnvUNF0GJuDsbT04xEL3vZy0plIAz1eBlhvYSaPlPqIKTlwQd/ST9XFUSWI3Id8abkcCA4r+26EyCY8arx0dcSCAdnfHFxpIEnrphSS0a25zqwn6OUZAElMYRP8HREuix2Zd3zKQEVI38bg4/KwY6sprF0LZPcx+c0F+8VATNLJOEdddCcKBj6BoPLgCPBKzI9s2HTOVT+uI38qDOqqOt7kQuCLzjDVddzQbG796PuKq3OYC2kMv8ciZkjJ2MN/+cDjeTyWDhSQSPGe0PVrOp8MfhrbTuuyQY/rY5pnY/Hn4HiHP/jI+B2mAusrBuFEyPdFtlsYfDc0aJT9yFAbC/+np1CosX4CPJTKadDtC0R/ZCypIhVNXeJ1uT+LF37XbYnRIT7N/8fcbH1xHHA+byHby8sNJXWjQ/MQBpOBysOcPCMMu6514FORKbs8ctvntG46uGimd6Yts5hhPLq/5nCbgU33Q0TSUZhT7/96CjJBVDVNva7ZbS0IdrnoXzLxEJwWNiMhvpOP7vNN+Rzxl4u2TXV7MnmbhUPPjRICoLqWPne8ukszE5d0nhc182urFk+g8Z5yA/OeG5Qk8ONpR/lP0qmYtdhgtPBgNy8d6u979Xbuei930/xmt9udjCJGbAM5GLek2Vaq5DuSjvvfAu52Euardm6n9OyEWzK0HPH2rkor3DoG/0cg6yhxNDOuJy8GJqCDMDSw5eEZkcm43IRqZFyQjmmSyMDclqOCKfhU6stAl/gzLxcX1ij/6dDPz4uHkf1Ug68i22MY2vEJFjydGldwcRw0vErDvp0rAyTuyfFXUKshS2d3N8SkStr9ff5jbFYwNVh/yKXyzm+txYOCIVjY1D0p0aY5FIG+T3xigiHL/2dz97rxKMSZM/mA/4+eH9BydVkqo9UTevn9HygRPmf2LjZzpkhd9e/Ejo19DBYn6OJK5XPPCNrHbxnJA++KcznlSSsYa7jKal0RLOwPyK0znd1xNITXHS2OILSS0/JQ+PBUI5Pxg/ex8KbVbPrUyNIuB6i/mZuuNR8EbYpmLPDwL8THp/2KwwBgzGLzeHSsZBrhafol9lPEjoTErY0CVClu7sUqBmEnSZBZ9h8kqG5zv2WQSGpcBDplQjbbdUeCDAH866nW/Ec74PehuUBm+T3LXevUgDndRaS3ZaIuwrinlDOEUEr7sR7Ep6RJB73bemY0MEeSnS6a+2RPgS8lJbyYQI/i3utGFABAGHGZlNXiJQaR7Ro5tJA4+vdTR/ytJgeEdDrbJ+GlDzui5F/EgFvbf+5esiqRDpS9M1qZICI+VqXJc0kqHm9ECIwekkoH/LyyrFkwj1zcGPmGfioSC2WORkaRyMCDWaL2jHgq6JyL2kr9Ew71Vp7RG6Pa/OfNH9szMKFL79GEmKiIChjNeLQgvbXHH2svBMezAMzvB7ymYEwOMPxmML132Bbl3y/RCPF2T+ddiIrnGDiMxSjVkRBxD8uOCgVm4Fq6cVJmYMr8Nsn13dczYNODIfzis0vgfPSikbFwheQjrfxNQ/nUZoUtXanzxqha0D3U+P1NpjXxDxNJeOK65w3eQR/eSBMyYNQVtR3sjuQaWnyeiH9L/Zyiw8ApCdpDLS9DAI2ccra0Y/heCP1c6OhIUwpHDp3dWaC0enj7dtqboicJUhU9c1JxJlb1FnyehFYZ2LAoVuMwrr085fKycSMPCy070Jjmic+z62oygyGjk+7nTsH4/G/XlPB2JFY/CDPHVBr1EMeogYHx0IjMHg4omal3Ex2PB4K2wlKgYvEMeGqpxjsE3mLf8ltRjU6qsK1GSIwdpV7QMirdFY0FjWYGkejbXtAhW5PwhYnswS7uBLQDfzf4JhC1Gorm5Bn6IbhecG+6P0aiNRkl7wd+bvCMzKC2DiV4xAttGxN+0e4diS2Dz/WCkM3ZR/7sqOCkENr50/B1qCUKbuzbTaVAAqEvZ1Nmxs6+iTYdRXJl9cb33l0sXmjTdzWsi8rJ44JtVOqKN3R2tX27PkdSf8pTAfVDJuh1vtHwZ70Rpfye+UMdYxR5e2QSlJCUNMsEzb7S11GUepnRdu+yihwzrnffYGejjQ16DN+lkFGod8I/HPFfiz9HNmh6Eh/DUpOV4VaAbXlQ7mVN2xguLRrBVhOlsI+uChTZR3gFIf6b2fzjvDFqs1v7SUGwgJn1eZ/uUOzXqR4rFqnqAuc0+sJ8ALlD/n8RzM997mJsXQhXIfGLt7LaM92xcq8szUtDz94GJHNaeirD+88dj9z+yjP0yuEI4X+AbAWqFx2+yPAKibctPRMQyELHoN8np54DYHhvCyjwTClVuuojNrgRB14WXz661A0Cjrjz+xGAiBpTqhGS8DgYezrTs0ORD6FL6eS1MOBIGNFi+vkQB4/XJX55RlANhNPawqfecPhhzpudGK/jCwceaEU4ofmPlIyir0+QLf+ws5n3b6gv2LCE8LcR+4onqM446qN+wOYvw+etkL3Dfmqr5e8YSid9M7V857wGvC72VqGXd4njW0+4asK5yaIrIdXHWCp5EPPnpVOYDGIokmQdcOdLsKS+NWbaBTIPFNeoYVaCUI3GuXtID5HyY7bNJNIEhMVvVllwGkHLfPukOvC007ro9TkzShhe3+txUtAPPUi/HUisfhdJDFUvn8Zlu8V8Ktap9TyLHvp1GGgSr2t0/G+jVp4ptfB4bN7HRQ9qqB09aVa7jjwVJn6h4jtJqTUXhcbYqvUr0yJXdZ4OPkTz8f3bLEkDNPH5aftEbVSI6V/WU2SL1EN+21fhO/Xpc8yCljh0Z7VPxCDe1Rwrl8UdvcARNjnYJltRyRbtD09c6DTngzsnaiaMAJdxPlyH/dnPEn55aX4ndn5HzWGBJ2zQWHM81EmUkuOLT83xX5XheU42MmuX12wT5NEuXEJxdMXX9Ls+eFC9KrTYTcTXfB/y6dZH5z3gWD8saHhaedMdlW+nSqkzOy1L8tXh53Qq5srkhFJSdcIolpOMQ6omg/Hoxsc0C2ZxWfsufscUWXca2Nant/N/SRS5DJDj2l5JQnaG2RpcchSGTVBktaU98Kj1ijnu4TbtZGKxyE8+/2ESwxLPWZcrC2BT70atzdK2CGTNeYZoQKTTBu5mqULqsRhvm5+LQEG2Ae4aRr9Wc9XM/d8HK4ooNyLCXq9p7a2HvyArWz1gWkn0qc4D6hhuf1ZeroLirhP4WH1XDtJEaa9QZ+5RPEfg8PyTL4rmL1en6N+b4IvDucp67qcQp6gi5vCpxVAhXKG0qtuSrYatd8VvM9D4u0ZynDFpoQ37PPQujAZRD5ceB47MBVsBvNO2wRoQsfLJfVL3LqwyMtfeHEpGswypDYHv/FANYf3fJsF7++vT++mjB4xQhUewUlPa8bQ1qc2bSDugmEvrHmp3CYApMxw90jnaYw7Pb6OJvpDfgfb1LvmkAfAAA=\"},\"shape\":[1000],\"dtype\":\"float64\",\"order\":\"little\"}],[\"Amplitude_left_parenthesis_arb_full_stop_u_full_stop_right_parenthesis\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[1000],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"a39c10d6-0e54-488c-85d4-a9631d226b0e\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"24270cf1-7ff4-44ed-907b-0e299939ab6a\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"a34ad0fc-71f3-4ad8-8a25-a36d95cfdee7\",\"attributes\":{\"tags\":[\"apply_ranges\"],\"x\":{\"type\":\"field\",\"field\":\"time\"},\"y\":{\"type\":\"field\",\"field\":\"Amplitude (arb. u.)\"},\"line_color\":\"#30a2da\",\"line_width\":2}},\"selection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"85533d01-9b2c-43f2-9929-39ac929e836f\",\"attributes\":{\"tags\":[\"apply_ranges\"],\"x\":{\"type\":\"field\",\"field\":\"time\"},\"y\":{\"type\":\"field\",\"field\":\"Amplitude (arb. u.)\"},\"line_color\":\"#30a2da\",\"line_width\":2}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"ca095217-b7b8-4bea-b1ee-3ab2c0a63c4e\",\"attributes\":{\"tags\":[\"apply_ranges\"],\"x\":{\"type\":\"field\",\"field\":\"time\"},\"y\":{\"type\":\"field\",\"field\":\"Amplitude (arb. u.)\"},\"line_color\":\"#30a2da\",\"line_alpha\":0.1,\"line_width\":2}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"2dd490e1-e9ea-4ccb-9841-38646cac369a\",\"attributes\":{\"tags\":[\"apply_ranges\"],\"x\":{\"type\":\"field\",\"field\":\"time\"},\"y\":{\"type\":\"field\",\"field\":\"Amplitude (arb. u.)\"},\"line_color\":\"#30a2da\",\"line_alpha\":0.2,\"line_width\":2}}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"37bd32aa-2de7-4227-876e-0394c74b2bf1\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"b6ce7d87-6e8d-4f97-8803-012f30866333\",\"attributes\":{\"tags\":[\"hv_created\"],\"renderers\":\"auto\",\"zoom_together\":\"none\"}},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"a3540e5f-3ecc-4b9b-b2e0-4656891351f0\",\"attributes\":{\"tags\":[\"hv_created\"],\"renderers\":[{\"id\":\"9ef1a5a5-1ee5-4cb2-9191-e6d090cfa553\"}],\"tooltips\":[[\"time (s)\",\"@{time}\"],[\"Amplitude (arb. u.)\",\"@{Amplitude_left_parenthesis_arb_full_stop_u_full_stop_right_parenthesis}\"]],\"sort_by\":null}},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"2708d08e-49a0-4e7f-81d5-6cf7314a3458\"},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"4168e842-e06c-4372-a890-266b77efa2bc\"},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"f6369c04-3cb7-4ddd-86b4-7d2bd80d85f6\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"90c6f473-5d67-470e-afaa-ddcb62432dc1\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"1349c398-8008-408b-b6f8-67625a82b9b0\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"5ff244e3-6017-4eb1-8f33-bb8dcacecb61\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"8105eeea-ce86-4ea2-bb0c-7b6c64c6add8\"}],\"active_drag\":{\"id\":\"4168e842-e06c-4372-a890-266b77efa2bc\"},\"active_scroll\":{\"id\":\"b6ce7d87-6e8d-4f97-8803-012f30866333\"}}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"e0b2aa25-af33-45a7-b0ce-06fc91181f56\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"e01cd345-97fb-4e8b-a684-1c8895b58944\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"fca0dae4-668a-4ed0-867f-cd447a7fe32a\"},\"axis_label\":\"Amplitude (arb. u.)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"fd80c82a-10bf-4d88-bd35-7b6182757757\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"20e30e62-76eb-4a21-9b76-a505f2b7e678\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"8070a996-6a2c-418d-ad5c-d514e4015967\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"47523ee3-fda9-47df-897b-5c07f1435d5b\"},\"axis_label\":\"time (s)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"94dc5200-60bf-436e-9d8a-52489994a3f0\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"77b2bd12-3df5-4adb-b0b5-04f0b8391e10\",\"attributes\":{\"axis\":{\"id\":\"20e30e62-76eb-4a21-9b76-a505f2b7e678\"},\"grid_line_color\":null}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"2f59d5ee-b014-43f3-b293-a64e6545ff18\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"e0b2aa25-af33-45a7-b0ce-06fc91181f56\"},\"grid_line_color\":null}}],\"min_border_top\":10,\"min_border_bottom\":10,\"min_border_left\":10,\"min_border_right\":10,\"output_backend\":\"webgl\"}},{\"type\":\"object\",\"name\":\"Spacer\",\"id\":\"b155c8cf-e6c8-4c8c-9d32-04996b906621\",\"attributes\":{\"name\":\"HSpacer00301\",\"stylesheets\":[\"\\n:host(.pn-loading):before, .pn-loading:before {\\n  background-color: #c3c3c3;\\n  mask-size: auto calc(min(50%, 300px));\\n  -webkit-mask-size: auto calc(min(50%, 300px));\\n}\",{\"id\":\"a16af602-8ec6-4385-8785-f58397e27d2c\"},{\"id\":\"c863221e-31ae-42a9-ac9c-333a27697527\"},{\"id\":\"39e50f5f-794c-4b7b-b8d2-0c60c1f979bf\"}],\"min_width\":0,\"margin\":0,\"sizing_mode\":\"stretch_width\",\"align\":\"start\"}}]}}],\"defs\":[{\"type\":\"model\",\"name\":\"ReactiveHTML1\"},{\"type\":\"model\",\"name\":\"FlexBox1\",\"properties\":[{\"name\":\"align_content\",\"kind\":\"Any\",\"default\":\"flex-start\"},{\"name\":\"align_items\",\"kind\":\"Any\",\"default\":\"flex-start\"},{\"name\":\"flex_direction\",\"kind\":\"Any\",\"default\":\"row\"},{\"name\":\"flex_wrap\",\"kind\":\"Any\",\"default\":\"wrap\"},{\"name\":\"gap\",\"kind\":\"Any\",\"default\":\"\"},{\"name\":\"justify_content\",\"kind\":\"Any\",\"default\":\"flex-start\"}]},{\"type\":\"model\",\"name\":\"FloatPanel1\",\"properties\":[{\"name\":\"config\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}},{\"name\":\"contained\",\"kind\":\"Any\",\"default\":true},{\"name\":\"position\",\"kind\":\"Any\",\"default\":\"right-top\"},{\"name\":\"offsetx\",\"kind\":\"Any\",\"default\":null},{\"name\":\"offsety\",\"kind\":\"Any\",\"default\":null},{\"name\":\"theme\",\"kind\":\"Any\",\"default\":\"primary\"},{\"name\":\"status\",\"kind\":\"Any\",\"default\":\"normalized\"}]},{\"type\":\"model\",\"name\":\"GridStack1\",\"properties\":[{\"name\":\"ncols\",\"kind\":\"Any\",\"default\":null},{\"name\":\"nrows\",\"kind\":\"Any\",\"default\":null},{\"name\":\"allow_resize\",\"kind\":\"Any\",\"default\":true},{\"name\":\"allow_drag\",\"kind\":\"Any\",\"default\":true},{\"name\":\"state\",\"kind\":\"Any\",\"default\":[]}]},{\"type\":\"model\",\"name\":\"drag1\",\"properties\":[{\"name\":\"slider_width\",\"kind\":\"Any\",\"default\":5},{\"name\":\"slider_color\",\"kind\":\"Any\",\"default\":\"black\"},{\"name\":\"start\",\"kind\":\"Any\",\"default\":0},{\"name\":\"end\",\"kind\":\"Any\",\"default\":100},{\"name\":\"value\",\"kind\":\"Any\",\"default\":50}]},{\"type\":\"model\",\"name\":\"click1\",\"properties\":[{\"name\":\"terminal_output\",\"kind\":\"Any\",\"default\":\"\"},{\"name\":\"debug_name\",\"kind\":\"Any\",\"default\":\"\"},{\"name\":\"clears\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"ReactiveESM1\",\"properties\":[{\"name\":\"esm_constants\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}}]},{\"type\":\"model\",\"name\":\"JSComponent1\",\"properties\":[{\"name\":\"esm_constants\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}}]},{\"type\":\"model\",\"name\":\"ReactComponent1\",\"properties\":[{\"name\":\"use_shadow_dom\",\"kind\":\"Any\",\"default\":true},{\"name\":\"esm_constants\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}}]},{\"type\":\"model\",\"name\":\"AnyWidgetComponent1\",\"properties\":[{\"name\":\"use_shadow_dom\",\"kind\":\"Any\",\"default\":true},{\"name\":\"esm_constants\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}}]},{\"type\":\"model\",\"name\":\"FastWrapper1\",\"properties\":[{\"name\":\"object\",\"kind\":\"Any\",\"default\":null},{\"name\":\"style\",\"kind\":\"Any\",\"default\":null}]},{\"type\":\"model\",\"name\":\"NotificationArea1\",\"properties\":[{\"name\":\"js_events\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}},{\"name\":\"max_notifications\",\"kind\":\"Any\",\"default\":5},{\"name\":\"notifications\",\"kind\":\"Any\",\"default\":[]},{\"name\":\"position\",\"kind\":\"Any\",\"default\":\"bottom-right\"},{\"name\":\"_clear\",\"kind\":\"Any\",\"default\":0},{\"name\":\"types\",\"kind\":\"Any\",\"default\":[{\"type\":\"map\",\"entries\":[[\"type\",\"warning\"],[\"background\",\"#ffc107\"],[\"icon\",{\"type\":\"map\",\"entries\":[[\"className\",\"fas fa-exclamation-triangle\"],[\"tagName\",\"i\"],[\"color\",\"white\"]]}]]},{\"type\":\"map\",\"entries\":[[\"type\",\"info\"],[\"background\",\"#007bff\"],[\"icon\",{\"type\":\"map\",\"entries\":[[\"className\",\"fas fa-info-circle\"],[\"tagName\",\"i\"],[\"color\",\"white\"]]}]]}]}]},{\"type\":\"model\",\"name\":\"Notification\",\"properties\":[{\"name\":\"background\",\"kind\":\"Any\",\"default\":null},{\"name\":\"duration\",\"kind\":\"Any\",\"default\":3000},{\"name\":\"icon\",\"kind\":\"Any\",\"default\":null},{\"name\":\"message\",\"kind\":\"Any\",\"default\":\"\"},{\"name\":\"notification_type\",\"kind\":\"Any\",\"default\":null},{\"name\":\"_rendered\",\"kind\":\"Any\",\"default\":false},{\"name\":\"_destroyed\",\"kind\":\"Any\",\"default\":false}]},{\"type\":\"model\",\"name\":\"TemplateActions1\",\"properties\":[{\"name\":\"open_modal\",\"kind\":\"Any\",\"default\":0},{\"name\":\"close_modal\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"BootstrapTemplateActions1\",\"properties\":[{\"name\":\"open_modal\",\"kind\":\"Any\",\"default\":0},{\"name\":\"close_modal\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"TemplateEditor1\",\"properties\":[{\"name\":\"layout\",\"kind\":\"Any\",\"default\":[]}]},{\"type\":\"model\",\"name\":\"MaterialTemplateActions1\",\"properties\":[{\"name\":\"open_modal\",\"kind\":\"Any\",\"default\":0},{\"name\":\"close_modal\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"request_value1\",\"properties\":[{\"name\":\"fill\",\"kind\":\"Any\",\"default\":\"none\"},{\"name\":\"_synced\",\"kind\":\"Any\",\"default\":null},{\"name\":\"_request_sync\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"holoviews.plotting.bokeh.raster.HoverModel\",\"properties\":[{\"name\":\"xy\",\"kind\":\"Any\",\"default\":null},{\"name\":\"data\",\"kind\":\"Any\",\"default\":null}]}]}};\n",
       "  var render_items = [{\"docid\":\"fd904c4f-f353-4e48-90ae-3d19fb7e452e\",\"roots\":{\"3142d7fa-a8ff-4639-904d-dbc915dc3f29\":\"e2eb01e1-0804-4466-866a-18b3b18be821\"},\"root_ids\":[\"3142d7fa-a8ff-4639-904d-dbc915dc3f29\"]}];\n",
       "  var docs = Object.values(docs_json)\n",
       "  if (!docs) {\n",
       "    return\n",
       "  }\n",
       "  const version = docs[0].version.replace('rc', '-rc.').replace('.dev', '-dev.')\n",
       "  async function embed_document(root) {\n",
       "    var Bokeh = get_bokeh(root)\n",
       "    await Bokeh.embed.embed_items_notebook(docs_json, render_items);\n",
       "    for (const render_item of render_items) {\n",
       "      for (const root_id of render_item.root_ids) {\n",
       "\tconst id_el = document.getElementById(root_id)\n",
       "\tif (id_el.children.length && id_el.children[0].hasAttribute('data-root-id')) {\n",
       "\t  const root_el = id_el.children[0]\n",
       "\t  root_el.id = root_el.id + '-rendered'\n",
       "\t  for (const child of root_el.children) {\n",
       "            // Ensure JupyterLab does not capture keyboard shortcuts\n",
       "            // see: https://jupyterlab.readthedocs.io/en/4.1.x/extension/notebook.html#keyboard-interaction-model\n",
       "\t    child.setAttribute('data-lm-suppress-shortcuts', 'true')\n",
       "\t  }\n",
       "\t}\n",
       "      }\n",
       "    }\n",
       "  }\n",
       "  function get_bokeh(root) {\n",
       "    if (root.Bokeh === undefined) {\n",
       "      return null\n",
       "    } else if (root.Bokeh.version !== version) {\n",
       "      if (root.Bokeh.versions === undefined || !root.Bokeh.versions.has(version)) {\n",
       "\treturn null\n",
       "      }\n",
       "      return root.Bokeh.versions.get(version);\n",
       "    } else if (root.Bokeh.version === version) {\n",
       "      return root.Bokeh\n",
       "    }\n",
       "    return null\n",
       "  }\n",
       "  function is_loaded(root) {\n",
       "    var Bokeh = get_bokeh(root)\n",
       "    return (Bokeh != null && Bokeh.Panel !== undefined)\n",
       "  }\n",
       "  if (is_loaded(root)) {\n",
       "    embed_document(root);\n",
       "  } else {\n",
       "    var attempts = 0;\n",
       "    var timer = setInterval(function(root) {\n",
       "      if (is_loaded(root)) {\n",
       "        clearInterval(timer);\n",
       "        embed_document(root);\n",
       "      } else if (document.readyState == \"complete\") {\n",
       "        attempts++;\n",
       "        if (attempts > 200) {\n",
       "          clearInterval(timer);\n",
       "\t  var Bokeh = get_bokeh(root)\n",
       "\t  if (Bokeh == null || Bokeh.Panel == null) {\n",
       "            console.warn(\"Panel: ERROR: Unable to run Panel code because Bokeh or Panel library is missing\");\n",
       "\t  } else {\n",
       "\t    console.warn(\"Panel: WARNING: Attempting to render but not all required libraries could be resolved.\")\n",
       "\t    embed_document(root)\n",
       "\t  }\n",
       "        }\n",
       "      }\n",
       "    }, 25, root)\n",
       "  }\n",
       "})(window);</script>"
      ],
      "text/plain": [
       ":Curve   [time]   (Amplitude (arb. u.))"
      ]
     },
     "execution_count": 3,
     "metadata": {
      "application/vnd.holoviews_exec.v0+json": {
       "id": "3142d7fa-a8ff-4639-904d-dbc915dc3f29"
      }
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import xarray as xr\n",
    "import hvplot.xarray\n",
    "\n",
    "xr.DataArray(\n",
    "    drive(ts, amp, sigma, omega_d),\n",
    "    coords={\"time\": (\"time\", ts, {\"units\": \"s\"})},\n",
    "    dims=[\"time\"],\n",
    "    name=\"Amplitude (arb. u.)\",\n",
    ").hvplot()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7",
   "metadata": {},
   "source": [
    "As expected, we have a Gaussian pulse modulated by a cosine &mdash; great!\n",
    "\n",
    "### 1.3. Drive parameters and channels\n",
    "\n",
    "Next, we'll organise the drive parameters into a _drive channel_. A drive channel groups together the parameters associated with a particular drive, providing a convenient way to keep related parameters organised. When working with multiple drives, this makes it easy to identify which parameters belong to which drive.\n",
    "\n",
    "We use `Parameters` to construct a <a href=\"https://docs.qruise.com/latest/qruiseml/building-blocks/parameter_spaces\">parameter space</a> from the channel parameters. Each parameter is specified as a tuple of the form `(value, lower_bound, upper_bound)`. If you're only performing a simulation, the bounds can be omitted. However, they are required for optimal control, so we'll include them here."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "8",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-20T10:11:36.927057Z",
     "iopub.status.busy": "2026-08-20T10:11:36.926858Z",
     "iopub.status.idle": "2026-08-20T10:11:36.944809Z",
     "shell.execute_reply": "2026-08-20T10:11:36.943956Z"
    }
   },
   "outputs": [],
   "source": [
    "from qruise.toolset import Parameters, Drive\n",
    "\n",
    "# associate drive parameters with channel and construct parameter space\n",
    "ps = Parameters(\n",
    "    {\n",
    "        \"d1\": {\n",
    "            # \"parameter name\": (value, lower_bound, upper_bound)\n",
    "            \"amp\": (amp, 1.0, 5.0),\n",
    "            \"sigma\": (sigma, 1e-9, 8e-9),\n",
    "            \"omega_d\": (omega_d, omega_q - 5e8, omega_q + 5e8),\n",
    "        }\n",
    "    }\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9",
   "metadata": {},
   "source": [
    "---\n",
    "\n",
    "**Note:** When working with multiple drives, drive channels allow different drives to reuse parameter names &mdash; such as `amp`, `sigma`, and `omega_d` &mdash; without conflicts. In this example, we only have a single drive, but it's good practice to create a drive channel from the outset so it's straightforward to add additional drives later.\n",
    "\n",
    "---\n",
    "\n",
    "Finally, we use the <a href=\"https://docs.qruise.com/latest/qruiseml/building-blocks/drives\">`Drive`</a> class to associate the drive function with the drive channel, which itself is associated to the relevant parameters:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "10",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-20T10:11:36.946697Z",
     "iopub.status.busy": "2026-08-20T10:11:36.946507Z",
     "iopub.status.idle": "2026-08-20T10:11:37.623356Z",
     "shell.execute_reply": "2026-08-20T10:11:37.622443Z"
    }
   },
   "outputs": [],
   "source": [
    "drv1 = Drive(\"d1\", drive)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "11",
   "metadata": {},
   "source": [
    "### 1.4. Constructing the Hamiltonian\n",
    "\n",
    "The Hamiltonian is constructed in a similar way to `QuTiP`. We instantiate the <a href=\"https://docs.qruise.com/latest/qruiseml/building-blocks/hamiltonians\">`Hamiltonian`</a> class by passing the stationary part, `H0`, together with a list of `(drive, operator)` pairs defining the time-dependent terms:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "12",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-20T10:11:37.625705Z",
     "iopub.status.busy": "2026-08-20T10:11:37.625506Z",
     "iopub.status.idle": "2026-08-20T10:11:37.631289Z",
     "shell.execute_reply": "2026-08-20T10:11:37.630443Z"
    }
   },
   "outputs": [],
   "source": [
    "import qutip as qt\n",
    "from qruise.toolset import Hamiltonian\n",
    "\n",
    "# Pauli operators from QuTiP\n",
    "sx = qt.sigmax()\n",
    "sz = qt.sigmaz()\n",
    "\n",
    "# define Hamiltonian\n",
    "H = Hamiltonian(omega_q * sz / 2, [(drv1, sx)])"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "13",
   "metadata": {},
   "source": [
    "## 2. Defining the quantum simulation problem\n",
    "\n",
    "Now that we've defined our Hamiltonian, we can start setting up a quantum simulation problem. In QruiseML, we use the <a href=\"https://docs.qruise.com/latest/qruiseml/building-blocks/problems/#problem\">`Problem`</a>  class to group together the equations and parameters that govern the system. To instantiate the `Problem`, we need:\n",
    "\n",
    "- the <a href=\"https://docs.qruise.com/latest/qruiseml/building-blocks/time-evolution-equations\">equation that governs the dynamics</a> (in this example, we'll use the `\"Schroedinger\"` equation)\n",
    "- the Hamiltonian (`H`)\n",
    "- the initial qubit state (`u0`, here the ground state $|0\\rangle$)\n",
    "- the time interval of the simulation (`t0` to `tfinal`)\n",
    "- the pulse parameters (`ps`)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "14",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-20T10:11:37.633237Z",
     "iopub.status.busy": "2026-08-20T10:11:37.633064Z",
     "iopub.status.idle": "2026-08-20T10:11:37.640186Z",
     "shell.execute_reply": "2026-08-20T10:11:37.639375Z"
    }
   },
   "outputs": [],
   "source": [
    "from qruise.toolset import Problem\n",
    "\n",
    "u0 = qt.basis(2, 0)  # initial vector state, |0>\n",
    "\n",
    "prob = Problem(\"Schroedinger\", H, u0, (t0, t1), ps)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "15",
   "metadata": {},
   "source": [
    "## 3. Starting a session and solving the problem\n",
    "\n",
    "The `Problem` object defines the quantum system we want to simulate,\n",
    "but it does not run the simulation itself. To execute the time evolution, we need to create a <a href=\"https://docs.qruise.com/latest/qruiseml/building-blocks/sessions_simulation_and_optimisation\">`Session`</a>, then use `qsprob_init` to initialise the `Problem` within the session. The session prepares the problem for numerical simulation and manages the solver execution."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "16",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-20T10:11:37.641826Z",
     "iopub.status.busy": "2026-08-20T10:11:37.641636Z",
     "iopub.status.idle": "2026-08-20T10:11:49.975411Z",
     "shell.execute_reply": "2026-08-20T10:11:49.974436Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[juliapkg] Found dependencies: /home/ci/.venv/lib/python3.11/site-packages/juliacall/juliapkg.json\n",
      "[juliapkg] Found dependencies: /home/ci/.venv/lib/python3.11/site-packages/juliapkg/juliapkg.json\n",
      "[juliapkg] Locating Julia ~1.9, ^1.10.3\n",
      "[juliapkg] Using Julia 1.11.6 at /home/ci/.juliaup/bin/julia\n",
      "[juliapkg] Using Julia project at /__w/qruise-ml/qruise-ml/julia/python_env\n"
     ]
    }
   ],
   "source": [
    "from qruise.toolset.session import Session\n",
    "\n",
    "sess = Session()\n",
    "sess.qsprob_init(prob)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "17",
   "metadata": {},
   "source": [
    "To compute the system time evolution, we use the `Session.evolve` method to solve the quantum simulation problem numerically. \n",
    "\n",
    "In the implementation below, `\"Tsit5\"` specifies the ODE algorithm, `reltol`\n",
    "and `abstol` the numerical tolerances, and `saveat` the times at which the result is stored. Other solver options can also be passed as keyword arguments."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "18",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-20T10:11:49.977775Z",
     "iopub.status.busy": "2026-08-20T10:11:49.977542Z",
     "iopub.status.idle": "2026-08-20T10:11:56.825945Z",
     "shell.execute_reply": "2026-08-20T10:11:56.824616Z"
    }
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "\u001b[KODE [                                        ]   0%\r",
      "\u001b[KODE [########################################] 100%\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div><svg style=\"position: absolute; width: 0; height: 0; overflow: hidden\">\n",
       "<defs>\n",
       "<symbol id=\"icon-database\" viewBox=\"0 0 32 32\">\n",
       "<path d=\"M16 0c-8.837 0-16 2.239-16 5v4c0 2.761 7.163 5 16 5s16-2.239 16-5v-4c0-2.761-7.163-5-16-5z\"></path>\n",
       "<path d=\"M16 17c-8.837 0-16-2.239-16-5v6c0 2.761 7.163 5 16 5s16-2.239 16-5v-6c0 2.761-7.163 5-16 5z\"></path>\n",
       "<path d=\"M16 26c-8.837 0-16-2.239-16-5v6c0 2.761 7.163 5 16 5s16-2.239 16-5v-6c0 2.761-7.163 5-16 5z\"></path>\n",
       "</symbol>\n",
       "<symbol id=\"icon-file-text2\" viewBox=\"0 0 32 32\">\n",
       "<path d=\"M28.681 7.159c-0.694-0.947-1.662-2.053-2.724-3.116s-2.169-2.030-3.116-2.724c-1.612-1.182-2.393-1.319-2.841-1.319h-15.5c-1.378 0-2.5 1.121-2.5 2.5v27c0 1.378 1.122 2.5 2.5 2.5h23c1.378 0 2.5-1.122 2.5-2.5v-19.5c0-0.448-0.137-1.23-1.319-2.841zM24.543 5.457c0.959 0.959 1.712 1.825 2.268 2.543h-4.811v-4.811c0.718 0.556 1.584 1.309 2.543 2.268zM28 29.5c0 0.271-0.229 0.5-0.5 0.5h-23c-0.271 0-0.5-0.229-0.5-0.5v-27c0-0.271 0.229-0.5 0.5-0.5 0 0 15.499-0 15.5 0v7c0 0.552 0.448 1 1 1h7v19.5z\"></path>\n",
       "<path d=\"M23 26h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
       "<path d=\"M23 22h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
       "<path d=\"M23 18h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
       "</symbol>\n",
       "</defs>\n",
       "</svg>\n",
       "<style>/* CSS stylesheet for displaying xarray objects in notebooks */\n",
       "\n",
       ":root {\n",
       "  --xr-font-color0: var(\n",
       "    --jp-content-font-color0,\n",
       "    var(--pst-color-text-base rgba(0, 0, 0, 1))\n",
       "  );\n",
       "  --xr-font-color2: var(\n",
       "    --jp-content-font-color2,\n",
       "    var(--pst-color-text-base, rgba(0, 0, 0, 0.54))\n",
       "  );\n",
       "  --xr-font-color3: var(\n",
       "    --jp-content-font-color3,\n",
       "    var(--pst-color-text-base, rgba(0, 0, 0, 0.38))\n",
       "  );\n",
       "  --xr-border-color: var(\n",
       "    --jp-border-color2,\n",
       "    hsl(from var(--pst-color-on-background, white) h s calc(l - 10))\n",
       "  );\n",
       "  --xr-disabled-color: var(\n",
       "    --jp-layout-color3,\n",
       "    hsl(from var(--pst-color-on-background, white) h s calc(l - 40))\n",
       "  );\n",
       "  --xr-background-color: var(\n",
       "    --jp-layout-color0,\n",
       "    var(--pst-color-on-background, white)\n",
       "  );\n",
       "  --xr-background-color-row-even: var(\n",
       "    --jp-layout-color1,\n",
       "    hsl(from var(--pst-color-on-background, white) h s calc(l - 5))\n",
       "  );\n",
       "  --xr-background-color-row-odd: var(\n",
       "    --jp-layout-color2,\n",
       "    hsl(from var(--pst-color-on-background, white) h s calc(l - 15))\n",
       "  );\n",
       "}\n",
       "\n",
       "html[theme=\"dark\"],\n",
       "html[data-theme=\"dark\"],\n",
       "body[data-theme=\"dark\"],\n",
       "body.vscode-dark {\n",
       "  --xr-font-color0: var(\n",
       "    --jp-content-font-color0,\n",
       "    var(--pst-color-text-base, rgba(255, 255, 255, 1))\n",
       "  );\n",
       "  --xr-font-color2: var(\n",
       "    --jp-content-font-color2,\n",
       "    var(--pst-color-text-base, rgba(255, 255, 255, 0.54))\n",
       "  );\n",
       "  --xr-font-color3: var(\n",
       "    --jp-content-font-color3,\n",
       "    var(--pst-color-text-base, rgba(255, 255, 255, 0.38))\n",
       "  );\n",
       "  --xr-border-color: var(\n",
       "    --jp-border-color2,\n",
       "    hsl(from var(--pst-color-on-background, #111111) h s calc(l + 10))\n",
       "  );\n",
       "  --xr-disabled-color: var(\n",
       "    --jp-layout-color3,\n",
       "    hsl(from var(--pst-color-on-background, #111111) h s calc(l + 40))\n",
       "  );\n",
       "  --xr-background-color: var(\n",
       "    --jp-layout-color0,\n",
       "    var(--pst-color-on-background, #111111)\n",
       "  );\n",
       "  --xr-background-color-row-even: var(\n",
       "    --jp-layout-color1,\n",
       "    hsl(from var(--pst-color-on-background, #111111) h s calc(l + 5))\n",
       "  );\n",
       "  --xr-background-color-row-odd: var(\n",
       "    --jp-layout-color2,\n",
       "    hsl(from var(--pst-color-on-background, #111111) h s calc(l + 15))\n",
       "  );\n",
       "}\n",
       "\n",
       ".xr-wrap {\n",
       "  display: block !important;\n",
       "  min-width: 300px;\n",
       "  max-width: 700px;\n",
       "  line-height: 1.6;\n",
       "  padding-bottom: 4px;\n",
       "}\n",
       "\n",
       ".xr-text-repr-fallback {\n",
       "  /* fallback to plain text repr when CSS is not injected (untrusted notebook) */\n",
       "  display: none;\n",
       "}\n",
       "\n",
       ".xr-header {\n",
       "  padding-top: 6px;\n",
       "  padding-bottom: 6px;\n",
       "}\n",
       "\n",
       ".xr-header {\n",
       "  border-bottom: solid 1px var(--xr-border-color);\n",
       "  margin-bottom: 4px;\n",
       "}\n",
       "\n",
       ".xr-header > div,\n",
       ".xr-header > ul {\n",
       "  display: inline;\n",
       "  margin-top: 0;\n",
       "  margin-bottom: 0;\n",
       "}\n",
       "\n",
       ".xr-obj-type,\n",
       ".xr-obj-name {\n",
       "  margin-left: 2px;\n",
       "  margin-right: 10px;\n",
       "}\n",
       "\n",
       ".xr-obj-type,\n",
       ".xr-group-box-contents > label {\n",
       "  color: var(--xr-font-color2);\n",
       "  display: block;\n",
       "}\n",
       "\n",
       ".xr-sections {\n",
       "  padding-left: 0 !important;\n",
       "  display: grid;\n",
       "  grid-template-columns: 150px auto auto 1fr 0 20px 0 20px;\n",
       "  margin-block-start: 0;\n",
       "  margin-block-end: 0;\n",
       "}\n",
       "\n",
       ".xr-section-item {\n",
       "  display: contents;\n",
       "}\n",
       "\n",
       ".xr-section-item > input,\n",
       ".xr-group-box-contents > input,\n",
       ".xr-array-wrap > input {\n",
       "  display: block;\n",
       "  opacity: 0;\n",
       "  height: 0;\n",
       "  margin: 0;\n",
       "}\n",
       "\n",
       ".xr-section-item > input + label,\n",
       ".xr-var-item > input + label {\n",
       "  color: var(--xr-disabled-color);\n",
       "}\n",
       "\n",
       ".xr-section-item > input:enabled + label,\n",
       ".xr-var-item > input:enabled + label,\n",
       ".xr-array-wrap > input:enabled + label,\n",
       ".xr-group-box-contents > input:enabled + label {\n",
       "  cursor: pointer;\n",
       "  color: var(--xr-font-color2);\n",
       "}\n",
       "\n",
       ".xr-section-item > input:focus-visible + label,\n",
       ".xr-var-item > input:focus-visible + label,\n",
       ".xr-array-wrap > input:focus-visible + label,\n",
       ".xr-group-box-contents > input:focus-visible + label {\n",
       "  outline: auto;\n",
       "}\n",
       "\n",
       ".xr-section-item > input:enabled + label:hover,\n",
       ".xr-var-item > input:enabled + label:hover,\n",
       ".xr-array-wrap > input:enabled + label:hover,\n",
       ".xr-group-box-contents > input:enabled + label:hover {\n",
       "  color: var(--xr-font-color0);\n",
       "}\n",
       "\n",
       ".xr-section-summary {\n",
       "  grid-column: 1;\n",
       "  color: var(--xr-font-color2);\n",
       "  font-weight: 500;\n",
       "  white-space: nowrap;\n",
       "}\n",
       "\n",
       ".xr-section-summary > em {\n",
       "  font-weight: normal;\n",
       "}\n",
       "\n",
       ".xr-span-grid {\n",
       "  grid-column-end: -1;\n",
       "}\n",
       "\n",
       ".xr-section-summary > span {\n",
       "  display: inline-block;\n",
       "  padding-left: 0.3em;\n",
       "}\n",
       "\n",
       ".xr-group-box-contents > input:checked + label > span {\n",
       "  display: inline-block;\n",
       "  padding-left: 0.6em;\n",
       "}\n",
       "\n",
       ".xr-section-summary-in:disabled + label {\n",
       "  color: var(--xr-font-color2);\n",
       "}\n",
       "\n",
       ".xr-section-summary-in + label:before {\n",
       "  display: inline-block;\n",
       "  content: \"►\";\n",
       "  font-size: 11px;\n",
       "  width: 15px;\n",
       "  text-align: center;\n",
       "}\n",
       "\n",
       ".xr-section-summary-in:disabled + label:before {\n",
       "  color: var(--xr-disabled-color);\n",
       "}\n",
       "\n",
       ".xr-section-summary-in:checked + label:before {\n",
       "  content: \"▼\";\n",
       "}\n",
       "\n",
       ".xr-section-summary-in:checked + label > span {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       ".xr-section-summary,\n",
       ".xr-section-inline-details,\n",
       ".xr-group-box-contents > label {\n",
       "  padding-top: 4px;\n",
       "}\n",
       "\n",
       ".xr-section-inline-details {\n",
       "  grid-column: 2 / -1;\n",
       "}\n",
       "\n",
       ".xr-section-details {\n",
       "  grid-column: 1 / -1;\n",
       "  margin-top: 4px;\n",
       "  margin-bottom: 5px;\n",
       "}\n",
       "\n",
       ".xr-section-summary-in ~ .xr-section-details {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       ".xr-section-summary-in:checked ~ .xr-section-details {\n",
       "  display: contents;\n",
       "}\n",
       "\n",
       ".xr-children {\n",
       "  display: inline-grid;\n",
       "  grid-template-columns: 100%;\n",
       "  grid-column: 1 / -1;\n",
       "  padding-top: 4px;\n",
       "}\n",
       "\n",
       ".xr-group-box {\n",
       "  display: inline-grid;\n",
       "  grid-template-columns: 0px 30px auto;\n",
       "}\n",
       "\n",
       ".xr-group-box-vline {\n",
       "  grid-column-start: 1;\n",
       "  border-right: 0.2em solid;\n",
       "  border-color: var(--xr-border-color);\n",
       "  width: 0px;\n",
       "}\n",
       "\n",
       ".xr-group-box-hline {\n",
       "  grid-column-start: 2;\n",
       "  grid-row-start: 1;\n",
       "  height: 1em;\n",
       "  width: 26px;\n",
       "  border-bottom: 0.2em solid;\n",
       "  border-color: var(--xr-border-color);\n",
       "}\n",
       "\n",
       ".xr-group-box-contents {\n",
       "  grid-column-start: 3;\n",
       "  padding-bottom: 4px;\n",
       "}\n",
       "\n",
       ".xr-group-box-contents > label::before {\n",
       "  content: \"📂\";\n",
       "  padding-right: 0.3em;\n",
       "}\n",
       "\n",
       ".xr-group-box-contents > input:checked + label::before {\n",
       "  content: \"📁\";\n",
       "}\n",
       "\n",
       ".xr-group-box-contents > input:checked + label {\n",
       "  padding-bottom: 0px;\n",
       "}\n",
       "\n",
       ".xr-group-box-contents > input:checked ~ .xr-sections {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       ".xr-group-box-contents > input + label > span {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       ".xr-group-box-ellipsis {\n",
       "  font-size: 1.4em;\n",
       "  font-weight: 900;\n",
       "  color: var(--xr-font-color2);\n",
       "  letter-spacing: 0.15em;\n",
       "  cursor: default;\n",
       "}\n",
       "\n",
       ".xr-array-wrap {\n",
       "  grid-column: 1 / -1;\n",
       "  display: grid;\n",
       "  grid-template-columns: 20px auto;\n",
       "}\n",
       "\n",
       ".xr-array-wrap > label {\n",
       "  grid-column: 1;\n",
       "  vertical-align: top;\n",
       "}\n",
       "\n",
       ".xr-preview {\n",
       "  color: var(--xr-font-color3);\n",
       "}\n",
       "\n",
       ".xr-array-preview,\n",
       ".xr-array-data {\n",
       "  padding: 0 5px !important;\n",
       "  grid-column: 2;\n",
       "}\n",
       "\n",
       ".xr-array-data,\n",
       ".xr-array-in:checked ~ .xr-array-preview {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       ".xr-array-in:checked ~ .xr-array-data,\n",
       ".xr-array-preview {\n",
       "  display: inline-block;\n",
       "}\n",
       "\n",
       ".xr-dim-list {\n",
       "  display: inline-block !important;\n",
       "  list-style: none;\n",
       "  padding: 0 !important;\n",
       "  margin: 0;\n",
       "}\n",
       "\n",
       ".xr-dim-list li {\n",
       "  display: inline-block;\n",
       "  padding: 0;\n",
       "  margin: 0;\n",
       "}\n",
       "\n",
       ".xr-dim-list:before {\n",
       "  content: \"(\";\n",
       "}\n",
       "\n",
       ".xr-dim-list:after {\n",
       "  content: \")\";\n",
       "}\n",
       "\n",
       ".xr-dim-list li:not(:last-child):after {\n",
       "  content: \",\";\n",
       "  padding-right: 5px;\n",
       "}\n",
       "\n",
       ".xr-has-index {\n",
       "  font-weight: bold;\n",
       "}\n",
       "\n",
       ".xr-var-list,\n",
       ".xr-var-item {\n",
       "  display: contents;\n",
       "}\n",
       "\n",
       ".xr-var-item > div,\n",
       ".xr-var-item label,\n",
       ".xr-var-item > .xr-var-name span {\n",
       "  background-color: var(--xr-background-color-row-even);\n",
       "  border-color: var(--xr-background-color-row-odd);\n",
       "  margin-bottom: 0;\n",
       "  padding-top: 2px;\n",
       "}\n",
       "\n",
       ".xr-var-item > .xr-var-name:hover span {\n",
       "  padding-right: 5px;\n",
       "}\n",
       "\n",
       ".xr-var-list > li:nth-child(odd) > div,\n",
       ".xr-var-list > li:nth-child(odd) > label,\n",
       ".xr-var-list > li:nth-child(odd) > .xr-var-name span {\n",
       "  background-color: var(--xr-background-color-row-odd);\n",
       "  border-color: var(--xr-background-color-row-even);\n",
       "}\n",
       "\n",
       ".xr-var-name {\n",
       "  grid-column: 1;\n",
       "}\n",
       "\n",
       ".xr-var-dims {\n",
       "  grid-column: 2;\n",
       "}\n",
       "\n",
       ".xr-var-dtype {\n",
       "  grid-column: 3;\n",
       "  text-align: right;\n",
       "  color: var(--xr-font-color2);\n",
       "}\n",
       "\n",
       ".xr-var-preview {\n",
       "  grid-column: 4;\n",
       "}\n",
       "\n",
       ".xr-index-preview {\n",
       "  grid-column: 2 / 5;\n",
       "  color: var(--xr-font-color2);\n",
       "}\n",
       "\n",
       ".xr-var-name,\n",
       ".xr-var-dims,\n",
       ".xr-var-dtype,\n",
       ".xr-preview,\n",
       ".xr-attrs dt {\n",
       "  white-space: nowrap;\n",
       "  overflow: hidden;\n",
       "  text-overflow: ellipsis;\n",
       "  padding-right: 10px;\n",
       "}\n",
       "\n",
       ".xr-var-name:hover,\n",
       ".xr-var-dims:hover,\n",
       ".xr-var-dtype:hover,\n",
       ".xr-attrs dt:hover {\n",
       "  overflow: visible;\n",
       "  width: auto;\n",
       "  z-index: 1;\n",
       "}\n",
       "\n",
       ".xr-var-attrs,\n",
       ".xr-var-data,\n",
       ".xr-index-data {\n",
       "  display: none;\n",
       "  border-top: 2px dotted var(--xr-background-color);\n",
       "  padding-bottom: 20px !important;\n",
       "  padding-top: 10px !important;\n",
       "}\n",
       "\n",
       ".xr-var-attrs-in + label,\n",
       ".xr-var-data-in + label,\n",
       ".xr-index-data-in + label {\n",
       "  padding: 0 1px;\n",
       "}\n",
       "\n",
       ".xr-var-attrs-in:checked ~ .xr-var-attrs,\n",
       ".xr-var-data-in:checked ~ .xr-var-data,\n",
       ".xr-index-data-in:checked ~ .xr-index-data {\n",
       "  display: block;\n",
       "}\n",
       "\n",
       ".xr-var-data > table {\n",
       "  float: right;\n",
       "}\n",
       "\n",
       ".xr-var-data > pre,\n",
       ".xr-index-data > pre,\n",
       ".xr-var-data > table > tbody > tr {\n",
       "  background-color: transparent !important;\n",
       "}\n",
       "\n",
       ".xr-var-name span,\n",
       ".xr-var-data,\n",
       ".xr-index-name div,\n",
       ".xr-index-data,\n",
       ".xr-attrs {\n",
       "  padding-left: 25px !important;\n",
       "}\n",
       "\n",
       ".xr-attrs,\n",
       ".xr-var-attrs,\n",
       ".xr-var-data,\n",
       ".xr-index-data {\n",
       "  grid-column: 1 / -1;\n",
       "}\n",
       "\n",
       "dl.xr-attrs {\n",
       "  padding: 0;\n",
       "  margin: 0;\n",
       "  display: grid;\n",
       "  grid-template-columns: 125px auto;\n",
       "}\n",
       "\n",
       ".xr-attrs dt,\n",
       ".xr-attrs dd {\n",
       "  padding: 0;\n",
       "  margin: 0;\n",
       "  float: left;\n",
       "  padding-right: 10px;\n",
       "  width: auto;\n",
       "}\n",
       "\n",
       ".xr-attrs dt {\n",
       "  font-weight: normal;\n",
       "  grid-column: 1;\n",
       "}\n",
       "\n",
       ".xr-attrs dt:hover span {\n",
       "  display: inline-block;\n",
       "  background: var(--xr-background-color);\n",
       "  padding-right: 10px;\n",
       "}\n",
       "\n",
       ".xr-attrs dd {\n",
       "  grid-column: 2;\n",
       "  white-space: pre-wrap;\n",
       "  word-break: break-all;\n",
       "}\n",
       "\n",
       ".xr-icon-database,\n",
       ".xr-icon-file-text2,\n",
       ".xr-no-icon {\n",
       "  display: inline-block;\n",
       "  vertical-align: middle;\n",
       "  width: 1em;\n",
       "  height: 1.5em !important;\n",
       "  stroke-width: 0;\n",
       "  stroke: currentColor;\n",
       "  fill: currentColor;\n",
       "}\n",
       "\n",
       ".xr-var-attrs-in:checked + label > .xr-icon-file-text2,\n",
       ".xr-var-data-in:checked + label > .xr-icon-database,\n",
       ".xr-index-data-in:checked + label > .xr-icon-database {\n",
       "  color: var(--xr-font-color0);\n",
       "  filter: drop-shadow(1px 1px 5px var(--xr-font-color2));\n",
       "  stroke-width: 0.8px;\n",
       "}\n",
       "</style><pre class='xr-text-repr-fallback'>&lt;xarray.Dataset&gt; Size: 40kB\n",
       "Dimensions:  (time: 1000, row: 2)\n",
       "Coordinates:\n",
       "  * time     (time) float64 8kB 0.0 2.002e-11 4.004e-11 ... 1.998e-08 2e-08\n",
       "Dimensions without coordinates: row\n",
       "Data variables:\n",
       "    qstates  (time, row) complex128 32kB (1+0j) ... (-0.20567110345887604+0.8...</pre><div class='xr-wrap' style='display:none'><div class='xr-header'><div class='xr-obj-type'>xarray.Dataset</div></div><ul class='xr-sections'><li class='xr-section-item'><input id='section-a9018170-c421-4de2-b462-e89400ddb79b' class='xr-section-summary-in' type='checkbox' disabled /><label for='section-a9018170-c421-4de2-b462-e89400ddb79b' class='xr-section-summary'>Dimensions:</label><div class='xr-section-inline-details'><ul class='xr-dim-list'><li><span class='xr-has-index'>time</span>: 1000</li><li><span>row</span>: 2</li></ul></div></li><li class='xr-section-item'><input id='section-f617ca37-b170-4dbc-bb9d-b9ce700199ea' class='xr-section-summary-in' type='checkbox' checked /><label for='section-f617ca37-b170-4dbc-bb9d-b9ce700199ea' class='xr-section-summary' title='Expand/collapse section'>Coordinates: <span>(1)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>time</span></div><div class='xr-var-dims'>(time)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>0.0 2.002e-11 ... 1.998e-08 2e-08</div><input id='attrs-fec0aad0-e1d1-4a12-a4c1-37de7a9565d5' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-fec0aad0-e1d1-4a12-a4c1-37de7a9565d5' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-79b6e2cf-9795-486c-94a8-eac16ab1e16e' class='xr-var-data-in' type='checkbox'><label for='data-79b6e2cf-9795-486c-94a8-eac16ab1e16e' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([0.000000e+00, 2.002002e-11, 4.004004e-11, ..., 1.995996e-08,\n",
       "       1.997998e-08, 2.000000e-08], shape=(1000,))</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-30d7a9af-28f7-467a-8e64-2d3537bf486b' class='xr-section-summary-in' type='checkbox' checked /><label for='section-30d7a9af-28f7-467a-8e64-2d3537bf486b' class='xr-section-summary' title='Expand/collapse section'>Data variables: <span>(1)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-var-name'><span>qstates</span></div><div class='xr-var-dims'>(time, row)</div><div class='xr-var-dtype'>complex128</div><div class='xr-var-preview xr-preview'>(1+0j) ... (-0.20567110345887604...</div><input id='attrs-c20e9cdc-1edb-43aa-897b-a3c6673b07f2' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-c20e9cdc-1edb-43aa-897b-a3c6673b07f2' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-ed9c1557-7196-4fdc-9890-7f4a43a52110' class='xr-var-data-in' type='checkbox'><label for='data-ed9c1557-7196-4fdc-9890-7f4a43a52110' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([[ 1.00000000e+00+0.00000000e+00j,  0.00000000e+00+0.00000000e+00j],\n",
       "       [ 9.99606525e-01+2.80493257e-02j,  8.94659564e-09-1.76444092e-04j],\n",
       "       [ 9.98426408e-01+5.60765765e-02j,  6.18476215e-08-3.54402796e-04j],\n",
       "       ...,\n",
       "       [-5.29351688e-01+1.54955341e-01j, -2.50784671e-01+7.96629145e-01j],\n",
       "       [-5.33370914e-01+1.40083811e-01j, -2.28317962e-01+8.03429009e-01j],\n",
       "       [-5.36967711e-01+1.25102814e-01j, -2.05671103e-01+8.09598426e-01j]],\n",
       "      shape=(1000, 2))</pre></div></li></ul></div></li></ul></div></div>"
      ],
      "text/plain": [
       "<xarray.Dataset> Size: 40kB\n",
       "Dimensions:  (time: 1000, row: 2)\n",
       "Coordinates:\n",
       "  * time     (time) float64 8kB 0.0 2.002e-11 4.004e-11 ... 1.998e-08 2e-08\n",
       "Dimensions without coordinates: row\n",
       "Data variables:\n",
       "    qstates  (time, row) complex128 32kB (1+0j) ... (-0.20567110345887604+0.8..."
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ds = sess.evolve(\"Tsit5\", reltol=1e-3, abstol=1e-4, saveat=ts)\n",
    "ds"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "19",
   "metadata": {},
   "source": [
    "This returns an `xarray.Dataset` object containing coordinates corresponding to the time axis and quantum-state labels (here, $|0\\rangle$ and $|1\\rangle$), as well as the variable `qstates`, which stores either the state vector or density matrix of the system.\n",
    "\n",
    "## 4. Plotting the qubit dynamics\n",
    "\n",
    "Let's take a look at the effect of the drive on the qubit populations. Since `xarray.Dataset` supports additional derived variables, we can compute the state populations and store them alongside the original simulation results. We can also rename the `row` dimension to `state` and assign the basis-state labels $|0\\rangle$ and $|1\\rangle$ for clearer indexing and visualisation."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "20",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-20T10:11:56.827678Z",
     "iopub.status.busy": "2026-08-20T10:11:56.827495Z",
     "iopub.status.idle": "2026-08-20T10:11:56.832968Z",
     "shell.execute_reply": "2026-08-20T10:11:56.832160Z"
    }
   },
   "outputs": [],
   "source": [
    "# calculate population of each state\n",
    "ds[\"population\"] = np.abs(ds[\"qstates\"]) ** 2\n",
    "\n",
    "ds = ds.rename({\"row\": \"state\"})  # rename the dimension \"row\" to \"states\"\n",
    "ds = ds.assign_coords(state=[r\"|0>\", r\"|1>\"])  # assign labels to the dimensions"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "21",
   "metadata": {},
   "source": [
    "`xarray` provides different backends to conveniently plot the result. For example, we can use `hvplot` to plot the population of each state:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "22",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-20T10:11:56.834545Z",
     "iopub.status.busy": "2026-08-20T10:11:56.834376Z",
     "iopub.status.idle": "2026-08-20T10:11:56.972075Z",
     "shell.execute_reply": "2026-08-20T10:11:56.971370Z"
    }
   },
   "outputs": [
    {
     "data": {},
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.holoviews_exec.v0+json": "",
      "text/html": [
       "<div id='9f8d8c80-4af0-40ec-a42f-d787fd1b1d3d'>\n",
       "  <div id=\"f0a7891f-05e0-43ed-a26d-62511249eb9d\" data-root-id=\"9f8d8c80-4af0-40ec-a42f-d787fd1b1d3d\" style=\"display: contents;\"></div>\n",
       "</div>\n",
       "<script type=\"application/javascript\">(function(root) {\n",
       "  var docs_json = {\"d293cb3e-2796-4629-857f-81e862541924\":{\"version\":\"3.9.0\",\"title\":\"Bokeh Application\",\"config\":{\"type\":\"object\",\"name\":\"DocumentConfig\",\"id\":\"262f9f08-5920-44cd-9841-6a93d4d01fec\",\"attributes\":{\"notifications\":{\"type\":\"object\",\"name\":\"Notifications\",\"id\":\"bd050b8c-45d9-40ef-9b1e-ddbbcb7baf0d\"}}},\"roots\":[{\"type\":\"object\",\"name\":\"Row\",\"id\":\"9f8d8c80-4af0-40ec-a42f-d787fd1b1d3d\",\"attributes\":{\"name\":\"Row00361\",\"tags\":[\"embedded\"],\"stylesheets\":[\"\\n:host(.pn-loading):before, .pn-loading:before {\\n  background-color: #c3c3c3;\\n  mask-size: auto calc(min(50%, 300px));\\n  -webkit-mask-size: auto calc(min(50%, 300px));\\n}\",{\"type\":\"object\",\"name\":\"ImportedStyleSheet\",\"id\":\"b40702e6-8ded-47ea-a62e-808eed63a24d\",\"attributes\":{\"url\":\"https://cdn.holoviz.org/panel/1.8.10/dist/css/loading.css?v=1.8.10\"}},{\"type\":\"object\",\"name\":\"ImportedStyleSheet\",\"id\":\"a4c97fba-b909-4d1c-a647-40b9906a2e64\",\"attributes\":{\"url\":\"https://cdn.holoviz.org/panel/1.8.10/dist/css/listpanel.css\"}},{\"type\":\"object\",\"name\":\"ImportedStyleSheet\",\"id\":\"822183ab-7445-46e4-a56e-daac3301e009\",\"attributes\":{\"url\":\"https://cdn.holoviz.org/panel/1.8.10/dist/bundled/theme/default.css\"}},{\"type\":\"object\",\"name\":\"ImportedStyleSheet\",\"id\":\"a906e2f4-2604-4d70-8628-c4b0efa81da2\",\"attributes\":{\"url\":\"https://cdn.holoviz.org/panel/1.8.10/dist/bundled/theme/native.css\"}}],\"min_width\":700,\"margin\":0,\"sizing_mode\":\"stretch_width\",\"align\":\"start\",\"children\":[{\"type\":\"object\",\"name\":\"Spacer\",\"id\":\"6e45bb84-2fcb-4ce9-aaa4-6202e6106f8c\",\"attributes\":{\"name\":\"HSpacer00365\",\"stylesheets\":[\"\\n:host(.pn-loading):before, .pn-loading:before {\\n  background-color: #c3c3c3;\\n  mask-size: auto calc(min(50%, 300px));\\n  -webkit-mask-size: auto calc(min(50%, 300px));\\n}\",{\"id\":\"b40702e6-8ded-47ea-a62e-808eed63a24d\"},{\"id\":\"822183ab-7445-46e4-a56e-daac3301e009\"},{\"id\":\"a906e2f4-2604-4d70-8628-c4b0efa81da2\"}],\"min_width\":0,\"margin\":0,\"sizing_mode\":\"stretch_width\",\"align\":\"start\"}},{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"9fdbc86a-1915-40ee-a453-26cd248df164\",\"attributes\":{\"width\":700,\"height\":300,\"margin\":[5,10],\"sizing_mode\":\"fixed\",\"align\":\"start\",\"x_range\":{\"type\":\"object\",\"name\":\"Range1d\",\"id\":\"31e18cab-25ab-41f4-bfc0-1cb7040957e3\",\"attributes\":{\"name\":\"time\",\"tags\":[[[\"time\",null]],[]],\"end\":2e-08,\"reset_start\":0.0,\"reset_end\":2e-08}},\"y_range\":{\"type\":\"object\",\"name\":\"Range1d\",\"id\":\"22b427bc-fb17-4c88-bffe-20a01624926b\",\"attributes\":{\"name\":\"population\",\"tags\":[[[\"population\",null]],{\"type\":\"map\",\"entries\":[[\"invert_yaxis\",false],[\"autorange\",false]]}],\"start\":-0.1,\"end\":1.1,\"reset_start\":-0.1,\"reset_end\":1.1}},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"ddd49777-096f-4eb3-9c22-16eb38be7583\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"58a30dc9-ac1a-4ef3-85f7-e750c8304f36\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"d2964cc0-49da-45d0-b9bf-cfc21f561719\",\"attributes\":{\"text_color\":\"black\",\"text_font_size\":\"12pt\"}},\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"6f18007a-162c-4915-a70d-885e5ff314d8\",\"attributes\":{\"name\":\"|0>\",\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"47d747e8-4169-4377-8397-f79027f273a6\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"889af211-c415-4676-a0dc-e133547d5524\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"910ce6d2-37a5-412d-90a9-cf25b11de872\"},\"data\":{\"type\":\"map\",\"entries\":[[\"time\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[1000],\"dtype\":\"float64\",\"order\":\"little\"}],[\"population\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[1000],\"dtype\":\"float64\",\"order\":\"little\"}],[\"state\",[\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\",\"|0>\"]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"39061651-30c2-4896-a428-24cd3d888abc\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"55c056b0-913a-444c-852a-7867347bf4e3\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"ab05a80d-0cca-41f2-a9bc-85d834714656\",\"attributes\":{\"tags\":[\"apply_ranges\"],\"x\":{\"type\":\"field\",\"field\":\"time\"},\"y\":{\"type\":\"field\",\"field\":\"population\"},\"line_color\":\"#30a2da\",\"line_width\":2}},\"selection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"ade67b99-5be0-4483-81a0-6b4cc163b4ca\",\"attributes\":{\"tags\":[\"apply_ranges\"],\"x\":{\"type\":\"field\",\"field\":\"time\"},\"y\":{\"type\":\"field\",\"field\":\"population\"},\"line_color\":\"#30a2da\",\"line_width\":2}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"93295d27-daf5-498a-adbc-c5881ac0877e\",\"attributes\":{\"tags\":[\"apply_ranges\"],\"x\":{\"type\":\"field\",\"field\":\"time\"},\"y\":{\"type\":\"field\",\"field\":\"population\"},\"line_color\":\"#30a2da\",\"line_alpha\":0.1,\"line_width\":2}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"c0a4e7fa-8e44-4771-974c-d481ca234d4a\",\"attributes\":{\"tags\":[\"apply_ranges\"],\"x\":{\"type\":\"field\",\"field\":\"time\"},\"y\":{\"type\":\"field\",\"field\":\"population\"},\"line_color\":\"#30a2da\",\"line_alpha\":0.2,\"line_width\":2}}}},{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"5750b9bf-073d-4727-a280-dd2667958dde\",\"attributes\":{\"name\":\"|1>\",\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"4268d608-6911-48b2-84e0-25f34873b381\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"5be7fe78-bd56-4af5-a27f-c15b6d6bf75d\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"985746e2-af92-486c-bb91-6928ab022a42\"},\"data\":{\"type\":\"map\",\"entries\":[[\"time\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[1000],\"dtype\":\"float64\",\"order\":\"little\"}],[\"population\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[1000],\"dtype\":\"float64\",\"order\":\"little\"}],[\"state\",[\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\",\"|1>\"]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"b54fe3ac-5aff-4b10-ba3b-40d0acbc6b14\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"f62fa119-12c4-49b7-b15d-739964119c5f\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"ac62e749-a682-4d84-ad8b-d1992329a23f\",\"attributes\":{\"tags\":[\"apply_ranges\"],\"x\":{\"type\":\"field\",\"field\":\"time\"},\"y\":{\"type\":\"field\",\"field\":\"population\"},\"line_color\":\"#fc4f30\",\"line_width\":2}},\"selection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"cef128ca-c5ff-4bbc-9465-2a6f2ad2efdf\",\"attributes\":{\"tags\":[\"apply_ranges\"],\"x\":{\"type\":\"field\",\"field\":\"time\"},\"y\":{\"type\":\"field\",\"field\":\"population\"},\"line_color\":\"#fc4f30\",\"line_width\":2}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"2b11e3e8-1c70-45c7-8ee4-9f90ad3b3c5f\",\"attributes\":{\"tags\":[\"apply_ranges\"],\"x\":{\"type\":\"field\",\"field\":\"time\"},\"y\":{\"type\":\"field\",\"field\":\"population\"},\"line_color\":\"#fc4f30\",\"line_alpha\":0.1,\"line_width\":2}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"89005b83-ada7-4a61-b693-2217f3adf783\",\"attributes\":{\"tags\":[\"apply_ranges\"],\"x\":{\"type\":\"field\",\"field\":\"time\"},\"y\":{\"type\":\"field\",\"field\":\"population\"},\"line_color\":\"#fc4f30\",\"line_alpha\":0.2,\"line_width\":2}}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"a5562670-1f4f-41bc-8a92-ce17d93e5679\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"42f3d981-b673-4046-915e-26289212616a\",\"attributes\":{\"tags\":[\"hv_created\"],\"renderers\":\"auto\",\"zoom_together\":\"none\"}},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"81415684-bceb-46d6-9263-61299c5fb2e1\",\"attributes\":{\"tags\":[\"hv_created\"],\"renderers\":[{\"id\":\"6f18007a-162c-4915-a70d-885e5ff314d8\"},{\"id\":\"5750b9bf-073d-4727-a280-dd2667958dde\"}],\"tooltips\":[[\"state\",\"@{state}\"],[\"time\",\"@{time}\"],[\"population\",\"@{population}\"]],\"sort_by\":null}},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"c8ffd3eb-c6b9-4bbd-95ec-9cdd2b8725e1\"},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"7e247a86-9bb0-4d32-a52c-d71a66ff6834\"},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"35190a0f-e3d5-4d42-b47d-f0729bf1b5f1\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"ea95e277-ab35-4461-ba18-7427b8dd02f5\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"f3e15c53-ae30-4170-94ba-aa60ce4ea5f4\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"09e50b7b-62f9-4ecf-87a1-825bcd5305cb\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"9983b1e1-a855-44e0-8760-a8f2e80e0b55\"}],\"active_drag\":{\"id\":\"7e247a86-9bb0-4d32-a52c-d71a66ff6834\"},\"active_scroll\":{\"id\":\"42f3d981-b673-4046-915e-26289212616a\"}}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"c334fb99-e889-4b56-8501-5183a10dbb8b\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"5f01b927-b683-4c8b-893a-3ec7a295fa1a\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"ef3edaaf-b529-47a1-bfef-ca0305fd116a\"},\"axis_label\":\"population (arb. u.)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"40e2fd3e-cbe7-40f4-9d93-b2ec684cb606\"}}}],\"right\":[{\"type\":\"object\",\"name\":\"Legend\",\"id\":\"c14adb82-067c-4ba1-8053-b171aee46a1a\",\"attributes\":{\"location\":[0,0],\"title\":\"state\",\"click_policy\":\"mute\",\"items\":[{\"type\":\"object\",\"name\":\"LegendItem\",\"id\":\"99ab81db-caac-45f7-88df-9f66283ac3ee\",\"attributes\":{\"label\":{\"type\":\"value\",\"value\":\"|0>\"},\"renderers\":[{\"id\":\"6f18007a-162c-4915-a70d-885e5ff314d8\"}]}},{\"type\":\"object\",\"name\":\"LegendItem\",\"id\":\"d230275f-1228-4b4d-a91e-bdea8a2d3e8a\",\"attributes\":{\"label\":{\"type\":\"value\",\"value\":\"|1>\"},\"renderers\":[{\"id\":\"5750b9bf-073d-4727-a280-dd2667958dde\"}]}}]}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"834bf660-01a8-4a02-a683-41663b60f4eb\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"7946fb83-9b17-4098-9fe9-23d0524cb3fe\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"9c9b4381-c843-40b0-9275-3f5713c228ad\"},\"axis_label\":\"time (s)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"59bcaec6-6d57-4e04-b2ee-072484520853\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"eeecab7a-78fa-4a22-97b6-779f37a5296b\",\"attributes\":{\"axis\":{\"id\":\"834bf660-01a8-4a02-a683-41663b60f4eb\"},\"grid_line_color\":null}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"b50c0e97-b407-4a05-9ad9-0ce856e05886\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"c334fb99-e889-4b56-8501-5183a10dbb8b\"},\"grid_line_color\":null}}],\"min_border_top\":10,\"min_border_bottom\":10,\"min_border_left\":10,\"min_border_right\":10,\"output_backend\":\"webgl\"}},{\"type\":\"object\",\"name\":\"Spacer\",\"id\":\"d18ac4ed-d004-4cf3-9f9b-228166455937\",\"attributes\":{\"name\":\"HSpacer00366\",\"stylesheets\":[\"\\n:host(.pn-loading):before, .pn-loading:before {\\n  background-color: #c3c3c3;\\n  mask-size: auto calc(min(50%, 300px));\\n  -webkit-mask-size: auto calc(min(50%, 300px));\\n}\",{\"id\":\"b40702e6-8ded-47ea-a62e-808eed63a24d\"},{\"id\":\"822183ab-7445-46e4-a56e-daac3301e009\"},{\"id\":\"a906e2f4-2604-4d70-8628-c4b0efa81da2\"}],\"min_width\":0,\"margin\":0,\"sizing_mode\":\"stretch_width\",\"align\":\"start\"}}]}}],\"defs\":[{\"type\":\"model\",\"name\":\"ReactiveHTML1\"},{\"type\":\"model\",\"name\":\"FlexBox1\",\"properties\":[{\"name\":\"align_content\",\"kind\":\"Any\",\"default\":\"flex-start\"},{\"name\":\"align_items\",\"kind\":\"Any\",\"default\":\"flex-start\"},{\"name\":\"flex_direction\",\"kind\":\"Any\",\"default\":\"row\"},{\"name\":\"flex_wrap\",\"kind\":\"Any\",\"default\":\"wrap\"},{\"name\":\"gap\",\"kind\":\"Any\",\"default\":\"\"},{\"name\":\"justify_content\",\"kind\":\"Any\",\"default\":\"flex-start\"}]},{\"type\":\"model\",\"name\":\"FloatPanel1\",\"properties\":[{\"name\":\"config\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}},{\"name\":\"contained\",\"kind\":\"Any\",\"default\":true},{\"name\":\"position\",\"kind\":\"Any\",\"default\":\"right-top\"},{\"name\":\"offsetx\",\"kind\":\"Any\",\"default\":null},{\"name\":\"offsety\",\"kind\":\"Any\",\"default\":null},{\"name\":\"theme\",\"kind\":\"Any\",\"default\":\"primary\"},{\"name\":\"status\",\"kind\":\"Any\",\"default\":\"normalized\"}]},{\"type\":\"model\",\"name\":\"GridStack1\",\"properties\":[{\"name\":\"ncols\",\"kind\":\"Any\",\"default\":null},{\"name\":\"nrows\",\"kind\":\"Any\",\"default\":null},{\"name\":\"allow_resize\",\"kind\":\"Any\",\"default\":true},{\"name\":\"allow_drag\",\"kind\":\"Any\",\"default\":true},{\"name\":\"state\",\"kind\":\"Any\",\"default\":[]}]},{\"type\":\"model\",\"name\":\"drag1\",\"properties\":[{\"name\":\"slider_width\",\"kind\":\"Any\",\"default\":5},{\"name\":\"slider_color\",\"kind\":\"Any\",\"default\":\"black\"},{\"name\":\"start\",\"kind\":\"Any\",\"default\":0},{\"name\":\"end\",\"kind\":\"Any\",\"default\":100},{\"name\":\"value\",\"kind\":\"Any\",\"default\":50}]},{\"type\":\"model\",\"name\":\"click1\",\"properties\":[{\"name\":\"terminal_output\",\"kind\":\"Any\",\"default\":\"\"},{\"name\":\"debug_name\",\"kind\":\"Any\",\"default\":\"\"},{\"name\":\"clears\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"ReactiveESM1\",\"properties\":[{\"name\":\"esm_constants\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}}]},{\"type\":\"model\",\"name\":\"JSComponent1\",\"properties\":[{\"name\":\"esm_constants\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}}]},{\"type\":\"model\",\"name\":\"ReactComponent1\",\"properties\":[{\"name\":\"use_shadow_dom\",\"kind\":\"Any\",\"default\":true},{\"name\":\"esm_constants\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}}]},{\"type\":\"model\",\"name\":\"AnyWidgetComponent1\",\"properties\":[{\"name\":\"use_shadow_dom\",\"kind\":\"Any\",\"default\":true},{\"name\":\"esm_constants\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}}]},{\"type\":\"model\",\"name\":\"FastWrapper1\",\"properties\":[{\"name\":\"object\",\"kind\":\"Any\",\"default\":null},{\"name\":\"style\",\"kind\":\"Any\",\"default\":null}]},{\"type\":\"model\",\"name\":\"NotificationArea1\",\"properties\":[{\"name\":\"js_events\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}},{\"name\":\"max_notifications\",\"kind\":\"Any\",\"default\":5},{\"name\":\"notifications\",\"kind\":\"Any\",\"default\":[]},{\"name\":\"position\",\"kind\":\"Any\",\"default\":\"bottom-right\"},{\"name\":\"_clear\",\"kind\":\"Any\",\"default\":0},{\"name\":\"types\",\"kind\":\"Any\",\"default\":[{\"type\":\"map\",\"entries\":[[\"type\",\"warning\"],[\"background\",\"#ffc107\"],[\"icon\",{\"type\":\"map\",\"entries\":[[\"className\",\"fas fa-exclamation-triangle\"],[\"tagName\",\"i\"],[\"color\",\"white\"]]}]]},{\"type\":\"map\",\"entries\":[[\"type\",\"info\"],[\"background\",\"#007bff\"],[\"icon\",{\"type\":\"map\",\"entries\":[[\"className\",\"fas fa-info-circle\"],[\"tagName\",\"i\"],[\"color\",\"white\"]]}]]}]}]},{\"type\":\"model\",\"name\":\"Notification\",\"properties\":[{\"name\":\"background\",\"kind\":\"Any\",\"default\":null},{\"name\":\"duration\",\"kind\":\"Any\",\"default\":3000},{\"name\":\"icon\",\"kind\":\"Any\",\"default\":null},{\"name\":\"message\",\"kind\":\"Any\",\"default\":\"\"},{\"name\":\"notification_type\",\"kind\":\"Any\",\"default\":null},{\"name\":\"_rendered\",\"kind\":\"Any\",\"default\":false},{\"name\":\"_destroyed\",\"kind\":\"Any\",\"default\":false}]},{\"type\":\"model\",\"name\":\"TemplateActions1\",\"properties\":[{\"name\":\"open_modal\",\"kind\":\"Any\",\"default\":0},{\"name\":\"close_modal\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"BootstrapTemplateActions1\",\"properties\":[{\"name\":\"open_modal\",\"kind\":\"Any\",\"default\":0},{\"name\":\"close_modal\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"TemplateEditor1\",\"properties\":[{\"name\":\"layout\",\"kind\":\"Any\",\"default\":[]}]},{\"type\":\"model\",\"name\":\"MaterialTemplateActions1\",\"properties\":[{\"name\":\"open_modal\",\"kind\":\"Any\",\"default\":0},{\"name\":\"close_modal\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"request_value1\",\"properties\":[{\"name\":\"fill\",\"kind\":\"Any\",\"default\":\"none\"},{\"name\":\"_synced\",\"kind\":\"Any\",\"default\":null},{\"name\":\"_request_sync\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"holoviews.plotting.bokeh.raster.HoverModel\",\"properties\":[{\"name\":\"xy\",\"kind\":\"Any\",\"default\":null},{\"name\":\"data\",\"kind\":\"Any\",\"default\":null}]}]}};\n",
       "  var render_items = [{\"docid\":\"d293cb3e-2796-4629-857f-81e862541924\",\"roots\":{\"9f8d8c80-4af0-40ec-a42f-d787fd1b1d3d\":\"f0a7891f-05e0-43ed-a26d-62511249eb9d\"},\"root_ids\":[\"9f8d8c80-4af0-40ec-a42f-d787fd1b1d3d\"]}];\n",
       "  var docs = Object.values(docs_json)\n",
       "  if (!docs) {\n",
       "    return\n",
       "  }\n",
       "  const version = docs[0].version.replace('rc', '-rc.').replace('.dev', '-dev.')\n",
       "  async function embed_document(root) {\n",
       "    var Bokeh = get_bokeh(root)\n",
       "    await Bokeh.embed.embed_items_notebook(docs_json, render_items);\n",
       "    for (const render_item of render_items) {\n",
       "      for (const root_id of render_item.root_ids) {\n",
       "\tconst id_el = document.getElementById(root_id)\n",
       "\tif (id_el.children.length && id_el.children[0].hasAttribute('data-root-id')) {\n",
       "\t  const root_el = id_el.children[0]\n",
       "\t  root_el.id = root_el.id + '-rendered'\n",
       "\t  for (const child of root_el.children) {\n",
       "            // Ensure JupyterLab does not capture keyboard shortcuts\n",
       "            // see: https://jupyterlab.readthedocs.io/en/4.1.x/extension/notebook.html#keyboard-interaction-model\n",
       "\t    child.setAttribute('data-lm-suppress-shortcuts', 'true')\n",
       "\t  }\n",
       "\t}\n",
       "      }\n",
       "    }\n",
       "  }\n",
       "  function get_bokeh(root) {\n",
       "    if (root.Bokeh === undefined) {\n",
       "      return null\n",
       "    } else if (root.Bokeh.version !== version) {\n",
       "      if (root.Bokeh.versions === undefined || !root.Bokeh.versions.has(version)) {\n",
       "\treturn null\n",
       "      }\n",
       "      return root.Bokeh.versions.get(version);\n",
       "    } else if (root.Bokeh.version === version) {\n",
       "      return root.Bokeh\n",
       "    }\n",
       "    return null\n",
       "  }\n",
       "  function is_loaded(root) {\n",
       "    var Bokeh = get_bokeh(root)\n",
       "    return (Bokeh != null && Bokeh.Panel !== undefined)\n",
       "  }\n",
       "  if (is_loaded(root)) {\n",
       "    embed_document(root);\n",
       "  } else {\n",
       "    var attempts = 0;\n",
       "    var timer = setInterval(function(root) {\n",
       "      if (is_loaded(root)) {\n",
       "        clearInterval(timer);\n",
       "        embed_document(root);\n",
       "      } else if (document.readyState == \"complete\") {\n",
       "        attempts++;\n",
       "        if (attempts > 200) {\n",
       "          clearInterval(timer);\n",
       "\t  var Bokeh = get_bokeh(root)\n",
       "\t  if (Bokeh == null || Bokeh.Panel == null) {\n",
       "            console.warn(\"Panel: ERROR: Unable to run Panel code because Bokeh or Panel library is missing\");\n",
       "\t  } else {\n",
       "\t    console.warn(\"Panel: WARNING: Attempting to render but not all required libraries could be resolved.\")\n",
       "\t    embed_document(root)\n",
       "\t  }\n",
       "        }\n",
       "      }\n",
       "    }, 25, root)\n",
       "  }\n",
       "})(window);</script>"
      ],
      "text/plain": [
       ":NdOverlay   [state]\n",
       "   :Curve   [time]   (population)"
      ]
     },
     "execution_count": 11,
     "metadata": {
      "application/vnd.holoviews_exec.v0+json": {
       "id": "9f8d8c80-4af0-40ec-a42f-d787fd1b1d3d"
      }
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# plot populations\n",
    "ds.hvplot.line(\n",
    "    x=\"time\",\n",
    "    y=\"population\",\n",
    "    by=\"state\",\n",
    "    xlabel=\"time (s)\",\n",
    "    ylabel=\"population (arb. u.)\",\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "23",
   "metadata": {},
   "source": [
    "Congratulations! You’ve just simulated your first spin qubit.\n",
    "\n",
    "## 5. Performing quantum optimal control\n",
    "\n",
    "As we can see in the population plot above, the drive pulse does not fully invert the qubit population. If we want to implement an $X$ gate, we need to adjust the pulse parameters so that the qubit is driven from $|0\\rangle$ to $|1\\rangle$ by the end of the simulation. To achieve this, we can perform quantum optimal control. \n",
    "\n",
    "For this, we use <a href=\"https://docs.qruise.com/latest/qruiseml/building-blocks/problems/#qocproblem\">`QOCProblem`</a>, which is almost identical to `Problem`, but with two additional inputs:\n",
    "\n",
    "- the desired (target) qubit state (`ut`, here the excited state $|1\\rangle$), which must be compatible with the type and shape of `u0`\n",
    "- a loss function, $\\mathcal{L}$, that we want to minimise. Here, we'll use `\"svo\"`, which uses the state vector overlap to compute the infidelity: \n",
    "\n",
    "$$\n",
    "\\mathcal{L} = 1 - \\text{svo} = 1 - |\\braket{u_f(t=t_1)|u_t}|^2 ,\n",
    "$$\n",
    "\n",
    "where $u_f(t=t_1)$ is the simulated qubit state at the final time $t_1$, and $u_t$ is the desired target state. The objective is to optimise the parameters of the drive pulse by minimising $\\mathcal{L}$, bringing the final qubit state as close as possible to the target state.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "24",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-20T10:11:56.973833Z",
     "iopub.status.busy": "2026-08-20T10:11:56.973634Z",
     "iopub.status.idle": "2026-08-20T10:11:56.978901Z",
     "shell.execute_reply": "2026-08-20T10:11:56.977959Z"
    }
   },
   "outputs": [],
   "source": [
    "from qruise.toolset import QOCProblem\n",
    "\n",
    "# define target state\n",
    "ut = qt.basis(2, 1)\n",
    "\n",
    "# define QOCProblem\n",
    "qocprob = QOCProblem(\n",
    "    \"Schroedinger\", H, u0, (t0, t1), ps, ut, \"svo\"\n",
    ")  # the Quantum Optimal Control problem"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "25",
   "metadata": {},
   "source": [
    "The whole workflow now reduces to solving the optimal control problem using our initial guess for the drive parameters. At each step, the system is simulated with the current parameters to obtain the final wavefunction and compute the infidelity with respect to the target state. Based on the resulting gradients, the parameters are updated iteratively until they converge and minimise the loss function.\n",
    "\n",
    "Similar to `Problem`, `QOCProblem` defines the optimal control problem we want to solve, but it does not perform the optimisation itself. We first create a `Session`, then use `qocprob_init` to initialise the `QOCProblem` within the session, before calling `Session.optimise` to perform the optimisation. Here, we'll use the <a href=\"https://julianlsolvers.github.io/Optim.jl/stable/algo/lbfgs/\">`L-BFGS`</a> (limited-memory Broyden–Fletcher–Goldfarb–Shanno) algorithm."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "26",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-20T10:11:56.980546Z",
     "iopub.status.busy": "2026-08-20T10:11:56.980375Z",
     "iopub.status.idle": "2026-08-20T10:13:35.720673Z",
     "shell.execute_reply": "2026-08-20T10:13:35.719928Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "loss: 0.30420622234238104\n",
      "loss: 0.6352895949387161\n",
      "loss: 0.005802778138724651\n",
      "loss: 0.02613618729904643\n",
      "loss: 0.0016626924216938122\n",
      "loss: 0.00011674909770675868\n",
      "loss: 2.0748237039569517e-7\n",
      "loss: 2.0670808498213233e-7\n"
     ]
    }
   ],
   "source": [
    "# initialise session with QOCProblem\n",
    "sess.qocprob_init(qocprob)\n",
    "\n",
    "# perform optimisation using L-BFGS algorithm\n",
    "optparams = sess.optimise(\"LBFGS\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "27",
   "metadata": {},
   "source": [
    "We can see the loss function is progressively reduced as the optimisation converges. Let's now compare the initial values of the parameters with those the optimisation yielded."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "28",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-20T10:13:35.722409Z",
     "iopub.status.busy": "2026-08-20T10:13:35.722235Z",
     "iopub.status.idle": "2026-08-20T10:13:35.842691Z",
     "shell.execute_reply": "2026-08-20T10:13:35.841945Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Initial parameters: 2.0 4e-09 -2802495138.6169\n",
      "Optimised parameters: 3.1620023558947286 3.59989480878582e-09 -2809284981.8920965\n"
     ]
    },
    {
     "data": {},
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.holoviews_exec.v0+json": "",
      "text/html": [
       "<div id='a0a2bbde-a907-4053-ad3a-250d863f2059'>\n",
       "  <div id=\"a313c76b-48cc-4e8e-9fbd-855c768a6ee4\" data-root-id=\"a0a2bbde-a907-4053-ad3a-250d863f2059\" style=\"display: contents;\"></div>\n",
       "</div>\n",
       "<script type=\"application/javascript\">(function(root) {\n",
       "  var docs_json = {\"16a2bfc3-3054-4e02-86b7-d76bb77af45b\":{\"version\":\"3.9.0\",\"title\":\"Bokeh Application\",\"config\":{\"type\":\"object\",\"name\":\"DocumentConfig\",\"id\":\"89e52b39-1cf7-4dae-9ec8-a7464b4ab26c\",\"attributes\":{\"notifications\":{\"type\":\"object\",\"name\":\"Notifications\",\"id\":\"ecb2a3ab-4a14-405e-b63e-ff62318372d3\"}}},\"roots\":[{\"type\":\"object\",\"name\":\"Row\",\"id\":\"a0a2bbde-a907-4053-ad3a-250d863f2059\",\"attributes\":{\"name\":\"Row00426\",\"tags\":[\"embedded\"],\"stylesheets\":[\"\\n:host(.pn-loading):before, .pn-loading:before {\\n  background-color: #c3c3c3;\\n  mask-size: auto calc(min(50%, 300px));\\n  -webkit-mask-size: auto calc(min(50%, 300px));\\n}\",{\"type\":\"object\",\"name\":\"ImportedStyleSheet\",\"id\":\"fee495ce-01f6-4814-b1d5-497310b0329b\",\"attributes\":{\"url\":\"https://cdn.holoviz.org/panel/1.8.10/dist/css/loading.css?v=1.8.10\"}},{\"type\":\"object\",\"name\":\"ImportedStyleSheet\",\"id\":\"052435f9-af8b-4ab4-915b-781ec8b75735\",\"attributes\":{\"url\":\"https://cdn.holoviz.org/panel/1.8.10/dist/css/listpanel.css\"}},{\"type\":\"object\",\"name\":\"ImportedStyleSheet\",\"id\":\"b262c4c9-8632-4d56-9103-a886e87e1022\",\"attributes\":{\"url\":\"https://cdn.holoviz.org/panel/1.8.10/dist/bundled/theme/default.css\"}},{\"type\":\"object\",\"name\":\"ImportedStyleSheet\",\"id\":\"8e9a8b4a-2088-4125-9cc0-95b59ccbbfbd\",\"attributes\":{\"url\":\"https://cdn.holoviz.org/panel/1.8.10/dist/bundled/theme/native.css\"}}],\"min_width\":700,\"margin\":0,\"sizing_mode\":\"stretch_width\",\"align\":\"start\",\"children\":[{\"type\":\"object\",\"name\":\"Spacer\",\"id\":\"147c281c-7e1c-4f8c-902b-06ed22157f04\",\"attributes\":{\"name\":\"HSpacer00430\",\"stylesheets\":[\"\\n:host(.pn-loading):before, .pn-loading:before {\\n  background-color: #c3c3c3;\\n  mask-size: auto calc(min(50%, 300px));\\n  -webkit-mask-size: auto calc(min(50%, 300px));\\n}\",{\"id\":\"fee495ce-01f6-4814-b1d5-497310b0329b\"},{\"id\":\"b262c4c9-8632-4d56-9103-a886e87e1022\"},{\"id\":\"8e9a8b4a-2088-4125-9cc0-95b59ccbbfbd\"}],\"min_width\":0,\"margin\":0,\"sizing_mode\":\"stretch_width\",\"align\":\"start\"}},{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"ba600a77-bd55-4df4-8606-07917cc94b47\",\"attributes\":{\"width\":700,\"height\":300,\"margin\":[5,10],\"sizing_mode\":\"fixed\",\"align\":\"start\",\"x_range\":{\"type\":\"object\",\"name\":\"Range1d\",\"id\":\"b83dad48-260b-4de9-abed-3b07a53876a0\",\"attributes\":{\"name\":\"time\",\"tags\":[[[\"time\",null]],[]],\"end\":20.0,\"reset_start\":0.0,\"reset_end\":20.0}},\"y_range\":{\"type\":\"object\",\"name\":\"Range1d\",\"id\":\"48aefa8c-580e-4efd-9272-8eef87573f85\",\"attributes\":{\"name\":\"Unoptimised\",\"tags\":[[[\"value\",null]],{\"type\":\"map\",\"entries\":[[\"invert_yaxis\",false],[\"autorange\",false]]}],\"start\":-418916184.1066007,\"end\":404392986.21436656,\"reset_start\":-418916184.1066007,\"reset_end\":404392986.21436656}},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"fdf873f2-e6d8-43f7-899a-f184a6cc65bd\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"7e29a37a-12f6-4741-a6e6-f6984b2a95e9\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"0af95cd1-4fb9-443a-bb6a-46d517357833\",\"attributes\":{\"text_color\":\"black\",\"text_font_size\":\"12pt\"}},\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"872fea62-ac56-4c4b-8cc8-ba5d6e305a58\",\"attributes\":{\"name\":\"Unoptimised\",\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"b66a94e3-9c98-4e6c-8343-f64abb954e3b\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"3a5241ab-8519-472c-9c91-cf31f895c98e\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"558b823b-7f16-47a7-b9d2-8d610b69ff7c\"},\"data\":{\"type\":\"map\",\"entries\":[[\"time\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[1000],\"dtype\":\"float64\",\"order\":\"little\"}],[\"Unoptimised\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[1000],\"dtype\":\"float64\",\"order\":\"little\"}],[\"Variable\",[\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\",\"Unoptimised\"]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"05d9e262-316c-4930-aea8-64ccff7f311f\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"d23665cb-da9b-414e-a922-03bc4ac0333b\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"a31f705c-576c-4e45-b906-59849e0ebd5b\",\"attributes\":{\"tags\":[\"apply_ranges\"],\"x\":{\"type\":\"field\",\"field\":\"time\"},\"y\":{\"type\":\"field\",\"field\":\"Unoptimised\"},\"line_color\":\"#30a2da\",\"line_width\":2}},\"selection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"4564405b-2896-486d-9b65-8647722f74d2\",\"attributes\":{\"tags\":[\"apply_ranges\"],\"x\":{\"type\":\"field\",\"field\":\"time\"},\"y\":{\"type\":\"field\",\"field\":\"Unoptimised\"},\"line_color\":\"#30a2da\",\"line_width\":2}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"2c4dad8b-18f3-4c02-bca0-883ca335a0de\",\"attributes\":{\"tags\":[\"apply_ranges\"],\"x\":{\"type\":\"field\",\"field\":\"time\"},\"y\":{\"type\":\"field\",\"field\":\"Unoptimised\"},\"line_color\":\"#30a2da\",\"line_alpha\":0.1,\"line_width\":2}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"5347c7d4-3b2f-4bcc-90da-05dc51ec2d73\",\"attributes\":{\"tags\":[\"apply_ranges\"],\"x\":{\"type\":\"field\",\"field\":\"time\"},\"y\":{\"type\":\"field\",\"field\":\"Unoptimised\"},\"line_color\":\"#30a2da\",\"line_alpha\":0.2,\"line_width\":2}}}},{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"4deb1a49-2d49-4bdc-a748-9d4c60dace06\",\"attributes\":{\"name\":\"Optimised\",\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"73bdc98d-b22e-4484-8028-228c4c9718df\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"a6df6fc7-6768-4123-83be-a337bc6cabf1\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"b1ccb62e-265c-42e1-9bac-6e9e8410ac92\"},\"data\":{\"type\":\"map\",\"entries\":[[\"time\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[1000],\"dtype\":\"float64\",\"order\":\"little\"}],[\"Optimised\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[1000],\"dtype\":\"float64\",\"order\":\"little\"}],[\"Variable\",[\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\",\"Optimised\"]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"0f6579a6-f3c4-44aa-b0fc-99dc5d875b75\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"361f782c-8c7c-4cf4-ad63-b29e97d822d3\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"70d74d3e-895c-4064-aa27-d9497ab407d0\",\"attributes\":{\"tags\":[\"apply_ranges\"],\"x\":{\"type\":\"field\",\"field\":\"time\"},\"y\":{\"type\":\"field\",\"field\":\"Optimised\"},\"line_color\":\"#fc4f30\",\"line_width\":2}},\"selection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"1152554c-cc6a-41c7-9a71-0f9428cee904\",\"attributes\":{\"tags\":[\"apply_ranges\"],\"x\":{\"type\":\"field\",\"field\":\"time\"},\"y\":{\"type\":\"field\",\"field\":\"Optimised\"},\"line_color\":\"#fc4f30\",\"line_width\":2}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"2252c776-375c-4fda-aa80-f5b6719b5159\",\"attributes\":{\"tags\":[\"apply_ranges\"],\"x\":{\"type\":\"field\",\"field\":\"time\"},\"y\":{\"type\":\"field\",\"field\":\"Optimised\"},\"line_color\":\"#fc4f30\",\"line_alpha\":0.1,\"line_width\":2}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"104c163d-70bd-43a8-86db-50f3c93dd700\",\"attributes\":{\"tags\":[\"apply_ranges\"],\"x\":{\"type\":\"field\",\"field\":\"time\"},\"y\":{\"type\":\"field\",\"field\":\"Optimised\"},\"line_color\":\"#fc4f30\",\"line_alpha\":0.2,\"line_width\":2}}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"c4b9a9d8-a1f6-4428-acd5-14e9ec2524ca\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"de855bcf-34e1-476c-ae24-51283bf2e526\",\"attributes\":{\"tags\":[\"hv_created\"],\"renderers\":\"auto\",\"zoom_together\":\"none\"}},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"2cd83915-bebf-4160-ba3a-4ac7e5ab1080\",\"attributes\":{\"tags\":[\"hv_created\"],\"renderers\":[{\"id\":\"872fea62-ac56-4c4b-8cc8-ba5d6e305a58\"}],\"tooltips\":[[\"Variable\",\"@{Variable}\"],[\"time\",\"@{time}\"],[\"value\",\"@{Unoptimised}\"]],\"sort_by\":null}},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"895dc665-66c6-49ef-87ba-e5eb4c78a193\",\"attributes\":{\"tags\":[\"hv_created\"],\"renderers\":[{\"id\":\"4deb1a49-2d49-4bdc-a748-9d4c60dace06\"}],\"tooltips\":[[\"Variable\",\"@{Variable}\"],[\"time\",\"@{time}\"],[\"value\",\"@{Optimised}\"]],\"sort_by\":null}},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"753c62f3-8123-4699-98d4-5c82743a9d68\"},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"737d998d-fd0b-41c3-8f33-b802463a6ba4\"},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"e58f0db5-97fc-49e8-be9d-0d54918e2397\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"608a24bc-041d-4e2a-aaba-ef89035443c1\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"0c94f0e2-82d8-443d-9b38-5c27776f98ba\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"d34afb54-4513-4422-8d67-c00c223647e7\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"22c07191-1d4f-477e-aefe-f81c91b662b6\"}],\"active_drag\":{\"id\":\"737d998d-fd0b-41c3-8f33-b802463a6ba4\"},\"active_scroll\":{\"id\":\"de855bcf-34e1-476c-ae24-51283bf2e526\"}}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"fbae674d-3c67-496f-8428-c933b171aa00\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"5c83d731-e614-432b-84ca-022a0819db14\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"8dea9db8-a083-4743-b55a-10d2076ddf56\"},\"axis_label\":\"Amplitude (arb. u.)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"1cdc33dc-d439-4c0a-9cf6-b3e9a488edab\"}}}],\"right\":[{\"type\":\"object\",\"name\":\"Legend\",\"id\":\"75db2f0e-b154-4638-821a-f07bcb3c7970\",\"attributes\":{\"location\":[0,0],\"title\":\"Variable\",\"click_policy\":\"mute\",\"items\":[{\"type\":\"object\",\"name\":\"LegendItem\",\"id\":\"679a02c0-78d3-420f-b925-447ab1e165e7\",\"attributes\":{\"label\":{\"type\":\"value\",\"value\":\"Unoptimised\"},\"renderers\":[{\"id\":\"872fea62-ac56-4c4b-8cc8-ba5d6e305a58\"}]}},{\"type\":\"object\",\"name\":\"LegendItem\",\"id\":\"7d625ccd-09c3-4966-ba34-e042c4f12d2b\",\"attributes\":{\"label\":{\"type\":\"value\",\"value\":\"Optimised\"},\"renderers\":[{\"id\":\"4deb1a49-2d49-4bdc-a748-9d4c60dace06\"}]}}]}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"3ab7d718-ecd6-4fdb-b163-6ccdfa23d8a7\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"6014788e-0e1d-4c3a-a45f-ee2353b022c9\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"e4256038-960d-489a-af42-e45bc949fd2a\"},\"axis_label\":\"Time (ns)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"1ebf559e-9032-4d51-8935-3c7b6b1de4c6\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"c7a5d807-bc36-4e44-8754-7c89b7f0aab3\",\"attributes\":{\"axis\":{\"id\":\"3ab7d718-ecd6-4fdb-b163-6ccdfa23d8a7\"},\"grid_line_color\":null}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"6ad648e1-d734-40c6-bc54-b7d0e2b3c83c\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"fbae674d-3c67-496f-8428-c933b171aa00\"},\"grid_line_color\":null}}],\"min_border_top\":10,\"min_border_bottom\":10,\"min_border_left\":10,\"min_border_right\":10,\"output_backend\":\"webgl\"}},{\"type\":\"object\",\"name\":\"Spacer\",\"id\":\"b35bfb25-3967-48b8-a7b5-d1b93c92aa83\",\"attributes\":{\"name\":\"HSpacer00431\",\"stylesheets\":[\"\\n:host(.pn-loading):before, .pn-loading:before {\\n  background-color: #c3c3c3;\\n  mask-size: auto calc(min(50%, 300px));\\n  -webkit-mask-size: auto calc(min(50%, 300px));\\n}\",{\"id\":\"fee495ce-01f6-4814-b1d5-497310b0329b\"},{\"id\":\"b262c4c9-8632-4d56-9103-a886e87e1022\"},{\"id\":\"8e9a8b4a-2088-4125-9cc0-95b59ccbbfbd\"}],\"min_width\":0,\"margin\":0,\"sizing_mode\":\"stretch_width\",\"align\":\"start\"}}]}}],\"defs\":[{\"type\":\"model\",\"name\":\"ReactiveHTML1\"},{\"type\":\"model\",\"name\":\"FlexBox1\",\"properties\":[{\"name\":\"align_content\",\"kind\":\"Any\",\"default\":\"flex-start\"},{\"name\":\"align_items\",\"kind\":\"Any\",\"default\":\"flex-start\"},{\"name\":\"flex_direction\",\"kind\":\"Any\",\"default\":\"row\"},{\"name\":\"flex_wrap\",\"kind\":\"Any\",\"default\":\"wrap\"},{\"name\":\"gap\",\"kind\":\"Any\",\"default\":\"\"},{\"name\":\"justify_content\",\"kind\":\"Any\",\"default\":\"flex-start\"}]},{\"type\":\"model\",\"name\":\"FloatPanel1\",\"properties\":[{\"name\":\"config\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}},{\"name\":\"contained\",\"kind\":\"Any\",\"default\":true},{\"name\":\"position\",\"kind\":\"Any\",\"default\":\"right-top\"},{\"name\":\"offsetx\",\"kind\":\"Any\",\"default\":null},{\"name\":\"offsety\",\"kind\":\"Any\",\"default\":null},{\"name\":\"theme\",\"kind\":\"Any\",\"default\":\"primary\"},{\"name\":\"status\",\"kind\":\"Any\",\"default\":\"normalized\"}]},{\"type\":\"model\",\"name\":\"GridStack1\",\"properties\":[{\"name\":\"ncols\",\"kind\":\"Any\",\"default\":null},{\"name\":\"nrows\",\"kind\":\"Any\",\"default\":null},{\"name\":\"allow_resize\",\"kind\":\"Any\",\"default\":true},{\"name\":\"allow_drag\",\"kind\":\"Any\",\"default\":true},{\"name\":\"state\",\"kind\":\"Any\",\"default\":[]}]},{\"type\":\"model\",\"name\":\"drag1\",\"properties\":[{\"name\":\"slider_width\",\"kind\":\"Any\",\"default\":5},{\"name\":\"slider_color\",\"kind\":\"Any\",\"default\":\"black\"},{\"name\":\"start\",\"kind\":\"Any\",\"default\":0},{\"name\":\"end\",\"kind\":\"Any\",\"default\":100},{\"name\":\"value\",\"kind\":\"Any\",\"default\":50}]},{\"type\":\"model\",\"name\":\"click1\",\"properties\":[{\"name\":\"terminal_output\",\"kind\":\"Any\",\"default\":\"\"},{\"name\":\"debug_name\",\"kind\":\"Any\",\"default\":\"\"},{\"name\":\"clears\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"ReactiveESM1\",\"properties\":[{\"name\":\"esm_constants\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}}]},{\"type\":\"model\",\"name\":\"JSComponent1\",\"properties\":[{\"name\":\"esm_constants\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}}]},{\"type\":\"model\",\"name\":\"ReactComponent1\",\"properties\":[{\"name\":\"use_shadow_dom\",\"kind\":\"Any\",\"default\":true},{\"name\":\"esm_constants\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}}]},{\"type\":\"model\",\"name\":\"AnyWidgetComponent1\",\"properties\":[{\"name\":\"use_shadow_dom\",\"kind\":\"Any\",\"default\":true},{\"name\":\"esm_constants\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}}]},{\"type\":\"model\",\"name\":\"FastWrapper1\",\"properties\":[{\"name\":\"object\",\"kind\":\"Any\",\"default\":null},{\"name\":\"style\",\"kind\":\"Any\",\"default\":null}]},{\"type\":\"model\",\"name\":\"NotificationArea1\",\"properties\":[{\"name\":\"js_events\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}},{\"name\":\"max_notifications\",\"kind\":\"Any\",\"default\":5},{\"name\":\"notifications\",\"kind\":\"Any\",\"default\":[]},{\"name\":\"position\",\"kind\":\"Any\",\"default\":\"bottom-right\"},{\"name\":\"_clear\",\"kind\":\"Any\",\"default\":0},{\"name\":\"types\",\"kind\":\"Any\",\"default\":[{\"type\":\"map\",\"entries\":[[\"type\",\"warning\"],[\"background\",\"#ffc107\"],[\"icon\",{\"type\":\"map\",\"entries\":[[\"className\",\"fas fa-exclamation-triangle\"],[\"tagName\",\"i\"],[\"color\",\"white\"]]}]]},{\"type\":\"map\",\"entries\":[[\"type\",\"info\"],[\"background\",\"#007bff\"],[\"icon\",{\"type\":\"map\",\"entries\":[[\"className\",\"fas fa-info-circle\"],[\"tagName\",\"i\"],[\"color\",\"white\"]]}]]}]}]},{\"type\":\"model\",\"name\":\"Notification\",\"properties\":[{\"name\":\"background\",\"kind\":\"Any\",\"default\":null},{\"name\":\"duration\",\"kind\":\"Any\",\"default\":3000},{\"name\":\"icon\",\"kind\":\"Any\",\"default\":null},{\"name\":\"message\",\"kind\":\"Any\",\"default\":\"\"},{\"name\":\"notification_type\",\"kind\":\"Any\",\"default\":null},{\"name\":\"_rendered\",\"kind\":\"Any\",\"default\":false},{\"name\":\"_destroyed\",\"kind\":\"Any\",\"default\":false}]},{\"type\":\"model\",\"name\":\"TemplateActions1\",\"properties\":[{\"name\":\"open_modal\",\"kind\":\"Any\",\"default\":0},{\"name\":\"close_modal\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"BootstrapTemplateActions1\",\"properties\":[{\"name\":\"open_modal\",\"kind\":\"Any\",\"default\":0},{\"name\":\"close_modal\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"TemplateEditor1\",\"properties\":[{\"name\":\"layout\",\"kind\":\"Any\",\"default\":[]}]},{\"type\":\"model\",\"name\":\"MaterialTemplateActions1\",\"properties\":[{\"name\":\"open_modal\",\"kind\":\"Any\",\"default\":0},{\"name\":\"close_modal\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"request_value1\",\"properties\":[{\"name\":\"fill\",\"kind\":\"Any\",\"default\":\"none\"},{\"name\":\"_synced\",\"kind\":\"Any\",\"default\":null},{\"name\":\"_request_sync\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"holoviews.plotting.bokeh.raster.HoverModel\",\"properties\":[{\"name\":\"xy\",\"kind\":\"Any\",\"default\":null},{\"name\":\"data\",\"kind\":\"Any\",\"default\":null}]}]}};\n",
       "  var render_items = [{\"docid\":\"16a2bfc3-3054-4e02-86b7-d76bb77af45b\",\"roots\":{\"a0a2bbde-a907-4053-ad3a-250d863f2059\":\"a313c76b-48cc-4e8e-9fbd-855c768a6ee4\"},\"root_ids\":[\"a0a2bbde-a907-4053-ad3a-250d863f2059\"]}];\n",
       "  var docs = Object.values(docs_json)\n",
       "  if (!docs) {\n",
       "    return\n",
       "  }\n",
       "  const version = docs[0].version.replace('rc', '-rc.').replace('.dev', '-dev.')\n",
       "  async function embed_document(root) {\n",
       "    var Bokeh = get_bokeh(root)\n",
       "    await Bokeh.embed.embed_items_notebook(docs_json, render_items);\n",
       "    for (const render_item of render_items) {\n",
       "      for (const root_id of render_item.root_ids) {\n",
       "\tconst id_el = document.getElementById(root_id)\n",
       "\tif (id_el.children.length && id_el.children[0].hasAttribute('data-root-id')) {\n",
       "\t  const root_el = id_el.children[0]\n",
       "\t  root_el.id = root_el.id + '-rendered'\n",
       "\t  for (const child of root_el.children) {\n",
       "            // Ensure JupyterLab does not capture keyboard shortcuts\n",
       "            // see: https://jupyterlab.readthedocs.io/en/4.1.x/extension/notebook.html#keyboard-interaction-model\n",
       "\t    child.setAttribute('data-lm-suppress-shortcuts', 'true')\n",
       "\t  }\n",
       "\t}\n",
       "      }\n",
       "    }\n",
       "  }\n",
       "  function get_bokeh(root) {\n",
       "    if (root.Bokeh === undefined) {\n",
       "      return null\n",
       "    } else if (root.Bokeh.version !== version) {\n",
       "      if (root.Bokeh.versions === undefined || !root.Bokeh.versions.has(version)) {\n",
       "\treturn null\n",
       "      }\n",
       "      return root.Bokeh.versions.get(version);\n",
       "    } else if (root.Bokeh.version === version) {\n",
       "      return root.Bokeh\n",
       "    }\n",
       "    return null\n",
       "  }\n",
       "  function is_loaded(root) {\n",
       "    var Bokeh = get_bokeh(root)\n",
       "    return (Bokeh != null && Bokeh.Panel !== undefined)\n",
       "  }\n",
       "  if (is_loaded(root)) {\n",
       "    embed_document(root);\n",
       "  } else {\n",
       "    var attempts = 0;\n",
       "    var timer = setInterval(function(root) {\n",
       "      if (is_loaded(root)) {\n",
       "        clearInterval(timer);\n",
       "        embed_document(root);\n",
       "      } else if (document.readyState == \"complete\") {\n",
       "        attempts++;\n",
       "        if (attempts > 200) {\n",
       "          clearInterval(timer);\n",
       "\t  var Bokeh = get_bokeh(root)\n",
       "\t  if (Bokeh == null || Bokeh.Panel == null) {\n",
       "            console.warn(\"Panel: ERROR: Unable to run Panel code because Bokeh or Panel library is missing\");\n",
       "\t  } else {\n",
       "\t    console.warn(\"Panel: WARNING: Attempting to render but not all required libraries could be resolved.\")\n",
       "\t    embed_document(root)\n",
       "\t  }\n",
       "        }\n",
       "      }\n",
       "    }, 25, root)\n",
       "  }\n",
       "})(window);</script>"
      ],
      "text/plain": [
       ":NdOverlay   [Variable]\n",
       "   :Curve   [time]   (value)"
      ]
     },
     "execution_count": 14,
     "metadata": {
      "application/vnd.holoviews_exec.v0+json": {
       "id": "a0a2bbde-a907-4053-ad3a-250d863f2059"
      }
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# create parameter space for optimised parameters\n",
    "optps = Parameters(optparams)\n",
    "\n",
    "# print initial and optimised parameters\n",
    "print(\"Initial parameters:\", *ps.ps)\n",
    "print(\"Optimised parameters:\", *optps.ps)\n",
    "\n",
    "# create xarray Dataset to store initial and optimised drive parameters\n",
    "pulse_shapes = xr.Dataset(\n",
    "    {\n",
    "        \"Unoptimised\": (\"time\", drive(ts, *ps.ps)),\n",
    "        \"Optimised\": (\"time\", drive(ts, *optps.ps)),\n",
    "    },\n",
    "    coords={\"time\": ts / 1e-9},\n",
    ")\n",
    "\n",
    "# plot initial and optimised drives\n",
    "pulse_shapes.hvplot.line(\n",
    "    x=\"time\",\n",
    "    xlabel=\"Time (ns)\",\n",
    "    ylabel=\"Amplitude (arb. u.)\",\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "29",
   "metadata": {},
   "source": [
    "We can see that the optimisation primarily increases the drive amplitude, while making minor adjustments to the width and frequency. \n",
    "\n",
    "To determine whether these changes improve the population inversion, let's simulate the dynamics using the optimised parameters. We then create a new simulation problem, initialise it with `Session.qsprob_init`, and solve it as before."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "30",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-20T10:13:35.844982Z",
     "iopub.status.busy": "2026-08-20T10:13:35.844766Z",
     "iopub.status.idle": "2026-08-20T10:13:35.958531Z",
     "shell.execute_reply": "2026-08-20T10:13:35.957719Z"
    }
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "\u001b[KODE [                                        ]   0%\r",
      "\u001b[KODE [########################################] 100%\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div><svg style=\"position: absolute; width: 0; height: 0; overflow: hidden\">\n",
       "<defs>\n",
       "<symbol id=\"icon-database\" viewBox=\"0 0 32 32\">\n",
       "<path d=\"M16 0c-8.837 0-16 2.239-16 5v4c0 2.761 7.163 5 16 5s16-2.239 16-5v-4c0-2.761-7.163-5-16-5z\"></path>\n",
       "<path d=\"M16 17c-8.837 0-16-2.239-16-5v6c0 2.761 7.163 5 16 5s16-2.239 16-5v-6c0 2.761-7.163 5-16 5z\"></path>\n",
       "<path d=\"M16 26c-8.837 0-16-2.239-16-5v6c0 2.761 7.163 5 16 5s16-2.239 16-5v-6c0 2.761-7.163 5-16 5z\"></path>\n",
       "</symbol>\n",
       "<symbol id=\"icon-file-text2\" viewBox=\"0 0 32 32\">\n",
       "<path d=\"M28.681 7.159c-0.694-0.947-1.662-2.053-2.724-3.116s-2.169-2.030-3.116-2.724c-1.612-1.182-2.393-1.319-2.841-1.319h-15.5c-1.378 0-2.5 1.121-2.5 2.5v27c0 1.378 1.122 2.5 2.5 2.5h23c1.378 0 2.5-1.122 2.5-2.5v-19.5c0-0.448-0.137-1.23-1.319-2.841zM24.543 5.457c0.959 0.959 1.712 1.825 2.268 2.543h-4.811v-4.811c0.718 0.556 1.584 1.309 2.543 2.268zM28 29.5c0 0.271-0.229 0.5-0.5 0.5h-23c-0.271 0-0.5-0.229-0.5-0.5v-27c0-0.271 0.229-0.5 0.5-0.5 0 0 15.499-0 15.5 0v7c0 0.552 0.448 1 1 1h7v19.5z\"></path>\n",
       "<path d=\"M23 26h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
       "<path d=\"M23 22h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
       "<path d=\"M23 18h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
       "</symbol>\n",
       "</defs>\n",
       "</svg>\n",
       "<style>/* CSS stylesheet for displaying xarray objects in notebooks */\n",
       "\n",
       ":root {\n",
       "  --xr-font-color0: var(\n",
       "    --jp-content-font-color0,\n",
       "    var(--pst-color-text-base rgba(0, 0, 0, 1))\n",
       "  );\n",
       "  --xr-font-color2: var(\n",
       "    --jp-content-font-color2,\n",
       "    var(--pst-color-text-base, rgba(0, 0, 0, 0.54))\n",
       "  );\n",
       "  --xr-font-color3: var(\n",
       "    --jp-content-font-color3,\n",
       "    var(--pst-color-text-base, rgba(0, 0, 0, 0.38))\n",
       "  );\n",
       "  --xr-border-color: var(\n",
       "    --jp-border-color2,\n",
       "    hsl(from var(--pst-color-on-background, white) h s calc(l - 10))\n",
       "  );\n",
       "  --xr-disabled-color: var(\n",
       "    --jp-layout-color3,\n",
       "    hsl(from var(--pst-color-on-background, white) h s calc(l - 40))\n",
       "  );\n",
       "  --xr-background-color: var(\n",
       "    --jp-layout-color0,\n",
       "    var(--pst-color-on-background, white)\n",
       "  );\n",
       "  --xr-background-color-row-even: var(\n",
       "    --jp-layout-color1,\n",
       "    hsl(from var(--pst-color-on-background, white) h s calc(l - 5))\n",
       "  );\n",
       "  --xr-background-color-row-odd: var(\n",
       "    --jp-layout-color2,\n",
       "    hsl(from var(--pst-color-on-background, white) h s calc(l - 15))\n",
       "  );\n",
       "}\n",
       "\n",
       "html[theme=\"dark\"],\n",
       "html[data-theme=\"dark\"],\n",
       "body[data-theme=\"dark\"],\n",
       "body.vscode-dark {\n",
       "  --xr-font-color0: var(\n",
       "    --jp-content-font-color0,\n",
       "    var(--pst-color-text-base, rgba(255, 255, 255, 1))\n",
       "  );\n",
       "  --xr-font-color2: var(\n",
       "    --jp-content-font-color2,\n",
       "    var(--pst-color-text-base, rgba(255, 255, 255, 0.54))\n",
       "  );\n",
       "  --xr-font-color3: var(\n",
       "    --jp-content-font-color3,\n",
       "    var(--pst-color-text-base, rgba(255, 255, 255, 0.38))\n",
       "  );\n",
       "  --xr-border-color: var(\n",
       "    --jp-border-color2,\n",
       "    hsl(from var(--pst-color-on-background, #111111) h s calc(l + 10))\n",
       "  );\n",
       "  --xr-disabled-color: var(\n",
       "    --jp-layout-color3,\n",
       "    hsl(from var(--pst-color-on-background, #111111) h s calc(l + 40))\n",
       "  );\n",
       "  --xr-background-color: var(\n",
       "    --jp-layout-color0,\n",
       "    var(--pst-color-on-background, #111111)\n",
       "  );\n",
       "  --xr-background-color-row-even: var(\n",
       "    --jp-layout-color1,\n",
       "    hsl(from var(--pst-color-on-background, #111111) h s calc(l + 5))\n",
       "  );\n",
       "  --xr-background-color-row-odd: var(\n",
       "    --jp-layout-color2,\n",
       "    hsl(from var(--pst-color-on-background, #111111) h s calc(l + 15))\n",
       "  );\n",
       "}\n",
       "\n",
       ".xr-wrap {\n",
       "  display: block !important;\n",
       "  min-width: 300px;\n",
       "  max-width: 700px;\n",
       "  line-height: 1.6;\n",
       "  padding-bottom: 4px;\n",
       "}\n",
       "\n",
       ".xr-text-repr-fallback {\n",
       "  /* fallback to plain text repr when CSS is not injected (untrusted notebook) */\n",
       "  display: none;\n",
       "}\n",
       "\n",
       ".xr-header {\n",
       "  padding-top: 6px;\n",
       "  padding-bottom: 6px;\n",
       "}\n",
       "\n",
       ".xr-header {\n",
       "  border-bottom: solid 1px var(--xr-border-color);\n",
       "  margin-bottom: 4px;\n",
       "}\n",
       "\n",
       ".xr-header > div,\n",
       ".xr-header > ul {\n",
       "  display: inline;\n",
       "  margin-top: 0;\n",
       "  margin-bottom: 0;\n",
       "}\n",
       "\n",
       ".xr-obj-type,\n",
       ".xr-obj-name {\n",
       "  margin-left: 2px;\n",
       "  margin-right: 10px;\n",
       "}\n",
       "\n",
       ".xr-obj-type,\n",
       ".xr-group-box-contents > label {\n",
       "  color: var(--xr-font-color2);\n",
       "  display: block;\n",
       "}\n",
       "\n",
       ".xr-sections {\n",
       "  padding-left: 0 !important;\n",
       "  display: grid;\n",
       "  grid-template-columns: 150px auto auto 1fr 0 20px 0 20px;\n",
       "  margin-block-start: 0;\n",
       "  margin-block-end: 0;\n",
       "}\n",
       "\n",
       ".xr-section-item {\n",
       "  display: contents;\n",
       "}\n",
       "\n",
       ".xr-section-item > input,\n",
       ".xr-group-box-contents > input,\n",
       ".xr-array-wrap > input {\n",
       "  display: block;\n",
       "  opacity: 0;\n",
       "  height: 0;\n",
       "  margin: 0;\n",
       "}\n",
       "\n",
       ".xr-section-item > input + label,\n",
       ".xr-var-item > input + label {\n",
       "  color: var(--xr-disabled-color);\n",
       "}\n",
       "\n",
       ".xr-section-item > input:enabled + label,\n",
       ".xr-var-item > input:enabled + label,\n",
       ".xr-array-wrap > input:enabled + label,\n",
       ".xr-group-box-contents > input:enabled + label {\n",
       "  cursor: pointer;\n",
       "  color: var(--xr-font-color2);\n",
       "}\n",
       "\n",
       ".xr-section-item > input:focus-visible + label,\n",
       ".xr-var-item > input:focus-visible + label,\n",
       ".xr-array-wrap > input:focus-visible + label,\n",
       ".xr-group-box-contents > input:focus-visible + label {\n",
       "  outline: auto;\n",
       "}\n",
       "\n",
       ".xr-section-item > input:enabled + label:hover,\n",
       ".xr-var-item > input:enabled + label:hover,\n",
       ".xr-array-wrap > input:enabled + label:hover,\n",
       ".xr-group-box-contents > input:enabled + label:hover {\n",
       "  color: var(--xr-font-color0);\n",
       "}\n",
       "\n",
       ".xr-section-summary {\n",
       "  grid-column: 1;\n",
       "  color: var(--xr-font-color2);\n",
       "  font-weight: 500;\n",
       "  white-space: nowrap;\n",
       "}\n",
       "\n",
       ".xr-section-summary > em {\n",
       "  font-weight: normal;\n",
       "}\n",
       "\n",
       ".xr-span-grid {\n",
       "  grid-column-end: -1;\n",
       "}\n",
       "\n",
       ".xr-section-summary > span {\n",
       "  display: inline-block;\n",
       "  padding-left: 0.3em;\n",
       "}\n",
       "\n",
       ".xr-group-box-contents > input:checked + label > span {\n",
       "  display: inline-block;\n",
       "  padding-left: 0.6em;\n",
       "}\n",
       "\n",
       ".xr-section-summary-in:disabled + label {\n",
       "  color: var(--xr-font-color2);\n",
       "}\n",
       "\n",
       ".xr-section-summary-in + label:before {\n",
       "  display: inline-block;\n",
       "  content: \"►\";\n",
       "  font-size: 11px;\n",
       "  width: 15px;\n",
       "  text-align: center;\n",
       "}\n",
       "\n",
       ".xr-section-summary-in:disabled + label:before {\n",
       "  color: var(--xr-disabled-color);\n",
       "}\n",
       "\n",
       ".xr-section-summary-in:checked + label:before {\n",
       "  content: \"▼\";\n",
       "}\n",
       "\n",
       ".xr-section-summary-in:checked + label > span {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       ".xr-section-summary,\n",
       ".xr-section-inline-details,\n",
       ".xr-group-box-contents > label {\n",
       "  padding-top: 4px;\n",
       "}\n",
       "\n",
       ".xr-section-inline-details {\n",
       "  grid-column: 2 / -1;\n",
       "}\n",
       "\n",
       ".xr-section-details {\n",
       "  grid-column: 1 / -1;\n",
       "  margin-top: 4px;\n",
       "  margin-bottom: 5px;\n",
       "}\n",
       "\n",
       ".xr-section-summary-in ~ .xr-section-details {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       ".xr-section-summary-in:checked ~ .xr-section-details {\n",
       "  display: contents;\n",
       "}\n",
       "\n",
       ".xr-children {\n",
       "  display: inline-grid;\n",
       "  grid-template-columns: 100%;\n",
       "  grid-column: 1 / -1;\n",
       "  padding-top: 4px;\n",
       "}\n",
       "\n",
       ".xr-group-box {\n",
       "  display: inline-grid;\n",
       "  grid-template-columns: 0px 30px auto;\n",
       "}\n",
       "\n",
       ".xr-group-box-vline {\n",
       "  grid-column-start: 1;\n",
       "  border-right: 0.2em solid;\n",
       "  border-color: var(--xr-border-color);\n",
       "  width: 0px;\n",
       "}\n",
       "\n",
       ".xr-group-box-hline {\n",
       "  grid-column-start: 2;\n",
       "  grid-row-start: 1;\n",
       "  height: 1em;\n",
       "  width: 26px;\n",
       "  border-bottom: 0.2em solid;\n",
       "  border-color: var(--xr-border-color);\n",
       "}\n",
       "\n",
       ".xr-group-box-contents {\n",
       "  grid-column-start: 3;\n",
       "  padding-bottom: 4px;\n",
       "}\n",
       "\n",
       ".xr-group-box-contents > label::before {\n",
       "  content: \"📂\";\n",
       "  padding-right: 0.3em;\n",
       "}\n",
       "\n",
       ".xr-group-box-contents > input:checked + label::before {\n",
       "  content: \"📁\";\n",
       "}\n",
       "\n",
       ".xr-group-box-contents > input:checked + label {\n",
       "  padding-bottom: 0px;\n",
       "}\n",
       "\n",
       ".xr-group-box-contents > input:checked ~ .xr-sections {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       ".xr-group-box-contents > input + label > span {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       ".xr-group-box-ellipsis {\n",
       "  font-size: 1.4em;\n",
       "  font-weight: 900;\n",
       "  color: var(--xr-font-color2);\n",
       "  letter-spacing: 0.15em;\n",
       "  cursor: default;\n",
       "}\n",
       "\n",
       ".xr-array-wrap {\n",
       "  grid-column: 1 / -1;\n",
       "  display: grid;\n",
       "  grid-template-columns: 20px auto;\n",
       "}\n",
       "\n",
       ".xr-array-wrap > label {\n",
       "  grid-column: 1;\n",
       "  vertical-align: top;\n",
       "}\n",
       "\n",
       ".xr-preview {\n",
       "  color: var(--xr-font-color3);\n",
       "}\n",
       "\n",
       ".xr-array-preview,\n",
       ".xr-array-data {\n",
       "  padding: 0 5px !important;\n",
       "  grid-column: 2;\n",
       "}\n",
       "\n",
       ".xr-array-data,\n",
       ".xr-array-in:checked ~ .xr-array-preview {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       ".xr-array-in:checked ~ .xr-array-data,\n",
       ".xr-array-preview {\n",
       "  display: inline-block;\n",
       "}\n",
       "\n",
       ".xr-dim-list {\n",
       "  display: inline-block !important;\n",
       "  list-style: none;\n",
       "  padding: 0 !important;\n",
       "  margin: 0;\n",
       "}\n",
       "\n",
       ".xr-dim-list li {\n",
       "  display: inline-block;\n",
       "  padding: 0;\n",
       "  margin: 0;\n",
       "}\n",
       "\n",
       ".xr-dim-list:before {\n",
       "  content: \"(\";\n",
       "}\n",
       "\n",
       ".xr-dim-list:after {\n",
       "  content: \")\";\n",
       "}\n",
       "\n",
       ".xr-dim-list li:not(:last-child):after {\n",
       "  content: \",\";\n",
       "  padding-right: 5px;\n",
       "}\n",
       "\n",
       ".xr-has-index {\n",
       "  font-weight: bold;\n",
       "}\n",
       "\n",
       ".xr-var-list,\n",
       ".xr-var-item {\n",
       "  display: contents;\n",
       "}\n",
       "\n",
       ".xr-var-item > div,\n",
       ".xr-var-item label,\n",
       ".xr-var-item > .xr-var-name span {\n",
       "  background-color: var(--xr-background-color-row-even);\n",
       "  border-color: var(--xr-background-color-row-odd);\n",
       "  margin-bottom: 0;\n",
       "  padding-top: 2px;\n",
       "}\n",
       "\n",
       ".xr-var-item > .xr-var-name:hover span {\n",
       "  padding-right: 5px;\n",
       "}\n",
       "\n",
       ".xr-var-list > li:nth-child(odd) > div,\n",
       ".xr-var-list > li:nth-child(odd) > label,\n",
       ".xr-var-list > li:nth-child(odd) > .xr-var-name span {\n",
       "  background-color: var(--xr-background-color-row-odd);\n",
       "  border-color: var(--xr-background-color-row-even);\n",
       "}\n",
       "\n",
       ".xr-var-name {\n",
       "  grid-column: 1;\n",
       "}\n",
       "\n",
       ".xr-var-dims {\n",
       "  grid-column: 2;\n",
       "}\n",
       "\n",
       ".xr-var-dtype {\n",
       "  grid-column: 3;\n",
       "  text-align: right;\n",
       "  color: var(--xr-font-color2);\n",
       "}\n",
       "\n",
       ".xr-var-preview {\n",
       "  grid-column: 4;\n",
       "}\n",
       "\n",
       ".xr-index-preview {\n",
       "  grid-column: 2 / 5;\n",
       "  color: var(--xr-font-color2);\n",
       "}\n",
       "\n",
       ".xr-var-name,\n",
       ".xr-var-dims,\n",
       ".xr-var-dtype,\n",
       ".xr-preview,\n",
       ".xr-attrs dt {\n",
       "  white-space: nowrap;\n",
       "  overflow: hidden;\n",
       "  text-overflow: ellipsis;\n",
       "  padding-right: 10px;\n",
       "}\n",
       "\n",
       ".xr-var-name:hover,\n",
       ".xr-var-dims:hover,\n",
       ".xr-var-dtype:hover,\n",
       ".xr-attrs dt:hover {\n",
       "  overflow: visible;\n",
       "  width: auto;\n",
       "  z-index: 1;\n",
       "}\n",
       "\n",
       ".xr-var-attrs,\n",
       ".xr-var-data,\n",
       ".xr-index-data {\n",
       "  display: none;\n",
       "  border-top: 2px dotted var(--xr-background-color);\n",
       "  padding-bottom: 20px !important;\n",
       "  padding-top: 10px !important;\n",
       "}\n",
       "\n",
       ".xr-var-attrs-in + label,\n",
       ".xr-var-data-in + label,\n",
       ".xr-index-data-in + label {\n",
       "  padding: 0 1px;\n",
       "}\n",
       "\n",
       ".xr-var-attrs-in:checked ~ .xr-var-attrs,\n",
       ".xr-var-data-in:checked ~ .xr-var-data,\n",
       ".xr-index-data-in:checked ~ .xr-index-data {\n",
       "  display: block;\n",
       "}\n",
       "\n",
       ".xr-var-data > table {\n",
       "  float: right;\n",
       "}\n",
       "\n",
       ".xr-var-data > pre,\n",
       ".xr-index-data > pre,\n",
       ".xr-var-data > table > tbody > tr {\n",
       "  background-color: transparent !important;\n",
       "}\n",
       "\n",
       ".xr-var-name span,\n",
       ".xr-var-data,\n",
       ".xr-index-name div,\n",
       ".xr-index-data,\n",
       ".xr-attrs {\n",
       "  padding-left: 25px !important;\n",
       "}\n",
       "\n",
       ".xr-attrs,\n",
       ".xr-var-attrs,\n",
       ".xr-var-data,\n",
       ".xr-index-data {\n",
       "  grid-column: 1 / -1;\n",
       "}\n",
       "\n",
       "dl.xr-attrs {\n",
       "  padding: 0;\n",
       "  margin: 0;\n",
       "  display: grid;\n",
       "  grid-template-columns: 125px auto;\n",
       "}\n",
       "\n",
       ".xr-attrs dt,\n",
       ".xr-attrs dd {\n",
       "  padding: 0;\n",
       "  margin: 0;\n",
       "  float: left;\n",
       "  padding-right: 10px;\n",
       "  width: auto;\n",
       "}\n",
       "\n",
       ".xr-attrs dt {\n",
       "  font-weight: normal;\n",
       "  grid-column: 1;\n",
       "}\n",
       "\n",
       ".xr-attrs dt:hover span {\n",
       "  display: inline-block;\n",
       "  background: var(--xr-background-color);\n",
       "  padding-right: 10px;\n",
       "}\n",
       "\n",
       ".xr-attrs dd {\n",
       "  grid-column: 2;\n",
       "  white-space: pre-wrap;\n",
       "  word-break: break-all;\n",
       "}\n",
       "\n",
       ".xr-icon-database,\n",
       ".xr-icon-file-text2,\n",
       ".xr-no-icon {\n",
       "  display: inline-block;\n",
       "  vertical-align: middle;\n",
       "  width: 1em;\n",
       "  height: 1.5em !important;\n",
       "  stroke-width: 0;\n",
       "  stroke: currentColor;\n",
       "  fill: currentColor;\n",
       "}\n",
       "\n",
       ".xr-var-attrs-in:checked + label > .xr-icon-file-text2,\n",
       ".xr-var-data-in:checked + label > .xr-icon-database,\n",
       ".xr-index-data-in:checked + label > .xr-icon-database {\n",
       "  color: var(--xr-font-color0);\n",
       "  filter: drop-shadow(1px 1px 5px var(--xr-font-color2));\n",
       "  stroke-width: 0.8px;\n",
       "}\n",
       "</style><pre class='xr-text-repr-fallback'>&lt;xarray.Dataset&gt; Size: 40kB\n",
       "Dimensions:  (time: 1000, row: 2)\n",
       "Coordinates:\n",
       "  * time     (time) float64 8kB 0.0 2.002e-11 4.004e-11 ... 1.998e-08 2e-08\n",
       "Dimensions without coordinates: row\n",
       "Data variables:\n",
       "    qstates  (time, row) complex128 32kB (1+0j) ... (-0.18048959203517007+0.9...</pre><div class='xr-wrap' style='display:none'><div class='xr-header'><div class='xr-obj-type'>xarray.Dataset</div></div><ul class='xr-sections'><li class='xr-section-item'><input id='section-7f10a4a6-c531-410f-930e-e99ced8960db' class='xr-section-summary-in' type='checkbox' disabled /><label for='section-7f10a4a6-c531-410f-930e-e99ced8960db' class='xr-section-summary'>Dimensions:</label><div class='xr-section-inline-details'><ul class='xr-dim-list'><li><span class='xr-has-index'>time</span>: 1000</li><li><span>row</span>: 2</li></ul></div></li><li class='xr-section-item'><input id='section-7ce3bf81-9c8c-4a0a-9de1-92b2fbf8dcf2' class='xr-section-summary-in' type='checkbox' checked /><label for='section-7ce3bf81-9c8c-4a0a-9de1-92b2fbf8dcf2' class='xr-section-summary' title='Expand/collapse section'>Coordinates: <span>(1)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>time</span></div><div class='xr-var-dims'>(time)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>0.0 2.002e-11 ... 1.998e-08 2e-08</div><input id='attrs-e8fd5fb6-cfc6-4bcf-952d-b94736fcbb23' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-e8fd5fb6-cfc6-4bcf-952d-b94736fcbb23' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-9efb2c17-cdbf-485b-8564-0b6932312fd1' class='xr-var-data-in' type='checkbox'><label for='data-9efb2c17-cdbf-485b-8564-0b6932312fd1' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([0.000000e+00, 2.002002e-11, 4.004004e-11, ..., 1.995996e-08,\n",
       "       1.997998e-08, 2.000000e-08], shape=(1000,))</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-eae974a7-9905-4230-a8c5-130ccb296e6d' class='xr-section-summary-in' type='checkbox' checked /><label for='section-eae974a7-9905-4230-a8c5-130ccb296e6d' class='xr-section-summary' title='Expand/collapse section'>Data variables: <span>(1)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-var-name'><span>qstates</span></div><div class='xr-var-dims'>(time, row)</div><div class='xr-var-dtype'>complex128</div><div class='xr-var-preview xr-preview'>(1+0j) ... (-0.18048959203517007...</div><input id='attrs-83d56ac3-bc8f-436a-a040-e7242cf90a39' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-83d56ac3-bc8f-436a-a040-e7242cf90a39' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-18e0c781-57ea-4e85-8c62-ec1ebdfdac61' class='xr-var-data-in' type='checkbox'><label for='data-18e0c781-57ea-4e85-8c62-ec1ebdfdac61' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([[ 1.00000000e+00+0.00000000e+00j,  0.00000000e+00+0.00000000e+00j],\n",
       "       [ 9.99606529e-01+2.80493249e-02j,  9.65557578e-09-1.49107686e-04j],\n",
       "       [ 9.98426426e-01+5.60765767e-02j,  6.86918291e-08-2.99934584e-04j],\n",
       "       ...,\n",
       "       [-2.69882792e-04-4.95431981e-05j, -2.35361209e-01+9.71907833e-01j],\n",
       "       [-1.35645760e-04-2.49568482e-05j, -2.08007243e-01+9.78127172e-01j],\n",
       "       [-6.99605524e-09-7.25278243e-08j, -1.80489592e-01+9.83576789e-01j]],\n",
       "      shape=(1000, 2))</pre></div></li></ul></div></li></ul></div></div>"
      ],
      "text/plain": [
       "<xarray.Dataset> Size: 40kB\n",
       "Dimensions:  (time: 1000, row: 2)\n",
       "Coordinates:\n",
       "  * time     (time) float64 8kB 0.0 2.002e-11 4.004e-11 ... 1.998e-08 2e-08\n",
       "Dimensions without coordinates: row\n",
       "Data variables:\n",
       "    qstates  (time, row) complex128 32kB (1+0j) ... (-0.18048959203517007+0.9..."
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# create a new quantum simulation problem with the optimised parameters\n",
    "optprob = prob.remake(ps=optps)\n",
    "\n",
    "# instantiate the new problem with the optimised parameters\n",
    "sess.qsprob_init(optprob)\n",
    "\n",
    "# evolve the system\n",
    "optds = sess.evolve(\"Tsit5\", saveat=ts)\n",
    "optds"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "31",
   "metadata": {},
   "source": [
    "To compare the dynamics, we calculate the state populations after optimisation and plot them together with the unoptimised populations from earlier."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "32",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-20T10:13:35.960299Z",
     "iopub.status.busy": "2026-08-20T10:13:35.960127Z",
     "iopub.status.idle": "2026-08-20T10:13:36.139432Z",
     "shell.execute_reply": "2026-08-20T10:13:36.138551Z"
    }
   },
   "outputs": [
    {
     "data": {},
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.holoviews_exec.v0+json": "",
      "text/html": [
       "<div id='20537dbe-deb4-40a1-9b8e-f60d6e95f001'>\n",
       "  <div id=\"ff674161-1859-44c8-afe4-1d4487de90d1\" data-root-id=\"20537dbe-deb4-40a1-9b8e-f60d6e95f001\" style=\"display: contents;\"></div>\n",
       "</div>\n",
       "<script type=\"application/javascript\">(function(root) {\n",
       "  var docs_json = {\"13be9aaa-aadb-49da-b6d4-505649f59e99\":{\"version\":\"3.9.0\",\"title\":\"Bokeh Application\",\"config\":{\"type\":\"object\",\"name\":\"DocumentConfig\",\"id\":\"31058d28-542a-4331-af36-42f28e33b329\",\"attributes\":{\"notifications\":{\"type\":\"object\",\"name\":\"Notifications\",\"id\":\"adf0e3c2-d922-4d34-9eb9-7a749d130c70\"}}},\"roots\":[{\"type\":\"object\",\"name\":\"Row\",\"id\":\"20537dbe-deb4-40a1-9b8e-f60d6e95f001\",\"attributes\":{\"name\":\"Row00590\",\"tags\":[\"embedded\"],\"stylesheets\":[\"\\n:host(.pn-loading):before, .pn-loading:before {\\n  background-color: #c3c3c3;\\n  mask-size: auto calc(min(50%, 300px));\\n  -webkit-mask-size: auto calc(min(50%, 300px));\\n}\",{\"type\":\"object\",\"name\":\"ImportedStyleSheet\",\"id\":\"2c630175-2ccf-469d-9529-73719cfff36c\",\"attributes\":{\"url\":\"https://cdn.holoviz.org/panel/1.8.10/dist/css/loading.css?v=1.8.10\"}},{\"type\":\"object\",\"name\":\"ImportedStyleSheet\",\"id\":\"e5ab51ea-7aa4-4bce-aff8-99ee45d771c4\",\"attributes\":{\"url\":\"https://cdn.holoviz.org/panel/1.8.10/dist/css/listpanel.css\"}},{\"type\":\"object\",\"name\":\"ImportedStyleSheet\",\"id\":\"c259e21e-97ed-4f69-b754-2317b4717f42\",\"attributes\":{\"url\":\"https://cdn.holoviz.org/panel/1.8.10/dist/bundled/theme/default.css\"}},{\"type\":\"object\",\"name\":\"ImportedStyleSheet\",\"id\":\"a709e4a6-bea4-41ce-bfab-2e86b9ea72a1\",\"attributes\":{\"url\":\"https://cdn.holoviz.org/panel/1.8.10/dist/bundled/theme/native.css\"}}],\"min_width\":700,\"margin\":0,\"sizing_mode\":\"stretch_width\",\"align\":\"start\",\"children\":[{\"type\":\"object\",\"name\":\"Spacer\",\"id\":\"cea6a977-9874-41e7-ba01-487348b57f08\",\"attributes\":{\"name\":\"HSpacer00594\",\"stylesheets\":[\"\\n:host(.pn-loading):before, .pn-loading:before {\\n  background-color: #c3c3c3;\\n  mask-size: auto calc(min(50%, 300px));\\n  -webkit-mask-size: auto calc(min(50%, 300px));\\n}\",{\"id\":\"2c630175-2ccf-469d-9529-73719cfff36c\"},{\"id\":\"c259e21e-97ed-4f69-b754-2317b4717f42\"},{\"id\":\"a709e4a6-bea4-41ce-bfab-2e86b9ea72a1\"}],\"min_width\":0,\"margin\":0,\"sizing_mode\":\"stretch_width\",\"align\":\"start\"}},{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"21aa3d5e-e418-4042-83e3-d0849a7aeabd\",\"attributes\":{\"width\":700,\"height\":300,\"margin\":[5,10],\"sizing_mode\":\"fixed\",\"align\":\"start\",\"x_range\":{\"type\":\"object\",\"name\":\"Range1d\",\"id\":\"2840643e-56ba-4ee9-9f95-900ecff3cf2d\",\"attributes\":{\"name\":\"time\",\"tags\":[[[\"time\",null]],[]],\"end\":2e-08,\"reset_start\":0.0,\"reset_end\":2e-08}},\"y_range\":{\"type\":\"object\",\"name\":\"Range1d\",\"id\":\"51b75bc8-e009-4988-9f7c-fc2a048514a4\",\"attributes\":{\"name\":\"population\",\"tags\":[[[\"population\",null]],{\"type\":\"map\",\"entries\":[[\"invert_yaxis\",false],[\"autorange\",false]]}],\"start\":-0.1,\"end\":1.1,\"reset_start\":-0.1,\"reset_end\":1.1}},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"cd6630dc-04a1-4c79-b867-22bc77edb50f\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"dc6bf362-713a-4620-9deb-c5dc4f58d43e\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"b36771dd-c073-44f0-bdc8-cb2ad100e1a8\",\"attributes\":{\"text_color\":\"black\",\"text_font_size\":\"12pt\"}},\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"1c4011bf-bde2-497c-a649-bc6761e98380\",\"attributes\":{\"name\":\"Unoptimised |0\\u27e9\",\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"3720799e-d97b-4ef7-ab15-1bb605aa4917\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"e0689526-96c2-43d2-b6b2-94c16b1a8bdb\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"263e4cc4-e43e-4f7c-81d6-f3bc04f78a2d\"},\"data\":{\"type\":\"map\",\"entries\":[[\"time\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[1000],\"dtype\":\"float64\",\"order\":\"little\"}],[\"population\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[1000],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"ad8891cd-e0b5-408b-a36b-dc6e09229e0e\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"df27b272-c020-4f3a-9b3e-e8697ac17a71\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"b96f4898-9232-46aa-b1f6-698877a080cd\",\"attributes\":{\"tags\":[\"apply_ranges\"],\"x\":{\"type\":\"field\",\"field\":\"time\"},\"y\":{\"type\":\"field\",\"field\":\"population\"},\"line_color\":\"#30a2da\",\"line_width\":2}},\"selection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"ff474fc4-7c41-4d89-ac15-f843ca5a5f5a\",\"attributes\":{\"tags\":[\"apply_ranges\"],\"x\":{\"type\":\"field\",\"field\":\"time\"},\"y\":{\"type\":\"field\",\"field\":\"population\"},\"line_color\":\"#30a2da\",\"line_width\":2}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"5df7aecf-c940-410b-b682-7a89cb4daace\",\"attributes\":{\"tags\":[\"apply_ranges\"],\"x\":{\"type\":\"field\",\"field\":\"time\"},\"y\":{\"type\":\"field\",\"field\":\"population\"},\"line_color\":\"#30a2da\",\"line_alpha\":0.1,\"line_width\":2}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"df8f811d-6bac-4b12-bcda-d9ad6e340a2b\",\"attributes\":{\"tags\":[\"apply_ranges\"],\"x\":{\"type\":\"field\",\"field\":\"time\"},\"y\":{\"type\":\"field\",\"field\":\"population\"},\"line_color\":\"#30a2da\",\"line_alpha\":0.2,\"line_width\":2}}}},{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"047b8509-1749-4657-ae5f-b29d644e83e6\",\"attributes\":{\"name\":\"Unoptimised |1\\u27e9\",\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"817475ba-82a9-4016-ad1d-78f150338e28\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"3626e8b7-bd3a-46c8-930d-7d6f6b8ef011\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"e39e454d-8682-4801-b31e-5c7bca607168\"},\"data\":{\"type\":\"map\",\"entries\":[[\"time\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"H4sIAAEAAAAA/y2XZVRUbRuFsVBEEUEUFJUukW6YzXTHmTMzdjcGL3ZhN2J3d2J3d6GI3d3Y3fV9a7n9w1JhOOd57nvv63Jy+vfn98vV/QPK7JD8+3pC8mcTbjUefp5/vyr5FeLp/XLELf77fcmg4p4RB+SP+P9PJYNc7p4afbSE3/dSkqvUdrQo3/D730kOZN4onf/wPX/uo0TS3E18t/QTf/6LZP8AxRJ726/8nG+SjNn93u0K/MHP+ynZt319Zu3Hv/i5fyQZlx5OHLb8Lz/fCS2+ub7tEVcK/35PKdQes7L6iqml8e85y+COlwzXPpTBv99bFguW32rvYiuHf+/rjObxfSakb3XGv+coj9pH3Ld386yAf+9VAXeEgtuLerrg33NVxPx7qrIXL1XEv3NxRbPs+/XKJlTCv+esBN/fA2xJ0yvj3zm44fZ4r4GdPrnh33NXgblyI6spwh3/ztkdG+zB7TvcdOd7VIXb/A/9huRV5ftURfajg/mz0zz4Xh44GzFh8eYXHnw/T9Tv0WTb6bmefE9PTNgdeuqRvhrftxpeO32+9etHNb63F0zaI2+9Crz4/tWxftKkMtFNq/McqqPytWY1tK41eB410K1ORL3We2vwXLxxtv1XDOjizfPxRv31x8RptXx4Tj7I/zSlw7ozPjyvmniV3nLA8YE1eW41YRwROfFuvVo8v1pYd/r7kq+3avEcfVHJ4+R293xfnqcvujaeXhieUZvnWhtFi1vfkb+qzfOtg8iSqPdN59fhOddBfvSvsr2NdXnedfGqT6H3xF91ee5+CGlpmGlr4Mfz98PV0nF+rTb48R78MHql99quzv68D38k6f/G92/hz3vxx9PXT/aP2uHP+/HHzClFmqluAbynAKgSt15Y2CGA9xWAz9fnNC04EMB7C8CK3KFPdlYP5P0FwuHX8b9j2YG8x0CUO2b6fv5EIO8zENs7Joy4UyeI9xqE9q61Kr/oE8T7DYLXxlKzvhQH8Z6DcFws8SsTGsz7DkbvL8VrqwwJ5r0HI3ju9gTfa8G8/xBckcw/EBYdwjkIwagHw7WJY0I4DyFIHJV1UXYvhHMRiidhQjNzcijnIxQzipKeNpkUyjkJhSqndk7HZ6GclzB89iz7o2dmGOcmDCt2vhgxdFYY5ycMjqYXKk94G8Y5Cke5vztnzdGEc57CsX3pQv+Vi8I5V+Fopx5VsOVrOOcrAtVedEk8aIngnEXg2ATx4JlVEZy3CPSKTdVd/xvBuauHoCt1Lz1uWI/zVw+X+zk3f7+xHuewHkb6vn76u3wk5zESCYcu5VRsFcm5jMTjtnt+VN8VyfmMxPTyS0YGutfnnNaHsmCMW0yn+pzX+vhkzp6dcag+57Y+ln+wB+i8ozi/UbDPTF/nyIniHEehbFpAUptTUZznKGy7U+FQtl805zoa7Ya91Q3sF835jka14KuXxpyP5pxHo027u1H6ajGc9xik7bjQU5DGcO5j4FHh+K4GXWM4/zF40XjX72azY7gHMThSUCBveyyG+xCDub8Xjsl6F8O9iEUPy9Si/3xjuR+x0C8ZVbWPNpZ7EouAj/0a5PaK5b7E4oey67zhi2O5N7G4OLPl/bFFsdyfWKwtEYMnfYvlHsVheJq684ygOO5THJrkp26cJ8Rxr+IQezfy05LcOO5XHFxi/FJXr47jnsXhwTDPwRsux3Hf4rD7kvPRbU7x3Lt4TAn+UX5vZDz3Lx5ZfV8bDzeK5x7GQ1Z4f8rJkfHcx3j41Lp89eymeO5lPN53PVnr8u147mc8Cg/saXWzQgL3NAFL3DesuJ+QwH1NQP82S148bZXAvU2Addv06Nf5CdzfBIQ7j+31cVcC9zgBpRoN3P39cQL3OQE31mT/+eueyL1OxOafrRXOkkTudyLGmRxjK2Ulcs8T0XqR9qzHjETueyJS36d7+BxO5N4noqoiumHd14nc/yQ8nx4wP9gniTmQhMNPvR7UUyUxD5IwJ8UlJK57EnMhCd3zfnVOWZDEfEiC7vbbjShMYk4kwT/q0Sfl5yTmRTK+D7maavBPZm4k48KFwsFWUzLzIxlrAvcfbdg/mTmSjGG9N1VosSKZeZKMxieXmdpdSGauJCPWZ9bUzr+TmS8pcOmSdy0nPIU5k4IH+wb59nWkMG9SsNute+tBw1KYOymY0qrdyhHrU5g/Kcja0vDluBspzKEUyMoaYiaXS2UepcKnAXrPjE1lLqXi/arYPfObpzKfUlH4Pejv0nGpzKlULDZ4K9dsT2VepaLfAtdxGx+kMrdSIbz9c3Z75TTmVxrCZB889qWmMcfS4DTtScMj7dOYZ2m4/vj6/FNT0phradiUVPSgeH8a8y0NY8ceDLnyPI05l4ZWN7d0ueWVzrxLR0rkyk0PZOnMvXS4D57z+Vm3dOZfOkrO5ae9mZPOHEzHIf+hQz4dT2cepmN2z57HfrxPZy5mIOd4B5dSdTKYjxnQ1mhiLq/PYE5mwC/LNK1ynwzmZQa+7ZFe91yawdzMwPlKCbVrFmcwPzOwukVoG78fGcxRCYZuqrkqJETCPJWgUWm3V5GihLkqQYy9VGz8YAnzVYIKKz/1Tl0rYc5KcP/rsz2ZVyXMWwl26W79VZUGcxeYPK9YaYwC8xfo9PrwOLEJmMOANHN7caPRYB4D3lNWe7bcAuYy8O7hvEbt74L5DJxKmLSgS8VM5nQmFo8e/rB7UibzOhP9rvcO7dcmk7mdCSEiq+vgiZnM70yE5TbbPHJPJnM8E07Fli95TzOZ5///OmnJAq2LlLkuxfWUWocMdaXMdymOPZj+0JwoZc5LsSnPrZxokDLvpZgfPzbU0VrK3Jdi7O1S+kZ9pcx/KXqNGti16QQpe0CKVlGfJ7ZYJmUfSGG8lr259W4pe0GKlKEll9qdk7IfpAgKb/Ol4xMpe0IK94u3vLv8lLIvZPg1wJGeXVXG3pChJPBc8+6hMvaHDJeLtEN7SWTsERkO9T6ytK9Nxj6RYV2djOMDsmTsFRlmn9z+bNAQGftFhpE50RWHzZCxZ2TI8VkTObJAxr6RodmRAMuYwzL2jgzaLvO7512TsX9kSKhWffqE1zL2kAx++yftmFxGzj6So1IHlxvTfOTsJTm+uY34OTNazn6S4/HOX7XnquTsKTnOteojXdBUzr6SY6/LuzaLu8vZW3Ks2pI1atkYOftLjmlNH61auUDOHpNjSNnmp9dslbPP5Oiy/uqrdYVy9pocDRsIVTbdk7Pf5FD8LYzd+lnOnlMgerXCvsNVwb5ToJZ1f5/d/gr2ngLlfyTN2ZesYP8p8HHppr0HTQr2oAL3DBF3j7RVsA8VOPNpmdOJ/gr2ogI7F9QOLJykYD8qsEw9S1W0QsGeVGDSW/dO5/Yq2JcKDJydl3fxgoK9qUBHWdn1V54p2J8K2F4MOnf9t4I9qkTmtK/vb3kq2adK1MvoXu1euJK9qkSNJy+SHmYq2a9KlJnYrvETh5I9q8TbpLsDS7oo2bdK3LrXcOHLYUr2rhInx1449GaWkv2rxNZYw6P365XsYSUW3TxW7vNRJftYifEjEPbthpK9rETfyF36n2+V7Gcl2l6J7fannIo9rYJlcMGkUr4q9rUK6aHBW8rGqdjbKoSeX3i5vFbF/lbBs7/314otVOxxFf76T/Vx66Vin6vw8rRrRtU8FXtdhWs9R7WotljFflfhqO/foTV2qNjzKmw83m9ZzSIV+16Fedkfjtd+qGLvqzCmRtcSv28q9r8aPQ89qRjkpiYHqNEyq2X90CA1eUANg8cNS0SamlygRvJesUd9QU0+UCOwXdH0mA5qcoIaVSqrd8bnqskLavzcfvBG0lQ1uUGNZy1Sf6WuVpMf1LhUfmsdyQE1OUKNg5siZdLLavKEGgWNV7ZVvFCTK9SYVdpvtNpJQ77QYETBnNW66hpyhgb/2T3PGCM15A0Nmv7Of22Ra8gdGmhWOrvbGmnIHxrEW4bGNcjWkEM0qPvtu73xSA15RAPXJT37NpurIZdo8FX3ek7LTRryiQaPPnTY1+aEhpyiwbl59++2v60hr2iwV9mkVNYHDblFg1WvLwV2raAlv2gxbaZJ/V8dLTlGiyGZJzv1SNCSZ7ToUiId31uvJddo0XDKnvX9WmnJN1oo0hLOD+yjJedoEf1o/YfB+Vryjha18kO9hi/Vknu0KJ+4JHnULi35R4uPd2o2GVusJQdpcW/09Nzxj7XkIS3ORLstmvhDSy7SYef1MYenuOvIRzosG1bq8fQQHTlJh0kRA51nZ+jISzoMvPQpbJ6oIzfp0DE327Cwk478pIMtuKTbksE6cpQOmcWtJy+friNP6VCv760tq9bqyFU6VPdzXFl7SEe+0qF0YfHX9Vd15Cwd3nTX1tz8Skfe0uFmzSMZ20rryV16nDia3nKnt578pceWrtuH7YnSk8P0WOgVvXy/Uk8e0yPvwOoTh5royWV69OkY8Pxojp58pkcb9/muJ0fryWl6mHd7RZ2eryev6ZHWZpJwdoue3KZHiKtLz/On9OQ3PTy2DZ9x6a6eHKfHn2a/dl79pCfP6fGiXJ+bNyoayHUGXN3w9tdtPwP5zoAjDbPq3k8ykPMM2OD0SPbIaCDvGTB3TbN2T9sYyH0GjBavjn7ez0D+M6DHT8uaVxMN5EADWiwvPPN2uYE8aIDepHjzYY+BXGhA0pd97l/OG8iHBgQsSor//tRATjTATbvJ8euXgbxoxI934f3+ehjJjUY8nbNsbulwI/nRiIvy2vvLZRrJkUYceDnzXgWHkTxpxNrp7qUrdTGSK42YKckLqjLMSL40YvjTMhqPWUZyphHZkwZlea03kjeNaJLydbz3USO50wj1g5wNtW4YyZ9GxOW9OF/nrZEcakSd+HYf/cuZyKMmVLx9xyu4lolcasKXkQ1TwmJN5FMTHta/0KSexkRONaH4qn5QVHMTedWEPUOOLYrtaSK3mrAyDEcSxpnIryZMvbDzcfIiEznWhMEDYsunbzeRZ03oHFgQjjMmcq0JDYqCjLIHJvKtCfLeC7OVX03kXDOi6nhP0VQ2k3fNqHlyylZ9oJnca4ZzjutVU6qZ/GvGB+9R3wSLmRxsxt3Df2ra25vJw2ac7txP0nCgmVxsxg7PDy2bTDGTj81Yuq/L8OarzORkMya2f7K81X4zedmMAW4tT7a9ZCY3m9Fh5/XnHZ6byc9miK3ESp3/msnRFsClKKqbl4U8bUHEFpU1p56FXG1B9aYHe/aUWcjXFpQumzqzT0MLOduCN+u27OrfzULetuCmI/JW7ggLuduCE39W/B4yx0L+tmDLqrp+IzZayOEWLBTmyEcft5DHLcj77tF+3C0LudyCPkvzx+S/t5DPLdgcXObKyTICOV1A6I/MDoVuAnldwILi3K+nfQRyuwDPZbvHFgUJ5HcB4/p+8SmOFsjxAv4a4gvOpQnkeQG9/XIyLqgEcr2Al5/Wnb0oCOR7Aa0Ln7e43FQg5wu4tiDk3ZUOAnlfgKlH22HXugvkfgFH1Ys9buQK5H8BqbXuLLs5RqAHCNj41ifx9lSBPiAg+FiDE3cWCPQCAfNmT2t4b7VAPxBQtdv5kvtbBXqCgDGyygMeHhDoCwJ+e+ldHxcK9AYBPV+Mnv/kskB/EPD8wNH6z+4J9AgBLac5HSx5IdAnBFzpKBFefBboFQIMGQMevHSy0i+sOOy+s8drVys9w4rkJx/LvK1upW9YsX53zIx3/lZ6hxWBE7uFfIi00j+smNNm7c6PyVZ6iBVVkp9pP8ut9BErRrkG3fxistJLrPh5r1WXb42s9BMrum9b8Ot7Wys9xYpnY29O+Jltpa9Y0bx5jbq/+1vpLVZcirVv+jPSSn+xQuc8ReY02UqPseLgzbMXS82z0mesSNxYsV2ZlVZ6jRUFIzSfy2620m+s8G80crTzPis9x4pZkYdrVDhppe9YUbnUn9UuF630HitGXElLc71jpf9Y8X1N3zOVSqz0ICv+G7ytmdtHK33Iiifi+9dV/ljpRSKahkYNqeoi0o9EXPjZ2d2zmkhPEqE5v2pJtboifUnE/uWP46pHiPQmEfH9/Y/VSBTpTyLWmFo4fKQiPUpE3YB5T2saRPqUiBlfrvX1bSDSq0RUPFPNpU5rkX4lYugi69y6XUV6logvPSfW8+8r0rdEdNWe2RcwXKR3iXjoW8EcNEGkf4lo9F55L3i2SA8TUXx8WE7oMpE+JkI590Cp8A0ivUzEnuyfUyN2i/QzETGKlKDIYyI9TcTKGr231z8n0tdE+L7arI6+KdLbREw99OZazBOR/iaiwox6WXHvRHqciMFZnX7E/xTpczZ8kqwYn+hso9fZ0NnjoW9yVRv9zob7T+tsSPG10fNsaLC3aWZaqI2+Z0PRpNnn0+Ns9D4b5O2utJZIbPQ/G3aleHyE1kYPtCGqsmWk1GajD9qw/MF4L3kLG73Qhpo7Tq1UZNnohzZMziuXouployfa4NxSXqgeYqMv2pAbP6SJNs9Gb7ThQ/l9L3UzbPRHGzrd/pZrWGyjR9pwd1Oim6nARp+0wT6qxyLzDhu90obTjTfGCIdt9EsbpFGvDluLbPRMG3aUDrfZrtnomzZEXmv/2P7QRu+0YWnB0t4NXtvonzZ4D73n3OibjR5qw0S77+zGZez0UTvKhjcOb+pmp5faMeD3jD3NfOz0UzveXbhoaBFkp6fa0WFllTsto+30VTtuDzBmt06z01vtEC3j/rZR2emvdpwKPDG5nWCnx9qBb6UDOjS102ft2FaUubVjBzu91o6IJbnKrO52+q0di3vvvtI5107PtaO6/kuHrmPs9F078uvEf+s21U7vtaP0x//G/bfATv+1o9/JdTW7r7bTg+14M+95QY+tdvqwHe1yQiS9DtjpxXbcVLYt7l1opx/bIfgsbtn3sp2ebMeJ17ff9btnpy/bkXHEZ/iAF3Z6sx1bZjbwzP1spz/bEdZl2vJBTg56tAMLM88nDnF10KcdqFat8smh1R30agfySnSNhvs76NcOOO0f/XxEpIOe7UCfKUcHjEp20LcdeNXeqdIYuYPe7UCbNMmCsSYH/duB624DovIaOejhDpgf7Tg4vq2DPu7AsZ0fhQnZDnq5A2n5MQ8n9nfgf7ALgvVAHwAA\"},\"shape\":[1000],\"dtype\":\"float64\",\"order\":\"little\"}],[\"population\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[1000],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"c1ec6281-feea-45e5-8391-7641ae1c8de9\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"c22a44a4-3f5e-490c-90cd-bad8a2255d7e\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"fd5e4533-5c2e-4f82-a0d2-cdc9d14c2307\",\"attributes\":{\"tags\":[\"apply_ranges\"],\"x\":{\"type\":\"field\",\"field\":\"time\"},\"y\":{\"type\":\"field\",\"field\":\"population\"},\"line_color\":\"#fc4f30\",\"line_width\":2}},\"selection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"388c69a9-530a-45dc-89a1-56ab7d9e7099\",\"attributes\":{\"tags\":[\"apply_ranges\"],\"x\":{\"type\":\"field\",\"field\":\"time\"},\"y\":{\"type\":\"field\",\"field\":\"population\"},\"line_color\":\"#fc4f30\",\"line_width\":2}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"7b582775-c635-448e-95bf-d780560c25fc\",\"attributes\":{\"tags\":[\"apply_ranges\"],\"x\":{\"type\":\"field\",\"field\":\"time\"},\"y\":{\"type\":\"field\",\"field\":\"population\"},\"line_color\":\"#fc4f30\",\"line_alpha\":0.1,\"line_width\":2}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"e57c85f3-db8b-4322-9df3-63008d04d997\",\"attributes\":{\"tags\":[\"apply_ranges\"],\"x\":{\"type\":\"field\",\"field\":\"time\"},\"y\":{\"type\":\"field\",\"field\":\"population\"},\"line_color\":\"#fc4f30\",\"line_alpha\":0.2,\"line_width\":2}}}},{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"75e44e86-9d20-43b2-b913-7146a59395d2\",\"attributes\":{\"name\":\"Optimised |0\\u27e9\",\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"e8eaa81f-1bee-4285-80bb-f09d2869cbbd\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"6e4a36ab-8aee-48e8-9e6f-67973b4a37cc\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"d011cc23-de07-44cf-94b2-bac2d9a02143\"},\"data\":{\"type\":\"map\",\"entries\":[[\"time\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[1000],\"dtype\":\"float64\",\"order\":\"little\"}],[\"population\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[1000],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"fbbeafa5-9cfc-4df2-b195-691e7af2fbae\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"0b0fcc34-5436-404a-85e9-fc8323ae9781\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"e3559b26-91ce-4fa0-89fa-58c439883c9f\",\"attributes\":{\"tags\":[\"apply_ranges\"],\"x\":{\"type\":\"field\",\"field\":\"time\"},\"y\":{\"type\":\"field\",\"field\":\"population\"},\"line_color\":\"#e5ae38\",\"line_width\":2}},\"selection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"592e0d40-cbdc-45a2-9df3-cbab5bbf27d5\",\"attributes\":{\"tags\":[\"apply_ranges\"],\"x\":{\"type\":\"field\",\"field\":\"time\"},\"y\":{\"type\":\"field\",\"field\":\"population\"},\"line_color\":\"#e5ae38\",\"line_width\":2}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"a5586079-175c-43b1-926c-6cead70d2773\",\"attributes\":{\"tags\":[\"apply_ranges\"],\"x\":{\"type\":\"field\",\"field\":\"time\"},\"y\":{\"type\":\"field\",\"field\":\"population\"},\"line_color\":\"#e5ae38\",\"line_alpha\":0.1,\"line_width\":2}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"85648a17-4d66-4f90-b2d6-d90523318af1\",\"attributes\":{\"tags\":[\"apply_ranges\"],\"x\":{\"type\":\"field\",\"field\":\"time\"},\"y\":{\"type\":\"field\",\"field\":\"population\"},\"line_color\":\"#e5ae38\",\"line_alpha\":0.2,\"line_width\":2}}}},{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"d7465a7a-663a-4d65-a805-6e48e0351ae6\",\"attributes\":{\"name\":\"Optimised |1\\u27e9\",\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"6c1f3226-fe0e-4390-bae4-3f784fef63a8\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"d73b5fbd-e420-4d19-a2cb-c4d7d6a307eb\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"f36672f9-4184-4034-b2c8-8892c10f4650\"},\"data\":{\"type\":\"map\",\"entries\":[[\"time\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[1000],\"dtype\":\"float64\",\"order\":\"little\"}],[\"population\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[1000],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"1e15e115-cc73-4d29-b2dd-8f0b90288b1e\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"d37bd6b0-6e7f-4d1a-84b4-0561e4891fb1\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"ff1a1252-2bda-4c10-8729-50102e4ae560\",\"attributes\":{\"tags\":[\"apply_ranges\"],\"x\":{\"type\":\"field\",\"field\":\"time\"},\"y\":{\"type\":\"field\",\"field\":\"population\"},\"line_color\":\"#6d904f\",\"line_width\":2}},\"selection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"7bded214-792a-47c2-9516-5fe9b900f1ee\",\"attributes\":{\"tags\":[\"apply_ranges\"],\"x\":{\"type\":\"field\",\"field\":\"time\"},\"y\":{\"type\":\"field\",\"field\":\"population\"},\"line_color\":\"#6d904f\",\"line_width\":2}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"bdc195fb-5056-4bc5-b6ee-1aee1030b7f2\",\"attributes\":{\"tags\":[\"apply_ranges\"],\"x\":{\"type\":\"field\",\"field\":\"time\"},\"y\":{\"type\":\"field\",\"field\":\"population\"},\"line_color\":\"#6d904f\",\"line_alpha\":0.1,\"line_width\":2}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"baf64076-fa16-4450-9716-644c9ab69ca6\",\"attributes\":{\"tags\":[\"apply_ranges\"],\"x\":{\"type\":\"field\",\"field\":\"time\"},\"y\":{\"type\":\"field\",\"field\":\"population\"},\"line_color\":\"#6d904f\",\"line_alpha\":0.2,\"line_width\":2}}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"5234df89-2c17-4c9a-b6ba-c61185d7ea64\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"ed95c50c-4cd4-4540-a6d0-1b5c113ea13a\",\"attributes\":{\"tags\":[\"hv_created\"],\"renderers\":\"auto\",\"zoom_together\":\"none\"}},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"fc1aaf2c-b245-46f5-83c1-f52ab3b82ea8\",\"attributes\":{\"tags\":[\"hv_created\"],\"renderers\":[{\"id\":\"1c4011bf-bde2-497c-a649-bc6761e98380\"},{\"id\":\"047b8509-1749-4657-ae5f-b29d644e83e6\"},{\"id\":\"75e44e86-9d20-43b2-b913-7146a59395d2\"},{\"id\":\"d7465a7a-663a-4d65-a805-6e48e0351ae6\"}],\"tooltips\":[[\"time\",\"@{time}\"],[\"population\",\"@{population}\"]],\"sort_by\":null}},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"04309604-a212-45ad-96cb-0205bb04a83e\"},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"4515fad5-a446-4876-8885-540466fe5f07\"},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"a533af3c-3892-4eeb-9b3e-7e2abae15eba\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"6241727d-8ecc-43d5-960b-51301939f296\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"9aff8492-749a-48f9-987d-e4635e2b04e4\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"a3e64503-bfe3-4c44-8aea-ac1e9c6e149b\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"a8f446cf-9c47-4acb-aa41-bfc21e8044e6\"}],\"active_drag\":{\"id\":\"4515fad5-a446-4876-8885-540466fe5f07\"},\"active_scroll\":{\"id\":\"ed95c50c-4cd4-4540-a6d0-1b5c113ea13a\"}}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"52bcc3f4-f3ad-4618-9191-15ce4eb0bff7\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"62efaf47-43ab-4e65-a02d-8e726e6b9cef\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"e351fca8-77b2-4bf2-95c8-413e75987a45\"},\"axis_label\":\"Population\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"f0ed66ba-c229-4ada-a369-9aae6b1efec3\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"a810ee02-a3a4-48f4-9634-1a969929979e\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"cfbf5c91-975c-40cc-afff-c6595ff79bfa\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"0ee8f321-d1f0-4f15-a5b7-01d38535a465\"},\"axis_label\":\"Time (s)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"95e6000b-ae05-4508-a33a-39b95187d696\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"e9835f90-1a0d-4fbd-9e04-f2e67755b471\",\"attributes\":{\"axis\":{\"id\":\"a810ee02-a3a4-48f4-9634-1a969929979e\"},\"grid_line_color\":null}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"75693d08-cbf7-4f36-af18-2e4d8d586a11\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"52bcc3f4-f3ad-4618-9191-15ce4eb0bff7\"},\"grid_line_color\":null}},{\"type\":\"object\",\"name\":\"Legend\",\"id\":\"fa63aedc-7fab-4c53-ad48-515bf29877d5\",\"attributes\":{\"click_policy\":\"mute\",\"items\":[{\"type\":\"object\",\"name\":\"LegendItem\",\"id\":\"7acc6298-8c92-45f7-9423-dd1b1cbe23b2\",\"attributes\":{\"label\":{\"type\":\"value\",\"value\":\"Unoptimised |0\\u27e9\"},\"renderers\":[{\"id\":\"1c4011bf-bde2-497c-a649-bc6761e98380\"}]}},{\"type\":\"object\",\"name\":\"LegendItem\",\"id\":\"0f1c53b3-9f1e-43bf-995d-d1b97e82416d\",\"attributes\":{\"label\":{\"type\":\"value\",\"value\":\"Unoptimised |1\\u27e9\"},\"renderers\":[{\"id\":\"047b8509-1749-4657-ae5f-b29d644e83e6\"}]}},{\"type\":\"object\",\"name\":\"LegendItem\",\"id\":\"d1db7789-8790-42a9-aeff-f84b5843bec3\",\"attributes\":{\"label\":{\"type\":\"value\",\"value\":\"Optimised |0\\u27e9\"},\"renderers\":[{\"id\":\"75e44e86-9d20-43b2-b913-7146a59395d2\"}]}},{\"type\":\"object\",\"name\":\"LegendItem\",\"id\":\"4c7ad253-c03b-4d09-91b9-e152080acdda\",\"attributes\":{\"label\":{\"type\":\"value\",\"value\":\"Optimised |1\\u27e9\"},\"renderers\":[{\"id\":\"d7465a7a-663a-4d65-a805-6e48e0351ae6\"}]}}]}}],\"min_border_top\":10,\"min_border_bottom\":10,\"min_border_left\":10,\"min_border_right\":10,\"output_backend\":\"webgl\"}},{\"type\":\"object\",\"name\":\"Spacer\",\"id\":\"ab6dfb78-226c-4989-a383-31320720b240\",\"attributes\":{\"name\":\"HSpacer00595\",\"stylesheets\":[\"\\n:host(.pn-loading):before, .pn-loading:before {\\n  background-color: #c3c3c3;\\n  mask-size: auto calc(min(50%, 300px));\\n  -webkit-mask-size: auto calc(min(50%, 300px));\\n}\",{\"id\":\"2c630175-2ccf-469d-9529-73719cfff36c\"},{\"id\":\"c259e21e-97ed-4f69-b754-2317b4717f42\"},{\"id\":\"a709e4a6-bea4-41ce-bfab-2e86b9ea72a1\"}],\"min_width\":0,\"margin\":0,\"sizing_mode\":\"stretch_width\",\"align\":\"start\"}}]}}],\"defs\":[{\"type\":\"model\",\"name\":\"ReactiveHTML1\"},{\"type\":\"model\",\"name\":\"FlexBox1\",\"properties\":[{\"name\":\"align_content\",\"kind\":\"Any\",\"default\":\"flex-start\"},{\"name\":\"align_items\",\"kind\":\"Any\",\"default\":\"flex-start\"},{\"name\":\"flex_direction\",\"kind\":\"Any\",\"default\":\"row\"},{\"name\":\"flex_wrap\",\"kind\":\"Any\",\"default\":\"wrap\"},{\"name\":\"gap\",\"kind\":\"Any\",\"default\":\"\"},{\"name\":\"justify_content\",\"kind\":\"Any\",\"default\":\"flex-start\"}]},{\"type\":\"model\",\"name\":\"FloatPanel1\",\"properties\":[{\"name\":\"config\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}},{\"name\":\"contained\",\"kind\":\"Any\",\"default\":true},{\"name\":\"position\",\"kind\":\"Any\",\"default\":\"right-top\"},{\"name\":\"offsetx\",\"kind\":\"Any\",\"default\":null},{\"name\":\"offsety\",\"kind\":\"Any\",\"default\":null},{\"name\":\"theme\",\"kind\":\"Any\",\"default\":\"primary\"},{\"name\":\"status\",\"kind\":\"Any\",\"default\":\"normalized\"}]},{\"type\":\"model\",\"name\":\"GridStack1\",\"properties\":[{\"name\":\"ncols\",\"kind\":\"Any\",\"default\":null},{\"name\":\"nrows\",\"kind\":\"Any\",\"default\":null},{\"name\":\"allow_resize\",\"kind\":\"Any\",\"default\":true},{\"name\":\"allow_drag\",\"kind\":\"Any\",\"default\":true},{\"name\":\"state\",\"kind\":\"Any\",\"default\":[]}]},{\"type\":\"model\",\"name\":\"drag1\",\"properties\":[{\"name\":\"slider_width\",\"kind\":\"Any\",\"default\":5},{\"name\":\"slider_color\",\"kind\":\"Any\",\"default\":\"black\"},{\"name\":\"start\",\"kind\":\"Any\",\"default\":0},{\"name\":\"end\",\"kind\":\"Any\",\"default\":100},{\"name\":\"value\",\"kind\":\"Any\",\"default\":50}]},{\"type\":\"model\",\"name\":\"click1\",\"properties\":[{\"name\":\"terminal_output\",\"kind\":\"Any\",\"default\":\"\"},{\"name\":\"debug_name\",\"kind\":\"Any\",\"default\":\"\"},{\"name\":\"clears\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"ReactiveESM1\",\"properties\":[{\"name\":\"esm_constants\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}}]},{\"type\":\"model\",\"name\":\"JSComponent1\",\"properties\":[{\"name\":\"esm_constants\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}}]},{\"type\":\"model\",\"name\":\"ReactComponent1\",\"properties\":[{\"name\":\"use_shadow_dom\",\"kind\":\"Any\",\"default\":true},{\"name\":\"esm_constants\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}}]},{\"type\":\"model\",\"name\":\"AnyWidgetComponent1\",\"properties\":[{\"name\":\"use_shadow_dom\",\"kind\":\"Any\",\"default\":true},{\"name\":\"esm_constants\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}}]},{\"type\":\"model\",\"name\":\"FastWrapper1\",\"properties\":[{\"name\":\"object\",\"kind\":\"Any\",\"default\":null},{\"name\":\"style\",\"kind\":\"Any\",\"default\":null}]},{\"type\":\"model\",\"name\":\"NotificationArea1\",\"properties\":[{\"name\":\"js_events\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}},{\"name\":\"max_notifications\",\"kind\":\"Any\",\"default\":5},{\"name\":\"notifications\",\"kind\":\"Any\",\"default\":[]},{\"name\":\"position\",\"kind\":\"Any\",\"default\":\"bottom-right\"},{\"name\":\"_clear\",\"kind\":\"Any\",\"default\":0},{\"name\":\"types\",\"kind\":\"Any\",\"default\":[{\"type\":\"map\",\"entries\":[[\"type\",\"warning\"],[\"background\",\"#ffc107\"],[\"icon\",{\"type\":\"map\",\"entries\":[[\"className\",\"fas fa-exclamation-triangle\"],[\"tagName\",\"i\"],[\"color\",\"white\"]]}]]},{\"type\":\"map\",\"entries\":[[\"type\",\"info\"],[\"background\",\"#007bff\"],[\"icon\",{\"type\":\"map\",\"entries\":[[\"className\",\"fas fa-info-circle\"],[\"tagName\",\"i\"],[\"color\",\"white\"]]}]]}]}]},{\"type\":\"model\",\"name\":\"Notification\",\"properties\":[{\"name\":\"background\",\"kind\":\"Any\",\"default\":null},{\"name\":\"duration\",\"kind\":\"Any\",\"default\":3000},{\"name\":\"icon\",\"kind\":\"Any\",\"default\":null},{\"name\":\"message\",\"kind\":\"Any\",\"default\":\"\"},{\"name\":\"notification_type\",\"kind\":\"Any\",\"default\":null},{\"name\":\"_rendered\",\"kind\":\"Any\",\"default\":false},{\"name\":\"_destroyed\",\"kind\":\"Any\",\"default\":false}]},{\"type\":\"model\",\"name\":\"TemplateActions1\",\"properties\":[{\"name\":\"open_modal\",\"kind\":\"Any\",\"default\":0},{\"name\":\"close_modal\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"BootstrapTemplateActions1\",\"properties\":[{\"name\":\"open_modal\",\"kind\":\"Any\",\"default\":0},{\"name\":\"close_modal\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"TemplateEditor1\",\"properties\":[{\"name\":\"layout\",\"kind\":\"Any\",\"default\":[]}]},{\"type\":\"model\",\"name\":\"MaterialTemplateActions1\",\"properties\":[{\"name\":\"open_modal\",\"kind\":\"Any\",\"default\":0},{\"name\":\"close_modal\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"request_value1\",\"properties\":[{\"name\":\"fill\",\"kind\":\"Any\",\"default\":\"none\"},{\"name\":\"_synced\",\"kind\":\"Any\",\"default\":null},{\"name\":\"_request_sync\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"holoviews.plotting.bokeh.raster.HoverModel\",\"properties\":[{\"name\":\"xy\",\"kind\":\"Any\",\"default\":null},{\"name\":\"data\",\"kind\":\"Any\",\"default\":null}]}]}};\n",
       "  var render_items = [{\"docid\":\"13be9aaa-aadb-49da-b6d4-505649f59e99\",\"roots\":{\"20537dbe-deb4-40a1-9b8e-f60d6e95f001\":\"ff674161-1859-44c8-afe4-1d4487de90d1\"},\"root_ids\":[\"20537dbe-deb4-40a1-9b8e-f60d6e95f001\"]}];\n",
       "  var docs = Object.values(docs_json)\n",
       "  if (!docs) {\n",
       "    return\n",
       "  }\n",
       "  const version = docs[0].version.replace('rc', '-rc.').replace('.dev', '-dev.')\n",
       "  async function embed_document(root) {\n",
       "    var Bokeh = get_bokeh(root)\n",
       "    await Bokeh.embed.embed_items_notebook(docs_json, render_items);\n",
       "    for (const render_item of render_items) {\n",
       "      for (const root_id of render_item.root_ids) {\n",
       "\tconst id_el = document.getElementById(root_id)\n",
       "\tif (id_el.children.length && id_el.children[0].hasAttribute('data-root-id')) {\n",
       "\t  const root_el = id_el.children[0]\n",
       "\t  root_el.id = root_el.id + '-rendered'\n",
       "\t  for (const child of root_el.children) {\n",
       "            // Ensure JupyterLab does not capture keyboard shortcuts\n",
       "            // see: https://jupyterlab.readthedocs.io/en/4.1.x/extension/notebook.html#keyboard-interaction-model\n",
       "\t    child.setAttribute('data-lm-suppress-shortcuts', 'true')\n",
       "\t  }\n",
       "\t}\n",
       "      }\n",
       "    }\n",
       "  }\n",
       "  function get_bokeh(root) {\n",
       "    if (root.Bokeh === undefined) {\n",
       "      return null\n",
       "    } else if (root.Bokeh.version !== version) {\n",
       "      if (root.Bokeh.versions === undefined || !root.Bokeh.versions.has(version)) {\n",
       "\treturn null\n",
       "      }\n",
       "      return root.Bokeh.versions.get(version);\n",
       "    } else if (root.Bokeh.version === version) {\n",
       "      return root.Bokeh\n",
       "    }\n",
       "    return null\n",
       "  }\n",
       "  function is_loaded(root) {\n",
       "    var Bokeh = get_bokeh(root)\n",
       "    return (Bokeh != null && Bokeh.Panel !== undefined)\n",
       "  }\n",
       "  if (is_loaded(root)) {\n",
       "    embed_document(root);\n",
       "  } else {\n",
       "    var attempts = 0;\n",
       "    var timer = setInterval(function(root) {\n",
       "      if (is_loaded(root)) {\n",
       "        clearInterval(timer);\n",
       "        embed_document(root);\n",
       "      } else if (document.readyState == \"complete\") {\n",
       "        attempts++;\n",
       "        if (attempts > 200) {\n",
       "          clearInterval(timer);\n",
       "\t  var Bokeh = get_bokeh(root)\n",
       "\t  if (Bokeh == null || Bokeh.Panel == null) {\n",
       "            console.warn(\"Panel: ERROR: Unable to run Panel code because Bokeh or Panel library is missing\");\n",
       "\t  } else {\n",
       "\t    console.warn(\"Panel: WARNING: Attempting to render but not all required libraries could be resolved.\")\n",
       "\t    embed_document(root)\n",
       "\t  }\n",
       "        }\n",
       "      }\n",
       "    }, 25, root)\n",
       "  }\n",
       "})(window);</script>"
      ],
      "text/plain": [
       ":Overlay\n",
       "   .Curve.Unoptimised_vertical_line_0_mathematical_right_angle_bracket :Curve   [time]   (population)\n",
       "   .Curve.Unoptimised_vertical_line_1_mathematical_right_angle_bracket :Curve   [time]   (population)\n",
       "   .Curve.Optimised_vertical_line_0_mathematical_right_angle_bracket   :Curve   [time]   (population)\n",
       "   .Curve.Optimised_vertical_line_1_mathematical_right_angle_bracket   :Curve   [time]   (population)"
      ]
     },
     "execution_count": 16,
     "metadata": {
      "application/vnd.holoviews_exec.v0+json": {
       "id": "20537dbe-deb4-40a1-9b8e-f60d6e95f001"
      }
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "optds[\"population\"] = np.abs(optds[\"qstates\"]) ** 2\n",
    "\n",
    "optds = optds.rename({\"row\": \"state\"})\n",
    "optds = optds.assign_coords(state=[r\"|0>\", r\"|1>\"])\n",
    "\n",
    "(\n",
    "    ds[\"population\"].isel(state=0).hvplot.line(label=\"Unoptimised |0⟩\")\n",
    "    * ds[\"population\"].isel(state=1).hvplot.line(label=\"Unoptimised |1⟩\")\n",
    "    * optds[\"population\"].isel(state=0).hvplot.line(label=\"Optimised |0⟩\")\n",
    "    * optds[\"population\"].isel(state=1).hvplot.line(label=\"Optimised |1⟩\")\n",
    ").opts(\n",
    "    xlabel=\"Time (s)\",\n",
    "    ylabel=\"Population\",\n",
    "    title=\"\",\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "33",
   "metadata": {},
   "source": [
    "We can see here that the population exchange between the ground and first excited states is almost complete. Our optimisation was successful! \n",
    "\n",
    "We can quantify this success by printing the fidelity before and after optimisation:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "34",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-20T10:13:36.141358Z",
     "iopub.status.busy": "2026-08-20T10:13:36.141163Z",
     "iopub.status.idle": "2026-08-20T10:13:36.147715Z",
     "shell.execute_reply": "2026-08-20T10:13:36.146880Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Unoptimised: 69.775021 %\n",
      "Optimised: 99.999979 %\n"
     ]
    }
   ],
   "source": [
    "def fidelity(uf, ut):\n",
    "    \"\"\"State fidelity between two pure states.\"\"\"\n",
    "\n",
    "    uf = np.asarray(uf).squeeze()\n",
    "    ut = ut.full().squeeze()\n",
    "\n",
    "    return np.abs(np.vdot(ut, uf)) ** 2\n",
    "\n",
    "\n",
    "fid_unopt = fidelity(ds[\"qstates\"].isel(time=-1), ut)\n",
    "fid_opt = fidelity(optds[\"qstates\"].isel(time=-1), ut)\n",
    "\n",
    "print(f\"Unoptimised: {100*fid_unopt:.6f} %\")\n",
    "print(f\"Optimised: {100*fid_opt:.6f} %\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "35",
   "metadata": {},
   "source": [
    "We can clearly see that our optimisation has significantly enhanced the fidelity!\n",
    "\n",
    "Congratulations, you’ve just performed optimal control on a spin qubit! You can now use these methods to start optimising your qubit performance."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": ".venv (3.11.15)",
   "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.11.16"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
