Skip to content

Instantly share code, notes, and snippets.

@MarcSkovMadsen
Last active December 21, 2023 18:46
Show Gist options
  • Save MarcSkovMadsen/48cae494f9df5d3cc301abd14d5e6bef to your computer and use it in GitHub Desktop.
Save MarcSkovMadsen/48cae494f9df5d3cc301abd14d5e6bef to your computer and use it in GitHub Desktop.
hvplot notebook with rendered output
Display the source blob
Display the rendered blob
Raw
{"cells":[{"cell_type":"markdown","metadata":{},"source":["# How do I include rendered hvPlot plots in notebooks on GitHub?\n","\n","Asked by [LinuxIsCool](https://discourse.holoviz.org/u/LinuxIsCool) in [Panel Discourse #5202](https://discourse.holoviz.org/t/render-hvplot-in-jupyter-notebooks-on-github-with-bokeh-backend/5202).\n","\n"]},{"cell_type":"code","execution_count":1,"metadata":{},"outputs":[{"data":{"application/javascript":"(function(root) {\n function now() {\n return new Date();\n }\n\n var force = true;\n var py_version = '3.3.2'.replace('rc', '-rc.').replace('.dev', '-dev.');\n var reloading = false;\n var Bokeh = root.Bokeh;\n\n if (typeof (root._bokeh_timeout) === \"undefined\" || force) {\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, 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 console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls.length === 0 && js_modules.length === 0 && Object.keys(js_exports).length === 0) {\n run_callbacks();\n return null;\n }\n if (!reloading) {\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\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() {\n console.error(\"failed to load \" + url);\n }\n\n var skip = [];\n if (window.requirejs) {\n window.requirejs.config({'packages': {}, 'paths': {'jspanel': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/jspanel', 'jspanel-modal': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/modal/jspanel.modal', 'jspanel-tooltip': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/tooltip/jspanel.tooltip', 'jspanel-hint': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/hint/jspanel.hint', 'jspanel-layout': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/layout/jspanel.layout', 'jspanel-contextmenu': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/contextmenu/jspanel.contextmenu', 'jspanel-dock': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/dock/jspanel.dock', 'gridstack': 'https://cdn.jsdelivr.net/npm/gridstack@7.2.3/dist/gridstack-all', 'notyf': 'https://cdn.jsdelivr.net/npm/notyf@3/notyf.min'}, 'shim': {'jspanel': {'exports': 'jsPanel'}, 'gridstack': {'exports': 'GridStack'}}});\n require([\"jspanel\"], function(jsPanel) {\n\twindow.jsPanel = jsPanel\n\ton_load()\n })\n require([\"jspanel-modal\"], function() {\n\ton_load()\n })\n require([\"jspanel-tooltip\"], function() {\n\ton_load()\n })\n require([\"jspanel-hint\"], function() {\n\ton_load()\n })\n require([\"jspanel-layout\"], function() {\n\ton_load()\n })\n require([\"jspanel-contextmenu\"], function() {\n\ton_load()\n })\n require([\"jspanel-dock\"], function() {\n\ton_load()\n })\n require([\"gridstack\"], function(GridStack) {\n\twindow.GridStack = GridStack\n\ton_load()\n })\n require([\"notyf\"], function() {\n\ton_load()\n })\n root._bokeh_is_loading = css_urls.length + 9;\n } else {\n root._bokeh_is_loading = css_urls.length + js_urls.length + js_modules.length + Object.keys(js_exports).length;\n }\n\n var existing_stylesheets = []\n var links = document.getElementsByTagName('link')\n for (var i = 0; i < links.length; i++) {\n var link = links[i]\n if (link.href != null) {\n\texisting_stylesheets.push(link.href)\n }\n }\n for (var i = 0; i < css_urls.length; i++) {\n var url = css_urls[i];\n if (existing_stylesheets.indexOf(url) !== -1) {\n\ton_load()\n\tcontinue;\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 } if (((window['jsPanel'] !== undefined) && (!(window['jsPanel'] instanceof HTMLElement))) || window.requirejs) {\n var urls = ['https://cdn.holoviz.org/panel/1.3.5/dist/bundled/floatpanel/jspanel4@4.12.0/dist/jspanel.js', 'https://cdn.holoviz.org/panel/1.3.5/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/modal/jspanel.modal.js', 'https://cdn.holoviz.org/panel/1.3.5/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/tooltip/jspanel.tooltip.js', 'https://cdn.holoviz.org/panel/1.3.5/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/hint/jspanel.hint.js', 'https://cdn.holoviz.org/panel/1.3.5/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/layout/jspanel.layout.js', 'https://cdn.holoviz.org/panel/1.3.5/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/contextmenu/jspanel.contextmenu.js', 'https://cdn.holoviz.org/panel/1.3.5/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/dock/jspanel.dock.js'];\n for (var i = 0; i < urls.length; i++) {\n skip.push(urls[i])\n }\n } if (((window['GridStack'] !== undefined) && (!(window['GridStack'] instanceof HTMLElement))) || window.requirejs) {\n var urls = ['https://cdn.holoviz.org/panel/1.3.5/dist/bundled/gridstack/gridstack@7.2.3/dist/gridstack-all.js'];\n for (var i = 0; i < urls.length; i++) {\n skip.push(urls[i])\n }\n } if (((window['Notyf'] !== undefined) && (!(window['Notyf'] instanceof HTMLElement))) || window.requirejs) {\n var urls = ['https://cdn.holoviz.org/panel/1.3.5/dist/bundled/notificationarea/notyf@3/notyf.min.js'];\n for (var i = 0; i < urls.length; i++) {\n skip.push(urls[i])\n }\n } var existing_scripts = []\n var scripts = document.getElementsByTagName('script')\n for (var i = 0; i < scripts.length; i++) {\n var script = scripts[i]\n if (script.src != null) {\n\texisting_scripts.push(script.src)\n }\n }\n for (var i = 0; i < js_urls.length; i++) {\n var url = js_urls[i];\n if (skip.indexOf(url) !== -1 || existing_scripts.indexOf(url) !== -1) {\n\tif (!window.requirejs) {\n\t on_load();\n\t}\n\tcontinue;\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 console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n for (var i = 0; i < js_modules.length; i++) {\n var url = js_modules[i];\n if (skip.indexOf(url) !== -1 || existing_scripts.indexOf(url) !== -1) {\n\tif (!window.requirejs) {\n\t on_load();\n\t}\n\tcontinue;\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 var url = js_exports[name];\n if (skip.indexOf(url) >= 0 || root[name] != null) {\n\tif (!window.requirejs) {\n\t on_load();\n\t}\n\tcontinue;\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 var js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.3.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.3.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.3.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.3.2.min.js\", \"https://cdn.holoviz.org/panel/1.3.5/dist/panel.min.js\"];\n var js_modules = [];\n var js_exports = {};\n var css_urls = [];\n var 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 (var i = 0; i < inline_js.length; i++) {\n\ttry {\n inline_js[i].call(root, root.Bokeh);\n\t} catch(e) {\n\t if (!reloading) {\n\t throw e;\n\t }\n\t}\n }\n // Cache old bokeh versions\n if (Bokeh != undefined && !reloading) {\n\tvar NewBokeh = root.Bokeh;\n\tif (Bokeh.versions === undefined) {\n\t Bokeh.versions = new Map();\n\t}\n\tif (NewBokeh.version !== Bokeh.version) {\n\t Bokeh.versions.set(NewBokeh.version, NewBokeh)\n\t}\n\troot.Bokeh = Bokeh;\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 root._bokeh_is_initializing = false;\n root._bokeh_onload_callbacks = undefined;\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 var bokeh_loaded = Bokeh != null && (Bokeh.version === py_version || (Bokeh.versions !== undefined && Bokeh.versions.has(py_version)));\n if (!reloading && !bokeh_loaded) {\n\troot.Bokeh = undefined;\n }\n load_libs(css_urls, js_urls, js_modules, js_exports, function() {\n\tconsole.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n\trun_inline_js();\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":""},"metadata":{},"output_type":"display_data"},{"data":{"application/javascript":"\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 console.log(message)\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 comm.open();\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","application/vnd.holoviews_load.v0+json":""},"metadata":{},"output_type":"display_data"},{"data":{"text/html":["<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/vnd.holoviews_exec.v0+json":"","text/html":["<div id='p1002'>\n"," <div id=\"d3563d37-59d4-40af-94d1-d129d8d8c088\" data-root-id=\"p1002\" style=\"display: contents;\"></div>\n","</div>\n","<script type=\"application/javascript\">(function(root) {\n"," var docs_json = {\"ac57b58d-de21-40ab-a4a9-f0e4b818a1ab\":{\"version\":\"3.3.2\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"panel.models.browser.BrowserInfo\",\"id\":\"p1002\"},{\"type\":\"object\",\"name\":\"panel.models.comm_manager.CommManager\",\"id\":\"p1003\",\"attributes\":{\"plot_id\":\"p1002\",\"comm_id\":\"cca3aa0245f049049e6307a8e4699183\",\"client_comm_id\":\"3d2475dee82f4a1488a815b491f24bbb\"}}],\"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\":\"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\":\"mode\",\"kind\":\"Any\",\"default\":\"warn\"},{\"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\":\"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\":\"copy_to_clipboard1\",\"properties\":[{\"name\":\"fill\",\"kind\":\"Any\",\"default\":\"none\"},{\"name\":\"value\",\"kind\":\"Any\",\"default\":null}]},{\"type\":\"model\",\"name\":\"FastWrapper1\",\"properties\":[{\"name\":\"object\",\"kind\":\"Any\",\"default\":null},{\"name\":\"style\",\"kind\":\"Any\",\"default\":null}]},{\"type\":\"model\",\"name\":\"NotificationAreaBase1\",\"properties\":[{\"name\":\"js_events\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}},{\"name\":\"position\",\"kind\":\"Any\",\"default\":\"bottom-right\"},{\"name\":\"_clear\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"NotificationArea1\",\"properties\":[{\"name\":\"js_events\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}},{\"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\":\"_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\":\"MaterialTemplateActions1\",\"properties\":[{\"name\":\"open_modal\",\"kind\":\"Any\",\"default\":0},{\"name\":\"close_modal\",\"kind\":\"Any\",\"default\":0}]}]}};\n"," var render_items = [{\"docid\":\"ac57b58d-de21-40ab-a4a9-f0e4b818a1ab\",\"roots\":{\"p1002\":\"d3563d37-59d4-40af-94d1-d129d8d8c088\"},\"root_ids\":[\"p1002\"]}];\n"," var docs = Object.values(docs_json)\n"," if (!docs) {\n"," return\n"," }\n"," const py_version = docs[0].version.replace('rc', '-rc.').replace('.dev', '-dev.')\n"," function embed_document(root) {\n"," var Bokeh = get_bokeh(root)\n"," 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].className === 'bk-root')) {\n","\t const root_el = id_el.children[0]\n","\t root_el.id = root_el.id + '-rendered'\n","\t}\n"," }\n"," }\n"," }\n"," function get_bokeh(root) {\n"," if (root.Bokeh === undefined) {\n"," return null\n"," } else if (root.Bokeh.version !== py_version) {\n"," if (root.Bokeh.versions === undefined || !root.Bokeh.versions.has(py_version)) {\n","\treturn null\n"," }\n"," return root.Bokeh.versions.get(py_version);\n"," } else if (root.Bokeh.version === py_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":"p1002"}},"output_type":"display_data"}],"source":["import numpy as np\n","import pandas as pd\n","import hvplot.pandas\n","import holoviews as hv\n","\n","index = pd.date_range('1/1/2000', periods=1000)\n","df = pd.DataFrame(np.random.randn(1000, 4), index=index, columns=list('ABCD')).cumsum()\n","\n","plot = df.hvplot()"]},{"cell_type":"code","execution_count":2,"metadata":{},"outputs":[{"data":{"application/javascript":"(function(root) {\n function now() {\n return new Date();\n }\n\n var force = true;\n var py_version = '3.3.2'.replace('rc', '-rc.').replace('.dev', '-dev.');\n var reloading = false;\n var Bokeh = root.Bokeh;\n\n if (typeof (root._bokeh_timeout) === \"undefined\" || force) {\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, 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 console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls.length === 0 && js_modules.length === 0 && Object.keys(js_exports).length === 0) {\n run_callbacks();\n return null;\n }\n if (!reloading) {\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\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() {\n console.error(\"failed to load \" + url);\n }\n\n var skip = [];\n if (window.requirejs) {\n window.requirejs.config({'packages': {}, 'paths': {'jspanel': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/jspanel', 'jspanel-modal': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/modal/jspanel.modal', 'jspanel-tooltip': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/tooltip/jspanel.tooltip', 'jspanel-hint': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/hint/jspanel.hint', 'jspanel-layout': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/layout/jspanel.layout', 'jspanel-contextmenu': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/contextmenu/jspanel.contextmenu', 'jspanel-dock': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/dock/jspanel.dock', 'gridstack': 'https://cdn.jsdelivr.net/npm/gridstack@7.2.3/dist/gridstack-all', 'notyf': 'https://cdn.jsdelivr.net/npm/notyf@3/notyf.min'}, 'shim': {'jspanel': {'exports': 'jsPanel'}, 'gridstack': {'exports': 'GridStack'}}});\n require([\"jspanel\"], function(jsPanel) {\n\twindow.jsPanel = jsPanel\n\ton_load()\n })\n require([\"jspanel-modal\"], function() {\n\ton_load()\n })\n require([\"jspanel-tooltip\"], function() {\n\ton_load()\n })\n require([\"jspanel-hint\"], function() {\n\ton_load()\n })\n require([\"jspanel-layout\"], function() {\n\ton_load()\n })\n require([\"jspanel-contextmenu\"], function() {\n\ton_load()\n })\n require([\"jspanel-dock\"], function() {\n\ton_load()\n })\n require([\"gridstack\"], function(GridStack) {\n\twindow.GridStack = GridStack\n\ton_load()\n })\n require([\"notyf\"], function() {\n\ton_load()\n })\n root._bokeh_is_loading = css_urls.length + 9;\n } else {\n root._bokeh_is_loading = css_urls.length + js_urls.length + js_modules.length + Object.keys(js_exports).length;\n }\n\n var existing_stylesheets = []\n var links = document.getElementsByTagName('link')\n for (var i = 0; i < links.length; i++) {\n var link = links[i]\n if (link.href != null) {\n\texisting_stylesheets.push(link.href)\n }\n }\n for (var i = 0; i < css_urls.length; i++) {\n var url = css_urls[i];\n if (existing_stylesheets.indexOf(url) !== -1) {\n\ton_load()\n\tcontinue;\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 } if (((window['jsPanel'] !== undefined) && (!(window['jsPanel'] instanceof HTMLElement))) || window.requirejs) {\n var urls = ['https://cdn.holoviz.org/panel/1.3.5/dist/bundled/floatpanel/jspanel4@4.12.0/dist/jspanel.js', 'https://cdn.holoviz.org/panel/1.3.5/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/modal/jspanel.modal.js', 'https://cdn.holoviz.org/panel/1.3.5/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/tooltip/jspanel.tooltip.js', 'https://cdn.holoviz.org/panel/1.3.5/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/hint/jspanel.hint.js', 'https://cdn.holoviz.org/panel/1.3.5/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/layout/jspanel.layout.js', 'https://cdn.holoviz.org/panel/1.3.5/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/contextmenu/jspanel.contextmenu.js', 'https://cdn.holoviz.org/panel/1.3.5/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/dock/jspanel.dock.js'];\n for (var i = 0; i < urls.length; i++) {\n skip.push(urls[i])\n }\n } if (((window['GridStack'] !== undefined) && (!(window['GridStack'] instanceof HTMLElement))) || window.requirejs) {\n var urls = ['https://cdn.holoviz.org/panel/1.3.5/dist/bundled/gridstack/gridstack@7.2.3/dist/gridstack-all.js'];\n for (var i = 0; i < urls.length; i++) {\n skip.push(urls[i])\n }\n } if (((window['Notyf'] !== undefined) && (!(window['Notyf'] instanceof HTMLElement))) || window.requirejs) {\n var urls = ['https://cdn.holoviz.org/panel/1.3.5/dist/bundled/notificationarea/notyf@3/notyf.min.js'];\n for (var i = 0; i < urls.length; i++) {\n skip.push(urls[i])\n }\n } var existing_scripts = []\n var scripts = document.getElementsByTagName('script')\n for (var i = 0; i < scripts.length; i++) {\n var script = scripts[i]\n if (script.src != null) {\n\texisting_scripts.push(script.src)\n }\n }\n for (var i = 0; i < js_urls.length; i++) {\n var url = js_urls[i];\n if (skip.indexOf(url) !== -1 || existing_scripts.indexOf(url) !== -1) {\n\tif (!window.requirejs) {\n\t on_load();\n\t}\n\tcontinue;\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 console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n for (var i = 0; i < js_modules.length; i++) {\n var url = js_modules[i];\n if (skip.indexOf(url) !== -1 || existing_scripts.indexOf(url) !== -1) {\n\tif (!window.requirejs) {\n\t on_load();\n\t}\n\tcontinue;\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 var url = js_exports[name];\n if (skip.indexOf(url) >= 0 || root[name] != null) {\n\tif (!window.requirejs) {\n\t on_load();\n\t}\n\tcontinue;\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 var js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.3.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.3.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.3.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.3.2.min.js\", \"https://cdn.holoviz.org/panel/1.3.5/dist/panel.min.js\"];\n var js_modules = [];\n var js_exports = {};\n var css_urls = [];\n var 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 (var i = 0; i < inline_js.length; i++) {\n\ttry {\n inline_js[i].call(root, root.Bokeh);\n\t} catch(e) {\n\t if (!reloading) {\n\t throw e;\n\t }\n\t}\n }\n // Cache old bokeh versions\n if (Bokeh != undefined && !reloading) {\n\tvar NewBokeh = root.Bokeh;\n\tif (Bokeh.versions === undefined) {\n\t Bokeh.versions = new Map();\n\t}\n\tif (NewBokeh.version !== Bokeh.version) {\n\t Bokeh.versions.set(NewBokeh.version, NewBokeh)\n\t}\n\troot.Bokeh = Bokeh;\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 root._bokeh_is_initializing = false;\n root._bokeh_onload_callbacks = undefined;\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 var bokeh_loaded = Bokeh != null && (Bokeh.version === py_version || (Bokeh.versions !== undefined && Bokeh.versions.has(py_version)));\n if (!reloading && !bokeh_loaded) {\n\troot.Bokeh = undefined;\n }\n load_libs(css_urls, js_urls, js_modules, js_exports, function() {\n\tconsole.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n\trun_inline_js();\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":""},"metadata":{},"output_type":"display_data"},{"data":{"application/javascript":"\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 console.log(message)\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 comm.open();\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","application/vnd.holoviews_load.v0+json":""},"metadata":{},"output_type":"display_data"},{"data":{"text/html":["<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/vnd.holoviews_exec.v0+json":"","text/html":["<div id='p1004'>\n"," <div id=\"cda023eb-031d-44db-b3ff-999a728b349a\" data-root-id=\"p1004\" style=\"display: contents;\"></div>\n","</div>\n","<script type=\"application/javascript\">(function(root) {\n"," var docs_json = {\"9a5be8a9-eae3-4f17-858a-8192941af32d\":{\"version\":\"3.3.2\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"panel.models.browser.BrowserInfo\",\"id\":\"p1004\"},{\"type\":\"object\",\"name\":\"panel.models.comm_manager.CommManager\",\"id\":\"p1005\",\"attributes\":{\"plot_id\":\"p1004\",\"comm_id\":\"262bab835f72418c9358b3d19b95d410\",\"client_comm_id\":\"08df2cfe2f2540afad9064d22f876789\"}}],\"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\":\"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\":\"mode\",\"kind\":\"Any\",\"default\":\"warn\"},{\"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\":\"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\":\"copy_to_clipboard1\",\"properties\":[{\"name\":\"fill\",\"kind\":\"Any\",\"default\":\"none\"},{\"name\":\"value\",\"kind\":\"Any\",\"default\":null}]},{\"type\":\"model\",\"name\":\"FastWrapper1\",\"properties\":[{\"name\":\"object\",\"kind\":\"Any\",\"default\":null},{\"name\":\"style\",\"kind\":\"Any\",\"default\":null}]},{\"type\":\"model\",\"name\":\"NotificationAreaBase1\",\"properties\":[{\"name\":\"js_events\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}},{\"name\":\"position\",\"kind\":\"Any\",\"default\":\"bottom-right\"},{\"name\":\"_clear\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"NotificationArea1\",\"properties\":[{\"name\":\"js_events\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}},{\"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\":\"_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\":\"MaterialTemplateActions1\",\"properties\":[{\"name\":\"open_modal\",\"kind\":\"Any\",\"default\":0},{\"name\":\"close_modal\",\"kind\":\"Any\",\"default\":0}]}]}};\n"," var render_items = [{\"docid\":\"9a5be8a9-eae3-4f17-858a-8192941af32d\",\"roots\":{\"p1004\":\"cda023eb-031d-44db-b3ff-999a728b349a\"},\"root_ids\":[\"p1004\"]}];\n"," var docs = Object.values(docs_json)\n"," if (!docs) {\n"," return\n"," }\n"," const py_version = docs[0].version.replace('rc', '-rc.').replace('.dev', '-dev.')\n"," function embed_document(root) {\n"," var Bokeh = get_bokeh(root)\n"," 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].className === 'bk-root')) {\n","\t const root_el = id_el.children[0]\n","\t root_el.id = root_el.id + '-rendered'\n","\t}\n"," }\n"," }\n"," }\n"," function get_bokeh(root) {\n"," if (root.Bokeh === undefined) {\n"," return null\n"," } else if (root.Bokeh.version !== py_version) {\n"," if (root.Bokeh.versions === undefined || !root.Bokeh.versions.has(py_version)) {\n","\treturn null\n"," }\n"," return root.Bokeh.versions.get(py_version);\n"," } else if (root.Bokeh.version === py_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":"p1004"}},"output_type":"display_data"},{"data":{"text/html":["<img src='data:image/png;base64,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' style='max-width:100%; margin: auto; display: block; '/>"],"text/plain":[":NdOverlay [Variable]\n"," :Curve [index] (value)"]},"execution_count":2,"metadata":{"application/vnd.holoviews_exec.v0+json":{}},"output_type":"execute_result"}],"source":["hvplot.extension(\"matplotlib\")\n","\n","plot"]},{"cell_type":"code","execution_count":3,"metadata":{},"outputs":[{"data":{"application/javascript":"(function(root) {\n function now() {\n return new Date();\n }\n\n var force = true;\n var py_version = '3.3.2'.replace('rc', '-rc.').replace('.dev', '-dev.');\n var reloading = false;\n var Bokeh = root.Bokeh;\n\n if (typeof (root._bokeh_timeout) === \"undefined\" || force) {\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, 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 console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls.length === 0 && js_modules.length === 0 && Object.keys(js_exports).length === 0) {\n run_callbacks();\n return null;\n }\n if (!reloading) {\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\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() {\n console.error(\"failed to load \" + url);\n }\n\n var skip = [];\n if (window.requirejs) {\n window.requirejs.config({'packages': {}, 'paths': {'plotly': 'https://cdn.plot.ly/plotly-2.18.0.min', 'jspanel': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/jspanel', 'jspanel-modal': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/modal/jspanel.modal', 'jspanel-tooltip': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/tooltip/jspanel.tooltip', 'jspanel-hint': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/hint/jspanel.hint', 'jspanel-layout': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/layout/jspanel.layout', 'jspanel-contextmenu': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/contextmenu/jspanel.contextmenu', 'jspanel-dock': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/dock/jspanel.dock', 'gridstack': 'https://cdn.jsdelivr.net/npm/gridstack@7.2.3/dist/gridstack-all', 'notyf': 'https://cdn.jsdelivr.net/npm/notyf@3/notyf.min'}, 'shim': {'jspanel': {'exports': 'jsPanel'}, 'gridstack': {'exports': 'GridStack'}}});\n require([\"plotly\"], function(Plotly) {\n\twindow.Plotly = Plotly\n\ton_load()\n })\n require([\"jspanel\"], function(jsPanel) {\n\twindow.jsPanel = jsPanel\n\ton_load()\n })\n require([\"jspanel-modal\"], function() {\n\ton_load()\n })\n require([\"jspanel-tooltip\"], function() {\n\ton_load()\n })\n require([\"jspanel-hint\"], function() {\n\ton_load()\n })\n require([\"jspanel-layout\"], function() {\n\ton_load()\n })\n require([\"jspanel-contextmenu\"], function() {\n\ton_load()\n })\n require([\"jspanel-dock\"], function() {\n\ton_load()\n })\n require([\"gridstack\"], function(GridStack) {\n\twindow.GridStack = GridStack\n\ton_load()\n })\n require([\"notyf\"], function() {\n\ton_load()\n })\n root._bokeh_is_loading = css_urls.length + 10;\n } else {\n root._bokeh_is_loading = css_urls.length + js_urls.length + js_modules.length + Object.keys(js_exports).length;\n }\n\n var existing_stylesheets = []\n var links = document.getElementsByTagName('link')\n for (var i = 0; i < links.length; i++) {\n var link = links[i]\n if (link.href != null) {\n\texisting_stylesheets.push(link.href)\n }\n }\n for (var i = 0; i < css_urls.length; i++) {\n var url = css_urls[i];\n if (existing_stylesheets.indexOf(url) !== -1) {\n\ton_load()\n\tcontinue;\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 } if (((window['Plotly'] !== undefined) && (!(window['Plotly'] instanceof HTMLElement))) || window.requirejs) {\n var urls = ['https://cdn.holoviz.org/panel/1.3.5/dist/bundled/plotlyplot/plotly-2.18.0.min.js'];\n for (var i = 0; i < urls.length; i++) {\n skip.push(urls[i])\n }\n } if (((window['jsPanel'] !== undefined) && (!(window['jsPanel'] instanceof HTMLElement))) || window.requirejs) {\n var urls = ['https://cdn.holoviz.org/panel/1.3.5/dist/bundled/floatpanel/jspanel4@4.12.0/dist/jspanel.js', 'https://cdn.holoviz.org/panel/1.3.5/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/modal/jspanel.modal.js', 'https://cdn.holoviz.org/panel/1.3.5/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/tooltip/jspanel.tooltip.js', 'https://cdn.holoviz.org/panel/1.3.5/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/hint/jspanel.hint.js', 'https://cdn.holoviz.org/panel/1.3.5/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/layout/jspanel.layout.js', 'https://cdn.holoviz.org/panel/1.3.5/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/contextmenu/jspanel.contextmenu.js', 'https://cdn.holoviz.org/panel/1.3.5/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/dock/jspanel.dock.js'];\n for (var i = 0; i < urls.length; i++) {\n skip.push(urls[i])\n }\n } if (((window['GridStack'] !== undefined) && (!(window['GridStack'] instanceof HTMLElement))) || window.requirejs) {\n var urls = ['https://cdn.holoviz.org/panel/1.3.5/dist/bundled/gridstack/gridstack@7.2.3/dist/gridstack-all.js'];\n for (var i = 0; i < urls.length; i++) {\n skip.push(urls[i])\n }\n } if (((window['Notyf'] !== undefined) && (!(window['Notyf'] instanceof HTMLElement))) || window.requirejs) {\n var urls = ['https://cdn.holoviz.org/panel/1.3.5/dist/bundled/notificationarea/notyf@3/notyf.min.js'];\n for (var i = 0; i < urls.length; i++) {\n skip.push(urls[i])\n }\n } var existing_scripts = []\n var scripts = document.getElementsByTagName('script')\n for (var i = 0; i < scripts.length; i++) {\n var script = scripts[i]\n if (script.src != null) {\n\texisting_scripts.push(script.src)\n }\n }\n for (var i = 0; i < js_urls.length; i++) {\n var url = js_urls[i];\n if (skip.indexOf(url) !== -1 || existing_scripts.indexOf(url) !== -1) {\n\tif (!window.requirejs) {\n\t on_load();\n\t}\n\tcontinue;\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 console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n for (var i = 0; i < js_modules.length; i++) {\n var url = js_modules[i];\n if (skip.indexOf(url) !== -1 || existing_scripts.indexOf(url) !== -1) {\n\tif (!window.requirejs) {\n\t on_load();\n\t}\n\tcontinue;\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 var url = js_exports[name];\n if (skip.indexOf(url) >= 0 || root[name] != null) {\n\tif (!window.requirejs) {\n\t on_load();\n\t}\n\tcontinue;\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 var js_urls = [\"https://cdn.holoviz.org/panel/1.3.5/dist/bundled/jquery/jquery.slim.min.js\", \"https://cdn.holoviz.org/panel/1.3.5/dist/bundled/plotlyplot/plotly-2.18.0.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-3.3.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.3.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.3.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.3.2.min.js\", \"https://cdn.holoviz.org/panel/1.3.5/dist/panel.min.js\"];\n var js_modules = [];\n var js_exports = {};\n var css_urls = [];\n var 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 (var i = 0; i < inline_js.length; i++) {\n\ttry {\n inline_js[i].call(root, root.Bokeh);\n\t} catch(e) {\n\t if (!reloading) {\n\t throw e;\n\t }\n\t}\n }\n // Cache old bokeh versions\n if (Bokeh != undefined && !reloading) {\n\tvar NewBokeh = root.Bokeh;\n\tif (Bokeh.versions === undefined) {\n\t Bokeh.versions = new Map();\n\t}\n\tif (NewBokeh.version !== Bokeh.version) {\n\t Bokeh.versions.set(NewBokeh.version, NewBokeh)\n\t}\n\troot.Bokeh = Bokeh;\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 root._bokeh_is_initializing = false;\n root._bokeh_onload_callbacks = undefined;\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 var bokeh_loaded = Bokeh != null && (Bokeh.version === py_version || (Bokeh.versions !== undefined && Bokeh.versions.has(py_version)));\n if (!reloading && !bokeh_loaded) {\n\troot.Bokeh = undefined;\n }\n load_libs(css_urls, js_urls, js_modules, js_exports, function() {\n\tconsole.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n\trun_inline_js();\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":""},"metadata":{},"output_type":"display_data"},{"data":{"application/javascript":"\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 console.log(message)\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 comm.open();\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","application/vnd.holoviews_load.v0+json":""},"metadata":{},"output_type":"display_data"},{"data":{"text/html":["<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/vnd.holoviews_exec.v0+json":"","text/html":["<div id='p1006'>\n"," <div id=\"b676aa02-cc88-408a-a6c3-b23e13ad6ea0\" data-root-id=\"p1006\" style=\"display: contents;\"></div>\n","</div>\n","<script type=\"application/javascript\">(function(root) {\n"," var docs_json = {\"b27ac0fc-6a57-485f-868e-77002eb38082\":{\"version\":\"3.3.2\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"panel.models.browser.BrowserInfo\",\"id\":\"p1006\"},{\"type\":\"object\",\"name\":\"panel.models.comm_manager.CommManager\",\"id\":\"p1007\",\"attributes\":{\"plot_id\":\"p1006\",\"comm_id\":\"80ab3b6592194ae083f76a999e74da6a\",\"client_comm_id\":\"d3ed2ea50c4545f3b93741cc593f4b94\"}}],\"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\":\"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\":\"mode\",\"kind\":\"Any\",\"default\":\"warn\"},{\"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\":\"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\":\"copy_to_clipboard1\",\"properties\":[{\"name\":\"fill\",\"kind\":\"Any\",\"default\":\"none\"},{\"name\":\"value\",\"kind\":\"Any\",\"default\":null}]},{\"type\":\"model\",\"name\":\"FastWrapper1\",\"properties\":[{\"name\":\"object\",\"kind\":\"Any\",\"default\":null},{\"name\":\"style\",\"kind\":\"Any\",\"default\":null}]},{\"type\":\"model\",\"name\":\"NotificationAreaBase1\",\"properties\":[{\"name\":\"js_events\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}},{\"name\":\"position\",\"kind\":\"Any\",\"default\":\"bottom-right\"},{\"name\":\"_clear\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"NotificationArea1\",\"properties\":[{\"name\":\"js_events\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}},{\"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\":\"_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\":\"MaterialTemplateActions1\",\"properties\":[{\"name\":\"open_modal\",\"kind\":\"Any\",\"default\":0},{\"name\":\"close_modal\",\"kind\":\"Any\",\"default\":0}]}]}};\n"," var render_items = [{\"docid\":\"b27ac0fc-6a57-485f-868e-77002eb38082\",\"roots\":{\"p1006\":\"b676aa02-cc88-408a-a6c3-b23e13ad6ea0\"},\"root_ids\":[\"p1006\"]}];\n"," var docs = Object.values(docs_json)\n"," if (!docs) {\n"," return\n"," }\n"," const py_version = docs[0].version.replace('rc', '-rc.').replace('.dev', '-dev.')\n"," function embed_document(root) {\n"," var Bokeh = get_bokeh(root)\n"," 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].className === 'bk-root')) {\n","\t const root_el = id_el.children[0]\n","\t root_el.id = root_el.id + '-rendered'\n","\t}\n"," }\n"," }\n"," }\n"," function get_bokeh(root) {\n"," if (root.Bokeh === undefined) {\n"," return null\n"," } else if (root.Bokeh.version !== py_version) {\n"," if (root.Bokeh.versions === undefined || !root.Bokeh.versions.has(py_version)) {\n","\treturn null\n"," }\n"," return root.Bokeh.versions.get(py_version);\n"," } else if (root.Bokeh.version === py_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 && ( root['Plotly'] !== 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":"p1006"}},"output_type":"display_data"},{"data":{"image/svg+xml":["<svg class=\"main-svg\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"400\" height=\"400\" style=\"\" viewBox=\"0 0 400 400\"><rect x=\"0\" y=\"0\" width=\"400\" height=\"400\" style=\"fill: rgb(255, 255, 255); fill-opacity: 1;\"/><defs id=\"defs-e1189d\"><g class=\"clips\"><clipPath id=\"clipe1189dxyplot\" class=\"plotclip\"><rect width=\"300\" height=\"300\"/></clipPath><clipPath class=\"axesclip\" id=\"clipe1189dx\"><rect x=\"50\" y=\"0\" width=\"300\" height=\"400\"/></clipPath><clipPath class=\"axesclip\" id=\"clipe1189dy\"><rect x=\"0\" y=\"50\" width=\"400\" height=\"300\"/></clipPath><clipPath class=\"axesclip\" id=\"clipe1189dxy\"><rect x=\"50\" y=\"50\" width=\"300\" height=\"300\"/></clipPath></g><g class=\"gradients\"/><g class=\"patterns\"/></defs><g class=\"bglayer\"><rect class=\"bg\" x=\"46\" y=\"46\" width=\"308\" height=\"308\" style=\"fill: rgb(229, 236, 246); fill-opacity: 1; stroke-width: 0;\"/></g><g class=\"layer-below\"><g class=\"imagelayer\"/><g class=\"shapelayer\"/></g><g class=\"cartesianlayer\"><g class=\"subplot xy\"><g class=\"layer-subplot\"><g class=\"shapelayer\"/><g class=\"imagelayer\"/></g><g class=\"minor-gridlayer\"><g class=\"x\"/><g class=\"y\"/></g><g class=\"gridlayer\"><g class=\"x\"><path class=\"xgrid crisp\" transform=\"translate(159.91,0)\" d=\"M0,50v300\" style=\"stroke: rgb(255, 255, 255); stroke-opacity: 1; stroke-width: 1px;\"/><path class=\"xgrid crisp\" transform=\"translate(269.52,0)\" d=\"M0,50v300\" style=\"stroke: rgb(255, 255, 255); stroke-opacity: 1; stroke-width: 1px;\"/></g><g class=\"y\"><path class=\"ygrid crisp\" transform=\"translate(0,310.65)\" d=\"M50,0h300\" style=\"stroke: rgb(255, 255, 255); stroke-opacity: 1; stroke-width: 1px;\"/><path class=\"ygrid crisp\" transform=\"translate(0,260.59000000000003)\" d=\"M50,0h300\" style=\"stroke: rgb(255, 255, 255); stroke-opacity: 1; stroke-width: 1px;\"/><path class=\"ygrid crisp\" transform=\"translate(0,160.47)\" d=\"M50,0h300\" style=\"stroke: rgb(255, 255, 255); stroke-opacity: 1; stroke-width: 1px;\"/><path class=\"ygrid crisp\" transform=\"translate(0,110.41)\" d=\"M50,0h300\" style=\"stroke: rgb(255, 255, 255); stroke-opacity: 1; stroke-width: 1px;\"/><path class=\"ygrid crisp\" transform=\"translate(0,60.35)\" d=\"M50,0h300\" style=\"stroke: rgb(255, 255, 255); stroke-opacity: 1; stroke-width: 1px;\"/></g></g><g class=\"zerolinelayer\"><path class=\"yzl zl crisp\" transform=\"translate(0,210.53)\" d=\"M50,0h300\" style=\"stroke: rgb(255, 255, 255); stroke-opacity: 1; stroke-width: 2px;\"/></g><path class=\"xlines-below\"/><path class=\"ylines-below\"/><g class=\"overlines-below\"/><g class=\"xaxislayer-below\"/><g class=\"yaxislayer-below\"/><g class=\"overaxes-below\"/><g class=\"plot\" transform=\"translate(50,50)\" clip-path=\"url(#clipe1189dxyplot)\"><g class=\"scatterlayer mlayer\"><g class=\"trace scatter traced84ed1b0-a7c5-430c-9f06-eedc1a8cbd09\" style=\"stroke-miterlimit: 2; opacity: 1;\"><g class=\"fills\"/><g class=\"errorbars\"/><g class=\"lines\"><path class=\"js-line\" d=\"M0,160.37L0.9,150.25L1.5,150.99L1.8,151.97L2.1,152.66L2.4,147.97L2.7,149.63L3,149.15L3.3,148.64L3.6,149.96L3.9,146.97L4.5,143.78L4.8,143.93L5.11,138.07L5.71,136.57L6.01,138.62L6.31,137.16L6.61,142.35L7.81,149.47L8.11,146.42L8.41,148.05L9.01,147.18L9.31,146.23L9.91,147.67L10.21,153.1L10.81,156.26L11.11,151.53L11.41,151.02L11.71,151.21L12.01,152.1L12.91,145.32L13.21,145.81L13.51,146.48L13.81,151.82L15.02,148.46L15.32,149.74L16.22,152.18L16.52,150.46L17.42,143.33L17.72,146.31L18.02,149.21L18.32,148.54L18.62,147.07L18.92,147.53L19.22,149.5L20.42,164.12L21.02,163.02L21.32,164.38L21.92,168.76L22.22,166.92L22.52,165.94L22.82,170.05L23.12,169.91L23.42,166.4L24.32,161.33L24.62,158.78L25.83,154.2L26.13,154.62L26.43,150.25L26.73,152.35L27.03,153.99L27.33,153.52L27.63,155.41L28.53,154.44L28.83,154.13L29.73,158.48L30.03,164.03L30.93,165.53L31.23,164.31L31.83,167.79L32.13,163.42L32.43,155.12L33.03,157.44L33.33,160.59L33.93,156.02L34.23,159.09L34.53,163.13L34.83,158.73L35.14,157.36L35.44,158.24L35.74,155.19L36.34,151.43L36.64,156.89L37.24,154.14L37.54,154.84L37.84,157.12L38.44,153.44L38.74,156.42L40.54,148.65L40.84,148.68L41.14,148.35L41.44,149.51L41.74,150.72L42.04,148.13L42.34,153.4L42.64,143.69L42.94,144.18L43.24,147.39L43.54,144.42L43.84,151.66L44.44,153.31L44.74,152.15L45.05,150.42L45.35,147.16L45.65,149.48L45.95,151L48.35,165.28L48.65,160.1L48.95,162.36L49.25,160.52L49.55,159.8L49.85,157.99L50.15,161.84L50.75,159.56L51.05,161.97L51.95,172.27L52.25,169.12L52.55,167.78L53.15,165.27L53.45,169.21L53.75,170.26L54.05,174.96L54.35,176.78L54.65,171.41L54.95,173.2L55.26,171.54L55.56,169.11L55.86,171.05L56.16,170.49L56.46,169.93L57.36,175.04L57.66,173.5L58.86,163.53L59.16,165.69L59.46,165.29L60.96,178.35L61.26,183.31L62.16,190.25L62.46,188.96L63.36,179.27L63.66,180.35L63.96,180.19L64.26,175.5L64.86,176.48L65.17,178.86L66.67,167.56L66.97,169.12L67.27,170.6L67.87,170.3L68.17,164.79L68.77,162.12L69.07,164.97L69.37,165.4L69.67,163.18L71.47,152.12L71.77,153.41L72.67,149.03L72.97,155.13L74.17,151.11L74.47,144.8L76.58,132.18L76.88,129.95L77.48,131.28L77.78,130.02L78.08,131.68L78.38,129L78.68,131.78L79.28,130.55L79.58,128.12L80.18,124.07L80.48,125.4L80.78,125.95L81.38,133.12L81.68,132.44L81.98,131.81L82.58,138.34L82.88,136.17L83.18,135.24L84.38,129.33L84.68,131.24L84.98,127.94L85.29,129.59L85.59,131.19L85.89,131.15L86.19,130.3L86.49,128.4L86.79,130.39L87.09,131.49L87.39,135.21L87.69,134.25L87.99,129.5L88.29,125.03L88.59,128.44L88.89,131.25L89.19,131.64L89.49,130.9L89.79,128.45L90.39,129.38L90.69,126.36L92.49,134.42L92.79,132.87L93.39,137.41L93.69,134.19L94.89,137.41L95.2,137.63L96.1,144.47L96.4,142.17L96.7,141.21L97.6,134.89L97.9,135.38L98.2,128.65L98.5,128.71L98.8,131.41L99.1,129.77L99.4,132.41L99.7,136.23L100,132.65L100.3,129.89L100.6,125.27L100.9,127.6L101.2,128.54L101.5,128.75L101.8,126.76L102.4,129.45L102.7,124.94L103.6,129.41L103.9,127.64L104.5,121.36L104.8,123.53L105.11,124.3L105.41,125.19L105.71,123.93L106.01,119.6L106.31,116.02L106.91,117.34L107.21,116.46L109.31,101.85L109.61,101.29L110.21,100.98L110.51,103.63L110.81,102.29L111.11,105.4L111.41,102.06L111.71,101.86L112.31,98.41L112.61,99.43L112.91,101.83L113.21,105.15L113.51,99L114.11,96.08L114.41,98.49L115.02,96.61L115.32,97.16L115.62,98.49L116.22,95.98L116.52,92.85L116.82,92.92L117.12,94.02L117.42,94.77L117.72,93.17L118.62,83.89L118.92,86.34L119.52,93.14L119.82,91.46L120.12,88.07L120.42,90.5L120.72,87.31L121.02,85.01L121.32,90.16L121.62,86.59L121.92,87.2L122.22,88.97L122.52,87.05L122.82,87.05L123.12,86.28L123.42,86.45L123.72,90.7L124.02,90.45L124.32,91.96L125.53,103.05L125.83,99.11L126.13,98.56L126.43,100.77L126.73,99.78L127.03,102.08L127.63,97.17L127.93,99.47L128.23,98.93L129.43,105.46L129.73,97.88L130.03,99.03L130.33,95.86L130.63,95.02L130.93,99.34L131.53,94.13L131.83,95.67L132.13,97.41L133.63,105.63L133.93,102.15L134.53,104.61L134.83,104.29L135.14,102.41L135.74,106.88L136.04,104.2L136.34,103.09L136.64,98.79L137.54,97.15L137.84,95.04L138.74,88.66L139.04,90.61L139.34,90.32L139.94,92.28L140.24,89.34L140.54,83.31L141.14,83.91L141.44,83.04L141.74,87.75L142.34,87.32L142.64,89.16L143.24,85.95L143.54,86.87L143.84,88.98L144.14,88.62L144.44,85.56L145.05,79.31L145.35,83.51L145.65,84.41L145.95,84.13L146.25,90.61L147.45,93.33L147.75,93.24L148.05,96.01L148.65,95.48L148.95,93.45L149.25,94.31L149.55,92.89L149.85,92L150.15,93.3L150.45,89.79L150.75,89.37L151.05,86.64L151.35,86.33L151.65,88.96L152.25,86.83L152.55,88.55L153.45,82.24L153.75,86.49L154.05,87.15L154.35,89.64L155.26,85.7L155.56,84.21L156.76,94.31L157.06,94.13L157.36,91.96L157.66,93.73L157.96,97.08L158.56,91.07L158.86,93.13L159.16,93.84L159.46,93.69L159.76,92.21L160.06,89.86L160.36,92.98L160.66,96.02L160.96,94.67L161.26,97.3L161.56,97.12L161.86,99.47L162.46,95.42L162.76,97.23L163.06,96.11L163.36,97.67L163.66,97.76L165.77,112.29L166.07,110.49L166.37,107.62L166.67,103.92L166.97,105.19L167.27,107.08L167.57,107.01L167.87,111.04L168.17,111.06L168.47,106.46L169.67,114.96L169.97,113.16L170.27,110.92L171.47,104.14L171.77,105.47L172.97,117.51L173.27,118.9L173.57,116.9L173.87,120.38L174.17,116.85L174.77,117L175.08,121.64L175.38,121.41L175.68,120.07L176.28,111.87L176.58,113.09L176.88,112.96L177.18,111.66L177.48,116.31L177.78,108.48L178.38,109.38L178.68,108.3L179.88,105.18L180.18,106.44L181.38,103.38L181.68,105.99L182.28,110.62L182.58,110.34L182.88,110.4L183.18,107.98L183.48,109.9L183.78,111.87L185.59,103.38L185.89,103.62L186.19,102.98L187.39,93.32L187.69,100.51L189.19,91.79L189.49,89.5L190.39,96.31L190.69,94.66L191.29,88.69L191.89,89.1L192.19,89.8L193.09,92.52L193.39,91.28L194.29,95.14L194.59,94.61L194.89,91.95L195.2,97L195.5,97.37L195.8,95.54L196.4,100.23L196.7,98.92L197,99.87L198.8,109.62L199.1,106.96L200,103.95L200.3,104.74L200.6,101.09L201.2,101.54L201.5,101.52L201.8,100.9L202.1,97L202.4,98.22L202.7,97L203,92.46L203.3,92.48L203.6,96.54L204.5,95.9L204.8,97.75L205.41,91.43L205.71,92.19L206.01,92.14L206.61,91.96L206.91,89.74L207.51,83.85L208.11,84.73L208.41,85.36L208.71,84.83L209.01,87.36L209.31,87.06L209.61,88.71L210.81,74.31L211.11,77.49L211.41,76.56L212.01,75.22L212.31,76.79L212.61,76.46L212.91,77.27L213.21,76.89L213.51,78.12L213.81,77.61L214.11,79.67L215.02,73.29L215.32,78.61L216.22,80.13L216.52,83.67L217.12,82.38L217.42,85.59L217.72,83.53L218.02,86.15L218.32,86.53L219.52,80.62L219.82,80.65L221.32,63.21L221.92,63.72L222.22,63.26L222.52,62.36L222.82,65.67L223.12,65.39L223.42,66.53L224.02,69.61L224.32,66.14L224.62,62.01L224.92,63.53L225.23,65.5L226.13,61.37L226.43,59.81L226.73,62.97L227.03,62L227.33,58.65L228.53,62.38L228.83,60.65L229.43,59.54L229.73,54.9L230.03,57.34L230.33,56.84L230.63,55.8L231.23,57.72L231.53,54.52L231.83,54.68L232.13,53.59L232.43,52.26L232.73,56.31L233.33,58.19L233.63,55.85L234.23,57.24L234.53,55.48L234.83,57.04L235.14,50.54L235.74,47.18L236.04,49.47L236.64,46.99L236.94,50.47L237.24,50.25L237.54,52.43L237.84,51.12L238.14,52.68L238.44,54.81L238.74,55.47L239.04,53.88L240.84,64.62L241.14,63.57L241.44,63.56L241.74,66L242.34,68.46L242.64,63.74L243.24,59.72L243.54,64.3L244.14,61.09L244.44,62.62L244.74,67.94L245.35,61.69L245.65,63.49L245.95,64.66L246.85,69.08L247.15,68.41L249.25,77.84L249.55,73.44L249.85,75.29L250.15,73.97L250.45,72.08L251.65,66.22L251.95,72.4L252.25,76.02L252.55,74.89L252.85,74.17L253.15,74.47L253.45,72.43L253.75,73.38L254.05,69.4L254.35,70.19L254.65,68.74L254.95,67.8L255.26,69.59L255.86,74.47L256.16,69.49L257.06,73.85L257.36,70.91L258.26,75.15L258.56,74.13L258.86,72.92L259.16,75.85L260.06,79.5L260.36,78.81L261.26,75.21L261.56,75.44L261.86,77.8L262.16,79.04L262.46,76L263.06,80.82L263.36,79.72L263.66,77.73L263.96,76.99L264.26,78.34L264.56,77.37L264.86,73.06L266.07,83.9L266.37,81.79L267.27,84.63L267.57,83.57L267.87,80.93L269.07,88.15L269.37,87.5L270.27,84L270.57,82.05L271.17,83.83L271.47,82.21L271.77,83.89L272.07,82.26L272.37,82.06L272.67,82.35L272.97,79.74L273.27,78.91L273.57,81.28L274.17,80.2L274.47,80.77L274.77,77.91L275.08,73.49L275.38,74.61L275.68,76.09L276.28,76.51L276.58,75.44L276.88,78.34L278.68,66.89L278.98,70.86L279.58,68.74L279.88,72.33L280.18,72.55L280.48,67.58L280.78,68.38L281.08,66.97L281.38,65.07L281.68,67.61L281.98,69.08L282.58,72.28L282.88,68.96L283.78,64.35L284.08,67.75L284.68,70.57L284.98,69.34L285.29,69.58L286.79,61.72L287.09,64.78L287.39,61.91L287.69,65.06L287.99,65.51L288.59,69.76L288.89,69.42L289.19,70.36L289.79,67.02L290.09,68.85L290.39,68.02L290.69,67.2L290.99,63.99L291.89,60.26L292.19,61.29L292.49,62.83L293.39,58.63L293.69,59.7L293.99,58.3L294.29,59.69L294.59,61.56L295.2,64.46L295.5,62.86L296.1,67.2L296.4,64.36L296.7,63.97L297,65.07L297.3,70.64L297.6,69.82L297.9,67.13L298.2,67.34L298.5,66.02L299.1,66.1L299.4,68.77L300,67.35\" style=\"vector-effect: none; fill: none; stroke: rgb(48, 162, 218); stroke-opacity: 1; stroke-width: 2px; opacity: 1;\"/></g><g class=\"points\"/><g class=\"text\"/></g><g class=\"trace scatter tracefd0fba01-8f14-41e8-94df-79c7551eb306\" style=\"stroke-miterlimit: 2; opacity: 1;\"><g class=\"fills\"/><g class=\"errorbars\"/><g class=\"lines\"><path class=\"js-line\" d=\"M0,162.39L0.9,159.11L1.2,161.49L1.5,160.08L1.8,163.15L2.4,162.09L2.7,157.34L3.3,158.54L3.6,154.93L3.9,153.92L4.2,156.55L4.5,152.12L5.11,152.54L5.41,155.55L5.71,154.86L6.01,151.97L6.91,145.48L7.21,147.83L7.51,147.47L7.81,150.41L8.11,149.34L8.41,145.74L8.71,144.9L9.01,146.37L9.31,145.59L9.61,146.89L9.91,152.57L10.81,156.84L11.11,156.22L11.41,152.9L11.71,157.62L12.01,156.74L12.31,153.87L12.61,152.92L12.91,153.25L13.21,148.39L13.81,143.04L14.11,146.61L14.41,143.24L14.71,142.85L15.02,144.88L15.62,143.7L15.92,140.74L16.52,139.41L16.82,139.67L17.12,141.18L17.42,143.17L17.72,140.47L18.02,138.03L18.32,142.45L18.62,141.42L18.92,138.62L19.52,144.17L19.82,143.98L20.12,142.07L20.72,141.87L21.02,145.77L22.52,155.55L22.82,154.9L23.12,153.69L24.02,149.99L24.32,151.37L24.92,154.02L25.23,152.12L25.53,150.96L25.83,153.41L26.13,156.79L26.43,154.55L26.73,152.36L27.63,150.15L27.93,154.27L28.23,151.8L28.53,156.35L29.13,162.47L29.43,162.11L29.73,156.86L30.03,155.09L30.33,155.77L30.63,157.76L30.93,155.12L31.23,159.66L31.53,159.9L31.83,157.21L32.43,168.13L33.03,167.31L33.33,168.65L33.63,166.61L34.23,167.56L34.53,166.1L35.14,171.27L35.44,168.8L36.34,162.55L36.64,163.54L36.94,162.17L37.54,162.63L37.84,165.92L38.74,173.29L39.04,173.25L39.34,171.57L39.64,169.86L39.94,175.4L40.24,171.88L40.84,173.66L41.14,172.79L41.74,173.86L42.04,173.2L42.34,170.99L42.64,173.84L43.24,173.01L43.54,173.15L43.84,173.04L44.14,171.52L44.44,171.63L44.74,170.37L46.25,160.81L46.55,162.12L46.85,161.55L47.15,159.06L48.05,162.69L48.35,161.93L48.65,159.36L49.55,155.46L49.85,155.65L50.15,156.58L50.45,159.67L50.75,155.75L51.05,157.91L51.35,159.66L51.65,152.55L51.95,157.6L52.25,155.08L52.55,153.94L53.15,159.54L53.45,157.74L53.75,154.64L54.65,153.96L54.95,157.18L55.56,159.62L55.86,155.52L56.16,154.81L56.46,156.65L56.76,159.5L57.06,159.43L57.36,157.06L59.16,167.33L59.46,166.05L59.76,162.06L60.06,163.72L60.36,166.3L60.66,166.04L60.96,167.2L62.76,182.51L63.06,182.11L63.66,186.25L63.96,184.76L64.26,189.71L64.56,190.79L64.86,186.67L66.37,197.24L66.67,196.5L66.97,195.17L67.57,195L67.87,193.32L68.17,189.42L68.77,189.56L69.07,190.96L69.37,194.32L69.97,192.69L70.27,194.17L71.77,185.74L72.07,186.02L72.37,186.67L73.57,180.53L73.87,176.04L74.17,178.06L74.47,173.39L74.77,171.5L75.08,174.79L75.38,173.96L75.68,174.19L75.98,170.56L76.28,169.7L76.58,174.04L77.18,174.24L77.48,173.51L78.08,167.98L78.38,171.2L78.68,170.37L78.98,166.61L79.88,173.11L80.18,168.83L80.78,161.62L81.08,165.57L81.38,166.44L81.98,160.97L82.28,161.79L82.58,164.34L83.18,171.32L83.48,167.74L83.78,166.11L85.29,176.49L85.59,173.1L85.89,172.3L86.19,174L86.79,174.52L87.09,176.8L88.29,173.58L88.59,175.13L89.49,180.65L89.79,175.79L90.39,171.98L90.69,173.69L90.99,173.48L91.59,171.49L91.89,170.01L93.09,160.99L93.39,163.85L94.29,168.11L94.59,167.65L94.89,167.95L95.5,163.34L95.8,167.12L96.4,164.06L96.7,166.6L97,165.57L97.3,167.3L97.6,165.74L98.2,165.88L98.5,167.58L98.8,167.53L99.1,163.81L99.4,157.74L99.7,161.57L100,160.84L100.3,156.66L100.6,159.06L100.9,161.51L103.3,152.83L103.6,153.02L103.9,153.29L104.2,151.66L106.61,166.32L106.91,163.36L107.21,163.36L107.51,164.2L107.81,164.6L108.11,167.41L109.31,162.68L109.61,167.76L110.51,169.35L110.81,164.6L111.11,163.21L111.41,165.88L112.31,163.24L112.61,165.61L113.51,159.51L113.81,160.03L114.11,160.12L114.41,157.62L115.02,158.14L115.32,156.96L117.12,140.32L117.42,147.01L118.02,143.59L118.32,144.08L118.62,145.56L118.92,144.78L119.22,148.21L121.32,165.3L121.62,164.48L122.82,153.52L123.12,160.56L123.72,157.77L124.02,159.2L124.62,160.78L124.92,160.09L125.23,160.15L126.73,154.2L127.03,155.49L128.53,162.65L128.83,157.84L129.43,157.69L129.73,160.72L130.03,160.8L130.33,158.07L131.83,152.5L132.13,156.52L133.33,143.3L133.63,145.51L134.53,148.39L134.83,144.47L135.44,151.15L135.74,148.62L136.04,148.29L136.94,149.64L137.24,147.46L137.54,151.89L137.84,150.96L138.14,149.5L138.44,154.1L139.04,153.73L139.34,152.54L140.24,145.88L140.54,147.89L140.84,147.41L141.14,149.54L141.44,149.01L141.74,152.14L142.04,151.44L142.34,152.02L142.64,152.26L143.54,157.83L144.14,157.36L144.44,157.23L145.05,150.38L145.35,148.75L145.65,148.05L145.95,151.8L146.25,153.49L146.85,153.36L147.15,150.99L147.45,153.36L147.75,151.27L148.05,150.04L149.55,144.87L149.85,146.01L150.45,144.29L150.75,146.61L151.35,142.32L151.65,144.42L151.95,147.82L152.25,153.99L152.85,153.57L153.15,151.89L153.45,153.88L153.75,150.95L154.05,151.41L154.65,148.81L154.95,150.45L155.56,150.1L155.86,148.48L156.16,147.74L156.46,150.69L157.66,155.71L157.96,157.02L158.26,157.59L158.56,160.48L160.06,171.96L160.36,169.93L160.66,176.75L160.96,176.62L161.26,173.82L161.86,167.93L162.16,168.4L162.46,171.13L163.36,161.36L163.66,162.29L163.96,167.84L164.56,161.37L165.17,162.02L165.47,162.78L165.77,164.16L166.07,158.46L166.97,155.44L167.27,155.84L167.57,156.59L168.17,161.28L168.47,159.4L168.77,157.9L169.67,164.71L169.97,159.7L170.87,161.58L171.17,168.56L171.47,166.75L171.77,169.37L172.07,168.26L172.37,166.84L172.67,166.96L172.97,169.4L173.27,168.14L173.57,171.72L174.17,173.19L174.47,177.31L174.77,179.57L175.08,175.7L175.68,179.54L175.98,178.12L176.28,178.34L177.48,173.32L177.78,174.03L178.08,175.12L178.38,171.64L178.98,173.83L179.28,171.19L179.58,166.02L179.88,167.34L180.18,169.62L180.78,164.36L181.38,164.96L181.68,162.66L182.88,147.7L183.48,147.91L183.78,145.17L184.68,146.65L184.98,148.65L185.59,144.67L186.19,145.23L186.49,145.37L187.69,149.92L187.99,153.67L188.29,151.6L188.59,151.77L188.89,155.05L189.49,153.43L189.79,154.01L190.09,150.67L191.59,161.34L191.89,155.88L193.09,162.27L193.39,165.24L193.69,166.05L193.99,165.07L194.29,165.44L194.59,164.67L194.89,167.47L195.2,169L195.5,166.24L195.8,165.72L196.1,163.3L197,167.03L197.3,164.07L197.6,159.7L197.9,164.77L198.2,161.56L198.5,164.94L198.8,162.13L199.1,164.1L199.4,168.66L201.2,155.61L201.5,157.73L202.4,153.98L202.7,155.59L203,153.22L203.6,154.24L203.9,152.31L205.11,148.28L205.41,149.43L206.01,147.57L206.31,146.64L206.91,136.38L207.51,138.44L207.81,139.35L208.11,138.81L208.41,135.96L208.71,133.03L209.01,134.58L209.31,136.47L209.61,136.16L209.91,138.12L210.21,141.32L210.81,140.1L211.11,140.13L211.41,143.43L212.01,142.86L212.31,142.06L212.61,143.82L212.91,141.06L213.81,149.33L214.11,149.29L214.41,149.7L215.32,151.55L215.62,155.07L215.92,150.17L216.22,156.01L216.52,156.88L217.12,157.13L217.42,156.15L217.72,156.72L218.02,157.12L218.32,161.68L219.82,151.85L220.12,155.98L221.02,165.82L221.32,163.07L221.62,160.79L222.52,164.39L222.82,164.17L223.12,164.54L223.42,163.97L223.72,164.05L225.23,168.36L225.53,167.43L225.83,166.14L226.13,159.41L227.03,156.39L227.33,160.54L227.63,162.18L227.93,158.71L228.53,160.74L228.83,159.83L229.13,158.97L229.43,159.03L229.73,156.71L230.03,159.63L230.33,156.39L230.63,153.54L231.53,149.13L231.83,145.71L232.43,140.37L232.73,141.63L233.03,141.94L233.33,145.45L233.63,144.53L233.93,142.84L234.23,138.49L234.53,141.36L234.83,141.29L235.14,144.85L235.74,144.04L236.04,143.35L236.34,141.42L236.64,143.62L236.94,145.84L237.24,144.94L237.54,148.67L237.84,151.24L238.14,146.33L240.54,133.03L240.84,131.54L241.74,136.13L242.04,134.92L242.64,135.56L243.24,129.23L243.54,128.25L245.05,117.35L245.35,116.36L246.25,122.54L246.55,122.26L246.85,120.07L247.15,120.82L247.45,118.78L248.05,121.27L248.35,120.01L248.65,120.02L249.55,115.87L249.85,116.09L250.15,115.24L250.45,111.45L250.75,116.28L251.05,119.13L251.95,123.08L252.25,120.46L253.15,128.12L253.45,126.38L253.75,126.92L254.05,126.54L254.35,125.8L255.26,129.25L255.56,123.56L257.06,111.43L257.36,112.53L257.66,113.48L257.96,110.79L258.26,112.09L258.56,113.52L258.86,116.01L259.16,115.62L259.46,114.41L260.36,121.06L260.66,119.41L260.96,120.79L261.26,126.94L261.56,126.95L261.86,123.99L262.76,132.23L263.06,129.88L263.36,128.54L264.56,124.24L264.86,125.05L265.17,121.65L265.77,122.47L266.07,122.84L266.97,119.87L267.27,119.44L267.57,122.08L267.87,121.16L268.17,119.59L269.07,132.16L269.37,127.48L269.67,122.81L270.27,120.1L270.57,123.18L271.17,125.87L271.47,120.02L272.07,113.59L272.37,114.7L272.67,114.56L272.97,113.47L273.27,114.99L273.57,116.29L274.77,123.43L275.08,122.09L276.28,126.73L276.58,125.95L277.48,124.86L277.78,124.07L278.08,122.47L278.38,126.44L278.98,121.26L279.28,121.53L279.58,123.16L279.88,121.23L280.48,122.17L280.78,123.39L281.38,120.13L281.68,122.72L282.88,113.38L283.18,115.82L283.48,116.63L283.78,113.8L284.38,109.8L284.68,108.67L284.98,104.11L285.59,105.99L285.89,108.48L288.59,123.55L288.89,122.99L289.19,123.18L289.79,126.28L290.09,122.55L290.39,122.32L290.69,119.16L291.29,115.87L291.59,112.36L291.89,107.39L292.49,107.53L292.79,108.17L293.39,110.8L293.69,107.34L294.89,115.34L295.2,115.37L295.8,113.64L296.1,113.77L296.4,115.45L297,109.95L297.3,111.22L297.6,109.2L298.2,110.53L298.5,115.47L299.1,110.97L299.7,111.19L300,110.54\" style=\"vector-effect: none; fill: none; stroke: rgb(252, 79, 48); stroke-opacity: 1; stroke-width: 2px; opacity: 1;\"/></g><g class=\"points\"/><g class=\"text\"/></g><g class=\"trace scatter trace18694abc-e90a-4e96-bee9-5f75b4c105b9\" style=\"stroke-miterlimit: 2; opacity: 1;\"><g class=\"fills\"/><g class=\"errorbars\"/><g class=\"lines\"><path class=\"js-line\" d=\"M0,165.01L0.3,165.24L0.6,160.03L0.9,162.31L1.2,158.26L1.5,159.45L1.8,158.19L2.1,157.13L3,161.63L3.3,159.15L4.8,153.01L5.11,152.09L6.31,144.44L6.61,146.82L6.91,148.81L7.21,145.25L7.81,140.84L8.11,144.37L8.41,149.12L8.71,145.99L9.01,145.47L9.31,145.99L9.61,144.56L10.21,144.59L10.51,146.96L11.41,142.43L11.71,142.84L12.01,145.11L12.61,137.34L12.91,139.75L13.21,140.91L13.51,139.22L13.81,141.74L14.11,145.09L14.41,146.98L14.71,144.19L15.02,144.88L15.32,145.48L15.62,150.55L15.92,150.02L16.22,153.28L16.82,151.4L17.12,152L17.42,152.07L18.32,147.35L18.62,149.88L19.82,145.29L20.12,145.82L21.02,137L21.32,137.97L21.62,138.56L22.82,134.13L23.12,137.27L24.62,150.91L24.92,150.78L25.53,155.45L25.83,151.02L26.43,153.02L26.73,148.46L27.63,142.88L27.93,143.54L28.23,141.88L29.13,146.65L29.43,145.96L29.73,144.89L30.03,140.93L30.93,146.23L31.23,146.73L33.33,158.4L33.63,155.08L34.23,148.76L34.53,151.17L34.83,152.79L35.44,152.49L35.74,154.27L36.04,153.8L37.54,147.22L37.84,150.72L38.14,151.4L38.44,150.42L38.74,149.09L39.94,153.76L40.24,155.36L40.84,163.41L41.14,160.66L41.44,156.65L42.34,160.94L42.64,163.47L43.24,160.75L43.54,157.26L44.44,151.74L44.74,155.88L46.25,162.07L46.55,167.74L46.85,166.72L47.15,168.37L47.45,168.68L47.75,170.13L48.05,169.32L48.35,170.91L48.95,169.47L49.25,168.56L50.45,164.65L50.75,165.4L51.05,165.43L51.35,164.58L51.65,164.89L51.95,166.32L52.85,173.05L53.15,172.09L53.45,169.82L53.75,171.15L54.05,175.01L54.65,171.92L54.95,174.76L55.26,174.56L55.56,177.33L55.86,178.16L56.16,175.99L56.46,175.89L56.76,173.49L57.36,169.13L57.66,172.41L57.96,169.07L58.56,169.17L58.86,171.43L60.36,159.82L60.66,160.71L60.96,159.89L61.26,157.11L61.56,162.02L61.86,155.73L62.16,161.07L62.46,162.01L62.76,161.8L63.06,162.43L63.36,161.17L63.66,160.47L63.96,157.66L64.86,159.06L65.17,157.32L65.47,157.14L65.77,157.64L66.07,159.05L67.57,169.78L67.87,168.05L68.17,167.17L68.47,167.73L68.77,169.05L69.07,164.68L69.67,165.75L69.97,168.31L70.27,167.57L70.57,163.07L71.77,153.43L72.07,156.1L72.67,152.99L72.97,156.17L73.27,153.75L73.87,154.56L74.17,152.63L74.77,152.17L75.08,154.69L75.38,152.78L75.68,153.02L75.98,153.96L77.78,165.57L78.08,162.66L79.28,156.16L79.58,160.47L79.88,159.56L80.18,156.22L80.48,157.89L80.78,164.59L81.38,166L81.68,165.67L81.98,163.85L82.28,160.41L82.58,162.23L82.88,162.66L84.98,149.64L85.29,148.57L85.59,146.18L85.89,147.69L86.19,150.78L87.69,136.38L87.99,139.81L88.29,138.45L88.59,141.53L88.89,141.87L89.19,137.78L89.49,135.87L89.79,136.52L90.09,139.33L90.39,138.75L90.69,141.76L90.99,141.37L91.29,141.8L91.59,142.94L92.79,138.91L93.09,139.8L93.39,141.67L93.69,140.45L93.99,138.64L94.29,136.89L94.59,139.36L94.89,141.43L95.2,141.36L95.5,143.08L96.4,146.81L96.7,146.2L97.9,129.94L98.5,131.1L98.8,133.69L99.1,131.27L99.4,131.33L99.7,134.07L101.5,123.59L101.8,119.15L102.1,118.61L102.4,119.34L102.7,120.27L103.6,124.99L103.9,122.95L105.41,132.01L105.71,132L106.01,136.32L106.31,132.58L106.61,130.67L106.91,131.2L107.21,129.23L107.81,131.12L108.11,129.75L109.31,135.71L109.61,131.79L110.81,120.07L111.11,121.72L112.31,126.72L112.61,125.32L114.41,111.78L114.71,113.08L115.62,120.23L115.92,116.31L116.22,117.28L116.52,113.88L116.82,112.38L117.12,115.41L117.42,117.25L117.72,116.6L118.02,114.11L118.32,112.49L118.62,114.36L118.92,117.24L120.12,108.12L120.42,108.28L120.72,108.36L121.92,96.84L122.22,97.78L122.52,97.64L122.82,100.4L123.12,100.34L123.42,102.17L124.92,92.95L125.23,95.82L126.13,103.8L126.43,103.32L126.73,99.87L127.63,95.77L127.93,97.34L128.83,103.23L129.13,102.7L129.43,97.67L129.73,97.5L130.03,94.85L130.33,93.44L130.63,93.63L130.93,99.37L131.23,96.75L131.53,97.94L131.83,98.83L132.13,97.95L132.43,98.13L132.73,100.75L133.93,110.38L134.23,110.27L134.83,113.44L135.14,113.33L135.44,111.78L135.74,107.17L136.34,107.51L136.64,109.24L137.24,109.35L138.14,100.63L138.44,100.8L139.04,107.69L139.34,107.41L139.64,107.5L140.54,110.46L140.84,107.2L141.44,112.14L141.74,111.4L142.04,106.98L142.34,110.08L142.64,106.43L142.94,107.9L147.15,86.79L147.45,92.04L148.95,101.88L149.25,100.52L150.75,91.71L151.05,92.91L151.95,89.52L152.25,92.67L152.85,82.83L153.15,83.95L153.45,86.3L154.35,89.82L154.65,90.49L154.95,88.71L155.26,92.59L155.56,90.32L156.16,90.51L156.46,91.22L156.76,91.51L157.06,94.91L157.36,93.31L157.66,94.24L157.96,98.75L158.26,96.22L158.86,97.22L159.16,100.48L159.46,102.43L159.76,100.53L160.06,100.07L160.36,100.15L160.66,99.15L161.56,92.06L161.86,93.01L162.16,96.41L162.46,92.74L162.76,95.21L163.06,95.89L163.66,97.25L163.96,99.28L164.26,97.97L164.56,98.19L164.86,102.31L165.17,101.98L165.47,97.93L166.07,100.42L166.37,103.69L166.67,106.01L166.97,103.89L167.27,102.41L169.07,90.51L169.37,91.19L170.57,98.24L170.87,96.76L171.77,103.75L172.37,103.02L172.67,103.93L173.27,105.85L173.57,102.02L174.17,98.37L174.47,102.33L174.77,98.98L175.08,99.12L175.38,101.17L175.98,101.31L176.28,98.48L176.58,105.2L176.88,110.87L177.18,106.56L177.48,105.57L178.98,94.99L179.28,94.04L179.58,92.98L179.88,88.99L180.48,85.58L180.78,85.95L181.08,86.43L181.98,93.7L182.28,93.34L182.58,93.02L183.18,88.41L183.48,91.08L183.78,90.34L184.08,93.41L184.38,90.88L184.68,88.56L184.98,88.47L185.29,92.29L186.19,91.37L186.49,85.8L186.79,84.72L187.09,84.95L187.39,86.8L187.69,87.72L187.99,87.09L188.29,85.22L189.19,78.86L189.49,81.33L190.09,77.54L190.39,79.28L190.69,81.75L190.99,85.4L191.29,83.28L191.59,82.85L191.89,84.45L192.19,84L192.49,90.56L192.79,86.73L193.09,90.05L193.39,90.34L194.89,69.36L195.2,71.69L195.5,76.24L196.1,75.68L196.4,73.49L196.7,75.94L197,73.03L197.3,72.77L197.6,72.6L197.9,73.16L198.2,66.66L198.8,66.82L199.1,68.5L199.7,64.82L200,65.96L200.3,70.83L200.6,78.23L201.2,77.13L201.5,75.75L201.8,76.28L202.1,73.62L202.4,72.97L202.7,65.38L204.2,77.69L204.5,75.96L206.31,95.69L206.61,97.15L206.91,97.39L207.21,95.37L207.81,90.96L208.11,93.1L208.41,93.06L209.01,98.8L209.31,98.36L209.61,95.09L210.21,96.53L210.51,93.61L211.41,89.45L211.71,94.11L212.01,92.04L212.31,92.14L212.61,94.58L213.51,94.39L213.81,90.66L214.41,90.42L214.71,96.23L215.02,96.64L215.32,102.42L215.62,99.63L215.92,102.72L216.22,105.1L216.52,104.2L216.82,105.73L217.12,104.72L217.42,105.46L217.72,109.96L218.02,108.79L218.32,110.99L218.92,110.34L219.22,113.07L221.32,99.36L221.62,101.56L221.92,98.53L222.22,101.84L222.52,101.59L222.82,100.44L223.12,103.56L223.42,103.57L223.72,104.8L224.02,104.56L224.32,100.4L225.53,93.19L225.83,97.66L226.73,93.89L227.03,95.19L229.13,81.16L229.43,82.88L229.73,80.97L230.03,83.21L230.33,83.68L230.93,88.54L231.23,83.21L231.53,83.32L231.83,86.34L232.43,95.43L232.73,94.67L233.03,91.51L234.53,77.15L234.83,79.27L235.14,81.15L235.44,81L235.74,79.74L236.04,79.99L236.34,76.07L236.94,76.05L237.24,72.99L237.84,71.76L238.14,73.88L239.34,83.69L239.64,82.61L241.14,75.94L241.44,81.05L242.64,86.31L242.94,83.04L245.05,62.07L245.35,65.07L245.65,65.77L246.25,68.02L246.55,62.59L246.85,63.41L247.15,61.27L248.05,56.85L248.35,61.36L248.95,56.6L249.25,59.76L249.55,58.74L250.75,54.6L251.05,53.2L251.95,55.3L252.25,53.9L252.55,53.53L252.85,50.3L253.15,47.46L253.45,49.16L253.75,48.99L254.95,45.19L255.26,42.63L255.56,42.41L255.86,39.6L256.16,43.21L256.46,39.78L256.76,39.96L257.06,40.31L257.36,46.05L258.26,53.69L258.56,52.12L258.86,52.58L259.46,54.85L259.76,52.26L260.06,54.84L260.36,52.22L260.66,51.63L260.96,51.16L261.26,52.95L261.86,48.88L262.46,49.49L262.76,49.25L263.36,48.7L263.66,50.87L265.17,45.17L265.47,42.26L265.77,42.04L266.07,38.35L266.67,28.19L267.27,29.35L267.57,35.42L267.87,36.96L268.47,36.69L268.77,34.92L269.07,33.41L269.37,35.72L269.67,36.9L269.97,36.08L270.27,40.94L271.77,32.09L272.07,32.55L272.37,32.33L272.97,30.91L273.27,31.01L273.57,26.53L273.87,26.48L274.17,25.11L274.77,25.12L275.08,27.84L275.98,34.86L276.28,29.55L277.18,34.36L277.48,38.13L277.78,36.39L278.08,38.84L278.38,41.26L279.28,48.74L279.58,47.67L279.88,45.59L280.18,44.71L280.48,46.93L281.38,54.36L281.68,50.49L281.98,54.47L282.28,51.5L282.58,50.84L282.88,43.6L283.48,45.49L283.78,45.98L284.08,46.04L284.38,43.38L284.98,36.19L285.29,36.29L285.59,38.26L285.89,35.35L286.19,35.56L286.49,38.26L286.79,37.2L287.09,41.61L287.39,43.32L287.69,42.77L287.99,41.37L289.49,48.01L289.79,49.15L290.39,47.37L290.69,49.25L292.19,57.83L292.49,58.06L293.09,58.5L293.69,55.73L293.99,57.97L294.29,59.74L294.59,57.4L294.89,54.71L295.2,54.21L295.5,57.83L295.8,56.21L296.1,60.79L296.4,57.63L296.7,59.28L297,59.87L297.6,57.51L297.9,60.96L298.2,61.89L298.5,59.74L298.8,62.33L299.4,61.52L299.7,59.2L300,62.07\" style=\"vector-effect: none; fill: none; stroke: rgb(229, 174, 56); stroke-opacity: 1; stroke-width: 2px; opacity: 1;\"/></g><g class=\"points\"/><g class=\"text\"/></g><g class=\"trace scatter trace39df454f-1a1d-42fe-8754-0663bc69d4e1\" style=\"stroke-miterlimit: 2; opacity: 1;\"><g class=\"fills\"/><g class=\"errorbars\"/><g class=\"lines\"><path class=\"js-line\" d=\"M0,159.84L0.6,159.62L0.9,163.78L1.2,159L1.8,160.64L2.1,161.31L2.7,164.55L3,163.66L3.3,162.12L3.6,162.16L3.9,163.28L4.5,158.99L4.8,162.35L5.71,169.16L6.01,173L6.61,168.82L6.91,170.34L7.21,171.09L7.51,173.62L7.81,169.56L8.11,166.14L8.41,166.85L8.71,168.69L9.01,169.04L9.31,165.66L9.61,165.93L9.91,173.58L10.81,170.37L11.11,173.81L11.41,175.27L11.71,173.2L12.01,168.96L12.61,162.59L12.91,166.09L13.21,166.52L13.51,168.21L13.81,164.62L14.11,163.99L14.41,166.39L15.32,159.01L15.62,158.87L15.92,161.04L16.22,157.71L17.12,153.32L17.42,155.96L17.72,151.54L18.32,152.35L18.62,154.28L19.22,155.95L19.52,151.62L19.82,147.21L20.42,148.57L20.72,148.32L21.02,148.39L21.32,145.59L21.62,144.33L21.92,148.05L22.82,139.47L23.12,139.59L23.42,146.55L24.62,152.74L24.92,151.83L25.23,149.01L26.43,143.57L26.73,143.5L27.33,142.85L27.63,145.01L28.23,144.15L28.53,145.3L29.43,146.97L29.73,143.91L30.03,144.02L30.33,142.07L30.63,139.61L30.93,143.4L31.23,142.66L31.53,144.69L31.83,146.15L32.13,145.89L32.43,143.35L32.73,141.22L33.33,141.32L33.63,141.08L34.23,141.8L34.53,144.55L35.14,149.04L35.44,145.36L35.74,145.08L36.04,147.74L36.34,148.02L36.64,150.17L37.84,155.43L38.14,152.1L38.74,147.08L39.04,148.66L39.34,149.23L39.94,145.32L40.24,147.17L40.54,146.25L40.84,148.72L41.14,147.76L41.44,146.21L41.74,146.01L42.04,147.38L42.64,149.28L42.94,146.61L43.24,143.7L43.54,145.38L43.84,148.76L44.14,148.17L44.44,149.69L45.35,160.34L45.65,158.52L45.95,158.4L46.25,155.85L46.55,159.41L46.85,159.25L47.15,161.77L47.45,158.79L47.75,160.72L48.05,157.47L48.65,159.81L48.95,159.6L49.25,159.02L49.55,158.92L49.85,159.89L50.45,159.77L50.75,154.47L52.25,156.34L52.55,153.64L53.75,141.9L54.05,142.01L54.35,146.04L54.95,148.89L55.26,147.3L55.56,144.81L56.16,141L56.46,145.7L56.76,145.45L57.06,142.62L58.26,151.13L58.56,147.99L59.46,142.46L59.76,143.64L60.06,144.16L60.36,139.85L60.66,140.96L60.96,139.93L61.26,138.9L62.46,142.67L62.76,141.21L63.66,131.81L63.96,132.18L64.26,132.64L64.56,133.7L64.86,132.5L65.17,130.59L65.47,131.29L65.77,127.72L66.67,132.41L66.97,130.27L69.37,144.45L69.67,143.72L69.97,142.77L70.27,144.23L70.57,144.06L70.87,143.72L71.17,145.46L72.07,140.65L72.37,143.07L72.67,144.74L72.97,141.42L73.87,137.95L74.17,137.31L75.08,130.98L75.38,132.25L75.68,132.76L75.98,136.09L76.28,133.88L76.58,138.12L77.48,144.42L77.78,138.93L78.38,143.98L78.68,143.12L78.98,142.06L80.18,153L80.48,150.1L81.08,151.68L81.38,150.33L81.68,150.41L81.98,146.64L82.58,138.55L82.88,138.91L83.18,137.1L83.48,136.74L83.78,133.94L84.38,133.73L84.68,132.2L85.89,135.78L86.19,142.23L86.49,138.89L86.79,139.15L87.09,142.26L87.99,137.65L88.29,138.41L88.59,137.27L89.19,137.18L89.49,140.2L90.09,138.95L90.39,136.67L90.99,136.99L91.29,140.72L91.59,140L91.89,143.11L92.19,139.64L92.79,141.35L93.09,145.31L93.39,143.45L93.69,147.05L95.2,154.77L95.5,156.58L95.8,154.32L96.1,155.39L96.4,155.64L98.2,169.05L98.5,168.82L98.8,167.66L99.1,167.96L99.4,166.34L100.3,173.55L100.6,170.44L101.2,165.95L101.5,168.06L101.8,168.57L102.1,165.61L103.6,176.1L103.9,176.46L104.2,176.63L104.5,174.49L105.11,177.33L105.41,172.75L106.31,165.8L106.61,166.35L106.91,170.33L108.11,163.29L108.41,164.03L109.91,157.71L110.21,163.23L114.11,185.85L114.41,183.98L114.71,184.5L115.02,184.1L115.32,178.61L115.62,177.98L115.92,180.62L116.52,184.96L116.82,180.4L117.72,179.48L118.02,179.77L118.32,179.25L118.62,180.76L118.92,180.81L119.22,188.72L119.52,186.65L119.82,189.79L120.12,192.79L120.42,192.33L120.72,188.94L121.62,182.9L121.92,183.7L122.22,183.42L122.82,183.87L123.12,186.46L123.42,184.99L123.72,186.22L124.02,189.45L124.62,187.72L124.92,192.78L125.83,197.84L126.13,196.26L127.33,188.49L127.63,188.94L127.93,191.1L128.23,191.42L128.53,187.68L128.83,184.95L129.13,188.35L129.43,186.29L129.73,189.12L131.23,196.93L131.53,195.63L132.13,192.79L132.43,187.31L133.33,188.85L133.63,190.69L134.83,201.28L135.14,197.82L136.94,204.3L137.24,209.42L137.84,215.07L138.14,213.22L138.44,210.42L139.64,215.26L139.94,212.76L141.14,207L141.74,207.35L142.04,208.74L142.94,206.28L143.24,207.68L143.54,208.35L143.84,211.83L145.95,204.18L146.25,204.63L146.55,206.09L147.45,200.12L147.75,201.72L148.05,197.12L148.65,198.08L148.95,199.63L149.25,200.21L149.55,199.15L151.35,187.02L151.65,188.35L153.15,202.83L153.45,200.93L155.26,194.29L155.56,197.29L155.86,199.93L156.16,197.4L156.46,195.64L156.76,198.31L157.06,195.87L157.36,196.07L158.26,204.2L158.56,203.85L158.86,201.94L159.16,204.34L159.46,200.44L159.76,202.68L160.06,200.02L160.36,200.96L161.56,194.97L161.86,195.7L163.06,188.76L163.66,189L163.96,188.62L164.26,188.61L164.56,192.03L164.86,190.02L165.17,194.47L166.07,190.27L166.37,187.41L166.97,188.59L167.27,191.02L167.57,190.24L167.87,198.12L168.77,190.98L169.07,191.84L169.37,191.8L170.57,201.02L170.87,199.97L171.17,199.06L171.47,200.51L171.77,196.2L172.07,195.66L172.37,197.41L172.67,198.26L172.97,197.04L173.27,196.19L174.17,202.69L174.47,200.9L174.77,201.02L175.08,203.96L176.58,220.08L176.88,219.41L177.18,216.77L177.48,217.26L177.78,215.79L180.48,207.45L180.78,208.28L181.08,207.93L181.38,208.81L181.68,210.5L181.98,206.7L183.48,198.59L183.78,200.29L184.68,210.6L184.98,208.96L185.29,202.36L185.89,202.05L186.79,205.34L187.09,204.39L187.99,199.3L188.29,198.85L189.19,192.04L189.49,192.29L189.79,197.27L190.39,192.22L190.69,197.09L191.29,194.71L191.59,198.37L191.89,199.65L192.19,196.98L194.59,209.26L194.89,208.71L195.2,207.4L195.8,209.22L196.1,205.83L196.7,201.92L197,205.7L198.8,196.08L199.1,197.79L200.3,208.89L200.6,207.41L200.9,205.36L201.5,205.97L201.8,209.49L202.1,211.4L202.4,205.79L202.7,212.11L203.3,211.07L203.6,213.44L205.11,219.12L205.41,218.32L205.71,215.47L206.01,217.67L206.31,218.51L207.21,211.03L207.81,212.04L208.11,212.76L208.41,213.58L208.71,210.95L209.31,209.12L209.61,206.23L210.81,222.55L211.11,219.76L211.41,221.88L213.21,239.4L213.51,239.22L213.81,238.8L214.71,241.4L215.02,239.86L215.62,235.8L215.92,239.08L216.22,240.84L216.82,240.56L217.12,240.22L217.42,241.86L217.72,240.91L218.02,237.16L218.32,236.6L218.62,239.16L220.42,233.7L220.72,229.83L221.02,229.5L221.32,231.9L221.62,233.04L221.92,228.13L223.72,239.57L224.02,236.92L224.62,235.14L224.92,238.31L225.23,237.55L225.53,238.62L225.83,234.45L226.13,233.29L226.43,234.8L226.73,234.43L227.03,230.04L227.33,230.79L227.63,233.25L227.93,232.94L228.23,234.35L228.53,233.76L228.83,230.33L230.03,225.54L230.33,228.45L230.93,232.6L231.23,229.81L231.53,225.92L232.13,228.99L232.43,228.81L232.73,228.35L234.53,240.56L234.83,240.71L235.14,235.63L235.44,236.26L235.74,242.05L236.64,248.78L237.24,248.06L237.54,248.79L237.84,248.85L238.14,253.54L238.44,249.87L238.74,251.52L239.04,253.11L239.64,247.36L239.94,249.42L240.24,249.8L241.44,255.23L241.74,251.79L242.34,252.69L242.64,249.05L242.94,249.91L243.54,249.78L243.84,252.86L244.14,252.31L245.35,258.8L245.65,253.56L246.25,257.8L246.55,256.67L246.85,253.2L247.15,253.78L247.45,256.33L248.35,249.38L248.65,249.64L248.95,251.59L250.15,257.47L250.45,256.88L250.75,257.26L251.05,256.08L251.35,256.33L251.65,255.7L251.95,259.56L252.85,254.89L253.15,256.42L254.35,261.1L254.65,260.93L256.16,253.93L256.46,255.72L256.76,254.9L257.06,252.56L257.36,255.16L257.66,255.54L257.96,251.5L258.26,253.89L258.56,256.7L260.06,252.54L260.36,258.59L260.66,260.76L260.96,258.61L261.26,258.74L261.56,262.65L261.86,260.4L262.16,260.32L262.46,261.23L262.76,258.72L263.06,259.92L263.36,257.36L263.66,257.52L263.96,255.7L264.26,256.41L264.56,254.93L264.86,258.49L265.17,249.48L265.47,248.4L265.77,252.77L266.37,249.22L266.67,249.33L266.97,253.71L267.87,264.69L268.17,264.15L268.47,266.12L269.07,269.33L269.37,265.24L269.97,275L270.27,273.39L270.57,270.37L271.47,272.26L271.77,268.88L272.97,260.74L273.27,262.72L273.57,266.34L274.17,262.53L274.47,263.23L274.77,265.32L275.38,261.5L275.68,258.72L275.98,260.64L276.28,257.66L276.58,258.88L276.88,256.47L277.18,256.28L277.48,258.99L279.28,247.13L279.58,249.78L280.18,248.98L280.48,253.09L280.78,252.67L281.08,247.9L282.28,254.73L282.58,254.05L282.88,251.22L283.48,252.14L283.78,254.78L284.08,254.76L284.38,250.7L284.68,251.09L284.98,250.8L285.29,253.94L285.59,253.19L285.89,254.81L286.49,255.43L286.79,253.7L287.39,251.28L287.69,252.11L287.99,254.9L288.29,257.2L288.89,256.21L289.19,256.83L289.79,251.43L290.09,252.65L290.39,255.52L290.99,257.56L291.29,255.55L292.49,258.54L292.79,256.64L293.69,247.94L293.99,251.78L296.1,243.56L296.4,246.82L297.9,238.78L298.2,238.19L299.7,243.98L300,249.59\" style=\"vector-effect: none; fill: none; stroke: rgb(109, 144, 79); stroke-opacity: 1; stroke-width: 2px; opacity: 1;\"/></g><g class=\"points\"/><g class=\"text\"/></g></g></g><g class=\"overplot\"/><path class=\"xlines-above crisp\" d=\"M0,0\" style=\"fill: none;\"/><path class=\"ylines-above crisp\" d=\"M0,0\" style=\"fill: none;\"/><g class=\"overlines-above\"/><g class=\"xaxislayer-above\"><g class=\"xtick\"><text text-anchor=\"middle\" x=\"0\" y=\"367\" transform=\"translate(50,0)\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 12px; fill: rgb(42, 63, 95); fill-opacity: 1; white-space: pre; opacity: 1;\">2000</text></g><g class=\"xtick\"><text text-anchor=\"middle\" x=\"0\" y=\"367\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 12px; fill: rgb(42, 63, 95); fill-opacity: 1; white-space: pre; opacity: 1;\" transform=\"translate(159.91,0)\">2001</text></g><g class=\"xtick\"><text text-anchor=\"middle\" x=\"0\" y=\"367\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 12px; fill: rgb(42, 63, 95); fill-opacity: 1; white-space: pre; opacity: 1;\" transform=\"translate(269.52,0)\">2002</text></g></g><g class=\"yaxislayer-above\"><g class=\"ytick\"><text text-anchor=\"end\" x=\"45\" y=\"4.199999999999999\" transform=\"translate(0,310.65)\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 12px; fill: rgb(42, 63, 95); fill-opacity: 1; white-space: pre; opacity: 1;\">−40</text></g><g class=\"ytick\"><text text-anchor=\"end\" x=\"45\" y=\"4.199999999999999\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 12px; fill: rgb(42, 63, 95); fill-opacity: 1; white-space: pre; opacity: 1;\" transform=\"translate(0,260.59000000000003)\">−20</text></g><g class=\"ytick\"><text text-anchor=\"end\" x=\"45\" y=\"4.199999999999999\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 12px; fill: rgb(42, 63, 95); fill-opacity: 1; white-space: pre; opacity: 1;\" transform=\"translate(0,210.53)\">0</text></g><g class=\"ytick\"><text text-anchor=\"end\" x=\"45\" y=\"4.199999999999999\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 12px; fill: rgb(42, 63, 95); fill-opacity: 1; white-space: pre; opacity: 1;\" transform=\"translate(0,160.47)\">20</text></g><g class=\"ytick\"><text text-anchor=\"end\" x=\"45\" y=\"4.199999999999999\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 12px; fill: rgb(42, 63, 95); fill-opacity: 1; white-space: pre; opacity: 1;\" transform=\"translate(0,110.41)\">40</text></g><g class=\"ytick\"><text text-anchor=\"end\" x=\"45\" y=\"4.199999999999999\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 12px; fill: rgb(42, 63, 95); fill-opacity: 1; white-space: pre; opacity: 1;\" transform=\"translate(0,60.35)\">60</text></g></g><g class=\"overaxes-above\"/></g></g><g class=\"polarlayer\"/><g class=\"smithlayer\"/><g class=\"ternarylayer\"/><g class=\"geolayer\"/><g class=\"funnelarealayer\"/><g class=\"pielayer\"/><g class=\"iciclelayer\"/><g class=\"treemaplayer\"/><g class=\"sunburstlayer\"/><g class=\"glimages\"/><defs id=\"topdefs-e1189d\"><g class=\"clips\"/></defs><g class=\"layer-above\"><g class=\"imagelayer\"/><g class=\"shapelayer\"/></g><g class=\"infolayer\"><g class=\"g-gtitle\"/><g class=\"g-xtitle\"><text class=\"xtitle\" x=\"200\" y=\"390.3\" text-anchor=\"middle\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 14px; fill: rgb(42, 63, 95); opacity: 1; font-weight: normal; white-space: pre;\">index</text></g><g class=\"g-ytitle\" transform=\"translate(8.6591796875,0)\"><text class=\"ytitle\" transform=\"rotate(-90,4.340625000000003,200)\" x=\"4.340625000000003\" y=\"200\" text-anchor=\"middle\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 14px; fill: rgb(42, 63, 95); opacity: 1; font-weight: normal; white-space: pre;\">value</text></g></g></svg>"]},"metadata":{},"output_type":"display_data"}],"source":["hvplot.extension(\"plotly\")\n","from plotly.graph_objects import Figure\n","\n","Figure(hv.render(plot, backend=\"plotly\")).show(\"svg\")"]},{"cell_type":"markdown","metadata":{},"source":[]}],"metadata":{"kernelspec":{"display_name":"mt-base","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.7"},"orig_nbformat":4},"nbformat":4,"nbformat_minor":2}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment